From f9146abeea0610a4c8cddea53ac031eeabd79d47 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 26 Feb 2016 04:57:12 -0500 Subject: [PATCH 001/417] Got the low hanging fruit for implementing MG theory in the theory manual. The majority of work will be in the physics.rst and cross_sections.rst files which I have not attacked yet. I also noticed that the theory wasnt updated for the new secondary particle bank (Ive only seen one place where it needed to be mentioned so far) and for the polar/azimuthal/mu filters. Both have been incorporated. --- docs/source/methods/introduction.rst | 34 ++++++++++++++++++++-------- docs/source/methods/tallies.rst | 18 ++++++++------- docs/source/usersguide/beginners.rst | 2 +- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/docs/source/methods/introduction.rst b/docs/source/methods/introduction.rst index 508ac99193..7e4f94633f 100644 --- a/docs/source/methods/introduction.rst +++ b/docs/source/methods/introduction.rst @@ -8,7 +8,7 @@ The physical process by which a population of particles evolves over time is governed by a number of `probability distributions`_. For instance, given a particle traveling through some material, there is a probability distribution for the distance it will travel until its next collision (an exponential -distribution). Then, when it collides with a nucleus, there is associated +distribution). Then, when it collides with a nucleus, there is an associated probability of undergoing each possible reaction with that nucleus. While the behavior of any single particle is unpredictable, the average behavior of a large population of particles originating from the same source is well defined. @@ -45,10 +45,15 @@ following steps: - Initialize the pseudorandom number generator. - - Read ACE format cross sections specified in the problem. + - Read the contiuous-energy or multi-group cross section data specified in + the problem. - If using a special energy grid treatment such as a union energy grid or - lethargy bins, that must be initialized as well. + lethargy bins, that must be initialized as well in a continuous-energy + problem. + + - In a multi-group problem, individual nuclide cross section information is + combined to produce material-specific cross section data. - In a fixed source problem, source sites are sampled from the specified source. In an eigenvalue problem, source sites are sampled from some initial @@ -95,6 +100,10 @@ proceed. The life of a single particle will proceed as follows: P(i) = \frac{\Sigma_{t,i}}{\Sigma_t}. + Note that the above selection of collided nuclide only applies to + continuous-energy simulations as multi-group simulations use nuclide + data which has already been combined in to material-specific data. + 8. Once the specific nuclide is sampled, the random samples a reaction for that nuclide based on the microscopic cross sections. If the microscopic cross section for some reaction :math:`x` is :math:`\sigma_x` and the total @@ -105,13 +114,20 @@ proceed. The life of a single particle will proceed as follows: P(x) = \frac{\sigma_x}{\sigma_t}. + Since multi-group simulations use material-specific data, the above is + performed with those material multi-group cross sections (i.e., + macroscopic cross sections for the material) instead of microscopic + cross sections for the nuclide). + 9. If the sampled reaction is elastic or inelastic scattering, the outgoing - energy and angle is sampled from the appropriate distribution. Reactions - of type :math:`(n,xn)` are treated as scattering and the weight of the - particle is increased by the multiplicity of the reaction. The particle - then continues from step 3. If the reaction is absorption or fission, the - particle dies and if necessary, fission sites are created and stored in the - fission bank. + energy and angle is sampled from the appropriate distribution. In + continuous-energy simulation, reactions of type :math:`(n,xn)` are treated + as scattering and any additional particles which may be created are added + to a secondary particle bank to be tracked later. In a multi-group + simulation, this secondary bank is ont used but the particle weight is + increased accordingly. The original particle then continues from step 3. + If the reaction is absorption or fission, the particle dies and if + necessary, fission sites are created and stored in the fission bank. After all particles have been simulated, there are a few final tasks that must be performed before the run is finished. This include the following: diff --git a/docs/source/methods/tallies.rst b/docs/source/methods/tallies.rst index 65a0989ac7..60a2b9a632 100644 --- a/docs/source/methods/tallies.rst +++ b/docs/source/methods/tallies.rst @@ -32,8 +32,9 @@ OpenMC: flux, total reaction rate, scattering reaction rate, neutron production from scattering, higher scattering moments, :math:`(n,xn)` reaction rates, absorption reaction rate, fission reaction rate, neutron production rate from fission, and surface currents. The following variables can be used as filters: -universe, material, cell, birth cell, surface, mesh, pre-collision energy, and -post-collision energy. +universe, material, cell, birth cell, surface, mesh, pre-collision energy, +post-collision energy, polar angle, azimuthal angle, and the cosine of the +change-in-angle due to a scattering event. With filters for pre- and post-collision energy and scoring functions for scattering and fission production, it is possible to use OpenMC to generate @@ -55,9 +56,9 @@ be scored to for each value of the filter variable. If a particle is in cell :math:`n`, the mapping would identify what tally/bin combinations specify cell :math:`n` for the cell filter variable. In this manner, it is not necessary to check the phase space variables against each tally. Note that this technique -only applies to discrete filter variables and cannot be applied to energy -bins. For energy filters, it is necessary to perform a binary search on the -specified energy grid. +only applies to discrete filter variables and cannot be applied to energy, +angle, or change-in-angle bins. For these filters, it is necessary to perform +a binary search on the specified energy grid. ----------------------------------------- Volume-Integrated Flux and Reaction Rates @@ -196,8 +197,9 @@ One important fact to take into consideration is that the use of a track-length estimator precludes us from using any filter that requires knowledge of the particle's state following a collision because by definition, it will not have had a collision at every event. Thus, for tallies with outgoing-energy filters -(which require the post-collision energy) or for tallies of scattering moments -(which require the scattering cosine), we must use an analog estimator. +(which require the post-collision energy), scattering change-in-angle filters, +or for tallies of scattering moments (which require the scattering cosine of +the change-in-angle), we must use an analog estimator. .. TODO: Add description of surface current tallies @@ -430,7 +432,7 @@ analytically. For one degree of freedom, the t-distribution becomes a standard .. math:: :label: cauchy-cdf - c(x) = \frac{1}{\pi} \arctan x + \frac{1}{2}. + c(x) = \frac{1}{\pi} \arctan x + \frac{1}{2}. Thus, inverting the cumulative distribution function, we find the :math:`x` percentile of the standard Cauchy distribution to be diff --git a/docs/source/usersguide/beginners.rst b/docs/source/usersguide/beginners.rst index 9ecffe3f67..2487e9c416 100644 --- a/docs/source/usersguide/beginners.rst +++ b/docs/source/usersguide/beginners.rst @@ -65,7 +65,7 @@ Now let's look at the pros and cons of Monte Carlo methods: - **Pro**: Running simulations in parallel is conceptually very simple. -- **Con**: Because they related on repeated random sampling, they are +- **Con**: Because they rely on repeated random sampling, they are computationally very expensive. - **Con**: A simulation doesn't automatically give you the global solution From 42ef7ccfac5febf1d62e44bd8074dc15222c0974 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 23 Mar 2016 15:47:51 -0500 Subject: [PATCH 002/417] Add periodic boundary conditions --- docs/source/usersguide/input.rst | 2 +- src/geometry.F90 | 62 ++++++++++++++++++++++++ src/initialize.F90 | 14 ++++++ src/input_xml.F90 | 72 +++++++++++++++++++++++++++- src/relaxng/geometry.rnc | 5 +- src/relaxng/geometry.rng | 12 +++++ src/surface_header.F90 | 1 + tests/test_periodic/geometry.xml | 12 +++++ tests/test_periodic/materials.xml | 13 +++++ tests/test_periodic/results_true.dat | 2 + tests/test_periodic/settings.xml | 13 +++++ tests/test_periodic/tallies.xml | 14 ++++++ tests/test_periodic/test_periodic.py | 11 +++++ tests/testing_harness.py | 3 +- 14 files changed, 231 insertions(+), 5 deletions(-) create mode 100644 tests/test_periodic/geometry.xml create mode 100644 tests/test_periodic/materials.xml create mode 100644 tests/test_periodic/results_true.dat create mode 100644 tests/test_periodic/settings.xml create mode 100644 tests/test_periodic/tallies.xml create mode 100644 tests/test_periodic/test_periodic.py diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 775407d70b..ea51723b7b 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -898,7 +898,7 @@ Each ```` element can have the following attributes or sub-elements: :boundary: The boundary condition for the surface. This can be "transmission", - "vacuum", or "reflective". + "vacuum", "reflective", or "periodic". *Default*: "transmission" diff --git a/src/geometry.F90 b/src/geometry.F90 index 8a38f982b5..9f77817387 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -475,6 +475,68 @@ contains &// trim(to_str(surf%id))) end if return + elseif (surf % bc == BC_PERIODIC .and. run_mode /= MODE_PLOTTING) then + ! ======================================================================= + ! PERIODIC BOUNDARY + + ! Do not handle periodic boundary conditions on lower universes + if (p % n_coord /= 1) then + call handle_lost_particle(p, "Cannot period particle " & + // trim(to_str(p % id)) // " off surface in a lower universe.") + return + end if + + ! Score surface currents since reflection causes the direction of the + ! particle to change -- artificially move the particle slightly back in + ! case the surface crossing in coincident with a mesh boundary + + if (active_current_tallies % size() > 0) then + p % coord(1) % xyz = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw + call score_surface_current(p) + p % coord(1) % xyz = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw + end if + + select type (surf) + type is (SurfaceXPlane) + select type (opposite => surfaces(surf % opposite) % obj) + type is (SurfaceXPlane) + p % coord(1) % xyz(1) = opposite % x0 + end select + + type is (SurfaceYPlane) + select type (opposite => surfaces(surf % opposite) % obj) + type is (SurfaceYPlane) + p % coord(1) % xyz(2) = opposite % y0 + end select + + type is (SurfaceZPlane) + select type (opposite => surfaces(surf % opposite) % obj) + type is (SurfaceZPlane) + p % coord(1) % xyz(3) = opposite % z0 + end select + end select + + ! Reassign particle's surface + p % surface = sign(surfaces(surf % opposite) % obj % id, p % surface) + + ! Figure out what cell particle is in now + p % n_coord = 1 + call find_cell(p, found) + if (.not. found) then + call handle_lost_particle(p, "Couldn't find particle after hitting & + &periodic boundary on surface " // trim(to_str(surf%id)) // ".") + return + end if + + ! Set previous coordinate going slightly past surface crossing + p % last_xyz = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw + + ! Diagnostic message + if (verbosity >= 10 .or. trace) then + call write_message(" Hit periodic boundary on surface " & + // trim(to_str(surf%id))) + end if + return end if ! ========================================================================== diff --git a/src/initialize.F90 b/src/initialize.F90 index 09bedb1388..74cab87c4b 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -580,6 +580,20 @@ contains class(Lattice), pointer :: lat => null() type(TallyObject), pointer :: t => null() + ! Adjust opposite surfaces for periodic boundaries + do i = 1, size(surfaces) + associate (surf => surfaces(i) % obj) + if (surf % bc == BC_PERIODIC) then + if (surface_dict % has_key(surf % opposite)) then + surf % opposite = surface_dict % get_key(surf % opposite) + else + call fatal_error("Could not find opposite surface " // & + trim(to_str(surf % opposite)) // ".") + end if + end if + end associate + end do + do i = 1, n_cells ! ======================================================================= ! ADJUST REGION SPECIFICATION FOR EACH CELL diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 90c703d27d..9e49e3c349 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1109,6 +1109,8 @@ contains integer :: universe_num integer :: n_cells_in_univ integer :: coeffs_reqd + integer :: i_xmin, i_xmax, i_ymin, i_ymax, i_zmin, i_zmax + real(8) :: xmin, xmax, ymin, ymax, zmin, zmax integer, allocatable :: temp_int_array(:) real(8) :: phi, theta, psi real(8), allocatable :: coeffs(:) @@ -1387,6 +1389,13 @@ contains call fatal_error("No surfaces found in geometry.xml!") end if + xmin = INFINITY + xmax = -INFINITY + ymin = INFINITY + ymax = -INFINITY + zmin = INFINITY + zmax = -INFINITY + ! Allocate cells array allocate(surfaces(n_surfaces)) @@ -1478,10 +1487,28 @@ contains select type(s) type is (SurfaceXPlane) s%x0 = coeffs(1) + + ! Determine outer surfaces + xmin = min(xmin, s % x0) + xmax = max(xmax, s % x0) + if (xmin == s % x0) i_xmin = i + if (xmax == s % x0) i_xmax = i type is (SurfaceYPlane) s%y0 = coeffs(1) + + ! Determine outer surfaces + ymin = min(ymin, s % y0) + ymax = max(ymax, s % y0) + if (ymin == s % y0) i_ymin = i + if (ymax == s % y0) i_ymax = i type is (SurfaceZPlane) s%z0 = coeffs(1) + + ! Determine outer surfaces + zmin = min(zmin, s % z0) + zmax = max(zmax, s % z0) + if (zmin == s % z0) i_zmin = i + if (zmax == s % z0) i_zmax = i type is (SurfacePlane) s%A = coeffs(1) s%B = coeffs(2) @@ -1548,11 +1575,13 @@ contains case ('reflective', 'reflect', 'reflecting') s%bc = BC_REFLECT boundary_exists = .true. + case ('periodic') + s%bc = BC_PERIODIC + boundary_exists = .true. case default call fatal_error("Unknown boundary condition '" // trim(word) // & &"' specified on surface " // trim(to_str(s%id))) end select - ! Add surface to dictionary call surface_dict % add_key(s%id, i) end do @@ -1563,6 +1592,47 @@ contains call fatal_error("No boundary conditions were applied to any surfaces!") end if + ! Determine opposite side for periodic boundaries + do i = 1, size(surfaces) + if (surfaces(i) % obj % bc == BC_PERIODIC) then + select type (surf => surfaces(i) % obj) + type is (SurfaceXPlane) + if (i == i_xmin) then + surf % opposite = i_xmax + elseif (i == i_xmax) then + surf % opposite = i_xmin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if + + type is (SurfaceYPlane) + if (i == i_ymin) then + surf % opposite = i_ymax + elseif (i == i_ymax) then + surf % opposite = i_ymin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if + + type is (SurfaceZPlane) + if (i == i_zmin) then + surf % opposite = i_zmax + elseif (i == i_zmax) then + surf % opposite = i_zmin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if + + class default + call fatal_error("Periodic boundary condition applied to & + &non-planar surface.") + end select + end if + end do + ! ========================================================================== ! READ LATTICES FROM GEOMETRY.XML diff --git a/src/relaxng/geometry.rnc b/src/relaxng/geometry.rnc index 8d25789f5a..6cb6f7c158 100644 --- a/src/relaxng/geometry.rnc +++ b/src/relaxng/geometry.rnc @@ -21,8 +21,9 @@ element geometry { (element type { xsd:string { maxLength = "15" } } | attribute type { xsd:string { maxLength = "15" } }) & (element coeffs { list { xsd:double+ } } | attribute coeffs { list { xsd:double+ } }) & - (element boundary { ( "transmit" | "reflective" | "vacuum" ) } | - attribute boundary { ( "transmit" | "reflective" | "vacuum" ) })? + (element boundary { ( "transmit" | "reflective" | "vacuum" | "periodic" ) } | + attribute boundary { ( "transmit" | "reflective" | "vacuum" | "periodic" ) })? & + (element opposite { xsd:int } | attribute opposite { xsd:int })? }* & element lattice { diff --git a/src/relaxng/geometry.rng b/src/relaxng/geometry.rng index d40401b281..3ff0f67c69 100644 --- a/src/relaxng/geometry.rng +++ b/src/relaxng/geometry.rng @@ -173,6 +173,7 @@ transmit reflective vacuum + periodic @@ -180,10 +181,21 @@ transmit reflective vacuum + periodic + + + + + + + + + + diff --git a/src/surface_header.F90 b/src/surface_header.F90 index 4686552176..0b5d3c86be 100644 --- a/src/surface_header.F90 +++ b/src/surface_header.F90 @@ -15,6 +15,7 @@ module surface_header neighbor_pos(:), & ! List of cells on positive side neighbor_neg(:) ! List of cells on negative side integer :: bc ! Boundary condition + integer :: opposite ! Opposite surface for periodic boundary character(len=104) :: name = "" ! User-defined name contains procedure :: sense diff --git a/tests/test_periodic/geometry.xml b/tests/test_periodic/geometry.xml new file mode 100644 index 0000000000..6ecfec1972 --- /dev/null +++ b/tests/test_periodic/geometry.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/tests/test_periodic/materials.xml b/tests/test_periodic/materials.xml new file mode 100644 index 0000000000..a7bf4faf4e --- /dev/null +++ b/tests/test_periodic/materials.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/tests/test_periodic/results_true.dat b/tests/test_periodic/results_true.dat new file mode 100644 index 0000000000..f65dbafd1b --- /dev/null +++ b/tests/test_periodic/results_true.dat @@ -0,0 +1,2 @@ +k-combined: +1.542742E+00 4.410461E-02 diff --git a/tests/test_periodic/settings.xml b/tests/test_periodic/settings.xml new file mode 100644 index 0000000000..af09407ae5 --- /dev/null +++ b/tests/test_periodic/settings.xml @@ -0,0 +1,13 @@ + + + + 1000 + 4 + 0 + + + + -5. -5. -5. 5. 5. 5. + + + diff --git a/tests/test_periodic/tallies.xml b/tests/test_periodic/tallies.xml new file mode 100644 index 0000000000..595d7c0ddd --- /dev/null +++ b/tests/test_periodic/tallies.xml @@ -0,0 +1,14 @@ + + + + regular + -200. -1e50 + 200. 1e50 + 50 1 + + + collision + + fission + + diff --git a/tests/test_periodic/test_periodic.py b/tests/test_periodic/test_periodic.py new file mode 100644 index 0000000000..b584632f08 --- /dev/null +++ b/tests/test_periodic/test_periodic.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python + +import os +import sys +sys.path.insert(0, os.pardir) +from testing_harness import TestHarness + + +if __name__ == '__main__': + harness = TestHarness('statepoint.4.h5') + harness.main() diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 78e5553e8c..e659768856 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -133,9 +133,10 @@ class TestHarness(object): def _cleanup(self): """Delete statepoints, tally, and test files.""" - output = glob.glob(os.path.join(os.getcwd(), 'statepoint.*.*')) + output = glob.glob(os.path.join(os.getcwd(), 'statepoint.*.h5')) output.append(os.path.join(os.getcwd(), 'tallies.out')) output.append(os.path.join(os.getcwd(), 'results_test.dat')) + output.append(os.path.join(os.getcwd(), 'summary.h5')) for f in output: if os.path.exists(f): os.remove(f) From 5e910498b39b12ab9fe7ae5ef4a14a80a28940d7 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 11 May 2016 21:39:56 -0500 Subject: [PATCH 003/417] Check for non-matching periodic boundary conditions --- src/geometry.F90 | 4 ++-- src/input_xml.F90 | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/geometry.F90 b/src/geometry.F90 index 9f77817387..62c5036a9c 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -432,7 +432,7 @@ contains ! Score surface currents since reflection causes the direction of the ! particle to change -- artificially move the particle slightly back in - ! case the surface crossing in coincident with a mesh boundary + ! case the surface crossing is coincident with a mesh boundary if (active_current_tallies % size() > 0) then p % coord(1) % xyz = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw @@ -488,7 +488,7 @@ contains ! Score surface currents since reflection causes the direction of the ! particle to change -- artificially move the particle slightly back in - ! case the surface crossing in coincident with a mesh boundary + ! case the surface crossing is coincident with a mesh boundary if (active_current_tallies % size() > 0) then p % coord(1) % xyz = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 9e49e3c349..242d3459a6 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1630,6 +1630,14 @@ contains call fatal_error("Periodic boundary condition applied to & &non-planar surface.") end select + + ! Make sure opposite surface is also periodic + associate (surf => surfaces(i) % obj) + if (surfaces(surf % opposite) % obj % bc /= BC_PERIODIC) then + call fatal_error("Could not find matching surface for periodic & + &boundary on surface " // trim(to_str(surf % id)) // ".") + end if + end associate end if end do From 03957aac6ba080a9b98b2bc023f856c44dcd4f96 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 21 May 2016 14:12:06 -0400 Subject: [PATCH 004/417] Implementing create_mg_mode, a method of Library which creates the MGXS Library, Geometry and Materials objects based on the Library class. --- openmc/mgxs/library.py | 67 +++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 20302b6246..4eae2cb067 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -975,14 +975,11 @@ class Library(object): return mgxs_file - def create_mg_library_and_materials(self, xsdata_names=None, xs_ids=None, - material_ids=None): + def create_mg_mode(self, xsdata_names=None, xs_ids=None): """Creates an openmc.MGXSLibrary object to contain the MGXS data for the Multi-Group mode of OpenMC as well as the associated openmc.Materials - objects. This method cannot be used for Library objects with - `Library.by_nuclide == True` since the materials to output would be - problem dependent and thus any Materials object produced by this method - would not be useful. + and openmc.Geometry objects. This method only creates a macroscopic + MGXS Library even if nuclidic tallies are specified in the Library. Parameters ---------- @@ -993,18 +990,16 @@ class Library(object): Cross section set identifier (i.e., '71c') for all data sets (if only str) or for each individual one (if iterable of str). Defaults to '1m'. - material_ids : None or Iterable of Integral - An optional list of material IDs to pass to the materials in - materials_file. Defaults to `None` implying the materials will be - given an ID number which matches the index of the domain in - `self.domains` Returns ------- mgxs_file : openmc.MGXSLibrary Multi-Group Cross Section File that is ready to be printed to the file of choice by the user. - materials_file : openmc.Materials + materials : openmc.Materials + Materials file ready to be printed with all the macroscopic data + present within this Library. + geometry : openmc.Geometry Materials file ready to be printed with all the macroscopic data present within this Library. @@ -1036,42 +1031,51 @@ class Library(object): cv.check_iterable_type('xs_ids', xs_ids, basestring) else: xs_ids = ['1m' for i in range(len(self.domains))] - if material_ids is not None: - cv.check_iterable_type('material_ids', material_ids, Integral) xs_type = 'macro' - # Initialize files + # Initialize MGXS File mgxs_file = openmc.MGXSLibrary(self.energy_groups) - materials = [] - macroscopics = [] - nuclide = 'total' + # Create a copy of the Geometry to differentiate for these Macroscopics + geometry = copy.deepcopy(self.openmc_geometry) + materials = openmc.Materials() + + # Get all Cells from the Geometry for differentiation + all_cells = geometry.get_all_material_cells() + # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): + # Build & add metadata to XSdata object if xsdata_names is None: xsdata_name = 'set' + str(i + 1) else: xsdata_name = xsdata_names[i] - xsdata = self.get_xsdata(domain, xsdata_name, nuclide=nuclide, + # Create XSdata and Macroscopic for this domain + xsdata = self.get_xsdata(domain, xsdata_name, nuclide='total', xs_type=xs_type, xs_id=xs_ids[i]) - mgxs_file.add_xsdata(xsdata) + macroscopic = openmc.Macroscopic(name=xsdata_name, xs=xs_ids[i]) - macroscopics.append(openmc.Macroscopic(name=xsdata_name, - xs=xs_ids[i])) - if material_ids is not None: - mat_id = material_ids[i] - else: - mat_id = i - materials.append(openmc.Material(name=xsdata_name + '.' + - xs_ids[i], material_id=mat_id)) - materials[-1].add_macroscopic(macroscopics[-1]) + # Create Material and add to collection + material = openmc.Material(name=xsdata_name + '.' + xs_ids[i]) + material.add_macroscopic(macroscopic) + materials.append(material) - materials_file = openmc.Materials(materials) + # Differentiate Geometry with new Material + if self.domain_type == 'material': + # Fill all appropriate Cells with new Material + for cell in all_cells: + if cell.fill.id == domain.id: + cell.fill = material - return (mgxs_file, materials_file) + elif self.domain_type == 'cell': + for cell in all_cells: + if cell.id == domain.id: + cell.fill = material + + return mgxs_file, materials, geometry def check_library_for_openmc_mgxs(self): """This routine will check the MGXS Types within a Library @@ -1101,6 +1105,7 @@ class Library(object): See also -------- Library.create_mg_library() + Library.create_mg_mode() """ From 9b8dbe6e942f32095b9594f63dfcd82500025306 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 22 May 2016 05:56:29 -0400 Subject: [PATCH 005/417] added NuFissionMatrixXS class to MGXS types and incorporated in to Library and XsData --- openmc/mgxs/library.py | 22 ++- openmc/mgxs/mgxs.py | 430 ++++++++++++++++++++++++++++++++++++++++- openmc/mgxs_library.py | 46 +++-- 3 files changed, 474 insertions(+), 24 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 4eae2cb067..816b78e3d3 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -460,7 +460,10 @@ 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', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', + 'capture', 'fission', 'nu-fission', 'kappa-fission', + 'scatter', 'nu-scatter', 'scatter matrix', + 'nu-scatter matrix', 'nu-fission matrix', chi'} The type of multi-group cross section object to return Returns @@ -853,13 +856,20 @@ class Library(object): mymgxs = self.get_mgxs(domain, 'kappa-fission') xsdata.set_kappa_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) - if 'chi' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'chi') - xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) - if 'nu-fission' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'nu-fission') + # For chi and nu-fission we can either have only a nu-fission matrix + # provided, or vectors of chi and nu-fission provided + if 'nu-fission matrix' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'nu-fission matrix') xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) + else: + if 'chi' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'chi') + xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) + if 'nu-fission' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'nu-fission') + xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, + nuclide=[nuclide]) # multiplicity requires scatter and nu-scatter if ((('scatter matrix' in self.mgxs_types) and ('nu-scatter matrix' in self.mgxs_types))): diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 5be84bb2ce..7173349376 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -32,6 +32,7 @@ MGXS_TYPES = ['total', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', + 'nu-fission matrix', 'chi'] @@ -425,7 +426,10 @@ class MGXS(object): Parameters ---------- - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', + 'capture', 'fission', 'nu-fission', 'kappa-fission', + 'scatter', 'nu-scatter', 'scatter matrix', + 'nu-scatter matrix', 'nu-fission matrix', 'chi'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization @@ -474,6 +478,8 @@ class MGXS(object): mgxs = ScatterMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'nu-scatter matrix': mgxs = NuScatterMatrixXS(domain, domain_type, energy_groups) + elif mgxs_type == 'nu-fission matrix': + mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'chi': mgxs = Chi(domain, domain_type, energy_groups) @@ -3182,6 +3188,428 @@ class NuScatterMatrixXS(ScatterMatrixXS): self._hdf5_key = 'nu-scatter matrix' +class NuFissionMatrixXS(MGXS): + """A fission production matrix multi-group cross section. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for deterministic neutronics calculations. + + Parameters + ---------- + 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 : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section + 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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(NuFissionMatrixXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'nu-fission matrix' + self._hdf5_key = 'nu-fission matrix' + + def __deepcopy__(self, memo): + clone = super(NuFissionMatrixXS, self).__deepcopy__(memo) + return clone + + @property + def scores(self): + scores = ['flux', 'nu-fission'] + + return scores + + @property + def filters(self): + group_edges = self.energy_groups.group_edges + energy = openmc.Filter('energy', group_edges) + energyout = openmc.Filter('energyout', group_edges) + + filters = [[energy], [energy, energyout]] + + return filters + + @property + def estimator(self): + return 'analog' + + @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 + + def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): + """Build a sliced NuFissionMatrix 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 []) + 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 int + A list of outgoing energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) + + Returns + ------- + 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. + + """ + + # Call super class method and null out derived tallies + slice_xs = super(NuFissionMatrixXS, self).get_slice(nuclides, + in_groups) + slice_xs._rxn_rate_tally = None + slice_xs._xs_tally = None + + # Slice outgoing energy groups if needed + if len(out_groups) != 0: + filter_bins = [] + for group in out_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 energyout 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', + row_column='inout', value='mean', **kwargs): + r"""Returns an array of multi-group cross sections. + + This method constructs a 2D NumPy array for the requested scattering + matrix data data for one or more energy groups and subdomains. + + NOTE: The scattering moments are not multiplied by the :math:`(2l+1)/2` + prefactor in the expansion of the scattering source into Legendre + moments in the neutron transport equation. + + Parameters + ---------- + in_groups : Iterable of Integral or 'all' + Incoming energy groups of interest. Defaults to 'all'. + out_groups : Iterable of Integral or 'all' + Outgoing energy groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + row_column: {'inout', 'outin'} + Return the cross section indexed first by incoming group and + second by outgoing group ('inout'), or vice versa ('outin'). + Defaults to 'inout'. + value : str + A string for the type of value to return - 'mean', 'std_dev', or + 'rel_err' are accepted. Defaults to the empty string. + + Returns + ------- + ndarray + A NumPy array of the multi-group cross section indexed in the order + each group and subdomain is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(in_groups, basestring): + cv.check_iterable_type('groups', in_groups, Integral) + for group in in_groups: + filters.append('energy') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(out_groups, basestring): + cv.check_iterable_type('groups', out_groups, Integral) + for group in out_groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct a collection of the nuclides to retrieve from the xs tally + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides + else: + query_nuclides = ['total'] + + # Use tally summation if user requested the sum for all nuclides + if nuclides == 'sum' or nuclides == ['sum']: + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, + value=value) + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=query_nuclides, value=value) + + xs = np.nan_to_num(xs) + + # Divide by atom number densities for microscopic cross sections + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + if in_groups == 'all': + num_in_groups = self.num_groups + else: + num_in_groups = len(in_groups) + if out_groups == 'all': + num_out_groups = self.num_groups + else: + num_out_groups = len(out_groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = int(xs.shape[0] / + (num_in_groups * num_out_groups)) + new_shape = (num_subdomains, num_in_groups, num_out_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Transpose the scattering matrix if requested by user + if row_column == 'outin': + xs = np.swapaxes(xs, 1, 2) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_2d(xs) + + return xs + + def print_xs(self, subdomains='all', nuclides='all', + xs_type='macro'): + """Prints a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will report + the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + if nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + string += '{0: <16}\n'.format('\tEnergy Groups:') + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += \ + '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if xs_type != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + if xs_type == 'macro': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') + else: + string += '{0: <16}\n'.format('\tCross Sections [barns]:') + + template = '{0: <12}Group {1} -> Group {2}:\t\t' + + # Loop over incoming/outgoing energy groups ranges + for in_group in range(1, self.num_groups+1): + for out_group in range(1, self.num_groups+1): + string += template.format('', in_group, out_group) + average = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + string += '\n' + + print(string) + + class Chi(MGXS): """The fission spectrum. diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 88ae05808a..7559b427a1 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -131,6 +131,8 @@ class XSdata(object): num_polar : int Number of equal width angular bins that the polar angular domain is subdivided into. This only applies when ``representation`` is "angle". + use_chi : bool + Whether or not a chi vector or nu-fission matrix was used. vector_shape : iterable of int Dimensionality of vector multi-group cross sections (e.g., the total cross section). The return result depends on the value of @@ -292,6 +294,10 @@ class XSdata(object): def num_azimuthal(self): return self._num_azimuthal + @property + def use_chi(self): + return self._use_chi + @property def total(self): return self._total @@ -461,6 +467,11 @@ class XSdata(object): check_greater_than('num_azimuthal', num_azimuthal, 0) self._num_azimuthal = num_azimuthal + @use_chi.setter + def use_chi(self, use_chi): + check_type('use_chi', use_chi, bool) + self._use_chi = use_chi + @total.setter def total(self, total): check_type('total', total, Iterable, expected_iter_type=Real) @@ -512,8 +523,8 @@ class XSdata(object): @chi.setter def chi(self, chi): - if self._use_chi is not None: - if not self._use_chi: + if self.use_chi is not None: + if not self.use_chi: msg = 'Providing chi when nu_fission already provided as a' \ 'matrix' raise ValueError(msg) @@ -529,8 +540,8 @@ class XSdata(object): self._chi = npchi - if self._use_chi is not None: - self._use_chi = True + if self.use_chi is not None: + self.use_chi = True @scatter.setter def scatter(self, scatter): @@ -574,8 +585,8 @@ class XSdata(object): check_iterable_type('nu_fission', npnu_fission, Real, max_depth=len(npnu_fission.shape)) - if self._use_chi is not None: - if self._use_chi: + if self.use_chi is not None: + if self.use_chi: check_value('nu_fission shape', npnu_fission.shape, [self.vector_shape]) else: @@ -587,9 +598,9 @@ class XSdata(object): # Find out if we have a nu-fission matrix or vector # and set a flag to allow other methods to check this later. if npnu_fission.shape == self.vector_shape: - self._use_chi = True + self.use_chi = True else: - self._use_chi = False + self.use_chi = False self._nu_fission = npnu_fission if np.sum(self._nu_fission) > 0.0: @@ -728,10 +739,8 @@ class XSdata(object): """ - # The NuFissionXS class does not have the capability to produce - # a fission matrix and therefore if this path is pursued, we know - # chi must be used. - check_type('nu_fission', nu_fission, openmc.mgxs.NuFissionXS) + check_type('nu_fission', nu_fission, (openmc.mgxs.NuFissionXS, + openmc.mgxs.NuFissionMatrixXS)) check_value('energy_groups', nu_fission.energy_groups, [self.energy_groups]) check_value('domain_type', nu_fission.domain_type, @@ -744,7 +753,10 @@ class XSdata(object): msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - self._use_chi = True + if type(nu_fission) is openmc.mgxs.NuFissionMatrixXS: + self.use_chi = False + else: + self.use_chi = True if np.sum(self._nu_fission) > 0.0: self._fissionable = True @@ -809,8 +821,8 @@ class XSdata(object): """ - if self._use_chi is not None: - if not self._use_chi: + if self.use_chi is not None: + if not self.use_chi: msg = 'Providing chi when nu_fission already provided as a ' \ 'matrix!' raise ValueError(msg) @@ -827,8 +839,8 @@ class XSdata(object): msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - if self._use_chi is not None: - self._use_chi = True + if self.use_chi is not None: + self.use_chi = True def set_scatter_mgxs(self, scatter, nuclide='total', xs_type='macro'): """This method allows for an openmc.mgxs.ScatterMatrixXS From b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 22 May 2016 15:04:04 -0400 Subject: [PATCH 006/417] added MultiplicityMatrix class to MGXS and incorporated in to Library and XsData --- openmc/mgxs/library.py | 19 +- openmc/mgxs/mgxs.py | 436 ++++++++++++++++++++++++++++++++++++++++- openmc/mgxs_library.py | 40 ++-- 3 files changed, 469 insertions(+), 26 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 816b78e3d3..23d40a9527 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -870,9 +870,15 @@ class Library(object): mymgxs = self.get_mgxs(domain, 'nu-fission') xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) - # multiplicity requires scatter and nu-scatter - if ((('scatter matrix' in self.mgxs_types) and - ('nu-scatter matrix' in self.mgxs_types))): + # If multiplicity matrix is available, prefer that + if 'multiplicity matrix' in self.mgxs_types: + mult_mgxs = self.get_mgxs(domain, 'multiplicity matrix') + xsdata.set_multiplicity_mgxs(mult_mgxs, xs_type=xs_type, + nuclide=[nuclide]) + using_multiplicity = True + # multiplicity wil fall back to using scatter and nu-scatter + elif ((('scatter matrix' in self.mgxs_types) and + ('nu-scatter matrix' in self.mgxs_types))): scatt_mgxs = self.get_mgxs(domain, 'scatter matrix') nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') xsdata.set_multiplicity_mgxs(nuscatt_mgxs, scatt_mgxs, @@ -1131,9 +1137,10 @@ class Library(object): msg = '"nu-scatter matrix" MGXS type is required but not provided.' warn(msg) else: - # Ok, now see the status of scatter - if 'scatter matrix' not in self.mgxs_types: - # We dont have both nu-scatter and scatter, therefore + # Ok, now see the status of scatter and/or multiplicity + if ((('scatter matrix' not in self.mgxs_types) and + ('multiplicity matrix' not in self.mgxs_types))): + # We dont have data needed for multiplicity matrix, therefore # we need total, and not transport. if 'total' not in self.mgxs_types: error_flag = True diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 7173349376..c3fd3a1b02 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -32,6 +32,7 @@ MGXS_TYPES = ['total', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', + 'multiplicity matrix', 'nu-fission matrix', 'chi'] @@ -478,6 +479,8 @@ class MGXS(object): mgxs = ScatterMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'nu-scatter matrix': mgxs = NuScatterMatrixXS(domain, domain_type, energy_groups) + elif mgxs_type == 'multiplicity matrix': + mgxs = MultiplicityMatrix(domain, domain_type, energy_groups) elif mgxs_type == 'nu-fission matrix': mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'chi': @@ -3188,6 +3191,431 @@ class NuScatterMatrixXS(ScatterMatrixXS): self._hdf5_key = 'nu-scatter matrix' +class MultiplicityMatrix(MGXS): + """The scattering multiplicity matrix. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for deterministic neutronics calculations. + + Parameters + ---------- + 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 : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section + 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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(MultiplicityMatrix, self).__init__(domain, domain_type, groups, + by_nuclide, name) + self._rxn_type = 'multiplicity' + + @property + def scores(self): + return ['nu-scatter', 'scatter'] + + @property + def filters(self): + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energyout = openmc.Filter('energyout', group_edges) + energyin = openmc.Filter('energy', group_edges) + return [[energyin, energyout], [energyin, energyout]] + + @property + def tally_keys(self): + return ['nu-scatter', 'scatter'] + + @property + def estimator(self): + return 'analog' + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['nu-scatter'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + @property + def xs_tally(self): + + if self._xs_tally is None: + scatter = self.tallies['scatter'] + + # Compute the multiplicity + self._xs_tally = self.rxn_rate_tally / scatter + super(MultiplicityMatrix, self)._compute_xs() + + return self._xs_tally + + def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): + """Build a sliced MultiplicityMatrix 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 []) + 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 int + A list of outgoing energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) + + Returns + ------- + 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. + + """ + + # Call super class method and null out derived tallies + slice_xs = super(MultiplicityMatrix, self).get_slice(nuclides, + in_groups) + slice_xs._rxn_rate_tally = None + slice_xs._xs_tally = None + + # Slice outgoing energy groups if needed + if len(out_groups) != 0: + filter_bins = [] + for group in out_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 energyout 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', + row_column='inout', value='mean', **kwargs): + r"""Returns an array of multi-group cross sections. + + This method constructs a 2D NumPy array for the requested multiplicity + matrix data data for one or more energy groups and subdomains. + + Parameters + ---------- + in_groups : Iterable of Integral or 'all' + Incoming energy groups of interest. Defaults to 'all'. + out_groups : Iterable of Integral or 'all' + Outgoing energy groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + row_column: {'inout', 'outin'} + Return the cross section indexed first by incoming group and + second by outgoing group ('inout'), or vice versa ('outin'). + Defaults to 'inout'. + value : str + A string for the type of value to return - 'mean', 'std_dev', or + 'rel_err' are accepted. Defaults to the empty string. + + Returns + ------- + ndarray + A NumPy array of the multi-group cross section indexed in the order + each group and subdomain is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(in_groups, basestring): + cv.check_iterable_type('groups', in_groups, Integral) + for group in in_groups: + filters.append('energy') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(out_groups, basestring): + cv.check_iterable_type('groups', out_groups, Integral) + for group in out_groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct a collection of the nuclides to retrieve from the xs tally + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides + else: + query_nuclides = ['total'] + + # Use tally summation if user requested the sum for all nuclides + if nuclides == 'sum' or nuclides == ['sum']: + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, + value=value) + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=query_nuclides, value=value) + + xs = np.nan_to_num(xs) + + # Divide by atom number densities for microscopic cross sections + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + if in_groups == 'all': + num_in_groups = self.num_groups + else: + num_in_groups = len(in_groups) + if out_groups == 'all': + num_out_groups = self.num_groups + else: + num_out_groups = len(out_groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = int(xs.shape[0] / + (num_in_groups * num_out_groups)) + new_shape = (num_subdomains, num_in_groups, num_out_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Transpose the matrix if requested by user + if row_column == 'outin': + xs = np.swapaxes(xs, 1, 2) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_2d(xs) + + return xs + + def print_xs(self, subdomains='all', nuclides='all', + xs_type='macro'): + """Prints a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will report + the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + if nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + string += '{0: <16}\n'.format('\tEnergy Groups:') + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += \ + '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if xs_type != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + if xs_type == 'macro': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') + else: + string += '{0: <16}\n'.format('\tCross Sections [barns]:') + + template = '{0: <12}Group {1} -> Group {2}:\t\t' + + # Loop over incoming/outgoing energy groups ranges + for in_group in range(1, self.num_groups+1): + for out_group in range(1, self.num_groups+1): + string += template.format('', in_group, out_group) + average = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + string += '\n' + + print(string) + + class NuFissionMatrixXS(MGXS): """A fission production matrix multi-group cross section. @@ -3366,13 +3794,9 @@ class NuFissionMatrixXS(MGXS): row_column='inout', value='mean', **kwargs): r"""Returns an array of multi-group cross sections. - This method constructs a 2D NumPy array for the requested scattering + This method constructs a 2D NumPy array for the requested nu-fission matrix data data for one or more energy groups and subdomains. - NOTE: The scattering moments are not multiplied by the :math:`(2l+1)/2` - prefactor in the expansion of the scattering source into Legendre - moments in the neutron transport equation. - Parameters ---------- in_groups : Iterable of Integral or 'all' @@ -3491,7 +3915,7 @@ class NuFissionMatrixXS(MGXS): new_shape += xs.shape[1:] xs = np.reshape(xs, new_shape) - # Transpose the scattering matrix if requested by user + # Transpose the matrix if requested by user if row_column == 'outin': xs = np.swapaxes(xs, 1, 2) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 7559b427a1..f3d8b28fcd 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -903,9 +903,10 @@ class XSdata(object): msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_multiplicity_mgxs(self, nuscatter, scatter, nuclide='total', + def set_multiplicity_mgxs(self, nuscatter, scatter=None, nuclide='total', xs_type='macro'): - """This method allows for an openmc.mgxs.NuScatterMatrixXS and + """This method allows for either the direct use of only an + openmc.mgxs.MultiplicityMatrix OR an openmc.mgxs.NuScatterMatrixXS and openmc.mgxs.ScatterMatrixXS to be used to set the scattering multiplicity for this XSdata object. Multiplicity, in OpenMC parlance, is a factor used to account for the production @@ -915,9 +916,10 @@ class XSdata(object): Parameters ---------- - nuscatter: openmc.mgxs.NuScatterMatrixXS - MGXS Object containing the nu-scattering matrix cross section - for the domain of interest. + nuscatter: {openmc.mgxs.NuScatterMatrixXS, + openmc.mgxs.MultiplicityMatrix} + MGXS Object containing the matrix cross section for the domain + of interest. scatter: openmc.mgxs.ScatterMatrixXS MGXS Object containing the scattering matrix cross section for the domain of interest. @@ -935,23 +937,33 @@ class XSdata(object): """ - check_type('nuscatter', nuscatter, openmc.mgxs.NuScatterMatrixXS) - check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) + check_type('nuscatter', nuscatter, (openmc.mgxs.NuScatterMatrixXS, + openmc.mgxs.MultiplicityMatrix)) check_value('energy_groups', nuscatter.energy_groups, [self.energy_groups]) - check_value('energy_groups', scatter.energy_groups, - [self.energy_groups]) check_value('domain_type', nuscatter.domain_type, ['universe', 'cell', 'material']) - check_value('domain_type', scatter.domain_type, - ['universe', 'cell', 'material']) + if scatter is not None: + check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) + if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrix): + msg = 'Either an MultiplicityMatrix object must be passed ' \ + 'for "nuscatter" or the "scatter" argument must be ' \ + 'provided.' + raise ValueError(msg) + check_value('energy_groups', scatter.energy_groups, + [self.energy_groups]) + check_value('domain_type', scatter.domain_type, + ['universe', 'cell', 'material']) if self.representation is 'isotropic': nuscatt = nuscatter.get_xs(nuclides=nuclide, xs_type=xs_type, moment=0) - scatt = scatter.get_xs(nuclides=nuclide, - xs_type=xs_type, moment=0) - self._multiplicity = np.divide(nuscatt, scatt) + if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrix): + self._multiplicity = nuscatt + else: + scatt = scatter.get_xs(nuclides=nuclide, + xs_type=xs_type, moment=0) + self._multiplicity = np.divide(nuscatt, scatt) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) From 002b1e360a45e2fa2b194365f813df61dd540b32 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 22 May 2016 20:22:04 -0400 Subject: [PATCH 007/417] Replaced most code within MultiplicityMatrix and NuFissionMatrix with a base abstract type, MatrixMGXS --- openmc/mgxs/mgxs.py | 1041 +++++++++++++++++-------------------------- 1 file changed, 412 insertions(+), 629 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c3fd3a1b02..b88e583aec 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -47,8 +47,8 @@ DOMAIN_TYPES = ['cell', # Supported domain classes # TODO: Implement Mesh domains _DOMAINS = [openmc.Cell, - openmc.Universe, - openmc.Material] + openmc.Universe, + openmc.Material] class MGXS(object): @@ -1530,6 +1530,409 @@ class MGXS(object): return df +class MatrixMGXS(MGXS): + """An abstract multi-group cross section for some energy group structure + within some spatial domain. This class is specifically intended for + cross sections which depend on both the incoming and outgoing energy groups + and are therefore represented by matrices. Examples of this include the + scattering and nu-fission matrices. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for deterministic neutronics calculations. + + NOTE: Users should instantiate the subclasses of this abstract class. + + Parameters + ---------- + 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 : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section + 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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + # This is an abstract class which cannot be instantiated + __metaclass__ = abc.ABCMeta + + @property + def filters(self): + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy = openmc.Filter('energy', group_edges) + energyout = openmc.Filter('energyout', group_edges) + + filters = [[energy], [energy, energyout]] + + return filters + + @property + def estimator(self): + return 'analog' + + def get_xs(self, in_groups='all', out_groups='all', + subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', + row_column='inout', value='mean', **kwargs): + r"""Returns an array of multi-group cross sections. + + This method constructs a 2D NumPy array for the requested multiplicity + matrix data data for one or more energy groups and subdomains. + + Parameters + ---------- + in_groups : Iterable of Integral or 'all' + Incoming energy groups of interest. Defaults to 'all'. + out_groups : Iterable of Integral or 'all' + Outgoing energy groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + row_column: {'inout', 'outin'} + Return the cross section indexed first by incoming group and + second by outgoing group ('inout'), or vice versa ('outin'). + Defaults to 'inout'. + value : str + A string for the type of value to return - 'mean', 'std_dev', or + 'rel_err' are accepted. Defaults to the empty string. + + Returns + ------- + ndarray + A NumPy array of the multi-group cross section indexed in the order + each group and subdomain is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(in_groups, basestring): + cv.check_iterable_type('groups', in_groups, Integral) + for group in in_groups: + filters.append('energy') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(out_groups, basestring): + cv.check_iterable_type('groups', out_groups, Integral) + for group in out_groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct a collection of the nuclides to retrieve from the xs tally + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides + else: + query_nuclides = ['total'] + + # Use tally summation if user requested the sum for all nuclides + if nuclides == 'sum' or nuclides == ['sum']: + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, + value=value) + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=query_nuclides, value=value) + + xs = np.nan_to_num(xs) + + # Divide by atom number densities for microscopic cross sections + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + if in_groups == 'all': + num_in_groups = self.num_groups + else: + num_in_groups = len(in_groups) + if out_groups == 'all': + num_out_groups = self.num_groups + else: + num_out_groups = len(out_groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = int(xs.shape[0] / + (num_in_groups * num_out_groups)) + new_shape = (num_subdomains, num_in_groups, num_out_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Transpose the matrix if requested by user + if row_column == 'outin': + xs = np.swapaxes(xs, 1, 2) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_2d(xs) + + return xs + + def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): + """Build a sliced NuFissionMatrix 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 []) + 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 int + A list of outgoing energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) + + Returns + ------- + 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. + + """ + + # Call super class method and null out derived tallies + slice_xs = super(NuFissionMatrixXS, self).get_slice(nuclides, + in_groups) + slice_xs._rxn_rate_tally = None + slice_xs._xs_tally = None + + # Slice outgoing energy groups if needed + if len(out_groups) != 0: + filter_bins = [] + for group in out_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 energyout 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 print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): + """Prints a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will report + the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + if nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + string += '{0: <16}\n'.format('\tEnergy Groups:') + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += \ + '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if xs_type != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + if xs_type == 'macro': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') + else: + string += '{0: <16}\n'.format('\tCross Sections [barns]:') + + template = '{0: <12}Group {1} -> Group {2}:\t\t' + + # Loop over incoming/outgoing energy groups ranges + for in_group in range(1, self.num_groups+1): + for out_group in range(1, self.num_groups+1): + string += template.format('', in_group, out_group) + average = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + string += '\n' + + print(string) + + class TotalXS(MGXS): """A total multi-group cross section. @@ -3191,7 +3594,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): self._hdf5_key = 'nu-scatter matrix' -class MultiplicityMatrix(MGXS): +class MultiplicityMatrix(MatrixMGXS): """The scattering multiplicity matrix. This class can be used for both OpenMC input generation and tally data @@ -3280,23 +3683,19 @@ class MultiplicityMatrix(MGXS): @property def scores(self): - return ['nu-scatter', 'scatter'] + scores = ['nu-scatter', 'scatter'] + return scores @property def filters(self): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges + energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - energyin = openmc.Filter('energy', group_edges) - return [[energyin, energyout], [energyin, energyout]] - @property - def tally_keys(self): - return ['nu-scatter', 'scatter'] + filters = [[energy, energyout], [energy, energyout]] - @property - def estimator(self): - return 'analog' + return filters @property def rxn_rate_tally(self): @@ -3317,306 +3716,8 @@ class MultiplicityMatrix(MGXS): return self._xs_tally - def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): - """Build a sliced MultiplicityMatrix 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 []) - 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 int - A list of outgoing energy group indices starting at 1 for the high - energies (e.g., [1, 2, 3]; default is []) - - Returns - ------- - 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. - - """ - - # Call super class method and null out derived tallies - slice_xs = super(MultiplicityMatrix, self).get_slice(nuclides, - in_groups) - slice_xs._rxn_rate_tally = None - slice_xs._xs_tally = None - - # Slice outgoing energy groups if needed - if len(out_groups) != 0: - filter_bins = [] - for group in out_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 energyout 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', - row_column='inout', value='mean', **kwargs): - r"""Returns an array of multi-group cross sections. - - This method constructs a 2D NumPy array for the requested multiplicity - matrix data data for one or more energy groups and subdomains. - - Parameters - ---------- - in_groups : Iterable of Integral or 'all' - Incoming energy groups of interest. Defaults to 'all'. - out_groups : Iterable of Integral or 'all' - Outgoing energy groups of interest. Defaults to 'all'. - subdomains : Iterable of Integral or 'all' - Subdomain IDs of interest. Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The - special string 'all' will return the cross sections for all nuclides - in the spatial domain. The special string 'sum' will return the - cross section summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. - order_groups: {'increasing', 'decreasing'} - Return the cross section indexed according to increasing or - decreasing energy groups (decreasing or increasing energies). - Defaults to 'increasing'. - row_column: {'inout', 'outin'} - Return the cross section indexed first by incoming group and - second by outgoing group ('inout'), or vice versa ('outin'). - Defaults to 'inout'. - value : str - A string for the type of value to return - 'mean', 'std_dev', or - 'rel_err' are accepted. Defaults to the empty string. - - Returns - ------- - ndarray - A NumPy array of the multi-group cross section indexed in the order - each group and subdomain is listed in the parameters. - - Raises - ------ - ValueError - When this method is called before the multi-group cross section is - computed from tally data. - - """ - - cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - filters = [] - filter_bins = [] - - # Construct a collection of the domain filter bins - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) - for subdomain in subdomains: - filters.append(self.domain_type) - filter_bins.append((subdomain,)) - - # Construct list of energy group bounds tuples for all requested groups - if not isinstance(in_groups, basestring): - cv.check_iterable_type('groups', in_groups, Integral) - for group in in_groups: - filters.append('energy') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) - - # Construct list of energy group bounds tuples for all requested groups - if not isinstance(out_groups, basestring): - cv.check_iterable_type('groups', out_groups, Integral) - for group in out_groups: - filters.append('energyout') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) - - # Construct a collection of the nuclides to retrieve from the xs tally - if self.by_nuclide: - if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: - query_nuclides = self.get_all_nuclides() - else: - query_nuclides = nuclides - else: - query_nuclides = ['total'] - - # Use tally summation if user requested the sum for all nuclides - if nuclides == 'sum' or nuclides == ['sum']: - xs_tally = self.xs_tally.summation(nuclides=query_nuclides) - xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, - value=value) - else: - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, - nuclides=query_nuclides, value=value) - - xs = np.nan_to_num(xs) - - # Divide by atom number densities for microscopic cross sections - if xs_type == 'micro': - if self.by_nuclide: - densities = self.get_nuclide_densities(nuclides) - else: - densities = self.get_nuclide_densities('sum') - if value == 'mean' or value == 'std_dev': - xs /= densities[np.newaxis, :, np.newaxis] - - # Reverse data if user requested increasing energy groups since - # tally data is stored in order of increasing energies - if order_groups == 'increasing': - if in_groups == 'all': - num_in_groups = self.num_groups - else: - num_in_groups = len(in_groups) - if out_groups == 'all': - num_out_groups = self.num_groups - else: - num_out_groups = len(out_groups) - - # Reshape tally data array with separate axes for domain and energy - num_subdomains = int(xs.shape[0] / - (num_in_groups * num_out_groups)) - new_shape = (num_subdomains, num_in_groups, num_out_groups) - new_shape += xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Transpose the matrix if requested by user - if row_column == 'outin': - xs = np.swapaxes(xs, 1, 2) - - # Reverse energies to align with increasing energy groups - xs = xs[:, ::-1, ::-1, :] - - # Eliminate trivial dimensions - xs = np.squeeze(xs) - xs = np.atleast_2d(xs) - - return xs - - def print_xs(self, subdomains='all', nuclides='all', - xs_type='macro'): - """Prints a string representation for the multi-group cross section. - - Parameters - ---------- - subdomains : Iterable of Integral or 'all' - The subdomain IDs of the cross sections to include in the report. - Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). - The special string 'all' will report the cross sections for all - nuclides in the spatial domain. The special string 'sum' will report - the cross sections summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. - - """ - - # Construct a collection of the subdomains to report - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral) - elif self.domain_type == 'distribcell': - subdomains = np.arange(self.num_subdomains, dtype=np.int) - else: - subdomains = [self.domain.id] - - # Construct a collection of the nuclides to report - if self.by_nuclide: - if nuclides == 'all': - nuclides = self.get_all_nuclides() - if nuclides == 'sum': - nuclides = ['sum'] - else: - cv.check_iterable_type('nuclides', nuclides, basestring) - else: - nuclides = ['sum'] - - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - # Build header for string with type and domain info - string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) - - # If cross section data has not been computed, only print string header - if self.tallies is None: - print(string) - return - - string += '{0: <16}\n'.format('\tEnergy Groups:') - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' - - # Loop over energy groups ranges - for group in range(1, self.num_groups+1): - bounds = self.energy_groups.get_group_bounds(group) - string += template.format('', group, bounds[0], bounds[1]) - - # Loop over all subdomains - for subdomain in subdomains: - - if self.domain_type == 'distribcell': - string += \ - '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - - # Loop over all Nuclides - for nuclide in nuclides: - - # Build header for nuclide type - if xs_type != 'sum': - string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) - - # Build header for cross section type - if xs_type == 'macro': - string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') - else: - string += '{0: <16}\n'.format('\tCross Sections [barns]:') - - template = '{0: <12}Group {1} -> Group {2}:\t\t' - - # Loop over incoming/outgoing energy groups ranges - for in_group in range(1, self.num_groups+1): - for out_group in range(1, self.num_groups+1): - string += template.format('', in_group, out_group) - average = \ - self.get_xs([in_group], [out_group], - [subdomain], [nuclide], - xs_type=xs_type, value='mean') - rel_err = \ - self.get_xs([in_group], [out_group], - [subdomain], [nuclide], - xs_type=xs_type, value='rel_err') - average = average.flatten()[0] - rel_err = rel_err.flatten()[0] * 100. - string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) - string += '\n' - string += '\n' - string += '\n' - string += '\n' - - print(string) - - -class NuFissionMatrixXS(MGXS): +class NuFissionMatrixXS(MatrixMGXS): """A fission production matrix multi-group cross section. This class can be used for both OpenMC input generation and tally data @@ -3702,32 +3803,12 @@ class NuFissionMatrixXS(MGXS): super(NuFissionMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'nu-fission matrix' - self._hdf5_key = 'nu-fission matrix' - - def __deepcopy__(self, memo): - clone = super(NuFissionMatrixXS, self).__deepcopy__(memo) - return clone @property def scores(self): scores = ['flux', 'nu-fission'] - return scores - @property - def filters(self): - group_edges = self.energy_groups.group_edges - energy = openmc.Filter('energy', group_edges) - energyout = openmc.Filter('energyout', group_edges) - - filters = [[energy], [energy, energyout]] - - return filters - - @property - def estimator(self): - return 'analog' - @property def rxn_rate_tally(self): if self._rxn_rate_tally is None: @@ -3735,304 +3816,6 @@ class NuFissionMatrixXS(MGXS): self._rxn_rate_tally.sparse = self.sparse return self._rxn_rate_tally - def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): - """Build a sliced NuFissionMatrix 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 []) - 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 int - A list of outgoing energy group indices starting at 1 for the high - energies (e.g., [1, 2, 3]; default is []) - - Returns - ------- - 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. - - """ - - # Call super class method and null out derived tallies - slice_xs = super(NuFissionMatrixXS, self).get_slice(nuclides, - in_groups) - slice_xs._rxn_rate_tally = None - slice_xs._xs_tally = None - - # Slice outgoing energy groups if needed - if len(out_groups) != 0: - filter_bins = [] - for group in out_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 energyout 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', - row_column='inout', value='mean', **kwargs): - r"""Returns an array of multi-group cross sections. - - This method constructs a 2D NumPy array for the requested nu-fission - matrix data data for one or more energy groups and subdomains. - - Parameters - ---------- - in_groups : Iterable of Integral or 'all' - Incoming energy groups of interest. Defaults to 'all'. - out_groups : Iterable of Integral or 'all' - Outgoing energy groups of interest. Defaults to 'all'. - subdomains : Iterable of Integral or 'all' - Subdomain IDs of interest. Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The - special string 'all' will return the cross sections for all nuclides - in the spatial domain. The special string 'sum' will return the - cross section summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. - order_groups: {'increasing', 'decreasing'} - Return the cross section indexed according to increasing or - decreasing energy groups (decreasing or increasing energies). - Defaults to 'increasing'. - row_column: {'inout', 'outin'} - Return the cross section indexed first by incoming group and - second by outgoing group ('inout'), or vice versa ('outin'). - Defaults to 'inout'. - value : str - A string for the type of value to return - 'mean', 'std_dev', or - 'rel_err' are accepted. Defaults to the empty string. - - Returns - ------- - ndarray - A NumPy array of the multi-group cross section indexed in the order - each group and subdomain is listed in the parameters. - - Raises - ------ - ValueError - When this method is called before the multi-group cross section is - computed from tally data. - - """ - - cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - filters = [] - filter_bins = [] - - # Construct a collection of the domain filter bins - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) - for subdomain in subdomains: - filters.append(self.domain_type) - filter_bins.append((subdomain,)) - - # Construct list of energy group bounds tuples for all requested groups - if not isinstance(in_groups, basestring): - cv.check_iterable_type('groups', in_groups, Integral) - for group in in_groups: - filters.append('energy') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) - - # Construct list of energy group bounds tuples for all requested groups - if not isinstance(out_groups, basestring): - cv.check_iterable_type('groups', out_groups, Integral) - for group in out_groups: - filters.append('energyout') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) - - # Construct a collection of the nuclides to retrieve from the xs tally - if self.by_nuclide: - if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: - query_nuclides = self.get_all_nuclides() - else: - query_nuclides = nuclides - else: - query_nuclides = ['total'] - - # Use tally summation if user requested the sum for all nuclides - if nuclides == 'sum' or nuclides == ['sum']: - xs_tally = self.xs_tally.summation(nuclides=query_nuclides) - xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, - value=value) - else: - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, - nuclides=query_nuclides, value=value) - - xs = np.nan_to_num(xs) - - # Divide by atom number densities for microscopic cross sections - if xs_type == 'micro': - if self.by_nuclide: - densities = self.get_nuclide_densities(nuclides) - else: - densities = self.get_nuclide_densities('sum') - if value == 'mean' or value == 'std_dev': - xs /= densities[np.newaxis, :, np.newaxis] - - # Reverse data if user requested increasing energy groups since - # tally data is stored in order of increasing energies - if order_groups == 'increasing': - if in_groups == 'all': - num_in_groups = self.num_groups - else: - num_in_groups = len(in_groups) - if out_groups == 'all': - num_out_groups = self.num_groups - else: - num_out_groups = len(out_groups) - - # Reshape tally data array with separate axes for domain and energy - num_subdomains = int(xs.shape[0] / - (num_in_groups * num_out_groups)) - new_shape = (num_subdomains, num_in_groups, num_out_groups) - new_shape += xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Transpose the matrix if requested by user - if row_column == 'outin': - xs = np.swapaxes(xs, 1, 2) - - # Reverse energies to align with increasing energy groups - xs = xs[:, ::-1, ::-1, :] - - # Eliminate trivial dimensions - xs = np.squeeze(xs) - xs = np.atleast_2d(xs) - - return xs - - def print_xs(self, subdomains='all', nuclides='all', - xs_type='macro'): - """Prints a string representation for the multi-group cross section. - - Parameters - ---------- - subdomains : Iterable of Integral or 'all' - The subdomain IDs of the cross sections to include in the report. - Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). - The special string 'all' will report the cross sections for all - nuclides in the spatial domain. The special string 'sum' will report - the cross sections summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. - - """ - - # Construct a collection of the subdomains to report - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral) - elif self.domain_type == 'distribcell': - subdomains = np.arange(self.num_subdomains, dtype=np.int) - else: - subdomains = [self.domain.id] - - # Construct a collection of the nuclides to report - if self.by_nuclide: - if nuclides == 'all': - nuclides = self.get_all_nuclides() - if nuclides == 'sum': - nuclides = ['sum'] - else: - cv.check_iterable_type('nuclides', nuclides, basestring) - else: - nuclides = ['sum'] - - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - # Build header for string with type and domain info - string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) - - # If cross section data has not been computed, only print string header - if self.tallies is None: - print(string) - return - - string += '{0: <16}\n'.format('\tEnergy Groups:') - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' - - # Loop over energy groups ranges - for group in range(1, self.num_groups+1): - bounds = self.energy_groups.get_group_bounds(group) - string += template.format('', group, bounds[0], bounds[1]) - - # Loop over all subdomains - for subdomain in subdomains: - - if self.domain_type == 'distribcell': - string += \ - '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - - # Loop over all Nuclides - for nuclide in nuclides: - - # Build header for nuclide type - if xs_type != 'sum': - string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) - - # Build header for cross section type - if xs_type == 'macro': - string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') - else: - string += '{0: <16}\n'.format('\tCross Sections [barns]:') - - template = '{0: <12}Group {1} -> Group {2}:\t\t' - - # Loop over incoming/outgoing energy groups ranges - for in_group in range(1, self.num_groups+1): - for out_group in range(1, self.num_groups+1): - string += template.format('', in_group, out_group) - average = \ - self.get_xs([in_group], [out_group], - [subdomain], [nuclide], - xs_type=xs_type, value='mean') - rel_err = \ - self.get_xs([in_group], [out_group], - [subdomain], [nuclide], - xs_type=xs_type, value='rel_err') - average = average.flatten()[0] - rel_err = rel_err.flatten()[0] * 100. - string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) - string += '\n' - string += '\n' - string += '\n' - string += '\n' - - print(string) - class Chi(MGXS): """The fission spectrum. From 29f62126117cc29c50477bde1e23e169e7795051 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 22 May 2016 20:36:50 -0400 Subject: [PATCH 008/417] Made ScatterMatrixXS (and by extension, NuScatterMatrixXS) point to MatrixMGXS now --- openmc/mgxs/mgxs.py | 46 ++++++++++++++++++++++-------------------- openmc/mgxs_library.py | 12 +++++------ 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b88e583aec..6ab726f890 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -480,7 +480,7 @@ class MGXS(object): elif mgxs_type == 'nu-scatter matrix': mgxs = NuScatterMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'multiplicity matrix': - mgxs = MultiplicityMatrix(domain, domain_type, energy_groups) + mgxs = MultiplicityMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'nu-fission matrix': mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'chi': @@ -1654,9 +1654,10 @@ class MatrixMGXS(MGXS): Subdomain IDs of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' A list of nuclide name strings (e.g., ['U-235', 'U-238']). The - special string 'all' will return the cross sections for all nuclides - in the spatial domain. The special string 'sum' will return the - cross section summed over all nuclides. Defaults to 'all'. + special string 'all' will return the cross sections for all + nuclides in the spatial domain. The special string 'sum' will + return the cross section summed over all nuclides. Defaults to + 'all'. xs_type: {'macro', 'micro'} Return the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. @@ -1694,7 +1695,8 @@ class MatrixMGXS(MGXS): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + cv.check_iterable_type('subdomains', subdomains, Integral, + max_depth=2) for subdomain in subdomains: filters.append(self.domain_type) filter_bins.append((subdomain,)) @@ -1704,14 +1706,16 @@ class MatrixMGXS(MGXS): cv.check_iterable_type('groups', in_groups, Integral) for group in in_groups: filters.append('energy') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) + filter_bins.append(( + self.energy_groups.get_group_bounds(group),)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(out_groups, basestring): cv.check_iterable_type('groups', out_groups, Integral) for group in out_groups: filters.append('energyout') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) + filter_bins.append(( + self.energy_groups.get_group_bounds(group),)) # Construct a collection of the nuclides to retrieve from the xs tally if self.by_nuclide: @@ -1840,8 +1844,9 @@ class MatrixMGXS(MGXS): The nuclides of the cross-sections to include in the report. This may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). The special string 'all' will report the cross sections for all - nuclides in the spatial domain. The special string 'sum' will report - the cross sections summed over all nuclides. Defaults to 'all'. + nuclides in the spatial domain. The special string 'sum' will + report the cross sections summed over all nuclides. Defaults to + 'all'. xs_type: {'macro', 'micro'} Return the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. @@ -1884,7 +1889,7 @@ class MatrixMGXS(MGXS): template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' # Loop over energy groups ranges - for group in range(1, self.num_groups+1): + for group in range(1, self.num_groups + 1): bounds = self.energy_groups.get_group_bounds(group) string += template.format('', group, bounds[0], bounds[1]) @@ -1911,8 +1916,8 @@ class MatrixMGXS(MGXS): template = '{0: <12}Group {1} -> Group {2}:\t\t' # Loop over incoming/outgoing energy groups ranges - for in_group in range(1, self.num_groups+1): - for out_group in range(1, self.num_groups+1): + for in_group in range(1, self.num_groups + 1): + for out_group in range(1, self.num_groups + 1): string += template.format('', in_group, out_group) average = \ self.get_xs([in_group], [out_group], @@ -1924,7 +1929,8 @@ class MatrixMGXS(MGXS): xs_type=xs_type, value='rel_err') average = average.flatten()[0] rel_err = rel_err.flatten()[0] * 100. - string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '{:1.2e} +/- {:1.2e}%'.format(average, + rel_err) string += '\n' string += '\n' string += '\n' @@ -2864,7 +2870,7 @@ class NuScatterXS(MGXS): self._rxn_type = 'nu-scatter' -class ScatterMatrixXS(MGXS): +class ScatterMatrixXS(MatrixMGXS): """A scattering matrix multi-group cross section for one or more Legendre moments. @@ -2998,10 +3004,6 @@ class ScatterMatrixXS(MGXS): return filters - @property - def estimator(self): - return 'analog' - @property def rxn_rate_tally(self): @@ -3594,7 +3596,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): self._hdf5_key = 'nu-scatter matrix' -class MultiplicityMatrix(MatrixMGXS): +class MultiplicityMatrixXS(MatrixMGXS): """The scattering multiplicity matrix. This class can be used for both OpenMC input generation and tally data @@ -3677,8 +3679,8 @@ class MultiplicityMatrix(MatrixMGXS): def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(MultiplicityMatrix, self).__init__(domain, domain_type, groups, - by_nuclide, name) + super(MultiplicityMatrixXS, self).__init__(domain, domain_type, groups, + by_nuclide, name) self._rxn_type = 'multiplicity' @property @@ -3712,7 +3714,7 @@ class MultiplicityMatrix(MatrixMGXS): # Compute the multiplicity self._xs_tally = self.rxn_rate_tally / scatter - super(MultiplicityMatrix, self)._compute_xs() + super(MultiplicityMatrixXS, self)._compute_xs() return self._xs_tally diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index f3d8b28fcd..f75d7e2e44 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -906,7 +906,7 @@ class XSdata(object): def set_multiplicity_mgxs(self, nuscatter, scatter=None, nuclide='total', xs_type='macro'): """This method allows for either the direct use of only an - openmc.mgxs.MultiplicityMatrix OR an openmc.mgxs.NuScatterMatrixXS and + openmc.mgxs.MultiplicityMatrixXS OR an openmc.mgxs.NuScatterMatrixXS and openmc.mgxs.ScatterMatrixXS to be used to set the scattering multiplicity for this XSdata object. Multiplicity, in OpenMC parlance, is a factor used to account for the production @@ -917,7 +917,7 @@ class XSdata(object): Parameters ---------- nuscatter: {openmc.mgxs.NuScatterMatrixXS, - openmc.mgxs.MultiplicityMatrix} + openmc.mgxs.MultiplicityMatrixXS} MGXS Object containing the matrix cross section for the domain of interest. scatter: openmc.mgxs.ScatterMatrixXS @@ -938,15 +938,15 @@ class XSdata(object): """ check_type('nuscatter', nuscatter, (openmc.mgxs.NuScatterMatrixXS, - openmc.mgxs.MultiplicityMatrix)) + openmc.mgxs.MultiplicityMatrixXS)) check_value('energy_groups', nuscatter.energy_groups, [self.energy_groups]) check_value('domain_type', nuscatter.domain_type, ['universe', 'cell', 'material']) if scatter is not None: check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) - if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrix): - msg = 'Either an MultiplicityMatrix object must be passed ' \ + if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrixXS): + msg = 'Either an MultiplicityMatrixXS object must be passed ' \ 'for "nuscatter" or the "scatter" argument must be ' \ 'provided.' raise ValueError(msg) @@ -958,7 +958,7 @@ class XSdata(object): if self.representation is 'isotropic': nuscatt = nuscatter.get_xs(nuclides=nuclide, xs_type=xs_type, moment=0) - if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrix): + if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrixXS): self._multiplicity = nuscatt else: scatt = scatter.get_xs(nuclides=nuclide, From 18fc97fc9abd5d6b7383f431ab93c8e01a647981 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 22 May 2016 21:31:33 -0400 Subject: [PATCH 009/417] Updating notebook to reflect changes thus far --- .../pythonapi/examples/mgxs-part-iv.ipynb | 139 +++++++++--------- openmc/mgxs/library.py | 4 +- 2 files changed, 72 insertions(+), 71 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index 4b73cf3caa..9c13d28ecd 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This Notebook illustrates the use of the openmc.mgxs.Library class specifically for application in OpenMC's multi-group mode. This example notebook follows the same process as was done in MGXS Part III, but instead uses OpenMC as the multi-group solver. This Notebook illustrates the following features:\n", + "This Notebook illustrates the use of the openmc.mgxs.Library class specifically for application in OpenMC's multi-group mode. This example notebook follows the same process as was done in MGXS Part III, but instead uses OpenMC as the multi-group solver. During this process, this notebook will illustrate the following features:\n", "\n", " - Calculation of multi-group cross sections for a fuel assembly\n", " - Automated creation and storage of MGXS with openmc.mgxs.Library\n", @@ -334,7 +334,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 10 inactive batches and 40 active batches each with 2500 particles." + "With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 10 inactive batches and 40 active batches each with 5000 particles." ] }, { @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -499,8 +499,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now, we must specify to the Library which types of cross sections to compute. OpenMC's multi-group mode can accept isotropic flux-weighted cross sections or angle-dependent cross sections, as well as supporting anisotropic scattering represented by either Legendre polynomials, histogram, or tabular angular distributions. At this time the MGXS Library class only supports the generation of isotropic flux-weighted cross sections and P0 scattering, so that is what will be used for this example. Therefore, we will create the following multi-group cross sections needed to run an OpenMC simulation to verify the accuracy of our cross sections: \"transport\", \"absorption\", \"nu-fission\", '\"fission\", \"nu-scatter matrix\", \"scatter matrix\", and \"chi\".\n", - "\"scatter matrix\" is needed in addition to \"nu-scatter matrix\" because OpenMC's multi-group mode can treat scattering multiplication (i.e., (n,xn) reactions)) explicitly instead of adjusting the absorption cross section to maintain neutron balance, and using this explicit treatment would require tallying of both types of scattering matrices." + "Now, we must specify to the Library which types of cross sections to compute. OpenMC's multi-group mode can accept isotropic flux-weighted cross sections or angle-dependent cross sections, as well as supporting anisotropic scattering represented by either Legendre polynomials, histogram, or tabular angular distributions. At this time the MGXS Library class only supports the generation of isotropic flux-weighted cross sections and P0 scattering, so that is what will be used for this example. Therefore, we will create the following multi-group cross sections needed to run an OpenMC simulation to verify the accuracy of our cross sections: \"total\", \"absorption\", \"nu-fission\", '\"fission\", \"nu-scatter matrix\", \"multiplicity matrix\", and \"chi\".\n", + "\"multiplicity matrix\" is needed to provide OpenMC's multi-group mode with additional information needed to accurately treat scattering multiplication (i.e., (n,xn) reactions)) explicitly." ] }, { @@ -513,7 +513,7 @@ "source": [ "# Specify multi-group cross section types to compute\n", "mgxs_lib.mgxs_types = ['total', 'absorption', 'nu-fission', 'fission',\n", - " 'nu-scatter matrix', 'scatter matrix', 'chi']" + " 'nu-scatter matrix', 'multiplicity matrix', 'chi']" ] }, { @@ -565,7 +565,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we will set the scattering order that we wish to use. For this problem we will use P3 scattering." + "Now we will set the scattering order that we wish to use. For this problem we will use P3 scattering. A warning is expected telling us that the default behavior (a P0 correction on the scattering data) is over-ridden by our choice of using a Legendre expansion to treat anisotropic scattering." ] }, { @@ -681,24 +681,24 @@ "tally.scores = ['fission']\n", "\n", "# Add tally to collection\n", - "tallies_file.append(tally)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ + "tallies_file.append(tally, merge=True)\n", + "\n", "# Export all tallies to a \"tallies.xml\" file\n", "tallies_file.export_to_xml()" ] }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Time to run the calculation and get our results!" + ] + }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -723,8 +723,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 058ba68895a2f880402fda3d58cfb14b162931d9\n", - " Date/Time: 2016-05-17 21:14:05\n", + " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", + " Date/Time: 2016-05-22 21:29:21\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -811,20 +811,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4530E+00 seconds\n", - " Reading cross sections = 1.1470E+00 seconds\n", - " Total time in simulation = 1.8747E+01 seconds\n", - " Time in transport only = 1.8639E+01 seconds\n", - " Time in inactive batches = 2.1690E+00 seconds\n", - " Time in active batches = 1.6578E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for initialization = 1.4810E+00 seconds\n", + " Reading cross sections = 1.1840E+00 seconds\n", + " Total time in simulation = 1.9619E+01 seconds\n", + " Time in transport only = 1.9512E+01 seconds\n", + " Time in inactive batches = 2.1770E+00 seconds\n", + " Time in active batches = 1.7442E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 6.0000E-03 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.0209E+01 seconds\n", - " Calculation Rate (inactive) = 23052.1 neutrons/second\n", - " Calculation Rate (active) = 12064.2 neutrons/second\n", + " Total time elapsed = 2.1110E+01 seconds\n", + " Calculation Rate (inactive) = 22967.4 neutrons/second\n", + " Calculation Rate (active) = 11466.6 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -842,7 +842,7 @@ "0" ] }, - "execution_count": 27, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -861,7 +861,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -886,7 +886,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -905,7 +905,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -924,7 +924,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -952,12 +952,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We will now use the `Library` to produce a multi-group cross section data set for use by the OpenMC multi-group solver. " + "We will now use the `Library` to produce a multi-group cross section data set for use by the OpenMC multi-group solver. \n", + "Note that since we have ran so few histories, is not unreasonable to expect some divisions by zero errors. This will show up as a runtime warning in the following step." ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -997,7 +998,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -1047,7 +1048,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "metadata": { "collapsed": true }, @@ -1072,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "metadata": { "collapsed": false, "scrolled": true @@ -1098,8 +1099,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 058ba68895a2f880402fda3d58cfb14b162931d9\n", - " Date/Time: 2016-05-17 21:14:26\n", + " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", + " Date/Time: 2016-05-22 21:29:43\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1183,20 +1184,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.6000E-02 seconds\n", - " Reading cross sections = 8.0000E-03 seconds\n", - " Total time in simulation = 1.4524E+01 seconds\n", - " Time in transport only = 1.4457E+01 seconds\n", - " Time in inactive batches = 1.3350E+00 seconds\n", - " Time in active batches = 1.3189E+01 seconds\n", - " Time synchronizing fission bank = 7.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 = 3.4000E-02 seconds\n", + " Reading cross sections = 3.0000E-03 seconds\n", + " Total time in simulation = 1.4720E+01 seconds\n", + " Time in transport only = 1.4678E+01 seconds\n", + " Time in inactive batches = 1.3020E+00 seconds\n", + " Time in active batches = 1.3418E+01 seconds\n", + " Time synchronizing fission bank = 6.0000E-03 seconds\n", + " Sampling source sites = 3.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 = 0.0000E+00 seconds\n", - " Total time elapsed = 1.4579E+01 seconds\n", - " Calculation Rate (inactive) = 37453.2 neutrons/second\n", - " Calculation Rate (active) = 15164.2 neutrons/second\n", + " Total time elapsed = 1.4763E+01 seconds\n", + " Calculation Rate (inactive) = 38402.5 neutrons/second\n", + " Calculation Rate (active) = 14905.4 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1214,7 +1215,7 @@ "0" ] }, - "execution_count": 35, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -1237,7 +1238,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -1257,7 +1258,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 36, "metadata": { "collapsed": true }, @@ -1275,7 +1276,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 37, "metadata": { "collapsed": false }, @@ -1302,7 +1303,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This shows a nontrivial pcm bias between the two methods. Some degree of mismatch is expected simply to the very few histories being used in these example problems. An additional mismatch is always inherent in the practical application of multi-group theory due to the high degree of approximations inherent in that method." + "This shows a small but nontrivial pcm bias between the two methods. Some degree of mismatch is expected simply to the very few histories being used in these example problems. An additional mismatch is always inherent in the practical application of multi-group theory due to the high degree of approximations inherent in that method." ] }, { @@ -1323,7 +1324,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -1349,7 +1350,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 39, "metadata": { "collapsed": false }, @@ -1375,7 +1376,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 40, "metadata": { "collapsed": false }, @@ -1383,10 +1384,10 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 41, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" }, @@ -1394,7 +1395,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 23d40a9527..4fffe0080c 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -872,8 +872,8 @@ class Library(object): nuclide=[nuclide]) # If multiplicity matrix is available, prefer that if 'multiplicity matrix' in self.mgxs_types: - mult_mgxs = self.get_mgxs(domain, 'multiplicity matrix') - xsdata.set_multiplicity_mgxs(mult_mgxs, xs_type=xs_type, + mymgxs = self.get_mgxs(domain, 'multiplicity matrix') + xsdata.set_multiplicity_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) using_multiplicity = True # multiplicity wil fall back to using scatter and nu-scatter From 9586ed3c0718ce5fbfdacc551966a4de9e64fb42 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 23 May 2016 11:51:23 -0500 Subject: [PATCH 010/417] Fix two hexagonal lattice bugs. 1) The center of the lattice was placed incorrectly when the number of axial positions was an even number. 2) The center of the lattice had no effect in the radial direction. --- src/geometry_header.F90 | 47 +++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/src/geometry_header.F90 b/src/geometry_header.F90 index 1adda3ea34..30f82f7064 100644 --- a/src/geometry_header.F90 +++ b/src/geometry_header.F90 @@ -1,6 +1,6 @@ module geometry_header - use constants, only: HALF, TWO, THREE + use constants, only: HALF, TWO, THREE, INFINITY implicit none @@ -201,20 +201,22 @@ contains real(8), intent(in) :: global_xyz(3) integer :: i_xyz(3) - real(8) :: xyz(3) ! global_xyz alias + real(8) :: xyz(3) ! global xyz relative to the center real(8) :: alpha ! Skewed coord axis real(8) :: xyz_t(3) ! Local xyz - real(8) :: dists(4) ! Squared distances from cell centers + real(8) :: d, d_min ! Squared distance from cell centers integer :: i, j, k ! Iterators - integer :: loc(1) ! Minimum distance index + integer :: k_min ! Minimum distance index - xyz = global_xyz + xyz(1) = global_xyz(1) - this % center(1) + xyz(2) = global_xyz(2) - this % center(2) ! Index z direction. if (this % is_3d) then - i_xyz(3) = ceiling((xyz(3) - this % center(3))/this % pitch(2) + HALF)& - + this % n_axial/2 + xyz(3) = global_xyz(3) - this % center(3) + i_xyz(3) = ceiling(xyz(3)/this % pitch(2) + HALF*this % n_axial) else + xyz(3) = global_xyz(3) i_xyz(3) = 1 end if @@ -233,28 +235,33 @@ contains ! the four possible cells. Regular hexagonal tiles form a centroidal ! Voronoi tessellation so the global xyz should be in the hexagonal cell ! that it is closest to the center of. This method is used over a - ! method that uses the remainders of the floor divisions above becasue it + ! method that uses the remainders of the floor divisions above because it ! provides better finite precision performance. Squared distances are ! used becasue they are more computationally efficient than normal ! distances. k = 1 - do i=0,1 - do j=0,1 - xyz_t = this % get_local_xyz(xyz, i_xyz + (/j, i, 0/)) - dists(k) = xyz_t(1)**2 + xyz_t(2)**2 + d_min = INFINITY + do i = 0, 1 + do j = 0, 1 + xyz_t = this % get_local_xyz(global_xyz, i_xyz + [j, i, 0]) + d = xyz_t(1)**2 + xyz_t(2)**2 + if (d < d_min) then + d_min = d + k_min = k + end if k = k + 1 end do end do ! Select the minimum squared distance which corresponds to the cell the ! coordinates are in. - loc = minloc(dists) - if (loc(1) == 2) then - i_xyz = i_xyz + (/1, 0, 0/) - else if (loc(1) == 3) then - i_xyz = i_xyz + (/0, 1, 0/) - else if (loc(1) == 4) then - i_xyz = i_xyz + (/1, 1, 0/) + if (k_min == 2) then + i_xyz(1) = i_xyz(1) + 1 + else if (k_min == 3) then + i_xyz(2) = i_xyz(2) + 1 + else if (k_min == 4) then + i_xyz(1) = i_xyz(1) + 1 + i_xyz(2) = i_xyz(2) + 1 end if end function get_inds_hex @@ -303,7 +310,7 @@ contains (i_xyz(1) - this % n_rings) * this % pitch(1) / TWO) if (this % is_3d) then local_xyz(3) = xyz(3) - this % center(3) & - + (this % n_axial/2 - i_xyz(3) + 1) * this % pitch(2) + + (HALF*this % n_axial - i_xyz(3) + HALF) * this % pitch(2) else local_xyz(3) = xyz(3) end if From abd069a9c28fdf9ddeebfde9f795b21e44f2a86f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 23 May 2016 20:39:16 -0400 Subject: [PATCH 011/417] Minor comment changes to pyapi --- openmc/mgxs/library.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 4fffe0080c..25427b2aaf 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -942,6 +942,7 @@ class Library(object): See also -------- Library.dump_to_file() + Library.create_mg_mode() """ @@ -994,7 +995,10 @@ class Library(object): def create_mg_mode(self, xsdata_names=None, xs_ids=None): """Creates an openmc.MGXSLibrary object to contain the MGXS data for the Multi-Group mode of OpenMC as well as the associated openmc.Materials - and openmc.Geometry objects. This method only creates a macroscopic + and openmc.Geometry objects. The created Geometry is the same as that + used to generate the MGXS data, with the only differences being + modifications to point to newly-created Materials which point to the + multi-group data. This method only creates a macroscopic MGXS Library even if nuclidic tallies are specified in the Library. Parameters @@ -1112,8 +1116,9 @@ class Library(object): needed to support tallies the user may wish to request. - A nu-scatter matrix is required. + - Having a multiplicity matrix is preferred. - Having both nu-scatter (of any order) and scatter - (at least isotropic) matrices is preferred + (at least isotropic) matrices is the second choice. - If only nu-scatter, need total (not transport), to be used in adjusting absorption (i.e., reduced_abs = tot - nuscatt) From 7aac42686093b887defb9fac0570fe20c99717af Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 23 May 2016 20:42:34 -0400 Subject: [PATCH 012/417] And one more comment change to include multiplicity matrix in mgxs_type docstring def --- openmc/mgxs/library.py | 3 ++- openmc/mgxs/mgxs.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 25427b2aaf..1ceaf455dd 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -463,7 +463,8 @@ class Library(object): mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'nu-fission matrix', chi'} + 'nu-scatter matrix', 'multiplicity matrix', + 'nu-fission matrix', chi'} The type of multi-group cross section object to return Returns diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 6ab726f890..bd26156a46 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -430,7 +430,8 @@ class MGXS(object): mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'nu-fission matrix', 'chi'} + 'nu-scatter matrix', 'multiplicity matrix', + 'nu-fission matrix', chi'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization From 18447b7f00d12719f81907aa830cb75b9e38f9b4 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 23 May 2016 21:31:23 -0400 Subject: [PATCH 013/417] updating for 2 comments per @wbinventory --- openmc/mgxs/library.py | 6 +----- openmc/mgxs/mgxs.py | 9 ++------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 1ceaf455dd..4c2497173e 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -460,11 +460,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', 'nu-transport', 'absorption', - 'capture', 'fission', 'nu-fission', 'kappa-fission', - 'scatter', 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'multiplicity matrix', - 'nu-fission matrix', chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi'} The type of multi-group cross section object to return Returns diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index bd26156a46..76da3a587f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -427,11 +427,7 @@ class MGXS(object): Parameters ---------- - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', - 'capture', 'fission', 'nu-fission', 'kappa-fission', - 'scatter', 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'multiplicity matrix', - 'nu-fission matrix', chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization @@ -1810,8 +1806,7 @@ class MatrixMGXS(MGXS): """ # Call super class method and null out derived tallies - slice_xs = super(NuFissionMatrixXS, self).get_slice(nuclides, - in_groups) + slice_xs = super(MatrixMGXS, self).get_slice(nuclides, in_groups) slice_xs._rxn_rate_tally = None slice_xs._xs_tally = None From 48ac499d8a96ccc2ceadc72675e0b8a0b7df3d61 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 24 May 2016 16:24:26 -0500 Subject: [PATCH 014/417] Respond to @smharper suggestions on #647 --- docs/source/usersguide/input.rst | 8 +++-- openmc/surface.py | 53 +++++++++++++++++--------------- src/geometry.F90 | 12 +++++--- 3 files changed, 43 insertions(+), 30 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index ea51723b7b..e9ce42fd9c 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -897,8 +897,12 @@ Each ```` element can have the following attributes or sub-elements: *Default*: None :boundary: - The boundary condition for the surface. This can be "transmission", - "vacuum", "reflective", or "periodic". + The boundary condition for the surface. This can be "transmission", + "vacuum", "reflective", or "periodic". Periodic boundary conditions can + only be applied to x-, y-, and z-planes. Only axis-aligned periodicity is + supported, i.e., x-planes an only be paired with x-planes. Specify which + planes are periodic and the code will automatically identify which planes + are paired together. *Default*: "transmission" diff --git a/openmc/surface.py b/openmc/surface.py index 37e7c2ffdb..239b868aa2 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -37,7 +37,9 @@ class Surface(object): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles - freely pass through the surface. + freely pass through the surface. Note that periodic boundary conditions + can only be applied to x-, y-, and z-planes, and only axis-aligned + periodicity is supported. name : str, optional Name of the surface. If not specified, the name will be the empty string. @@ -192,7 +194,7 @@ class Plane(Surface): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -217,7 +219,7 @@ class Plane(Surface): The 'C' parameter for the plane d : float The 'D' parameter for the plane - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -290,7 +292,8 @@ class XPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles - freely pass through the surface. + freely pass through the surface. Only axis-aligned periodicity is + supported, i.e., x-planes can only be paired with x-planes. x0 : float, optional Location of the plane. Defaults to 0. name : str, optional @@ -374,7 +377,8 @@ class YPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles - freely pass through the surface. + freely pass through the surface. Only axis-aligned periodicity is + supported, i.e., x-planes can only be paired with x-planes. y0 : float, optional Location of the plane name : str, optional @@ -459,7 +463,8 @@ class ZPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles - freely pass through the surface. + freely pass through the surface. Only axis-aligned periodicity is + supported, i.e., x-planes can only be paired with x-planes. z0 : float, optional Location of the plane. Defaults to 0. name : str, optional @@ -541,7 +546,7 @@ class Cylinder(Surface): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -555,7 +560,7 @@ class Cylinder(Surface): ---------- r : float Radius of the cylinder - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -597,7 +602,7 @@ class XCylinder(Cylinder): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -617,7 +622,7 @@ class XCylinder(Cylinder): y-coordinate of the center of the cylinder z0 : float z-coordinate of the center of the cylinder - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -700,7 +705,7 @@ class YCylinder(Cylinder): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -720,7 +725,7 @@ class YCylinder(Cylinder): x-coordinate of the center of the cylinder z0 : float z-coordinate of the center of the cylinder - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -803,7 +808,7 @@ class ZCylinder(Cylinder): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -823,7 +828,7 @@ class ZCylinder(Cylinder): x-coordinate of the center of the cylinder y0 : float y-coordinate of the center of the cylinder - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -905,7 +910,7 @@ class Sphere(Surface): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -930,7 +935,7 @@ class Sphere(Surface): z-coordinate of the center of the sphere R : float Radius of the sphere - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -1033,7 +1038,7 @@ class Cone(Surface): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -1058,7 +1063,7 @@ class Cone(Surface): z-coordinate of the apex R2 : float Parameter related to the aperature - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -1130,7 +1135,7 @@ class XCone(Cone): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -1155,7 +1160,7 @@ class XCone(Cone): z-coordinate of the apex R2 : float Parameter related to the aperature - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -1186,7 +1191,7 @@ class YCone(Cone): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -1211,7 +1216,7 @@ class YCone(Cone): z-coordinate of the apex R2 : float Parameter related to the aperature - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -1242,7 +1247,7 @@ class ZCone(Cone): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -1267,7 +1272,7 @@ class ZCone(Cone): z-coordinate of the apex R2 : float Parameter related to the aperature - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict diff --git a/src/geometry.F90 b/src/geometry.F90 index 62c5036a9c..2059ea42fc 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -378,6 +378,7 @@ contains real(8) :: v ! y-component of direction real(8) :: w ! z-component of direction real(8) :: norm ! "norm" of surface normal + real(8) :: xyz(3) ! Saved global coordinate integer :: i_surface ! index in surfaces logical :: found ! particle found in universe? class(Surface), pointer :: surf @@ -435,9 +436,10 @@ contains ! case the surface crossing is coincident with a mesh boundary if (active_current_tallies % size() > 0) then + xyz = p % coord(1) % xyz p % coord(1) % xyz = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw call score_surface_current(p) - p % coord(1) % xyz = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw + p % coord(1) % xyz = xyz end if ! Reflect particle off surface @@ -481,8 +483,9 @@ contains ! Do not handle periodic boundary conditions on lower universes if (p % n_coord /= 1) then - call handle_lost_particle(p, "Cannot period particle " & - // trim(to_str(p % id)) // " off surface in a lower universe.") + call handle_lost_particle(p, "Cannot transfer particle " & + // trim(to_str(p % id)) // " across surface in a lower universe.& + & Boundary conditions must be applied to universe 0.") return end if @@ -491,9 +494,10 @@ contains ! case the surface crossing is coincident with a mesh boundary if (active_current_tallies % size() > 0) then + xyz = p % coord(1) % xyz p % coord(1) % xyz = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw call score_surface_current(p) - p % coord(1) % xyz = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw + p % coord(1) % xyz = xyz end if select type (surf) From 7794fae54dc9fd56eb23d673b3d02c30944fbaae Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 24 May 2016 20:19:14 -0400 Subject: [PATCH 015/417] updates per @wbinventor comments --- .../pythonapi/examples/mgxs-part-iv.ipynb | 60 ++++----- openmc/mgxs/mgxs.py | 122 ++++++++---------- openmc/mgxs_library.py | 4 +- 3 files changed, 86 insertions(+), 100 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index 9c13d28ecd..b330e7ace8 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX////pgJFyEhJNv8RV\nUZDeAAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AFGBM0Bsv0CskAAAWFSURBVGje7Zs7cttADIZ9CSvX\ncrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbjpPlGESISC4A/gd27e8H5\n83CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9w2fESuEoAR/uVuMolX03\n9oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoPj/DPNX4Tsd+EODr8FvsV\ndf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUCbESL61drBPtdI8SrFMWr\nELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4OixNCgcQpJ3BxU/Ln91elKo\nM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQv/sQh9gV7zZ/0dNj5HQa\nC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6gKxNU9a8zK+WLbi/Wwpdi\nhbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G6H1D4SR/iPy1Roj9JsQ5\ne18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6a7D6y9ZvwEKjrtQxPtv6\nfXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+kxsZgpT91+snoX1l49KK3\niUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSfcsjZ56f60kz+XmVPXv+R\nuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePnTWpsf/SvqV9O6dLYYClL\nEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG/xYoZZx+8fr3MxAtsf7t\nUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6AKIVrlML2/cXjgPFjlJqI\nRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7W4n1b3T/W+L+t9H9T/Sv\nVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1PN+122KkLcNLKi/WTF01z\n/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfDl6ZglNDa+cEBhwYDvkoN\nP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87qXzr+b1j/Xlp/nP6dn98M\ncdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xslegL9a4c2KRr9W4rp/GYq\numiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXWf+7zh/v8+2b9e/Hzn6s/\nuPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv3P4fs//I7X9y+6/fqH+v\n6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9fy8kb/6fO39y23P3n3S8\n/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/Sjw/Ltr/yt1/+337f6/b\nf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5f8Q9/8Q9f8U+/5U7f3Lb\nc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTYtMDUtMjRUMTk6NTI6MDYtMDQ6MDBj3IIkAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA1LTI0\nVDE5OjUyOjA2LTA0OjAwEoE6mAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -724,7 +724,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", - " Date/Time: 2016-05-22 21:29:21\n", + " Date/Time: 2016-05-24 19:52:06\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -811,20 +811,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4810E+00 seconds\n", - " Reading cross sections = 1.1840E+00 seconds\n", - " Total time in simulation = 1.9619E+01 seconds\n", - " Time in transport only = 1.9512E+01 seconds\n", - " Time in inactive batches = 2.1770E+00 seconds\n", - " Time in active batches = 1.7442E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-02 seconds\n", - " Sampling source sites = 6.0000E-03 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for initialization = 1.4330E+00 seconds\n", + " Reading cross sections = 1.1310E+00 seconds\n", + " Total time in simulation = 1.8040E+01 seconds\n", + " Time in transport only = 1.7983E+01 seconds\n", + " Time in inactive batches = 2.0740E+00 seconds\n", + " Time in active batches = 1.5966E+01 seconds\n", + " Time synchronizing fission bank = 8.0000E-03 seconds\n", + " Sampling source sites = 5.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 = 0.0000E+00 seconds\n", - " Total time elapsed = 2.1110E+01 seconds\n", - " Calculation Rate (inactive) = 22967.4 neutrons/second\n", - " Calculation Rate (active) = 11466.6 neutrons/second\n", + " Total time elapsed = 1.9482E+01 seconds\n", + " Calculation Rate (inactive) = 24108.0 neutrons/second\n", + " Calculation Rate (active) = 12526.6 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -953,7 +953,7 @@ "metadata": {}, "source": [ "We will now use the `Library` to produce a multi-group cross section data set for use by the OpenMC multi-group solver. \n", - "Note that since we have ran so few histories, is not unreasonable to expect some divisions by zero errors. This will show up as a runtime warning in the following step." + "Note that since this simulation included so few histories, it is reasonable to expect some divisions by zero errors. This will show up as a runtime warning in the following step." ] }, { @@ -1100,7 +1100,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", - " Date/Time: 2016-05-22 21:29:43\n", + " Date/Time: 2016-05-24 19:52:26\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1184,20 +1184,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.4000E-02 seconds\n", - " Reading cross sections = 3.0000E-03 seconds\n", - " Total time in simulation = 1.4720E+01 seconds\n", - " Time in transport only = 1.4678E+01 seconds\n", - " Time in inactive batches = 1.3020E+00 seconds\n", - " Time in active batches = 1.3418E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 3.6000E-02 seconds\n", + " Reading cross sections = 7.0000E-03 seconds\n", + " Total time in simulation = 1.4412E+01 seconds\n", + " Time in transport only = 1.4376E+01 seconds\n", + " Time in inactive batches = 1.2750E+00 seconds\n", + " Time in active batches = 1.3137E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 7.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 = 0.0000E+00 seconds\n", - " Total time elapsed = 1.4763E+01 seconds\n", - " Calculation Rate (inactive) = 38402.5 neutrons/second\n", - " Calculation Rate (active) = 14905.4 neutrons/second\n", + " Total time elapsed = 1.4458E+01 seconds\n", + " Calculation Rate (inactive) = 39215.7 neutrons/second\n", + " Calculation Rate (active) = 15224.2 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1384,7 +1384,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1395,7 +1395,7 @@ "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAADDCAYAAACS2+oqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXeYFeX1xz8HUJSmoIJiA8WOokSwm43RtUSjiQ1LbAnq\nzySYaGzR6IrGHns0tih2YzcxidjWXlAUS2woIoiggoqKorDn98fMwmXZe88su5e7O3w/z7PP3jvv\nd9733HfOnHmnnHnN3RFCCNH2aVdpA4QQQrQMCuhCCJETFNCFECInKKALIUROUEAXQoicoIAuhBA5\nodUFdDN7zcy2rrQdizJm9m8z+0Uz1r/czE5sSZsWRcyszsxWK1Ge231FPriAuHv4B+wLjAK+BD4E\n7ge2yLJuUO+1wPDm1lPJv/Q3zASmp39fAi9V2q4Mdp8CfFdg83TgD5W2qwk2TwOeBDZtwvqPAocs\nBDvfB74FejRY/jJQB6ySsZ7ZwGoFftakfQVYDDgZeDPdxhPSfXe7Sm/LRranfLAF/sIRupkdBZwP\nnA70BFYBLgN+Gq27CHG2u3dL/7q6+0Yt3YCZtW/pOoFbC2zu5u7nlaGNluZWd+8GLAvUArdX1pxG\ncWAcsE/9AjPrDyyRlmXFmmnHncAuwP5Ad6AvcBGwU6ONlcfHIuSDLUlwNOlGcuT8eQnN4sCFJCP3\nicAFwGJp2Q9JRgVHAVNSzUFp2VCSI923JEe7e9Pl44BtCo6GtwEjUs2rwMCCtutIRzDp93lGMWkb\n7wCfAvcAK6TLV03XbdfYkRNYnWRDfQ58DNxS4vcXHTkVtHMAMD6t648F5QYcD4wFPgFuBZZusO4h\n6bq16fIDSEaAnwAn1fcX0Av4GuheUP8P0jbbFxlpXB+NIkr1Rbqtp6RlLwPrNmU7FGzDw4C3ganA\npcHo6PqC7+uQjGKXSb8vDfwztXNq+rl3WnY6MAuYkfrSxenytYGRqf4NYM+C+ncCXk/1E4CjMo7C\nxgF/BJ4vWHYucEJq7yqNjdaAA4EnGvo3GfaVRmzYNvWHFTLYeiwwBviG5DLsOqltn5Hsc7s05hsl\nbP4t8G66Hc7Juj3lg833wWiEvhnQMe2AYpwEDAY2AAakn08qKF8e6Ar0Bn4F/NXMlnL3q4CbSDZ4\nN3fftUj9uwA3A0ulnfPXgrKiox0z2wY4A9gDWAH4gCRghusCpwEPuPvSwErAJSW0WdgCWINkJzvZ\nzNZKlx9JcqazFUn/fEZy9lPI1iQbfHszW4fk9+9D8puWStfD3aeQ7AR7Fay7H4nzz26G7Y32hZlV\nA1sC/dKyvUkcch4ybAeAn5AcfDYE9krrLomZLU4STKaS9BskwejvwMokZ5IzSP3F3U8CngB+k/rb\nMDPrRLIj3Ugy2toHuCztZ4CrgaGejMb6A49EdhXwLNDVzNYys3Yk2+VG4lH3fH7ZhH2lkB8Dz7n7\nRxm0Q4AdSYJRO+A+4L/AcsAw4CYzW6MJNu8GDEz/djWzQzLYUAr5YEYfjAL6MsCn7l5XQrMvcKq7\nT3X3qcCpQOHNjO+A09x9trv/B/gKWKuReorxpLs/4Mnh6gaSA0c9pXaOfYFr3H2Mu39PMjrazMxW\nydDm98CqZraiu3/n7k8H+mPMbJqZfZb+v7agzIGatJ5XSEZCA9KyQ4ET3f2j1MbhwB5pAKhf9xR3\n/8bdZ5I45H3u/oy7zyK5PlrI9aR9n9axD0mfFWPvBnYv34S++J7kQL2umZm7v5UeVBqSZTuc6e5f\nuvsEkoPShpHNJDvKL4E96v3T3ae5+93uPtPdvwbOJDkgFmNnYJy7X+8JL5NcptgjLf8OWM/Murr7\nF2l5U7iBZIffjuQ69qQmrt8clgUm138xs+7pdv7czL5poL3I3SelPrYp0Nndz3b3We7+KPAvCi4f\nZeCstL8mkpy9l1pXPtiCPhgF9KnAsgUBpjF6kxzx6hmfLptTR4MDwgygS9BuIZMLPs8AlgjsKbRr\nfP2XtHOnAitmWPcYkr553sxeNbODAczsBDP70symm1nhSPpcd+/h7t3T/wc3qK/QyQp//6rA3akj\nTwP+R+KkvQr0Exv8pgkFv+kb5h2R3AusY2Z9gGrgc3d/ocTvvK2B3ZMb0TTaF+mOfinJ6GOymf3N\nzBrbrlm2Q7H+KWozyf2c14CN6wvMbEkzu8LM3jezz4HHgKXNrNiBf1Vg0/r+N7PPSHb++v7fnWTk\nNt7MHjWzTUvY1Rg3pvUdRHKwLRupX9b75kokfbxCfbm7f+bu3UlGoYs3WL2oj6WMJ9t+01h9DeNB\nQ+SDLeiDUWB8huS63W4lNB+mRhUamHUk0pQbRI0xA+hU8L3w6D6p0C4z60xyxjGR5NoixdZ194/d\n/VB3XxE4nOQUaDV3P9Pn3rw5opm2Q3Ig3DF15Hqn7tzgNLmwjz4iOeWs/01Lpr+p3u6ZwD9IboLt\nT+nReSaK9UVadqm7bwysR3LWdUwjVZTaDs2xa1pqT42Z1Tv/0SSXtgalp+D1I6P6namhv00guTdR\n2P/d3P03aRsvuvtuJJce7iXp26bY+AHJNeodgbsakXxNcf+dr7qgra4FvjkReBgYZGaNBdOGwaWw\n7kkklwsKWYVkP89qc+H6q9DMMxP5YHYfLBnQ3X06yU2Av5rZrunRp4OZ7WhmZ6WyW4GTzGxZM1sW\n+BPZA8kUkps+TaHQGV8C9jWzdma2A8lN2HpuBg42sw3MrCPJNbRn3X2Cu39K4qD7p+seQnLjJWnA\nbA8zqz96f05y02RBr0OXuix0BXBG/amfmS1nZoVPDzVc9w5gFzPb1MwWI7m81ZAbSEaEu5CMEJtF\nsb4ws43NbLCZdSC5mfYtjfdR0e3QXNvc/S2Sa73HpYu6prZMN7MeQE2DVRr627+ANc1s/9SvF0t/\n19rp533NrJsn9yC+JLmh1VQOIblx2fAyByQ38X6e7lf9SE7fi9GkfcXdHyS5dHBPup0WS7fVZpQ+\nODwHfG1mx6Z9UkVyWeCWJth8jJktbWYrk9wnani9uknIB7P7YHjpwt0vIHlK5SSSO7cfAEcw90bp\n6cALQP314ReAP5eqsuDzNSTXh6aZ2V2NlEfr/47kpuJnJNfp7i6w+xGSg8tdJMG7L8nNn3qGktzd\n/5TkTvVTBWWDgOfMbHr6O4e5+3iKc2x6qjs9Pe39uIi9Db9fRHLUHWlmXwBPk9xUbnRdd/8fyRME\nt5GMOr4g2SYzCzRPkzj86HSEuCAUtlusL7oBV5E8izuOpB/ne+Qsw3Yo1T9ZOA8Ymg4mLiQZPX5K\n0pf/bqC9CNjTzKaa2YXu/hXJpakhJP05CTiLuZckfgGMS0+dDyW5yZyFOb/B3ce5++jGykie0Pie\n5LLitcx/AG7uvvJzkoBxI8k+8h7JfrJ9kTZIrzH/lOTpik9JLmn8wt3fyWgzJD79IjCa5EGGvwd2\nNoZ8MKFJPmjuzb3qISpFeur4Ocld/vEFyx8GbnL3BdmRhFhgzKyOxB/fq7QtiyKtLvVflMbMdk5P\ndzsDfwFeaRDMBwEbkYzihRCLEArobY9dSU7LJpJc959z6mhm15E803pkeidfiIWNTvkriC65CCFE\nTtAIXQghckKHclSaPkJ4IckB4xp3P7sRjU4NRFlx9+a+3Go+5NuiNVDMt1v8koslWZxvk7xLYhLJ\na3eHuPubDXTOcQVtP1kDW9bMW9mIDA1ekEGTJWn51QyaFxr01T01sFvNvMsOjnMVLqg7PdT8/u2/\nlSy/eM2hYR3DHrlq/oUjauDAmjlfV/rxO/NrGvDynDcVFOdqfhVqvqNjqLnCD5tv2fSai+lWM2zO\n9w+fL/VakZRNrcUDepN8+/iC5OgnamCrmjlf+57xv7Ctce+uGxs0OcPPezjev7v84ZP5ls3887l0\nPHFujs7/dbo8rOfcYQ3fRDE/Ay55NtT099dCzU1HNOJvo2pgUM2cr49ftvH8mgZs/ZdSidQpx8R9\nuHXdyFDz+AM7zLvgxhrYv2beZTuWrqO6GkaOLO7b5bjkMhh4x93Hp8+03kpyI0+Ito58W7RqyhHQ\nV2Ted0FMpGnvgRCitSLfFq2aclxDb+xUoPFzlidr5n7uuHQZTCkza1dV2oKmM6Cq0hY0mY5Vm8Si\nF2thdG25Tcnu20/UzP3cBn27/VabV9qEptO7qtIWNI0NqjIKa9M/GDu2tLIcAX0iyQt56lmJYi/n\naXjNvK3RFgP6hlWVtqDJZAroP6hK/uq5prHX3DSb7L5dcM28LdJh6y0qbULTWbGq0hY0jcwBvSr9\ng3794L33ivt2OS65jAL6mdmqlrwAfgjJC/OFaOvIt0WrpsVH6O4+28x+Q5KxWP9o1xst3Y4QCxv5\ntmjtlOU5dHf/L02blUiINoF8W7RmKpb6b2ZOn6DtbWPb7LQZocYv7RRqZg+JJzxfYvnPQ03XpaeH\nmk06PBdq1gkGfhd9fGRYx5E9Lwo1VfZoqHmHNUPNmHlmBmycZ9gs1HxO91CzQoZpMl9pt1lZEouy\nkCQWlZq1MfZZ7LNYs1v8gM1md8bToJ5EnBfxk5PjerocN//z7A2p7hw/r33X9fFbik854PhQ04f3\nQ83hX8TP18/8TeyT/CiWXHRwnDtyZPuVSpZXV6/OyJEHLNTn0IUQQlQABXQhhMgJCuhCCJETFNCF\nECInKKALIUROUEAXQoicoIAuhBA5QQFdCCFyQlkyRTNzblA+M67isJ6lJ4IA6HXGH0KNdY1zUGYe\n2zXUVPF0qOntjb/PqZDzOLFk+Vo9Dwjr6E88UcBmPjrUPMtGoeb358fb4a6jg7f3A+dwbKjZ2f4V\nal4JFWXmlyXKrolXf3x2/Jr1frwbano9Fye62SazQ83sp+PEu5073R5q7iBOGhp1QJyk9iXdQs02\nPBlqNlmqb6j58IY4geuWDLPoXMWhoYZNBpUuXxsYWXzf1whdCCFyggK6EELkBAV0IYTICQroQgiR\nExTQhRAiJyigCyFETlBAF0KInFDZ59D7BOVd4iou/eyYUNNudqnJBlKujI9tH9Ej1CxvF4Sa3f3O\nUOOPlJ7A4vkfx5NX7O53hBoGx88Xb7JUXA0Pxn38s6vjPv7rr44INXeyewaD/pJBUz6GXnlx0bKr\nZg4L1+/EN6FmeTJMgtEr7vNhnBNq9n5ow1Bzhp0Qai71/4SaXtYn1Nzue4aabT6MfXutiaGEtTcZ\nF7f1VtxW+8/j5/3ZMMiHWb10sUboQgiRExTQhRAiJyigCyFETlBAF0KInKCALoQQOUEBXQghcoIC\nuhBC5AQFdCGEyAnm7pVp2MxH1a1bUjPowxfCeuq+6RRqBq3+WKh54fEfhhqfEUpgQAbNIxk0QY7G\nERPjxJm3vV+o2aZdPJHCiY+GEuqeiicIefGPpbc3QHebFmqu5LBQc67V4O6xUWXAzHyduuK+O3Zq\nvF1GLBtPYJLl540Ps/fg+OfjJDU6x5Kj1vtzqDn/8dITtwAM3zpOFjx5XDQ7DvBsLBmxf6w5sDqD\nG10Sx9Hr+u0dak7jTyXLt6Iz17frW9S3NUIXQoicoIAuhBA5QQFdCCFyggK6EELkBAV0IYTICQro\nQgiRExTQhRAiJyigCyFETijLjEVm9j7wBVAHfO/ugxvTDbFbS9Yzunc8SwoWz5QzmPNDzTc/iJMH\nluiSYcaRF+Nj5C37xck8++x/d8nyr/yqsI4HP94t1Fhd3H9+T/ybnjpho1CzJXGiGI/FbW3yw+fi\nespEVt9+o33x2a3s7XgqriHL3BMb80ncV/5VhqSYwbEP2MtxW3957qS4ra3jtk7O8Ltu7BPPWrV/\n39tDzYHfZhjTxpOQQb/4d43n+FAzbs3SyXdrbFl6/XJNQVcHVLl7hjmyhGhTyLdFq6Vcl1ysjHUL\nUUnk26LVUi7HdOABMxtlZkPL1IYQlUC+LVot5brksrm7Tzaz5YAHzewNd3+yTG0JsTCRb4tWS1kC\nurtPTv9/YmZ3A4OB+Zx+Ws1lcz4vWTWIJasGlcMcsQjwWu1UXq+N39TYXLL6Nn5hwZdNwTYtu20i\np8yohW9qARj7Umlpiwd0M+sEtHP3r8ysM1ANnNqYtkfNES3dvFhE6V+1DP2rlpnz/fZTx7Z4G03x\nbex3Ld6+WETpVJX8Af02gvfGDC8qLccIvRdwt5l5Wv9N7j6yDO0IsbCRb4tWTYsHdHcfB2R4gFyI\ntoV8W7R2Kjpj0dW+T0nNMkwN6/mP7xhqetqUULOv3xJqXvCNQ80v3roz1HjHUMKYfqUTQmrr4gcs\nOvq3oebwY26IjamOfWT57caFmsnPrRa31TFuq93bcRIHQ9pVdMaiPWdfV7T89svj2YhmT2gfao48\n88xQM5kVQs1t4w4KNU/3jY9jHYgT7wa/+WqomdU79oG1ur0eat67qH+osfXjtrx3KOHttVYONWs/\nMT6u6JnSLlvdF0YOMc1YJIQQeUcBXQghcoICuhBC5AQFdCGEyAkK6EIIkRMU0IUQIicooAshRE5Q\nQBdCiJxQ0cQiu7V0IsKs9eJE1s36PxJq7iGeuee3XBJqdueOUNPVvww12379aKjp+PvS5XdfFSdU\nrcSEULO0fx5qXmRgqNmqkfdTzWfPyvHLs3y/UMIuZ/0j1Nzfbq+KJhbt7LcVLf/aO4V1rMikUPOl\nxTMfLZshOe9sPzbUjLJGJ2aah/7+WqihfewDK2bIvxmz8hqhprd/FNfDgFCzJDNCzRbvB2/NAtbs\n83KoGft6aXuqu8DIvkosEkKI3KOALoQQOUEBXQghcoICuhBC5AQFdCGEyAkK6EIIkRMU0IUQIico\noAshRE6oaGLRkLprSmp28n+H9exvt8eNXRwft54ftn6oGcyYuK0RcVu3H7BzqNnT7isteDBu57vB\ncV7N4kvFs8ywSdyW/zNuy3pmaGtc3Nabq60aata18RVNLLLziv/WWRvGCXO2TdxX5/PrUHPMXy4N\nNbOPztBNf4q3y6GnXRRqruS3oeb59nFbHWfHiUUDeCvU3MEuoWb3P8VxyE6Lt1e7v4cS9jzk+pLl\nA+jNSe2qlVgkhBB5RwFdCCFyggK6EELkBAV0IYTICQroQgiRExTQhRAiJyigCyFETlBAF0KInBBn\nOJSRt610csD6tnJYxz5114WaW34W2zKdbqHGT20fasaeslJsD/uEmj36lW7rvLFxUslavB1qtqBz\nqLn/uT1DzQyWDDXtOSDU9O27RaiZRO9QAxmmvSkj+x5VPGmuw82zwvXHECfOjLTzQs09R1eHmo38\ntFDz/knxDEp8F0s+XezmUHPXZXE9kzLMxMR68f66x5FxYuX9w38U29M+buuO2TuEmods25LlXSk9\nS5VG6EIIkRMU0IUQIicooAshRE5QQBdCiJyggC6EEDlBAV0IIXKCAroQQuQEBXQhhMgJCzxjkZld\nA+wMTHH3DdJl3YHbgFWB94G93P2LIuv7T+tKJxn88/G9QztmrRLnRp3S57hQs7f9I9S866uHmo+t\nZ6hZzd8LNT++4pmS5XWbhlVw7IDhoea0r08ONUu8Gbd16w9+GmqG7BjMwgS899/lQ83u3BVqxtjm\nCzxjUUv4Nl3rijdwS2xD9U73hpqRN+8aapbYeVrcVreRoea+9+J9ccvVHgo1D3+xfahZ7PRQwvXn\nxsluXdrFs5ntfmzclm8da16JJyHj6bo4se7wA0rPWMT61bQ7bmRZZiy6Fmi4dY4HHnL3tYBHgBOa\nUb8QlUK+LdokCxzQ3f1J4LMGi3cFRqSfRwC7LWj9QlQK+bZoq7T0NfSe7j4FwN0nA8u1cP1CVAr5\ntmj16KaoEELkhJZ+2+IUM+vl7lPMbHng41LiN2vumPN52ap1WbZq3RY2RywqfFU7mq9qR5eziSb5\nNjNr5n5uXwUdqspomsgztZOhdkr6ZfLYktrmBnRL/+q5DzgIOBs4ECh5q37tmj2a2bwQCV2qBtKl\nauCc71NO/Xtzq2yWb9OxprntCwFA1fLJHwDr92P4Q8WfklvgSy5mdjPwNLCmmX1gZgcDZwHbmdlb\nwLbpdyHaFPJt0VZZ4BG6u+9bpKj0G9qFaOXIt0VbZYETi5rdsJk/VLdZSc2Pbn82rmfP2aHGb4pP\nRI7e78+h5vwMjx5Ptu6h5lvvGGr6MLlkuW0V/6a6w+K8Gts/7j+7I0Nb37ZMW3wSt/VIz9J+A7Ct\nPbPAiUXNxcwcu7Jo+bmzXg7rONouDTU3EifX7HdjnISVZbt8/0W8XTo8l8EHquO2pi0et/Xpd/Fs\nZmtmmLXKHovb8qcyuNEfM/j2xXFb9nAg2KgaG16exCIhhBCtCAV0IYTICQroQgiRExTQhRAiJyig\nCyFETlBAF0KInKCALoQQOUEBXQghckJLv5yrSWz37ydLlh+7ZzzjzhkXtQ81NxwZJ2Csbu+GmvHe\nK9R0ILZnrK0Rah7zISXLt3siTmBa7ouGr/Sen7fpF2p67xEnQnXfb2aoqdsp7pvvOocSaqiJRfPN\nT7GQ8V8VLbrSxoSrH3tFnPB39WGLhZoZGV6XNKl9vF3WeDquZ/iOsc0nPxy31WOruK0eB04INR9e\nt2yoWWl63Bb949/1SoY+3ODBuCk7vsRMV0C1Q6lxuEboQgiRExTQhRAiJyigCyFETlBAF0KInKCA\nLoQQOUEBXQghcoICuhBC5AQFdCGEyAkVTSzyJ0vPBPLUTzYP69ht2C2h5l72CjVDiWeImWI9Q83h\nfkWo2XbcU6GGF0sXT9tjibCKV3vEzQzsW3zC2Xr81gwzttxUOiEC4Eb2DjUDiGfzyaIpnbK2EOhf\nvOgIuzxcfeSh1aHmYG4ONSM63xpqDown4uLATf4WaobOin3fJr4Uavy42J6x260Yavpd/mHc1toZ\nfHubeDaimbM3CDU/5U9xW0cH9vQD/lW8WCN0IYTICQroQgiRExTQhRAiJyigCyFETlBAF0KInKCA\nLoQQOUEBXQghcoICuhBC5ISKJhaxSemH6J88dbuwCts1nk3E741nE/n1yfEsQhvyZqj5P+Lko8vf\nODrUsEfpZIYeO8TH4u7LZUiaGBsnTdiDcVvtx8TbYdiAjULNwf+LE2EOX++CUFNxbi/e979/OU7S\nsfvj/nzkhC1CzQFXZ/CBg2MfuO7ieB+6YNjhoWbLlYOMOcAejv1t9VUmhRomxMluNi5uq26b+Lcf\n9OioUFPtI0MN0cRpwYxeGqELIUROUEAXQoicoIAuhBA5QQFdCCFyggK6EELkBAV0IYTICQroQgiR\nExTQhRAiJ5h7nMDQ6Ipm1wA7A1PcfYN02SnAUODjVPZHd/9vkfWdHUs/+H/A/XECxl1f7x5qftc5\nTkR51dYPNdvUPRq39VI8a8sDA7cONevxesnyERwY1vEz7g41q3w9IdRc2PnIUHPiyPNDzYDtnw01\nPXxqqBlTt2GomdZhZdw9Q1bN/LSIb29aYr/aMt7n/nzOUaGmm00PNdv7A6Fm9Ulxks4HvZcNNaMY\nHGp2P/DfoebsEcNCzfr+SqjZ6fXaUPNG/z6hZkmfEWr63PlxqBm052OhZrp3K1m+JV24rl2/or7d\nnBH6tcD2jSw/390Hpn+NOrwQrRz5tmiTLHBAd/cngc8aKVqgUZEQrQX5tmirlOMa+q/N7GUzu9rM\nlipD/UJUCvm2aNW09Mu5LgOGu7ub2enA+cAvi6rfqZn7uUcVLFPVwuaIRYXva5/h+8eeKWcTTfPt\nCTVzP3ergqWqymmbyDEzakfxTe0LALzE4iW1LRrQ3f2Tgq9XAf8sucIaNS3ZvFiEWaxqMxar2mzO\n929Pa9k3MjbZt1euadH2xaJLp6pBdKoaBMBGdGHM8EuKapt7ycUouK5oZssXlP0ceK2Z9QtRKeTb\nos2xwCN0M7sZqAKWMbMPgFOAH5nZhkAd8D5wWAvYKMRCRb4t2ioLHNDdfd9GFl/bDFuEaBXIt0Vb\nZYETi5rdsJkfWXdGSc32FidFXOsHh5p3WS3UjD5ny1CTYcIimJXhybYMsyxxZ6C5bXhYxQ/qtgk1\nl3icxLH5yS+FGr6PJZyT4XevnmWWpYcyNFa9wIlFzcXMnA4lfmu/DJXckaGvMgzH9lprRKh5wmPf\nP8yuDDVZunv4/WeGmu12vi/U/IIbQs0M7xRqDn887p+Tf3hCqPm7HxLXQ7zPDr3rxpLl1T1h5Nbt\nypJYJIQQohWhgC6EEDlBAV0IIXKCAroQQuSEVhPQJ9a+V2kTms5HtZW2oMl8WZvhBmdrY0ZtpS1o\nHnW1lbagycysfa7SJjSZN2o/iUWtiLdqp7R4nQrozWFybaUtaDJf1r5caROazje1lbageXhtpS1o\nMt8poJedXAd0IYQQzaOlX87VJFZibjZ1N7rM8z1ZtmZYR196hJrF6BIb0yuW8M28XyeNg96rNtDM\nzlDP0hk0fYPygSuEVazdyO/+jsXnWd6ZdcJ6BvYOJTArg2ZgBs1K8y+a9Cb0XrtgQbeuYTWjR2do\nq4wM3Gju50kfQu8VCwpXzlDBEhk07WNJX5YJNZ/Tcb5lY2lPv4LlK7DifJqGeIa3Cw/M8I7KfsSi\nHo3klizJR/Ms75ShEwdmCA1Zfnv/RvqwIcvQZ57vS/LBfMsGBrGhXxcYWaK8oolFFWlYLDJUNLFI\niDJSzLcrFtCFEEK0LLqGLoQQOUEBXQghckKrCOhmtoOZvWlmb5vZcZW2Jwtm9r6ZjTGzl8zs+Urb\n0xhmdo2ZTTGzVwqWdTezkWb2lpk90JqmUiti7ylmNtHMRqd/O1TSxqbS1nxbfl0eFpZvVzygm1k7\n4FKSWdbXA/Yxs7VLr9UqqAOq3H0jdx9caWOK0Njs9ccDD7n7WsAjQPwquYVHY/YCnO/uA9O//y5s\noxaUNurb8uvysFB8u+IBHRgMvOPu4939e+BWYNcK25QFo3X0X1GKzF6/K1D/ztARwG4L1agSFLEX\nyPA8XOukLfq2/LoMLCzfbg0bbkVgQsH3iemy1o4DD5jZKDMbWmljmkBPd58C4O6TgeUqbE8Wfm1m\nL5vZ1a3tVDqgLfq2/Hrh0qK+3RoCemNHqLbwLOXm7r4xsBPJRskwQ4ZYAC4DVnf3DYHJwPkVtqcp\ntEXfll/3XIupAAABIElEQVQvPFrct1tDQJ8IrFLwfSVgUoVsyUw6CqifDf5uktPrtsAUM+sFcyY+\n/rjC9pTE3T/xuckSVwGDKmlPE2lzvi2/XniUw7dbQ0AfBfQzs1XNbHFgCBDPQVVBzKyTmXVJP3cG\nqmm9s8DPM3s9Sd8elH4+ELh3YRsUMI+96c5Zz89pvf3cGG3Kt+XXZafsvl3Rd7kAuPtsM/sNySsK\n2gHXuPsbFTYrohdwd5ri3QG4yd1LvWKhIhSZvf4s4HYzOwT4ANizchbOSxF7f2RmG5I8ffE+cFjF\nDGwibdC35ddlYmH5tlL/hRAiJ7SGSy5CCCFaAAV0IYTICQroQgiRExTQhRAiJyigCyFETlBAF0KI\nnKCALoQQOUEBXQghcsL/A1cunn39vbPfAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 76da3a587f..8a7d9d0b16 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -57,7 +57,7 @@ class MGXS(object): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. NOTE: Users should instantiate the subclasses of this abstract class. @@ -727,9 +727,8 @@ class MGXS(object): Return the cross section indexed according to increasing or decreasing energy groups (decreasing or increasing energies). Defaults to 'increasing'. - value : str - A string for the type of value to return - 'mean', 'std_dev' or - 'rel_err' are accepted. Defaults to 'mean'. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. Returns ------- @@ -963,8 +962,9 @@ class MGXS(object): Returns ------- 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. + A new MGXS object which encapsulates the subset of data requested + for the nuclide(s) and/or energy group(s) requested in the + parameters. """ @@ -1536,7 +1536,7 @@ class MatrixMGXS(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. NOTE: Users should instantiate the subclasses of this abstract class. @@ -1624,9 +1624,7 @@ class MatrixMGXS(MGXS): energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - filters = [[energy], [energy, energyout]] - - return filters + return [[energy], [energy, energyout]] @property def estimator(self): @@ -1636,10 +1634,10 @@ class MatrixMGXS(MGXS): subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', row_column='inout', value='mean', **kwargs): - r"""Returns an array of multi-group cross sections. + """Returns an array of multi-group cross sections. - This method constructs a 2D NumPy array for the requested multiplicity - matrix data data for one or more energy groups and subdomains. + This method constructs a 2D NumPy array for the requested multi-group + matrix data for one or more energy groups and subdomains. Parameters ---------- @@ -1666,9 +1664,8 @@ class MatrixMGXS(MGXS): Return the cross section indexed first by incoming group and second by outgoing group ('inout'), or vice versa ('outin'). Defaults to 'inout'. - value : str - A string for the type of value to return - 'mean', 'std_dev', or - 'rel_err' are accepted. Defaults to the empty string. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. Returns ------- @@ -1777,7 +1774,7 @@ class MatrixMGXS(MGXS): return xs def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): - """Build a sliced NuFissionMatrix for the specified nuclides and + """Build a sliced matrixMGXS object for the specified nuclides and energy groups. This method constructs a new MGXS to encapsulate a subset of the data @@ -1799,9 +1796,10 @@ class MatrixMGXS(MGXS): Returns ------- - 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. + openmc.mgxs.MatrixMGXS + A new MatrixMGXS object which encapsulates the subset of data + requested for the nuclide(s) and/or energy group(s) requested in + the parameters. """ @@ -1940,7 +1938,7 @@ class TotalXS(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2028,7 +2026,7 @@ class TransportXS(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2142,7 +2140,7 @@ class NuTransportXS(TransportXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2238,7 +2236,7 @@ class AbsorptionXS(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2331,7 +2329,7 @@ class CaptureXS(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2431,7 +2429,7 @@ class FissionXS(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2519,7 +2517,7 @@ class NuFissionXS(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2607,7 +2605,7 @@ class KappaFissionXS(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2695,7 +2693,7 @@ class ScatterXS(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2783,7 +2781,7 @@ class NuScatterXS(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2872,7 +2870,7 @@ class ScatterMatrixXS(MatrixMGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -3116,9 +3114,10 @@ class ScatterMatrixXS(MatrixMGXS): Returns ------- - 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. + openmc.mgxs.MatrixMGXS + A new MatrixMGXS which encapsulates the subset of data requested + for the nuclide(s) and/or energy group(s) requested in the + parameters. """ @@ -3200,9 +3199,8 @@ class ScatterMatrixXS(MatrixMGXS): Return the cross section indexed first by incoming group and second by outgoing group ('inout'), or vice versa ('outin'). Defaults to 'inout'. - value : str - A string for the type of value to return - 'mean', 'std_dev', or - 'rel_err' are accepted. Defaults to the empty string. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. Returns ------- @@ -3430,7 +3428,7 @@ class ScatterMatrixXS(MatrixMGXS): cv.check_value('xs_type', xs_type, ['macro', 'micro']) if self.correction != 'P0': - rxn_type= '{0} (P{1})'.format(self.rxn_type, moment) + rxn_type = '{0} (P{1})'.format(self.rxn_type, moment) else: rxn_type = self.rxn_type @@ -3449,7 +3447,7 @@ class ScatterMatrixXS(MatrixMGXS): template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' # Loop over energy groups ranges - for group in range(1, self.num_groups+1): + for group in range(1, self.num_groups + 1): bounds = self.energy_groups.get_group_bounds(group) string += template.format('', group, bounds[0], bounds[1]) @@ -3476,8 +3474,8 @@ class ScatterMatrixXS(MatrixMGXS): template = '{0: <12}Group {1} -> Group {2}:\t\t' # Loop over incoming/outgoing energy groups ranges - for in_group in range(1, self.num_groups+1): - for out_group in range(1, self.num_groups+1): + for in_group in range(1, self.num_groups + 1): + for out_group in range(1, self.num_groups + 1): string += template.format('', in_group, out_group) average = \ self.get_xs([in_group], [out_group], @@ -3489,7 +3487,8 @@ class ScatterMatrixXS(MatrixMGXS): xs_type=xs_type, value='rel_err') average = average.flatten()[0] rel_err = rel_err.flatten()[0] * 100. - string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '{:1.2e} +/- {:1.2e}%'.format(average, + rel_err) string += '\n' string += '\n' string += '\n' @@ -3504,7 +3503,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -3597,7 +3596,7 @@ class MultiplicityMatrixXS(MatrixMGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -3691,9 +3690,7 @@ class MultiplicityMatrixXS(MatrixMGXS): energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - filters = [[energy, energyout], [energy, energyout]] - - return filters + return [[energy, energyout], [energy, energyout]] @property def rxn_rate_tally(self): @@ -3720,7 +3717,7 @@ class NuFissionMatrixXS(MatrixMGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -3800,19 +3797,8 @@ class NuFissionMatrixXS(MatrixMGXS): groups=None, by_nuclide=False, name=''): super(NuFissionMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'nu-fission matrix' - - @property - def scores(self): - scores = ['flux', 'nu-fission'] - return scores - - @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 + self._rxn_type = 'nu-fission' + self._hdf5_key = 'nu-fission matrix' class Chi(MGXS): @@ -3820,7 +3806,7 @@ class Chi(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -3966,9 +3952,10 @@ class Chi(MGXS): 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. + openmc.mgxs.MGXS + A new MGXS which encapsulates the subset of data requested + for the nuclide(s) and/or energy group(s) requested in the + parameters. """ @@ -4080,9 +4067,8 @@ class Chi(MGXS): Return the cross section indexed according to increasing or decreasing energy groups (decreasing or increasing energies). Defaults to 'increasing'. - value : str - A string for the type of value to return - 'mean', 'std_dev', or - 'rel_err' are accepted. Defaults to 'mean'. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. Returns ------- diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index f75d7e2e44..35b48d8730 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -525,7 +525,7 @@ class XSdata(object): 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 a' \ + msg = 'Providing "chi" when "nu-fission" already provided as a' \ 'matrix' raise ValueError(msg) @@ -753,7 +753,7 @@ class XSdata(object): msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - if type(nu_fission) is openmc.mgxs.NuFissionMatrixXS: + if isinstance(nu_fission, openmc.mgxs.NuFissionMatrixXS): self.use_chi = False else: self.use_chi = True From dca86df219b846fd913041c8ea02cfee1feae941 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 24 May 2016 20:27:06 -0400 Subject: [PATCH 016/417] adding notice to users that div by zero is expected in mgxs-part-iii nbook. --- docs/source/pythonapi/examples/mgxs-part-iii.ipynb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index bc2f96414a..a386779450 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -939,7 +939,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The `NuFissionXS` object supports all of the methods described previously the `openmc.mgxs` tutorials, such as [Pandas](http://pandas.pydata.org/) `DataFrames`:" + "The `NuFissionXS` object supports all of the methods described previously in the `openmc.mgxs` tutorials, such as [Pandas](http://pandas.pydata.org/) `DataFrames`:\n", + "Note that since so few histories were simulated, we should expect a few division-by-error errors as some tallies have not yet scored any results." ] }, { @@ -1597,7 +1598,7 @@ "metadata": { "kernelspec": { "display_name": "Python 2", - "language": "python", + "language": "python2", "name": "python2" }, "language_info": { From 7f2bf91be6054f5ab67388bc6e643ec0d62fd4da Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 24 May 2016 21:09:19 -0400 Subject: [PATCH 017/417] Fixed typo in MatrixMGXS.get_slice and fixed an error found when attempting to implement the test where the NuScatterXS type thought it deserved tracklength estimator status when it hasnt yet earned it. Its been demoted back to analog. --- openmc/mgxs/mgxs.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 8a7d9d0b16..ca95be58ad 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1774,7 +1774,7 @@ class MatrixMGXS(MGXS): return xs def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): - """Build a sliced matrixMGXS object for the specified nuclides and + """Build a sliced MatrixMGXS object for the specified nuclides and energy groups. This method constructs a new MGXS to encapsulate a subset of the data @@ -2863,6 +2863,10 @@ class NuScatterXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'nu-scatter' + @property + def estimator(self): + return 'analog' + class ScatterMatrixXS(MatrixMGXS): """A scattering matrix multi-group cross section for one or more Legendre From 1af96416eaa502d714076dfd85f68a59b01b52de Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 25 May 2016 07:22:43 -0500 Subject: [PATCH 018/417] Extend input so that user can specify periodic surface pairs. Also fix a bug. --- openmc/surface.py | 32 ++++++++++++++++ src/geometry.F90 | 8 ++-- src/initialize.F90 | 14 ------- src/input_xml.F90 | 56 ++++++++++++++++++---------- src/surface_header.F90 | 6 +-- tests/test_periodic/geometry.xml | 12 ------ tests/test_periodic/inputs_true.dat | 1 + tests/test_periodic/materials.xml | 13 ------- tests/test_periodic/results_true.dat | 2 +- tests/test_periodic/settings.xml | 13 ------- tests/test_periodic/test_periodic.py | 53 +++++++++++++++++++++++++- 11 files changed, 129 insertions(+), 81 deletions(-) delete mode 100644 tests/test_periodic/geometry.xml create mode 100644 tests/test_periodic/inputs_true.dat delete mode 100644 tests/test_periodic/materials.xml delete mode 100644 tests/test_periodic/settings.xml diff --git a/openmc/surface.py b/openmc/surface.py index 239b868aa2..ca2d5d6b45 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -222,6 +222,9 @@ class Plane(Surface): boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. + periodic_surface : openmc.Surface + If a periodic boundary condition is used, the surface with which this + one is periodic with coefficients : dict Dictionary of surface coefficients id : int @@ -239,6 +242,7 @@ class Plane(Surface): self._type = 'plane' self._coeff_keys = ['A', 'B', 'C', 'D'] + self._periodic_surface = None self.a = A self.b = B self.c = C @@ -260,6 +264,10 @@ class Plane(Surface): def d(self): return self.coefficients['D'] + @property + def periodic_surface(self): + return self._periodic_surface + @a.setter def a(self, A): check_type('A coefficient', A, Real) @@ -280,6 +288,21 @@ class Plane(Surface): check_type('D coefficient', D, Real) self._coefficients['D'] = D + @periodic_surface.setter + def periodic_surface(self, periodic_surface): + check_type('periodic surface', periodic_surface, Plane) + self._periodic_surface = periodic_surface + periodic_surface._periodic_surface = self + + def create_xml_subelement(self): + element = super(Plane, self).create_xml_subelement() + + # Add periodic surface pair information + if self.boundary_type == 'periodic': + if self.periodic_surface is not None: + element.set("periodic_surface_id", str(self.periodic_surface.id)) + return element + class XPlane(Plane): """A plane perpendicular to the x axis of the form :math:`x - x_0 = 0` @@ -306,6 +329,9 @@ class XPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. + periodic_surface : openmc.Surface + If a periodic boundary condition is used, the surface with which this + one is periodic with coefficients : dict Dictionary of surface coefficients id : int @@ -391,6 +417,9 @@ class YPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. + periodic_surface : openmc.Surface + If a periodic boundary condition is used, the surface with which this + one is periodic with coefficients : dict Dictionary of surface coefficients id : int @@ -477,6 +506,9 @@ class ZPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. + periodic_surface : openmc.Surface + If a periodic boundary condition is used, the surface with which this + one is periodic with coefficients : dict Dictionary of surface coefficients id : int diff --git a/src/geometry.F90 b/src/geometry.F90 index 2059ea42fc..21c8baa6b8 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -502,26 +502,26 @@ contains select type (surf) type is (SurfaceXPlane) - select type (opposite => surfaces(surf % opposite) % obj) + select type (opposite => surfaces(surf % i_periodic) % obj) type is (SurfaceXPlane) p % coord(1) % xyz(1) = opposite % x0 end select type is (SurfaceYPlane) - select type (opposite => surfaces(surf % opposite) % obj) + select type (opposite => surfaces(surf % i_periodic) % obj) type is (SurfaceYPlane) p % coord(1) % xyz(2) = opposite % y0 end select type is (SurfaceZPlane) - select type (opposite => surfaces(surf % opposite) % obj) + select type (opposite => surfaces(surf % i_periodic) % obj) type is (SurfaceZPlane) p % coord(1) % xyz(3) = opposite % z0 end select end select ! Reassign particle's surface - p % surface = sign(surfaces(surf % opposite) % obj % id, p % surface) + p % surface = sign(surf % i_periodic, p % surface) ! Figure out what cell particle is in now p % n_coord = 1 diff --git a/src/initialize.F90 b/src/initialize.F90 index 74cab87c4b..09bedb1388 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -580,20 +580,6 @@ contains class(Lattice), pointer :: lat => null() type(TallyObject), pointer :: t => null() - ! Adjust opposite surfaces for periodic boundaries - do i = 1, size(surfaces) - associate (surf => surfaces(i) % obj) - if (surf % bc == BC_PERIODIC) then - if (surface_dict % has_key(surf % opposite)) then - surf % opposite = surface_dict % get_key(surf % opposite) - else - call fatal_error("Could not find opposite surface " // & - trim(to_str(surf % opposite)) // ".") - end if - end if - end associate - end do - do i = 1, n_cells ! ======================================================================= ! ADJUST REGION SPECIFICATION FOR EACH CELL diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 242d3459a6..8a9b2299fb 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1578,6 +1578,12 @@ contains case ('periodic') s%bc = BC_PERIODIC boundary_exists = .true. + + ! Check for specification of periodic surface + if (check_for_node(node_surf, "periodic_surface_id")) then + call get_node_value(node_surf, "periodic_surface_id", & + s % i_periodic) + end if case default call fatal_error("Unknown boundary condition '" // trim(word) // & &"' specified on surface " // trim(to_str(s%id))) @@ -1597,33 +1603,45 @@ contains if (surfaces(i) % obj % bc == BC_PERIODIC) then select type (surf => surfaces(i) % obj) type is (SurfaceXPlane) - if (i == i_xmin) then - surf % opposite = i_xmax - elseif (i == i_xmax) then - surf % opposite = i_xmin + if (surf % i_periodic == NONE) then + if (i == i_xmin) then + surf % i_periodic = i_xmax + elseif (i == i_xmax) then + surf % i_periodic = i_xmin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if else - call fatal_error("Periodic boundary condition applied to & - &interior surface.") + surf % i_periodic = surface_dict % get_key(surf % i_periodic) end if type is (SurfaceYPlane) - if (i == i_ymin) then - surf % opposite = i_ymax - elseif (i == i_ymax) then - surf % opposite = i_ymin + if (surf % i_periodic == NONE) then + if (i == i_ymin) then + surf % i_periodic = i_ymax + elseif (i == i_ymax) then + surf % i_periodic = i_ymin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if else - call fatal_error("Periodic boundary condition applied to & - &interior surface.") + surf % i_periodic = surface_dict % get_key(surf % i_periodic) end if type is (SurfaceZPlane) - if (i == i_zmin) then - surf % opposite = i_zmax - elseif (i == i_zmax) then - surf % opposite = i_zmin + if (surf % i_periodic == NONE) then + if (i == i_zmin) then + surf % i_periodic = i_zmax + elseif (i == i_zmax) then + surf % i_periodic = i_zmin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if else - call fatal_error("Periodic boundary condition applied to & - &interior surface.") + surf % i_periodic = surface_dict % get_key(surf % i_periodic) end if class default @@ -1633,7 +1651,7 @@ contains ! Make sure opposite surface is also periodic associate (surf => surfaces(i) % obj) - if (surfaces(surf % opposite) % obj % bc /= BC_PERIODIC) then + if (surfaces(surf % i_periodic) % obj % bc /= BC_PERIODIC) then call fatal_error("Could not find matching surface for periodic & &boundary on surface " // trim(to_str(surf % id)) // ".") end if diff --git a/src/surface_header.F90 b/src/surface_header.F90 index 0b5d3c86be..68e5144b7c 100644 --- a/src/surface_header.F90 +++ b/src/surface_header.F90 @@ -1,6 +1,6 @@ module surface_header - use constants, only: ONE, TWO, ZERO, HALF, INFINITY, FP_COINCIDENT + use constants, only: NONE, ONE, TWO, ZERO, HALF, INFINITY, FP_COINCIDENT implicit none @@ -15,8 +15,8 @@ module surface_header neighbor_pos(:), & ! List of cells on positive side neighbor_neg(:) ! List of cells on negative side integer :: bc ! Boundary condition - integer :: opposite ! Opposite surface for periodic boundary - character(len=104) :: name = "" ! User-defined name + integer :: i_periodic = NONE ! Index of corresponding periodic surface + character(len=104) :: name = "" ! User-defined name contains procedure :: sense procedure :: reflect diff --git a/tests/test_periodic/geometry.xml b/tests/test_periodic/geometry.xml deleted file mode 100644 index 6ecfec1972..0000000000 --- a/tests/test_periodic/geometry.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/tests/test_periodic/inputs_true.dat b/tests/test_periodic/inputs_true.dat new file mode 100644 index 0000000000..d50d0b8592 --- /dev/null +++ b/tests/test_periodic/inputs_true.dat @@ -0,0 +1 @@ +af589996f2930337afe34ba9894098ff5efe3b29b6e927117220b718bf29b630ffdbc931754d465a8e8100125a8aa997dbe10aab322b43f69d59710573996a6d \ No newline at end of file diff --git a/tests/test_periodic/materials.xml b/tests/test_periodic/materials.xml deleted file mode 100644 index a7bf4faf4e..0000000000 --- a/tests/test_periodic/materials.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/tests/test_periodic/results_true.dat b/tests/test_periodic/results_true.dat index f65dbafd1b..b0bdb22c7d 100644 --- a/tests/test_periodic/results_true.dat +++ b/tests/test_periodic/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.542742E+00 4.410461E-02 +1.040109E+00 6.527490E-02 diff --git a/tests/test_periodic/settings.xml b/tests/test_periodic/settings.xml deleted file mode 100644 index af09407ae5..0000000000 --- a/tests/test_periodic/settings.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - 1000 - 4 - 0 - - - - -5. -5. -5. 5. 5. 5. - - - diff --git a/tests/test_periodic/test_periodic.py b/tests/test_periodic/test_periodic.py index b584632f08..558514575a 100644 --- a/tests/test_periodic/test_periodic.py +++ b/tests/test_periodic/test_periodic.py @@ -3,9 +3,58 @@ import os import sys sys.path.insert(0, os.pardir) -from testing_harness import TestHarness +from testing_harness import PyAPITestHarness +import openmc + + +class PeriodicTest(PyAPITestHarness): + def _build_inputs(self): + # Define materials + water = openmc.Material(1) + water.add_nuclide('H-1', 2.0) + water.add_nuclide('O-16', 1.0) + water.add_s_alpha_beta('HH2O', '71t') + water.set_density('g/cc', 1.0) + + fuel = openmc.Material(2) + fuel.add_nuclide('U-235', 1.0) + fuel.set_density('g/cc', 4.5) + + materials = openmc.Materials((water, fuel)) + materials.default_xs = '71c' + materials.export_to_xml() + + # Define geometry + x_min = openmc.XPlane(1, x0=-5., boundary_type='periodic') + x_max = openmc.XPlane(2, x0=5., boundary_type='periodic') + x_max.periodic_surface = x_min + + y_min = openmc.YPlane(3, y0=-5., boundary_type='periodic') + y_max = openmc.YPlane(4, y0=5., boundary_type='periodic') + + z_min = openmc.ZPlane(5, z0=-5., boundary_type='reflective') + z_max = openmc.ZPlane(6, z0=5., boundary_type='reflective') + z_cyl = openmc.ZCylinder(7, x0=-2.5, y0=2.5, R=2.0) + + outside_cyl = openmc.Cell(1, fill=water, region=( + +x_min & -x_max & +y_min & -y_max & +z_min & -z_max & +z_cyl)) + inside_cyl = openmc.Cell(2, fill=fuel, region=+z_min & -z_max & -z_cyl) + root_universe = openmc.Universe(0, cells=(outside_cyl, inside_cyl)) + + geometry = openmc.Geometry() + geometry.root_universe = root_universe + geometry.export_to_xml() + + # Define settings + settings = openmc.Settings() + settings.particles = 1000 + settings.batches = 4 + settings.inactive = 0 + settings.source = openmc.Source(space=openmc.stats.Box( + *outside_cyl.region.bounding_box)) + settings.export_to_xml() if __name__ == '__main__': - harness = TestHarness('statepoint.4.h5') + harness = PeriodicTest('statepoint.4.h5') harness.main() From 63e355f5a02730d6f2d1c4dbf5373d4e9dea7395 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 25 May 2016 10:09:02 -0500 Subject: [PATCH 019/417] Fix typo in documentation pointed out by @smharper --- docs/source/usersguide/input.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index e9ce42fd9c..da9896fbb0 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -900,7 +900,7 @@ Each ```` element can have the following attributes or sub-elements: The boundary condition for the surface. This can be "transmission", "vacuum", "reflective", or "periodic". Periodic boundary conditions can only be applied to x-, y-, and z-planes. Only axis-aligned periodicity is - supported, i.e., x-planes an only be paired with x-planes. Specify which + supported, i.e., x-planes can only be paired with x-planes. Specify which planes are periodic and the code will automatically identify which planes are paired together. From 55740283934463d2e58255b1a5956c5afc757ffd Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 25 May 2016 10:33:47 -0500 Subject: [PATCH 020/417] Update documentation and fix Relax NG schema --- docs/source/usersguide/input.rst | 4 ++++ src/relaxng/geometry.rnc | 2 +- src/relaxng/geometry.rng | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index da9896fbb0..d1a01b65be 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -906,6 +906,10 @@ Each ```` element can have the following attributes or sub-elements: *Default*: "transmission" + :periodic_surface_id: + If a periodic boundary condition is applied, this attribute identifies the + ``id`` of the corresponding periodic sufrace. + The following quadratic surfaces can be modeled: :x-plane: diff --git a/src/relaxng/geometry.rnc b/src/relaxng/geometry.rnc index 6cb6f7c158..35d5ef8b2a 100644 --- a/src/relaxng/geometry.rnc +++ b/src/relaxng/geometry.rnc @@ -23,7 +23,7 @@ element geometry { (element coeffs { list { xsd:double+ } } | attribute coeffs { list { xsd:double+ } }) & (element boundary { ( "transmit" | "reflective" | "vacuum" | "periodic" ) } | attribute boundary { ( "transmit" | "reflective" | "vacuum" | "periodic" ) })? & - (element opposite { xsd:int } | attribute opposite { xsd:int })? + (element periodic_surface_id { xsd:int } | attribute periodic_surface_id { xsd:int })? }* & element lattice { diff --git a/src/relaxng/geometry.rng b/src/relaxng/geometry.rng index 3ff0f67c69..b53d0e8db8 100644 --- a/src/relaxng/geometry.rng +++ b/src/relaxng/geometry.rng @@ -188,10 +188,10 @@ - + - + From ccc7da103283b1d45bc362e42cb16e1349671b9f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 25 May 2016 21:26:06 -0400 Subject: [PATCH 021/417] Removing transport score capability and replacing with error message to let users know of deprecation. Also removed that same error message for diffusion --- src/constants.F90 | 29 +++++++++++----------- src/endf.F90 | 2 -- src/input_xml.F90 | 8 ++---- src/output.F90 | 1 - src/tally.F90 | 38 ----------------------------- tests/test_tallies/inputs_true.dat | 2 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tallies/test_tallies.py | 2 +- 8 files changed, 19 insertions(+), 65 deletions(-) diff --git a/src/constants.F90 b/src/constants.F90 index 5b58f409dd..be13f47f2f 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -279,7 +279,7 @@ module constants EVENT_ABSORB = 2 ! Tally score type - integer, parameter :: N_SCORE_TYPES = 22 + integer, parameter :: N_SCORE_TYPES = 21 integer, parameter :: & SCORE_FLUX = -1, & ! flux SCORE_TOTAL = -2, & ! total reaction rate @@ -289,20 +289,19 @@ module constants SCORE_SCATTER_PN = -6, & ! system for scoring 0th through nth moment SCORE_NU_SCATTER_N = -7, & ! arbitrary nu-scattering moment SCORE_NU_SCATTER_PN = -8, & ! system for scoring 0th through nth nu-scatter moment - SCORE_TRANSPORT = -9, & ! transport reaction rate - SCORE_N_1N = -10, & ! (n,1n) rate - SCORE_ABSORPTION = -11, & ! absorption rate - SCORE_FISSION = -12, & ! fission rate - SCORE_NU_FISSION = -13, & ! neutron production rate - SCORE_KAPPA_FISSION = -14, & ! fission energy production rate - SCORE_CURRENT = -15, & ! partial current - SCORE_FLUX_YN = -16, & ! angular moment of flux - SCORE_TOTAL_YN = -17, & ! angular moment of total reaction rate - SCORE_SCATTER_YN = -18, & ! angular flux-weighted scattering moment (0:N) - SCORE_NU_SCATTER_YN = -19, & ! angular flux-weighted nu-scattering moment (0:N) - SCORE_EVENTS = -20, & ! number of events - SCORE_DELAYED_NU_FISSION = -21, & ! delayed neutron production rate - SCORE_INVERSE_VELOCITY = -22 ! flux-weighted inverse velocity + SCORE_N_1N = -9, & ! (n,1n) rate + SCORE_ABSORPTION = -10, & ! absorption rate + SCORE_FISSION = -11, & ! fission rate + SCORE_NU_FISSION = -12, & ! neutron production rate + SCORE_KAPPA_FISSION = -13, & ! fission energy production rate + SCORE_CURRENT = -14, & ! partial current + SCORE_FLUX_YN = -15, & ! angular moment of flux + SCORE_TOTAL_YN = -16, & ! angular moment of total reaction rate + SCORE_SCATTER_YN = -17, & ! angular flux-weighted scattering moment (0:N) + SCORE_NU_SCATTER_YN = -18, & ! angular flux-weighted nu-scattering moment (0:N) + SCORE_EVENTS = -19, & ! number of events + SCORE_DELAYED_NU_FISSION = -20, & ! delayed neutron production rate + SCORE_INVERSE_VELOCITY = -21 ! flux-weighted inverse velocity ! Maximum scattering order supported integer, parameter :: MAX_ANG_ORDER = 10 diff --git a/src/endf.F90 b/src/endf.F90 index 64f26539a9..9f14ea6b72 100644 --- a/src/endf.F90 +++ b/src/endf.F90 @@ -34,8 +34,6 @@ contains string = "nu-scatter-n" case (SCORE_NU_SCATTER_PN) string = "nu-scatter-pn" - case (SCORE_TRANSPORT) - string = "transport" case (SCORE_N_1N) string = "n1n" case (SCORE_ABSORPTION) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index d06fe1f9d2..eb8859bec5 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3493,13 +3493,9 @@ contains j = j + n_bins - 1 case('transport') - t % score_bins(j) = SCORE_TRANSPORT - - ! Set tally estimator to analog - t % estimator = ESTIMATOR_ANALOG - case ('diffusion') - call fatal_error("Diffusion score no longer supported for tallies, & + call fatal_error("Transport score no longer supported for tallies, & &please remove") + case ('n1n') if (run_CE) then t % score_bins(j) = SCORE_N_1N diff --git a/src/output.F90 b/src/output.F90 index d56de1f3d2..76e3cfc024 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -777,7 +777,6 @@ contains score_names(abs(SCORE_TOTAL)) = "Total Reaction Rate" score_names(abs(SCORE_SCATTER)) = "Scattering Rate" score_names(abs(SCORE_NU_SCATTER)) = "Scattering Production Rate" - score_names(abs(SCORE_TRANSPORT)) = "Transport Rate" score_names(abs(SCORE_N_1N)) = "(n,1n) Rate" score_names(abs(SCORE_ABSORPTION)) = "Absorption Rate" score_names(abs(SCORE_FISSION)) = "Fission Rate" diff --git a/src/tally.F90 b/src/tally.F90 index c4eaf30c8c..0c41b6f987 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -346,30 +346,6 @@ contains end if - 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 % total - material_xs % absorption - ! 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 @@ -1021,20 +997,6 @@ contains end if - 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 - ! 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 = (material_xs % total - p % mu * material_xs % elastic) - if (material_xs % elastic /= ZERO) then - score = score / material_xs % elastic - end if - - case (SCORE_ABSORPTION) if (t % estimator == ESTIMATOR_ANALOG) then if (survival_biasing) then diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index be789fc838..61d09f8ea6 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -0597eff3fddbc45a09b5b324c9704e540b694b07c136f2040426fdcfe5ec544f036073e4afa34a5fb0fbd721a4c0a609b9b68bf17ce4ec78302023b46b71930c \ No newline at end of file +35e3e1a2c2ef7c707ea585e6cd697ea5e4ae8ec0ec070985dcfd1917a6a569cb7354bee7bbdd259ecdad7198823b4dad98b17452f9cba1122f22635e0aa0a046 \ No newline at end of file diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index fd5eb91a1a..904f62a770 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -9f14aaa1694489032b3ce193ad29ecf6ac8976c88c2dd6b26d4c30ae88348e249a9b702b1d39c22204350b8f3bd689800c1b6a6003f19c7bdaf64084a209a2cc \ No newline at end of file +264bc2cb19f7d81dfb1c326ee044f89cd09549b3b6836f334bb06f63bf586058e9825788a90ca7b84c77fd53ee23871727fd0d2b0139cb008192c533be4b84e3 \ No newline at end of file diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index 52d4084fde..0b7fabef28 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -161,7 +161,7 @@ class TalliesTestHarness(PyAPITestHarness): total_tallies[3].estimator = 'collision' questionable_tally = Tally() - questionable_tally.scores = ['transport', 'n1n'] + questionable_tally.scores = ['n1n'] all_nuclide_tallies = [Tally(), Tally()] for t in all_nuclide_tallies: From 4f56453a168e0f2709ff929cea711130dd55ebe3 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 26 May 2016 18:43:49 -0400 Subject: [PATCH 022/417] Removed (n,1n) score from code, replaced with deprecation message --- src/constants.F90 | 27 +++++++++++++-------------- src/endf.F90 | 2 -- src/input_xml.F90 | 10 ++-------- src/output.F90 | 1 - tests/test_tallies/inputs_true.dat | 2 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tallies/test_tallies.py | 4 ---- 7 files changed, 17 insertions(+), 31 deletions(-) diff --git a/src/constants.F90 b/src/constants.F90 index be13f47f2f..4354cc4234 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -279,7 +279,7 @@ module constants EVENT_ABSORB = 2 ! Tally score type - integer, parameter :: N_SCORE_TYPES = 21 + integer, parameter :: N_SCORE_TYPES = 20 integer, parameter :: & SCORE_FLUX = -1, & ! flux SCORE_TOTAL = -2, & ! total reaction rate @@ -289,19 +289,18 @@ module constants SCORE_SCATTER_PN = -6, & ! system for scoring 0th through nth moment SCORE_NU_SCATTER_N = -7, & ! arbitrary nu-scattering moment SCORE_NU_SCATTER_PN = -8, & ! system for scoring 0th through nth nu-scatter moment - SCORE_N_1N = -9, & ! (n,1n) rate - SCORE_ABSORPTION = -10, & ! absorption rate - SCORE_FISSION = -11, & ! fission rate - SCORE_NU_FISSION = -12, & ! neutron production rate - SCORE_KAPPA_FISSION = -13, & ! fission energy production rate - SCORE_CURRENT = -14, & ! partial current - SCORE_FLUX_YN = -15, & ! angular moment of flux - SCORE_TOTAL_YN = -16, & ! angular moment of total reaction rate - SCORE_SCATTER_YN = -17, & ! angular flux-weighted scattering moment (0:N) - SCORE_NU_SCATTER_YN = -18, & ! angular flux-weighted nu-scattering moment (0:N) - SCORE_EVENTS = -19, & ! number of events - SCORE_DELAYED_NU_FISSION = -20, & ! delayed neutron production rate - SCORE_INVERSE_VELOCITY = -21 ! flux-weighted inverse velocity + SCORE_ABSORPTION = -9, & ! absorption rate + SCORE_FISSION = -10, & ! fission rate + SCORE_NU_FISSION = -11, & ! neutron production rate + SCORE_KAPPA_FISSION = -12, & ! fission energy production rate + SCORE_CURRENT = -13, & ! partial current + SCORE_FLUX_YN = -14, & ! angular moment of flux + SCORE_TOTAL_YN = -15, & ! angular moment of total reaction rate + SCORE_SCATTER_YN = -16, & ! angular flux-weighted scattering moment (0:N) + SCORE_NU_SCATTER_YN = -17, & ! angular flux-weighted nu-scattering moment (0:N) + SCORE_EVENTS = -18, & ! number of events + SCORE_DELAYED_NU_FISSION = -19, & ! delayed neutron production rate + SCORE_INVERSE_VELOCITY = -20 ! flux-weighted inverse velocity ! Maximum scattering order supported integer, parameter :: MAX_ANG_ORDER = 10 diff --git a/src/endf.F90 b/src/endf.F90 index 9f14ea6b72..ad5e97a033 100644 --- a/src/endf.F90 +++ b/src/endf.F90 @@ -34,8 +34,6 @@ contains string = "nu-scatter-n" case (SCORE_NU_SCATTER_PN) string = "nu-scatter-pn" - case (SCORE_N_1N) - string = "n1n" case (SCORE_ABSORPTION) string = "absorption" case (SCORE_FISSION) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index eb8859bec5..e2add2027b 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3497,14 +3497,8 @@ contains &please remove") case ('n1n') - if (run_CE) then - t % score_bins(j) = SCORE_N_1N - - ! Set tally estimator to analog - t % estimator = ESTIMATOR_ANALOG - else - call fatal_error("Cannot tally n1n rate in multi-group mode!") - end if + call fatal_error("n1n score no longer supported for tallies, & + &please remove") case ('n2n', '(n,2n)') t % score_bins(j) = N_2N diff --git a/src/output.F90 b/src/output.F90 index 76e3cfc024..768019f8da 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -777,7 +777,6 @@ contains score_names(abs(SCORE_TOTAL)) = "Total Reaction Rate" score_names(abs(SCORE_SCATTER)) = "Scattering Rate" score_names(abs(SCORE_NU_SCATTER)) = "Scattering Production Rate" - score_names(abs(SCORE_N_1N)) = "(n,1n) Rate" score_names(abs(SCORE_ABSORPTION)) = "Absorption Rate" score_names(abs(SCORE_FISSION)) = "Fission Rate" score_names(abs(SCORE_NU_FISSION)) = "Nu-Fission Rate" diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index 61d09f8ea6..e3d37be300 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -35e3e1a2c2ef7c707ea585e6cd697ea5e4ae8ec0ec070985dcfd1917a6a569cb7354bee7bbdd259ecdad7198823b4dad98b17452f9cba1122f22635e0aa0a046 \ No newline at end of file +ea09926d8f5c6c96529bf5529f4deb3be78eda2da80adbbf3440147c337587358c2b1823bc72df9463676135573eb481dcd361b735f18365216645ee81092f1e \ No newline at end of file diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 904f62a770..ff3a828454 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -264bc2cb19f7d81dfb1c326ee044f89cd09549b3b6836f334bb06f63bf586058e9825788a90ca7b84c77fd53ee23871727fd0d2b0139cb008192c533be4b84e3 \ No newline at end of file +a0c7d6ca246ecd7dd5fed06373af142390971401c4e97744f29e55810ab9c231c97c4d8947cdf0b3d2df0ae829a9ddf768e5b2d889bbea34f2b6db0e567db884 \ No newline at end of file diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index 0b7fabef28..9e40d4185d 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -160,9 +160,6 @@ class TalliesTestHarness(PyAPITestHarness): total_tallies[2].estimator = 'analog' total_tallies[3].estimator = 'collision' - questionable_tally = Tally() - questionable_tally.scores = ['n1n'] - all_nuclide_tallies = [Tally(), Tally()] for t in all_nuclide_tallies: t.filters = [cell_filter] @@ -182,7 +179,6 @@ class TalliesTestHarness(PyAPITestHarness): self._input_set.tallies += flux_tallies self._input_set.tallies += (scatter_tally1, scatter_tally2) self._input_set.tallies += total_tallies - self._input_set.tallies.append(questionable_tally) self._input_set.tallies += all_nuclide_tallies self._input_set.export() From 07be6306ce92bef7de529e592d0440ad226bddd1 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 18 May 2016 16:37:11 -0500 Subject: [PATCH 023/417] Add Surface.evaluate() methods and Region.__contains__ methods --- openmc/region.py | 52 ++++++++++ openmc/surface.py | 246 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 298 insertions(+) diff --git a/openmc/region.py b/openmc/region.py index a2edbeedd6..95f59546c0 100644 --- a/openmc/region.py +++ b/openmc/region.py @@ -28,6 +28,10 @@ class Region(object): def __invert__(self): return Complement(self) + @abstractmethod + def __contains__(self, point): + return False + @abstractmethod def __str__(self): return '' @@ -229,6 +233,22 @@ class Intersection(Region): def __init__(self, *nodes): self.nodes = list(nodes) + def __contains__(self, point): + """Check whether a point is contained in the region. + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinates, :math:`(x',y',z')`, of the point + + Returns + ------- + bool + Whether the point is in the region + + """ + return all(point in n for n in self.nodes) + def __str__(self): return '(' + ' '.join(map(str, self.nodes)) + ')' @@ -281,6 +301,22 @@ class Union(Region): def __init__(self, *nodes): self.nodes = list(nodes) + def __contains__(self, point): + """Check whether a point is contained in the region. + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinates, :math:`(x',y',z')`, of the point + + Returns + ------- + bool + Whether the point is in the region + + """ + return any(point in n for n in self.nodes) + def __str__(self): return '(' + ' | '.join(map(str, self.nodes)) + ')' @@ -336,6 +372,22 @@ class Complement(Region): def __init__(self, node): self.node = node + def __contains__(self, point): + """Check whether a point is contained in the region. + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinates, :math:`(x',y',z')`, of the point + + Returns + ------- + bool + Whether the point is in the region + + """ + return point not in self.node + def __str__(self): return '~' + str(self.node) diff --git a/openmc/surface.py b/openmc/surface.py index 193780192c..76f0d82e7d 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -295,6 +295,25 @@ class Plane(Surface): self._periodic_surface = periodic_surface periodic_surface._periodic_surface = self + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`Ax' + By' + Cz' - d` + + """ + + x, y, z = point + return self.a*x + self.b*y + self.c*z - self.d + def create_xml_subelement(self): element = super(Plane, self).create_xml_subelement() @@ -392,6 +411,23 @@ class XPlane(Plane): return (np.array([self.x0, -np.inf, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`x' - x_0` + + """ + return point[0] - self.x0 + class YPlane(Plane): """A plane perpendicular to the y axis of the form :math:`y - y_0 = 0` @@ -481,6 +517,23 @@ class YPlane(Plane): return (np.array([-np.inf, self.y0, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`y' - y_0` + + """ + return point[1] - self.y0 + class ZPlane(Plane): """A plane perpendicular to the z axis of the form :math:`z - z_0 = 0` @@ -570,6 +623,23 @@ class ZPlane(Plane): return (np.array([-np.inf, -np.inf, self.z0]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`z' - z_0` + + """ + return point[2] - self.z0 + class Cylinder(Surface): """A cylinder whose length is parallel to the x-, y-, or z-axis. @@ -728,6 +798,25 @@ class XCylinder(Cylinder): return (np.array([-np.inf, -np.inf, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(y' - y_0)^2 + (z' - z_0)^2 - R^2` + + """ + y = point[1] - self.y0 + z = point[2] - self.z0 + return y**2 + z**2 - self.r**2 + class YCylinder(Cylinder): """An infinite cylinder whose length is parallel to the y-axis of the form @@ -831,6 +920,25 @@ class YCylinder(Cylinder): return (np.array([-np.inf, -np.inf, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(x' - x_0)^2 + (z' - z_0)^2 - R^2` + + """ + x = point[0] - self.x0 + z = point[2] - self.z0 + return x**2 + z**2 - self.r**2 + class ZCylinder(Cylinder): """An infinite cylinder whose length is parallel to the z-axis of the form @@ -934,6 +1042,25 @@ class ZCylinder(Cylinder): return (np.array([-np.inf, -np.inf, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(x' - x_0)^2 + (y' - y_0)^2 - R^2` + + """ + x = point[0] - self.x0 + y = point[1] - self.y0 + return x**2 + y**2 - self.r**2 + class Sphere(Surface): """A sphere of the form :math:`(x - x_0)^2 + (y - y_0)^2 + (z - z_0)^2 = R^2`. @@ -1062,6 +1189,26 @@ class Sphere(Surface): return (np.array([-np.inf, -np.inf, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(x' - x_0)^2 + (y' - y_0)^2 + (z' - z_0)^2 - R^2` + + """ + x = point[0] - self.x0 + y = point[1] - self.y0 + z = point[2] - self.z0 + return x**2 + y**2 + z**2 - self.r**2 + class Cone(Surface): """A conical surface parallel to the x-, y-, or z-axis. @@ -1214,6 +1361,26 @@ class XCone(Cone): self._type = 'x-cone' + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(y' - y_0)^2 + (z' - z_0)^2 - R^2(x' - x_0)^2` + + """ + x = point[0] - self.x0 + y = point[1] - self.y0 + z = point[2] - self.z0 + return y**2 + z**2 - self.r2*x**2 + class YCone(Cone): """A cone parallel to the y-axis of the form :math:`(x - x_0)^2 + (z - z_0)^2 = @@ -1270,6 +1437,26 @@ class YCone(Cone): self._type = 'y-cone' + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(x' - x_0)^2 + (z' - z_0)^2 - R^2(y' - y_0)^2` + + """ + x = point[0] - self.x0 + y = point[1] - self.y0 + z = point[2] - self.z0 + return x**2 + z**2 - self.r2*y**2 + class ZCone(Cone): """A cone parallel to the x-axis of the form :math:`(x - x_0)^2 + (y - y_0)^2 = @@ -1326,6 +1513,26 @@ class ZCone(Cone): self._type = 'z-cone' + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(x' - x_0)^2 + (y' - y_0)^2 - R^2(z' - z_0)^2` + + """ + x = point[0] - self.x0 + y = point[1] - self.y0 + z = point[2] - self.z0 + return x**2 + y**2 - self.r2*z**2 + class Quadric(Surface): """A surface of the form :math:`Ax^2 + By^2 + Cz^2 + Dxy + Eyz + Fxz + Gx + Hy + @@ -1471,6 +1678,27 @@ class Quadric(Surface): check_type('k coefficient', k, Real) self._coefficients['k'] = k + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`Ax'^2 + By'^2 + Cz'^2 + Dx'y' + Ey'z' + Fx'z' + Gx' + Hy' + + Jz' + K = 0` + + """ + x, y, z = point + return x*(self.a*x + self.d*y + self.g) + \ + y*(self.b*y + self.e*z + self.h) + \ + z*(self.c*z + self.f*x + self.j) + self.k + class Halfspace(Region): """A positive or negative half-space region. @@ -1516,6 +1744,24 @@ class Halfspace(Region): def __invert__(self): return -self.surface if self.side == '+' else +self.surface + def __contains__(self, point): + """Check whether a point is contained in the half-space. + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinates, :math:`(x',y',z')`, of the point + + Returns + ------- + bool + Whether the point is in the half-space + + """ + + val = self.surface.evaluate(point) + return val >= 0. if self.side == '+' else val < 0. + @property def surface(self): return self._surface From e8d4dbd5f419ce52ff14355b9dbf59ef0a0e26b8 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 18 May 2016 16:39:35 -0500 Subject: [PATCH 024/417] Add Intersection.__iter__ and Union.__iter__ methods --- openmc/region.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/openmc/region.py b/openmc/region.py index 95f59546c0..9e10112710 100644 --- a/openmc/region.py +++ b/openmc/region.py @@ -223,7 +223,7 @@ class Intersection(Region): Attributes ---------- - nodes : tuple of openmc.Region + nodes : list 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 @@ -233,6 +233,10 @@ class Intersection(Region): def __init__(self, *nodes): self.nodes = list(nodes) + def __iter__(self): + for n in self.nodes: + yield n + def __contains__(self, point): """Check whether a point is contained in the region. @@ -301,6 +305,10 @@ class Union(Region): def __init__(self, *nodes): self.nodes = list(nodes) + def __iter__(self): + for n in self.nodes: + yield n + def __contains__(self, point): """Check whether a point is contained in the region. From 168f1269fdcd1ee73cc88090431c6686ab085b09 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 19 May 2016 10:25:27 -0500 Subject: [PATCH 025/417] Add Cell.__contains__ and Cell.rotation_matrix --- openmc/cell.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index 8ddae63716..8f8ebd9367 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -1,9 +1,12 @@ from collections import OrderedDict, Iterable +from math import cos, sin, pi from numbers import Real, Integral from xml.etree import ElementTree as ET import sys import warnings +import numpy as np + import openmc import openmc.checkvalue as cv from openmc.surface import Halfspace @@ -83,6 +86,7 @@ class Cell(object): self._type = None self._region = None self._rotation = None + self._rotation_matrix = None self._translation = None self._offsets = None self._distribcell_index = None @@ -92,6 +96,9 @@ class Cell(object): if region is not None: self.region = region + def __contains__(self, point): + return point in self.region + def __eq__(self, other): if not isinstance(other, Cell): return False @@ -124,6 +131,8 @@ class Cell(object): if isinstance(self._fill, openmc.Material): string += '{0: <16}{1}{2}\n'.format('\tMaterial', '=\t', self._fill._id) + elif isinstance(self._fill, basestring): + string += '{0: <16}=\tvoid\n'.format('\tMaterial') elif isinstance(self._fill, Iterable): string += '{0: <16}{1}'.format('\tMaterial', '=\t') string += '[' @@ -179,6 +188,10 @@ class Cell(object): def rotation(self): return self._rotation + @property + def rotation_matrix(self): + return self._rotation_matrix + @property def translation(self): return self._translation @@ -249,13 +262,23 @@ class Cell(object): cv.check_type('cell rotation', rotation, Iterable, Real) cv.check_length('cell rotation', rotation, 3) - self._rotation = rotation + self._rotation = np.asarray(rotation) + + # Save rotation matrix + phi, theta, psi = self.rotation*(-pi/180.) + c3, s3 = cos(phi), sin(phi) + c2, s2 = cos(theta), sin(theta) + c1, s1 = cos(psi), sin(psi) + self._rotation_matrix = np.array([ + [c1*c2, c1*s2*s3 - c3*s1, s1*s3 + c1*c3*s2], + [c2*s1, c1*c3 + s1*s2*s3, c3*s1*s2 - c1*s3], + [-s2, c2*s3, c2*c3]]) @translation.setter def translation(self, translation): cv.check_type('cell translation', translation, Iterable, Real) cv.check_length('cell translation', translation, 3) - self._translation = translation + self._translation = np.asarray(translation) @offsets.setter def offsets(self, offsets): From e40a369693e48d5f7b5a2e0d3edae5203f938e5a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 19 May 2016 20:14:44 -0500 Subject: [PATCH 026/417] Add geometry plotting capability and restructure lattice attributes --- .../pythonapi/examples/mgxs-part-iii.ipynb | 13 +- .../pythonapi/examples/mgxs-part-iv.ipynb | 1 - .../examples/pandas-dataframes.ipynb | 11 +- examples/python/lattice/nested/build-xml.py | 2 - examples/python/lattice/simple/build-xml.py | 1 - openmc/cell.py | 5 +- openmc/geometry.py | 17 + openmc/lattice.py | 444 +++++++++++++++--- openmc/opencg_compatible.py | 9 +- openmc/summary.py | 13 +- openmc/universe.py | 105 +++++ tests/input_set.py | 4 - .../test_asymmetric_lattice.py | 1 - tests/test_distribmat/test_distribmat.py | 1 - 14 files changed, 527 insertions(+), 100 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index a386779450..5f0acde3f1 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -260,7 +260,6 @@ "source": [ "# Create fuel assembly Lattice\n", "assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n", - "assembly.dimension = (17, 17)\n", "assembly.pitch = (1.26, 1.26)\n", "assembly.lower_left = [-1.26 * 17. / 2.0] * 2" ] @@ -1597,21 +1596,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", - "language": "python2", - "name": "python2" + "display_name": "Python 3", + "language": "python", + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.11" + "pygments_lexer": "ipython3", + "version": "3.5.1" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index b330e7ace8..65b3f44dc3 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -244,7 +244,6 @@ "source": [ "# Create fuel assembly Lattice\n", "assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n", - "assembly.dimension = (17, 17)\n", "assembly.pitch = (1.26, 1.26)\n", "assembly.lower_left = [-1.26 * 17. / 2.0] * 2" ] diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index b88cf99498..2c222ad6e0 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -199,7 +199,6 @@ "source": [ "# Create fuel assembly Lattice\n", "assembly = openmc.RectLattice(name='1.6% Fuel - 0BA')\n", - "assembly.dimension = (17, 17)\n", "assembly.pitch = (1.26, 1.26)\n", "assembly.lower_left = [-1.26 * 17. / 2.0] * 2\n", "assembly.universes = [[pin_cell_universe] * 17] * 17" @@ -2194,21 +2193,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.5.1" } }, "nbformat": 4, diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index b2d611d345..a964d882ca 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -98,14 +98,12 @@ univ4.add_cell(cell2) # Instantiate nested Lattices lattice1 = openmc.RectLattice(lattice_id=4, name='4x4 assembly') -lattice1.dimension = [2, 2] lattice1.lower_left = [-1., -1.] lattice1.pitch = [1., 1.] lattice1.universes = [[univ1, univ2], [univ2, univ3]] lattice2 = openmc.RectLattice(lattice_id=6, name='4x4 core') -lattice2.dimension = [2, 2] lattice2.lower_left = [-2., -2.] lattice2.pitch = [2., 2.] lattice2.universes = [[univ4, univ4], diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index 65c3554798..4961b96b8b 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -94,7 +94,6 @@ root.add_cell(cell1) # Instantiate a Lattice lattice = openmc.RectLattice(lattice_id=5) -lattice.dimension = [4, 4] lattice.lower_left = [-2., -2.] lattice.pitch = [1., 1.] lattice.universes = [[univ1, univ2, univ1, univ2], diff --git a/openmc/cell.py b/openmc/cell.py index 8f8ebd9367..29f85754af 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -97,7 +97,10 @@ class Cell(object): self.region = region def __contains__(self, point): - return point in self.region + if self.region is None: + return True + else: + return point in self.region def __eq__(self, other): if not isinstance(other, Cell): diff --git a/openmc/geometry.py b/openmc/geometry.py index ed437f6e19..7eddadfc76 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -62,6 +62,23 @@ class Geometry(object): tree.write("geometry.xml", xml_declaration=True, encoding='utf-8', method="xml") + def find(self, point): + """Find cells/universes/lattices which contain a given point + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinatesof the point + + Returns + ------- + list + Sequence of universes, cells, and lattices which are traversed to + find the given point + + """ + return self.root_universe.find(point) + def get_cell_instance(self, path): """Return the instance number for the final cell in a geometry path. diff --git a/openmc/lattice.py b/openmc/lattice.py index af6c14a6a9..d8deddc421 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -1,8 +1,12 @@ +from __future__ import division + import abc from collections import OrderedDict, Iterable +from math import sqrt, floor from numbers import Real, Integral from xml.etree import ElementTree as ET import sys +import warnings import numpy as np @@ -113,12 +117,6 @@ class Lattice(object): cv.check_type('outer universe', outer, openmc.Universe) self._outer = outer - @universes.setter - def universes(self, universes): - cv.check_iterable_type('lattice universes', universes, openmc.Universe, - min_depth=2, max_depth=3) - self._universes = np.asarray(universes) - def get_unique_universes(self): """Determine all unique universes in the lattice @@ -239,6 +237,11 @@ class Lattice(object): class RectLattice(Lattice): """A lattice consisting of rectangular prisms. + To completely define a rectangular lattice, the + :attr:`RectLattice.lower_left` :attr:`RectLattice.pitch`, + :attr:`RectLattice.outer`, and :attr:`RectLattice.universes` properties need + to be set. + Parameters ---------- lattice_id : int, optional @@ -253,12 +256,6 @@ class RectLattice(Lattice): Unique identifier for the lattice name : str Name of the lattice - 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 : 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. pitch : Iterable of float Pitch of the lattice in the x, y, and (if applicable) z directions in cm. @@ -266,7 +263,25 @@ class RectLattice(Lattice): A universe to fill all space outside the lattice universes : Iterable of Iterable of openmc.Universe A two- or three-dimensional list/array of universes filling each element - of the lattice + of the lattice. The first dimension corresponds to the z-direction (if + applicable), the second dimension corresponds to the y-direction, and + the third dimension corresponds to the x-direction. Note that for the + y-direction, a higher index corresponds to a lower physical + y-value. Each z-slice in the array can be thought of as a top-down view + of the lattice. + lower_left : Iterable of float + The Cartesian coordinates of the lower-left corner of the lattice. If + the lattice is two-dimensional, only the x- and y-coordinates are + specified. + indices : list of tuple + A list of all possible (z,y,x) or (y,x) lattice element indices. These + indices correspond to indices in the :attr:`RectLattice.universes` + property. + ndim : int + The number of dimensions of the lattice + shape : 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. """ @@ -274,7 +289,6 @@ class RectLattice(Lattice): super(RectLattice, self).__init__(lattice_id, name) # Initialize Lattice class attributes - self._dimension = None self._lower_left = None self._offsets = None @@ -283,7 +297,7 @@ class RectLattice(Lattice): return False elif not super(RectLattice, self).__eq__(other): return False - elif self.dimension != other.dimension: + elif self.shape != other.shape: return False elif self.lower_left != other.lower_left: return False @@ -300,8 +314,8 @@ class RectLattice(Lattice): 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('\tShape', '=\t', + self.shape) string += '{0: <16}{1}{2}\n'.format('\tLower Left', '=\t', self._lower_left) string += '{0: <16}{1}{2}\n'.format('\tPitch', '=\t', self._pitch) @@ -320,7 +334,7 @@ class RectLattice(Lattice): 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: + if (i+1) % self.shape[0] == 0: string += '\n' string = string.rstrip('\n') @@ -333,7 +347,7 @@ class RectLattice(Lattice): string += '{0} '.format(offset) # Add a newline character when we reach end of row of cells - if (i+1) % self._dimension[-1] == 0: + if (i+1) % self.shape[0] == 0: string += '\n' string = string.rstrip('\n') @@ -341,24 +355,29 @@ class RectLattice(Lattice): return string @property - def dimension(self): - return self._dimension + def indices(self): + if self.ndim == 2: + return list(np.broadcast(*np.ogrid[ + :self.shape[1], :self.shape[0]])) + else: + return list(np.broadcast(*np.ogrid[ + :self.shape[2], :self.shape[1], :self.shape[0]])) @property def lower_left(self): return self._lower_left + @property + def ndim(self): + return len(self.pitch) + @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 + @property + def shape(self): + return self._universes.shape[::-1] @lower_left.setter def lower_left(self, lower_left): @@ -379,8 +398,13 @@ class RectLattice(Lattice): cv.check_greater_than('lattice pitch', dim, 0.0) self._pitch = pitch - def get_cell_instance(self, path, distribcell_index): + @Lattice.universes.setter + def universes(self, universes): + cv.check_iterable_type('lattice universes', universes, openmc.Universe, + min_depth=2, max_depth=3) + self._universes = np.asarray(universes) + 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] @@ -395,7 +419,7 @@ class RectLattice(Lattice): lat_z = int(i.split(',')[2]) - 1 # For 2D Lattices - if len(self._dimension) == 2: + if self.ndim == 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) @@ -408,6 +432,128 @@ class RectLattice(Lattice): return offset + def find_element(self, point): + """Determine index of lattice element and local coordinates for a point + + Parameters + ---------- + point : Iterable of float + Cartesian coordinates of point + + Returns + ------- + 2- or 3-tuple of int + A tuple of the corresponding (x,y,z) lattice element indices + 3-tuple of float + Carestian coordinates of the point in the corresponding lattice + element coordinate system + + """ + ix = floor((point[0] - self._lower_left[0])/self._pitch[0]) + iy = floor((point[1] - self._lower_left[1])/self._pitch[1]) + if self.ndim == 2: + idx = (ix, iy) + else: + iz = floor((point[2] - self._lower_left[2])/self._pitch[2]) + idx = (ix, iy, iz) + return idx, self.get_local_coordinates(point, idx) + + def get_local_coordinates(self, point, idx): + """Determine local coordinates of a point within a lattice element + + Parameters + ---------- + point : Iterable of float + Cartesian coordinates of point + idx : Iterable of int + (x,y,z) indices of lattice element. If the lattice is 2D, the z + index can be omitted. + + Returns + ------- + 3-tuple of float + Cartesian coordinates of point in the lattice element coordinate + system + + """ + x = point[0] - (self._lower_left[0] + (idx[0] + 0.5)*self._pitch[0]) + y = point[1] - (self._lower_left[1] + (idx[1] + 0.5)*self._pitch[1]) + if self.ndim == 2: + z = point[2] + else: + z = point[2] - (self._lower_left[2] + (idx[2] + 0.5)*self._pitch[2]) + return (x, y, z) + + def get_universe_index(self, idx): + """Return index in the universes array corresponding to a lattice element index + + Parameters + ---------- + idx : Iterable of int + Lattice element indices in the :math:`(x,y,z)` coordinate system + + Returns + ------- + 2- or 3-tuple of int + Indices used when setting the :attr:`RectLattice.universes` property + + """ + max_y = self.shape[1] - 1 + if self.ndim == 2: + x, y = idx + return (max_y - y, x) + else: + x, y, z = idx + return (z, max_y - y, x) + + def is_valid_index(self, idx): + """Determine whether lattice element index is within defined range + + Parameters + ---------- + idx : Iterable of int + Lattice element indices in the :math:`(x,y,z)` coordinate system + + Returns + ------- + bool + Whether index is valid + + """ + if self.ndim == 2: + return (0 <= idx[0] < self.shape[0] and + 0 <= idx[1] < self.shape[1]) + else: + return (0 <= idx[0] < self.shape[0] and + 0 <= idx[1] < self.shape[1] and + 0 <= idx[2] < self.shape[2]) + + def find(self, point): + """Find cells/universes/lattices which contain a given point + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinatesof the point + + Returns + ------- + list + Sequence of universes, cells, and lattices which are traversed to + find the given point + + """ + idx, p = self.find_element(point) + if self.is_valid_index(idx): + idx_u = self.get_universe_index(idx) + u = self.universes[idx_u] + else: + if self.outer is not None: + u = self.outer + else: + return [] + return [(self, idx)] + u.find(p) + def create_xml_subelement(self, xml_element): # Determine if XML element already contains subelement for this Lattice @@ -436,7 +582,7 @@ class RectLattice(Lattice): # Export Lattice cell dimensions dimension = ET.SubElement(lattice_subelement, "dimension") - dimension.text = ' '.join(map(str, self._dimension)) + dimension.text = ' '.join(map(str, self.shape)) # Export Lattice lower left lower_left = ET.SubElement(lattice_subelement, "lower_left") @@ -446,10 +592,10 @@ class RectLattice(Lattice): 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]): + if self.ndim == 3: + for z in range(self.shape[2]): + for y in range(self.shape[1]): + for x in range(self.shape[0]): universe = self._universes[z][y][x] # Append Universe ID to the Lattice XML subelement @@ -466,8 +612,8 @@ class RectLattice(Lattice): # 2D Lattices else: - for y in range(self._dimension[1]): - for x in range(self._dimension[0]): + for y in range(self.shape[1]): + for x in range(self.shape[0]): universe = self._universes[y][x] # Append Universe ID to Lattice XML subelement @@ -492,6 +638,10 @@ class RectLattice(Lattice): class HexLattice(Lattice): """A lattice consisting of hexagonal prisms. + To completely define a hexagonal lattice, the :attr:`HexLattice.center`, + :attr:`HexLattice.pitch`, :attr:`HexLattice.universes`, and + :attr:`HexLattice.outer` properties need to be set. + Parameters ---------- lattice_id : int, optional @@ -506,26 +656,31 @@ class HexLattice(Lattice): 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 : 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 pitch : Iterable of float Pitch of the lattice in cm. The first item in the iterable specifies the pitch in the radial direction and, if the lattice is 3D, the second item in the iterable specifies the pitch in the axial direction. outer : openmc.Universe A universe to fill all space outside the lattice - universes : Iterable of Iterable of openmc.Universe + universes : Nested Iterable of openmc.Universe A two- or three-dimensional list/array of universes filling each element of the lattice. Each sub-list corresponds to one ring of universes and should be ordered from outermost ring to innermost ring. The universes within each sub-list are ordered from the "top" and proceed in a clockwise fashion. The :meth:`HexLattice.show_indices` method can be used to help figure out indices for this property. + 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 + indices : list of tuple + A list of all possible (z,r,i) or (r,i) lattice element indices that are + possible, where z is the axial index, r is in the ring index (starting + from the outermost ring), and i is the index with a ring starting from + the top and proceeding clockwise. + num_rings : int + Number of radial ring positions in the xy-plane + num_axial : int + Number of positions along the z-axis. """ @@ -597,17 +752,15 @@ class HexLattice(Lattice): 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 + @property + def indices(self): + if self.num_axial is None: + return [(r, i) for r in range(self._num_rings) + for i in range(max(6*(self._num_rings - 1 - r), 1))] + else: + return [(z, r, i) for z in range(self._num_axial) + for r in range(self._num_rings) + for i in range(max(6*(self._num_rings - 1 - r), 1))] @center.setter def center(self, center): @@ -625,8 +778,9 @@ class HexLattice(Lattice): @Lattice.universes.setter def universes(self, universes): - # Call Lattice.universes parent class setter property - Lattice.universes.fset(self, universes) + cv.check_iterable_type('lattice universes', universes, openmc.Universe, + min_depth=2, max_depth=3) + self._universes = universes # NOTE: This routine assumes that the user creates a "ragged" list of # lists, where each sub-list corresponds to one ring of Universes. @@ -649,14 +803,14 @@ class HexLattice(Lattice): # Set the number of axial positions. if n_dims == 3: - self.num_axial = len(self._universes) + 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[0]) + self._num_rings = len(self._universes[0]) for rings in self._universes: if len(rings) != self._num_rings: msg = 'HexLattice ID={0:d} has an inconsistent number of ' \ @@ -664,7 +818,7 @@ class HexLattice(Lattice): raise ValueError(msg) else: - self.num_rings = len(self._universes) + self._num_rings = len(self._universes) # Make sure there are the correct number of elements in each ring. if n_dims == 3: @@ -705,6 +859,170 @@ class HexLattice(Lattice): 6*(self._num_rings - 1 - r)) raise ValueError(msg) + def find_element(self, point): + """Determine index of lattice element and local coordinates for a point + + Parameters + ---------- + point : Iterable of float + Cartesian coordinates of point + + Returns + ------- + 3-tuple of int + Indices of corresponding lattice element in (x,:math:`alpha`,z) + bases + numpy.ndarray + Carestian coordinates of the point in the corresponding lattice + element coordinate system + + """ + # Convert coordinates to skewed bases + x = point[0] - self._center[0] + y = point[1] - self._center[1] + if self._num_axial is None: + iz = 1 + else: + z = point[2] - self._center[2] + iz = floor(z/self._pitch[1] + 0.5*self._num_axial) + alpha = y - x/sqrt(3.) + ix = floor(x/(sqrt(0.75) * self._pitch[0])) + ia = floor(alpha/self._pitch[0]) + + # Check four lattice elements to see which one is closest based on local + # coordinates + d_min = np.inf + for idx in [(ix, ia, iz), (ix + 1, ia, iz), (ix, ia + 1, iz), + (ix + 1, ia + 1, iz)]: + p = self.get_local_coordinates(point, idx) + d = p[0]**2 + p[1]**2 + if d < d_min: + d_min = d + idx_min = idx + p_min = p + + return idx_min, p_min + + def get_local_coordinates(self, point, idx): + """Determine local coordinates of a point within a lattice element + + Parameters + ---------- + point : Iterable of float + Cartesian coordinates of point + idx : Iterable of int + Indices of lattice element in (x,:math:`alpha`,z) bases + + Returns + ------- + 3-tuple of float + Cartesian coordinates of point in the lattice element coordinate + system + + """ + x = point[0] - (self._center[0] + sqrt(0.75)*self._pitch[0]*idx[0]) + y = point[1] - (self._center[1] + (0.5*idx[0] + idx[1])*self._pitch[0]) + if self._num_axial is None: + z = point[2] + else: + z = point[2] - (self._center[2] + (idx[2] + 0.5 - 0.5*self._num_axial)* + self._pitch[1]) + return (x, y, z) + + def get_universe_index(self, idx): + """Return index in the universes array corresponding to a lattice element index + + Parameters + ---------- + idx : Iterable of int + Lattice element indices in the :math:`(x,\alpha,z)` coordinate + system + + Returns + ------- + 2- or 3-tuple of int + Indices used when setting the :attr:`HexLattice.universes` property + + """ + + # First we determine which ring the index corresponds to. + x = idx[0] + a = idx[1] + z = -a - x + g = max(abs(x), abs(a), abs(z)) + + # Next we use a clever method to figure out where along the ring we are. + i_ring = self._num_rings - 1 - g + if x >= 0: + if a >= 0: + i_within = x + else: + i_within = 2*g + z + else: + if a <= 0: + i_within = 3*g - x + else: + i_within = 5*g - z + + if self.num_axial is None: + return (i_ring, i_within) + else: + return (idx[2], i_ring, i_within) + + def is_valid_index(self, idx): + """Determine whether lattice element index is within defined range + + Parameters + ---------- + idx : Iterable of int + Lattice element indices in the :math:`(x,\alpha,z)` coordinate + system + + Returns + ------- + bool + Whether index is valid + + """ + x = idx[0] + y = idx[1] + z = 0 - y - x + g = max(abs(x), abs(y), abs(z)) + if self.num_axial is None: + return g < self.num_rings + else: + return g < self.num_rings and 0 <= idx[2] < self.num_axial + + def find(self, point): + """Find cells/universes/lattices which contain a given point + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinatesof the point + + Returns + ------- + list + Sequence of universes, cells, and lattices which are traversed to + find the given point + + """ + idx, p = self.find_element(point) + if self.is_valid_index(idx): + idx_u = self.get_universe_index(idx) + if self.num_axial is None: + u = self.universes[idx_u[0]][idx_u[1]] + else: + u = self.universes[idx_u[0]][idx_u[1]][idx_u[2]] + else: + if self.outer is not None: + u = self.outer + else: + return [] + + return [(self, idx)] + u.find(p) + 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) @@ -736,8 +1054,8 @@ class HexLattice(Lattice): 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)) + center = ET.SubElement(lattice_subelement, "center") + center.text = ' '.join(map(str, self._center)) # Export the Lattice nested Universe IDs. diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 562fe9cadf..c6b364d7cb 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -861,8 +861,8 @@ def get_opencg_lattice(openmc_lattice): universes = new_universes # Initialize an empty array for the OpenCG nested Universes in this Lattice - universe_array = np.ndarray(tuple(np.array(dimension)[::-1]), - dtype=opencg.Universe) + universe_array = np.empty(tuple(np.array(dimension)[::-1]), + dtype=opencg.Universe) # Create OpenCG Universes for each unique nested Universe in this Lattice unique_universes = openmc_lattice.get_unique_universes() @@ -929,8 +929,8 @@ def get_openmc_lattice(opencg_lattice): outer = opencg_lattice.outside # Initialize an empty array for the OpenMC nested Universes in this Lattice - universe_array = np.ndarray(tuple(np.array(dimension)[::-1]), - dtype=openmc.Universe) + universe_array = np.empty(tuple(np.array(dimension)[::-1]), + dtype=openmc.Universe) # Create OpenMC Universes for each unique nested Universe in this Lattice unique_universes = opencg_lattice.get_unique_universes() @@ -953,7 +953,6 @@ def get_openmc_lattice(opencg_lattice): np.array(dimension, dtype=np.float64))) / -2.0 openmc_lattice = openmc.RectLattice(lattice_id=lattice_id) - openmc_lattice.dimension = dimension openmc_lattice.pitch = width openmc_lattice.universes = universe_array openmc_lattice.lower_left = lower_left diff --git a/openmc/summary.py b/openmc/summary.py index 6fb6b70009..c3277809a0 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -358,7 +358,6 @@ class Summary(object): # Create the Lattice lattice = openmc.RectLattice(lattice_id=lattice_id, name=name) - lattice.dimension = tuple(dimension) lattice.lower_left = lower_left lattice.pitch = pitch @@ -368,7 +367,7 @@ class Summary(object): # Build array of Universe pointers for the Lattice universes = \ - np.ndarray(tuple(universe_ids.shape), dtype=openmc.Universe) + np.empty(tuple(universe_ids.shape), dtype=openmc.Universe) for z in range(universe_ids.shape[0]): for y in range(universe_ids.shape[1]): @@ -403,8 +402,6 @@ class Summary(object): # Create the Lattice lattice = openmc.HexLattice(lattice_id=lattice_id, name=name) - lattice.num_rings = n_rings - lattice.num_axial = n_axial lattice.center = center lattice.pitch = pitch @@ -417,12 +414,12 @@ class Summary(object): # (x, alpha, z) to the Python API's format of a ragged nested # list of (z, ring, theta). universes = [] - for z in range(lattice.num_axial): + for z in range(n_axial): # Add a list for this axial level. universes.append([]) - x = lattice.num_rings - 1 - a = 2*lattice.num_rings - 2 - for r in range(lattice.num_rings - 1, 0, -1): + x = n_rings - 1 + a = 2*n_rings - 2 + for r in range(n_rings - 1, 0, -1): # Add a list for this ring. universes[-1].append([]) diff --git a/openmc/universe.py b/openmc/universe.py index 770e789da7..d8e1c4daca 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -1,6 +1,7 @@ from collections import OrderedDict, Iterable from numbers import Integral from xml.etree import ElementTree as ET +import random import sys import warnings @@ -124,6 +125,110 @@ class Universe(object): else: self._name = '' + def find(self, point): + """Find cells/universes/lattices which contain a given point + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinatesof the point + + Returns + ------- + list + Sequence of universes, cells, and lattices which are traversed to + find the given point + + """ + p = np.asarray(point) + for cell in self._cells.values(): + if p in cell: + if cell._type in ('normal', 'void'): + return [self, cell] + elif cell._type == 'fill': + if cell.translation is not None: + p -= cell.translation + if cell.rotation is not None: + p[:] = cell.rotation_matrix.dot(p) + return [self, cell] + cell.fill.find(p) + else: + return [self, cell] + cell.fill.find(p) + return [] + + def plot(self, center=(0., 0., 0.), width=(1., 1.), pixels=(200, 200), + basis='xy', color_by='cell'): + """Display a slice plot of the universe. + + Parameters + ---------- + center : Iterable of float + Coordinates at the center of the plot + width : Iterable of float + Width of the plot in each basis direction + pixels : Iterable of int + Number of pixels to use in each basis direction + basis : {'xy', 'xz', 'yz'} + The basis directions for the plot + color_by : {'cell', 'material'} + Indicate whether the plot should be colored by cell or by material + + """ + import matplotlib.pyplot as plt + + if basis == 'xy': + x_min = center[0] - 0.5*width[0] + x_max = center[0] + 0.5*width[0] + y_min = center[1] - 0.5*width[1] + y_max = center[1] + 0.5*width[1] + elif basis == 'yz': + # The x-axis will correspond to physical y and the y-axis will correspond to physical z + x_min = center[1] - 0.5*width[0] + x_max = center[1] + 0.5*width[0] + y_min = center[2] - 0.5*width[1] + y_max = center[2] + 0.5*width[1] + elif basis == 'xz': + # The y-axis will correspond to physical z + x_min = center[0] - 0.5*width[0] + x_max = center[0] + 0.5*width[0] + y_min = center[2] - 0.5*width[1] + y_max = center[2] + 0.5*width[1] + + # Determine locations to determine cells at + x_coords = np.linspace(x_min, x_max, pixels[0], endpoint=False) + \ + 0.5*(x_max - x_min)/pixels[0] + y_coords = np.linspace(y_max, y_min, pixels[1], endpoint=False) - \ + 0.5*(y_max - y_min)/pixels[1] + + colors = {} + img = np.zeros(pixels + (4,)) # Use RGBA form + for i, x in enumerate(x_coords): + for j, y in enumerate(y_coords): + if basis == 'xy': + path = self.find((x, y, center[2])) + elif basis == 'yz': + path = self.find((center[0], x, y)) + elif basis == 'xz': + path = self.find((x, center[1], y)) + + if len(path) > 0: + try: + if color_by == 'cell': + uid = path[-1].id + elif color_by == 'material': + if path[-1].fill_type == 'material': + uid = path[-1].fill.id + else: + continue + except AttributeError: + continue + if uid not in colors: + colors[uid] = (random.random(), random.random(), + random.random(), 1.0) + img[j,i,:] = colors[uid] + + plt.imshow(img, extent=(x_min, x_max, y_min, y_max)) + plt.show() + def add_cell(self, cell): """Add a cell to the universe. diff --git a/tests/input_set.py b/tests/input_set.py index 2c6841e254..fefd2ca5fa 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -350,7 +350,6 @@ class InputSet(object): # Define fuel lattices. l100 = openmc.RectLattice(name='Fuel assembly (lower half)', lattice_id=100) - l100.dimension = (17, 17) l100.lower_left = (-10.71, -10.71) l100.pitch = (1.26, 1.26) l100.universes = [ @@ -384,7 +383,6 @@ class InputSet(object): l101 = openmc.RectLattice(name='Fuel assembly (upper half)', lattice_id=101) - l101.dimension = (17, 17) l101.lower_left = (-10.71, -10.71) l101.pitch = (1.26, 1.26) l101.universes = [ @@ -444,7 +442,6 @@ class InputSet(object): # Define core lattices l200 = openmc.RectLattice(name='Core lattice (lower half)', lattice_id=200) - l200.dimension = (21, 21) l200.lower_left = (-224.91, -224.91) l200.pitch = (21.42, 21.42) l200.universes = [ @@ -472,7 +469,6 @@ class InputSet(object): l201 = openmc.RectLattice(name='Core lattice (lower half)', lattice_id=201) - l201.dimension = (21, 21) l201.lower_left = (-224.91, -224.91) l201.pitch = (21.42, 21.42) l201.universes = [ diff --git a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py index 504cc4746b..40def1f623 100644 --- a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py +++ b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py @@ -24,7 +24,6 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): # Construct a 3x3 lattice of fuel assemblies core_lat = openmc.RectLattice(name='3x3 Core Lattice', lattice_id=202) - core_lat.dimension = (3, 3) core_lat.lower_left = (-32.13, -32.13) core_lat.pitch = (21.42, 21.42) core_lat.universes = [[fuel, water, water], diff --git a/tests/test_distribmat/test_distribmat.py b/tests/test_distribmat/test_distribmat.py index d8f78c5cf1..6700a96b60 100644 --- a/tests/test_distribmat/test_distribmat.py +++ b/tests/test_distribmat/test_distribmat.py @@ -53,7 +53,6 @@ class DistribmatTestHarness(PyAPITestHarness): fuel_univ.add_cells((c11, c12)) lat = openmc.RectLattice(lattice_id=101) - lat.dimension = [2, 2] lat.lower_left = [-2.0, -2.0] lat.pitch = [2.0, 2.0] lat.universes = [[fuel_univ]*2]*2 From 1f294c614e874ca92177aae8e8cd5f3de96834db Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 25 May 2016 09:57:42 -0500 Subject: [PATCH 027/417] Remove use of Cell.add_surface in OpenCG compatibility module --- openmc/opencg_compatible.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index c6b364d7cb..b112ed327f 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -1,4 +1,5 @@ import copy +import operator import numpy as np @@ -9,8 +10,6 @@ except ImportError: raise ImportError(msg) import openmc -from openmc.region import Intersection -from openmc.surface import Halfspace import openmc.checkvalue as cv @@ -467,13 +466,13 @@ def get_opencg_cell(openmc_cell): # half-spaces, i.e., no complex cells. region = openmc_cell.region if region is not None: - if isinstance(region, Halfspace): + if isinstance(region, openmc.Halfspace): surface = region.surface halfspace = -1 if region.side == '-' else 1 opencg_cell.add_surface(get_opencg_surface(surface), halfspace) - elif isinstance(region, Intersection): + elif isinstance(region, openmc.Intersection): for node in region.nodes: - if not isinstance(node, Halfspace): + if not isinstance(node, openmc.Halfspace): raise NotImplementedError("Complex cells not yet " "supported in OpenCG.") surface = node.surface @@ -697,12 +696,13 @@ def get_openmc_cell(opencg_cell): translation = np.asarray(opencg_cell.translation, dtype=np.float64) openmc_cell.translation = translation - surfaces = opencg_cell.surfaces - - for surface_id in surfaces: - surface = surfaces[surface_id][0] - halfspace = surfaces[surface_id][1] - openmc_cell.add_surface(get_openmc_surface(surface), halfspace) + surfaces = [] + operators = [] + for surface, halfspace in opencg_cell.surfaces.values(): + surfaces.append(get_openmc_surface(surface)) + operators.append(operator.neg if halfspace == -1 else operator.pos) + openmc_cell.region = openmc.Intersection( + *[op(s) for op, s in zip(operators, surfaces)]) # Add the OpenMC Cell to the global collection of all OpenMC Cells OPENMC_CELLS[cell_id] = openmc_cell From eb3f888c899b905429963edfc6fdbd5a75e1e071 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 25 May 2016 10:02:27 -0500 Subject: [PATCH 028/417] Allow root_universe to be passed to Geometry constructor --- examples/python/basic/build-xml.py | 3 +-- examples/python/boxes/build-xml.py | 3 +-- examples/python/lattice/hexagonal/build-xml.py | 3 +-- examples/python/lattice/nested/build-xml.py | 3 +-- examples/python/lattice/simple/build-xml.py | 3 +-- examples/python/pincell/build-xml.py | 3 +-- examples/python/pincell_multigroup/build-xml.py | 3 +-- examples/python/reflective/build-xml.py | 3 +-- openmc/geometry.py | 9 ++++++++- 9 files changed, 16 insertions(+), 17 deletions(-) diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index ffff037205..81aecc9f99 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -74,8 +74,7 @@ universe1.add_cells([cell2, cell3]) root.add_cells([cell1, cell4]) # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/boxes/build-xml.py b/examples/python/boxes/build-xml.py index 814f60bebd..4be33dcf1f 100644 --- a/examples/python/boxes/build-xml.py +++ b/examples/python/boxes/build-xml.py @@ -97,8 +97,7 @@ root = openmc.Universe(universe_id=0, name='root universe') root.add_cells([inner_box, middle_box, outer_box]) # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index ef3a128474..05cb2cb010 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -105,8 +105,7 @@ lattice.outer = univ2 cell1.fill = lattice # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index a964d882ca..03cede9dc5 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -114,8 +114,7 @@ cell1.fill = lattice2 cell2.fill = lattice1 # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index 4961b96b8b..5a642d3086 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -105,8 +105,7 @@ lattice.universes = [[univ1, univ2, univ1, univ2], cell1.fill = lattice # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index a3be3e97ec..0afb2527f6 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -149,8 +149,7 @@ root = openmc.Universe(universe_id=0, name='root universe') root.add_cells([fuel, gap, clad, water]) # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index 5ac5b376a3..6dbfa336bb 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -119,8 +119,7 @@ root = openmc.Universe(universe_id=0, name='root universe') root.add_cells([fuel, moderator]) # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/reflective/build-xml.py b/examples/python/reflective/build-xml.py index 4ecd0351fc..949e57c8c7 100644 --- a/examples/python/reflective/build-xml.py +++ b/examples/python/reflective/build-xml.py @@ -64,8 +64,7 @@ root = openmc.Universe(universe_id=0, name='root universe') root.add_cell(cell) # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/openmc/geometry.py b/openmc/geometry.py index 7eddadfc76..4e85929fc4 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -15,6 +15,11 @@ def reset_auto_ids(): class Geometry(object): """Geometry representing a collection of surfaces, cells, and universes. + Parameters + ---------- + root_universe : openmc.Universe, optional + Root universe which contains all others + Attributes ---------- root_universe : openmc.Universe @@ -22,9 +27,11 @@ class Geometry(object): """ - def __init__(self): + def __init__(self, root_universe=None): self._root_universe = None self._offsets = {} + if root_universe is not None: + self.root_universe = root_universe @property def root_universe(self): From 68809265872d1b068d52be995b9e9471d8779a50 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 28 May 2016 21:19:34 -0400 Subject: [PATCH 029/417] Added optional boolean exact parameter to StatePoint.get_tally(...) --- openmc/mgxs/mgxs.py | 10 +++++----- openmc/statepoint.py | 24 ++++++++++++++++++++---- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 5be84bb2ce..7c07ae722e 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -685,11 +685,11 @@ class MGXS(object): # Find, slice and store Tallies from StatePoint # The tally slicing is needed if tally merging was used for tally_type, tally in self.tallies.items(): - sp_tally = statepoint.get_tally(tally.scores, tally.filters, - tally.nuclides, - estimator=tally.estimator) - sp_tally = sp_tally.get_slice(tally.scores, filters, - filter_bins, tally.nuclides) + sp_tally = statepoint.get_tally( + tally.scores, tally.filters, tally.nuclides, + estimator=tally.estimator, exact=True) + sp_tally = sp_tally.get_slice( + tally.scores, filters, filter_bins, tally.nuclides) sp_tally.sparse = self.sparse self.tallies[tally_type] = sp_tally diff --git a/openmc/statepoint.py b/openmc/statepoint.py index d5dd7bc1e7..83dd148fe7 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -497,13 +497,17 @@ class StatePoint(object): self.tallies[tally_id].sparse = self.sparse def get_tally(self, scores=[], filters=[], nuclides=[], - name=None, id=None, estimator=None): + name=None, id=None, estimator=None, exact=False): """Finds and returns a Tally object with certain properties. This routine searches the list of Tallies and returns the first Tally found which satisfies all of the input parameters. - NOTE: The input parameters do not need to match the complete Tally - specification and may only represent a subset of the Tally's properties. + + NOTE: If the "exact" parameter is False (default), the input parameters + do not need to match the complete Tally specification and may only + represent a subset of the Tally's properties. If the "exact" parameter + is True then the scores, filters, nuclides and estimator parameters + must precisely match those of any matching Tally. Parameters ---------- @@ -519,6 +523,9 @@ class StatePoint(object): The id specified for the Tally (default is None). estimator: str, optional The type of estimator ('tracklength', 'analog'; default is None). + exact : bool + Whether to strictly enforce the match between the parameters and + the returned tally Returns ------- @@ -547,9 +554,18 @@ class StatePoint(object): continue # Determine if Tally has queried estimator - if estimator and not estimator == test_tally.estimator: + if (estimator or exact) and estimator != test_tally.estimator: continue + # The number of filters, nuclides and scores must exactly match + if exact: + if len(scores) != test_tally.num_scores: + continue + if len(nuclides) != test_tally.num_nuclides: + continue + if len(filters) != test_tally.num_filters: + continue + # Determine if Tally has the queried score(s) if scores: contains_scores = True From 160d35a548287d50abc7c02a6fe203de19d7d4fe Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 09:59:42 -0400 Subject: [PATCH 030/417] Adding all MGXS classes to test_mgxs_libary_*nuclides. The current other test_mgxs_library_* tests dont require it since the scores in place now exercise their respective routines on the base classes, so no reason to add to the total data generation and test time. Also clarified the results_true files for all test_mgxs_library tests which needed it by adding an endline after the dataframe string. --- .../results_true.dat | 143 ++-- .../test_mgxs_library_condense.py | 2 +- .../results_true.dat | 11 +- .../test_mgxs_library_distribcell.py | 2 +- .../inputs_true.dat | 2 +- .../results_true.dat | 755 ++++++++++++++++-- .../test_mgxs_library_no_nuclides.py | 10 +- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- .../test_mgxs_library_nuclides.py | 10 +- 10 files changed, 828 insertions(+), 111 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 184be68bfa..190d652d85 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,85 +1,132 @@ 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 moment 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 moment mean std. dev. 0 1 1 1 total P0 0.384780 0.022253 1 1 1 1 total P1 0.039277 0.004308 2 1 1 1 total P2 0.017574 0.002402 -3 1 1 1 total P3 0.012203 0.002164 material group out 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 0.0 material group in group out nuclide moment mean std. dev. +3 1 1 1 total P3 0.012203 0.002164 + material group out 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 0.0 + material group in group out nuclide moment mean std. dev. 0 2 1 1 total P0 0.272369 0.006872 1 2 1 1 total P1 0.031107 0.005483 2 2 1 1 total P2 0.025999 0.006151 -3 2 1 1 total P3 0.003219 0.003312 material group out 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 0.0 material group in group out nuclide moment mean std. dev. +3 2 1 1 total P3 0.003219 0.003312 + material group out 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 0.0 + material group in group out nuclide moment mean std. dev. 0 3 1 1 total P0 0.794999 0.036548 1 3 1 1 total P1 0.401537 0.016175 2 3 1 1 total P2 0.143623 0.008719 -3 3 1 1 total P3 0.001991 0.004433 material group out 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 0.0 material group in group out nuclide moment mean std. dev. +3 3 1 1 total P3 0.001991 0.004433 + material group out 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 0.0 + material group in group out nuclide moment mean std. dev. 0 4 1 1 total P0 0.727311 0.080096 1 4 1 1 total P1 0.355839 0.037901 2 4 1 1 total P2 0.124483 0.015823 -3 4 1 1 total P3 0.012168 0.006224 material group out 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 moment mean std. dev. +3 4 1 1 total P3 0.012168 0.006224 + material group out 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 moment mean std. dev. 0 5 1 1 total P0 0.0 0.0 1 5 1 1 total P1 0.0 0.0 2 5 1 1 total P2 0.0 0.0 -3 5 1 1 total P3 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 moment mean std. dev. +3 5 1 1 total P3 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 moment mean std. dev. 0 6 1 1 total P0 0.0 0.0 1 6 1 1 total P1 0.0 0.0 2 6 1 1 total P2 0.0 0.0 -3 6 1 1 total P3 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 moment mean std. dev. +3 6 1 1 total P3 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 moment mean std. dev. 0 7 1 1 total P0 0.0 0.0 1 7 1 1 total P1 0.0 0.0 2 7 1 1 total P2 0.0 0.0 -3 7 1 1 total P3 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 moment mean std. dev. +3 7 1 1 total P3 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 moment mean std. dev. 0 8 1 1 total P0 0.0 0.0 1 8 1 1 total P1 0.0 0.0 2 8 1 1 total P2 0.0 0.0 -3 8 1 1 total P3 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 0.0 material group in group out nuclide moment mean std. dev. +3 8 1 1 total P3 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 0.0 + material group in group out nuclide moment mean std. dev. 0 9 1 1 total P0 0.720380 0.771015 1 9 1 1 total P1 0.119844 0.184691 2 9 1 1 total P2 0.038522 0.064485 -3 9 1 1 total P3 0.056023 0.050595 material group out 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 0.0 material group in group out nuclide moment mean std. dev. +3 9 1 1 total P3 0.056023 0.050595 + material group out 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 0.0 + material group in group out nuclide moment mean std. dev. 0 10 1 1 total P0 0.501009 0.708534 1 10 1 1 total P1 0.265494 0.375465 2 10 1 1 total P2 0.141979 0.200788 -3 10 1 1 total P3 0.074258 0.105017 material group out 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 0.0 material group in group out nuclide moment mean std. dev. +3 10 1 1 total P3 0.074258 0.105017 + material group out 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 0.0 + material group in group out nuclide moment mean std. dev. 0 11 1 1 total P0 0.804661 0.817658 1 11 1 1 total P1 0.312803 0.315315 2 11 1 1 total P2 0.168113 0.172935 -3 11 1 1 total P3 0.003808 0.037911 material group out 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 0.0 material group in group out nuclide moment mean std. dev. +3 11 1 1 total P3 0.003808 0.037911 + material group out 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 0.0 + material group in group out nuclide moment mean std. dev. 0 12 1 1 total P0 0.943429 0.856119 1 12 1 1 total P1 0.220164 0.163180 2 12 1 1 total P2 0.052884 0.042440 -3 12 1 1 total P3 0.039939 0.032867 material group out nuclide mean std. dev. -0 12 1 total 0.0 0.0 \ No newline at end of file +3 12 1 1 total P3 0.039939 0.032867 + material group out nuclide mean std. dev. +0 12 1 total 0.0 0.0 diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index 561232b224..2b834fa988 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -57,7 +57,7 @@ class MGXSTestHarness(PyAPITestHarness): for mgxs_type in condense_lib.mgxs_types: mgxs = condense_lib.get_mgxs(domain, mgxs_type) df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + outstr += df.to_string() + '\n' # Hash the results if necessary if hash_output: diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index fa55249d13..84e76965d5 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,8 +1,11 @@ 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 0.0 avg(distribcell) group in group out nuclide moment 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 0.0 + avg(distribcell) group in group out nuclide moment mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 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 0.0 \ No newline at end of file +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 + 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 0.0 diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index 32f5ea1bd8..a6fef2e77f 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -59,7 +59,7 @@ class MGXSTestHarness(PyAPITestHarness): for mgxs_type in avg_lib.mgxs_types: mgxs = avg_lib.get_mgxs(domain, mgxs_type) df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + outstr += df.to_string() + '\n' # Hash the results if necessary if hash_output: diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index 3643c9a2ef..e5d0a175c4 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -104e7fb527770ac5d3fc636da7716e8fb05d55761253d30516c899f466e6b38ffd881611a3d0cdf65c6af058c32f6f6758c68782be7a170d21024bdae751862f \ No newline at end of file +8675afa50c9e291cea100a30603833c9f73fdf75f0831809dee523292ddcdd27d452540bb06ea2ad40aaa3304228fb6a46281cb04878a492e27a62976c78c96b \ 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 94150a202a..c05e053897 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,8 +1,51 @@ material group in nuclide mean std. dev. +1 1 1 total 0.413737 0.020666 +0 1 2 total 0.831077 0.043043 + material group in nuclide mean std. dev. 1 1 1 total 0.372745 0.024269 -0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. +0 1 2 total 0.861607 0.032349 + material group in nuclide mean std. dev. +1 1 1 total 0.372593 0.024246 +0 1 2 total 0.861607 0.032349 + material group in nuclide mean std. dev. +1 1 1 total 0.033747 0.001497 +0 1 2 total 0.436807 0.024531 + material group in nuclide mean std. dev. +1 1 1 total 0.025522 0.001301 +0 1 2 total 0.165054 0.023520 + material group in nuclide mean std. dev. +1 1 1 total 0.008225 0.000436 +0 1 2 total 0.271753 0.015604 + material group in nuclide mean std. dev. 1 1 1 total 0.021789 0.001182 -0 1 2 total 0.714077 0.040552 material group in group out nuclide moment mean std. dev. +0 1 2 total 0.714077 0.040552 + material group in nuclide mean std. dev. +1 1 1 total 1.612520 0.085471 +0 1 2 total 53.252833 3.051695 + material group in nuclide mean std. dev. +1 1 1 total 0.379990 0.019207 +0 1 2 total 0.394271 0.019629 + material group in nuclide mean std. dev. +1 1 1 total 0.383106 0.024061 +0 1 2 total 0.403916 0.018966 + material group in group out nuclide moment mean std. dev. +12 1 1 1 total P0 0.381200 0.023972 +13 1 1 1 total P1 0.044149 0.004814 +14 1 1 1 total P2 0.020601 0.002497 +15 1 1 1 total P3 0.013589 0.002222 +8 1 1 2 total P0 0.001559 0.000510 +9 1 1 2 total P1 -0.000597 0.000225 +10 1 1 2 total P2 -0.000239 0.000222 +11 1 1 2 total P3 0.000176 0.000209 +4 1 2 1 total P0 0.000000 0.000000 +5 1 2 1 total P1 0.000000 0.000000 +6 1 2 1 total P2 0.000000 0.000000 +7 1 2 1 total P3 0.000000 0.000000 +0 1 2 2 total P0 0.403916 0.018966 +1 1 2 2 total P1 -0.011310 0.007839 +2 1 2 2 total P2 -0.014807 0.008629 +3 1 2 2 total P3 -0.006855 0.009047 + material group in group out nuclide moment mean std. dev. 12 1 1 1 total P0 0.381546 0.024033 13 1 1 1 total P1 0.044301 0.004722 14 1 1 1 total P2 0.020646 0.002539 @@ -18,13 +61,51 @@ 0 1 2 2 total P0 0.403916 0.018966 1 1 2 2 total P1 -0.011310 0.007839 2 1 2 2 total P2 -0.014807 0.008629 -3 1 2 2 total P3 -0.006855 0.009047 material group out nuclide mean std. dev. +3 1 2 2 total P3 -0.006855 0.009047 + material group in group out nuclide mean std. dev. +3 1 1 1 total 1.000909 0.061440 +2 1 1 2 total 1.000000 0.458123 +1 1 2 1 total 0.000000 0.000000 +0 1 2 2 total 1.000000 0.055242 + material group in group out nuclide mean std. dev. +3 1 1 1 total 0.022739 0.002910 +2 1 1 2 total 0.000000 0.000000 +1 1 2 1 total 0.737265 0.030217 +0 1 2 2 total 0.000000 0.000000 + material group out 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. +0 1 2 total 0.0 0.000000 + material group in nuclide mean std. dev. +1 2 1 total 0.274809 0.009544 +0 2 2 total 0.264483 0.013309 + 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. +0 2 2 total 0.285930 0.048796 + 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.001327 0.000144 +0 2 2 total 0.004358 0.000224 + material group in nuclide mean std. dev. +1 2 1 total 0.001327 0.000144 +0 2 2 total 0.004358 0.000224 + 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 group out nuclide moment mean std. dev. +0 2 2 total 0.0 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 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 2 1 total 0.273482 0.009533 +0 2 2 total 0.260125 0.013092 + material group in nuclide mean std. dev. +1 2 1 total 0.273115 0.006253 +0 2 2 total 0.264051 0.045397 + material group in group out nuclide moment mean std. dev. 12 2 1 1 total P0 0.273115 0.006253 13 2 1 1 total P1 0.035861 0.005878 14 2 1 1 total P2 0.029704 0.006640 @@ -40,13 +121,68 @@ 0 2 2 2 total P0 0.264051 0.045397 1 2 2 2 total P1 -0.021880 0.012218 2 2 2 2 total P2 -0.015295 0.010276 -3 2 2 2 total P3 0.014034 0.014318 material group out nuclide mean std. dev. +3 2 2 2 total P3 0.014034 0.014318 + material group in group out nuclide moment mean std. dev. +12 2 1 1 total P0 0.273115 0.006253 +13 2 1 1 total P1 0.035861 0.005878 +14 2 1 1 total P2 0.029704 0.006640 +15 2 1 1 total P3 0.002249 0.003376 +8 2 1 2 total P0 0.000000 0.000000 +9 2 1 2 total P1 0.000000 0.000000 +10 2 1 2 total P2 0.000000 0.000000 +11 2 1 2 total P3 0.000000 0.000000 +4 2 2 1 total P0 0.000000 0.000000 +5 2 2 1 total P1 0.000000 0.000000 +6 2 2 1 total P2 0.000000 0.000000 +7 2 2 1 total P3 0.000000 0.000000 +0 2 2 2 total P0 0.264051 0.045397 +1 2 2 2 total P1 -0.021880 0.012218 +2 2 2 2 total P2 -0.015295 0.010276 +3 2 2 2 total P3 0.014034 0.014318 + material group in group out nuclide mean std. dev. +3 2 1 1 total 1.0 0.019157 +2 2 1 2 total 0.0 0.000000 +1 2 2 1 total 0.0 0.000000 +0 2 2 2 total 1.0 0.171895 + material group in group out nuclide mean std. dev. +3 2 1 1 total 0.0 0.0 +2 2 1 2 total 0.0 0.0 +1 2 2 1 total 0.0 0.0 +0 2 2 2 total 0.0 0.0 + material 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 nuclide mean std. dev. +0 2 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 3 1 total 0.670714 0.041725 +0 3 2 total 1.989013 0.270454 + 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. +0 3 2 total 1.418151 0.265308 + 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.000998 0.000050 +0 3 2 total 0.048908 0.007333 + material group in nuclide mean std. dev. +1 3 1 total 0.000998 0.000050 +0 3 2 total 0.048908 0.007333 + 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 group out nuclide moment mean std. dev. +0 3 2 total 0.0 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 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 3 1 total 0.669716 0.041680 +0 3 2 total 1.940105 0.263149 + material group in nuclide mean std. dev. +1 3 1 total 0.669533 0.029665 +0 3 2 total 1.924214 0.284062 + material group in group out nuclide moment mean std. dev. 12 3 1 1 total P0 0.643346 0.028376 13 3 1 1 total P1 0.383409 0.016447 14 3 1 1 total P2 0.152185 0.009574 @@ -62,13 +198,68 @@ 0 3 2 2 total P0 1.924214 0.284062 1 3 2 2 total P1 0.498431 0.063421 2 3 2 2 total P2 0.091205 0.013726 -3 3 2 2 total P3 0.017054 0.013916 material group out nuclide mean std. dev. +3 3 2 2 total P3 0.017054 0.013916 + material group in group out nuclide moment mean std. dev. +12 3 1 1 total P0 0.643346 0.028376 +13 3 1 1 total P1 0.383409 0.016447 +14 3 1 1 total P2 0.152185 0.009574 +15 3 1 1 total P3 0.003037 0.004648 +8 3 1 2 total P0 0.026187 0.001665 +9 3 1 2 total P1 0.007362 0.000934 +10 3 1 2 total P2 -0.002738 0.000756 +11 3 1 2 total P3 -0.002720 0.000558 +4 3 2 1 total P0 0.000000 0.000000 +5 3 2 1 total P1 0.000000 0.000000 +6 3 2 1 total P2 0.000000 0.000000 +7 3 2 1 total P3 0.000000 0.000000 +0 3 2 2 total P0 1.924214 0.284062 +1 3 2 2 total P1 0.498431 0.063421 +2 3 2 2 total P2 0.091205 0.013726 +3 3 2 2 total P3 0.017054 0.013916 + material group in group out nuclide mean std. dev. +3 3 1 1 total 1.0 0.047903 +2 3 1 2 total 1.0 0.080529 +1 3 2 1 total 0.0 0.000000 +0 3 2 2 total 1.0 0.162017 + material group in group out nuclide mean std. dev. +3 3 1 1 total 0.0 0.0 +2 3 1 2 total 0.0 0.0 +1 3 2 1 total 0.0 0.0 +0 3 2 2 total 0.0 0.0 + material 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 nuclide mean std. dev. +0 3 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 4 1 total 0.569719 0.069542 +0 4 2 total 1.818808 0.468684 + 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. +0 4 2 total 1.253959 0.388363 + 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.000981 0.000145 +0 4 2 total 0.045603 0.012339 + material group in nuclide mean std. dev. +1 4 1 total 0.000981 0.000145 +0 4 2 total 0.045603 0.012339 + 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 group out nuclide moment mean std. dev. +0 4 2 total 0.0 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 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 4 1 total 0.568737 0.069416 +0 4 2 total 1.773206 0.456376 + material group in nuclide mean std. dev. +1 4 1 total 0.567603 0.068093 +0 4 2 total 1.764648 0.416210 + material group in group out nuclide moment mean std. dev. 12 4 1 1 total P0 0.543941 0.065427 13 4 1 1 total P1 0.326011 0.038602 14 4 1 1 total P2 0.131133 0.017475 @@ -84,13 +275,68 @@ 0 4 2 2 total P0 1.764648 0.416210 1 4 2 2 total P1 0.500695 0.122178 2 4 2 2 total P2 0.099026 0.038719 -3 4 2 2 total P3 0.032975 0.025103 material group out nuclide mean std. dev. +3 4 2 2 total P3 0.032975 0.025103 + material group in group out nuclide moment mean std. dev. +12 4 1 1 total P0 0.543941 0.065427 +13 4 1 1 total P1 0.326011 0.038602 +14 4 1 1 total P2 0.131133 0.017475 +15 4 1 1 total P3 0.012105 0.006073 +8 4 1 2 total P0 0.023662 0.003083 +9 4 1 2 total P1 0.007526 0.001301 +10 4 1 2 total P2 -0.002730 0.000841 +11 4 1 2 total P3 -0.003140 0.000578 +4 4 2 1 total P0 0.000000 0.000000 +5 4 2 1 total P1 0.000000 0.000000 +6 4 2 1 total P2 0.000000 0.000000 +7 4 2 1 total P3 0.000000 0.000000 +0 4 2 2 total P0 1.764648 0.416210 +1 4 2 2 total P1 0.500695 0.122178 +2 4 2 2 total P2 0.099026 0.038719 +3 4 2 2 total P3 0.032975 0.025103 + material group in group out nuclide mean std. dev. +3 4 1 1 total 1.0 0.125440 +2 4 1 2 total 1.0 0.144075 +1 4 2 1 total 0.0 0.000000 +0 4 2 2 total 1.0 0.256789 + material group in group out nuclide mean std. dev. +3 4 1 1 total 0.0 0.0 +2 4 1 2 total 0.0 0.0 +1 4 2 1 total 0.0 0.0 +0 4 2 2 total 0.0 0.0 + material 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 nuclide mean std. dev. +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. +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 moment mean std. dev. +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 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 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 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 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 moment mean std. dev. 12 5 1 1 total P0 0.0 0.0 13 5 1 1 total P1 0.0 0.0 14 5 1 1 total P2 0.0 0.0 @@ -106,13 +352,68 @@ 0 5 2 2 total P0 0.0 0.0 1 5 2 2 total P1 0.0 0.0 2 5 2 2 total P2 0.0 0.0 -3 5 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +3 5 2 2 total P3 0.0 0.0 + material group in group out nuclide moment mean std. dev. +12 5 1 1 total P0 0.0 0.0 +13 5 1 1 total P1 0.0 0.0 +14 5 1 1 total P2 0.0 0.0 +15 5 1 1 total P3 0.0 0.0 +8 5 1 2 total P0 0.0 0.0 +9 5 1 2 total P1 0.0 0.0 +10 5 1 2 total P2 0.0 0.0 +11 5 1 2 total P3 0.0 0.0 +4 5 2 1 total P0 0.0 0.0 +5 5 2 1 total P1 0.0 0.0 +6 5 2 1 total P2 0.0 0.0 +7 5 2 1 total P3 0.0 0.0 +0 5 2 2 total P0 0.0 0.0 +1 5 2 2 total P1 0.0 0.0 +2 5 2 2 total P2 0.0 0.0 +3 5 2 2 total P3 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 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. +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. +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 moment mean std. dev. +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 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 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 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 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 moment mean std. dev. 12 6 1 1 total P0 0.0 0.0 13 6 1 1 total P1 0.0 0.0 14 6 1 1 total P2 0.0 0.0 @@ -128,13 +429,68 @@ 0 6 2 2 total P0 0.0 0.0 1 6 2 2 total P1 0.0 0.0 2 6 2 2 total P2 0.0 0.0 -3 6 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +3 6 2 2 total P3 0.0 0.0 + material group in group out nuclide moment mean std. dev. +12 6 1 1 total P0 0.0 0.0 +13 6 1 1 total P1 0.0 0.0 +14 6 1 1 total P2 0.0 0.0 +15 6 1 1 total P3 0.0 0.0 +8 6 1 2 total P0 0.0 0.0 +9 6 1 2 total P1 0.0 0.0 +10 6 1 2 total P2 0.0 0.0 +11 6 1 2 total P3 0.0 0.0 +4 6 2 1 total P0 0.0 0.0 +5 6 2 1 total P1 0.0 0.0 +6 6 2 1 total P2 0.0 0.0 +7 6 2 1 total P3 0.0 0.0 +0 6 2 2 total P0 0.0 0.0 +1 6 2 2 total P1 0.0 0.0 +2 6 2 2 total P2 0.0 0.0 +3 6 2 2 total P3 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 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. +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. +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 moment mean std. dev. +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 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 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 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 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 moment mean std. dev. 12 7 1 1 total P0 0.0 0.0 13 7 1 1 total P1 0.0 0.0 14 7 1 1 total P2 0.0 0.0 @@ -150,13 +506,68 @@ 0 7 2 2 total P0 0.0 0.0 1 7 2 2 total P1 0.0 0.0 2 7 2 2 total P2 0.0 0.0 -3 7 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +3 7 2 2 total P3 0.0 0.0 + material group in group out nuclide moment mean std. dev. +12 7 1 1 total P0 0.0 0.0 +13 7 1 1 total P1 0.0 0.0 +14 7 1 1 total P2 0.0 0.0 +15 7 1 1 total P3 0.0 0.0 +8 7 1 2 total P0 0.0 0.0 +9 7 1 2 total P1 0.0 0.0 +10 7 1 2 total P2 0.0 0.0 +11 7 1 2 total P3 0.0 0.0 +4 7 2 1 total P0 0.0 0.0 +5 7 2 1 total P1 0.0 0.0 +6 7 2 1 total P2 0.0 0.0 +7 7 2 1 total P3 0.0 0.0 +0 7 2 2 total P0 0.0 0.0 +1 7 2 2 total P1 0.0 0.0 +2 7 2 2 total P2 0.0 0.0 +3 7 2 2 total P3 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 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. +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. +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 moment mean std. dev. +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 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 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 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 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 moment mean std. dev. 12 8 1 1 total P0 0.0 0.0 13 8 1 1 total P1 0.0 0.0 14 8 1 1 total P2 0.0 0.0 @@ -172,13 +583,68 @@ 0 8 2 2 total P0 0.0 0.0 1 8 2 2 total P1 0.0 0.0 2 8 2 2 total P2 0.0 0.0 -3 8 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +3 8 2 2 total P3 0.0 0.0 + material group in group out nuclide moment mean std. dev. +12 8 1 1 total P0 0.0 0.0 +13 8 1 1 total P1 0.0 0.0 +14 8 1 1 total P2 0.0 0.0 +15 8 1 1 total P3 0.0 0.0 +8 8 1 2 total P0 0.0 0.0 +9 8 1 2 total P1 0.0 0.0 +10 8 1 2 total P2 0.0 0.0 +11 8 1 2 total P3 0.0 0.0 +4 8 2 1 total P0 0.0 0.0 +5 8 2 1 total P1 0.0 0.0 +6 8 2 1 total P2 0.0 0.0 +7 8 2 1 total P3 0.0 0.0 +0 8 2 2 total P0 0.0 0.0 +1 8 2 2 total P1 0.0 0.0 +2 8 2 2 total P2 0.0 0.0 +3 8 2 2 total P3 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 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. +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 9 1 total 1.123604 1.580875 +0 9 2 total 0.000000 0.000000 + 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. +0 9 2 total 0.000000 0.000000 + 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.006197 0.008724 +0 9 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 9 1 total 0.006197 0.008724 +0 9 2 total 0.000000 0.000000 + 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 group out nuclide moment mean std. dev. +0 9 2 total 0.0 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 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 9 1 total 1.117408 1.572151 +0 9 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 9 1 total 0.72038 0.771015 +0 9 2 total 0.00000 0.000000 + material group in group out nuclide moment mean std. dev. 12 9 1 1 total P0 0.720380 0.771015 13 9 1 1 total P1 0.119844 0.184691 14 9 1 1 total P2 0.038522 0.064485 @@ -194,13 +660,68 @@ 0 9 2 2 total P0 0.000000 0.000000 1 9 2 2 total P1 0.000000 0.000000 2 9 2 2 total P2 0.000000 0.000000 -3 9 2 2 total P3 0.000000 0.000000 material group out nuclide mean std. dev. +3 9 2 2 total P3 0.000000 0.000000 + material group in group out nuclide moment mean std. dev. +12 9 1 1 total P0 0.720380 0.771015 +13 9 1 1 total P1 0.119844 0.184691 +14 9 1 1 total P2 0.038522 0.064485 +15 9 1 1 total P3 0.056023 0.050595 +8 9 1 2 total P0 0.000000 0.000000 +9 9 1 2 total P1 0.000000 0.000000 +10 9 1 2 total P2 0.000000 0.000000 +11 9 1 2 total P3 0.000000 0.000000 +4 9 2 1 total P0 0.000000 0.000000 +5 9 2 1 total P1 0.000000 0.000000 +6 9 2 1 total P2 0.000000 0.000000 +7 9 2 1 total P3 0.000000 0.000000 +0 9 2 2 total P0 0.000000 0.000000 +1 9 2 2 total P1 0.000000 0.000000 +2 9 2 2 total P2 0.000000 0.000000 +3 9 2 2 total P3 0.000000 0.000000 + material group in group out nuclide mean std. dev. +3 9 1 1 total 1.0 1.227262 +2 9 1 2 total 0.0 0.000000 +1 9 2 1 total 0.0 0.000000 +0 9 2 2 total 0.0 0.000000 + material group in group out nuclide mean std. dev. +3 9 1 1 total 0.0 0.0 +2 9 1 2 total 0.0 0.0 +1 9 2 1 total 0.0 0.0 +0 9 2 2 total 0.0 0.0 + material 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 nuclide mean std. dev. +0 9 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 10 1 total 0.812963 1.149704 +0 10 2 total 0.000000 0.000000 + 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. +0 10 2 total 0.000000 0.000000 + 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.00018 0.000254 +0 10 2 total 0.00000 0.000000 + material group in nuclide mean std. dev. +1 10 1 total 0.00018 0.000254 +0 10 2 total 0.00000 0.000000 + 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 group out nuclide moment mean std. dev. +0 10 2 total 0.0 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 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 10 1 total 0.812784 1.14945 +0 10 2 total 0.000000 0.00000 + material group in nuclide mean std. dev. +1 10 1 total 0.501009 0.708534 +0 10 2 total 0.000000 0.000000 + material group in group out nuclide moment mean std. dev. 12 10 1 1 total P0 0.501009 0.708534 13 10 1 1 total P1 0.265494 0.375465 14 10 1 1 total P2 0.141979 0.200788 @@ -216,13 +737,68 @@ 0 10 2 2 total P0 0.000000 0.000000 1 10 2 2 total P1 0.000000 0.000000 2 10 2 2 total P2 0.000000 0.000000 -3 10 2 2 total P3 0.000000 0.000000 material group out nuclide mean std. dev. +3 10 2 2 total P3 0.000000 0.000000 + material group in group out nuclide moment mean std. dev. +12 10 1 1 total P0 0.501009 0.708534 +13 10 1 1 total P1 0.265494 0.375465 +14 10 1 1 total P2 0.141979 0.200788 +15 10 1 1 total P3 0.074258 0.105017 +8 10 1 2 total P0 0.000000 0.000000 +9 10 1 2 total P1 0.000000 0.000000 +10 10 1 2 total P2 0.000000 0.000000 +11 10 1 2 total P3 0.000000 0.000000 +4 10 2 1 total P0 0.000000 0.000000 +5 10 2 1 total P1 0.000000 0.000000 +6 10 2 1 total P2 0.000000 0.000000 +7 10 2 1 total P3 0.000000 0.000000 +0 10 2 2 total P0 0.000000 0.000000 +1 10 2 2 total P1 0.000000 0.000000 +2 10 2 2 total P2 0.000000 0.000000 +3 10 2 2 total P3 0.000000 0.000000 + material group in group out nuclide mean std. dev. +3 10 1 1 total 1.0 1.414214 +2 10 1 2 total 0.0 0.000000 +1 10 2 1 total 0.0 0.000000 +0 10 2 2 total 0.0 0.000000 + material group in group out nuclide mean std. dev. +3 10 1 1 total 0.0 0.0 +2 10 1 2 total 0.0 0.0 +1 10 2 1 total 0.0 0.0 +0 10 2 2 total 0.0 0.0 + material 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 nuclide mean std. dev. +0 10 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 11 1 total 0.408939 0.578327 +0 11 2 total 1.258110 1.779236 + 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. +0 11 2 total 0.945986 1.591133 + 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.000687 0.000971 +0 11 2 total 0.028614 0.040466 + material group in nuclide mean std. dev. +1 11 1 total 0.000687 0.000971 +0 11 2 total 0.028614 0.040466 + 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 group out nuclide moment mean std. dev. +0 11 2 total 0.0 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 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 11 1 total 0.408253 0.577356 +0 11 2 total 1.229496 1.738770 + material group in nuclide mean std. dev. +1 11 1 total 0.510003 0.721253 +0 11 2 total 1.201250 1.698824 + material group in group out nuclide moment mean std. dev. 12 11 1 1 total P0 0.478128 0.676174 13 11 1 1 total P1 0.323679 0.457751 14 11 1 1 total P2 0.143375 0.202763 @@ -238,13 +814,68 @@ 0 11 2 2 total P0 1.201250 1.698824 1 11 2 2 total P1 0.286611 0.405329 2 11 2 2 total P2 0.218191 0.308569 -3 11 2 2 total P3 -0.048514 0.068609 material group out nuclide mean std. dev. +3 11 2 2 total P3 -0.048514 0.068609 + material group in group out nuclide moment mean std. dev. +12 11 1 1 total P0 0.478128 0.676174 +13 11 1 1 total P1 0.323679 0.457751 +14 11 1 1 total P2 0.143375 0.202763 +15 11 1 1 total P3 0.054003 0.076372 +8 11 1 2 total P0 0.031875 0.045078 +9 11 1 2 total P1 0.008585 0.012140 +10 11 1 2 total P2 -0.012470 0.017635 +11 11 1 2 total P3 -0.011320 0.016009 +4 11 2 1 total P0 0.000000 0.000000 +5 11 2 1 total P1 0.000000 0.000000 +6 11 2 1 total P2 0.000000 0.000000 +7 11 2 1 total P3 0.000000 0.000000 +0 11 2 2 total P0 1.201250 1.698824 +1 11 2 2 total P1 0.286611 0.405329 +2 11 2 2 total P2 0.218191 0.308569 +3 11 2 2 total P3 -0.048514 0.068609 + material group in group out nuclide mean std. dev. +3 11 1 1 total 1.0 1.414214 +2 11 1 2 total 1.0 1.414214 +1 11 2 1 total 0.0 0.000000 +0 11 2 2 total 1.0 1.414214 + material group in group out nuclide mean std. dev. +3 11 1 1 total 0.0 0.0 +2 11 1 2 total 0.0 0.0 +1 11 2 1 total 0.0 0.0 +0 11 2 2 total 0.0 0.0 + material 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 nuclide mean std. dev. +0 11 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 12 1 total 0.390295 0.247786 +0 12 2 total 1.619510 2.290334 + 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. +0 12 2 total 1.390975 2.137346 + 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.000217 0.000142 +0 12 2 total 0.045440 0.064261 + material group in nuclide mean std. dev. +1 12 1 total 0.000217 0.000142 +0 12 2 total 0.045440 0.064261 + material group in 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 moment mean std. dev. +0 12 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 12 1 total 0.390078 0.247656 +0 12 2 total 1.574071 2.226072 + material group in nuclide mean std. dev. +1 12 1 total 0.435834 0.294632 +0 12 2 total 1.574328 2.226436 + material group in group out nuclide moment mean std. dev. 12 12 1 1 total P0 0.408594 0.278123 13 12 1 1 total P1 0.222541 0.145776 14 12 1 1 total P2 0.090972 0.069626 @@ -260,6 +891,34 @@ 0 12 2 2 total P0 1.574328 2.226436 1 12 2 2 total P1 0.229748 0.324913 2 12 2 2 total P2 0.014178 0.020051 -3 12 2 2 total P3 0.038997 0.055150 material group out nuclide mean std. dev. +3 12 2 2 total P3 0.038997 0.055150 + material group in group out nuclide moment mean std. dev. +12 12 1 1 total P0 0.408594 0.278123 +13 12 1 1 total P1 0.222541 0.145776 +14 12 1 1 total P2 0.090972 0.069626 +15 12 1 1 total P3 0.031004 0.035981 +8 12 1 2 total P0 0.027240 0.029555 +9 12 1 2 total P1 -0.010088 0.010945 +10 12 1 2 total P2 -0.006946 0.007537 +11 12 1 2 total P3 0.009692 0.010516 +4 12 2 1 total P0 0.000000 0.000000 +5 12 2 1 total P1 0.000000 0.000000 +6 12 2 1 total P2 0.000000 0.000000 +7 12 2 1 total P3 0.000000 0.000000 +0 12 2 2 total P0 1.574328 2.226436 +1 12 2 2 total P1 0.229748 0.324913 +2 12 2 2 total P2 0.014178 0.020051 +3 12 2 2 total P3 0.038997 0.055150 + material group in group out nuclide mean std. dev. +3 12 1 1 total 1.0 0.756454 +2 12 1 2 total 1.0 1.414214 +1 12 2 1 total 0.0 0.000000 +0 12 2 2 total 1.0 1.414214 + material group in group out nuclide mean std. dev. +3 12 1 1 total 0.0 0.0 +2 12 1 2 total 0.0 0.0 +1 12 2 1 total 0.0 0.0 +0 12 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 \ No newline at end of file +0 12 2 total 0.0 0.0 diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 6ee8813d03..1413f869c8 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -25,8 +25,12 @@ class MGXSTestHarness(PyAPITestHarness): # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False - self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', - 'nu-scatter matrix', 'chi'] + self.mgxs_lib.mgxs_types = ['total', 'transport', 'nu-transport', + 'absorption', 'capture', 'fission', + 'nu-fission', 'kappa-fission', 'scatter', + 'nu-scatter', 'scatter matrix', + 'nu-scatter matrix', 'multiplicity matrix', + 'nu-fission matrix', 'chi'] self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' @@ -53,7 +57,7 @@ class MGXSTestHarness(PyAPITestHarness): for mgxs_type in self.mgxs_lib.mgxs_types: mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + outstr += df.to_string() + '\n' # Hash the results if necessary if hash_output: diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 9e25fe96a6..9adacb3a59 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -791a2bd647b8bae03aafc39e29ff1ce1ffc44063b0d757ccba4e1eda6eb73b8a275020f4f5774b17dede49fbf15549787279c8b2fc45caba0097155b32e56fa8 \ No newline at end of file +6612ed1baa139ba085456963f0f04a0450bd13c46e6e04ec8fb1c7392168584fce4ca28b75c7606163b4af02a9ead433993f14fa3be8a5ad0083b01c5ff5f33e \ 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 06f838206f..26b7f26a3c 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -1ee58383dc8ac46c5e0d72321cbc34b0dba531435d5e0e632cbbf9572eb7d669c8c8ad9f370345325afa0bdeb2f818b0f5204b7c4a7c4aaf58ded7acbd715ef8 \ No newline at end of file +629afcb6af616b3b51fc219ef1a829675322fd0b890d538ac172feb76a3937efd1142d8082072f3ab304d2b5f4bf8a930330dc5b2d322c2c96c7187d7c026b7b \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index 47c1ec60ae..b9ffdbcaa6 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -25,8 +25,12 @@ class MGXSTestHarness(PyAPITestHarness): # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = True - self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', - 'nu-scatter matrix', 'chi'] + self.mgxs_lib.mgxs_types = ['total', 'transport', 'nu-transport', + 'absorption', 'capture', 'fission', + 'nu-fission', 'kappa-fission', 'scatter', + 'nu-scatter', 'scatter matrix', + 'nu-scatter matrix', 'multiplicity matrix', + 'nu-fission matrix', 'chi'] self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' @@ -53,7 +57,7 @@ class MGXSTestHarness(PyAPITestHarness): for mgxs_type in self.mgxs_lib.mgxs_types: mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + outstr += df.to_string() + '\n' # Hash the results if necessary if hash_output: From 61fb8194a530ae3ebc1345607899d18371cf257c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 10:42:20 -0400 Subject: [PATCH 031/417] Added a test which tests creating MGXS in CE mode and piping in to MG mode. --- openmc/mgxs/library.py | 2 +- .../inputs_true.dat | 1 + .../results_true.dat | 2 + .../test_mgxs_library_ce_to_mg.py | 93 +++++++++++++++++++ 4 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 tests/test_mgxs_library_ce_to_mg/inputs_true.dat create mode 100644 tests/test_mgxs_library_ce_to_mg/results_true.dat create mode 100644 tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 4c2497173e..62dde28ab2 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -34,7 +34,7 @@ class Library(object): Parameters ---------- openmc_geometry : openmc.Geometry - An geometry which has been initialized with a root universe + A geometry which has been initialized with a root universe by_nuclide : bool If true, computes cross sections for each nuclide in each domain mgxs_types : Iterable of str diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat new file mode 100644 index 0000000000..ad4b639655 --- /dev/null +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -0,0 +1 @@ +15355a90181bc3a8ba70bcc9a89beff2c240dc75abbf26c3e3b6a940c4ec2028b238422ac26af08863c24ce6fc16d48d249f17cd0bce53df0141138deccfc81a \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/results_true.dat b/tests/test_mgxs_library_ce_to_mg/results_true.dat new file mode 100644 index 0000000000..1152dd2cca --- /dev/null +++ b/tests/test_mgxs_library_ce_to_mg/results_true.dat @@ -0,0 +1,2 @@ +k-combined: +1.017325E+00 3.827758E-02 diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py new file mode 100644 index 0000000000..9bf70bbbbe --- /dev/null +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -0,0 +1,93 @@ +#!/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 MGXSTestHarness(PyAPITestHarness): + def _build_inputs(self): + + # The openmc.mgxs module needs a summary.h5 file + self._input_set.settings.output = {'summary': True} + + # Generate inputs using parent class routine + super(MGXSTestHarness, self)._build_inputs() + + # Initialize a two-group structure + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + + # Initialize MGXS Library for a few cross section types + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) + self.mgxs_lib.by_nuclide = False + self.mgxs_lib.mgxs_types = ['total', 'absorption', 'nu-fission matrix', + 'nu-scatter matrix', 'multiplicity matrix'] + self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.correction = None + self.mgxs_lib.legendre_order = 3 + self.mgxs_lib.domain_type = 'material' + self.mgxs_lib.build_library() + + # Initialize a tallies file + self._input_set.tallies = openmc.Tallies() + self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) + self._input_set.tallies.export_to_xml() + + def _run_openmc(self): + # Initial run + if self._opts.mpi_exec is not None: + returncode = openmc.run(mpi_procs=self._opts.mpi_np, + openmc_exec=self._opts.exe, + mpi_exec=self._opts.mpi_exec) + + else: + returncode = openmc.run(openmc_exec=self._opts.exe) + + assert returncode == 0, 'CE OpenMC calculation did not exit' \ + 'successfully.' + + # Build MG Inputs + # Get data needed to execute Library calculations. + statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] + sp = openmc.StatePoint(statepoint) + self.mgxs_lib.load_from_statepoint(sp) + self._input_set.mgxs_file, self._input_set.materials, \ + self._input_set.geometry = self.mgxs_lib.create_mg_mode() + + # Modify settings so we can run in MG mode + self._input_set.settings.cross_sections = './mgxs.xml' + self._input_set.settings.energy_mode = 'multi-group' + + # Write modified input files + self._input_set.settings.export_to_xml() + self._input_set.geometry.export_to_xml() + self._input_set.materials.export_to_xml() + self._input_set.mgxs_file.export_to_xml() + # Dont need tallies.xml, so remove the file + if os.path.exists('./tallies.xml'): + os.remove('./tallies.xml') + + # Re-run MG mode. + if self._opts.mpi_exec is not None: + returncode = openmc.run(mpi_procs=self._opts.mpi_np, + openmc_exec=self._opts.exe, + mpi_exec=self._opts.mpi_exec) + + else: + returncode = openmc.run(openmc_exec=self._opts.exe) + + def _cleanup(self): + super(MGXSTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + f = os.path.join(os.getcwd(), 'mgxs.xml') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = MGXSTestHarness('statepoint.10.*', True) + harness.main() From 08b8082b7bc78aeb968c0ac49bf9636745471bdc Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sun, 29 May 2016 10:20:11 -0500 Subject: [PATCH 032/417] First round of fixes for @wbinventor comments on #656 --- docs/source/methods/geometry.rst | 2 + openmc/geometry.py | 2 +- openmc/lattice.py | 71 +++++++++++++++++++------------- openmc/universe.py | 11 ++++- 4 files changed, 55 insertions(+), 31 deletions(-) diff --git a/docs/source/methods/geometry.rst b/docs/source/methods/geometry.rst index f642cca108..bcd568ca3a 100644 --- a/docs/source/methods/geometry.rst +++ b/docs/source/methods/geometry.rst @@ -437,6 +437,8 @@ where :math:`(x_0, y_0, z_0)` are the coordinates to the lower-left-bottom corner of the lattice, and :math:`p_0, p_1, p_2` are the pitches along the :math:`x`, :math:`y`, and :math:`z` axes, respectively. +.. _hexagonal_indexing: + Hexagonal Lattice Indexing -------------------------- diff --git a/openmc/geometry.py b/openmc/geometry.py index 4e85929fc4..006151900d 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -75,7 +75,7 @@ class Geometry(object): Parameters ---------- point : 3-tuple of float - Cartesian coordinatesof the point + Cartesian coordinates of the point Returns ------- diff --git a/openmc/lattice.py b/openmc/lattice.py index d8deddc421..0277d50cb2 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -242,6 +242,14 @@ class RectLattice(Lattice): :attr:`RectLattice.outer`, and :attr:`RectLattice.universes` properties need to be set. + Most methods for this class use a natural indexing scheme wherein elements + are assigned an index corresponding to their position relative to the + (x,y,z) axes in a Cartesian coordinate system, i.e., an index of (0,0,0) in + the lattice gives the element whose x, y, and z coordinates are the + smallest. However, note that when universes are assigned to lattice elements + using the :attr:`RectLattice.universes` property, the array indices do not + correspond to natural indices. + Parameters ---------- lattice_id : int, optional @@ -449,12 +457,12 @@ class RectLattice(Lattice): element coordinate system """ - ix = floor((point[0] - self._lower_left[0])/self._pitch[0]) - iy = floor((point[1] - self._lower_left[1])/self._pitch[1]) + ix = floor((point[0] - self.lower_left[0])/self.pitch[0]) + iy = floor((point[1] - self.lower_left[1])/self.pitch[1]) if self.ndim == 2: idx = (ix, iy) else: - iz = floor((point[2] - self._lower_left[2])/self._pitch[2]) + iz = floor((point[2] - self.lower_left[2])/self.pitch[2]) idx = (ix, iy, iz) return idx, self.get_local_coordinates(point, idx) @@ -476,12 +484,12 @@ class RectLattice(Lattice): system """ - x = point[0] - (self._lower_left[0] + (idx[0] + 0.5)*self._pitch[0]) - y = point[1] - (self._lower_left[1] + (idx[1] + 0.5)*self._pitch[1]) + x = point[0] - (self.lower_left[0] + (idx[0] + 0.5)*self.pitch[0]) + y = point[1] - (self.lower_left[1] + (idx[1] + 0.5)*self.pitch[1]) if self.ndim == 2: z = point[2] else: - z = point[2] - (self._lower_left[2] + (idx[2] + 0.5)*self._pitch[2]) + z = point[2] - (self.lower_left[2] + (idx[2] + 0.5)*self.pitch[2]) return (x, y, z) def get_universe_index(self, idx): @@ -636,12 +644,19 @@ class RectLattice(Lattice): class HexLattice(Lattice): - """A lattice consisting of hexagonal prisms. + r"""A lattice consisting of hexagonal prisms. To completely define a hexagonal lattice, the :attr:`HexLattice.center`, :attr:`HexLattice.pitch`, :attr:`HexLattice.universes`, and :attr:`HexLattice.outer` properties need to be set. + Most methods for this class use a natural indexing scheme wherein elements + are assigned an index corresponding to their position relative to skewed + :math:`(x,\alpha,z)` axes as described fully in + :ref:`hexagonal_indexing`. However, note that when universes are assigned to + lattice elements using the :attr:`RectLattice.universes` property, the array + indices do not correspond to natural indices. + Parameters ---------- lattice_id : int, optional @@ -755,12 +770,12 @@ class HexLattice(Lattice): @property def indices(self): if self.num_axial is None: - return [(r, i) for r in range(self._num_rings) - for i in range(max(6*(self._num_rings - 1 - r), 1))] + return [(r, i) for r in range(self.num_rings) + for i in range(max(6*(self.num_rings - 1 - r), 1))] else: - return [(z, r, i) for z in range(self._num_axial) - for r in range(self._num_rings) - for i in range(max(6*(self._num_rings - 1 - r), 1))] + return [(z, r, i) for z in range(self.num_axial) + for r in range(self.num_rings) + for i in range(max(6*(self.num_rings - 1 - r), 1))] @center.setter def center(self, center): @@ -860,7 +875,7 @@ class HexLattice(Lattice): raise ValueError(msg) def find_element(self, point): - """Determine index of lattice element and local coordinates for a point + r"""Determine index of lattice element and local coordinates for a point Parameters ---------- @@ -870,7 +885,7 @@ class HexLattice(Lattice): Returns ------- 3-tuple of int - Indices of corresponding lattice element in (x,:math:`alpha`,z) + Indices of corresponding lattice element in :math:`(x,\alpha,z)` bases numpy.ndarray Carestian coordinates of the point in the corresponding lattice @@ -878,16 +893,16 @@ class HexLattice(Lattice): """ # Convert coordinates to skewed bases - x = point[0] - self._center[0] - y = point[1] - self._center[1] + x = point[0] - self.center[0] + y = point[1] - self.center[1] if self._num_axial is None: iz = 1 else: - z = point[2] - self._center[2] - iz = floor(z/self._pitch[1] + 0.5*self._num_axial) + z = point[2] - self.center[2] + iz = floor(z/self.pitch[1] + 0.5*self.num_axial) alpha = y - x/sqrt(3.) - ix = floor(x/(sqrt(0.75) * self._pitch[0])) - ia = floor(alpha/self._pitch[0]) + ix = floor(x/(sqrt(0.75) * self.pitch[0])) + ia = floor(alpha/self.pitch[0]) # Check four lattice elements to see which one is closest based on local # coordinates @@ -904,14 +919,14 @@ class HexLattice(Lattice): return idx_min, p_min def get_local_coordinates(self, point, idx): - """Determine local coordinates of a point within a lattice element + r"""Determine local coordinates of a point within a lattice element Parameters ---------- point : Iterable of float Cartesian coordinates of point idx : Iterable of int - Indices of lattice element in (x,:math:`alpha`,z) bases + Indices of lattice element in :math:`(x,\alpha,z)` bases Returns ------- @@ -920,17 +935,17 @@ class HexLattice(Lattice): system """ - x = point[0] - (self._center[0] + sqrt(0.75)*self._pitch[0]*idx[0]) - y = point[1] - (self._center[1] + (0.5*idx[0] + idx[1])*self._pitch[0]) + x = point[0] - (self.center[0] + sqrt(0.75)*self.pitch[0]*idx[0]) + y = point[1] - (self.center[1] + (0.5*idx[0] + idx[1])*self.pitch[0]) if self._num_axial is None: z = point[2] else: - z = point[2] - (self._center[2] + (idx[2] + 0.5 - 0.5*self._num_axial)* - self._pitch[1]) + z = point[2] - (self.center[2] + (idx[2] + 0.5 - 0.5*self.num_axial)* + self.pitch[1]) return (x, y, z) def get_universe_index(self, idx): - """Return index in the universes array corresponding to a lattice element index + r"""Return index in the universes array corresponding to a lattice element index Parameters ---------- @@ -970,7 +985,7 @@ class HexLattice(Lattice): return (idx[2], i_ring, i_within) def is_valid_index(self, idx): - """Determine whether lattice element index is within defined range + r"""Determine whether lattice element index is within defined range Parameters ---------- diff --git a/openmc/universe.py b/openmc/universe.py index d8e1c4daca..a28729d8e2 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -13,7 +13,6 @@ import openmc.checkvalue as cv if sys.version_info[0] >= 3: basestring = str - # A dictionary for storing IDs of cell elements that have already been written, # used to optimize the writing process WRITTEN_IDS = {} @@ -156,7 +155,7 @@ class Universe(object): return [] def plot(self, center=(0., 0., 0.), width=(1., 1.), pixels=(200, 200), - basis='xy', color_by='cell'): + basis='xy', color_by='cell', seed=None): """Display a slice plot of the universe. Parameters @@ -171,10 +170,18 @@ class Universe(object): The basis directions for the plot color_by : {'cell', 'material'} Indicate whether the plot should be colored by cell or by material + seed : hashable object or None + Hashable object which is used to seed the random number generator + used to select colors. If None, the generator is seeded from the + current time. """ import matplotlib.pyplot as plt + # Seed the random number generator + if seed is not None: + random.seed(seed) + if basis == 'xy': x_min = center[0] - 0.5*width[0] x_max = center[0] + 0.5*width[0] From 9ead31396e8821dda4079fb248720b3de2e530cc Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 11:23:48 -0400 Subject: [PATCH 033/417] removed deletion of tallies.xml in new tests cleanup routine since its already deleted, and added printing of logfile so I can debug this test isue --- tests/run_tests.py | 1 + tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index 5a04f340a8..c8eeeebddc 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -474,6 +474,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()) # For coverage builds, use lcov to generate HTML output if test.coverage: diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index 9bf70bbbbe..987d10ae05 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -83,7 +83,6 @@ class MGXSTestHarness(PyAPITestHarness): def _cleanup(self): super(MGXSTestHarness, self)._cleanup() - f = os.path.join(os.getcwd(), 'tallies.xml') f = os.path.join(os.getcwd(), 'mgxs.xml') if os.path.exists(f): os.remove(f) From 9898eea1f23ab5ed7cddb9528f44448abcc6b788 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Sun, 29 May 2016 17:05:24 +0000 Subject: [PATCH 034/417] fixed issue with expanded elements into their naturally-occurring isotopes --- openmc/element.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/element.py b/openmc/element.py index 66371aba9a..c391d08235 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -127,7 +127,7 @@ class Element(object): isotopes = [] for isotope, abundance in natural_abundance.items(): - if isotope.startswith(self.name): + if isotope.startswith(self.name + '-'): nuc = openmc.Nuclide(isotope, self.xs) isotopes.append((nuc, abundance)) return isotopes From 2a786f090dbc9576f5a7bdeb23cfd368655b8cc1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 13:18:32 -0400 Subject: [PATCH 035/417] Fixed failing test: not enough neutrons simulated so many cross sections were zero. Made OpenMC properly deal with that case and then added more neutrons to the test to make it a bit more useful --- src/mgxs_header.F90 | 23 ++++++++++++++----- tests/run_tests.py | 1 - .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- .../test_mgxs_library_ce_to_mg.py | 13 ++++++++--- 5 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 88c1b23e25..750a8df983 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -1485,8 +1485,13 @@ module mgxs_header nuc % scatter % energy(gin) % data(gout) mult_num(gout, gin) = mult_num(gout, gin) + atom_density * & nuscatt - mult_denom(gout, gin) = mult_denom(gout,gin) + atom_density * & - nuscatt / nuc % scatter % mult(gin) % data(gout) + if (nuc % scatter % mult(gin) % data(gout) > ZERO) then + mult_denom(gout, gin) = mult_denom(gout,gin) + atom_density * & + nuscatt / nuc % scatter % mult(gin) % data(gout) + else + ! Avoid division by zero + mult_denom(gout, gin) = mult_denom(gout,gin) + atom_density + end if end do end do @@ -1722,10 +1727,16 @@ module mgxs_header nuc % scatter(iazi, ipol) % obj % energy(gin) % data(gout) mult_num(gout, gin, iazi, ipol) = mult_num(gout, gin, iazi, ipol) + & atom_density * nuscatt - mult_denom(gout, gin, iazi, ipol) = & - mult_denom(gout, gin, iazi, ipol) + & - atom_density * nuscatt / & - nuc % scatter(iazi, ipol) % obj % mult(gin) % data(gout) + if (nuc % scatter(iazi, ipol) % obj % mult(gin) % data(gout) > ZERO) then + mult_denom(gout, gin, iazi, ipol) = & + mult_denom(gout, gin, iazi, ipol) + & + atom_density * nuscatt / & + nuc % scatter(iazi, ipol) % obj % mult(gin) % data(gout) + else + ! Avoid division by zero + mult_denom(gout, gin, iazi, ipol) = & + mult_denom(gout,gin, iazi, ipol) + atom_density + end if end do end do end do diff --git a/tests/run_tests.py b/tests/run_tests.py index c8eeeebddc..5a04f340a8 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -474,7 +474,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()) # For coverage builds, use lcov to generate HTML output if test.coverage: diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat index ad4b639655..55943bad44 100644 --- a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -1 +1 @@ -15355a90181bc3a8ba70bcc9a89beff2c240dc75abbf26c3e3b6a940c4ec2028b238422ac26af08863c24ce6fc16d48d249f17cd0bce53df0141138deccfc81a \ No newline at end of file +f6442195628d3e6acd714d1ac123310a8c463ce6e76de2149783e4d9f2485752b53155f78bd9ae5e886b5f4717ef7c66b71959344051ea7f53b79148d59fe609 \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/results_true.dat b/tests/test_mgxs_library_ce_to_mg/results_true.dat index 1152dd2cca..b1f8559427 100644 --- a/tests/test_mgxs_library_ce_to_mg/results_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.017325E+00 3.827758E-02 +1.006931E+00 3.262911E-03 diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index 987d10ae05..17be8979e9 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -13,12 +13,19 @@ import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} - # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() + # The openmc.mgxs module needs a summary.h5 file + self._input_set.settings.output = {'summary': True} + # Use a larger history count to get some scores in every material + self._input_set.settings.batches = 50 + self._input_set.settings.inactive = 10 + self._input_set.settings.particles = 1000 + self._sp_name = './statepoint.50.h5' + # Rewrite file + self._input_set.settings.export_to_xml() + # Initialize a two-group structure energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) From 326cf4f84c66036cc2d2edf57d9b7f85abf52a92 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 13:47:17 -0400 Subject: [PATCH 036/417] added pin cell input set and converted test_mgxs_library_ce_to_mg to use it. --- tests/input_set.py | 99 +++++++++++++++++++ .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- .../test_mgxs_library_ce_to_mg.py | 11 ++- 4 files changed, 108 insertions(+), 6 deletions(-) diff --git a/tests/input_set.py b/tests/input_set.py index 2c6841e254..fe8ca7176f 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -570,6 +570,105 @@ class InputSet(object): self.plots.add_plot(plot) +class PinCellInputSet(object): + def __init__(self): + self.settings = openmc.Settings() + self.materials = openmc.Materials() + self.geometry = openmc.Geometry() + self.tallies = None + self.plots = None + + def export(self): + self.settings.export_to_xml() + self.materials.export_to_xml() + self.geometry.export_to_xml() + if self.tallies is not None: self.tallies.export_to_xml() + if self.plots is not None: self.plots.export_to_xml() + + def build_default_materials_and_geometry(self): + # Define materials. + fuel = openmc.Material(name='Fuel') + fuel.set_density('g/cm3', 10.29769) + fuel.add_nuclide("U-234", 4.4843e-6) + fuel.add_nuclide("U-235", 5.5815e-4) + fuel.add_nuclide("U-238", 2.2408e-2) + fuel.add_nuclide("O-16", 4.5829e-2) + + clad = openmc.Material(name='Cladding') + clad.set_density('g/cm3', 6.55) + clad.add_nuclide("Zr-90", 2.1827e-2) + clad.add_nuclide("Zr-91", 4.7600e-3) + clad.add_nuclide("Zr-92", 7.2758e-3) + clad.add_nuclide("Zr-94", 7.3734e-3) + clad.add_nuclide("Zr-96", 1.1879e-3) + + hot_water = openmc.Material(name='Hot borated water') + hot_water.set_density('g/cm3', 0.740582) + hot_water.add_nuclide("H-1", 4.9457e-2) + hot_water.add_nuclide("O-16", 2.4672e-2) + hot_water.add_nuclide("B-10", 8.0042e-6) + hot_water.add_nuclide("B-11", 3.2218e-5) + hot_water.add_s_alpha_beta('HH2O', '71t') + + # Define the materials file. + self.materials.default_xs = '71c' + self.materials += (fuel, clad, hot_water) + + # Instantiate ZCylinder surfaces + fuel_or = openmc.ZCylinder(x0=0, y0=0, R=0.39218, name='Fuel OR') + clad_or = openmc.ZCylinder(x0=0, y0=0, R=0.45720, name='Clad OR') + left = openmc.XPlane(x0=-0.63, name='left') + right = openmc.XPlane(x0=0.63, name='right') + bottom = openmc.YPlane(y0=-0.63, name='bottom') + top = openmc.YPlane(y0=0.63, name='top') + + left.boundary_type = 'reflective' + right.boundary_type = 'reflective' + top.boundary_type = 'reflective' + bottom.boundary_type = 'reflective' + + # Instantiate Cells + fuel_pin = openmc.Cell(name='cell 1') + cladding = openmc.Cell(name='cell 3') + water = openmc.Cell(name='cell 2') + + # Use surface half-spaces to define regions + fuel_pin.region = -fuel_or + cladding.region = +fuel_or & -clad_or + water.region = +clad_or & +left & -right & +bottom & -top + + # Register Materials with Cells + fuel_pin.fill = fuel + cladding.fill = clad + water.fill = hot_water + + # Instantiate Universe + root = openmc.Universe(universe_id=0, name='root universe') + + # Register Cells with Universe + root.add_cells([fuel_pin, cladding, water]) + + # Instantiate a Geometry, register the root Universe, and export to XML + self.geometry.root_universe = root + + def build_default_settings(self): + self.settings.batches = 10 + self.settings.inactive = 5 + self.settings.particles = 100 + self.settings.source = Source(space=Box([-0.63, -0.63, -1], + [0.63, 0.63, 1], + only_fissionable=True)) + + def build_defualt_plots(self): + plot = openmc.Plot() + plot.filename = 'mat' + plot.origin = (0.0, 0.0, 0) + plot.width = (1.26, 1.26) + plot.pixels = (300, 300) + plot.color = 'mat' + + self.plots.add_plot(plot) + class MGInputSet(InputSet): def build_default_materials_and_geometry(self): # Define materials needed for 1D/1G slab problem diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat index 55943bad44..46defbd0da 100644 --- a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -1 +1 @@ -f6442195628d3e6acd714d1ac123310a8c463ce6e76de2149783e4d9f2485752b53155f78bd9ae5e886b5f4717ef7c66b71959344051ea7f53b79148d59fe609 \ No newline at end of file +2db36402006f1aec10d484836303d5d804516ea9945f0508e610994b255185cb7f42dc3ed27dfd93355018d187100332011e921391059f83d3a5fda85e80d789 \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/results_true.dat b/tests/test_mgxs_library_ce_to_mg/results_true.dat index b1f8559427..16441af8c7 100644 --- a/tests/test_mgxs_library_ce_to_mg/results_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.006931E+00 3.262911E-03 +1.094839E+00 1.203524E-02 diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index 17be8979e9..c9db2c45ff 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -6,12 +6,15 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() @@ -19,10 +22,10 @@ class MGXSTestHarness(PyAPITestHarness): # The openmc.mgxs module needs a summary.h5 file self._input_set.settings.output = {'summary': True} # Use a larger history count to get some scores in every material - self._input_set.settings.batches = 50 - self._input_set.settings.inactive = 10 - self._input_set.settings.particles = 1000 - self._sp_name = './statepoint.50.h5' + # self._input_set.settings.batches = 50 + # self._input_set.settings.inactive = 10 + # self._input_set.settings.particles = 1000 + # self._sp_name = './statepoint.50.h5' # Rewrite file self._input_set.settings.export_to_xml() From 117ca2e1b24342835fb85b56d6b4afe5bf03ef4f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 13:50:23 -0400 Subject: [PATCH 037/417] Left some superfluous code in there. removed now --- .../test_mgxs_library_ce_to_mg.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index c9db2c45ff..fb782e8281 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -16,18 +16,14 @@ class MGXSTestHarness(PyAPITestHarness): # Set the input set to use the pincell model self._input_set = PinCellInputSet() + # The openmc.mgxs module needs a summary.h5 file + self._input_set.settings.output = {'summary': True} + # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} - # Use a larger history count to get some scores in every material - # self._input_set.settings.batches = 50 - # self._input_set.settings.inactive = 10 - # self._input_set.settings.particles = 1000 - # self._sp_name = './statepoint.50.h5' # Rewrite file - self._input_set.settings.export_to_xml() + # self._input_set.settings.export_to_xml() # Initialize a two-group structure energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) From e201b898ed17c0aa195c6db4d5e40557f5add8c0 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 14:09:27 -0400 Subject: [PATCH 038/417] PEP8 compliance changes to the new test, testing_harness and input_set --- tests/input_set.py | 46 +++++++++++-------- .../test_mgxs_library_ce_to_mg.py | 6 ++- tests/testing_harness.py | 30 +++++++----- 3 files changed, 49 insertions(+), 33 deletions(-) diff --git a/tests/input_set.py b/tests/input_set.py index fe8ca7176f..ae3ee23010 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -15,8 +15,10 @@ class InputSet(object): self.settings.export_to_xml() self.materials.export_to_xml() self.geometry.export_to_xml() - if self.tallies is not None: self.tallies.export_to_xml() - if self.plots is not None: self.plots.export_to_xml() + if self.tallies is not None: + self.tallies.export_to_xml() + if self.plots is not None: + self.plots.export_to_xml() def build_default_materials_and_geometry(self): # Define materials. @@ -82,7 +84,7 @@ class InputSet(object): hot_water.add_s_alpha_beta('HH2O', '71t') rpv_steel = openmc.Material(name='Reactor pressure vessel steel', - material_id=5) + material_id=5) rpv_steel.set_density('g/cm3', 7.9) rpv_steel.add_nuclide("Fe-54", 0.05437098, 'wo') rpv_steel.add_nuclide("Fe-56", 0.88500663, 'wo') @@ -113,7 +115,7 @@ class InputSet(object): rpv_steel.add_nuclide("Cu-65", 0.0006304, 'wo') lower_rad_ref = openmc.Material(name='Lower radial reflector', - material_id=6) + material_id=6) lower_rad_ref.set_density('g/cm3', 4.32) lower_rad_ref.add_nuclide("H-1", 0.0095661, 'wo') lower_rad_ref.add_nuclide("O-16", 0.0759107, 'wo') @@ -189,7 +191,8 @@ class InputSet(object): bot_plate.add_nuclide("Cr-54", 0.004612692337, 'wo') bot_plate.add_s_alpha_beta('HH2O', '71t') - bot_nozzle = openmc.Material(name='Bottom nozzle region', material_id=9) + bot_nozzle = openmc.Material(name='Bottom nozzle region', + material_id=9) bot_nozzle.set_density('g/cm3', 2.53) bot_nozzle.add_nuclide("H-1", 0.0245014, 'wo') bot_nozzle.add_nuclide("O-16", 0.1944274, 'wo') @@ -252,7 +255,8 @@ class InputSet(object): top_fa.add_nuclide("Zr-96", 0.02511169542, 'wo') top_fa.add_s_alpha_beta('HH2O', '71t') - bot_fa = openmc.Material(name='Bottom of fuel assemblies', material_id=12) + bot_fa = openmc.Material(name='Bottom of fuel assemblies', + material_id=12) bot_fa.set_density('g/cm3', 1.762) bot_fa.add_nuclide("H-1", 0.0292856, 'wo') bot_fa.add_nuclide("O-16", 0.2323919, 'wo') @@ -570,6 +574,7 @@ class InputSet(object): self.plots.add_plot(plot) + class PinCellInputSet(object): def __init__(self): self.settings = openmc.Settings() @@ -582,8 +587,10 @@ class PinCellInputSet(object): self.settings.export_to_xml() self.materials.export_to_xml() self.geometry.export_to_xml() - if self.tallies is not None: self.tallies.export_to_xml() - if self.plots is not None: self.plots.export_to_xml() + if self.tallies is not None: + self.tallies.export_to_xml() + if self.plots is not None: + self.plots.export_to_xml() def build_default_materials_and_geometry(self): # Define materials. @@ -669,6 +676,7 @@ class PinCellInputSet(object): self.plots.add_plot(plot) + class MGInputSet(InputSet): def build_default_materials_and_geometry(self): # Define materials needed for 1D/1G slab problem @@ -694,21 +702,21 @@ class MGInputSet(InputSet): # 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') + 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') + top = openmc.YPlane(y0=10.0, surface_id=301, + boundary_type='reflective') - down = openmc.ZPlane(z0=0.0, surface_id=0, - 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') + up = openmc.ZPlane(z0=5.0, surface_id=3, + boundary_type='reflective') # Define cells c1 = openmc.Cell(cell_id=1) @@ -724,7 +732,7 @@ class MGInputSet(InputSet): # Define root universe. root = openmc.Universe(universe_id=0, name='root universe') - root.add_cells((c1,c2,c3)) + root.add_cells((c1, c2, c3)) # Assign root universe to geometry self.geometry.root_universe = root diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index fb782e8281..e091f28f7f 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -26,7 +26,8 @@ class MGXSTestHarness(PyAPITestHarness): # self._input_set.settings.export_to_xml() # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) @@ -90,7 +91,8 @@ class MGXSTestHarness(PyAPITestHarness): def _cleanup(self): super(MGXSTestHarness, self)._cleanup() f = os.path.join(os.getcwd(), 'mgxs.xml') - if os.path.exists(f): os.remove(f) + if os.path.exists(f): + os.remove(f) if __name__ == '__main__': diff --git a/tests/testing_harness.py b/tests/testing_harness.py index e659768856..d360184045 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -6,7 +6,6 @@ import hashlib from optparse import OptionParser import os import shutil -from subprocess import Popen, STDOUT, PIPE, call import sys import numpy as np @@ -18,6 +17,7 @@ import openmc class TestHarness(object): """General class for running OpenMC regression tests.""" + def __init__(self, statepoint_name, tallies_present=False): self._sp_name = statepoint_name self._tallies = tallies_present @@ -74,13 +74,13 @@ class TestHarness(object): def _test_output_created(self): """Make sure statepoint.* and tallies.out have been created.""" statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name)) - assert len(statepoint) == 1, 'Either multiple or no statepoint files ' \ - 'exist.' + assert len(statepoint) == 1, 'Either multiple or no statepoint files' \ + ' exist.' assert statepoint[0].endswith('h5'), \ - 'Statepoint file is not a HDF5 file.' + 'Statepoint file is not a HDF5 file.' if self._tallies: assert os.path.exists(os.path.join(os.getcwd(), 'tallies.out')), \ - 'Tally output file does not exist.' + 'Tally output file does not exist.' def _get_results(self, hash_output=False): """Digest info in the statepoint and return as a string.""" @@ -98,7 +98,7 @@ class TestHarness(object): tally_num = 1 for tally_ind in sp.tallies: tally = sp.tallies[tally_ind] - results = np.zeros((tally.sum.size*2, )) + results = np.zeros((tally.sum.size * 2, )) results[0::2] = tally.sum.ravel() results[1::2] = tally.sum_sq.ravel() results = ['{0:12.6E}'.format(x) for x in results] @@ -144,6 +144,7 @@ class TestHarness(object): class HashedTestHarness(TestHarness): """Specialized TestHarness that hashes the results.""" + def _get_results(self): """Digest info in the statepoint and return as a string.""" return super(HashedTestHarness, self)._get_results(True) @@ -151,6 +152,7 @@ class HashedTestHarness(TestHarness): class CMFDTestHarness(TestHarness): """Specialized TestHarness for running OpenMC CMFD tests.""" + def _get_results(self): """Digest info in the statepoint and return as a string.""" # Read the statepoint file. @@ -184,6 +186,7 @@ class CMFDTestHarness(TestHarness): class ParticleRestartTestHarness(TestHarness): """Specialized TestHarness for running OpenMC particle restart tests.""" + def _run_openmc(self): # Set arguments args = {'openmc_exec': self._opts.exe} @@ -204,9 +207,9 @@ class ParticleRestartTestHarness(TestHarness): """Make sure the restart file has been created.""" particle = glob.glob(os.path.join(os.getcwd(), self._sp_name)) assert len(particle) == 1, 'Either multiple or no particle restart ' \ - 'files exist.' + 'files exist.' assert particle[0].endswith('h5'), \ - 'Particle restart file is not a HDF5 file.' + 'Particle restart file is not a HDF5 file.' def _get_results(self): """Digest info in the statepoint and return as a string.""" @@ -229,10 +232,10 @@ class ParticleRestartTestHarness(TestHarness): outstr += 'particle energy:\n' outstr += "{0:12.6E}\n".format(p.energy) outstr += 'particle xyz:\n' - outstr += "{0:12.6E} {1:12.6E} {2:12.6E}\n".format(p.xyz[0],p.xyz[1], + outstr += "{0:12.6E} {1:12.6E} {2:12.6E}\n".format(p.xyz[0], p.xyz[1], p.xyz[2]) outstr += 'particle uvw:\n' - outstr += "{0:12.6E} {1:12.6E} {2:12.6E}\n".format(p.uvw[0],p.uvw[1], + outstr += "{0:12.6E} {1:12.6E} {2:12.6E}\n".format(p.uvw[0], p.uvw[1], p.uvw[2]) return outstr @@ -240,13 +243,15 @@ 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: self._input_set = MGInputSet() else: self._input_set = InputSet() + def main(self): """Accept commandline arguments and either run or update tests.""" (self._opts, self._args) = self.parser.parse_args() @@ -321,7 +326,8 @@ class PyAPITestHarness(TestHarness): compare = filecmp.cmp('inputs_test.dat', 'inputs_true.dat') if not compare: f = open('inputs_test.dat') - for line in f.readlines(): print(line) + for line in f.readlines(): + print(line) f.close() os.rename('inputs_test.dat', 'inputs_error.dat') assert compare, 'Input files are broken.' From 56f2a0b2e61e9d37b783e1b5a79abc4b9bad1d80 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 14:12:47 -0400 Subject: [PATCH 039/417] Removed final few lines of superfluous code/comments --- .../test_mgxs_library_ce_to_mg.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index e091f28f7f..17358e21ea 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -16,15 +16,9 @@ class MGXSTestHarness(PyAPITestHarness): # Set the input set to use the pincell model self._input_set = PinCellInputSet() - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} - # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() - # Rewrite file - # self._input_set.settings.export_to_xml() - # Initialize a two-group structure energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) From 3368d7aebeedd4f741c4aa2975bcdcd1aac0e927 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 14:18:31 -0400 Subject: [PATCH 040/417] Converting test_mgxs_library_*_nuclides tests to use openmc.mgxs.MGXS_TYPES so the test always tests the latest list of Mgxs classes --- .../test_mgxs_library_no_nuclides.py | 11 ++++------- .../test_mgxs_library_nuclides.py | 11 ++++------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 1413f869c8..8f074f4f6b 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -20,17 +20,14 @@ class MGXSTestHarness(PyAPITestHarness): super(MGXSTestHarness, self)._build_inputs() # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False - self.mgxs_lib.mgxs_types = ['total', 'transport', 'nu-transport', - 'absorption', 'capture', 'fission', - 'nu-fission', 'kappa-fission', 'scatter', - 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'multiplicity matrix', - 'nu-fission matrix', 'chi'] + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index b9ffdbcaa6..0bd7732484 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -20,17 +20,14 @@ class MGXSTestHarness(PyAPITestHarness): super(MGXSTestHarness, self)._build_inputs() # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = True - self.mgxs_lib.mgxs_types = ['total', 'transport', 'nu-transport', - 'absorption', 'capture', 'fission', - 'nu-fission', 'kappa-fission', 'scatter', - 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'multiplicity matrix', - 'nu-fission matrix', 'chi'] + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' From a3ccb5c7cd75dab8590ce66357fb8876fe71e025 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 14:57:00 -0400 Subject: [PATCH 041/417] Added all mgxs types to tally types for all mgxs library tests and also converted them (save for the distribcell tests) to use the pincell model. Also, this showed there was an error in my multiplicitymatrix class, but thats fixed now --- openmc/mgxs/mgxs.py | 2 +- .../inputs_true.dat | 2 +- .../test_mgxs_library_ce_to_mg.py | 2 +- .../inputs_true.dat | 2 +- .../results_true.dat | 216 ++-- .../test_mgxs_library_condense.py | 13 +- .../inputs_true.dat | 2 +- .../results_true.dat | 25 + .../test_mgxs_library_distribcell.py | 8 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 381 +++--- .../test_mgxs_library_hdf5.py | 14 +- .../inputs_true.dat | 2 +- .../results_true.dat | 1067 +++-------------- .../test_mgxs_library_no_nuclides.py | 6 +- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- .../test_mgxs_library_nuclides.py | 6 +- 18 files changed, 507 insertions(+), 1247 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b79780ffc2..829f881113 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -3680,7 +3680,7 @@ class MultiplicityMatrixXS(MatrixMGXS): groups=None, by_nuclide=False, name=''): super(MultiplicityMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'multiplicity' + self._rxn_type = 'multiplicity matrix' @property def scores(self): diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat index 46defbd0da..9633a46a80 100644 --- a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -1 +1 @@ -2db36402006f1aec10d484836303d5d804516ea9945f0508e610994b255185cb7f42dc3ed27dfd93355018d187100332011e921391059f83d3a5fda85e80d789 \ No newline at end of file +34d5891f6f17c2d4b686b814ba61ba0045bc4289e278b1c3c47dbba59b83837fcfe15f2b8d58e7a2b07627b73d51e40348d70e9ed36dbb7cc94468d61c068c4c \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index 17358e21ea..0f7cba4a87 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -90,5 +90,5 @@ class MGXSTestHarness(PyAPITestHarness): if __name__ == '__main__': - harness = MGXSTestHarness('statepoint.10.*', True) + harness = MGXSTestHarness('statepoint.10.*', False) harness.main() diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index 3643c9a2ef..79ca0ec660 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -104e7fb527770ac5d3fc636da7716e8fb05d55761253d30516c899f466e6b38ffd881611a3d0cdf65c6af058c32f6f6758c68782be7a170d21024bdae751862f \ No newline at end of file +317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 190d652d85..13c277b15f 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,132 +1,108 @@ material group in nuclide mean std. dev. -0 1 1 total 0.412084 0.02359 +0 10000 1 total 0.453624 0.021053 material group in nuclide mean std. dev. -0 1 1 total 0.076425 0.003691 +0 10000 1 total 0.400852 0.022858 + material group in nuclide mean std. dev. +0 10000 1 total 0.400852 0.022858 + material group in nuclide mean std. dev. +0 10000 1 total 0.064903 0.004313 + material group in nuclide mean std. dev. +0 10000 1 total 0.028048 0.00458 + material group in nuclide mean std. dev. +0 10000 1 total 0.036855 0.002622 + material group in nuclide mean std. dev. +0 10000 1 total 0.090649 0.00641 + material group in nuclide mean std. dev. +0 10000 1 total 7.137955 0.507364 + material group in nuclide mean std. dev. +0 10000 1 total 0.388721 0.01783 + material group in nuclide mean std. dev. +0 10000 1 total 0.389304 0.023076 material group in group out nuclide moment mean std. dev. -0 1 1 1 total P0 0.384780 0.022253 -1 1 1 1 total P1 0.039277 0.004308 -2 1 1 1 total P2 0.017574 0.002402 -3 1 1 1 total P3 0.012203 0.002164 - material group out 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 0.0 +0 10000 1 1 total P0 0.389304 0.023146 +1 10000 1 1 total P1 0.046224 0.005907 +2 10000 1 1 total P2 0.017984 0.002883 +3 10000 1 1 total P3 0.006628 0.002457 material group in group out nuclide moment mean std. dev. -0 2 1 1 total P0 0.272369 0.006872 -1 2 1 1 total P1 0.031107 0.005483 -2 2 1 1 total P2 0.025999 0.006151 -3 2 1 1 total P3 0.003219 0.003312 +0 10000 1 1 total P0 0.389304 0.023146 +1 10000 1 1 total P1 0.046224 0.005907 +2 10000 1 1 total P2 0.017984 0.002883 +3 10000 1 1 total P3 0.006628 0.002457 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.0 0.066111 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 0.085835 0.005592 material group out nuclide mean std. dev. -0 2 1 total 0.0 0.0 +0 10000 1 total 1.0 0.046071 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 0.0 - material group in group out nuclide moment mean std. dev. -0 3 1 1 total P0 0.794999 0.036548 -1 3 1 1 total P1 0.401537 0.016175 -2 3 1 1 total P2 0.143623 0.008719 -3 3 1 1 total P3 0.001991 0.004433 - material group out nuclide mean std. dev. -0 3 1 total 0.0 0.0 +0 10001 1 total 0.311594 0.013793 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 0.0 - material group in group out nuclide moment mean std. dev. -0 4 1 1 total P0 0.727311 0.080096 -1 4 1 1 total P1 0.355839 0.037901 -2 4 1 1 total P2 0.124483 0.015823 -3 4 1 1 total P3 0.012168 0.006224 - material group out 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 moment mean std. dev. -0 5 1 1 total P0 0.0 0.0 -1 5 1 1 total P1 0.0 0.0 -2 5 1 1 total P2 0.0 0.0 -3 5 1 1 total P3 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 moment mean std. dev. -0 6 1 1 total P0 0.0 0.0 -1 6 1 1 total P1 0.0 0.0 -2 6 1 1 total P2 0.0 0.0 -3 6 1 1 total P3 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 moment mean std. dev. -0 7 1 1 total P0 0.0 0.0 -1 7 1 1 total P1 0.0 0.0 -2 7 1 1 total P2 0.0 0.0 -3 7 1 1 total P3 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 moment mean std. dev. -0 8 1 1 total P0 0.0 0.0 -1 8 1 1 total P1 0.0 0.0 -2 8 1 1 total P2 0.0 0.0 -3 8 1 1 total P3 0.0 0.0 - material group out nuclide mean std. dev. -0 8 1 total 0.0 0.0 +0 10001 1 total 0.279255 0.02919 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 0.0 - material group in group out nuclide moment mean std. dev. -0 9 1 1 total P0 0.720380 0.771015 -1 9 1 1 total P1 0.119844 0.184691 -2 9 1 1 total P2 0.038522 0.064485 -3 9 1 1 total P3 0.056023 0.050595 - material group out 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 0.0 - material group in group out nuclide moment mean std. dev. -0 10 1 1 total P0 0.501009 0.708534 -1 10 1 1 total P1 0.265494 0.375465 -2 10 1 1 total P2 0.141979 0.200788 -3 10 1 1 total P3 0.074258 0.105017 - material group out 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 0.0 - material group in group out nuclide moment mean std. dev. -0 11 1 1 total P0 0.804661 0.817658 -1 11 1 1 total P1 0.312803 0.315315 -2 11 1 1 total P2 0.168113 0.172935 -3 11 1 1 total P3 0.003808 0.037911 - material group out nuclide mean std. dev. -0 11 1 total 0.0 0.0 +0 10001 1 total 0.279255 0.02919 material group in nuclide mean std. dev. -0 12 1 total 0.73836 0.825631 +0 10001 1 total 0.00221 0.000286 + material group in nuclide mean std. dev. +0 10001 1 total 0.00221 0.000286 material group in nuclide mean std. dev. -0 12 1 total 0.0 0.0 +0 10001 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10001 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10001 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10001 1 total 0.309384 0.013551 + material group in nuclide mean std. dev. +0 10001 1 total 0.307987 0.029308 material group in group out nuclide moment mean std. dev. -0 12 1 1 total P0 0.943429 0.856119 -1 12 1 1 total P1 0.220164 0.163180 -2 12 1 1 total P2 0.052884 0.042440 -3 12 1 1 total P3 0.039939 0.032867 +0 10001 1 1 total P0 0.307987 0.029308 +1 10001 1 1 total P1 0.030617 0.007464 +2 10001 1 1 total P2 0.018911 0.004323 +3 10001 1 1 total P3 0.006235 0.003338 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 0.307987 0.029308 +1 10001 1 1 total P1 0.030617 0.007464 +2 10001 1 1 total P2 0.018911 0.004323 +3 10001 1 1 total P3 0.006235 0.003338 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.0 0.095039 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 12 1 total 0.0 0.0 +0 10001 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10002 1 total 0.904999 0.043964 + material group in nuclide mean std. dev. +0 10002 1 total 0.499184 0.040914 + material group in nuclide mean std. dev. +0 10002 1 total 0.499184 0.040914 + material group in nuclide mean std. dev. +0 10002 1 total 0.00606 0.000555 + material group in nuclide mean std. dev. +0 10002 1 total 0.00606 0.000555 + material group in nuclide mean std. dev. +0 10002 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10002 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10002 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10002 1 total 0.898938 0.043493 + material group in nuclide mean std. dev. +0 10002 1 total 0.903415 0.043959 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 0.903415 0.043586 +1 10002 1 1 total P1 0.410417 0.015877 +2 10002 1 1 total P2 0.143301 0.007187 +3 10002 1 1 total P3 0.008739 0.003571 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 0.903415 0.043586 +1 10002 1 1 total P1 0.410417 0.015877 +2 10002 1 1 total P2 0.143301 0.007187 +3 10002 1 1 total P3 0.008739 0.003571 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.0 0.056867 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.0 0.0 + material group out nuclide mean std. dev. +0 10002 1 total 0.0 0.0 diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index 2b834fa988..5571b59f2e 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -6,27 +6,28 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False - self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', - 'nu-scatter matrix', 'chi'] + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 21927c8008..dc67b7c562 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -018bbbc2099f7b94180b391e46e42fc9a82498c60b3f8f7f4c91480ea373427932d287fe571d53b2397f329e71485e7155d7644f0f995bbcb458ba3e872ab043 \ No newline at end of file +88849ac150f9c389e67de96356dfceb0bde08643f68ca25699e67d263995b95893d7340a2b08b2f0f5075fc5020f73553c5287ec6c56ace2f35ce0214961e123 \ 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 84e76965d5..5000d60c3b 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,11 +1,36 @@ 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 1.145934 0.553822 + 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.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.019762 0.010629 + 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.019762 0.010629 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 0.0 + 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 0.0 + 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 0.0 + 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 1.126172 0.54344 + 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 1.142547 0.570131 avg(distribcell) group in group out nuclide moment mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 + 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 1.0 0.529717 + 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.0 0.0 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 0.0 diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index a6fef2e77f..30593e54b5 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -12,10 +12,6 @@ import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} - # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() @@ -26,8 +22,8 @@ class MGXSTestHarness(PyAPITestHarness): # for one material-filled cell in the geometry self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False - self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', - 'nu-scatter matrix', 'chi'] + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'distribcell' diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index 3643c9a2ef..79ca0ec660 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -104e7fb527770ac5d3fc636da7716e8fb05d55761253d30516c899f466e6b38ffd881611a3d0cdf65c6af058c32f6f6758c68782be7a170d21024bdae751862f \ No newline at end of file +317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ 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 3cae577471..7391b2e427 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,240 +1,195 @@ -domain=1 type=transport -[ 0.37274472 0.86160691] -[ 0.02426918 0.03234902] -domain=1 type=nu-fission -[ 0.02178897 0.71407658] -[ 0.00118187 0.04055185] -domain=1 type=nu-scatter matrix -[[[ 3.81546297e-01 4.43012537e-02 2.06462886e-02 1.36952959e-02] - [ 1.55945353e-03 -5.97269486e-04 -2.38789528e-04 1.75508083e-04]] +domain=10000 type=total +[ 0.41482549 0.66016992] +[ 0.02279291 0.04751893] +domain=10000 type=transport +[ 0.35685964 0.64764766] +[ 0.0254936 0.02370374] +domain=10000 type=nu-transport +[ 0.35685964 0.64764766] +[ 0.0254936 0.02370374] +domain=10000 type=absorption +[ 0.02740784 0.26451074] +[ 0.0026925 0.02336708] +domain=10000 type=capture +[ 0.01984455 0.07171935] +[ 0.0026433 0.02520786] +domain=10000 type=fission +[ 0.00756329 0.19279139] +[ 0.00050848 0.01710592] +domain=10000 type=nu-fission +[ 0.01943174 0.46977478] +[ 0.00132298 0.041682 ] +domain=10000 type=kappa-fission +[ 1.47456982 37.28689641] +[ 0.09923532 3.30837772] +domain=10000 type=scatter +[ 0.38741765 0.39565918] +[ 0.02062573 0.02512506] +domain=10000 type=nu-scatter +[ 0.38518839 0.4123894 ] +[ 0.02694562 0.01542528] +domain=10000 type=scatter matrix +[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] + [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 4.03915981e-01 -1.13103276e-02 -1.48065932e-02 -6.85505346e-03]]] -[[[ 0.02403322 0.00472203 0.00253903 0.00222437] - [ 0.00051015 0.00022485 0.00022157 0.00020939]] + [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] + [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] +[[[ 0.02700101 0.00698255 0.0028465 0.00223352] + [ 0.00048242 0.00014901 0.00018432 0.00012817]] - [[ 0. 0. 0. 0. ] - [ 0.01896646 0.00783919 0.00862908 0.00904704]]] -domain=1 type=chi + [[ 0.00092488 0.00076791 0.00049392 0.00017154] + [ 0.01524494 0.00450173 0.01055075 0.01043819]]] +domain=10000 type=nu-scatter matrix +[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] + [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] + + [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] + [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] +[[[ 0.02700101 0.00698255 0.0028465 0.00223352] + [ 0.00048242 0.00014901 0.00018432 0.00012817]] + + [[ 0.00092488 0.00076791 0.00049392 0.00017154] + [ 0.01524494 0.00450173 0.01055075 0.01043819]]] +domain=10000 type=multiplicity matrix +[[ 1. 1.] + [ 1. 1.]] +[[ 0.07851646 0.68718427] + [ 1.41421356 0.04113035]] +domain=10000 type=nu-fission matrix +[[ 0.02014243 0. ] + [ 0.45436647 0. ]] +[[ 0.00314909 0. ] + [ 0.02742551 0. ]] +domain=10000 type=chi [ 1. 0.] -[ 0.05533329 0. ] -domain=2 type=transport -[ 0.23725441 0.28593027] -[ 0.00818357 0.04879593] -domain=2 type=nu-fission +[ 0.04607052 0. ] +domain=10001 type=total +[ 0.31373767 0.3008214 ] +[ 0.0155819 0.02805245] +domain=10001 type=transport +[ 0.27322787 0.31237484] +[ 0.03311537 0.04960583] +domain=10001 type=nu-transport +[ 0.27322787 0.31237484] +[ 0.03311537 0.04960583] +domain=10001 type=absorption +[ 0.00157499 0.00540038] +[ 0.00032255 0.00061814] +domain=10001 type=capture +[ 0.00157499 0.00540038] +[ 0.00032255 0.00061814] +domain=10001 type=fission [ 0. 0.] [ 0. 0.] -domain=2 type=nu-scatter matrix -[[[ 0.27311543 0.03586102 0.02970389 0.00224892] +domain=10001 type=nu-fission +[ 0. 0.] +[ 0. 0.] +domain=10001 type=kappa-fission +[ 0. 0.] +[ 0. 0.] +domain=10001 type=scatter +[ 0.31216268 0.29542102] +[ 0.01532192 0.02744549] +domain=10001 type=nu-scatter +[ 0.31012074 0.29626427] +[ 0.03378811 0.04379223] +domain=10001 type=scatter matrix +[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.26405068 -0.02187959 -0.01529469 0.01403395]]] -[[[ 0.00625287 0.00587756 0.00664018 0.00337568] + [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] +[[[ 0.03378811 0.008484 0.00469561 0.00373162] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.04539742 0.01221814 0.01027609 0.01431818]]] -domain=2 type=chi -[ 0. 0.] -[ 0. 0.] -domain=3 type=transport -[ 0.28690578 1.41815062] -[ 0.02740142 0.26530756] -domain=3 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=3 type=nu-scatter matrix -[[[ 0.64334557 0.38340871 0.15218526 0.00303724] - [ 0.02618721 0.00736219 -0.00273849 -0.00271989]] - - [[ 0. 0. 0. 0. ] - [ 1.92421362 0.4984312 0.09120485 0.01705441]]] -[[[ 0.02837604 0.01644677 0.00957372 0.00464802] - [ 0.00166461 0.00093414 0.00075617 0.00055807]] - - [[ 0. 0. 0. 0. ] - [ 0.28406198 0.06342067 0.01372628 0.01391602]]] -domain=3 type=chi -[ 0. 0.] -[ 0. 0.] -domain=4 type=transport -[ 0.24244686 1.25395921] -[ 0.06103082 0.38836257] -domain=4 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=4 type=nu-scatter matrix -[[[ 0.54394096 0.32601136 0.13113269 0.01210477] - [ 0.023662 0.00752551 -0.00272975 -0.0031405 ]] - - [[ 0. 0. 0. 0. ] - [ 1.76464845 0.50069481 0.09902596 0.03297543]]] -[[[ 0.06542705 0.03860196 0.0174751 0.00607268] - [ 0.00308328 0.00130111 0.00084112 0.00057761]] - - [[ 0. 0. 0. 0. ] - [ 0.41620952 0.12217802 0.03871874 0.02510259]]] -domain=4 type=chi -[ 0. 0.] -[ 0. 0.] -domain=5 type=transport -[ 0. 0.] -[ 0. 0.] -domain=5 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=5 type=nu-scatter matrix -[[[ 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.]]] -domain=5 type=chi -[ 0. 0.] -[ 0. 0.] -domain=6 type=transport -[ 0. 0.] -[ 0. 0.] -domain=6 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=6 type=nu-scatter matrix -[[[ 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.]]] -domain=6 type=chi -[ 0. 0.] -[ 0. 0.] -domain=7 type=transport -[ 0. 0.] -[ 0. 0.] -domain=7 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=7 type=nu-scatter matrix -[[[ 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.]]] -domain=7 type=chi -[ 0. 0.] -[ 0. 0.] -domain=8 type=transport -[ 0. 0.] -[ 0. 0.] -domain=8 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=8 type=nu-scatter matrix -[[[ 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.]]] -domain=8 type=chi -[ 0. 0.] -[ 0. 0.] -domain=9 type=transport -[ 0.60053598 0. ] -[ 0.74887543 0. ] -domain=9 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=9 type=nu-scatter matrix -[[[ 0.72037987 0.11984389 0.03852204 0.05602285] + [ 0.04379223 0.01618037 0.01150396 0.00732885]]] +domain=10001 type=nu-scatter matrix +[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0. 0. 0. 0. ]]] -[[[ 0.77101455 0.18469083 0.06448453 0.05059534] + [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] +[[[ 0.03378811 0.008484 0.00469561 0.00373162] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0. 0. 0. 0. ]]] -domain=9 type=chi + [ 0.04379223 0.01618037 0.01150396 0.00732885]]] +domain=10001 type=multiplicity matrix +[[ 1. 0.] + [ 0. 1.]] +[[ 0.1087787 0. ] + [ 0. 0.14242717]] +domain=10001 type=nu-fission matrix +[[ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.]] +domain=10001 type=chi [ 0. 0.] [ 0. 0.] -domain=10 type=transport -[ 0.23551495 0. ] -[ 0.61397415 0. ] -domain=10 type=nu-fission +domain=10002 type=total +[ 0.66457226 2.05238401] +[ 0.03121475 0.22434291] +domain=10002 type=transport +[ 0.29056526 1.51643801] +[ 0.02385185 0.23519727] +domain=10002 type=nu-transport +[ 0.29056526 1.51643801] +[ 0.02385185 0.23519727] +domain=10002 type=absorption +[ 0.0006904 0.03168726] +[ 4.41475687e-05 3.74655858e-03] +domain=10002 type=capture +[ 0.0006904 0.03168726] +[ 4.41475687e-05 3.74655858e-03] +domain=10002 type=fission [ 0. 0.] [ 0. 0.] -domain=10 type=nu-scatter matrix -[[[ 0.50100891 0.26549396 0.14197875 0.07425836] - [ 0. 0. 0. 0. ]] +domain=10002 type=nu-fission +[ 0. 0.] +[ 0. 0.] +domain=10002 type=kappa-fission +[ 0. 0.] +[ 0. 0.] +domain=10002 type=scatter +[ 0.66388186 2.02069676] +[ 0.03117268 0.22060445] +domain=10002 type=nu-scatter +[ 0.6712692 2.03538833] +[ 0.02618637 0.25806033] +domain=10002 type=scatter matrix +[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] + [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] - [[ 0. 0. 0. 0. ] - [ 0. 0. 0. 0. ]]] -[[[ 0.70853359 0.37546516 0.20078827 0.10501718] - [ 0. 0. 0. 0. ]] + [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] + [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] +[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] + [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] - [[ 0. 0. 0. 0. ] - [ 0. 0. 0. 0. ]]] -domain=10 type=chi -[ 0. 0.] -[ 0. 0.] -domain=11 type=transport -[ 0.18632392 0.94598628] -[ 0.63212919 1.59113341] -domain=11 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=11 type=nu-scatter matrix -[[[ 0.47812753 0.32367878 0.14337507 0.05400336] - [ 0.03187517 0.00858456 -0.01246962 -0.01132019]] + [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] + [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] +domain=10002 type=nu-scatter matrix +[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] + [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] - [[ 0. 0. 0. 0. ] - [ 1.20124973 0.28661101 0.21819147 -0.04851424]]] -[[[ 0.67617444 0.45775092 0.20276296 0.07637229] - [ 0.0450783 0.0121404 0.01763471 0.01600917]] + [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] + [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] +[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] + [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] - [[ 0. 0. 0. 0. ] - [ 1.69882367 0.40532917 0.30856933 0.0686095 ]]] -domain=11 type=chi -[ 0. 0.] -[ 0. 0.] -domain=12 type=transport -[ 0.21329208 1.3909745 ] -[ 0.27144387 2.13734565] -domain=12 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=12 type=nu-scatter matrix -[[[ 0.40859392 0.22254143 0.0909719 0.03100368] - [ 0.02723959 -0.01008785 -0.00694631 0.00969231]] - - [[ 0. 0. 0. 0. ] - [ 1.57432766 0.22974802 0.01417839 0.03899727]]] -[[[ 0.27812309 0.14577636 0.06962553 0.03598053] - [ 0.02955488 0.01094529 0.00753673 0.01051613]] - - [[ 0. 0. 0. 0. ] - [ 2.22643553 0.32491277 0.02005128 0.05515046]]] -domain=12 type=chi + [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] + [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] +domain=10002 type=multiplicity matrix +[[ 1. 1.] + [ 1. 1.]] +[[ 0.03860919 0.06766735] + [ 1.41421356 0.13592921]] +domain=10002 type=nu-fission matrix +[[ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.]] +domain=10002 type=chi [ 0. 0.] [ 0. 0.] diff --git a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py index 2d7ed2ef3d..000a1f8cb9 100644 --- a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py +++ b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py @@ -7,27 +7,28 @@ import hashlib import h5py sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False - self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', - 'nu-scatter matrix', 'chi'] + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' @@ -75,7 +76,6 @@ class MGXSTestHarness(PyAPITestHarness): return outstr - def _cleanup(self): super(MGXSTestHarness, self)._cleanup() f = os.path.join(os.getcwd(), 'tallies.xml') diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index e5d0a175c4..79ca0ec660 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -8675afa50c9e291cea100a30603833c9f73fdf75f0831809dee523292ddcdd27d452540bb06ea2ad40aaa3304228fb6a46281cb04878a492e27a62976c78c96b \ No newline at end of file +317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ 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 c05e053897..599cee6c49 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,924 +1,231 @@ material group in nuclide mean std. dev. -1 1 1 total 0.413737 0.020666 -0 1 2 total 0.831077 0.043043 +1 10000 1 total 0.414825 0.022793 +0 10000 2 total 0.660170 0.047519 material group in nuclide mean std. dev. -1 1 1 total 0.372745 0.024269 -0 1 2 total 0.861607 0.032349 +1 10000 1 total 0.356860 0.025494 +0 10000 2 total 0.647648 0.023704 material group in nuclide mean std. dev. -1 1 1 total 0.372593 0.024246 -0 1 2 total 0.861607 0.032349 +1 10000 1 total 0.356860 0.025494 +0 10000 2 total 0.647648 0.023704 material group in nuclide mean std. dev. -1 1 1 total 0.033747 0.001497 -0 1 2 total 0.436807 0.024531 +1 10000 1 total 0.027408 0.002692 +0 10000 2 total 0.264511 0.023367 material group in nuclide mean std. dev. -1 1 1 total 0.025522 0.001301 -0 1 2 total 0.165054 0.023520 +1 10000 1 total 0.019845 0.002643 +0 10000 2 total 0.071719 0.025208 material group in nuclide mean std. dev. -1 1 1 total 0.008225 0.000436 -0 1 2 total 0.271753 0.015604 +1 10000 1 total 0.007563 0.000508 +0 10000 2 total 0.192791 0.017106 material group in nuclide mean std. dev. -1 1 1 total 0.021789 0.001182 -0 1 2 total 0.714077 0.040552 +1 10000 1 total 0.019432 0.001323 +0 10000 2 total 0.469775 0.041682 material group in nuclide mean std. dev. -1 1 1 total 1.612520 0.085471 -0 1 2 total 53.252833 3.051695 +1 10000 1 total 1.474570 0.099235 +0 10000 2 total 37.286896 3.308378 material group in nuclide mean std. dev. -1 1 1 total 0.379990 0.019207 -0 1 2 total 0.394271 0.019629 +1 10000 1 total 0.387418 0.020626 +0 10000 2 total 0.395659 0.025125 material group in nuclide mean std. dev. -1 1 1 total 0.383106 0.024061 -0 1 2 total 0.403916 0.018966 +1 10000 1 total 0.385188 0.026946 +0 10000 2 total 0.412389 0.015425 material group in group out nuclide moment mean std. dev. -12 1 1 1 total P0 0.381200 0.023972 -13 1 1 1 total P1 0.044149 0.004814 -14 1 1 1 total P2 0.020601 0.002497 -15 1 1 1 total P3 0.013589 0.002222 -8 1 1 2 total P0 0.001559 0.000510 -9 1 1 2 total P1 -0.000597 0.000225 -10 1 1 2 total P2 -0.000239 0.000222 -11 1 1 2 total P3 0.000176 0.000209 -4 1 2 1 total P0 0.000000 0.000000 -5 1 2 1 total P1 0.000000 0.000000 -6 1 2 1 total P2 0.000000 0.000000 -7 1 2 1 total P3 0.000000 0.000000 -0 1 2 2 total P0 0.403916 0.018966 -1 1 2 2 total P1 -0.011310 0.007839 -2 1 2 2 total P2 -0.014807 0.008629 -3 1 2 2 total P3 -0.006855 0.009047 +12 10000 1 1 total P0 0.384199 0.027001 +13 10000 1 1 total P1 0.051870 0.006983 +14 10000 1 1 total P2 0.020069 0.002846 +15 10000 1 1 total P3 0.009478 0.002234 +8 10000 1 2 total P0 0.000989 0.000482 +9 10000 1 2 total P1 -0.000207 0.000149 +10 10000 1 2 total P2 -0.000103 0.000184 +11 10000 1 2 total P3 0.000234 0.000128 +4 10000 2 1 total P0 0.000925 0.000925 +5 10000 2 1 total P1 -0.000768 0.000768 +6 10000 2 1 total P2 0.000494 0.000494 +7 10000 2 1 total P3 -0.000171 0.000172 +0 10000 2 2 total P0 0.411465 0.015245 +1 10000 2 2 total P1 0.016482 0.004502 +2 10000 2 2 total P2 0.006371 0.010551 +3 10000 2 2 total P3 -0.010499 0.010438 material group in group out nuclide moment mean std. dev. -12 1 1 1 total P0 0.381546 0.024033 -13 1 1 1 total P1 0.044301 0.004722 -14 1 1 1 total P2 0.020646 0.002539 -15 1 1 1 total P3 0.013695 0.002224 -8 1 1 2 total P0 0.001559 0.000510 -9 1 1 2 total P1 -0.000597 0.000225 -10 1 1 2 total P2 -0.000239 0.000222 -11 1 1 2 total P3 0.000176 0.000209 -4 1 2 1 total P0 0.000000 0.000000 -5 1 2 1 total P1 0.000000 0.000000 -6 1 2 1 total P2 0.000000 0.000000 -7 1 2 1 total P3 0.000000 0.000000 -0 1 2 2 total P0 0.403916 0.018966 -1 1 2 2 total P1 -0.011310 0.007839 -2 1 2 2 total P2 -0.014807 0.008629 -3 1 2 2 total P3 -0.006855 0.009047 +12 10000 1 1 total P0 0.384199 0.027001 +13 10000 1 1 total P1 0.051870 0.006983 +14 10000 1 1 total P2 0.020069 0.002846 +15 10000 1 1 total P3 0.009478 0.002234 +8 10000 1 2 total P0 0.000989 0.000482 +9 10000 1 2 total P1 -0.000207 0.000149 +10 10000 1 2 total P2 -0.000103 0.000184 +11 10000 1 2 total P3 0.000234 0.000128 +4 10000 2 1 total P0 0.000925 0.000925 +5 10000 2 1 total P1 -0.000768 0.000768 +6 10000 2 1 total P2 0.000494 0.000494 +7 10000 2 1 total P3 -0.000171 0.000172 +0 10000 2 2 total P0 0.411465 0.015245 +1 10000 2 2 total P1 0.016482 0.004502 +2 10000 2 2 total P2 0.006371 0.010551 +3 10000 2 2 total P3 -0.010499 0.010438 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.0 0.078516 +2 10000 1 2 total 1.0 0.687184 +1 10000 2 1 total 1.0 1.414214 +0 10000 2 2 total 1.0 0.041130 material group in group out nuclide mean std. dev. -3 1 1 1 total 1.000909 0.061440 -2 1 1 2 total 1.000000 0.458123 -1 1 2 1 total 0.000000 0.000000 -0 1 2 2 total 1.000000 0.055242 - material group in group out nuclide mean std. dev. -3 1 1 1 total 0.022739 0.002910 -2 1 1 2 total 0.000000 0.000000 -1 1 2 1 total 0.737265 0.030217 -0 1 2 2 total 0.000000 0.000000 +3 10000 1 1 total 0.020142 0.003149 +2 10000 1 2 total 0.000000 0.000000 +1 10000 2 1 total 0.454366 0.027426 +0 10000 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. -1 1 1 total 1.0 0.055333 -0 1 2 total 0.0 0.000000 +1 10000 1 total 1.0 0.046071 +0 10000 2 total 0.0 0.000000 material group in nuclide mean std. dev. -1 2 1 total 0.274809 0.009544 -0 2 2 total 0.264483 0.013309 +1 10001 1 total 0.313738 0.015582 +0 10001 2 total 0.300821 0.028052 material group in nuclide mean std. dev. -1 2 1 total 0.237254 0.008184 -0 2 2 total 0.285930 0.048796 +1 10001 1 total 0.273228 0.033115 +0 10001 2 total 0.312375 0.049606 material group in nuclide mean std. dev. -1 2 1 total 0.237254 0.008184 -0 2 2 total 0.285930 0.048796 +1 10001 1 total 0.273228 0.033115 +0 10001 2 total 0.312375 0.049606 material group in nuclide mean std. dev. -1 2 1 total 0.001327 0.000144 -0 2 2 total 0.004358 0.000224 +1 10001 1 total 0.001575 0.000323 +0 10001 2 total 0.005400 0.000618 material group in nuclide mean std. dev. -1 2 1 total 0.001327 0.000144 -0 2 2 total 0.004358 0.000224 +1 10001 1 total 0.001575 0.000323 +0 10001 2 total 0.005400 0.000618 material group in nuclide mean std. dev. -1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 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 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 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 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 2 1 total 0.273482 0.009533 -0 2 2 total 0.260125 0.013092 +1 10001 1 total 0.312163 0.015322 +0 10001 2 total 0.295421 0.027445 material group in nuclide mean std. dev. -1 2 1 total 0.273115 0.006253 -0 2 2 total 0.264051 0.045397 +1 10001 1 total 0.310121 0.033788 +0 10001 2 total 0.296264 0.043792 material group in group out nuclide moment mean std. dev. -12 2 1 1 total P0 0.273115 0.006253 -13 2 1 1 total P1 0.035861 0.005878 -14 2 1 1 total P2 0.029704 0.006640 -15 2 1 1 total P3 0.002249 0.003376 -8 2 1 2 total P0 0.000000 0.000000 -9 2 1 2 total P1 0.000000 0.000000 -10 2 1 2 total P2 0.000000 0.000000 -11 2 1 2 total P3 0.000000 0.000000 -4 2 2 1 total P0 0.000000 0.000000 -5 2 2 1 total P1 0.000000 0.000000 -6 2 2 1 total P2 0.000000 0.000000 -7 2 2 1 total P3 0.000000 0.000000 -0 2 2 2 total P0 0.264051 0.045397 -1 2 2 2 total P1 -0.021880 0.012218 -2 2 2 2 total P2 -0.015295 0.010276 -3 2 2 2 total P3 0.014034 0.014318 +12 10001 1 1 total P0 0.310121 0.033788 +13 10001 1 1 total P1 0.038230 0.008484 +14 10001 1 1 total P2 0.020745 0.004696 +15 10001 1 1 total P3 0.007964 0.003732 +8 10001 1 2 total P0 0.000000 0.000000 +9 10001 1 2 total P1 0.000000 0.000000 +10 10001 1 2 total P2 0.000000 0.000000 +11 10001 1 2 total P3 0.000000 0.000000 +4 10001 2 1 total P0 0.000000 0.000000 +5 10001 2 1 total P1 0.000000 0.000000 +6 10001 2 1 total P2 0.000000 0.000000 +7 10001 2 1 total P3 0.000000 0.000000 +0 10001 2 2 total P0 0.296264 0.043792 +1 10001 2 2 total P1 -0.011214 0.016180 +2 10001 2 2 total P2 0.008837 0.011504 +3 10001 2 2 total P3 -0.003270 0.007329 material group in group out nuclide moment mean std. dev. -12 2 1 1 total P0 0.273115 0.006253 -13 2 1 1 total P1 0.035861 0.005878 -14 2 1 1 total P2 0.029704 0.006640 -15 2 1 1 total P3 0.002249 0.003376 -8 2 1 2 total P0 0.000000 0.000000 -9 2 1 2 total P1 0.000000 0.000000 -10 2 1 2 total P2 0.000000 0.000000 -11 2 1 2 total P3 0.000000 0.000000 -4 2 2 1 total P0 0.000000 0.000000 -5 2 2 1 total P1 0.000000 0.000000 -6 2 2 1 total P2 0.000000 0.000000 -7 2 2 1 total P3 0.000000 0.000000 -0 2 2 2 total P0 0.264051 0.045397 -1 2 2 2 total P1 -0.021880 0.012218 -2 2 2 2 total P2 -0.015295 0.010276 -3 2 2 2 total P3 0.014034 0.014318 +12 10001 1 1 total P0 0.310121 0.033788 +13 10001 1 1 total P1 0.038230 0.008484 +14 10001 1 1 total P2 0.020745 0.004696 +15 10001 1 1 total P3 0.007964 0.003732 +8 10001 1 2 total P0 0.000000 0.000000 +9 10001 1 2 total P1 0.000000 0.000000 +10 10001 1 2 total P2 0.000000 0.000000 +11 10001 1 2 total P3 0.000000 0.000000 +4 10001 2 1 total P0 0.000000 0.000000 +5 10001 2 1 total P1 0.000000 0.000000 +6 10001 2 1 total P2 0.000000 0.000000 +7 10001 2 1 total P3 0.000000 0.000000 +0 10001 2 2 total P0 0.296264 0.043792 +1 10001 2 2 total P1 -0.011214 0.016180 +2 10001 2 2 total P2 0.008837 0.011504 +3 10001 2 2 total P3 -0.003270 0.007329 material group in group out nuclide mean std. dev. -3 2 1 1 total 1.0 0.019157 -2 2 1 2 total 0.0 0.000000 -1 2 2 1 total 0.0 0.000000 -0 2 2 2 total 1.0 0.171895 +3 10001 1 1 total 1.0 0.108779 +2 10001 1 2 total 0.0 0.000000 +1 10001 2 1 total 0.0 0.000000 +0 10001 2 2 total 1.0 0.142427 material group in group out nuclide mean std. dev. -3 2 1 1 total 0.0 0.0 -2 2 1 2 total 0.0 0.0 -1 2 2 1 total 0.0 0.0 -0 2 2 2 total 0.0 0.0 +3 10001 1 1 total 0.0 0.0 +2 10001 1 2 total 0.0 0.0 +1 10001 2 1 total 0.0 0.0 +0 10001 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 3 1 total 0.670714 0.041725 -0 3 2 total 1.989013 0.270454 +1 10002 1 total 0.664572 0.031215 +0 10002 2 total 2.052384 0.224343 material group in nuclide mean std. dev. -1 3 1 total 0.286906 0.027401 -0 3 2 total 1.418151 0.265308 +1 10002 1 total 0.290565 0.023852 +0 10002 2 total 1.516438 0.235197 material group in nuclide mean std. dev. -1 3 1 total 0.286906 0.027401 -0 3 2 total 1.418151 0.265308 +1 10002 1 total 0.290565 0.023852 +0 10002 2 total 1.516438 0.235197 material group in nuclide mean std. dev. -1 3 1 total 0.000998 0.000050 -0 3 2 total 0.048908 0.007333 +1 10002 1 total 0.000690 0.000044 +0 10002 2 total 0.031687 0.003747 material group in nuclide mean std. dev. -1 3 1 total 0.000998 0.000050 -0 3 2 total 0.048908 0.007333 +1 10002 1 total 0.000690 0.000044 +0 10002 2 total 0.031687 0.003747 material group in nuclide mean std. dev. -1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 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 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 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 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 3 1 total 0.669716 0.041680 -0 3 2 total 1.940105 0.263149 +1 10002 1 total 0.663882 0.031173 +0 10002 2 total 2.020697 0.220604 material group in nuclide mean std. dev. -1 3 1 total 0.669533 0.029665 -0 3 2 total 1.924214 0.284062 +1 10002 1 total 0.671269 0.026186 +0 10002 2 total 2.035388 0.258060 material group in group out nuclide moment mean std. dev. -12 3 1 1 total P0 0.643346 0.028376 -13 3 1 1 total P1 0.383409 0.016447 -14 3 1 1 total P2 0.152185 0.009574 -15 3 1 1 total P3 0.003037 0.004648 -8 3 1 2 total P0 0.026187 0.001665 -9 3 1 2 total P1 0.007362 0.000934 -10 3 1 2 total P2 -0.002738 0.000756 -11 3 1 2 total P3 -0.002720 0.000558 -4 3 2 1 total P0 0.000000 0.000000 -5 3 2 1 total P1 0.000000 0.000000 -6 3 2 1 total P2 0.000000 0.000000 -7 3 2 1 total P3 0.000000 0.000000 -0 3 2 2 total P0 1.924214 0.284062 -1 3 2 2 total P1 0.498431 0.063421 -2 3 2 2 total P2 0.091205 0.013726 -3 3 2 2 total P3 0.017054 0.013916 +12 10002 1 1 total P0 0.639901 0.024709 +13 10002 1 1 total P1 0.381167 0.016243 +14 10002 1 1 total P2 0.152392 0.008156 +15 10002 1 1 total P3 0.009148 0.003889 +8 10002 1 2 total P0 0.031368 0.001728 +9 10002 1 2 total P1 0.008758 0.000926 +10 10002 1 2 total P2 -0.002568 0.001014 +11 10002 1 2 total P3 -0.003785 0.000817 +4 10002 2 1 total P0 0.000443 0.000445 +5 10002 2 1 total P1 0.000400 0.000401 +6 10002 2 1 total P2 0.000320 0.000321 +7 10002 2 1 total P3 0.000214 0.000215 +0 10002 2 2 total P0 2.034945 0.257800 +1 10002 2 2 total P1 0.509941 0.051236 +2 10002 2 2 total P2 0.111175 0.013020 +3 10002 2 2 total P3 0.024988 0.008312 material group in group out nuclide moment mean std. dev. -12 3 1 1 total P0 0.643346 0.028376 -13 3 1 1 total P1 0.383409 0.016447 -14 3 1 1 total P2 0.152185 0.009574 -15 3 1 1 total P3 0.003037 0.004648 -8 3 1 2 total P0 0.026187 0.001665 -9 3 1 2 total P1 0.007362 0.000934 -10 3 1 2 total P2 -0.002738 0.000756 -11 3 1 2 total P3 -0.002720 0.000558 -4 3 2 1 total P0 0.000000 0.000000 -5 3 2 1 total P1 0.000000 0.000000 -6 3 2 1 total P2 0.000000 0.000000 -7 3 2 1 total P3 0.000000 0.000000 -0 3 2 2 total P0 1.924214 0.284062 -1 3 2 2 total P1 0.498431 0.063421 -2 3 2 2 total P2 0.091205 0.013726 -3 3 2 2 total P3 0.017054 0.013916 +12 10002 1 1 total P0 0.639901 0.024709 +13 10002 1 1 total P1 0.381167 0.016243 +14 10002 1 1 total P2 0.152392 0.008156 +15 10002 1 1 total P3 0.009148 0.003889 +8 10002 1 2 total P0 0.031368 0.001728 +9 10002 1 2 total P1 0.008758 0.000926 +10 10002 1 2 total P2 -0.002568 0.001014 +11 10002 1 2 total P3 -0.003785 0.000817 +4 10002 2 1 total P0 0.000443 0.000445 +5 10002 2 1 total P1 0.000400 0.000401 +6 10002 2 1 total P2 0.000320 0.000321 +7 10002 2 1 total P3 0.000214 0.000215 +0 10002 2 2 total P0 2.034945 0.257800 +1 10002 2 2 total P1 0.509941 0.051236 +2 10002 2 2 total P2 0.111175 0.013020 +3 10002 2 2 total P3 0.024988 0.008312 material group in group out nuclide mean std. dev. -3 3 1 1 total 1.0 0.047903 -2 3 1 2 total 1.0 0.080529 -1 3 2 1 total 0.0 0.000000 -0 3 2 2 total 1.0 0.162017 +3 10002 1 1 total 1.0 0.038609 +2 10002 1 2 total 1.0 0.067667 +1 10002 2 1 total 1.0 1.414214 +0 10002 2 2 total 1.0 0.135929 material group in group out nuclide mean std. dev. -3 3 1 1 total 0.0 0.0 -2 3 1 2 total 0.0 0.0 -1 3 2 1 total 0.0 0.0 -0 3 2 2 total 0.0 0.0 +3 10002 1 1 total 0.0 0.0 +2 10002 1 2 total 0.0 0.0 +1 10002 2 1 total 0.0 0.0 +0 10002 2 2 total 0.0 0.0 material 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 nuclide mean std. dev. -1 4 1 total 0.569719 0.069542 -0 4 2 total 1.818808 0.468684 - 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.242447 0.061031 -0 4 2 total 1.253959 0.388363 - material group in nuclide mean std. dev. -1 4 1 total 0.000981 0.000145 -0 4 2 total 0.045603 0.012339 - material group in nuclide mean std. dev. -1 4 1 total 0.000981 0.000145 -0 4 2 total 0.045603 0.012339 - 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 4 1 total 0.0 0.0 -0 4 2 total 0.0 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 4 1 total 0.568737 0.069416 -0 4 2 total 1.773206 0.456376 - material group in nuclide mean std. dev. -1 4 1 total 0.567603 0.068093 -0 4 2 total 1.764648 0.416210 - material group in group out nuclide moment mean std. dev. -12 4 1 1 total P0 0.543941 0.065427 -13 4 1 1 total P1 0.326011 0.038602 -14 4 1 1 total P2 0.131133 0.017475 -15 4 1 1 total P3 0.012105 0.006073 -8 4 1 2 total P0 0.023662 0.003083 -9 4 1 2 total P1 0.007526 0.001301 -10 4 1 2 total P2 -0.002730 0.000841 -11 4 1 2 total P3 -0.003140 0.000578 -4 4 2 1 total P0 0.000000 0.000000 -5 4 2 1 total P1 0.000000 0.000000 -6 4 2 1 total P2 0.000000 0.000000 -7 4 2 1 total P3 0.000000 0.000000 -0 4 2 2 total P0 1.764648 0.416210 -1 4 2 2 total P1 0.500695 0.122178 -2 4 2 2 total P2 0.099026 0.038719 -3 4 2 2 total P3 0.032975 0.025103 - material group in group out nuclide moment mean std. dev. -12 4 1 1 total P0 0.543941 0.065427 -13 4 1 1 total P1 0.326011 0.038602 -14 4 1 1 total P2 0.131133 0.017475 -15 4 1 1 total P3 0.012105 0.006073 -8 4 1 2 total P0 0.023662 0.003083 -9 4 1 2 total P1 0.007526 0.001301 -10 4 1 2 total P2 -0.002730 0.000841 -11 4 1 2 total P3 -0.003140 0.000578 -4 4 2 1 total P0 0.000000 0.000000 -5 4 2 1 total P1 0.000000 0.000000 -6 4 2 1 total P2 0.000000 0.000000 -7 4 2 1 total P3 0.000000 0.000000 -0 4 2 2 total P0 1.764648 0.416210 -1 4 2 2 total P1 0.500695 0.122178 -2 4 2 2 total P2 0.099026 0.038719 -3 4 2 2 total P3 0.032975 0.025103 - material group in group out nuclide mean std. dev. -3 4 1 1 total 1.0 0.125440 -2 4 1 2 total 1.0 0.144075 -1 4 2 1 total 0.0 0.000000 -0 4 2 2 total 1.0 0.256789 - material group in group out nuclide mean std. dev. -3 4 1 1 total 0.0 0.0 -2 4 1 2 total 0.0 0.0 -1 4 2 1 total 0.0 0.0 -0 4 2 2 total 0.0 0.0 - material 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 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 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 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 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 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 moment mean std. dev. -12 5 1 1 total P0 0.0 0.0 -13 5 1 1 total P1 0.0 0.0 -14 5 1 1 total P2 0.0 0.0 -15 5 1 1 total P3 0.0 0.0 -8 5 1 2 total P0 0.0 0.0 -9 5 1 2 total P1 0.0 0.0 -10 5 1 2 total P2 0.0 0.0 -11 5 1 2 total P3 0.0 0.0 -4 5 2 1 total P0 0.0 0.0 -5 5 2 1 total P1 0.0 0.0 -6 5 2 1 total P2 0.0 0.0 -7 5 2 1 total P3 0.0 0.0 -0 5 2 2 total P0 0.0 0.0 -1 5 2 2 total P1 0.0 0.0 -2 5 2 2 total P2 0.0 0.0 -3 5 2 2 total P3 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 5 1 1 total P0 0.0 0.0 -13 5 1 1 total P1 0.0 0.0 -14 5 1 1 total P2 0.0 0.0 -15 5 1 1 total P3 0.0 0.0 -8 5 1 2 total P0 0.0 0.0 -9 5 1 2 total P1 0.0 0.0 -10 5 1 2 total P2 0.0 0.0 -11 5 1 2 total P3 0.0 0.0 -4 5 2 1 total P0 0.0 0.0 -5 5 2 1 total P1 0.0 0.0 -6 5 2 1 total P2 0.0 0.0 -7 5 2 1 total P3 0.0 0.0 -0 5 2 2 total P0 0.0 0.0 -1 5 2 2 total P1 0.0 0.0 -2 5 2 2 total P2 0.0 0.0 -3 5 2 2 total P3 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 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 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 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 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 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 moment mean std. dev. -12 6 1 1 total P0 0.0 0.0 -13 6 1 1 total P1 0.0 0.0 -14 6 1 1 total P2 0.0 0.0 -15 6 1 1 total P3 0.0 0.0 -8 6 1 2 total P0 0.0 0.0 -9 6 1 2 total P1 0.0 0.0 -10 6 1 2 total P2 0.0 0.0 -11 6 1 2 total P3 0.0 0.0 -4 6 2 1 total P0 0.0 0.0 -5 6 2 1 total P1 0.0 0.0 -6 6 2 1 total P2 0.0 0.0 -7 6 2 1 total P3 0.0 0.0 -0 6 2 2 total P0 0.0 0.0 -1 6 2 2 total P1 0.0 0.0 -2 6 2 2 total P2 0.0 0.0 -3 6 2 2 total P3 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 6 1 1 total P0 0.0 0.0 -13 6 1 1 total P1 0.0 0.0 -14 6 1 1 total P2 0.0 0.0 -15 6 1 1 total P3 0.0 0.0 -8 6 1 2 total P0 0.0 0.0 -9 6 1 2 total P1 0.0 0.0 -10 6 1 2 total P2 0.0 0.0 -11 6 1 2 total P3 0.0 0.0 -4 6 2 1 total P0 0.0 0.0 -5 6 2 1 total P1 0.0 0.0 -6 6 2 1 total P2 0.0 0.0 -7 6 2 1 total P3 0.0 0.0 -0 6 2 2 total P0 0.0 0.0 -1 6 2 2 total P1 0.0 0.0 -2 6 2 2 total P2 0.0 0.0 -3 6 2 2 total P3 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 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 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 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 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 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 moment mean std. dev. -12 7 1 1 total P0 0.0 0.0 -13 7 1 1 total P1 0.0 0.0 -14 7 1 1 total P2 0.0 0.0 -15 7 1 1 total P3 0.0 0.0 -8 7 1 2 total P0 0.0 0.0 -9 7 1 2 total P1 0.0 0.0 -10 7 1 2 total P2 0.0 0.0 -11 7 1 2 total P3 0.0 0.0 -4 7 2 1 total P0 0.0 0.0 -5 7 2 1 total P1 0.0 0.0 -6 7 2 1 total P2 0.0 0.0 -7 7 2 1 total P3 0.0 0.0 -0 7 2 2 total P0 0.0 0.0 -1 7 2 2 total P1 0.0 0.0 -2 7 2 2 total P2 0.0 0.0 -3 7 2 2 total P3 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 7 1 1 total P0 0.0 0.0 -13 7 1 1 total P1 0.0 0.0 -14 7 1 1 total P2 0.0 0.0 -15 7 1 1 total P3 0.0 0.0 -8 7 1 2 total P0 0.0 0.0 -9 7 1 2 total P1 0.0 0.0 -10 7 1 2 total P2 0.0 0.0 -11 7 1 2 total P3 0.0 0.0 -4 7 2 1 total P0 0.0 0.0 -5 7 2 1 total P1 0.0 0.0 -6 7 2 1 total P2 0.0 0.0 -7 7 2 1 total P3 0.0 0.0 -0 7 2 2 total P0 0.0 0.0 -1 7 2 2 total P1 0.0 0.0 -2 7 2 2 total P2 0.0 0.0 -3 7 2 2 total P3 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 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 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 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 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 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 moment mean std. dev. -12 8 1 1 total P0 0.0 0.0 -13 8 1 1 total P1 0.0 0.0 -14 8 1 1 total P2 0.0 0.0 -15 8 1 1 total P3 0.0 0.0 -8 8 1 2 total P0 0.0 0.0 -9 8 1 2 total P1 0.0 0.0 -10 8 1 2 total P2 0.0 0.0 -11 8 1 2 total P3 0.0 0.0 -4 8 2 1 total P0 0.0 0.0 -5 8 2 1 total P1 0.0 0.0 -6 8 2 1 total P2 0.0 0.0 -7 8 2 1 total P3 0.0 0.0 -0 8 2 2 total P0 0.0 0.0 -1 8 2 2 total P1 0.0 0.0 -2 8 2 2 total P2 0.0 0.0 -3 8 2 2 total P3 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 8 1 1 total P0 0.0 0.0 -13 8 1 1 total P1 0.0 0.0 -14 8 1 1 total P2 0.0 0.0 -15 8 1 1 total P3 0.0 0.0 -8 8 1 2 total P0 0.0 0.0 -9 8 1 2 total P1 0.0 0.0 -10 8 1 2 total P2 0.0 0.0 -11 8 1 2 total P3 0.0 0.0 -4 8 2 1 total P0 0.0 0.0 -5 8 2 1 total P1 0.0 0.0 -6 8 2 1 total P2 0.0 0.0 -7 8 2 1 total P3 0.0 0.0 -0 8 2 2 total P0 0.0 0.0 -1 8 2 2 total P1 0.0 0.0 -2 8 2 2 total P2 0.0 0.0 -3 8 2 2 total P3 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 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 1.123604 1.580875 -0 9 2 total 0.000000 0.000000 - 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.600536 0.748875 -0 9 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 9 1 total 0.006197 0.008724 -0 9 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 9 1 total 0.006197 0.008724 -0 9 2 total 0.000000 0.000000 - 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 9 1 total 0.0 0.0 -0 9 2 total 0.0 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 9 1 total 1.117408 1.572151 -0 9 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 9 1 total 0.72038 0.771015 -0 9 2 total 0.00000 0.000000 - material group in group out nuclide moment mean std. dev. -12 9 1 1 total P0 0.720380 0.771015 -13 9 1 1 total P1 0.119844 0.184691 -14 9 1 1 total P2 0.038522 0.064485 -15 9 1 1 total P3 0.056023 0.050595 -8 9 1 2 total P0 0.000000 0.000000 -9 9 1 2 total P1 0.000000 0.000000 -10 9 1 2 total P2 0.000000 0.000000 -11 9 1 2 total P3 0.000000 0.000000 -4 9 2 1 total P0 0.000000 0.000000 -5 9 2 1 total P1 0.000000 0.000000 -6 9 2 1 total P2 0.000000 0.000000 -7 9 2 1 total P3 0.000000 0.000000 -0 9 2 2 total P0 0.000000 0.000000 -1 9 2 2 total P1 0.000000 0.000000 -2 9 2 2 total P2 0.000000 0.000000 -3 9 2 2 total P3 0.000000 0.000000 - material group in group out nuclide moment mean std. dev. -12 9 1 1 total P0 0.720380 0.771015 -13 9 1 1 total P1 0.119844 0.184691 -14 9 1 1 total P2 0.038522 0.064485 -15 9 1 1 total P3 0.056023 0.050595 -8 9 1 2 total P0 0.000000 0.000000 -9 9 1 2 total P1 0.000000 0.000000 -10 9 1 2 total P2 0.000000 0.000000 -11 9 1 2 total P3 0.000000 0.000000 -4 9 2 1 total P0 0.000000 0.000000 -5 9 2 1 total P1 0.000000 0.000000 -6 9 2 1 total P2 0.000000 0.000000 -7 9 2 1 total P3 0.000000 0.000000 -0 9 2 2 total P0 0.000000 0.000000 -1 9 2 2 total P1 0.000000 0.000000 -2 9 2 2 total P2 0.000000 0.000000 -3 9 2 2 total P3 0.000000 0.000000 - material group in group out nuclide mean std. dev. -3 9 1 1 total 1.0 1.227262 -2 9 1 2 total 0.0 0.000000 -1 9 2 1 total 0.0 0.000000 -0 9 2 2 total 0.0 0.000000 - material group in group out nuclide mean std. dev. -3 9 1 1 total 0.0 0.0 -2 9 1 2 total 0.0 0.0 -1 9 2 1 total 0.0 0.0 -0 9 2 2 total 0.0 0.0 - material 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 nuclide mean std. dev. -1 10 1 total 0.812963 1.149704 -0 10 2 total 0.000000 0.000000 - 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.235515 0.613974 -0 10 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10 1 total 0.00018 0.000254 -0 10 2 total 0.00000 0.000000 - material group in nuclide mean std. dev. -1 10 1 total 0.00018 0.000254 -0 10 2 total 0.00000 0.000000 - 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 10 1 total 0.0 0.0 -0 10 2 total 0.0 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 10 1 total 0.812784 1.14945 -0 10 2 total 0.000000 0.00000 - material group in nuclide mean std. dev. -1 10 1 total 0.501009 0.708534 -0 10 2 total 0.000000 0.000000 - material group in group out nuclide moment mean std. dev. -12 10 1 1 total P0 0.501009 0.708534 -13 10 1 1 total P1 0.265494 0.375465 -14 10 1 1 total P2 0.141979 0.200788 -15 10 1 1 total P3 0.074258 0.105017 -8 10 1 2 total P0 0.000000 0.000000 -9 10 1 2 total P1 0.000000 0.000000 -10 10 1 2 total P2 0.000000 0.000000 -11 10 1 2 total P3 0.000000 0.000000 -4 10 2 1 total P0 0.000000 0.000000 -5 10 2 1 total P1 0.000000 0.000000 -6 10 2 1 total P2 0.000000 0.000000 -7 10 2 1 total P3 0.000000 0.000000 -0 10 2 2 total P0 0.000000 0.000000 -1 10 2 2 total P1 0.000000 0.000000 -2 10 2 2 total P2 0.000000 0.000000 -3 10 2 2 total P3 0.000000 0.000000 - material group in group out nuclide moment mean std. dev. -12 10 1 1 total P0 0.501009 0.708534 -13 10 1 1 total P1 0.265494 0.375465 -14 10 1 1 total P2 0.141979 0.200788 -15 10 1 1 total P3 0.074258 0.105017 -8 10 1 2 total P0 0.000000 0.000000 -9 10 1 2 total P1 0.000000 0.000000 -10 10 1 2 total P2 0.000000 0.000000 -11 10 1 2 total P3 0.000000 0.000000 -4 10 2 1 total P0 0.000000 0.000000 -5 10 2 1 total P1 0.000000 0.000000 -6 10 2 1 total P2 0.000000 0.000000 -7 10 2 1 total P3 0.000000 0.000000 -0 10 2 2 total P0 0.000000 0.000000 -1 10 2 2 total P1 0.000000 0.000000 -2 10 2 2 total P2 0.000000 0.000000 -3 10 2 2 total P3 0.000000 0.000000 - material group in group out nuclide mean std. dev. -3 10 1 1 total 1.0 1.414214 -2 10 1 2 total 0.0 0.000000 -1 10 2 1 total 0.0 0.000000 -0 10 2 2 total 0.0 0.000000 - material group in group out nuclide mean std. dev. -3 10 1 1 total 0.0 0.0 -2 10 1 2 total 0.0 0.0 -1 10 2 1 total 0.0 0.0 -0 10 2 2 total 0.0 0.0 - material 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 nuclide mean std. dev. -1 11 1 total 0.408939 0.578327 -0 11 2 total 1.258110 1.779236 - 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.186324 0.632129 -0 11 2 total 0.945986 1.591133 - material group in nuclide mean std. dev. -1 11 1 total 0.000687 0.000971 -0 11 2 total 0.028614 0.040466 - material group in nuclide mean std. dev. -1 11 1 total 0.000687 0.000971 -0 11 2 total 0.028614 0.040466 - 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 11 1 total 0.0 0.0 -0 11 2 total 0.0 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 11 1 total 0.408253 0.577356 -0 11 2 total 1.229496 1.738770 - material group in nuclide mean std. dev. -1 11 1 total 0.510003 0.721253 -0 11 2 total 1.201250 1.698824 - material group in group out nuclide moment mean std. dev. -12 11 1 1 total P0 0.478128 0.676174 -13 11 1 1 total P1 0.323679 0.457751 -14 11 1 1 total P2 0.143375 0.202763 -15 11 1 1 total P3 0.054003 0.076372 -8 11 1 2 total P0 0.031875 0.045078 -9 11 1 2 total P1 0.008585 0.012140 -10 11 1 2 total P2 -0.012470 0.017635 -11 11 1 2 total P3 -0.011320 0.016009 -4 11 2 1 total P0 0.000000 0.000000 -5 11 2 1 total P1 0.000000 0.000000 -6 11 2 1 total P2 0.000000 0.000000 -7 11 2 1 total P3 0.000000 0.000000 -0 11 2 2 total P0 1.201250 1.698824 -1 11 2 2 total P1 0.286611 0.405329 -2 11 2 2 total P2 0.218191 0.308569 -3 11 2 2 total P3 -0.048514 0.068609 - material group in group out nuclide moment mean std. dev. -12 11 1 1 total P0 0.478128 0.676174 -13 11 1 1 total P1 0.323679 0.457751 -14 11 1 1 total P2 0.143375 0.202763 -15 11 1 1 total P3 0.054003 0.076372 -8 11 1 2 total P0 0.031875 0.045078 -9 11 1 2 total P1 0.008585 0.012140 -10 11 1 2 total P2 -0.012470 0.017635 -11 11 1 2 total P3 -0.011320 0.016009 -4 11 2 1 total P0 0.000000 0.000000 -5 11 2 1 total P1 0.000000 0.000000 -6 11 2 1 total P2 0.000000 0.000000 -7 11 2 1 total P3 0.000000 0.000000 -0 11 2 2 total P0 1.201250 1.698824 -1 11 2 2 total P1 0.286611 0.405329 -2 11 2 2 total P2 0.218191 0.308569 -3 11 2 2 total P3 -0.048514 0.068609 - material group in group out nuclide mean std. dev. -3 11 1 1 total 1.0 1.414214 -2 11 1 2 total 1.0 1.414214 -1 11 2 1 total 0.0 0.000000 -0 11 2 2 total 1.0 1.414214 - material group in group out nuclide mean std. dev. -3 11 1 1 total 0.0 0.0 -2 11 1 2 total 0.0 0.0 -1 11 2 1 total 0.0 0.0 -0 11 2 2 total 0.0 0.0 - material 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 nuclide mean std. dev. -1 12 1 total 0.390295 0.247786 -0 12 2 total 1.619510 2.290334 - 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.213292 0.271444 -0 12 2 total 1.390975 2.137346 - material group in nuclide mean std. dev. -1 12 1 total 0.000217 0.000142 -0 12 2 total 0.045440 0.064261 - material group in nuclide mean std. dev. -1 12 1 total 0.000217 0.000142 -0 12 2 total 0.045440 0.064261 - material group in nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 12 1 total 0.390078 0.247656 -0 12 2 total 1.574071 2.226072 - material group in nuclide mean std. dev. -1 12 1 total 0.435834 0.294632 -0 12 2 total 1.574328 2.226436 - material group in group out nuclide moment mean std. dev. -12 12 1 1 total P0 0.408594 0.278123 -13 12 1 1 total P1 0.222541 0.145776 -14 12 1 1 total P2 0.090972 0.069626 -15 12 1 1 total P3 0.031004 0.035981 -8 12 1 2 total P0 0.027240 0.029555 -9 12 1 2 total P1 -0.010088 0.010945 -10 12 1 2 total P2 -0.006946 0.007537 -11 12 1 2 total P3 0.009692 0.010516 -4 12 2 1 total P0 0.000000 0.000000 -5 12 2 1 total P1 0.000000 0.000000 -6 12 2 1 total P2 0.000000 0.000000 -7 12 2 1 total P3 0.000000 0.000000 -0 12 2 2 total P0 1.574328 2.226436 -1 12 2 2 total P1 0.229748 0.324913 -2 12 2 2 total P2 0.014178 0.020051 -3 12 2 2 total P3 0.038997 0.055150 - material group in group out nuclide moment mean std. dev. -12 12 1 1 total P0 0.408594 0.278123 -13 12 1 1 total P1 0.222541 0.145776 -14 12 1 1 total P2 0.090972 0.069626 -15 12 1 1 total P3 0.031004 0.035981 -8 12 1 2 total P0 0.027240 0.029555 -9 12 1 2 total P1 -0.010088 0.010945 -10 12 1 2 total P2 -0.006946 0.007537 -11 12 1 2 total P3 0.009692 0.010516 -4 12 2 1 total P0 0.000000 0.000000 -5 12 2 1 total P1 0.000000 0.000000 -6 12 2 1 total P2 0.000000 0.000000 -7 12 2 1 total P3 0.000000 0.000000 -0 12 2 2 total P0 1.574328 2.226436 -1 12 2 2 total P1 0.229748 0.324913 -2 12 2 2 total P2 0.014178 0.020051 -3 12 2 2 total P3 0.038997 0.055150 - material group in group out nuclide mean std. dev. -3 12 1 1 total 1.0 0.756454 -2 12 1 2 total 1.0 1.414214 -1 12 2 1 total 0.0 0.000000 -0 12 2 2 total 1.0 1.414214 - material group in group out nuclide mean std. dev. -3 12 1 1 total 0.0 0.0 -2 12 1 2 total 0.0 0.0 -1 12 2 1 total 0.0 0.0 -0 12 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 8f074f4f6b..2c0a2e278c 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -6,15 +6,15 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 9adacb3a59..8dbb564c65 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -6612ed1baa139ba085456963f0f04a0450bd13c46e6e04ec8fb1c7392168584fce4ca28b75c7606163b4af02a9ead433993f14fa3be8a5ad0083b01c5ff5f33e \ No newline at end of file +eebb1469278f470b5859ed83e9b6526e7c4e3fed503bd22e414c6dc13b19b8e4cb6a44e3c14269e6e173f43056eda78268f455662ae119280bc18ea6a071dac7 \ 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 26b7f26a3c..4f47bd417f 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -629afcb6af616b3b51fc219ef1a829675322fd0b890d538ac172feb76a3937efd1142d8082072f3ab304d2b5f4bf8a930330dc5b2d322c2c96c7187d7c026b7b \ No newline at end of file +a631b8a347f344d822e6300ed2576caa7c05a74daedeb4aaaabfb89570942cff1bbd47ad7f81306e668e12266404f7abdcf680fdfeb5a4835579892e32bf57e8 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index 0bd7732484..da613d78a1 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -6,15 +6,15 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() From a3126e832074819da0022424c794bee4ae4ec38b Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 29 May 2016 22:30:28 -0400 Subject: [PATCH 042/417] Introduced finer granularity for exact parameter in StatePoint.get_tally(...) to fix MGXS notebook bug --- openmc/mgxs/mgxs.py | 2 +- openmc/statepoint.py | 51 ++++++++++++++++++++++++++++++-------------- openmc/tallies.py | 2 ++ 3 files changed, 38 insertions(+), 17 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 829f881113..e0974d4738 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -693,7 +693,7 @@ class MGXS(object): for tally_type, tally in self.tallies.items(): sp_tally = statepoint.get_tally( tally.scores, tally.filters, tally.nuclides, - estimator=tally.estimator, exact=True) + estimator=tally.estimator, exact_filters=True) sp_tally = sp_tally.get_slice( tally.scores, filters, filter_bins, tally.nuclides) sp_tally.sparse = self.sparse diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 83dd148fe7..329d3e41de 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -497,17 +497,28 @@ class StatePoint(object): self.tallies[tally_id].sparse = self.sparse def get_tally(self, scores=[], filters=[], nuclides=[], - name=None, id=None, estimator=None, exact=False): + name=None, id=None, estimator=None, exact_nuclides=False, + exact_filters=False, exact_scores=False): """Finds and returns a Tally object with certain properties. This routine searches the list of Tallies and returns the first Tally found which satisfies all of the input parameters. - NOTE: If the "exact" parameter is False (default), the input parameters + If the "exactness" parameter is 0 (default), the input parameters do not need to match the complete Tally specification and may only - represent a subset of the Tally's properties. If the "exact" parameter - is True then the scores, filters, nuclides and estimator parameters - must precisely match those of any matching Tally. + represent a subset of the Tally's properties. If the "exactness" + parameter is 1 then the length of the scores, filters, nuclides + parameters must precisely match those of any matching Tally, but the + filter bins may represent a subset of those in any matching Tally + (useful if tallies are merged in the input). If the "exactness" + parameter is 2 then the values of the scores, nuclides and filters + parameters must precisely match those of any matching Tally. + + NOTE: If any of the "exact" parameters are False (default), the input + parameters do not need to match the complete Tally specification and + may only represent a subset of the Tally's properties. If an "exact" + parameter is True then number of scores, filters, or nuclides in the + parameters must precisely match those of any matching Tally. Parameters ---------- @@ -523,9 +534,18 @@ class StatePoint(object): The id specified for the Tally (default is None). estimator: str, optional The type of estimator ('tracklength', 'analog'; default is None). - exact : bool - Whether to strictly enforce the match between the parameters and - the returned tally + exact_filters : bool + If True, the number of filters in the parameters must be identical + to those in the matching Tally. If False (default), the filters in + the parameters may be a subset of those in the matching Tally. + exact_nuclides : bool + If True, the number of nuclides in the parameters must be identical + to those in the matching Tally. If False (default), the nuclides in + the parameters may be a subset of those in the matching Tally. + exact_scores : bool + If True, the number of scores in the parameters must be identical + to those in the matching Tally. If False (default), the scores + in the parameters may be a subset of those in the matching Tally. Returns ------- @@ -554,17 +574,16 @@ class StatePoint(object): continue # Determine if Tally has queried estimator - if (estimator or exact) and estimator != test_tally.estimator: + if estimator and estimator != test_tally.estimator: continue # The number of filters, nuclides and scores must exactly match - if exact: - if len(scores) != test_tally.num_scores: - continue - if len(nuclides) != test_tally.num_nuclides: - continue - if len(filters) != test_tally.num_filters: - continue + if exact_scores and len(scores) != test_tally.num_scores: + continue + if exact_nuclides and len(nuclides) != test_tally.num_nuclides: + continue + if exact_filters and len(filters) != test_tally.num_filters: + continue # Determine if Tally has the queried score(s) if scores: diff --git a/openmc/tallies.py b/openmc/tallies.py index 9559adcade..641b6c26c0 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -762,6 +762,8 @@ class Tally(object): # If filters are the second mergeable filters encountered elif filter1.can_merge(filter2) and merge_filters: + merge_filters = True + mergeable_filter = True return False # If no mergeable filter was found, the tallies are not mergeable From 4fe252ba8a1955c15c73d71ddecd5a961b2b1885 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 29 May 2016 23:14:09 -0400 Subject: [PATCH 043/417] Changes to address comments by @samuelshaner --- openmc/statepoint.py | 10 ---------- openmc/tallies.py | 2 -- 2 files changed, 12 deletions(-) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 329d3e41de..9f485619dd 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -504,16 +504,6 @@ class StatePoint(object): This routine searches the list of Tallies and returns the first Tally found which satisfies all of the input parameters. - If the "exactness" parameter is 0 (default), the input parameters - do not need to match the complete Tally specification and may only - represent a subset of the Tally's properties. If the "exactness" - parameter is 1 then the length of the scores, filters, nuclides - parameters must precisely match those of any matching Tally, but the - filter bins may represent a subset of those in any matching Tally - (useful if tallies are merged in the input). If the "exactness" - parameter is 2 then the values of the scores, nuclides and filters - parameters must precisely match those of any matching Tally. - NOTE: If any of the "exact" parameters are False (default), the input parameters do not need to match the complete Tally specification and may only represent a subset of the Tally's properties. If an "exact" diff --git a/openmc/tallies.py b/openmc/tallies.py index 641b6c26c0..9559adcade 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -762,8 +762,6 @@ class Tally(object): # If filters are the second mergeable filters encountered elif filter1.can_merge(filter2) and merge_filters: - merge_filters = True - mergeable_filter = True return False # If no mergeable filter was found, the tallies are not mergeable From e2fb00c6a56c88be39bf1bb5911ab9b0440b5e1e Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 30 May 2016 08:34:08 -0400 Subject: [PATCH 044/417] Reordered parameters in StatePoint.get_tally(...) --- openmc/statepoint.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 9f485619dd..14a48e7f6d 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -497,8 +497,8 @@ class StatePoint(object): self.tallies[tally_id].sparse = self.sparse def get_tally(self, scores=[], filters=[], nuclides=[], - name=None, id=None, estimator=None, exact_nuclides=False, - exact_filters=False, exact_scores=False): + name=None, id=None, estimator=None, exact_filters=False, + exact_nuclides=False, exact_scores=False): """Finds and returns a Tally object with certain properties. This routine searches the list of Tallies and returns the first Tally From a9462ff7f79ceea0bde4c6933e8806ad84e8a182 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 30 May 2016 14:23:06 -0400 Subject: [PATCH 045/417] Fixed tallies._can_merge_scores to properly think it can merge a score if the master score list contains the score to be added. --- .../pythonapi/examples/mgxs-part-iv.ipynb | 68 +++++++++---------- openmc/tallies.py | 11 ++- 2 files changed, 39 insertions(+), 40 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index b330e7ace8..12a4e642a1 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -723,8 +723,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", - " Date/Time: 2016-05-24 19:52:06\n", + " Git SHA1: d20322f22d4850bd640b4accf34e2551550d17fb\n", + " Date/Time: 2016-05-30 14:20:53\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -811,20 +811,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4330E+00 seconds\n", - " Reading cross sections = 1.1310E+00 seconds\n", - " Total time in simulation = 1.8040E+01 seconds\n", - " Time in transport only = 1.7983E+01 seconds\n", - " Time in inactive batches = 2.0740E+00 seconds\n", - " Time in active batches = 1.5966E+01 seconds\n", - " Time synchronizing fission bank = 8.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 1.4260E+00 seconds\n", + " Reading cross sections = 1.1340E+00 seconds\n", + " Total time in simulation = 1.6739E+01 seconds\n", + " Time in transport only = 1.6650E+01 seconds\n", + " Time in inactive batches = 2.1540E+00 seconds\n", + " Time in active batches = 1.4585E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 9.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 = 1.9482E+01 seconds\n", - " Calculation Rate (inactive) = 24108.0 neutrons/second\n", - " Calculation Rate (active) = 12526.6 neutrons/second\n", + " Total time elapsed = 1.8174E+01 seconds\n", + " Calculation Rate (inactive) = 23212.6 neutrons/second\n", + " Calculation Rate (active) = 13712.7 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -967,11 +967,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/nelsonag/git/openmc/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1986: RuntimeWarning: invalid value encountered in true_divide\n", " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", - "/home/nelsonag/git/openmc/openmc/tallies.py:1989: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1987: RuntimeWarning: invalid value encountered in true_divide\n", " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n", - "/home/nelsonag/git/openmc/openmc/tallies.py:1990: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n", " new_tally._mean = data['self']['mean'] / data['other']['mean']\n" ] } @@ -1099,8 +1099,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", - " Date/Time: 2016-05-24 19:52:26\n", + " Git SHA1: d20322f22d4850bd640b4accf34e2551550d17fb\n", + " Date/Time: 2016-05-30 14:21:12\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1184,20 +1184,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.6000E-02 seconds\n", - " Reading cross sections = 7.0000E-03 seconds\n", - " Total time in simulation = 1.4412E+01 seconds\n", - " Time in transport only = 1.4376E+01 seconds\n", - " Time in inactive batches = 1.2750E+00 seconds\n", - " Time in active batches = 1.3137E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-02 seconds\n", - " Sampling source sites = 7.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 2.8000E-02 seconds\n", + " Reading cross sections = 4.0000E-03 seconds\n", + " Total time in simulation = 1.2816E+01 seconds\n", + " Time in transport only = 1.2770E+01 seconds\n", + " Time in inactive batches = 1.3130E+00 seconds\n", + " Time in active batches = 1.1503E+01 seconds\n", + " Time synchronizing fission bank = 9.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 6.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.4458E+01 seconds\n", - " Calculation Rate (inactive) = 39215.7 neutrons/second\n", - " Calculation Rate (active) = 15224.2 neutrons/second\n", + " Total time elapsed = 1.2854E+01 seconds\n", + " Calculation Rate (inactive) = 38080.7 neutrons/second\n", + " Calculation Rate (active) = 17386.8 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1384,7 +1384,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1395,7 +1395,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/tallies.py b/openmc/tallies.py index 9559adcade..2313a61734 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -827,9 +827,7 @@ class Tally(object): # 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: + if score in other.scores: no_scores_match = False # Search for each of the other tally's scores in this tally @@ -3471,7 +3469,8 @@ class Tallies(cv.CheckedList): """ if not isinstance(tally, Tally): - msg = 'Unable to add a non-Tally "{0}" to the Tallies instance'.format(tally) + msg = 'Unable to add a non-Tally "{0}" to the ' \ + 'Tallies instance'.format(tally) raise TypeError(msg) if merge: @@ -3482,13 +3481,13 @@ class Tallies(cv.CheckedList): # If a mergeable tally is found if tally2.can_merge(tally): - # Replace tally 2 with the merged tally + # Replace tally2 with the merged tally merged_tally = tally2.merge(tally) self[i] = merged_tally merged = True break - # If not mergeable tally was found, simply add this tally + # If no mergeable tally was found, simply add this tally if not merged: super(Tallies, self).append(tally) From 0ee6a6169cb05ab3d79f57766533a9c0a69e57b1 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 31 May 2016 06:47:27 -0500 Subject: [PATCH 046/417] Fix typo --- openmc/lattice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/lattice.py b/openmc/lattice.py index 0277d50cb2..7690104c71 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -654,7 +654,7 @@ class HexLattice(Lattice): are assigned an index corresponding to their position relative to skewed :math:`(x,\alpha,z)` axes as described fully in :ref:`hexagonal_indexing`. However, note that when universes are assigned to - lattice elements using the :attr:`RectLattice.universes` property, the array + lattice elements using the :attr:`HexLattice.universes` property, the array indices do not correspond to natural indices. Parameters From 2b219ae15f8f1a581e808f7d664f522353ba89cc Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 31 May 2016 08:41:05 -0500 Subject: [PATCH 047/417] Refactor handling of cell fill types. Fix Geometry.get_* methods --- openmc/cell.py | 149 ++++++++++------------- openmc/geometry.py | 55 ++++----- openmc/summary.py | 4 +- tests/test_distribmat/results_true.dat | 2 +- tests/test_distribmat/test_distribmat.py | 2 +- 5 files changed, 92 insertions(+), 120 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index 29f85754af..900c952e51 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -36,7 +36,7 @@ class Cell(object): automatically be assigned. name : str, optional Name of the cell. If not specified, the name is the empty string. - fill : openmc.Material or openmc.Universe or openmc.Lattice or 'void' or iterable of openmc.Material, optional + fill : openmc.Material or openmc.Universe or openmc.Lattice or None or iterable of openmc.Material, optional Indicates what the region of space is filled with region : openmc.Region, optional Region of space that is assigned to the cell. @@ -47,9 +47,13 @@ class Cell(object): Unique identifier for the cell name : str Name of the cell - 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 + fill : openmc.Material or openmc.Universe or openmc.Lattice or None or iterable of openmc.Material + Indicates what the region of space is filled with. If None, the cell is + treated as a void. An iterable of materials is used to fill repeated + instances of a cell with different materials. + fill_type : {'material', 'universe', 'lattice', 'distribmat', 'void'} + Indicates what the cell is filled with. + region : openmc.Region or None Region of space that is assigned to the cell. rotation : Iterable of float If the cell is filled with a universe, this array specifies the angles @@ -68,6 +72,9 @@ class Cell(object): \sin\theta \sin\psi \\ -\sin\theta & \sin\phi \cos\theta & \cos\phi \cos\theta \end{array} \right ] + rotation_matrix : numpy.ndarray + The rotation matrix defined by the angles specified in the + :attr:`Cell.rotation` property. translation : Iterable of float If the cell is filled with a universe, this array specifies a vector that is used to translate (shift) the universe. @@ -82,20 +89,14 @@ class Cell(object): # Initialize Cell class attributes self.id = cell_id self.name = name - self._fill = None - self._type = None - self._region = None + self.fill = fill + self.region = region self._rotation = None self._rotation_matrix = None self._translation = None self._offsets = None self._distribcell_index = None - if fill is not None: - self.fill = fill - if region is not None: - self.region = region - def __contains__(self, point): if self.region is None: return True @@ -128,35 +129,24 @@ class Cell(object): 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) + string += '{: <16}=\t{}\n'.format('\tID', self.id) + string += '{: <16}=\t{}\n'.format('\tName', self.name) - if isinstance(self._fill, openmc.Material): - string += '{0: <16}{1}{2}\n'.format('\tMaterial', '=\t', - self._fill._id) - elif isinstance(self._fill, basestring): - string += '{0: <16}=\tvoid\n'.format('\tMaterial') - 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, (openmc.Universe, openmc.Lattice)): - string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', - self._fill._id) + if self.fill_type == 'material': + string += '{: <16}=\tMaterial {}\n'.format('\tFill', self.fill.id) + elif self.fill_type == 'void': + string += '{: <16}=\tNone\n'.format('\tFill') + elif self.fill_type == 'distribmat': + string += '{: <16}=\t{}\n'.format('\tFill', list(map( + lambda m: m if m is None else m.id, self.fill))) else: - string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', self._fill) + string += '{: <16}=\t{}\n'.format('\tFill', self.fill.id) - 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) + string += '{: <16}=\t{}\n'.format('\tRegion', self.region) + string += '{: <16}=\t{}\n'.format('\tRotation', self.rotation) + string += '{: <16}=\t{}\n'.format('\tTranslation', self.translation) + string += '{: <16}=\t{}\n'.format('\tOffset', self.offsets) + string += '{: <16}=\t{}\n'.format('\tDistribcell index', self.distribcell_index) return string @@ -180,8 +170,10 @@ class Cell(object): return 'universe' elif isinstance(self.fill, openmc.Lattice): return 'lattice' + elif isinstance(self.fill, Iterable): + return 'distribmat' else: - return None + return 'void' @property def region(self): @@ -228,33 +220,25 @@ class Cell(object): @fill.setter def fill(self, fill): - if isinstance(fill, basestring): - if fill.strip().lower() == 'void': - self._type = 'void' - else: + if fill is not None: + if isinstance(fill, basestring): + if fill.strip().lower() != 'void': + msg = 'Unable to set Cell ID="{0}" to use a non-Material ' \ + 'or Universe fill "{1}"'.format(self._id, fill) + raise ValueError(msg) + fill = None + + elif isinstance(fill, Iterable): + for i, f in enumerate(fill): + if f is not None: + cv.check_type('cell.fill[i]', f, openmc.Material) + + elif not isinstance(fill, (openmc.Material, openmc.Lattice, + openmc.Universe)): msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ - 'Universe fill "{1}"'.format(self._id, fill) + '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, openmc.Universe): - self._type = 'fill' - - elif isinstance(fill, openmc.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 @@ -290,7 +274,8 @@ class Cell(object): @region.setter def region(self, region): - cv.check_type('cell region', region, Region) + if region is not None: + cv.check_type('cell region', region, Region) self._region = region @distribcell_index.setter @@ -345,11 +330,11 @@ class Cell(object): def get_cell_instance(self, path, distribcell_index): # If the Cell is filled by a Material - if self._type == 'normal' or self._type == 'void': + if self.fill_type in ('material', 'distribmat', 'void'): offset = 0 # If the Cell is filled by a Universe - elif self._type == 'fill': + elif self.fill_type == 'universe': offset = self.offsets[distribcell_index-1] offset += self.fill.get_cell_instance(path, distribcell_index) @@ -372,8 +357,8 @@ class Cell(object): nuclides = OrderedDict() - if self._type != 'void': - nuclides.update(self._fill.get_all_nuclides()) + if self.fill_type != 'void': + nuclides.update(self.fill.get_all_nuclides()) return nuclides @@ -391,8 +376,8 @@ class Cell(object): cells = OrderedDict() - if self._type == 'fill' or self._type == 'lattice': - cells.update(self._fill.get_all_cells()) + if self.fill_type in ('universe', 'lattice'): + cells.update(self.fill.get_all_cells()) return cells @@ -432,11 +417,11 @@ class Cell(object): 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()) + if self.fill_type == 'universe': + universes[self.fill.id] = self.fill + universes.update(self.fill.get_all_universes()) + elif self.fill_type == 'lattice': + universes.update(self.fill.get_all_universes()) return universes @@ -447,24 +432,20 @@ class Cell(object): if len(self._name) > 0: element.set("name", str(self.name)) - if isinstance(self.fill, basestring): + if self.fill_type == 'void': element.set("material", "void") - elif isinstance(self.fill, openmc.Material): + elif self.fill_type == '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) + elif self.fill_type == 'distribmat': + element.set("material", ' '.join(['void' if m is None else str(m.id) for m in self.fill])) - elif isinstance(self.fill, (openmc.Universe, openmc.Lattice)): + elif self.fill_type in ('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)) diff --git a/openmc/geometry.py b/openmc/geometry.py index 006151900d..2625ed3fa5 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -144,14 +144,8 @@ class Geometry(object): """ - all_cells = self._root_universe.get_all_cells() - cells = set() - - for cell in all_cells.values(): - if cell._type == 'normal': - cells.add(cell) - - cells = list(cells) + all_cells = self.root_universe.get_all_cells() + cells = list(set(all_cells.values())) cells.sort(key=lambda x: x.id) return cells @@ -166,12 +160,7 @@ class Geometry(object): """ all_universes = self._root_universe.get_all_universes() - universes = set() - - for universe in all_universes.values(): - universes.add(universe) - - universes = list(universes) + universes = list(set(all_universes.values())) universes.sort(key=lambda x: x.id) return universes @@ -204,15 +193,17 @@ class Geometry(object): """ material_cells = self.get_all_material_cells() - materials = set() + materials = [] for cell in material_cells: - if isinstance(cell.fill, Iterable): - for m in cell.fill: materials.add(m) - else: - materials.add(cell.fill) + if cell.fill_type == 'distribmat': + for m in cell.fill: + if m is not None and m not in materials: + materials.append(m) + elif cell.fill_type == 'material': + if cell.fill not in materials: + materials.append(cell.fill) - materials = list(materials) materials.sort(key=lambda x: x.id) return materials @@ -227,13 +218,13 @@ class Geometry(object): """ all_cells = self.get_all_cells() - material_cells = set() + material_cells = [] for cell in all_cells: - if cell._type == 'normal': - material_cells.add(cell) + if cell.fill_type in ('material', 'distribmat'): + if cell not in material_cells: + material_cells.append(cell) - material_cells = list(material_cells) material_cells.sort(key=lambda x: x.id) return material_cells @@ -248,15 +239,15 @@ class Geometry(object): """ all_universes = self.get_all_universes() - material_universes = set() + material_universes = [] for universe in all_universes: cells = universe.cells for cell in cells: - if cell._type == 'normal': - material_universes.add(universe) + if cell.fill_type in ('material', 'distribmat', 'void'): + if universe not in material_universes: + material_universes.append(universe) - material_universes = list(material_universes) material_universes.sort(key=lambda x: x.id) return material_universes @@ -271,13 +262,13 @@ class Geometry(object): """ cells = self.get_all_cells() - lattices = set() + lattices = [] for cell in cells: - if isinstance(cell.fill, openmc.Lattice): - lattices.add(cell.fill) + if cell.fill_type == 'lattice': + if cell.fill not in lattices: + lattices.append(cell.fill) - lattices = list(lattices) lattices.sort(key=lambda x: x.id) return lattices diff --git a/openmc/summary.py b/openmc/summary.py index c3277809a0..2af9b6be6f 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -493,13 +493,13 @@ class Summary(object): # Retrieve the object corresponding to the fill type and ID if fill_type == 'normal': if isinstance(fill_id, Iterable): - fill = [self.get_material_by_id(mat) if mat > 0 else 'void' + fill = [self.get_material_by_id(mat) if mat > 0 else None for mat in fill_id] else: if fill_id > 0: fill = self.get_material_by_id(fill_id) else: - fill = 'void' + fill = None elif fill_type == 'universe': fill = self.get_universe_by_id(fill_id) else: diff --git a/tests/test_distribmat/results_true.dat b/tests/test_distribmat/results_true.dat index 15a00ee7d0..bf96784d71 100644 --- a/tests/test_distribmat/results_true.dat +++ b/tests/test_distribmat/results_true.dat @@ -3,7 +3,7 @@ k-combined: Cell ID = 11 Name = - Material = [2, 3, void, 2] + Fill = [2, 3, None, 2] Region = -10000 Rotation = None Translation = None diff --git a/tests/test_distribmat/test_distribmat.py b/tests/test_distribmat/test_distribmat.py index 6700a96b60..96d41c3fbe 100644 --- a/tests/test_distribmat/test_distribmat.py +++ b/tests/test_distribmat/test_distribmat.py @@ -45,7 +45,7 @@ class DistribmatTestHarness(PyAPITestHarness): r0 = openmc.ZCylinder(R=0.3) c11 = openmc.Cell(cell_id=11) c11.region = -r0 - c11.fill = [dense_fuel, light_fuel, 'void', dense_fuel] + c11.fill = [dense_fuel, light_fuel, None, dense_fuel] c12 = openmc.Cell(cell_id=12) c12.region = +r0 c12.fill = moderator From e3c927b0210abf7b2ca2d9d52c3d22d0b91e0712 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 31 May 2016 09:41:15 -0500 Subject: [PATCH 048/417] Fix use of fill_type in universe module --- openmc/universe.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/universe.py b/openmc/universe.py index a28729d8e2..7f32d68a9d 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -130,7 +130,7 @@ class Universe(object): Parameters ---------- point : 3-tuple of float - Cartesian coordinatesof the point + Cartesian coordinates of the point Returns ------- @@ -142,9 +142,9 @@ class Universe(object): p = np.asarray(point) for cell in self._cells.values(): if p in cell: - if cell._type in ('normal', 'void'): + if cell.fill_type in ('material', 'distribmat', 'void'): return [self, cell] - elif cell._type == 'fill': + elif cell.fill_type == 'universe': if cell.translation is not None: p -= cell.translation if cell.rotation is not None: From 108d8c835b58df505f02b124a1f0e9d13f4eb0d0 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 31 May 2016 12:53:12 -0500 Subject: [PATCH 049/417] Add colors and filename argument to Universe.plot --- openmc/universe.py | 47 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/openmc/universe.py b/openmc/universe.py index 7f32d68a9d..84a5acdcac 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -155,7 +155,7 @@ class Universe(object): return [] def plot(self, center=(0., 0., 0.), width=(1., 1.), pixels=(200, 200), - basis='xy', color_by='cell', seed=None): + basis='xy', color_by='cell', colors=None, filename=None, seed=None): """Display a slice plot of the universe. Parameters @@ -170,6 +170,22 @@ class Universe(object): The basis directions for the plot color_by : {'cell', 'material'} Indicate whether the plot should be colored by cell or by material + colors : dict + + Assigns colors to specific materials or cells. Keys are instances of + :class:`Cell` or :class:`Material` and values are RGB 3-tuples or RGBA + 4-tuples. Red, green, blue, and alpha should all be floats in the + range [0.0, 1.0], for example: + + .. code-block:: python + + # Make water blue + water = openmc.Cell(fill=h2o) + universe.plot(..., colors={water: (0., 0., 1.)) + + filename : str or None + Filename to save plot to. If no filename is given, the plot will be + displayed using the currently enabled matplotlib backend. seed : hashable object or None Hashable object which is used to seed the random number generator used to select colors. If None, the generator is seeded from the @@ -182,6 +198,15 @@ class Universe(object): if seed is not None: random.seed(seed) + if colors is None: + # Create default dictionary if none supplied + colors = {} + else: + # Convert to RGBA if necessary + for obj, rgb in colors.items(): + if len(rgb) == 3: + colors[obj] = rgb + (1.0,) + if basis == 'xy': x_min = center[0] - 0.5*width[0] x_max = center[0] + 0.5*width[0] @@ -206,7 +231,7 @@ class Universe(object): y_coords = np.linspace(y_max, y_min, pixels[1], endpoint=False) - \ 0.5*(y_max - y_min)/pixels[1] - colors = {} + # Search for locations and assign colors img = np.zeros(pixels + (4,)) # Use RGBA form for i, x in enumerate(x_coords): for j, y in enumerate(y_coords): @@ -220,21 +245,27 @@ class Universe(object): if len(path) > 0: try: if color_by == 'cell': - uid = path[-1].id + obj = path[-1] elif color_by == 'material': if path[-1].fill_type == 'material': - uid = path[-1].fill.id + obj = path[-1].fill else: continue except AttributeError: continue - if uid not in colors: - colors[uid] = (random.random(), random.random(), + if obj not in colors: + colors[obj] = (random.random(), random.random(), random.random(), 1.0) - img[j,i,:] = colors[uid] + img[j,i,:] = colors[obj] + # Display image plt.imshow(img, extent=(x_min, x_max, y_min, y_max)) - plt.show() + + # Show or save the plot + if filename is None: + plt.show() + else: + plt.savefig(filename) def add_cell(self, cell): """Add a cell to the universe. From d16e3fca8976ccdc11d1eaf5583992e38bf96a2c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 1 Jun 2016 01:40:17 -0500 Subject: [PATCH 050/417] Remove many __deepcopy__ implementations --- openmc/arithmetic.py | 112 ------------------------------------------- openmc/filter.py | 21 -------- openmc/material.py | 25 ---------- openmc/mesh.py | 23 --------- openmc/tallies.py | 47 +----------------- openmc/trigger.py | 19 -------- 6 files changed, 1 insertion(+), 246 deletions(-) diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index 5869cad802..f9ef58db89 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -67,24 +67,6 @@ class CrossScore(object): def __ne__(self, other): return not self == other - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy this object, create a copy - if existing is None: - clone = type(self).__new__(type(self)) - clone._left_score = self.left_score - clone._right_score = self.right_score - clone._binary_op = self.binary_op - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - def __repr__(self): string = '({0} {1} {2})'.format(self.left_score, self.binary_op, self.right_score) @@ -169,28 +151,9 @@ class CrossNuclide(object): def __ne__(self, other): return not self == other - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy this object, create a copy - if existing is None: - clone = type(self).__new__(type(self)) - clone._left_nuclide = self.left_nuclide - clone._right_nuclide = self.right_nuclide - clone._binary_op = self.binary_op - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - def __repr__(self): return self.name - @property def left_nuclide(self): return self._left_nuclide @@ -325,27 +288,6 @@ class CrossFilter(object): string += '{0: <16}{1}{2}\n'.format('\tBins', '=\t', filter_bins) return string - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy this object, create a copy - if existing is None: - clone = type(self).__new__(type(self)) - clone._left_filter = self.left_filter - clone._right_filter = self.right_filter - clone._binary_op = self.binary_op - clone._type = self.type - clone._bins = self._bins - clone._stride = self.stride - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - @property def left_filter(self): return self._left_filter @@ -532,23 +474,6 @@ class AggregateScore(object): def __ne__(self, other): return not self == other - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy this object, create a copy - if existing is None: - clone = type(self).__new__(type(self)) - clone._scores = self.scores - clone._aggregate_op = self.aggregate_op - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - def __repr__(self): string = ', '.join(map(str, self.scores)) string = '{0}({1})'.format(self.aggregate_op, string) @@ -622,23 +547,6 @@ class AggregateNuclide(object): def __ne__(self, other): return not self == other - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy this object, create a copy - if existing is None: - clone = type(self).__new__(type(self)) - clone._nuclides = self.nuclides - clone._aggregate_op = self._aggregate_op - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - def __repr__(self): # Append each nuclide in the aggregate to the string @@ -757,26 +665,6 @@ class AggregateFilter(object): string += '{0: <16}{1}{2}\n'.format('\tBins', '=\t', self.bins) return string - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy this object, create a copy - if existing is None: - clone = type(self).__new__(type(self)) - clone._type = self.type - clone._aggregate_filter = self.aggregate_filter - clone._aggregate_op = self.aggregate_op - clone._bins = self._bins - clone._stride = self.stride - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - @property def aggregate_filter(self): return self._aggregate_filter diff --git a/openmc/filter.py b/openmc/filter.py index 52560a193a..e06958490b 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -104,27 +104,6 @@ class Filter(object): def __hash__(self): return hash(repr(self)) - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy this object, create a copy - if existing is None: - clone = type(self).__new__(type(self)) - clone._type = self.type - clone._bins = copy.deepcopy(self.bins, memo) - 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 - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - def __repr__(self): string = 'Filter\n' string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', self.type) diff --git a/openmc/material.py b/openmc/material.py index 6b2b07f2d4..f29a42117f 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -154,31 +154,6 @@ class Material(object): return string - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - if existing is None: - # If this is the first time we have tried to copy this object, create a copy - clone = type(self).__new__(type(self)) - clone._id = self._id - clone._name = self._name - clone._density = self._density - clone._density_units = self._density_units - clone._nuclides = deepcopy(self._nuclides, memo) - clone._macroscopic = self._macroscopic - clone._elements = deepcopy(self._elements, memo) - clone._sab = deepcopy(self._sab, memo) - clone._convert_to_distrib_comps = self._convert_to_distrib_comps - clone._distrib_otf_file = self._distrib_otf_file - - memo[id(self)] = clone - - return clone - - else: - # If this object has been copied before, return the first copy made - return existing - @property def id(self): return self._id diff --git a/openmc/mesh.py b/openmc/mesh.py index 8bad6c5374..0c88d4a680 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -1,5 +1,4 @@ from collections import Iterable -import copy from numbers import Real, Integral from xml.etree import ElementTree as ET import sys @@ -83,28 +82,6 @@ class Mesh(object): else: return True - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy this object, create a copy - if existing is None: - clone = type(self).__new__(type(self)) - clone._id = self._id - clone._name = self._name - clone._type = self._type - clone._dimension = copy.deepcopy(self._dimension, memo) - clone._lower_left = copy.deepcopy(self._lower_left, memo) - clone._upper_right = copy.deepcopy(self._upper_right, memo) - clone._width = copy.deepcopy(self._width, memo) - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - @property def id(self): return self._id diff --git a/openmc/tallies.py b/openmc/tallies.py index 2313a61734..1d895022cc 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -129,51 +129,6 @@ class Tally(object): self._sp_filename = None self._results_read = False - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy this object, create a copy - if existing is None: - clone = type(self).__new__(type(self)) - clone.id = self.id - clone.name = self.name - clone.estimator = self.estimator - clone.num_realizations = self.num_realizations - clone._sum = copy.deepcopy(self._sum, memo) - clone._sum_sq = copy.deepcopy(self._sum_sq, memo) - clone._mean = copy.deepcopy(self._mean, memo) - clone._std_dev = copy.deepcopy(self._std_dev, memo) - clone._with_summary = self.with_summary - clone._with_batch_statistics = self.with_batch_statistics - clone._derived = self.derived - clone._sparse = self.sparse - clone._sp_filename = self._sp_filename - clone._results_read = self._results_read - - clone._filters = [] - for self_filter in self.filters: - clone.filters.append(copy.deepcopy(self_filter, memo)) - - clone._nuclides = [] - for nuclide in self.nuclides: - clone.nuclides.append(copy.deepcopy(nuclide, memo)) - - clone._scores = [] - for score in self.scores: - clone.scores.append(score) - - clone._triggers = [] - for trigger in self.triggers: - clone.triggers.append(trigger) - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - def __eq__(self, other): if not isinstance(other, Tally): return False @@ -2875,7 +2830,7 @@ class Tally(object): return other * self**-1 - def __pos__(self): + def __abs__(self): """The absolute value of this tally. Returns diff --git a/openmc/trigger.py b/openmc/trigger.py index b8383bd271..537af1c8d8 100644 --- a/openmc/trigger.py +++ b/openmc/trigger.py @@ -39,25 +39,6 @@ class Trigger(object): self.threshold = threshold self._scores = [] - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is first time we have tried to copy this object, create a copy - if existing is None: - clone = type(self).__new__(type(self)) - clone._trigger_type = self._trigger_type - clone._threshold = self._threshold - - clone.scores = self.scores - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - def __eq__(self, other): if str(self) == str(other): return True From 07ef67fee019b3c2eb580fc651e6bbbf0bf2e0cb Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 26 May 2016 07:46:07 -0500 Subject: [PATCH 051/417] Initial TRISO modeling capabilities --- docs/source/pythonapi/index.rst | 27 +++++ openmc/model/__init__.py | 1 + openmc/model/triso.py | 172 ++++++++++++++++++++++++++++++ setup.py | 3 +- tests/test_triso/inputs_true.dat | 1 + tests/test_triso/results_true.dat | 2 + tests/test_triso/test_triso.py | 107 +++++++++++++++++++ 7 files changed, 312 insertions(+), 1 deletion(-) create mode 100644 openmc/model/__init__.py create mode 100644 openmc/model/triso.py create mode 100644 tests/test_triso/inputs_true.dat create mode 100644 tests/test_triso/results_true.dat create mode 100644 tests/test_triso/test_triso.py diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index bf35e75874..54cb935941 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -296,6 +296,33 @@ Multi-group Cross Section Libraries openmc.mgxs.Library +------------------------------------- +:mod:`openmc.model` -- Model Building +------------------------------------- + +TRISO Fuel Modeling +------------------- + +Classes ++++++++ + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.model.TRISO + +Functions ++++++++++ + +.. autosummary:: + :toctree: generated + :nosignatures: + + openmc.model.create_triso_lattice + + .. _Jupyter: https://jupyter.org/ .. _NumPy: http://www.numpy.org/ .. _Codecademy: https://www.codecademy.com/tracks/python diff --git a/openmc/model/__init__.py b/openmc/model/__init__.py new file mode 100644 index 0000000000..ffb1f42820 --- /dev/null +++ b/openmc/model/__init__.py @@ -0,0 +1 @@ +from .triso import * diff --git a/openmc/model/triso.py b/openmc/model/triso.py new file mode 100644 index 0000000000..dc53e6ec01 --- /dev/null +++ b/openmc/model/triso.py @@ -0,0 +1,172 @@ +import copy +from collections import Iterable +from numbers import Real + +import numpy as np + +import openmc +import openmc.checkvalue as cv + +class TRISO(object): + """Tristructural-isotopic (TRISO) micro fuel particle + + Parameters + ---------- + materials : Iterable of openmc.Material + Material to be assigned to each layer of the TRISO particle starting + with the innermost and proceeding outwards + radii : Iterable of float + Outer radii in cm of each layer of the TRISO particle in ascending order + center : Iterable of float + Cartesian coordinates of the center of the TRISO particle in cm + + Attributes + ---------- + cells : list of opemc.Cell + Each layer of the TRISO particle + center : numpy.ndarray + Cartesian coordinates of the center of the TRISO particle in cm + outside : openmc.Region + Region of space outside of the TRISO particle + bounding_box : tuple of numpy.ndarray + Lower-left and upper-right coordinates of an axis-aligned bounding box + for the TRISO particle + + """ + + def __init__(self, materials, radii, center=(0., 0., 0.)): + surfaces = [openmc.Sphere(R=r) for r in radii] + cells = [] + for i, m in enumerate(materials): + c = openmc.Cell(fill=m) + if i == 0: + c.region = -surfaces[i] + else: + c.region = +surfaces[i-1] & -surfaces[i] + cells.append(c) + self._cells = cells + self._surfaces = surfaces + self.center = np.asarray(center) + + @property + def bounding_box(self): + return self.cells[-1].region.bounding_box + + @property + def cells(self): + return self._cells + + @property + def center(self): + return self._center + + @property + def outside(self): + return ~self.cells[-1].region.nodes[-1] + + @center.setter + def center(self, center): + cv.check_type('TRISO center', center, Iterable, Real) + for s in self._surfaces: + s.x0, s.y0, s.z0 = center + self._center = center + + def classify(self, lattice): + """Determine lattice element indices which might contain the TRISO particle. + + Parameters + ---------- + lattice : openmc.RectLattice + Lattice to check + + Returns + ------- + list of tuple + (z,y,x) lattice element indices which might contain the TRISO + particle. + + """ + + ll, ur = self.bounding_box + if lattice.ndim == 2: + (i_min, j_min), p = lattice.find_element(ll) + (i_max, j_max), p = lattice.find_element(ur) + return list(np.broadcast(*np.ogrid[ + j_min:j_max+1, i_min:i_max+1])) + else: + (i_min, j_min, k_min), p = lattice.find_element(ll) + (i_max, j_max, k_max), p = lattice.find_element(ur) + return list(np.broadcast(*np.ogrid[ + k_min:k_max+1, j_min:j_max+1, i_min:i_max+1])) + + +def create_triso_lattice(trisos, lower_left, pitch, shape, background): + """Create a lattice containing TRISO particles for optimized tracking. + + Parameters + ---------- + trisos : list of openmc.model.TRISO + List of TRISO particles to put in lattice + lower_left : Iterable of float + Lower-left Cartesian coordinates of the lattice + pitch : Iterable of float + Pitch of the lattice elements in the x-, y-, and z-directions + shape : Iterable of float + Number of lattice elements in the x-, y-, and z-directions + background : openmc.Material + A background material that is used anywhere within the lattice but + outside a TRISO particle + + Returns + ------- + lattice : openmc.RectLattice + A lattice containing the TRISO particles + + """ + + lattice = openmc.RectLattice() + lattice.lower_left = lower_left + lattice.pitch = pitch + + indices = list(np.broadcast(*np.ogrid[:shape[2], :shape[1], :shape[0]])) + triso_locations = {idx: [] for idx in indices} + for t in trisos: + for idx in t.classify(lattice): + if idx in sorted(triso_locations): + # Create copy of TRISO particle with materials preserved and + # different cell/surface IDs + t_copy = copy.deepcopy(t) + for c, c_copy in zip(t.cells, t_copy.cells): + c_copy.id = None + c_copy.fill = c.fill + for s in t_copy._surfaces: + s.id = None + triso_locations[idx].append(t_copy) + + # Create universes + universes = np.empty(shape[::-1], dtype=openmc.Universe) + for idx, triso_list in sorted(triso_locations.items()): + if len(triso_list) > 0: + outside_trisos = openmc.Intersection(*[t.outside for t in triso_list]) + background_cell = openmc.Cell(fill=background, region=outside_trisos) + else: + background_cell = openmc.Cell(fill=background) + + u = openmc.Universe() + u.add_cell(background_cell) + for t in triso_list: + u.add_cells(t.cells) + iz, iy, ix = idx + t.center = lattice.get_local_coordinates(t.center, (ix, iy, iz)) + + if len(shape) == 2: + universes[-1 - idx[0], idx[1]] = u + else: + universes[idx[0], -1 - idx[1], idx[2]] = u + lattice.universes = universes + + # Set outer universe + background_cell = openmc.Cell(fill=background) + lattice.outer = openmc.Universe(cells=[background_cell]) + + return lattice diff --git a/setup.py b/setup.py index 770f280ad1..99e465c9d4 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,8 @@ except ImportError: kwargs = {'name': 'openmc', 'version': '0.7.1', - 'packages': ['openmc', 'openmc.data', 'openmc.mgxs', 'openmc.stats'], + 'packages': ['openmc', 'openmc.data', 'openmc.mgxs', 'openmc.model', + 'openmc.stats'], 'scripts': glob.glob('scripts/openmc-*'), # Metadata diff --git a/tests/test_triso/inputs_true.dat b/tests/test_triso/inputs_true.dat new file mode 100644 index 0000000000..40f312850d --- /dev/null +++ b/tests/test_triso/inputs_true.dat @@ -0,0 +1 @@ +6c6fecedf3db0b91b69b7b7b57b3a52c42947253bea4ee3889d6bbd6e74935cc4e599c1c743eb589a1045868412f3f88c5fef7cf10e180bdc4bd182970c9ee15 \ No newline at end of file diff --git a/tests/test_triso/results_true.dat b/tests/test_triso/results_true.dat new file mode 100644 index 0000000000..8f968f65a0 --- /dev/null +++ b/tests/test_triso/results_true.dat @@ -0,0 +1,2 @@ +k-combined: +1.685303E+00 1.121936E-01 diff --git a/tests/test_triso/test_triso.py b/tests/test_triso/test_triso.py new file mode 100644 index 0000000000..f7f4daa7ba --- /dev/null +++ b/tests/test_triso/test_triso.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import random +from math import sqrt + +import numpy as np + +sys.path.insert(0, os.pardir) +from testing_harness import PyAPITestHarness +import openmc +import openmc.model + + +class TRISOTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Define TRISO matrials + fuel = openmc.Material() + fuel.set_density('g/cm3', 10.5) + fuel.add_nuclide('U-235', 0.14154) + fuel.add_nuclide('U-238', 0.85846) + fuel.add_nuclide('C-Nat', 0.5) + fuel.add_nuclide('O-16', 1.5) + + porous_carbon = openmc.Material() + porous_carbon.set_density('g/cm3', 1.0) + porous_carbon.add_nuclide('C-Nat', 1.0) + porous_carbon.add_s_alpha_beta('Graph', '71t') + + ipyc = openmc.Material() + ipyc.set_density('g/cm3', 1.90) + ipyc.add_nuclide('C-Nat', 1.0) + ipyc.add_s_alpha_beta('Graph', '71t') + + sic = openmc.Material() + sic.set_density('g/cm3', 3.20) + sic.add_element('Si', 1.0) + sic.add_nuclide('C-Nat', 1.0) + + opyc = openmc.Material() + opyc.set_density('g/cm3', 1.87) + opyc.add_nuclide('C-Nat', 1.0) + opyc.add_s_alpha_beta('Graph', '71t') + + graphite = openmc.Material() + graphite.set_density('g/cm3', 1.1995) + graphite.add_nuclide('C-Nat', 1.0) + graphite.add_s_alpha_beta('Graph', '71t') + + # Create TRISO particles + materials = [fuel, porous_carbon, ipyc, sic, opyc] + radii = np.array([212.5, 312.5, 347.5, 382.5, 422.5])*1e-4 + trisos = [] + random.seed(1) + for i in range(100): + # Randomly sample location + x = random.uniform(-0.5, 0.5) + y = random.uniform(-0.5, 0.5) + z = random.uniform(-0.5, 0.5) + t = openmc.model.TRISO(materials, radii, (x, y, z)) + + # Make sure TRISO doesn't overlap with another + for tp in trisos: + xp, yp, zp = tp.center + distance = sqrt((x - xp)**2 + (y - yp)**2 + (z - zp)**2) + if distance <= 2*radii[-1]: + break + else: + trisos.append(t) + + # Define box to contain lattice + min_x = openmc.XPlane(x0=-0.5, boundary_type='reflective') + max_x = openmc.XPlane(x0=0.5, boundary_type='reflective') + min_y = openmc.YPlane(y0=-0.5, boundary_type='reflective') + max_y = openmc.YPlane(y0=0.5, boundary_type='reflective') + min_z = openmc.ZPlane(z0=-0.5, boundary_type='reflective') + max_z = openmc.ZPlane(z0=0.5, boundary_type='reflective') + box = openmc.Cell(region=+min_x & -max_x & +min_y & -max_y & +min_z & -max_z) + + # Create lattice + ll, ur = box.region.bounding_box + shape = (3, 3, 3) + lattice = openmc.model.create_triso_lattice( + trisos, ll, (ur - ll)/shape, shape, graphite) + box.fill = lattice + + root = openmc.Universe(0, cells=[box]) + geom = openmc.Geometry(root) + geom.export_to_xml() + + settings = openmc.Settings() + settings.batches = 5 + settings.inactive = 0 + settings.particles = 50 + settings.source = openmc.Source(space=openmc.stats.Point()) + settings.export_to_xml() + + mats = openmc.Materials([fuel, porous_carbon, ipyc, sic, opyc, graphite]) + mats.default_xs = '71c' + mats.export_to_xml() + + +if __name__ == '__main__': + harness = TRISOTestHarness('statepoint.5.h5') + harness.main() From b4910473b2eb26db7a09a44b8299fa298db85a44 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 2 Jun 2016 16:36:10 -0500 Subject: [PATCH 052/417] Throw ImportError if user has h5py 2.6.0. --- openmc/particle_restart.py | 5 +++++ openmc/statepoint.py | 5 +++++ openmc/summary.py | 4 ++++ openmc/tallies.py | 4 ++++ 4 files changed, 18 insertions(+) diff --git a/openmc/particle_restart.py b/openmc/particle_restart.py index 72bf3ac3de..7a27db2f60 100644 --- a/openmc/particle_restart.py +++ b/openmc/particle_restart.py @@ -37,6 +37,11 @@ class Particle(object): def __init__(self, filename): import h5py + if h5py.__version__ == '2.6.0': + raise ImportError("h5py 2.6.0 has a known bug which makes it " + "incompatible with OpenMC's HDF5 files. " + "Please switch to a different version.") + self._f = h5py.File(filename, 'r') # Ensure filetype and revision are correct diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 14a48e7f6d..0baa631581 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -106,6 +106,11 @@ class StatePoint(object): def __init__(self, filename, autolink=True): import h5py + if h5py.__version__ == '2.6.0': + raise ImportError("h5py 2.6.0 has a known bug which makes it " + "incompatible with OpenMC's HDF5 files. " + "Please switch to a different version.") + self._f = h5py.File(filename, 'r') # Ensure filetype and revision are correct diff --git a/openmc/summary.py b/openmc/summary.py index 2af9b6be6f..d5259247fe 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -26,6 +26,10 @@ class Summary(object): # Python API so we'll only try to import h5py if the user actually inits # a Summary object. import h5py + if h5py.__version__ == '2.6.0': + raise ImportError("h5py 2.6.0 has a known bug which makes it " + "incompatible with OpenMC's HDF5 files. " + "Please switch to a different version.") openmc.reset_auto_ids() diff --git a/openmc/tallies.py b/openmc/tallies.py index 2313a61734..38aa0bf12c 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -314,6 +314,10 @@ class Tally(object): if not self._results_read: import h5py + if h5py.__version__ == '2.6.0': + raise ImportError("h5py 2.6.0 has a known bug which makes it " + "incompatible with OpenMC's HDF5 files. " + "Please switch to a different version.") # Open the HDF5 statepoint file f = h5py.File(self._sp_filename, 'r') From 96351c9b1cbc5b14cf6f671f240f367df48159fc Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 1 Jun 2016 15:40:35 -0500 Subject: [PATCH 053/417] Improve documentation of MGXS classes --- docs/source/_templates/myclassinherit.rst | 8 + docs/source/pythonapi/index.rst | 5 +- docs/source/usersguide/input.rst | 3 +- openmc/mgxs/mgxs.py | 505 +++++++++++++++++++--- 4 files changed, 455 insertions(+), 66 deletions(-) create mode 100644 docs/source/_templates/myclassinherit.rst diff --git a/docs/source/_templates/myclassinherit.rst b/docs/source/_templates/myclassinherit.rst new file mode 100644 index 0000000000..ed93a29669 --- /dev/null +++ b/docs/source/_templates/myclassinherit.rst @@ -0,0 +1,8 @@ +{{ fullname }} +{{ underline }} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: + :inherited-members: diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index bf35e75874..4b1d8cca70 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -271,14 +271,17 @@ Multi-group Cross Sections .. autosummary:: :toctree: generated :nosignatures: - :template: myclass.rst + :template: myclassinherit.rst openmc.mgxs.MGXS openmc.mgxs.AbsorptionXS openmc.mgxs.CaptureXS openmc.mgxs.Chi openmc.mgxs.FissionXS + openmc.mgxs.KappaFissionXS + openmc.mgxs.MultiplicityMatrixXS openmc.mgxs.NuFissionXS + openmc.mgxs.NuFissionMatrixXS openmc.mgxs.NuScatterXS openmc.mgxs.NuScatterMatrixXS openmc.mgxs.ScatterXS diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 5a902479ef..d7c8a239a2 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1598,7 +1598,8 @@ The ```` element accepts the following sub-elements: |Score | Description | +======================+===================================================+ |absorption |Total absorption rate. This accounts for all | - | |reactions which do not produce secondary neutrons. | + | |reactions which do not produce secondary neutrons | + | |as well as fission. | +----------------------+---------------------------------------------------+ |elastic |Elastic scattering reaction rate. | +----------------------+---------------------------------------------------+ diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e0974d4738..5104dc192a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -46,9 +46,9 @@ DOMAIN_TYPES = ['cell', # Supported domain classes # TODO: Implement Mesh domains -_DOMAINS = [openmc.Cell, +_DOMAINS = (openmc.Cell, openmc.Universe, - openmc.Material] + openmc.Material) class MGXS(object): @@ -364,7 +364,7 @@ class MGXS(object): @domain.setter def domain(self, domain): - cv.check_type('domain', domain, tuple(_DOMAINS)) + cv.check_type('domain', domain, _DOMAINS) self._domain = domain # Assign a domain type @@ -1934,11 +1934,30 @@ class MatrixMGXS(MGXS): class TotalXS(MGXS): - """A total multi-group cross section. + r"""A total multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group total cross sections for multi-group neutronics calculations. At + a minimum, one needs to set the :attr:`TotalXS.energy_groups` and + :attr:`TotalXS.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`TotalXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`TotalXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + total cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_t (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -1946,7 +1965,7 @@ class TotalXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -1981,7 +2000,9 @@ class TotalXS(MGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`TotalXS.tally_keys` property and values + are instances of :class:`openmc.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 @@ -2022,11 +2043,39 @@ class TotalXS(MGXS): class TransportXS(MGXS): - """A transport-corrected total multi-group cross section. + r"""A transport-corrected total multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`TransportXS.energy_groups` and + :attr:`TransportXS.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`TransportXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`TransportXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + transport-corrected total cross section is calculated as: + + .. math:: + + \langle \sigma_t \phi \rangle &= \int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \sigma_t (r, E) \psi + (r, E, \Omega) \\ + \langle \sigma_{s1} \phi \rangle &= \int_{r \in D} dr + \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_{-1}^1 d\mu \; \mu \sigma_s + (r, E' \rightarrow E, \Omega' \cdot \Omega) + \phi (r, E', \Omega) \\ + \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ + \sigma_{tr} &= \frac{\langle \sigma_t \phi \rangle - \langle \sigma_{s1} + \phi \rangle}{\langle \phi \rangle} Parameters ---------- @@ -2034,7 +2083,7 @@ class TransportXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2069,7 +2118,9 @@ class TransportXS(MGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`TransportXS.tally_keys` property and + values are instances of :class:`openmc.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 @@ -2135,12 +2186,26 @@ class TransportXS(MGXS): class NuTransportXS(TransportXS): - """A transport-corrected total multi-group cross section which + r"""A transport-corrected total multi-group cross section which accounts for neutron multiplicity in scattering reactions. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`NuTransportXS.energy_groups` and + :attr:`NuTransportXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`NuTransportXS.tallies` property, which can then + be appended to a :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`NuTransportXS.xs_tally` property. + + The calculation of the transport-corrected cross section is the same as that + for :class:`TransportXS` except that the scattering multiplicity is + accounted for. Parameters ---------- @@ -2148,7 +2213,7 @@ class NuTransportXS(TransportXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2183,7 +2248,9 @@ class NuTransportXS(TransportXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuTransportXS.tally_keys` property and + values are instances of :class:`openmc.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 @@ -2232,11 +2299,34 @@ class NuTransportXS(TransportXS): class AbsorptionXS(MGXS): - """An absorption multi-group cross section. + r"""An absorption multi-group cross section. + + Absorption is defined as all reactions that do not produce secondary + neutrons (disappearance) plus fission reactions. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group absorption cross sections for multi-group neutronics + calculations. At a minimum, one needs to set the + :attr:`AbsorptionXS.energy_groups` and :attr:`AbsorptionXS.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`AbsorptionXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`AbsorptionXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + absorption cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_a (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -2244,7 +2334,7 @@ class AbsorptionXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2279,7 +2369,9 @@ class AbsorptionXS(MGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`AbsorptionXS.tally_keys` property and + values are instances of :class:`openmc.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 @@ -2320,16 +2412,37 @@ class AbsorptionXS(MGXS): class CaptureXS(MGXS): - """A capture multi-group cross section. + r"""A capture multi-group cross section. The neutron capture reaction rate is defined as the difference between OpenMC's 'absorption' and 'fission' reaction rate score types. This includes not only radiative capture, but all forms of neutron disappearance aside - from fission (e.g., MT > 100). + from fission (i.e., MT > 100). This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group capture cross sections for multi-group neutronics + calculations. At a minimum, one needs to set the + :attr:`CaptureXS.energy_groups` and :attr:`CaptureXS.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`CaptureXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`CaptureXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + capture cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \left [ \sigma_a (r, E) \psi (r, E, \Omega) - \sigma_f (r, E) \psi (r, E, + \Omega) \right ]}{\int_{r \in D} dr \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -2337,7 +2450,7 @@ class CaptureXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2372,7 +2485,9 @@ class CaptureXS(MGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`CaptureXS.tally_keys` property and + values are instances of :class:`openmc.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 @@ -2425,11 +2540,31 @@ class CaptureXS(MGXS): class FissionXS(MGXS): - """A fission multi-group cross section. + r"""A fission multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group fission cross sections for multi-group neutronics + calculations. At a minimum, one needs to set the + :attr:`FissionXS.energy_groups` and :attr:`FissionXS.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`FissionXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`FissionXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + fission cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -2437,7 +2572,7 @@ class FissionXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2472,7 +2607,9 @@ class FissionXS(MGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`FissionXS.tally_keys` property and + values are instances of :class:`openmc.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 @@ -2513,11 +2650,32 @@ class FissionXS(MGXS): class NuFissionXS(MGXS): - """A fission production multi-group cross section. + r"""A fission neutron production multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group fission neutron production cross sections for multi-group + neutronics calculations. At a minimum, one needs to set the + :attr:`NuFissionXS.energy_groups` and :attr:`NuFissionXS.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`NuFissionXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`NuFissionXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + fission neutron production cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \nu\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. + Parameters ---------- @@ -2525,7 +2683,7 @@ class NuFissionXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2560,7 +2718,9 @@ class NuFissionXS(MGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuFissionXS.tally_keys` property and + values are instances of :class:`openmc.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 @@ -2601,11 +2761,37 @@ class NuFissionXS(MGXS): class KappaFissionXS(MGXS): - """A recoverable fission energy production rate multi-group cross section. + r"""A recoverable fission energy production rate multi-group cross section. + + The recoverable energy per fission, :math:`\kappa`, is defined as the + fission product kinetic energy, prompt and delayed neutron kinetic energies, + prompt and delayed :math:`\gamma`-ray total energies, and the total energy + released by the delayed :math:`\beta` particles. The neutrino energy does + not contribute to this response. The prompt and delayed :math:`\gamma`-rays + are assumed to deposit their energy locally. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`KappaFissionXS.energy_groups` and + :attr:`KappaFissionXS.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`KappaFissionXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`KappaFissionXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + recoverable fission energy production rate cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \kappa\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -2613,7 +2799,7 @@ class KappaFissionXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2648,7 +2834,9 @@ class KappaFissionXS(MGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`KappaFissionXS.tally_keys` property and + values are instances of :class:`openmc.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 @@ -2689,11 +2877,34 @@ class KappaFissionXS(MGXS): class ScatterXS(MGXS): - """A scatter multi-group cross section. + r"""A scattering multi-group cross section. + + The scattering cross section is defined as the difference between the total + and absorption cross sections. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`ScatterXS.energy_groups` and + :attr:`ScatterXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`ScatterXS.tallies` property, which can + then be appended to a :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`ScatterXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + scattering cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \left [ \sigma_t (r, E) \psi (r, E, \Omega) - \sigma_a (r, E) \psi (r, E, + \Omega) \right ]}{\int_{r \in D} dr \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -2701,7 +2912,7 @@ class ScatterXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2736,7 +2947,9 @@ class ScatterXS(MGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`ScatterXS.tally_keys` property and + values are instances of :class:`openmc.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 @@ -2777,11 +2990,35 @@ class ScatterXS(MGXS): class NuScatterXS(MGXS): - """A nu-scatter multi-group cross section. + r"""A scattering neutron production multi-group cross section. + + The neutron production from scattering is defined as the average number of + neutrons produced from all neutron-producing reactions except for fission. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`NuScatterXS.energy_groups` and + :attr:`NuScatterXS.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`NuScatterXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`NuScatterXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + scattering neutron production cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sum_i \upsilon_i \sigma_i (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr + \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. + + where :math:`\upsilon_i` is the multiplicity of the :math:`i`-th reaction. Parameters ---------- @@ -2789,7 +3026,7 @@ class NuScatterXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2824,7 +3061,9 @@ class NuScatterXS(MGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuScatterXS.tally_keys` property and + values are instances of :class:`openmc.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 @@ -2869,12 +3108,47 @@ class NuScatterXS(MGXS): class ScatterMatrixXS(MatrixMGXS): - """A scattering matrix multi-group cross section for one or more Legendre + r"""A scattering matrix multi-group cross section for one or more Legendre moments. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`ScatterMatrixXS.energy_groups` and + :attr:`ScatterMatrixXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`ScatterMatrixXS.tallies` property, which can + then be appended to a :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`ScatterMatrixXS.xs_tally` property. + + For a spatial domain :math:`D`, incoming energy group + :math:`[E_{g'},E_{g'-1}]`, and outgoing energy group :math:`[E_g,E_{g-1}]`, + the scattering moments are calculated as: + + .. math:: + + \langle \sigma_{s,\ell,g'\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \int_{4\pi} d\Omega' \int_{E_{g'}}^{E_{g'-1}} dE' \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; P_\ell (\Omega \cdot \Omega') \sigma_s (r, E' + \rightarrow E, \Omega' \cdot \Omega) \psi(r, E', \Omega')\\ + \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ + \sigma_{s,\ell,g'\rightarrow g} &= \frac{\langle + \sigma_{s,\ell,g'\rightarrow g} \phi \rangle}{\langle \phi \rangle} + + If the order is zero and a :math:`P_0` transport-correction is applied + (default), the scattering matrix elements are: + + .. math:: + + \sigma_{s,g'\rightarrow g} = \frac{\langle \sigma_{s,0,g'\rightarrow g} + \phi \rangle - \delta_{gg'} \sum_{g''} \langle \sigma_{s,1,g''\rightarrow + g} \phi \rangle}{\langle \phi \rangle} + Parameters ---------- @@ -2882,7 +3156,7 @@ class ScatterMatrixXS(MatrixMGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2895,7 +3169,7 @@ class ScatterMatrixXS(MatrixMGXS): correction : 'P0' or None Apply the P0 correction to scattering matrices if set to 'P0' legendre_order : int - The highest legendre moment in the scattering matrix (default is 0) + The highest Legendre moment in the scattering matrix (default is 0) name : str, optional Name of the multi-group cross section rxn_type : str @@ -2921,7 +3195,9 @@ class ScatterMatrixXS(MatrixMGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`ScatterMatrixXS.tally_keys` property + and values are instances of :class:`openmc.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 @@ -3507,7 +3783,21 @@ class NuScatterMatrixXS(ScatterMatrixXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`NuScatterMatrixXS.energy_groups` and + :attr:`NuScatterMatrixXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`NuScatterMatrixXS.tallies` property, which can + then be appended to a :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`NuScatterMatrixXS.xs_tally` property. + + The calculation of the scattering-production matrix is the same as that for + :class:`ScatterMatrixXS` except that the scattering multiplicity is + accounted for. Parameters ---------- @@ -3515,7 +3805,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -3554,7 +3844,9 @@ class NuScatterMatrixXS(ScatterMatrixXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuScatterMatrixXS.tally_keys` property + and values are instances of :class:`openmc.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 @@ -3596,11 +3888,42 @@ class NuScatterMatrixXS(ScatterMatrixXS): class MultiplicityMatrixXS(MatrixMGXS): - """The scattering multiplicity matrix. + r"""The scattering multiplicity matrix. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`MultiplicityMatrixXS.energy_groups` and + :attr:`MultiplicityMatrixXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`MultiplicityMatrixXS.tallies` property, which + can then be appended to a :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`MultiplicityMatrixXS.xs_tally` + property. + + For a spatial domain :math:`D`, incoming energy group + :math:`[E_{g'},E_{g'-1}]`, and outgoing energy group :math:`[E_g,E_{g-1}]`, + the multiplicity is calculated as: + + .. math:: + + \langle \upsilon \sigma_{s,g'\rightarrow g} \phi \rangle &= \int_{r \in + D} dr \int_{4\pi} d\Omega' \int_{E_{g'}}^{E_{g'-1}} dE' \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \sum_i \upsilon_i \sigma_i (r, E' \rightarrow + E, \Omega' \cdot \Omega) \psi(r, E', \Omega') \\ + \langle \sigma_{s,g'\rightarrow g} \phi \rangle &= \int_{r \in + D} dr \int_{4\pi} d\Omega' \int_{E_{g'}}^{E_{g'-1}} dE' \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \sum_i \upsilon_i \sigma_i (r, E' \rightarrow + E, \Omega' \cdot \Omega) \psi(r, E', \Omega') \\ + \upsilon_{g'\rightarrow g} &= \frac{\langle \upsilon + \sigma_{s,g'\rightarrow g} \rangle}{\langle \sigma_{s,g'\rightarrow g} + \rangle} + + where :math:`\upsilon_i` is the multiplicity for the :math:`i`-th reaction. Parameters ---------- @@ -3608,7 +3931,7 @@ class MultiplicityMatrixXS(MatrixMGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -3643,7 +3966,9 @@ class MultiplicityMatrixXS(MatrixMGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`MultiplicityMatrixXS.tally_keys` + property and values are instances of :class:`openmc.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 @@ -3717,11 +4042,35 @@ class MultiplicityMatrixXS(MatrixMGXS): class NuFissionMatrixXS(MatrixMGXS): - """A fission production matrix multi-group cross section. + r"""A fission production matrix multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`NuFissionMatrixXS.energy_groups` and + :attr:`NuFissionMatrixXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`NuFissionMatrixXS.tallies` property, which can + then be appended to a :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`NuFissionMatrixXS.xs_tally` property. + + For a spatial domain :math:`D`, incoming energy group + :math:`[E_{g'},E_{g'-1}]`, and outgoing energy group :math:`[E_g,E_{g-1}]`, + the fission production is calculated as: + + .. math:: + + \langle \nu\sigma_{f,g'\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \int_{4\pi} d\Omega' \int_{E_{g'}}^{E_{g'-1}} dE' \int_{E_g}^{E_{g-1}} dE + \; \chi(E) \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ + \nu\sigma_{f,g'\rightarrow g} &= \frac{\langle \nu\sigma_{f,g'\rightarrow + g} \phi \rangle}{\langle \phi \rangle} Parameters ---------- @@ -3729,7 +4078,7 @@ class NuFissionMatrixXS(MatrixMGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -3764,7 +4113,9 @@ class NuFissionMatrixXS(MatrixMGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuFissionMatrixXS.tally_keys` + property and values are instances of :class:`openmc.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 @@ -3806,11 +4157,35 @@ class NuFissionMatrixXS(MatrixMGXS): class Chi(MGXS): - """The fission spectrum. + r"""The fission spectrum. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`Chi.energy_groups` and + :attr:`Chi.domain` properties. Tallies for the flux and appropriate reaction + rates over the specified domain are generated automatically via the + :attr:`Chi.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`Chi.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + fission spectrum is calculated as: + + .. math:: + + \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) + \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \nu\sigma_f \phi \rangle &= \int_{r \in D} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, + E') \psi(r, E', \Omega') \\ + \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle + \nu\sigma_f \phi \rangle} Parameters ---------- @@ -3818,7 +4193,7 @@ class Chi(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -3853,7 +4228,9 @@ class Chi(MGXS): estimator : {'tracklength', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`Chi.tally_keys` property and values are + instances of :class:`openmc.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 From 87c61fd81d6290d7e1573d7d3abd356640e1d6fd Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 3 Jun 2016 19:26:47 -0500 Subject: [PATCH 054/417] Change D to V as symbol for domain --- openmc/mgxs/mgxs.py | 79 +++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 5104dc192a..088db649fa 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1950,13 +1950,13 @@ class TotalXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`TotalXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the total cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \sigma_t (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_t (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -2059,20 +2059,20 @@ class TransportXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`TransportXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the transport-corrected total cross section is calculated as: .. math:: - \langle \sigma_t \phi \rangle &= \int_{r \in D} dr \int_{4\pi} + \langle \sigma_t \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \sigma_t (r, E) \psi (r, E, \Omega) \\ - \langle \sigma_{s1} \phi \rangle &= \int_{r \in D} dr + \langle \sigma_{s1} \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{-1}^1 d\mu \; \mu \sigma_s (r, E' \rightarrow E, \Omega' \cdot \Omega) \phi (r, E', \Omega) \\ - \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \langle \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ \sigma_{tr} &= \frac{\langle \sigma_t \phi \rangle - \langle \sigma_{s1} \phi \rangle}{\langle \phi \rangle} @@ -2319,13 +2319,13 @@ class AbsorptionXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`AbsorptionXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the absorption cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \sigma_a (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_a (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -2434,14 +2434,14 @@ class CaptureXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`CaptureXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the capture cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \left [ \sigma_a (r, E) \psi (r, E, \Omega) - \sigma_f (r, E) \psi (r, E, - \Omega) \right ]}{\int_{r \in D} dr \int_{4\pi} d\Omega + \Omega) \right ]}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -2557,13 +2557,13 @@ class FissionXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`FissionXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the fission cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -2667,13 +2667,13 @@ class NuFissionXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`NuFissionXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the fission neutron production cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \nu\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \nu\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. @@ -2784,13 +2784,13 @@ class KappaFissionXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`KappaFissionXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the recoverable fission energy production rate cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \kappa\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \kappa\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -2896,14 +2896,14 @@ class ScatterXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`ScatterXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the scattering cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \left [ \sigma_t (r, E) \psi (r, E, \Omega) - \sigma_a (r, E) \psi (r, E, - \Omega) \right ]}{\int_{r \in D} dr \int_{4\pi} d\Omega + \Omega) \right ]}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -3009,16 +3009,17 @@ class NuScatterXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`NuScatterXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the scattering neutron production cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \sum_i \upsilon_i \sigma_i (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sum_i \upsilon_i \sigma_i (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. - where :math:`\upsilon_i` is the multiplicity of the :math:`i`-th reaction. + where :math:`\upsilon_i` is the multiplicity of the :math:`i`-th scattering + reaction. Parameters ---------- @@ -3125,17 +3126,17 @@ class ScatterMatrixXS(MatrixMGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`ScatterMatrixXS.xs_tally` property. - For a spatial domain :math:`D`, incoming energy group + For a spatial domain :math:`V`, incoming energy group :math:`[E_{g'},E_{g'-1}]`, and outgoing energy group :math:`[E_g,E_{g-1}]`, the scattering moments are calculated as: .. math:: - \langle \sigma_{s,\ell,g'\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \langle \sigma_{s,\ell,g'\rightarrow g} \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_{E_{g'}}^{E_{g'-1}} dE' \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; P_\ell (\Omega \cdot \Omega') \sigma_s (r, E' \rightarrow E, \Omega' \cdot \Omega) \psi(r, E', \Omega')\\ - \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \langle \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ \sigma_{s,\ell,g'\rightarrow g} &= \frac{\langle \sigma_{s,\ell,g'\rightarrow g} \phi \rangle}{\langle \phi \rangle} @@ -3905,7 +3906,7 @@ class MultiplicityMatrixXS(MatrixMGXS): can then be obtained from the :attr:`MultiplicityMatrixXS.xs_tally` property. - For a spatial domain :math:`D`, incoming energy group + For a spatial domain :math:`V`, incoming energy group :math:`[E_{g'},E_{g'-1}]`, and outgoing energy group :math:`[E_g,E_{g-1}]`, the multiplicity is calculated as: @@ -4058,16 +4059,16 @@ class NuFissionMatrixXS(MatrixMGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`NuFissionMatrixXS.xs_tally` property. - For a spatial domain :math:`D`, incoming energy group + For a spatial domain :math:`V`, incoming energy group :math:`[E_{g'},E_{g'-1}]`, and outgoing energy group :math:`[E_g,E_{g-1}]`, the fission production is calculated as: .. math:: - \langle \nu\sigma_{f,g'\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \langle \nu\sigma_{f,g'\rightarrow g} \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_{E_{g'}}^{E_{g'-1}} dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ - \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \langle \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ \nu\sigma_{f,g'\rightarrow g} &= \frac{\langle \nu\sigma_{f,g'\rightarrow g} \phi \rangle}{\langle \phi \rangle} @@ -4173,15 +4174,15 @@ class Chi(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`Chi.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the fission spectrum is calculated as: .. math:: - \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ - \langle \nu\sigma_f \phi \rangle &= \int_{r \in D} dr \int_{4\pi} + \langle \nu\sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, E') \psi(r, E', \Omega') \\ \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle From 97c2e3732d50b8af1a00333108bac473982236fe Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 4 Jun 2016 12:36:23 -0400 Subject: [PATCH 055/417] Whoops - tabular_legendres default value is False (leave as Legendre) as opposed to True (convert to Table) --- docs/source/usersguide/mgxs_library.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index 98a9e84859..11ccae43df 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -172,7 +172,7 @@ attributes/sub-elements required to describe the meta-data: during the scattering process. Specifically, the options are to either convert the Legendre expansion to a tabular representation or leave it as a set of Legendre coefficients. Converting to a tabular representation will - cost memory but is likely to decrease runtime compared to leaving as a + cost memory but can allow for a decrease in runtime compared to leaving as a set of Legendre coefficients. This element has the following attributes/sub-elements: @@ -181,7 +181,7 @@ attributes/sub-elements required to describe the meta-data: 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*: "false" :num_points: If the conversion is to take place the number of tabular points is From f747bb4fbd253ba06c3d8527ee8aaff56d9ceade Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 5 Jun 2016 15:09:32 -0400 Subject: [PATCH 056/417] Exposed tabular_legendre to the openmc.Library interface to the MGXS Data library. Also ever-so slightly sped up the tabular scattering runtime --- openmc/mgxs/library.py | 68 ++++++++++++++++++++++++++++++++++++---- openmc/mgxs_library.py | 2 +- src/scattdata_header.F90 | 21 +++++++------ 3 files changed, 75 insertions(+), 16 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 62dde28ab2..76bdd885a3 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -753,7 +753,8 @@ class Library(object): return pickle.load(open(full_filename, 'rb')) def get_xsdata(self, domain, xsdata_name, nuclide='total', xs_type='macro', - xs_id='1m', order=None): + xs_id='1m', order=None, tabular_legendre=None, + tabular_points=33): """Generates an openmc.XSdata object describing a multi-group cross section data set for eventual combination in to an openmc.MGXSLibrary object (i.e., the library). @@ -773,9 +774,23 @@ class Library(object): nuclide this will be set to 'macro' regardless. xs_ids : str Cross section set identifier. Defaults to '1m'. - order : Scattering order for this data entry. Default is None, + order : int + Scattering order for this data entry. Default is None, which will set the XSdata object to use the order of the Library. + tabular_legendre : {None, bool} + Flag to denote whether or not the Legendre expansion of the + scattering angular distribution is to be converted to a tabular + representation by OpenMC. A value of `True` means that it is to be + converted while a value of 'False' means that it will not be. + Defaults to `None` which leaves the default behavior of OpenMC in + place (the distribution is not converted to a tabular + representation). + tabular_points : {int} + This parameter is not used unless the `tabular_legendre` is set to + `True`. In this case, this parameter sets the number of + equally-spaced points in the domain of [-1,1] to be used in + building the tabular distribution. Default is `33`. Returns ------- @@ -804,6 +819,10 @@ class Library(object): if order is not None: cv.check_greater_than('order', order, 0, equality=True) cv.check_less_than('order', order, 10, equality=True) + cv.check_type('tabular_legendre', tabular_legendre, + (type(None), bool)) + if tabular_points is not None: + cv.check_greater_than('tabular_points', tabular_points, 1) # Make sure statepoint has been loaded if self._sp_filename is None: @@ -830,6 +849,11 @@ class Library(object): # the provided order or the Library's order. xsdata.order = min(order, self.legendre_order) + # Set the tabular_legendre option if needed + if tabular_legendre is not None: + xsdata.tabular_legendre = {'enable': tabular_legendre, + 'num_points': tabular_points} + if nuclide is not 'total': xsdata.zaid = self._nuclides[nuclide][0] xsdata.awr = self._nuclides[nuclide][1] @@ -906,7 +930,8 @@ class Library(object): return xsdata def create_mg_library(self, xs_type='macro', xsdata_names=None, - xs_ids=None): + xs_ids=None, tabular_legendre=None, + tabular_points=33): """Creates an openmc.MGXSLibrary object to contain the MGXS data for the Multi-Group mode of OpenMC. @@ -923,6 +948,19 @@ class Library(object): Cross section set identifier (i.e., '71c') for all data sets (if only str) or for each individual one (if iterable of str). Defaults to '1m'. + tabular_legendre : {None, bool} + Flag to denote whether or not the Legendre expansion of the + scattering angular distribution is to be converted to a tabular + representation by OpenMC. A value of `True` means that it is to be + converted while a value of 'False' means that it will not be. + Defaults to `None` which leaves the default behavior of OpenMC in + place (the distribution is not converted to a tabular + representation). + tabular_points : {int} + This parameter is not used unless the `tabular_legendre` is set to + `True`. In this case, this parameter sets the number of + equally-spaced points in the domain of [-1,1] to be used in + building the tabular distribution. Default is `33`. Returns ------- @@ -983,13 +1021,16 @@ class Library(object): xsdata_name += '_' + nuclide xsdata = self.get_xsdata(domain, xsdata_name, nuclide=nuclide, - xs_type=xs_type, xs_id=xs_ids[i]) + xs_type=xs_type, xs_id=xs_ids[i], + tabular_legendre=tabular_legendre, + tabular_points=tabular_points) mgxs_file.add_xsdata(xsdata) return mgxs_file - def create_mg_mode(self, xsdata_names=None, xs_ids=None): + def create_mg_mode(self, xsdata_names=None, xs_ids=None, + tabular_legendre=None, tabular_points=33): """Creates an openmc.MGXSLibrary object to contain the MGXS data for the Multi-Group mode of OpenMC as well as the associated openmc.Materials and openmc.Geometry objects. The created Geometry is the same as that @@ -1007,6 +1048,19 @@ class Library(object): Cross section set identifier (i.e., '71c') for all data sets (if only str) or for each individual one (if iterable of str). Defaults to '1m'. + tabular_legendre : {None, bool} + Flag to denote whether or not the Legendre expansion of the + scattering angular distribution is to be converted to a tabular + representation by OpenMC. A value of `True` means that it is to be + converted while a value of 'False' means that it will not be. + Defaults to `None` which leaves the default behavior of OpenMC in + place (the distribution is not converted to a tabular + representation). + tabular_points : {int} + This parameter is not used unless the `tabular_legendre` is set to + `True`. In this case, this parameter sets the number of + equally-spaced points in the domain of [-1,1] to be used in + building the tabular distribution. Default is `33`. Returns ------- @@ -1071,7 +1125,9 @@ class Library(object): # Create XSdata and Macroscopic for this domain xsdata = self.get_xsdata(domain, xsdata_name, nuclide='total', - xs_type=xs_type, xs_id=xs_ids[i]) + xs_type=xs_type, xs_id=xs_ids[i], + tabular_legendre=tabular_legendre, + tabular_points=tabular_points) mgxs_file.add_xsdata(xsdata) macroscopic = openmc.Macroscopic(name=xsdata_name, xs=xs_ids[i]) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 35b48d8730..f34f3b71ce 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -445,7 +445,7 @@ class XSdata(object): raise ValueError(msg) if 'num_points' in tabular_legendre: num_points = tabular_legendre['num_points'] - check_value('num_points', num_points, Integral) + check_type('num_points', num_points, Integral) check_greater_than('num_points', num_points, 0) else: if not enable: diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 12c11e2e4e..06e052eec0 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -329,7 +329,7 @@ contains real(8), intent(in) :: coeffs(:, :, :) ! Coefficients to use integer :: imu, gin, gout, groups, order - real(8) :: norm + real(8) :: norm, m, mu0, mu1, p0 real(8), allocatable :: energy(:, :) real(8), allocatable :: matrix(:, :, :) @@ -410,13 +410,17 @@ contains this % fmu(gin) % data(:, gout) / norm end if - ! Now create CDF from fmu with trapezoidal rule + ! Now create CDF from fmu with the analytical integral this % dist(gin) % data(1, gout) = ZERO do imu = 2, order - this % dist(gin) % data(imu, gout) = & - this % dist(gin) % data(imu - 1, gout) + & - HALF * this % dmu * (this % fmu(gin) % data(imu - 1, gout) + & - this % fmu(gin) % data(imu, gout)) + p0 = this % fmu(gin) % data(imu - 1, gout) + mu0 = this % mu(imu - 1) + mu1 = this % mu(imu) + m = (this % fmu(gin) % data(imu, gout) - p0) / (mu1 - mu0) + this % dist(gin) % data(imu, gout) = HALF * m * mu1 * mu1 + & + (p0 - m * mu0) * mu1 + & + (HALF * m * mu0 * mu0 - p0 * mu0) + end do ! Ensure we normalize to 1 still norm = this % dist(gin) % data(order, gout) @@ -628,11 +632,10 @@ contains p1 = this % fmu(gin) % data(k + 1, gout) mu1 = this % mu(k + 1) - frac = (p1 - p0) / (mu1 - mu0) - - if (frac == ZERO) then + if (p0 == p1) then mu = mu0 + (xi - c_k) / p0 else + frac = (p1 - p0) / (mu1 - mu0) mu = mu0 + & (sqrt(max(ZERO, p0 * p0 + TWO * frac * (xi - c_k))) - p0) / frac end if From 395cfb092da21d8624e2a83431ff1ec6b7c3ee71 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sun, 5 Jun 2016 16:33:12 -0500 Subject: [PATCH 057/417] Remove _isinstance and optimize check_type for ndarrays --- openmc/checkvalue.py | 41 ++++++++++---------------------------- openmc/filter.py | 4 ++-- openmc/mgxs/library.py | 2 +- openmc/stats/univariate.py | 4 ++-- 4 files changed, 16 insertions(+), 35 deletions(-) diff --git a/openmc/checkvalue.py b/openmc/checkvalue.py index 62b843a3a0..cc0e1190df 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -4,33 +4,6 @@ from numbers import Integral, Real import numpy as np -def _isinstance(value, expected_type): - """A Numpy-aware replacement for isinstance - - This function will be obsolete when Numpy v. >= 1.9 is established. - """ - - # Declare numpy numeric types. - np_ints = (np.int_, np.intc, np.intp, np.int8, np.int16, np.int32, np.int64, - np.uint8, np.uint16, np.uint32, np.uint64) - np_floats = (np.float_, np.float16, np.float32, np.float64) - - # Include numpy integers, if necessary. - if type(expected_type) is tuple: - if Integral in expected_type: - expected_type = expected_type + np_ints - elif expected_type is Integral: - expected_type = (Integral, ) + np_ints - - # Include numpy floats, if necessary. - if type(expected_type) is tuple: - if Real in expected_type: - expected_type = expected_type + np_floats - elif expected_type is Real: - expected_type = (Real, ) + np_floats - - # Now, make the instance check. - return isinstance(value, expected_type) def check_type(name, value, expected_type, expected_iter_type=None): """Ensure that an object is of an expected type. Optionally, if the object is @@ -50,7 +23,7 @@ def check_type(name, value, expected_type, expected_iter_type=None): """ - if not _isinstance(value, expected_type): + if not isinstance(value, expected_type): 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( @@ -61,8 +34,16 @@ def check_type(name, value, expected_type, expected_iter_type=None): raise TypeError(msg) if expected_iter_type: + if isinstance(value, np.ndarray): + if not issubclass(value.dtype.type, 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__) + else: + return + for item in value: - if not _isinstance(item, expected_iter_type): + if not isinstance(item, expected_iter_type): 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( @@ -118,7 +99,7 @@ def check_iterable_type(name, value, expected_type, min_depth=1, max_depth=1): # If this item is of the expected type, then we've reached the bottom # level of this branch. - if _isinstance(current_item, expected_type): + if isinstance(current_item, expected_type): # Is this deep enough? if len(tree) < min_depth: msg = 'Error setting "{0}": The item at {1} does not meet the '\ diff --git a/openmc/filter.py b/openmc/filter.py index 52560a193a..b34400cbb4 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -196,7 +196,7 @@ class Filter(object): elif self.type in ['energy', 'energyout']: for edge in bins: - if not cv._isinstance(edge, Real): + if not isinstance(edge, Real): msg = 'Unable to add bin edge "{0}" to a "{1}" Filter ' \ 'since it is a non-integer or floating point ' \ 'value'.format(edge, self.type) @@ -220,7 +220,7 @@ class Filter(object): msg = 'Unable to add bins "{0}" to a mesh Filter since ' \ 'only a single mesh can be used per tally'.format(bins) raise ValueError(msg) - elif not cv._isinstance(bins[0], Integral): + elif not isinstance(bins[0], Integral): msg = 'Unable to add bin "{0}" to mesh Filter since it ' \ 'is a non-integer'.format(bins[0]) raise ValueError(msg) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 62dde28ab2..e0e14b862e 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -484,7 +484,7 @@ class Library(object): cv.check_type('domain', domain, (openmc.Universe, Integral)) # Check that requested domain is included in library - if cv._isinstance(domain, Integral): + if isinstance(domain, Integral): domain_id = domain for domain in self.domains: if domain_id == domain.id: diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 0deeb600c4..af9b9b3013 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -66,14 +66,14 @@ class Discrete(Univariate): @x.setter def x(self, x): - if cv._isinstance(x, Real): + if isinstance(x, Real): x = [x] cv.check_type('discrete values', x, Iterable, Real) self._x = x @p.setter def p(self, p): - if cv._isinstance(p, Real): + if isinstance(p, Real): p = [p] cv.check_type('discrete probabilities', p, Iterable, Real) for pk in p: From 80ecd2406ba6a2c6cef901e9a1c8a5db69b7456f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 6 Jun 2016 05:19:56 -0400 Subject: [PATCH 058/417] Repeated the more analytic integration in the conversion of Legendre to Tabular data --- src/mgxs_header.F90 | 14 +++++++++++++- src/scattdata_header.F90 | 1 - src/tally.F90 | 2 -- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 750a8df983..fd909ca002 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -277,7 +277,7 @@ module mgxs_header real(8), allocatable :: scatt_coeffs(:, :, :) real(8), allocatable :: input_scatt(:, :, :) real(8), allocatable :: temp_scatt(:, :, :) - real(8) :: dmu, mu, norm + real(8) :: dmu, mu, norm, p0, m, mu0 integer :: order, order_dim, gin, gout, l, arr_len integer :: legendre_mu_points, imu @@ -496,6 +496,18 @@ module mgxs_header (scatt_coeffs(imu - 1, gout, gin) + & scatt_coeffs(imu, gout, gin)) end if + ! Now create CDF from fmu with the analytical integral of a + ! piecewise linear function + if (imu > 1) then + p0 = scatt_coeffs(imu - 1, gout, gin) + mu0 = mu - dmu + m = (scatt_coeffs(imu, gout, gin) - & + scatt_coeffs(imu - 1, gout, gin)) / dmu + norm = norm + & + HALF * m * mu * mu + & + (p0 - m * mu0) * mu + & + (HALF * m * mu0 * mu0 - p0 * mu0) + end if end do ! Now that we have the integral, lets ensure that the distribution ! is normalized such that it preserves the original scattering xs diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 06e052eec0..6fca891906 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -420,7 +420,6 @@ contains this % dist(gin) % data(imu, gout) = HALF * m * mu1 * mu1 + & (p0 - m * mu0) * mu1 + & (HALF * m * mu0 * mu0 - p0 * mu0) - end do ! Ensure we normalize to 1 still norm = this % dist(gin) % data(order, gout) diff --git a/src/tally.F90 b/src/tally.F90 index 0c41b6f987..b40a39ce0c 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -107,8 +107,6 @@ contains real(8) :: atom_density_ ! atom/b-cm real(8) :: f ! interpolation factor real(8) :: score ! analog tally score - real(8) :: macro_total ! material macro total xs - real(8) :: macro_scatt ! material macro scatt xs real(8) :: E ! particle energy i = 0 From e7a9a1e23617d593c504feba7ea8cf6c7b5a323e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 7 Jun 2016 09:17:21 -0500 Subject: [PATCH 059/417] When expanding natural elements, make sure order is consistent --- openmc/element.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/element.py b/openmc/element.py index c391d08235..14c98d4952 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -126,7 +126,7 @@ class Element(object): """ isotopes = [] - for isotope, abundance in natural_abundance.items(): + for isotope, abundance in sorted(natural_abundance.items()): if isotope.startswith(self.name + '-'): nuc = openmc.Nuclide(isotope, self.xs) isotopes.append((nuc, abundance)) From 826d5a43d85eaec1b6c7b4ce22e1a8f5e9336a4f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 7 Jun 2016 20:04:13 -0400 Subject: [PATCH 060/417] Switched tabular_legendre to have a default of true --- .../pythonapi/examples/mgxs-part-iv.ipynb | 180 +-- docs/source/usersguide/mgxs_library.rst | 6 +- openmc/mgxs/library.py | 9 +- src/mgxs_header.F90 | 10 +- 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 ++++++++--------- .../results_true.dat | 2 +- 9 files changed, 758 insertions(+), 761 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index b845636e21..5459c3dfe4 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -432,7 +432,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -722,8 +722,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: d20322f22d4850bd640b4accf34e2551550d17fb\n", - " Date/Time: 2016-05-30 14:20:53\n", + " Git SHA1: b41ec2178cc78c6c5968b47ebf09d926cdc44d00\n", + " Date/Time: 2016-06-07 19:46:24\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -810,20 +810,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4260E+00 seconds\n", - " Reading cross sections = 1.1340E+00 seconds\n", - " Total time in simulation = 1.6739E+01 seconds\n", - " Time in transport only = 1.6650E+01 seconds\n", - " Time in inactive batches = 2.1540E+00 seconds\n", - " Time in active batches = 1.4585E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-02 seconds\n", - " Sampling source sites = 9.0000E-03 seconds\n", + " Total time for initialization = 1.4790E+00 seconds\n", + " Reading cross sections = 1.1810E+00 seconds\n", + " Total time in simulation = 1.7439E+01 seconds\n", + " Time in transport only = 1.7334E+01 seconds\n", + " Time in inactive batches = 2.1960E+00 seconds\n", + " Time in active batches = 1.5243E+01 seconds\n", + " Time synchronizing fission bank = 6.0000E-03 seconds\n", + " Sampling source sites = 5.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 = 1.8174E+01 seconds\n", - " Calculation Rate (inactive) = 23212.6 neutrons/second\n", - " Calculation Rate (active) = 13712.7 neutrons/second\n", + " Total time elapsed = 1.8926E+01 seconds\n", + " Calculation Rate (inactive) = 22768.7 neutrons/second\n", + " Calculation Rate (active) = 13120.8 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -966,11 +966,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/nelsonag/git/openmc/openmc/tallies.py:1986: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1990: RuntimeWarning: invalid value encountered in true_divide\n", " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", - "/home/nelsonag/git/openmc/openmc/tallies.py:1987: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1991: RuntimeWarning: invalid value encountered in true_divide\n", " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n", - "/home/nelsonag/git/openmc/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1992: RuntimeWarning: invalid value encountered in true_divide\n", " new_tally._mean = data['self']['mean'] / data['other']['mean']\n" ] } @@ -1098,8 +1098,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: d20322f22d4850bd640b4accf34e2551550d17fb\n", - " Date/Time: 2016-05-30 14:21:12\n", + " Git SHA1: b41ec2178cc78c6c5968b47ebf09d926cdc44d00\n", + " Date/Time: 2016-06-07 19:46:43\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1124,56 +1124,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.06913 \n", - " 2/1 1.04067 \n", - " 3/1 1.01854 \n", - " 4/1 1.00203 \n", - " 5/1 1.03243 \n", - " 6/1 1.02688 \n", - " 7/1 1.06855 \n", - " 8/1 1.03420 \n", - " 9/1 1.01657 \n", - " 10/1 1.02795 \n", - " 11/1 1.01796 \n", - " 12/1 1.03372 1.02584 +/- 0.00788\n", - " 13/1 1.02433 1.02534 +/- 0.00458\n", - " 14/1 1.01147 1.02187 +/- 0.00474\n", - " 15/1 1.01215 1.01993 +/- 0.00416\n", - " 16/1 1.04088 1.02342 +/- 0.00487\n", - " 17/1 1.04033 1.02583 +/- 0.00477\n", - " 18/1 1.04483 1.02821 +/- 0.00477\n", - " 19/1 1.02870 1.02826 +/- 0.00420\n", - " 20/1 1.01339 1.02678 +/- 0.00404\n", - " 21/1 1.03389 1.02742 +/- 0.00371\n", - " 22/1 1.02535 1.02725 +/- 0.00340\n", - " 23/1 1.00225 1.02533 +/- 0.00367\n", - " 24/1 0.99938 1.02347 +/- 0.00387\n", - " 25/1 1.01620 1.02299 +/- 0.00363\n", - " 26/1 1.03393 1.02367 +/- 0.00347\n", - " 27/1 1.01875 1.02338 +/- 0.00327\n", - " 28/1 1.00305 1.02225 +/- 0.00328\n", - " 29/1 1.01453 1.02185 +/- 0.00313\n", - " 30/1 1.02891 1.02220 +/- 0.00299\n", - " 31/1 0.99612 1.02096 +/- 0.00311\n", - " 32/1 1.04911 1.02224 +/- 0.00323\n", - " 33/1 1.01410 1.02188 +/- 0.00310\n", - " 34/1 0.98979 1.02055 +/- 0.00326\n", - " 35/1 1.00938 1.02010 +/- 0.00316\n", - " 36/1 1.02857 1.02043 +/- 0.00305\n", - " 37/1 1.04095 1.02119 +/- 0.00303\n", - " 38/1 1.02033 1.02115 +/- 0.00292\n", - " 39/1 1.02104 1.02115 +/- 0.00282\n", - " 40/1 1.00854 1.02073 +/- 0.00276\n", - " 41/1 1.00932 1.02036 +/- 0.00269\n", - " 42/1 1.00284 1.01982 +/- 0.00266\n", - " 43/1 1.02489 1.01997 +/- 0.00258\n", - " 44/1 1.03981 1.02055 +/- 0.00257\n", - " 45/1 1.02630 1.02072 +/- 0.00251\n", - " 46/1 1.00133 1.02018 +/- 0.00249\n", - " 47/1 1.02409 1.02028 +/- 0.00243\n", - " 48/1 1.03928 1.02078 +/- 0.00241\n", - " 49/1 1.01226 1.02057 +/- 0.00236\n", - " 50/1 1.03536 1.02094 +/- 0.00233\n", + " 1/1 1.02438 \n", + " 2/1 1.04495 \n", + " 3/1 1.03438 \n", + " 4/1 0.99945 \n", + " 5/1 1.00818 \n", + " 6/1 1.00174 \n", + " 7/1 1.03430 \n", + " 8/1 1.02233 \n", + " 9/1 1.01200 \n", + " 10/1 1.02727 \n", + " 11/1 1.04051 \n", + " 12/1 1.02665 1.03358 +/- 0.00693\n", + " 13/1 1.01925 1.02880 +/- 0.00623\n", + " 14/1 1.03520 1.03040 +/- 0.00469\n", + " 15/1 1.03185 1.03069 +/- 0.00364\n", + " 16/1 1.03729 1.03179 +/- 0.00317\n", + " 17/1 1.00718 1.02827 +/- 0.00442\n", + " 18/1 1.00733 1.02566 +/- 0.00464\n", + " 19/1 1.02123 1.02516 +/- 0.00412\n", + " 20/1 1.01673 1.02432 +/- 0.00378\n", + " 21/1 1.03445 1.02524 +/- 0.00354\n", + " 22/1 1.03063 1.02569 +/- 0.00326\n", + " 23/1 1.00806 1.02433 +/- 0.00329\n", + " 24/1 1.03707 1.02524 +/- 0.00318\n", + " 25/1 1.01907 1.02483 +/- 0.00299\n", + " 26/1 1.01970 1.02451 +/- 0.00282\n", + " 27/1 1.00208 1.02319 +/- 0.00296\n", + " 28/1 1.02836 1.02348 +/- 0.00280\n", + " 29/1 1.02679 1.02365 +/- 0.00266\n", + " 30/1 1.03997 1.02447 +/- 0.00265\n", + " 31/1 0.99825 1.02322 +/- 0.00281\n", + " 32/1 1.01865 1.02301 +/- 0.00269\n", + " 33/1 1.00846 1.02238 +/- 0.00265\n", + " 34/1 1.01864 1.02222 +/- 0.00254\n", + " 35/1 1.02137 1.02219 +/- 0.00243\n", + " 36/1 1.02781 1.02241 +/- 0.00235\n", + " 37/1 1.02395 1.02246 +/- 0.00226\n", + " 38/1 1.00883 1.02198 +/- 0.00223\n", + " 39/1 0.99776 1.02114 +/- 0.00231\n", + " 40/1 1.01546 1.02095 +/- 0.00224\n", + " 41/1 1.04425 1.02170 +/- 0.00229\n", + " 42/1 1.02481 1.02180 +/- 0.00222\n", + " 43/1 1.00925 1.02142 +/- 0.00219\n", + " 44/1 1.04389 1.02208 +/- 0.00222\n", + " 45/1 1.04451 1.02272 +/- 0.00225\n", + " 46/1 1.02519 1.02279 +/- 0.00219\n", + " 47/1 1.03656 1.02316 +/- 0.00216\n", + " 48/1 1.04310 1.02369 +/- 0.00217\n", + " 49/1 1.03258 1.02392 +/- 0.00212\n", + " 50/1 1.01093 1.02359 +/- 0.00210\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -1183,27 +1183,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 2.8000E-02 seconds\n", - " Reading cross sections = 4.0000E-03 seconds\n", - " Total time in simulation = 1.2816E+01 seconds\n", - " Time in transport only = 1.2770E+01 seconds\n", - " Time in inactive batches = 1.3130E+00 seconds\n", - " Time in active batches = 1.1503E+01 seconds\n", - " Time synchronizing fission bank = 9.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 6.0000E-03 seconds\n", + " Total time for initialization = 3.7000E-02 seconds\n", + " Reading cross sections = 5.0000E-03 seconds\n", + " Total time in simulation = 1.1738E+01 seconds\n", + " Time in transport only = 1.1701E+01 seconds\n", + " Time in inactive batches = 1.3240E+00 seconds\n", + " Time in active batches = 1.0414E+01 seconds\n", + " Time synchronizing fission bank = 8.0000E-03 seconds\n", + " Sampling source sites = 5.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 = 0.0000E+00 seconds\n", - " Total time elapsed = 1.2854E+01 seconds\n", - " Calculation Rate (inactive) = 38080.7 neutrons/second\n", - " Calculation Rate (active) = 17386.8 neutrons/second\n", + " Total time elapsed = 1.1785E+01 seconds\n", + " Calculation Rate (inactive) = 37764.4 neutrons/second\n", + " Calculation Rate (active) = 19204.9 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02358 +/- 0.00231\n", - " k-effective (Track-length) = 1.02094 +/- 0.00233\n", - " k-effective (Absorption) = 1.02682 +/- 0.00152\n", - " Combined k-effective = 1.02527 +/- 0.00153\n", + " k-effective (Collision) = 1.02444 +/- 0.00180\n", + " k-effective (Track-length) = 1.02359 +/- 0.00210\n", + " k-effective (Absorption) = 1.02530 +/- 0.00175\n", + " Combined k-effective = 1.02471 +/- 0.00130\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -1285,8 +1285,8 @@ "output_type": "stream", "text": [ "Continuous-Energy keff = 1.024295\n", - "Multi-Group keff = 1.025274\n", - "bias [pcm]: -97.9\n" + "Multi-Group keff = 1.024707\n", + "bias [pcm]: -41.2\n" ] } ], @@ -1383,7 +1383,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1392,9 +1392,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\nD7ZNrAVaR8hwAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index 11ccae43df..daf99d481b 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -171,9 +171,7 @@ attributes/sub-elements required to describe the meta-data: provided via the ``scatt_type`` element above, is represented and thus used during the scattering process. Specifically, the options are to either convert the Legendre expansion to a tabular representation or leave it as - a set of Legendre coefficients. Converting to a tabular representation will - cost memory but can allow for a decrease in runtime compared to leaving as a - set of Legendre coefficients. This element has the following + a set of Legendre coefficients. Converting to a tabular representation will cost memory but can allow for a decrease in runtime compared to leaving as a set of Legendre coefficients. This element has the following attributes/sub-elements: :enable: @@ -181,7 +179,7 @@ attributes/sub-elements required to describe the meta-data: tabular format should be performed or not. A value of "true" means the conversion should be performed, "false" means it should not. - *Default*: "false" + *Default*: "true" :num_points: If the conversion is to take place the number of tabular points is diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index e335288edc..886eebf45f 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -784,8 +784,7 @@ class Library(object): representation by OpenMC. A value of `True` means that it is to be converted while a value of 'False' means that it will not be. Defaults to `None` which leaves the default behavior of OpenMC in - place (the distribution is not converted to a tabular - representation). + place (the distribution is converted to a tabular representation). tabular_points : {int} This parameter is not used unless the `tabular_legendre` is set to `True`. In this case, this parameter sets the number of @@ -954,8 +953,7 @@ class Library(object): representation by OpenMC. A value of `True` means that it is to be converted while a value of 'False' means that it will not be. Defaults to `None` which leaves the default behavior of OpenMC in - place (the distribution is not converted to a tabular - representation). + place (the distribution is converted to a tabular representation). tabular_points : {int} This parameter is not used unless the `tabular_legendre` is set to `True`. In this case, this parameter sets the number of @@ -1054,8 +1052,7 @@ class Library(object): representation by OpenMC. A value of `True` means that it is to be converted while a value of 'False' means that it will not be. Defaults to `None` which leaves the default behavior of OpenMC in - place (the distribution is not converted to a tabular - representation). + place (the distribution is converted to a tabular representation). tabular_points : {int} This parameter is not used unless the `tabular_legendre` is set to `True`. In this case, this parameter sets the number of diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index fd909ca002..519da708c9 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -387,11 +387,13 @@ module mgxs_header ! Get scattering treatment information ! Tabular_legendre tells us if we are to treat the provided - ! Legendre polynomials as tabular data (if enable is true) or leaving - ! them as Legendres (if enable is false, or the default) + ! Legendre polynomials as tabular data (if enable is true, default) + ! or leaving them as Legendres (if enable is false) - ! Set the default (leave as Legendre polynomials) - enable_leg_mu = .false. + ! Set the default (Convert to tabular format w/ 33 points) + enable_leg_mu = .true. + legendre_mu_points = 33 + ! Get the user-provided values 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 diff --git a/tests/test_mg_basic/results_true.dat b/tests/test_mg_basic/results_true.dat index 55c2af8136..1c58db0d77 100644 --- a/tests/test_mg_basic/results_true.dat +++ b/tests/test_mg_basic/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.033731E+00 4.974463E-02 +1.003952E+00 4.160185E-02 diff --git a/tests/test_mg_max_order/results_true.dat b/tests/test_mg_max_order/results_true.dat index f75c1300ab..3b9625201b 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.055274E+00 1.715904E-02 +1.026398E+00 7.824554E-02 diff --git a/tests/test_mg_nuclide/results_true.dat b/tests/test_mg_nuclide/results_true.dat index 55c2af8136..1c58db0d77 100644 --- a/tests/test_mg_nuclide/results_true.dat +++ b/tests/test_mg_nuclide/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.033731E+00 4.974463E-02 +1.003952E+00 4.160185E-02 diff --git a/tests/test_mg_tallies/results_true.dat b/tests/test_mg_tallies/results_true.dat index debbfa537c..94ec79286d 100644 --- a/tests/test_mg_tallies/results_true.dat +++ b/tests/test_mg_tallies/results_true.dat @@ -1,86 +1,86 @@ k-combined: -1.033731E+00 4.974463E-02 +1.003952E+00 4.160185E-02 tally 1: -3.163666E+00 -2.165097E+00 -9.964133E-02 -2.052446E-03 -4.861844E+00 -4.978206E+00 -4.417216E-02 -4.040216E-04 -1.095122E-01 -2.483317E-03 -3.324437E+00 -2.299850E+00 -9.574329E-02 -1.968438E-03 -4.881821E+00 -4.943976E+00 -4.041706E-02 -3.650255E-04 -1.002025E-01 -2.243628E-03 -3.199995E+00 -2.091126E+00 -8.859707E-02 -1.592091E-03 -4.671522E+00 -4.439001E+00 -3.660515E-02 -2.728602E-04 -9.075197E-02 -1.677135E-03 -2.910284E+00 -1.723356E+00 -9.207508E-02 -1.744614E-03 -4.421737E+00 -3.979362E+00 -4.080063E-02 -3.481887E-04 -1.011535E-01 -2.140141E-03 -2.506574E+00 -1.326705E+00 -8.637880E-02 -1.598941E-03 -3.920683E+00 -3.263607E+00 -3.978214E-02 -3.424111E-04 -9.862841E-02 -2.104629E-03 -2.951103E+00 -1.826551E+00 -8.748324E-02 -1.648479E-03 -4.309848E+00 -3.903067E+00 -3.741466E-02 -3.141687E-04 -9.275891E-02 -1.931037E-03 -3.048521E+00 -2.007251E+00 -9.483162E-02 -1.935789E-03 -4.599534E+00 -4.527383E+00 -4.168244E-02 -3.813062E-04 -1.033396E-01 -2.343697E-03 -2.982958E+00 -1.966657E+00 -9.896454E-02 -2.016812E-03 -4.645921E+00 -4.599347E+00 -4.489740E-02 -4.108900E-04 -1.113102E-01 -2.525534E-03 +3.027550E+00 +2.152400E+00 +8.573015E-02 +1.716238E-03 +4.377236E+00 +4.480918E+00 +3.577293E-02 +2.996921E-04 +8.868872E-02 +1.842057E-03 +3.189586E+00 +2.165036E+00 +9.625303E-02 +1.898094E-03 +4.691910E+00 +4.579570E+00 +4.156421E-02 +3.532611E-04 +1.030465E-01 +2.171318E-03 +2.987648E+00 +1.869303E+00 +9.105156E-02 +1.775628E-03 +4.522682E+00 +4.342733E+00 +3.968997E-02 +3.424105E-04 +9.839988E-02 +2.104625E-03 +3.225648E+00 +2.102269E+00 +8.764034E-02 +1.567260E-03 +4.629948E+00 +4.315388E+00 +3.574267E-02 +2.684687E-04 +8.861368E-02 +1.650142E-03 +3.394894E+00 +2.332105E+00 +8.432398E-02 +1.485500E-03 +4.659277E+00 +4.398368E+00 +3.230884E-02 +2.317511E-04 +8.010050E-02 +1.424457E-03 +3.013158E+00 +2.009646E+00 +7.490989E-02 +1.178333E-03 +4.123109E+00 +3.682531E+00 +2.869447E-02 +1.710786E-04 +7.113970E-02 +1.051534E-03 +3.157181E+00 +2.100927E+00 +8.531655E-02 +1.520341E-03 +4.523209E+00 +4.302173E+00 +3.468239E-02 +2.516726E-04 +8.598504E-02 +1.546905E-03 +2.922890E+00 +1.788820E+00 +8.708247E-02 +1.621130E-03 +4.305352E+00 +3.866481E+00 +3.740038E-02 +3.097101E-04 +9.272351E-02 +1.903632E-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.806322E+00 -1.650116E+00 -8.677689E-02 -1.577748E-03 -4.271173E+00 -3.787053E+00 -3.812147E-02 -3.107861E-04 -9.451124E-02 -1.910246E-03 -2.767101E+00 -1.574082E+00 -8.523508E-02 -1.523190E-03 -4.143067E+00 -3.546386E+00 -3.725690E-02 -2.974028E-04 -9.236779E-02 -1.827986E-03 -2.767691E+00 -1.557585E+00 -7.816996E-02 -1.254835E-03 -4.015666E+00 -3.289915E+00 -3.260527E-02 -2.211412E-04 -8.083542E-02 -1.359243E-03 -2.734236E+00 -1.510579E+00 -8.505695E-02 -1.474976E-03 -4.114798E+00 -3.424404E+00 -3.737976E-02 -2.870194E-04 -9.267239E-02 -1.764164E-03 -2.421441E+00 -1.195490E+00 -8.292263E-02 -1.384777E-03 -3.817448E+00 -2.942804E+00 -3.814207E-02 -2.931372E-04 -9.456230E-02 -1.801767E-03 -2.724650E+00 -1.519118E+00 -9.238437E-02 -1.725646E-03 -4.305602E+00 -3.753830E+00 -4.235399E-02 -3.657508E-04 -1.050046E-01 -2.248086E-03 -2.703678E+00 -1.593893E+00 -8.744732E-02 -1.597761E-03 -4.110489E+00 -3.592877E+00 -3.913038E-02 -3.184391E-04 -9.701255E-02 -1.957285E-03 -2.707705E+00 -1.792230E+00 -8.754036E-02 -1.760104E-03 -4.203619E+00 -4.162497E+00 -3.927598E-02 -3.456207E-04 -9.737351E-02 -2.124357E-03 +3.136746E+00 +2.097844E+00 +9.001259E-02 +1.679379E-03 +4.662194E+00 +4.592725E+00 +3.801404E-02 +2.981421E-04 +9.424490E-02 +1.832530E-03 +3.106448E+00 +2.078391E+00 +9.012356E-02 +1.762294E-03 +4.513037E+00 +4.378913E+00 +3.813004E-02 +3.167893E-04 +9.453248E-02 +1.947145E-03 +2.830121E+00 +1.799064E+00 +8.110239E-02 +1.428875E-03 +4.186480E+00 +3.869678E+00 +3.421633E-02 +2.502127E-04 +8.482957E-02 +1.537931E-03 +3.117676E+00 +1.961910E+00 +8.682325E-02 +1.551480E-03 +4.541798E+00 +4.177594E+00 +3.598671E-02 +2.719848E-04 +8.921872E-02 +1.671754E-03 +2.860792E+00 +1.699774E+00 +7.734553E-02 +1.212035E-03 +4.045685E+00 +3.352230E+00 +3.136656E-02 +2.020318E-04 +7.776439E-02 +1.241788E-03 +2.807124E+00 +1.635117E+00 +8.312523E-02 +1.403341E-03 +4.138428E+00 +3.503069E+00 +3.560217E-02 +2.611276E-04 +8.826537E-02 +1.605020E-03 +2.924592E+00 +1.733173E+00 +8.343992E-02 +1.403493E-03 +4.345943E+00 +3.817213E+00 +3.513702E-02 +2.517119E-04 +8.711216E-02 +1.547146E-03 +2.646486E+00 +1.418290E+00 +7.950085E-02 +1.309718E-03 +3.966626E+00 +3.215631E+00 +3.437595E-02 +2.503895E-04 +8.522531E-02 +1.539019E-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.333969E+00 -1.124588E+00 -6.982134E-02 -1.014762E-03 -3.448351E+00 -2.435965E+00 -3.004987E-02 -1.926319E-04 -7.450003E-02 -1.184011E-03 -3.086286E+00 -1.981929E+00 -1.016918E-01 -2.146313E-03 -4.741530E+00 -4.626144E+00 -4.593581E-02 -4.489950E-04 -1.138847E-01 -2.759746E-03 -2.871515E+00 -1.672027E+00 -8.533571E-02 -1.469319E-03 -4.221958E+00 -3.599412E+00 -3.658547E-02 -2.721530E-04 -9.070318E-02 -1.672788E-03 -2.715053E+00 -1.498990E+00 -8.595576E-02 -1.530999E-03 -4.139891E+00 -3.493193E+00 -3.815373E-02 -3.059779E-04 -9.459122E-02 -1.880692E-03 -2.265823E+00 -1.080584E+00 -6.709890E-02 -9.696052E-04 -3.397886E+00 -2.446009E+00 -2.882467E-02 -1.820798E-04 -7.146249E-02 -1.119153E-03 -2.443336E+00 -1.255468E+00 -8.222450E-02 -1.373726E-03 -3.836077E+00 -3.019588E+00 -3.754438E-02 -2.866712E-04 -9.308051E-02 -1.762024E-03 -2.450506E+00 -1.305510E+00 -7.897423E-02 -1.293368E-03 -3.725732E+00 -2.954033E+00 -3.530661E-02 -2.549027E-04 -8.753260E-02 -1.566759E-03 -2.463151E+00 -1.385265E+00 -8.072623E-02 -1.376083E-03 -3.828575E+00 -3.178469E+00 -3.645911E-02 -2.733269E-04 -9.038989E-02 -1.680003E-03 +3.421827E+00 +2.488458E+00 +9.626948E-02 +2.065197E-03 +5.040929E+00 +5.451459E+00 +4.018656E-02 +3.779606E-04 +9.963105E-02 +2.323134E-03 +2.869547E+00 +1.698223E+00 +8.662967E-02 +1.551328E-03 +4.227759E+00 +3.702584E+00 +3.740987E-02 +2.903037E-04 +9.274703E-02 +1.784351E-03 +2.588566E+00 +1.357415E+00 +7.706802E-02 +1.216264E-03 +3.821156E+00 +2.967091E+00 +3.309228E-02 +2.275536E-04 +8.204281E-02 +1.398658E-03 +2.777772E+00 +1.584289E+00 +8.469785E-02 +1.456208E-03 +4.195353E+00 +3.574265E+00 +3.693140E-02 +2.790926E-04 +9.156081E-02 +1.715441E-03 +3.118197E+00 +1.989138E+00 +9.265883E-02 +1.753400E-03 +4.574869E+00 +4.260081E+00 +3.969940E-02 +3.241960E-04 +9.842328E-02 +1.992670E-03 +2.591904E+00 +1.370188E+00 +8.148726E-02 +1.342503E-03 +3.988752E+00 +3.228928E+00 +3.608041E-02 +2.655091E-04 +8.945102E-02 +1.631951E-03 +3.123916E+00 +1.985559E+00 +9.297564E-02 +1.754830E-03 +4.650584E+00 +4.387677E+00 +3.995654E-02 +3.270558E-04 +9.906077E-02 +2.010247E-03 +2.507814E+00 +1.313596E+00 +7.534295E-02 +1.160881E-03 +3.761249E+00 +2.915759E+00 +3.258970E-02 +2.199767E-04 +8.079681E-02 +1.352086E-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.433621E+00 -1.298731E+00 -7.126855E-02 -1.084489E-03 -3.556720E+00 -2.723689E+00 -3.032075E-02 -1.974495E-04 -7.517159E-02 -1.213623E-03 -2.717435E+00 -1.549804E+00 -7.064960E-02 -1.006179E-03 -3.808148E+00 -2.988456E+00 -2.796674E-02 -1.570090E-04 -6.933552E-02 -9.650556E-04 -2.679858E+00 -1.486542E+00 -8.030738E-02 -1.319629E-03 -4.018748E+00 -3.302325E+00 -3.467552E-02 -2.467113E-04 -8.596801E-02 -1.516410E-03 -2.404649E+00 -1.193262E+00 -6.941086E-02 -9.897421E-04 -3.496702E+00 -2.518136E+00 -2.928903E-02 -1.763988E-04 -7.261375E-02 -1.084234E-03 -2.147183E+00 -9.523277E-01 -6.709152E-02 -9.314107E-04 -3.232389E+00 -2.147105E+00 -2.954891E-02 -1.829794E-04 -7.325805E-02 -1.124682E-03 -2.636339E+00 -1.437307E+00 -7.792975E-02 -1.238873E-03 -3.915670E+00 -3.133618E+00 -3.338754E-02 -2.290709E-04 -8.277483E-02 -1.407984E-03 -2.771906E+00 -1.608332E+00 -8.667994E-02 -1.535886E-03 -4.183761E+00 -3.623671E+00 -3.819000E-02 -2.976177E-04 -9.468114E-02 -1.829306E-03 -2.269663E+00 -1.042807E+00 -7.391262E-02 -1.128121E-03 -3.476219E+00 -2.457866E+00 -3.321742E-02 -2.316107E-04 -8.235305E-02 -1.423595E-03 +3.072424E+00 +1.910502E+00 +8.487675E-02 +1.467547E-03 +4.502748E+00 +4.073633E+00 +3.505649E-02 +2.616264E-04 +8.691250E-02 +1.608086E-03 +3.358497E+00 +2.340508E+00 +9.563725E-02 +1.882737E-03 +4.919309E+00 +4.997057E+00 +4.012501E-02 +3.331881E-04 +9.947844E-02 +2.047940E-03 +2.841595E+00 +1.676656E+00 +8.961778E-02 +1.706734E-03 +4.382947E+00 +3.971256E+00 +3.977482E-02 +3.476057E-04 +9.861025E-02 +2.136557E-03 +3.031993E+00 +1.887195E+00 +1.005232E-01 +2.088650E-03 +4.706199E+00 +4.537534E+00 +4.558466E-02 +4.340386E-04 +1.130141E-01 +2.667817E-03 +3.116522E+00 +2.011384E+00 +9.595523E-02 +1.977738E-03 +4.627314E+00 +4.456240E+00 +4.188172E-02 +3.906963E-04 +1.038337E-01 +2.401414E-03 +2.906411E+00 +1.724257E+00 +9.583879E-02 +1.902835E-03 +4.514939E+00 +4.188183E+00 +4.337455E-02 +3.935555E-04 +1.075347E-01 +2.418988E-03 +2.723724E+00 +1.514959E+00 +8.518353E-02 +1.512432E-03 +4.173364E+00 +3.561677E+00 +3.761270E-02 +3.039338E-04 +9.324988E-02 +1.868128E-03 +2.336622E+00 +1.158899E+00 +8.017647E-02 +1.335514E-03 +3.700707E+00 +2.838852E+00 +3.695886E-02 +2.855605E-04 +9.162889E-02 +1.755197E-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 -2.364354E+00 -1.160200E+00 -6.641096E-02 -8.852085E-04 -3.392824E+00 -2.329004E+00 -2.757158E-02 -1.580033E-04 -6.835582E-02 -9.711667E-04 -2.524962E+00 -1.341947E+00 -7.077935E-02 -1.024802E-03 -3.665788E+00 -2.770692E+00 -2.942129E-02 -1.757498E-04 -7.294165E-02 -1.080245E-03 -2.400937E+00 -1.186871E+00 -6.912946E-02 -9.715758E-04 -3.511555E+00 -2.501540E+00 -2.915335E-02 -1.747298E-04 -7.227736E-02 -1.073976E-03 -2.114087E+00 -8.990260E-01 -7.043720E-02 -1.000660E-03 -3.333143E+00 -2.235823E+00 -3.206435E-02 -2.087641E-04 -7.949434E-02 -1.283168E-03 -2.130919E+00 -9.474100E-01 -7.007826E-02 -9.974302E-04 -3.308019E+00 -2.242723E+00 -3.167506E-02 -2.044420E-04 -7.852922E-02 -1.256602E-03 -2.315558E+00 -1.159276E+00 -6.983615E-02 -1.023301E-03 -3.433129E+00 -2.511229E+00 -3.018652E-02 -1.890787E-04 -7.483880E-02 -1.162171E-03 -2.729503E+00 -1.530826E+00 -8.250917E-02 -1.373688E-03 -4.093393E+00 -3.424963E+00 -3.577102E-02 -2.569031E-04 -8.868397E-02 -1.579054E-03 -2.303613E+00 -1.077186E+00 -6.880069E-02 -9.471902E-04 -3.366481E+00 -2.277404E+00 -2.953353E-02 -1.751404E-04 -7.321992E-02 -1.076500E-03 +3.107110E+00 +2.031843E+00 +8.851130E-02 +1.622664E-03 +4.517810E+00 +4.254353E+00 +3.710637E-02 +2.854685E-04 +9.199458E-02 +1.754631E-03 +3.274545E+00 +2.233343E+00 +1.058426E-01 +2.344479E-03 +4.973131E+00 +5.160486E+00 +4.734962E-02 +4.741951E-04 +1.173898E-01 +2.914639E-03 +2.636225E+00 +1.433972E+00 +7.975913E-02 +1.339963E-03 +3.942728E+00 +3.209671E+00 +3.458062E-02 +2.576972E-04 +8.573273E-02 +1.583935E-03 +2.850580E+00 +1.753714E+00 +8.409223E-02 +1.504889E-03 +4.292353E+00 +3.910272E+00 +3.606743E-02 +2.785145E-04 +8.941884E-02 +1.711888E-03 +3.177076E+00 +2.046322E+00 +9.290111E-02 +1.805479E-03 +4.671510E+00 +4.473692E+00 +3.953032E-02 +3.362191E-04 +9.800407E-02 +2.066570E-03 +2.792020E+00 +1.590839E+00 +8.956724E-02 +1.645807E-03 +4.270468E+00 +3.718893E+00 +3.995877E-02 +3.306439E-04 +9.906631E-02 +2.032302E-03 +2.319545E+00 +1.130506E+00 +7.787530E-02 +1.284059E-03 +3.631235E+00 +2.757748E+00 +3.552455E-02 +2.689956E-04 +8.807293E-02 +1.653381E-03 +2.338383E+00 +1.206709E+00 +7.569363E-02 +1.234797E-03 +3.576288E+00 +2.757162E+00 +3.391726E-02 +2.462226E-04 +8.408811E-02 +1.513407E-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.603449E+00 -1.382310E+00 -7.044110E-02 -1.048854E-03 -3.683939E+00 -2.770822E+00 -2.858207E-02 -1.846566E-04 -7.086104E-02 -1.134991E-03 -2.458052E+00 -1.211571E+00 -7.271340E-02 -1.061659E-03 -3.628656E+00 -2.636961E+00 -3.113049E-02 -1.956492E-04 -7.717911E-02 -1.202557E-03 -2.200265E+00 -9.745445E-01 -7.058665E-02 -1.016272E-03 -3.372745E+00 -2.298238E+00 -3.151097E-02 -2.069373E-04 -7.812240E-02 -1.271940E-03 -2.154223E+00 -9.469347E-01 -6.893166E-02 -1.008453E-03 -3.298063E+00 -2.220933E+00 -3.075978E-02 -2.125545E-04 -7.626005E-02 -1.306466E-03 -2.057172E+00 -8.672290E-01 -6.372568E-02 -8.190278E-04 -3.108552E+00 -1.951197E+00 -2.795535E-02 -1.595890E-04 -6.930727E-02 -9.809131E-04 -2.295642E+00 -1.124640E+00 -6.209725E-02 -8.275041E-04 -3.320499E+00 -2.339919E+00 -2.530846E-02 -1.388437E-04 -6.274506E-02 -8.534023E-04 -2.411516E+00 -1.208668E+00 -7.127755E-02 -1.051206E-03 -3.599456E+00 -2.675604E+00 -3.057946E-02 -1.929511E-04 -7.581300E-02 -1.185973E-03 -2.170599E+00 -9.911770E-01 -6.225331E-02 -8.096954E-04 -3.174400E+00 -2.102442E+00 -2.621745E-02 -1.490631E-04 -6.499865E-02 -9.162161E-04 +2.615843E+00 +1.511122E+00 +8.062716E-02 +1.419946E-03 +3.984393E+00 +3.462948E+00 +3.538715E-02 +2.775562E-04 +8.773227E-02 +1.705998E-03 +2.882570E+00 +1.761817E+00 +8.002023E-02 +1.361536E-03 +4.138232E+00 +3.590378E+00 +3.301403E-02 +2.428126E-04 +8.184882E-02 +1.492447E-03 +3.223528E+00 +2.083805E+00 +8.733159E-02 +1.544129E-03 +4.604746E+00 +4.254674E+00 +3.551662E-02 +2.594309E-04 +8.805326E-02 +1.594591E-03 +2.927536E+00 +1.741281E+00 +8.346281E-02 +1.434485E-03 +4.324501E+00 +3.806148E+00 +3.508574E-02 +2.599007E-04 +8.698503E-02 +1.597479E-03 +3.057707E+00 +1.944892E+00 +8.714384E-02 +1.580757E-03 +4.450690E+00 +4.103723E+00 +3.652244E-02 +2.807333E-04 +9.054690E-02 +1.725526E-03 +2.719115E+00 +1.510843E+00 +7.867244E-02 +1.258358E-03 +3.983708E+00 +3.239056E+00 +3.327673E-02 +2.253729E-04 +8.250009E-02 +1.385254E-03 +2.396119E+00 +1.153282E+00 +7.566785E-02 +1.182019E-03 +3.610641E+00 +2.634248E+00 +3.348337E-02 +2.377537E-04 +8.301240E-02 +1.461353E-03 +2.154802E+00 +1.067493E+00 +6.324323E-02 +8.945795E-04 +3.142780E+00 +2.238062E+00 +2.691333E-02 +1.628077E-04 +6.672387E-02 +1.000697E-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.374348E+00 -1.146696E+00 -6.443426E-02 -8.746572E-04 -3.428224E+00 -2.405912E+00 -2.629872E-02 -1.523681E-04 -6.520012E-02 -9.365302E-04 -2.464893E+00 -1.229701E+00 -7.050588E-02 -1.022217E-03 -3.660115E+00 -2.719644E+00 -2.971255E-02 -1.859463E-04 -7.366374E-02 -1.142918E-03 -2.086598E+00 -8.776819E-01 -6.304625E-02 -8.239181E-04 -3.124875E+00 -1.968039E+00 -2.731211E-02 -1.609716E-04 -6.771252E-02 -9.894116E-04 -2.314873E+00 -1.083111E+00 -5.761556E-02 -6.762901E-04 -3.205662E+00 -2.074555E+00 -2.215216E-02 -1.044406E-04 -5.491992E-02 -6.419437E-04 -2.313273E+00 -1.119912E+00 -6.126598E-02 -7.845228E-04 -3.266340E+00 -2.226545E+00 -2.455456E-02 -1.271226E-04 -6.087598E-02 -7.813588E-04 -2.283282E+00 -1.100474E+00 -6.665553E-02 -9.193170E-04 -3.364565E+00 -2.364829E+00 -2.834631E-02 -1.672037E-04 -7.027653E-02 -1.027717E-03 -2.186072E+00 -9.712029E-01 -7.000241E-02 -1.019717E-03 -3.374290E+00 -2.313941E+00 -3.125803E-02 -2.124583E-04 -7.749531E-02 -1.305874E-03 -2.250156E+00 -1.052173E+00 -6.400255E-02 -8.818690E-04 -3.268015E+00 -2.245559E+00 -2.679559E-02 -1.634377E-04 -6.643197E-02 -1.004569E-03 +3.073244E+00 +2.018709E+00 +9.073696E-02 +1.753157E-03 +4.516776E+00 +4.329334E+00 +3.876727E-02 +3.208452E-04 +9.611233E-02 +1.972074E-03 +2.671039E+00 +1.446563E+00 +7.823234E-02 +1.250837E-03 +3.946269E+00 +3.138681E+00 +3.334746E-02 +2.319341E-04 +8.267545E-02 +1.425582E-03 +3.349978E+00 +2.319515E+00 +9.950325E-02 +2.061329E-03 +5.001138E+00 +5.168172E+00 +4.276928E-02 +3.828620E-04 +1.060342E-01 +2.353260E-03 +2.978936E+00 +1.799523E+00 +9.017252E-02 +1.638102E-03 +4.406186E+00 +3.924003E+00 +3.904232E-02 +3.071501E-04 +9.679424E-02 +1.887897E-03 +2.702401E+00 +1.471209E+00 +7.923417E-02 +1.296139E-03 +4.023502E+00 +3.272988E+00 +3.383397E-02 +2.416414E-04 +8.388161E-02 +1.485248E-03 +2.759858E+00 +1.531505E+00 +8.419492E-02 +1.488052E-03 +4.150314E+00 +3.494954E+00 +3.667250E-02 +2.957414E-04 +9.091893E-02 +1.817773E-03 +2.601272E+00 +1.380301E+00 +8.755772E-02 +1.625699E-03 +4.019486E+00 +3.299452E+00 +3.989786E-02 +3.528389E-04 +9.891530E-02 +2.168723E-03 +2.510230E+00 +1.275856E+00 +8.725714E-02 +1.601325E-03 +3.973851E+00 +3.204497E+00 +4.039490E-02 +3.543820E-04 +1.001476E-01 +2.178208E-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.149693E+00 -9.566763E-01 -6.325375E-02 -8.781459E-04 -3.163781E+00 -2.089993E+00 -2.699802E-02 -1.754950E-04 -6.693384E-02 -1.078679E-03 -2.368262E+00 -1.206255E+00 -6.517665E-02 -9.363557E-04 -3.403305E+00 -2.501730E+00 -2.677251E-02 -1.620249E-04 -6.637476E-02 -9.958857E-04 -2.280249E+00 -1.070455E+00 -7.456831E-02 -1.147671E-03 -3.475673E+00 -2.476848E+00 -3.352210E-02 -2.345869E-04 -8.310842E-02 -1.441888E-03 -2.226928E+00 -1.011037E+00 -7.770236E-02 -1.243393E-03 -3.524398E+00 -2.538453E+00 -3.601410E-02 -2.702997E-04 -8.928663E-02 -1.661396E-03 -2.407411E+00 -1.170093E+00 -7.171133E-02 -1.029235E-03 -3.502484E+00 -2.461827E+00 -3.070568E-02 -1.889715E-04 -7.612591E-02 -1.161513E-03 -2.331359E+00 -1.134448E+00 -6.734317E-02 -9.407363E-04 -3.333577E+00 -2.267345E+00 -2.832929E-02 -1.772720E-04 -7.023433E-02 -1.089602E-03 -2.008838E+00 -8.722179E-01 -5.586199E-02 -7.051708E-04 -2.903675E+00 -1.807255E+00 -2.309145E-02 -1.322637E-04 -5.724863E-02 -8.129585E-04 -2.226061E+00 -1.048269E+00 -6.536859E-02 -9.623671E-04 -3.297988E+00 -2.324450E+00 -2.791406E-02 -1.866630E-04 -6.920490E-02 -1.147324E-03 +2.355419E+00 +1.227267E+00 +7.298104E-02 +1.204355E-03 +3.584952E+00 +2.839605E+00 +3.206831E-02 +2.384737E-04 +7.950416E-02 +1.465778E-03 +2.885415E+00 +1.707496E+00 +8.937354E-02 +1.638109E-03 +4.328343E+00 +3.842717E+00 +3.915662E-02 +3.169623E-04 +9.707761E-02 +1.948208E-03 +2.817788E+00 +1.659313E+00 +8.795245E-02 +1.652827E-03 +4.286382E+00 +3.831800E+00 +3.878123E-02 +3.288848E-04 +9.614692E-02 +2.021489E-03 +2.987432E+00 +1.822564E+00 +8.500598E-02 +1.500428E-03 +4.380470E+00 +3.921075E+00 +3.565649E-02 +2.685990E-04 +8.840004E-02 +1.650943E-03 +2.685515E+00 +1.443739E+00 +8.434998E-02 +1.460545E-03 +4.166156E+00 +3.492673E+00 +3.738938E-02 +2.956120E-04 +9.269624E-02 +1.816978E-03 +2.686749E+00 +1.496524E+00 +8.914589E-02 +1.663073E-03 +4.156201E+00 +3.578378E+00 +4.042946E-02 +3.475741E-04 +1.002332E-01 +2.136363E-03 +2.760305E+00 +1.579416E+00 +8.914803E-02 +1.630935E-03 +4.214440E+00 +3.628492E+00 +3.989038E-02 +3.331009E-04 +9.889676E-02 +2.047404E-03 +2.681752E+00 +1.472982E+00 +8.701435E-02 +1.526110E-03 +4.175631E+00 +3.518871E+00 +3.914441E-02 +3.118235E-04 +9.704732E-02 +1.916622E-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.076711E+01 -3.341374E+02 -4.077838E+01 -3.343221E+02 -6.274781E+00 -7.937573E+00 -6.275007E+00 -7.938146E+00 -1.122968E+02 -2.557771E+03 -1.122968E+02 -2.557771E+03 +4.417493E+01 +3.967273E+02 +4.418714E+01 +3.969466E+02 +7.878379E+00 +1.248770E+01 +7.878666E+00 +1.248861E+01 +1.271565E+02 +3.251279E+03 +1.271565E+02 +3.251279E+03 diff --git a/tests/test_mgxs_library_ce_to_mg/results_true.dat b/tests/test_mgxs_library_ce_to_mg/results_true.dat index 16441af8c7..c82da3bce2 100644 --- a/tests/test_mgxs_library_ce_to_mg/results_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.094839E+00 1.203524E-02 +1.151644E+00 3.044607E-02 From 55e1ebff2d06c4c70599ab6c3dbe07cb57a5b3ae Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Tue, 7 Jun 2016 17:11:59 -0500 Subject: [PATCH 061/417] Use multiple universes for TRISOs --- openmc/model/triso.py | 52 +++++++++++++------------------ tests/test_triso/inputs_true.dat | 2 +- tests/test_triso/plots.xml | 6 ++++ tests/test_triso/results_true.dat | 2 +- tests/test_triso/test_triso.py | 28 +++++++++++------ 5 files changed, 48 insertions(+), 42 deletions(-) create mode 100644 tests/test_triso/plots.xml diff --git a/openmc/model/triso.py b/openmc/model/triso.py index dc53e6ec01..ca519ed6fe 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -12,18 +12,17 @@ class TRISO(object): Parameters ---------- - materials : Iterable of openmc.Material - Material to be assigned to each layer of the TRISO particle starting - with the innermost and proceeding outwards - radii : Iterable of float - Outer radii in cm of each layer of the TRISO particle in ascending order + outer_radius : int + Outer radius of TRISO particle + inner_univ : openmc.Universe + Universe which contains all layers of the TRISO particle center : Iterable of float Cartesian coordinates of the center of the TRISO particle in cm Attributes ---------- - cells : list of opemc.Cell - Each layer of the TRISO particle + cell : opemc.Cell + Cell which contains the TRISO universe center : numpy.ndarray Cartesian coordinates of the center of the TRISO particle in cm outside : openmc.Region @@ -34,27 +33,18 @@ class TRISO(object): """ - def __init__(self, materials, radii, center=(0., 0., 0.)): - surfaces = [openmc.Sphere(R=r) for r in radii] - cells = [] - for i, m in enumerate(materials): - c = openmc.Cell(fill=m) - if i == 0: - c.region = -surfaces[i] - else: - c.region = +surfaces[i-1] & -surfaces[i] - cells.append(c) - self._cells = cells - self._surfaces = surfaces + def __init__(self, outer_radius, inner_univ, center=(0., 0., 0.)): + self._surface = openmc.Sphere(R=outer_radius) + self._cell = openmc.Cell(fill=inner_univ, region=-self._surface) self.center = np.asarray(center) @property def bounding_box(self): - return self.cells[-1].region.bounding_box + return self.cell.region.bounding_box @property - def cells(self): - return self._cells + def cell(self): + return self._cell @property def center(self): @@ -62,13 +52,15 @@ class TRISO(object): @property def outside(self): - return ~self.cells[-1].region.nodes[-1] + return +self._surface @center.setter def center(self, center): cv.check_type('TRISO center', center, Iterable, Real) - for s in self._surfaces: - s.x0, s.y0, s.z0 = center + self._surface.x0 = center[0] + self._surface.y0 = center[1] + self._surface.z0 = center[2] + self.cell.translation = center self._center = center def classify(self, lattice): @@ -136,11 +128,9 @@ def create_triso_lattice(trisos, lower_left, pitch, shape, background): # Create copy of TRISO particle with materials preserved and # different cell/surface IDs t_copy = copy.deepcopy(t) - for c, c_copy in zip(t.cells, t_copy.cells): - c_copy.id = None - c_copy.fill = c.fill - for s in t_copy._surfaces: - s.id = None + t_copy.cell.id = None + t_copy.cell.fill = t.cell.fill + t_copy._surface.id = None triso_locations[idx].append(t_copy) # Create universes @@ -155,7 +145,7 @@ def create_triso_lattice(trisos, lower_left, pitch, shape, background): u = openmc.Universe() u.add_cell(background_cell) for t in triso_list: - u.add_cells(t.cells) + u.add_cell(t.cell) iz, iy, ix = idx t.center = lattice.get_local_coordinates(t.center, (ix, iy, iz)) diff --git a/tests/test_triso/inputs_true.dat b/tests/test_triso/inputs_true.dat index 40f312850d..3e54e5e6fe 100644 --- a/tests/test_triso/inputs_true.dat +++ b/tests/test_triso/inputs_true.dat @@ -1 +1 @@ -6c6fecedf3db0b91b69b7b7b57b3a52c42947253bea4ee3889d6bbd6e74935cc4e599c1c743eb589a1045868412f3f88c5fef7cf10e180bdc4bd182970c9ee15 \ No newline at end of file +2dcfd1a17cba671874e60192a7355deb57e2e51467a474fd168c8b51e454a977edb34df07ae11625c0a43906112152c75113e442a9a8f240a4c9d1a11ee4771d \ No newline at end of file diff --git a/tests/test_triso/plots.xml b/tests/test_triso/plots.xml new file mode 100644 index 0000000000..60ae7d9d8f --- /dev/null +++ b/tests/test_triso/plots.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/tests/test_triso/results_true.dat b/tests/test_triso/results_true.dat index 8f968f65a0..ea7da21edf 100644 --- a/tests/test_triso/results_true.dat +++ b/tests/test_triso/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.685303E+00 1.121936E-01 +1.662675E+00 1.475968E-02 diff --git a/tests/test_triso/test_triso.py b/tests/test_triso/test_triso.py index f7f4daa7ba..d1ac4e5cdc 100644 --- a/tests/test_triso/test_triso.py +++ b/tests/test_triso/test_triso.py @@ -50,22 +50,31 @@ class TRISOTestHarness(PyAPITestHarness): graphite.add_s_alpha_beta('Graph', '71t') # Create TRISO particles - materials = [fuel, porous_carbon, ipyc, sic, opyc] - radii = np.array([212.5, 312.5, 347.5, 382.5, 422.5])*1e-4 + spheres = [openmc.Sphere(R=r*1e-4) + for r in [212.5, 312.5, 347.5, 382.5]] + c1 = openmc.Cell(fill=fuel, region=-spheres[0]) + c2 = openmc.Cell(fill=porous_carbon, region=+spheres[0] & -spheres[1]) + c3 = openmc.Cell(fill=ipyc, region=+spheres[1] & -spheres[2]) + c4 = openmc.Cell(fill=sic, region=+spheres[2] & -spheres[3]) + c5 = openmc.Cell(fill=opyc, region=+spheres[3]) + inner_univ = openmc.Universe(cells=[c1, c2, c3, c4, c5]) + + outer_radius = 422.5*1e-4 trisos = [] random.seed(1) for i in range(100): # Randomly sample location - x = random.uniform(-0.5, 0.5) - y = random.uniform(-0.5, 0.5) - z = random.uniform(-0.5, 0.5) - t = openmc.model.TRISO(materials, radii, (x, y, z)) + lim = 0.5 - outer_radius*1.001 + x = random.uniform(-lim, lim) + y = random.uniform(-lim, lim) + z = random.uniform(-lim, lim) + t = openmc.model.TRISO(outer_radius, inner_univ, (x, y, z)) # Make sure TRISO doesn't overlap with another for tp in trisos: xp, yp, zp = tp.center distance = sqrt((x - xp)**2 + (y - yp)**2 + (z - zp)**2) - if distance <= 2*radii[-1]: + if distance <= 2*outer_radius: break else: trisos.append(t) @@ -82,8 +91,9 @@ class TRISOTestHarness(PyAPITestHarness): # Create lattice ll, ur = box.region.bounding_box shape = (3, 3, 3) + pitch = (ur - ll) / shape lattice = openmc.model.create_triso_lattice( - trisos, ll, (ur - ll)/shape, shape, graphite) + trisos, ll, pitch, shape, graphite) box.fill = lattice root = openmc.Universe(0, cells=[box]) @@ -93,7 +103,7 @@ class TRISOTestHarness(PyAPITestHarness): settings = openmc.Settings() settings.batches = 5 settings.inactive = 0 - settings.particles = 50 + settings.particles = 100 settings.source = openmc.Source(space=openmc.stats.Point()) settings.export_to_xml() From 69f2bc10a8a628f5feb545b393150e2b5eff01a3 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 7 Jun 2016 20:08:54 -0500 Subject: [PATCH 062/417] Warn user if TRISO particle is placed outside of lattice --- openmc/model/triso.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index ca519ed6fe..6f0d145b2f 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -1,6 +1,7 @@ import copy from collections import Iterable from numbers import Real +import warnings import numpy as np @@ -132,6 +133,9 @@ def create_triso_lattice(trisos, lower_left, pitch, shape, background): t_copy.cell.fill = t.cell.fill t_copy._surface.id = None triso_locations[idx].append(t_copy) + else: + warnings.warn('TRISO particle is partially or completely ' + 'outside of the lattice.') # Create universes universes = np.empty(shape[::-1], dtype=openmc.Universe) From 933fdd3c818dfaefc7745af4a435308850ba3811 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 7 Jun 2016 22:17:46 -0500 Subject: [PATCH 063/417] Allow multiple temperatures to be used in a material --- openmc/material.py | 95 +++++++++++++++++++++------------------------- 1 file changed, 44 insertions(+), 51 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index f29a42117f..66c2320ea4 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -50,14 +50,14 @@ class Material(object): Units used for `density`. Can be one of 'g/cm3', 'g/cc', 'kg/cm3', 'atom/b-cm', 'atom/cm3', 'sum', or 'macro'. The 'macro' unit only applies in the case of a multi-group calculation. - elements : collections.OrderedDict - Dictionary whose keys are element names and values are 3-tuples - consisting of an :class:`openmc.Element` instance, the percent density, - and the percent type (atom or weight fraction). - nuclides : collections.OrderedDict - Dictionary whose keys are nuclide names and values are 3-tuples - consisting of an :class:`openmc.Nuclide` instance, the percent density, - and the percent type (atom or weight fraction). + elements : list of tuple + List in which each item is a 3-tuple consisting of an + :class:`openmc.Element` instance, the percent density, and the percent + type ('ao' or 'wo'). + nuclides : list of tuple + List in which each item is a 3-tuple consisting of an + :class:`openmc.Nuclide` instance, the percent density, and the percent + type ('ao' or 'wo'). """ @@ -68,19 +68,15 @@ class Material(object): self._density = None self._density_units = '' - # An ordered dictionary of Nuclides (order affects OpenMC results) - # Keys - Nuclide names - # Values - tuple (nuclide, percent, percent type) - self._nuclides = OrderedDict() + # A list of tuples (nuclide, percent, percent type) + self._nuclides = [] # The single instance of Macroscopic data present in this material # (only one is allowed, hence this is different than _nuclides, etc) self._macroscopic = None - # An ordered dictionary of Elements (order affects OpenMC results) - # Keys - Element names - # Values - tuple (element, percent, percent type) - self._elements = OrderedDict() + # A list of tuples (element, percent, percent type) + self._elements = [] # If specified, a list of tuples of (table name, xs identifier) self._sab = [] @@ -134,10 +130,8 @@ class Material(object): string += '{0: <16}\n'.format('\tNuclides') - for nuclide in self._nuclides: - percent = self._nuclides[nuclide][1] - percent_type = self._nuclides[nuclide][2] - string += '{0: <16}'.format('\t{0}'.format(nuclide)) + for nuclide, percent, percent_type in self._nuclides: + string += '{0: <16}'.format('\t{0.name}.{0.xs}'.format(nuclide)) string += '=\t{0: <12} [{1}]\n'.format(percent, percent_type) if self._macroscopic is not None: @@ -146,10 +140,8 @@ class Material(object): string += '{0: <16}\n'.format('\tElements') - for element in self._elements: - percent = self._elements[element][1] - percent_type = self._elements[element][2] - string += '{0: <16}'.format('\t{0}'.format(element)) + for element, percent, percent_type in self._elements: + string += '{0: <16}'.format('\t{0.name}.{0.xs}'.format(element)) string += '=\t{0: <12} [{1}]\n'.format(percent, percent_type) return string @@ -301,7 +293,7 @@ class Material(object): else: nuclide = openmc.Nuclide(nuclide) - self._nuclides[nuclide._name] = (nuclide, percent, percent_type) + self._nuclides.append((nuclide, percent, percent_type)) def remove_nuclide(self, nuclide): """Remove a nuclide from the material @@ -319,8 +311,9 @@ class Material(object): raise ValueError(msg) # If the Material contains the Nuclide, delete it - if nuclide._name in self._nuclides: - del self._nuclides[nuclide._name] + for nuc in self._nuclides: + if nuclide == nuc: + self._nuclides.remove(nuc) def add_macroscopic(self, macroscopic): """Add a macroscopic to the material. This will also set the @@ -439,10 +432,9 @@ class Material(object): raise NotImplementedError('Expanding natural element based on ' 'weight percent is not yet supported.') for isotope, abundance in element.expand(): - self._nuclides[isotope.name] = ( - isotope, percent*abundance, percent_type) + self._nuclides.append((isotope, percent*abundance, percent_type)) else: - self._elements[element.name] = (element, percent, percent_type) + self._elements.append((element, percent, percent_type)) def remove_element(self, element): """Remove a natural element from the material @@ -454,9 +446,15 @@ class Material(object): """ - # If the Material contains the Element, delete it - if element._name in self._elements: - del self._elements[element._name] + if not isinstance(nuclide, openmc.Element): + msg = 'Unable to remove "{0}" in Material ID="{1}" ' \ + 'since it is not an Element'.format(self.id, element) + raise ValueError(msg) + + # If the Material contains the Nuclide, delete it + for elm in self._elements: + if element == elm: + self._nuclides.remove(elm) def add_s_alpha_beta(self, name, xs): r"""Add an :math:`S(\alpha,\beta)` table to the material @@ -488,10 +486,10 @@ class Material(object): self._sab.append((name, xs)) def make_isotropic_in_lab(self): - for nuclide_name in self._nuclides: - self._nuclides[nuclide_name][0].scattering = 'iso-in-lab' - for element_name in self._elements: - self._elements[element_name][0].scattering = 'iso-in-lab' + for nuclide, percent, percent_type in self._nuclides: + nuclide.scattering = 'iso-in-lab' + for element, percent, percent_type in self._elements: + element.scattering = 'iso-in-lab' def get_all_nuclides(self): """Returns all nuclides in the material @@ -506,15 +504,10 @@ class Material(object): nuclides = OrderedDict() - for nuclide_name, nuclide_tuple in self._nuclides.items(): - nuclide = nuclide_tuple[0] - density = nuclide_tuple[1] - nuclides[nuclide._name] = (nuclide, density) - - for element_name, element_tuple in self._elements.items(): - element = element_tuple[0] - density = element_tuple[1] + for nuclide, density, density_type in self._nuclides: + nuclides[nuclide.name] = (nuclide, density) + for element, density, density_type in self._elements: # Expand natural element into isotopes for isotope, abundance in element.expand(): nuclides[isotope.name] = (isotope, density*abundance) @@ -523,7 +516,7 @@ class Material(object): def _get_nuclide_xml(self, nuclide, distrib=False): xml_element = ET.Element("nuclide") - xml_element.set("name", nuclide[0]._name) + xml_element.set("name", nuclide[0].name) if not distrib: if nuclide[2] == 'ao': @@ -550,7 +543,7 @@ class Material(object): def _get_element_xml(self, element, distrib=False): xml_element = ET.Element("element") - xml_element.set("name", str(element[0]._name)) + xml_element.set("name", str(element[0].name)) if not distrib: if element[2] == 'ao': @@ -569,7 +562,7 @@ class Material(object): def _get_nuclides_xml(self, nuclides, distrib=False): xml_elements = [] - for nuclide in nuclides.values(): + for nuclide in nuclides: xml_elements.append(self._get_nuclide_xml(nuclide, distrib)) return xml_elements @@ -577,7 +570,7 @@ class Material(object): def _get_elements_xml(self, elements, distrib=False): xml_elements = [] - for element in elements.values(): + for element in elements: xml_elements.append(self._get_element_xml(element, distrib)) return xml_elements @@ -625,7 +618,7 @@ class Material(object): subelement = ET.SubElement(element, "compositions") comps = [] - allnucs = self._nuclides.values() + self._elements.values() + allnucs = self._nuclides + self._elements dist_per_type = allnucs[0][2] for nuc, per, typ in allnucs: if not typ == dist_per_type: @@ -820,4 +813,4 @@ class Materials(cv.CheckedList): # Write the XML Tree to the materials.xml file tree = ET.ElementTree(self._materials_file) tree.write("materials.xml", xml_declaration=True, - encoding='utf-8', method="xml") + encoding='utf-8', method="xml") From dffb9858e80f052bc4152b5d1602df9c9c5e06ea Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 8 Jun 2016 19:38:44 -0400 Subject: [PATCH 064/417] Fixed per @paulromano comments --- .../pythonapi/examples/mgxs-part-iv.ipynb | 172 +-- docs/source/usersguide/mgxs_library.rst | 4 +- openmc/mgxs/library.py | 42 +- src/mgxs_header.F90 | 14 +- src/scattdata_header.F90 | 20 +- 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 ++++++++--------- .../results_true.dat | 2 +- 10 files changed, 771 insertions(+), 795 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index 5459c3dfe4..e5c80c1926 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -432,7 +432,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -722,8 +722,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: b41ec2178cc78c6c5968b47ebf09d926cdc44d00\n", - " Date/Time: 2016-06-07 19:46:24\n", + " Git SHA1: 826d5a43d85eaec1b6c7b4ce22e1a8f5e9336a4f\n", + " Date/Time: 2016-06-08 19:33:38\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -810,20 +810,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4790E+00 seconds\n", - " Reading cross sections = 1.1810E+00 seconds\n", - " Total time in simulation = 1.7439E+01 seconds\n", - " Time in transport only = 1.7334E+01 seconds\n", - " Time in inactive batches = 2.1960E+00 seconds\n", - " Time in active batches = 1.5243E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", + " Total time for initialization = 1.4220E+00 seconds\n", + " Reading cross sections = 1.1320E+00 seconds\n", + " Total time in simulation = 1.6571E+01 seconds\n", + " Time in transport only = 1.6501E+01 seconds\n", + " Time in inactive batches = 2.1010E+00 seconds\n", + " Time in active batches = 1.4470E+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 = 0.0000E+00 seconds\n", - " Total time elapsed = 1.8926E+01 seconds\n", - " Calculation Rate (inactive) = 22768.7 neutrons/second\n", - " Calculation Rate (active) = 13120.8 neutrons/second\n", + " Total time elapsed = 1.8002E+01 seconds\n", + " Calculation Rate (inactive) = 23798.2 neutrons/second\n", + " Calculation Rate (active) = 13821.7 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1098,8 +1098,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: b41ec2178cc78c6c5968b47ebf09d926cdc44d00\n", - " Date/Time: 2016-06-07 19:46:43\n", + " Git SHA1: 826d5a43d85eaec1b6c7b4ce22e1a8f5e9336a4f\n", + " Date/Time: 2016-06-08 19:33:56\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1124,56 +1124,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.02438 \n", - " 2/1 1.04495 \n", - " 3/1 1.03438 \n", - " 4/1 0.99945 \n", - " 5/1 1.00818 \n", - " 6/1 1.00174 \n", - " 7/1 1.03430 \n", - " 8/1 1.02233 \n", - " 9/1 1.01200 \n", - " 10/1 1.02727 \n", - " 11/1 1.04051 \n", - " 12/1 1.02665 1.03358 +/- 0.00693\n", - " 13/1 1.01925 1.02880 +/- 0.00623\n", - " 14/1 1.03520 1.03040 +/- 0.00469\n", - " 15/1 1.03185 1.03069 +/- 0.00364\n", - " 16/1 1.03729 1.03179 +/- 0.00317\n", - " 17/1 1.00718 1.02827 +/- 0.00442\n", - " 18/1 1.00733 1.02566 +/- 0.00464\n", - " 19/1 1.02123 1.02516 +/- 0.00412\n", - " 20/1 1.01673 1.02432 +/- 0.00378\n", - " 21/1 1.03445 1.02524 +/- 0.00354\n", - " 22/1 1.03063 1.02569 +/- 0.00326\n", - " 23/1 1.00806 1.02433 +/- 0.00329\n", - " 24/1 1.03707 1.02524 +/- 0.00318\n", - " 25/1 1.01907 1.02483 +/- 0.00299\n", - " 26/1 1.01970 1.02451 +/- 0.00282\n", - " 27/1 1.00208 1.02319 +/- 0.00296\n", - " 28/1 1.02836 1.02348 +/- 0.00280\n", - " 29/1 1.02679 1.02365 +/- 0.00266\n", - " 30/1 1.03997 1.02447 +/- 0.00265\n", - " 31/1 0.99825 1.02322 +/- 0.00281\n", - " 32/1 1.01865 1.02301 +/- 0.00269\n", - " 33/1 1.00846 1.02238 +/- 0.00265\n", - " 34/1 1.01864 1.02222 +/- 0.00254\n", - " 35/1 1.02137 1.02219 +/- 0.00243\n", - " 36/1 1.02781 1.02241 +/- 0.00235\n", - " 37/1 1.02395 1.02246 +/- 0.00226\n", - " 38/1 1.00883 1.02198 +/- 0.00223\n", - " 39/1 0.99776 1.02114 +/- 0.00231\n", - " 40/1 1.01546 1.02095 +/- 0.00224\n", - " 41/1 1.04425 1.02170 +/- 0.00229\n", - " 42/1 1.02481 1.02180 +/- 0.00222\n", - " 43/1 1.00925 1.02142 +/- 0.00219\n", - " 44/1 1.04389 1.02208 +/- 0.00222\n", - " 45/1 1.04451 1.02272 +/- 0.00225\n", - " 46/1 1.02519 1.02279 +/- 0.00219\n", - " 47/1 1.03656 1.02316 +/- 0.00216\n", - " 48/1 1.04310 1.02369 +/- 0.00217\n", - " 49/1 1.03258 1.02392 +/- 0.00212\n", - " 50/1 1.01093 1.02359 +/- 0.00210\n", + " 1/1 0.99367 \n", + " 2/1 1.03173 \n", + " 3/1 1.01999 \n", + " 4/1 1.01421 \n", + " 5/1 1.03980 \n", + " 6/1 1.04540 \n", + " 7/1 1.04199 \n", + " 8/1 1.02680 \n", + " 9/1 1.01267 \n", + " 10/1 1.03420 \n", + " 11/1 1.05773 \n", + " 12/1 1.03475 1.04624 +/- 0.01149\n", + " 13/1 1.03632 1.04293 +/- 0.00741\n", + " 14/1 0.99297 1.03044 +/- 0.01355\n", + " 15/1 1.02413 1.02918 +/- 0.01057\n", + " 16/1 1.02359 1.02825 +/- 0.00868\n", + " 17/1 0.99913 1.02409 +/- 0.00843\n", + " 18/1 1.01493 1.02294 +/- 0.00739\n", + " 19/1 1.03010 1.02374 +/- 0.00657\n", + " 20/1 1.04890 1.02626 +/- 0.00639\n", + " 21/1 1.01267 1.02502 +/- 0.00591\n", + " 22/1 1.02637 1.02513 +/- 0.00540\n", + " 23/1 1.01374 1.02426 +/- 0.00504\n", + " 24/1 1.06661 1.02728 +/- 0.00556\n", + " 25/1 1.03212 1.02760 +/- 0.00519\n", + " 26/1 1.05433 1.02927 +/- 0.00513\n", + " 27/1 0.99891 1.02749 +/- 0.00514\n", + " 28/1 1.00616 1.02630 +/- 0.00499\n", + " 29/1 1.04583 1.02733 +/- 0.00483\n", + " 30/1 1.01512 1.02672 +/- 0.00462\n", + " 31/1 0.98104 1.02455 +/- 0.00491\n", + " 32/1 1.04202 1.02534 +/- 0.00474\n", + " 33/1 1.00779 1.02458 +/- 0.00460\n", + " 34/1 1.02450 1.02457 +/- 0.00440\n", + " 35/1 0.98882 1.02314 +/- 0.00446\n", + " 36/1 1.01541 1.02285 +/- 0.00429\n", + " 37/1 1.02050 1.02276 +/- 0.00413\n", + " 38/1 1.03573 1.02322 +/- 0.00401\n", + " 39/1 1.03649 1.02368 +/- 0.00389\n", + " 40/1 1.01434 1.02337 +/- 0.00378\n", + " 41/1 1.02345 1.02337 +/- 0.00365\n", + " 42/1 1.01900 1.02323 +/- 0.00354\n", + " 43/1 1.01450 1.02297 +/- 0.00344\n", + " 44/1 1.03127 1.02321 +/- 0.00335\n", + " 45/1 1.01598 1.02301 +/- 0.00326\n", + " 46/1 1.00851 1.02260 +/- 0.00319\n", + " 47/1 1.03406 1.02291 +/- 0.00312\n", + " 48/1 1.02373 1.02294 +/- 0.00303\n", + " 49/1 1.04066 1.02339 +/- 0.00299\n", + " 50/1 1.02011 1.02331 +/- 0.00292\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -1183,27 +1183,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.7000E-02 seconds\n", + " Total time for initialization = 3.1000E-02 seconds\n", " Reading cross sections = 5.0000E-03 seconds\n", - " Total time in simulation = 1.1738E+01 seconds\n", - " Time in transport only = 1.1701E+01 seconds\n", - " Time in inactive batches = 1.3240E+00 seconds\n", - " Time in active batches = 1.0414E+01 seconds\n", - " Time synchronizing fission bank = 8.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time in simulation = 1.1867E+01 seconds\n", + " Time in transport only = 1.1830E+01 seconds\n", + " Time in inactive batches = 1.2670E+00 seconds\n", + " Time in active batches = 1.0600E+01 seconds\n", + " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Sampling source sites = 7.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 = 1.1785E+01 seconds\n", - " Calculation Rate (inactive) = 37764.4 neutrons/second\n", - " Calculation Rate (active) = 19204.9 neutrons/second\n", + " Total time elapsed = 1.1907E+01 seconds\n", + " Calculation Rate (inactive) = 39463.3 neutrons/second\n", + " Calculation Rate (active) = 18867.9 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02444 +/- 0.00180\n", - " k-effective (Track-length) = 1.02359 +/- 0.00210\n", - " k-effective (Absorption) = 1.02530 +/- 0.00175\n", - " Combined k-effective = 1.02471 +/- 0.00130\n", + " k-effective (Collision) = 1.02638 +/- 0.00260\n", + " k-effective (Track-length) = 1.02331 +/- 0.00292\n", + " k-effective (Absorption) = 1.02579 +/- 0.00132\n", + " Combined k-effective = 1.02558 +/- 0.00136\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -1285,8 +1285,8 @@ "output_type": "stream", "text": [ "Continuous-Energy keff = 1.024295\n", - "Multi-Group keff = 1.024707\n", - "bias [pcm]: -41.2\n" + "Multi-Group keff = 1.025577\n", + "bias [pcm]: -128.2\n" ] } ], @@ -1383,7 +1383,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1392,9 +1392,9 @@ }, { "data": { - "image/png": "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\nD7ZNrAVaR8hwAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index daf99d481b..32e4c550cc 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -171,7 +171,9 @@ attributes/sub-elements required to describe the meta-data: provided via the ``scatt_type`` element above, is represented and thus used during the scattering process. Specifically, the options are to either convert the Legendre expansion to a tabular representation or leave it as - a set of Legendre coefficients. Converting to a tabular representation will cost memory but can allow for a decrease in runtime compared to leaving as a set of Legendre coefficients. This element has the following + a set of Legendre coefficients. Converting to a tabular representation + will cost memory but can allow for a decrease in runtime compared to + leaving as a set of Legendre coefficients. This element has the following attributes/sub-elements: :enable: diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 886eebf45f..9241892646 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -778,18 +778,18 @@ class Library(object): Scattering order for this data entry. Default is None, which will set the XSdata object to use the order of the Library. - tabular_legendre : {None, bool} + tabular_legendre : None or bool Flag to denote whether or not the Legendre expansion of the scattering angular distribution is to be converted to a tabular representation by OpenMC. A value of `True` means that it is to be - converted while a value of 'False' means that it will not be. + converted while a value of `False` means that it will not be. Defaults to `None` which leaves the default behavior of OpenMC in place (the distribution is converted to a tabular representation). - tabular_points : {int} - This parameter is not used unless the `tabular_legendre` is set to - `True`. In this case, this parameter sets the number of - equally-spaced points in the domain of [-1,1] to be used in - building the tabular distribution. Default is `33`. + tabular_points : int + This parameter is not used unless the ``tabular_legendre`` + parameter is set to `True`. In this case, this parameter sets the + number of equally-spaced points in the domain of [-1,1] to be used + in building the tabular distribution. Default is `33`. Returns ------- @@ -947,18 +947,18 @@ class Library(object): Cross section set identifier (i.e., '71c') for all data sets (if only str) or for each individual one (if iterable of str). Defaults to '1m'. - tabular_legendre : {None, bool} + tabular_legendre : None or bool Flag to denote whether or not the Legendre expansion of the scattering angular distribution is to be converted to a tabular representation by OpenMC. A value of `True` means that it is to be - converted while a value of 'False' means that it will not be. + converted while a value of `False` means that it will not be. Defaults to `None` which leaves the default behavior of OpenMC in place (the distribution is converted to a tabular representation). - tabular_points : {int} - This parameter is not used unless the `tabular_legendre` is set to - `True`. In this case, this parameter sets the number of - equally-spaced points in the domain of [-1,1] to be used in - building the tabular distribution. Default is `33`. + tabular_points : int + This parameter is not used unless the ``tabular_legendre`` + parameter is set to `True`. In this case, this parameter sets the + number of equally-spaced points in the domain of [-1,1] to be used + in building the tabular distribution. Default is `33`. Returns ------- @@ -1046,18 +1046,18 @@ class Library(object): Cross section set identifier (i.e., '71c') for all data sets (if only str) or for each individual one (if iterable of str). Defaults to '1m'. - tabular_legendre : {None, bool} + tabular_legendre : None or bool Flag to denote whether or not the Legendre expansion of the scattering angular distribution is to be converted to a tabular representation by OpenMC. A value of `True` means that it is to be - converted while a value of 'False' means that it will not be. + converted while a value of `False` means that it will not be. Defaults to `None` which leaves the default behavior of OpenMC in place (the distribution is converted to a tabular representation). - tabular_points : {int} - This parameter is not used unless the `tabular_legendre` is set to - `True`. In this case, this parameter sets the number of - equally-spaced points in the domain of [-1,1] to be used in - building the tabular distribution. Default is `33`. + tabular_points : int + This parameter is not used unless the ``tabular_legendre`` + parameter is set to `True`. In this case, this parameter sets the + number of equally-spaced points in the domain of [-1,1] to be used + in building the tabular distribution. Default is `33`. Returns ------- diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 519da708c9..753f4e1498 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -277,7 +277,7 @@ module mgxs_header real(8), allocatable :: scatt_coeffs(:, :, :) real(8), allocatable :: input_scatt(:, :, :) real(8), allocatable :: temp_scatt(:, :, :) - real(8) :: dmu, mu, norm, p0, m, mu0 + real(8) :: dmu, mu, norm integer :: order, order_dim, gin, gout, l, arr_len integer :: legendre_mu_points, imu @@ -498,18 +498,6 @@ module mgxs_header (scatt_coeffs(imu - 1, gout, gin) + & scatt_coeffs(imu, gout, gin)) end if - ! Now create CDF from fmu with the analytical integral of a - ! piecewise linear function - if (imu > 1) then - p0 = scatt_coeffs(imu - 1, gout, gin) - mu0 = mu - dmu - m = (scatt_coeffs(imu, gout, gin) - & - scatt_coeffs(imu - 1, gout, gin)) / dmu - norm = norm + & - HALF * m * mu * mu + & - (p0 - m * mu0) * mu + & - (HALF * m * mu0 * mu0 - p0 * mu0) - end if end do ! Now that we have the integral, lets ensure that the distribution ! is normalized such that it preserves the original scattering xs diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 6fca891906..ee101d63ba 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -398,32 +398,18 @@ contains end do ! Re-normalize fmu for numerical integration issues and in case - ! the negative fix-up introduced un-normalized data + ! the negative fix-up introduced un-normalized data while + ! accruing the CDF norm = ZERO do imu = 2, order norm = norm + HALF * this % dmu * & (this % fmu(gin) % data(imu - 1, gout) + & this % fmu(gin) % data(imu, gout)) + this % dist(gin) % data(imu, gout) = norm end do if (norm > ZERO) then this % fmu(gin) % data(:, gout) = & this % fmu(gin) % data(:, gout) / norm - end if - - ! Now create CDF from fmu with the analytical integral - this % dist(gin) % data(1, gout) = ZERO - do imu = 2, order - p0 = this % fmu(gin) % data(imu - 1, gout) - mu0 = this % mu(imu - 1) - mu1 = this % mu(imu) - m = (this % fmu(gin) % data(imu, gout) - p0) / (mu1 - mu0) - this % dist(gin) % data(imu, gout) = HALF * m * mu1 * mu1 + & - (p0 - m * mu0) * mu1 + & - (HALF * m * mu0 * mu0 - p0 * mu0) - end do - ! Ensure we normalize to 1 still - norm = this % dist(gin) % data(order, gout) - if (norm > ZERO) then this % dist(gin) % data(:, gout) = & this % dist(gin) % data(:, gout) / norm end if diff --git a/tests/test_mg_basic/results_true.dat b/tests/test_mg_basic/results_true.dat index 1c58db0d77..7cdda73b5d 100644 --- a/tests/test_mg_basic/results_true.dat +++ b/tests/test_mg_basic/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.003952E+00 4.160185E-02 +1.047136E+00 2.765964E-02 diff --git a/tests/test_mg_max_order/results_true.dat b/tests/test_mg_max_order/results_true.dat index 3b9625201b..4db04e0897 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.026398E+00 7.824554E-02 +1.102093E+00 4.962190E-02 diff --git a/tests/test_mg_nuclide/results_true.dat b/tests/test_mg_nuclide/results_true.dat index 1c58db0d77..7cdda73b5d 100644 --- a/tests/test_mg_nuclide/results_true.dat +++ b/tests/test_mg_nuclide/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.003952E+00 4.160185E-02 +1.047136E+00 2.765964E-02 diff --git a/tests/test_mg_tallies/results_true.dat b/tests/test_mg_tallies/results_true.dat index 94ec79286d..4a654639af 100644 --- a/tests/test_mg_tallies/results_true.dat +++ b/tests/test_mg_tallies/results_true.dat @@ -1,86 +1,86 @@ k-combined: -1.003952E+00 4.160185E-02 +1.047136E+00 2.765964E-02 tally 1: -3.027550E+00 -2.152400E+00 -8.573015E-02 -1.716238E-03 -4.377236E+00 -4.480918E+00 -3.577293E-02 -2.996921E-04 -8.868872E-02 -1.842057E-03 -3.189586E+00 -2.165036E+00 -9.625303E-02 -1.898094E-03 -4.691910E+00 -4.579570E+00 -4.156421E-02 -3.532611E-04 -1.030465E-01 -2.171318E-03 -2.987648E+00 -1.869303E+00 -9.105156E-02 -1.775628E-03 -4.522682E+00 -4.342733E+00 -3.968997E-02 -3.424105E-04 -9.839988E-02 -2.104625E-03 -3.225648E+00 -2.102269E+00 -8.764034E-02 -1.567260E-03 -4.629948E+00 -4.315388E+00 -3.574267E-02 -2.684687E-04 -8.861368E-02 -1.650142E-03 -3.394894E+00 -2.332105E+00 -8.432398E-02 -1.485500E-03 -4.659277E+00 -4.398368E+00 -3.230884E-02 -2.317511E-04 -8.010050E-02 -1.424457E-03 -3.013158E+00 -2.009646E+00 -7.490989E-02 -1.178333E-03 -4.123109E+00 -3.682531E+00 -2.869447E-02 -1.710786E-04 -7.113970E-02 -1.051534E-03 -3.157181E+00 -2.100927E+00 -8.531655E-02 -1.520341E-03 -4.523209E+00 -4.302173E+00 -3.468239E-02 -2.516726E-04 -8.598504E-02 -1.546905E-03 -2.922890E+00 -1.788820E+00 -8.708247E-02 -1.621130E-03 -4.305352E+00 -3.866481E+00 -3.740038E-02 -3.097101E-04 -9.272351E-02 -1.903632E-03 +2.490837E+00 +1.335515E+00 +8.299408E-02 +1.628477E-03 +3.917892E+00 +3.395475E+00 +3.777816E-02 +3.574150E-04 +9.366009E-02 +2.196850E-03 +2.410307E+00 +1.211320E+00 +7.104710E-02 +1.056830E-03 +3.619111E+00 +2.712466E+00 +3.046789E-02 +2.019483E-04 +7.553639E-02 +1.241275E-03 +2.616860E+00 +1.407243E+00 +7.221083E-02 +1.059301E-03 +3.719840E+00 +2.827103E+00 +2.963219E-02 +1.775955E-04 +7.346451E-02 +1.091590E-03 +2.383417E+00 +1.171863E+00 +6.968054E-02 +9.924374E-04 +3.486989E+00 +2.493855E+00 +2.962148E-02 +1.817051E-04 +7.343795E-02 +1.116850E-03 +2.177844E+00 +9.998272E-01 +6.808817E-02 +9.543925E-04 +3.302614E+00 +2.268097E+00 +3.001326E-02 +1.847730E-04 +7.440926E-02 +1.135706E-03 +2.585363E+00 +1.416531E+00 +7.208386E-02 +1.068367E-03 +3.721777E+00 +2.868016E+00 +2.981132E-02 +1.871051E-04 +7.390860E-02 +1.150041E-03 +2.740199E+00 +1.663131E+00 +8.719535E-02 +1.596752E-03 +4.146740E+00 +3.682203E+00 +3.870935E-02 +3.136109E-04 +9.596871E-02 +1.927608E-03 +2.212799E+00 +1.000035E+00 +7.449165E-02 +1.135538E-03 +3.466616E+00 +2.419923E+00 +3.399202E-02 +2.463541E-04 +8.427346E-02 +1.514215E-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 -3.136746E+00 -2.097844E+00 -9.001259E-02 -1.679379E-03 -4.662194E+00 -4.592725E+00 -3.801404E-02 -2.981421E-04 -9.424490E-02 -1.832530E-03 -3.106448E+00 -2.078391E+00 -9.012356E-02 -1.762294E-03 -4.513037E+00 -4.378913E+00 -3.813004E-02 -3.167893E-04 -9.453248E-02 -1.947145E-03 -2.830121E+00 -1.799064E+00 -8.110239E-02 -1.428875E-03 -4.186480E+00 -3.869678E+00 -3.421633E-02 -2.502127E-04 -8.482957E-02 -1.537931E-03 -3.117676E+00 -1.961910E+00 -8.682325E-02 -1.551480E-03 -4.541798E+00 -4.177594E+00 -3.598671E-02 -2.719848E-04 -8.921872E-02 -1.671754E-03 -2.860792E+00 -1.699774E+00 -7.734553E-02 -1.212035E-03 -4.045685E+00 -3.352230E+00 -3.136656E-02 -2.020318E-04 -7.776439E-02 -1.241788E-03 -2.807124E+00 -1.635117E+00 -8.312523E-02 -1.403341E-03 -4.138428E+00 -3.503069E+00 -3.560217E-02 -2.611276E-04 -8.826537E-02 -1.605020E-03 -2.924592E+00 -1.733173E+00 -8.343992E-02 -1.403493E-03 -4.345943E+00 -3.817213E+00 -3.513702E-02 -2.517119E-04 -8.711216E-02 -1.547146E-03 -2.646486E+00 -1.418290E+00 -7.950085E-02 -1.309718E-03 -3.966626E+00 -3.215631E+00 -3.437595E-02 -2.503895E-04 -8.522531E-02 -1.539019E-03 +2.099094E+00 +8.919271E-01 +7.540489E-02 +1.194829E-03 +3.366752E+00 +2.321133E+00 +3.536709E-02 +2.711517E-04 +8.768256E-02 +1.666633E-03 +2.413065E+00 +1.186499E+00 +7.505466E-02 +1.154624E-03 +3.609948E+00 +2.664048E+00 +3.294274E-02 +2.242161E-04 +8.167207E-02 +1.378144E-03 +2.536174E+00 +1.301621E+00 +7.790327E-02 +1.242427E-03 +3.836384E+00 +2.980367E+00 +3.409705E-02 +2.443384E-04 +8.453386E-02 +1.501825E-03 +2.666159E+00 +1.492268E+00 +7.417343E-02 +1.141120E-03 +3.912196E+00 +3.186439E+00 +3.075257E-02 +1.953163E-04 +7.624217E-02 +1.200511E-03 +2.459342E+00 +1.286534E+00 +6.409323E-02 +8.519553E-04 +3.511461E+00 +2.568245E+00 +2.550853E-02 +1.387171E-04 +6.324108E-02 +8.526242E-04 +3.227353E+00 +2.189454E+00 +8.161989E-02 +1.366996E-03 +4.465292E+00 +4.143037E+00 +3.169508E-02 +2.069605E-04 +7.857885E-02 +1.272082E-03 +3.006650E+00 +1.972749E+00 +8.846181E-02 +1.643195E-03 +4.449165E+00 +4.222523E+00 +3.779771E-02 +2.999515E-04 +9.370858E-02 +1.843651E-03 +2.591189E+00 +1.530310E+00 +7.305643E-02 +1.114250E-03 +3.732882E+00 +3.031120E+00 +3.039294E-02 +1.919600E-04 +7.535057E-02 +1.179882E-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 -3.421827E+00 -2.488458E+00 -9.626948E-02 -2.065197E-03 -5.040929E+00 -5.451459E+00 -4.018656E-02 -3.779606E-04 -9.963105E-02 -2.323134E-03 -2.869547E+00 -1.698223E+00 -8.662967E-02 -1.551328E-03 -4.227759E+00 -3.702584E+00 -3.740987E-02 -2.903037E-04 -9.274703E-02 -1.784351E-03 -2.588566E+00 -1.357415E+00 -7.706802E-02 -1.216264E-03 -3.821156E+00 -2.967091E+00 -3.309228E-02 -2.275536E-04 -8.204281E-02 -1.398658E-03 -2.777772E+00 -1.584289E+00 -8.469785E-02 -1.456208E-03 -4.195353E+00 -3.574265E+00 -3.693140E-02 -2.790926E-04 -9.156081E-02 -1.715441E-03 -3.118197E+00 -1.989138E+00 -9.265883E-02 -1.753400E-03 -4.574869E+00 -4.260081E+00 -3.969940E-02 -3.241960E-04 -9.842328E-02 -1.992670E-03 -2.591904E+00 -1.370188E+00 -8.148726E-02 -1.342503E-03 -3.988752E+00 -3.228928E+00 -3.608041E-02 -2.655091E-04 -8.945102E-02 -1.631951E-03 -3.123916E+00 -1.985559E+00 -9.297564E-02 -1.754830E-03 -4.650584E+00 -4.387677E+00 -3.995654E-02 -3.270558E-04 -9.906077E-02 -2.010247E-03 -2.507814E+00 -1.313596E+00 -7.534295E-02 -1.160881E-03 -3.761249E+00 -2.915759E+00 -3.258970E-02 -2.199767E-04 -8.079681E-02 -1.352086E-03 +2.667561E+00 +1.528159E+00 +6.981409E-02 +1.036744E-03 +3.696781E+00 +2.912439E+00 +2.768232E-02 +1.628195E-04 +6.863038E-02 +1.000769E-03 +2.579691E+00 +1.399684E+00 +7.252523E-02 +1.085979E-03 +3.762646E+00 +2.966415E+00 +3.021298E-02 +1.872587E-04 +7.490441E-02 +1.150985E-03 +2.326398E+00 +1.111745E+00 +6.380790E-02 +8.422824E-04 +3.373074E+00 +2.338678E+00 +2.619114E-02 +1.463613E-04 +6.493342E-02 +8.996094E-04 +2.689651E+00 +1.483190E+00 +8.007622E-02 +1.328579E-03 +4.015410E+00 +3.294872E+00 +3.443210E-02 +2.525628E-04 +8.536450E-02 +1.552377E-03 +2.712538E+00 +1.496273E+00 +7.040893E-02 +1.033599E-03 +3.801423E+00 +2.967673E+00 +2.785218E-02 +1.687241E-04 +6.905150E-02 +1.037062E-03 +3.101358E+00 +2.022582E+00 +8.316566E-02 +1.469875E-03 +4.433641E+00 +4.167950E+00 +3.363316E-02 +2.428472E-04 +8.338377E-02 +1.492660E-03 +2.669269E+00 +1.482479E+00 +7.250461E-02 +1.097959E-03 +3.815372E+00 +3.039000E+00 +2.952621E-02 +1.837209E-04 +7.320176E-02 +1.129240E-03 +2.719836E+00 +1.670890E+00 +8.176774E-02 +1.472662E-03 +4.030045E+00 +3.607044E+00 +3.530219E-02 +2.721266E-04 +8.752165E-02 +1.672625E-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 -3.072424E+00 -1.910502E+00 -8.487675E-02 -1.467547E-03 -4.502748E+00 -4.073633E+00 -3.505649E-02 -2.616264E-04 -8.691250E-02 -1.608086E-03 -3.358497E+00 -2.340508E+00 -9.563725E-02 -1.882737E-03 -4.919309E+00 -4.997057E+00 -4.012501E-02 -3.331881E-04 -9.947844E-02 -2.047940E-03 -2.841595E+00 -1.676656E+00 -8.961778E-02 -1.706734E-03 -4.382947E+00 -3.971256E+00 -3.977482E-02 -3.476057E-04 -9.861025E-02 -2.136557E-03 -3.031993E+00 -1.887195E+00 -1.005232E-01 -2.088650E-03 -4.706199E+00 -4.537534E+00 -4.558466E-02 -4.340386E-04 -1.130141E-01 -2.667817E-03 -3.116522E+00 -2.011384E+00 -9.595523E-02 -1.977738E-03 -4.627314E+00 -4.456240E+00 -4.188172E-02 -3.906963E-04 -1.038337E-01 -2.401414E-03 -2.906411E+00 -1.724257E+00 -9.583879E-02 -1.902835E-03 -4.514939E+00 -4.188183E+00 -4.337455E-02 -3.935555E-04 -1.075347E-01 -2.418988E-03 -2.723724E+00 -1.514959E+00 -8.518353E-02 -1.512432E-03 -4.173364E+00 -3.561677E+00 -3.761270E-02 -3.039338E-04 -9.324988E-02 -1.868128E-03 -2.336622E+00 -1.158899E+00 -8.017647E-02 -1.335514E-03 -3.700707E+00 -2.838852E+00 -3.695886E-02 -2.855605E-04 -9.162889E-02 -1.755197E-03 +2.643152E+00 +1.461242E+00 +7.777503E-02 +1.277892E-03 +3.881716E+00 +3.158579E+00 +3.318888E-02 +2.353505E-04 +8.228231E-02 +1.446581E-03 +2.707136E+00 +1.528526E+00 +7.153411E-02 +1.046460E-03 +3.793295E+00 +2.976791E+00 +2.857458E-02 +1.671752E-04 +7.084247E-02 +1.027542E-03 +2.745209E+00 +1.561299E+00 +7.557988E-02 +1.164281E-03 +3.914803E+00 +3.154166E+00 +3.099509E-02 +1.948889E-04 +7.684344E-02 +1.197884E-03 +3.141608E+00 +2.000672E+00 +8.238823E-02 +1.366316E-03 +4.442048E+00 +3.976219E+00 +3.282615E-02 +2.177028E-04 +8.138301E-02 +1.338110E-03 +3.078971E+00 +1.928690E+00 +8.927133E-02 +1.655293E-03 +4.508330E+00 +4.154031E+00 +3.778191E-02 +3.038622E-04 +9.366939E-02 +1.867688E-03 +3.342682E+00 +2.353374E+00 +9.542381E-02 +1.892530E-03 +4.916807E+00 +5.068483E+00 +4.010858E-02 +3.330650E-04 +9.943770E-02 +2.047183E-03 +2.906350E+00 +1.760817E+00 +8.559496E-02 +1.527401E-03 +4.338708E+00 +3.888336E+00 +3.663301E-02 +2.834528E-04 +9.082102E-02 +1.742242E-03 +2.201534E+00 +1.026489E+00 +7.361463E-02 +1.156634E-03 +3.444005E+00 +2.510736E+00 +3.352726E-02 +2.491193E-04 +8.312121E-02 +1.531211E-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.107110E+00 -2.031843E+00 -8.851130E-02 -1.622664E-03 -4.517810E+00 -4.254353E+00 -3.710637E-02 -2.854685E-04 -9.199458E-02 -1.754631E-03 -3.274545E+00 -2.233343E+00 -1.058426E-01 -2.344479E-03 -4.973131E+00 -5.160486E+00 -4.734962E-02 -4.741951E-04 -1.173898E-01 -2.914639E-03 -2.636225E+00 -1.433972E+00 -7.975913E-02 -1.339963E-03 -3.942728E+00 -3.209671E+00 -3.458062E-02 -2.576972E-04 -8.573273E-02 -1.583935E-03 -2.850580E+00 -1.753714E+00 -8.409223E-02 -1.504889E-03 -4.292353E+00 -3.910272E+00 -3.606743E-02 -2.785145E-04 -8.941884E-02 -1.711888E-03 -3.177076E+00 -2.046322E+00 -9.290111E-02 -1.805479E-03 -4.671510E+00 -4.473692E+00 -3.953032E-02 -3.362191E-04 -9.800407E-02 -2.066570E-03 -2.792020E+00 -1.590839E+00 -8.956724E-02 -1.645807E-03 -4.270468E+00 -3.718893E+00 -3.995877E-02 -3.306439E-04 -9.906631E-02 -2.032302E-03 -2.319545E+00 -1.130506E+00 -7.787530E-02 -1.284059E-03 -3.631235E+00 -2.757748E+00 -3.552455E-02 -2.689956E-04 -8.807293E-02 -1.653381E-03 -2.338383E+00 -1.206709E+00 -7.569363E-02 -1.234797E-03 -3.576288E+00 -2.757162E+00 -3.391726E-02 -2.462226E-04 -8.408811E-02 -1.513407E-03 +2.379478E+00 +1.220072E+00 +7.149541E-02 +1.036720E-03 +3.597267E+00 +2.694760E+00 +3.098378E-02 +1.953397E-04 +7.681538E-02 +1.200655E-03 +3.155079E+00 +2.066218E+00 +9.171950E-02 +1.711836E-03 +4.700403E+00 +4.503318E+00 +3.904100E-02 +3.167906E-04 +9.679096E-02 +1.947152E-03 +2.737388E+00 +1.515779E+00 +7.304714E-02 +1.077128E-03 +3.854064E+00 +2.996781E+00 +2.937470E-02 +1.746013E-04 +7.282614E-02 +1.073187E-03 +3.294568E+00 +2.201280E+00 +8.370459E-02 +1.449531E-03 +4.567777E+00 +4.247816E+00 +3.258414E-02 +2.266289E-04 +8.078302E-02 +1.392974E-03 +3.040055E+00 +1.908677E+00 +8.543146E-02 +1.469528E-03 +4.395363E+00 +3.943052E+00 +3.551022E-02 +2.539139E-04 +8.803740E-02 +1.560681E-03 +2.733720E+00 +1.608810E+00 +7.575232E-02 +1.234497E-03 +3.955386E+00 +3.353987E+00 +3.126476E-02 +2.114507E-04 +7.751200E-02 +1.299681E-03 +2.633801E+00 +1.566751E+00 +7.851898E-02 +1.276803E-03 +3.867974E+00 +3.237952E+00 +3.370851E-02 +2.331450E-04 +8.357057E-02 +1.433025E-03 +2.649820E+00 +1.500516E+00 +6.849773E-02 +9.733415E-04 +3.744876E+00 +2.926356E+00 +2.706771E-02 +1.530408E-04 +6.710661E-02 +9.406650E-04 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.615843E+00 -1.511122E+00 -8.062716E-02 -1.419946E-03 -3.984393E+00 -3.462948E+00 -3.538715E-02 -2.775562E-04 -8.773227E-02 -1.705998E-03 -2.882570E+00 -1.761817E+00 -8.002023E-02 -1.361536E-03 -4.138232E+00 -3.590378E+00 -3.301403E-02 -2.428126E-04 -8.184882E-02 -1.492447E-03 -3.223528E+00 -2.083805E+00 -8.733159E-02 -1.544129E-03 -4.604746E+00 -4.254674E+00 -3.551662E-02 -2.594309E-04 -8.805326E-02 -1.594591E-03 -2.927536E+00 -1.741281E+00 -8.346281E-02 -1.434485E-03 -4.324501E+00 -3.806148E+00 -3.508574E-02 -2.599007E-04 -8.698503E-02 -1.597479E-03 -3.057707E+00 -1.944892E+00 -8.714384E-02 -1.580757E-03 -4.450690E+00 -4.103723E+00 -3.652244E-02 -2.807333E-04 -9.054690E-02 -1.725526E-03 -2.719115E+00 -1.510843E+00 -7.867244E-02 -1.258358E-03 -3.983708E+00 -3.239056E+00 -3.327673E-02 -2.253729E-04 -8.250009E-02 -1.385254E-03 -2.396119E+00 -1.153282E+00 -7.566785E-02 -1.182019E-03 -3.610641E+00 -2.634248E+00 -3.348337E-02 -2.377537E-04 -8.301240E-02 -1.461353E-03 -2.154802E+00 -1.067493E+00 -6.324323E-02 -8.945795E-04 -3.142780E+00 -2.238062E+00 -2.691333E-02 -1.628077E-04 -6.672387E-02 -1.000697E-03 +3.128432E+00 +2.123023E+00 +8.683081E-02 +1.593217E-03 +4.568791E+00 +4.439900E+00 +3.595477E-02 +2.733665E-04 +8.913952E-02 +1.680246E-03 +2.955891E+00 +1.796192E+00 +8.526700E-02 +1.464085E-03 +4.355866E+00 +3.839684E+00 +3.605221E-02 +2.663621E-04 +8.938111E-02 +1.637194E-03 +2.731962E+00 +1.617682E+00 +7.685258E-02 +1.239175E-03 +4.057901E+00 +3.505399E+00 +3.210546E-02 +2.150275E-04 +7.959627E-02 +1.321666E-03 +3.058734E+00 +1.911285E+00 +8.780153E-02 +1.572171E-03 +4.531361E+00 +4.177302E+00 +3.703146E-02 +2.828466E-04 +9.180888E-02 +1.738516E-03 +2.854688E+00 +1.652859E+00 +8.501906E-02 +1.459424E-03 +4.215336E+00 +3.600073E+00 +3.650039E-02 +2.691434E-04 +9.049224E-02 +1.654289E-03 +2.532385E+00 +1.341692E+00 +7.908024E-02 +1.289149E-03 +3.816608E+00 +3.020090E+00 +3.480705E-02 +2.494950E-04 +8.629409E-02 +1.533520E-03 +2.946914E+00 +1.857842E+00 +7.586572E-02 +1.217999E-03 +4.089763E+00 +3.522165E+00 +2.980738E-02 +1.901498E-04 +7.389883E-02 +1.168755E-03 +2.788908E+00 +1.667764E+00 +7.477958E-02 +1.148212E-03 +4.029335E+00 +3.403340E+00 +3.033277E-02 +1.914118E-04 +7.520139E-02 +1.176512E-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 -3.073244E+00 -2.018709E+00 -9.073696E-02 -1.753157E-03 -4.516776E+00 -4.329334E+00 -3.876727E-02 -3.208452E-04 -9.611233E-02 -1.972074E-03 -2.671039E+00 -1.446563E+00 -7.823234E-02 -1.250837E-03 -3.946269E+00 -3.138681E+00 -3.334746E-02 -2.319341E-04 -8.267545E-02 -1.425582E-03 -3.349978E+00 -2.319515E+00 -9.950325E-02 -2.061329E-03 -5.001138E+00 -5.168172E+00 -4.276928E-02 -3.828620E-04 -1.060342E-01 -2.353260E-03 -2.978936E+00 -1.799523E+00 -9.017252E-02 -1.638102E-03 -4.406186E+00 -3.924003E+00 -3.904232E-02 -3.071501E-04 -9.679424E-02 -1.887897E-03 -2.702401E+00 -1.471209E+00 -7.923417E-02 -1.296139E-03 -4.023502E+00 -3.272988E+00 -3.383397E-02 -2.416414E-04 -8.388161E-02 -1.485248E-03 -2.759858E+00 -1.531505E+00 -8.419492E-02 -1.488052E-03 -4.150314E+00 -3.494954E+00 -3.667250E-02 -2.957414E-04 -9.091893E-02 -1.817773E-03 -2.601272E+00 -1.380301E+00 -8.755772E-02 -1.625699E-03 -4.019486E+00 -3.299452E+00 -3.989786E-02 -3.528389E-04 -9.891530E-02 -2.168723E-03 -2.510230E+00 -1.275856E+00 -8.725714E-02 -1.601325E-03 -3.973851E+00 -3.204497E+00 -4.039490E-02 -3.543820E-04 -1.001476E-01 -2.178208E-03 +3.320603E+00 +2.324411E+00 +9.169756E-02 +1.769612E-03 +4.811447E+00 +4.885591E+00 +3.780490E-02 +3.050758E-04 +9.372640E-02 +1.875147E-03 +3.157638E+00 +2.088634E+00 +8.917486E-02 +1.627414E-03 +4.530493E+00 +4.262890E+00 +3.711278E-02 +2.791427E-04 +9.201048E-02 +1.715750E-03 +2.826797E+00 +1.654653E+00 +8.798649E-02 +1.562942E-03 +4.238099E+00 +3.671654E+00 +3.864939E-02 +3.007708E-04 +9.582007E-02 +1.848687E-03 +2.639291E+00 +1.470166E+00 +8.380168E-02 +1.469150E-03 +3.995402E+00 +3.337545E+00 +3.720130E-02 +2.907469E-04 +9.222996E-02 +1.787075E-03 +2.563883E+00 +1.375196E+00 +8.901196E-02 +1.610331E-03 +4.042903E+00 +3.361278E+00 +4.116155E-02 +3.428545E-04 +1.020482E-01 +2.107354E-03 +2.651467E+00 +1.472579E+00 +7.547436E-02 +1.201468E-03 +3.877983E+00 +3.154531E+00 +3.166886E-02 +2.150564E-04 +7.851384E-02 +1.321843E-03 +2.884789E+00 +1.801722E+00 +7.517555E-02 +1.168857E-03 +4.085136E+00 +3.522983E+00 +2.985774E-02 +1.859368E-04 +7.402368E-02 +1.142860E-03 +2.810664E+00 +1.609682E+00 +6.917229E-02 +9.875658E-04 +3.854296E+00 +3.029615E+00 +2.634304E-02 +1.483398E-04 +6.531000E-02 +9.117703E-04 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.355419E+00 -1.227267E+00 -7.298104E-02 -1.204355E-03 -3.584952E+00 -2.839605E+00 -3.206831E-02 -2.384737E-04 -7.950416E-02 -1.465778E-03 -2.885415E+00 -1.707496E+00 -8.937354E-02 -1.638109E-03 -4.328343E+00 -3.842717E+00 -3.915662E-02 -3.169623E-04 -9.707761E-02 -1.948208E-03 -2.817788E+00 -1.659313E+00 -8.795245E-02 -1.652827E-03 -4.286382E+00 -3.831800E+00 -3.878123E-02 -3.288848E-04 -9.614692E-02 -2.021489E-03 -2.987432E+00 -1.822564E+00 -8.500598E-02 -1.500428E-03 -4.380470E+00 -3.921075E+00 -3.565649E-02 -2.685990E-04 -8.840004E-02 -1.650943E-03 -2.685515E+00 -1.443739E+00 -8.434998E-02 -1.460545E-03 -4.166156E+00 -3.492673E+00 -3.738938E-02 -2.956120E-04 -9.269624E-02 -1.816978E-03 -2.686749E+00 -1.496524E+00 -8.914589E-02 -1.663073E-03 -4.156201E+00 -3.578378E+00 -4.042946E-02 -3.475741E-04 -1.002332E-01 -2.136363E-03 -2.760305E+00 -1.579416E+00 -8.914803E-02 -1.630935E-03 -4.214440E+00 -3.628492E+00 -3.989038E-02 -3.331009E-04 -9.889676E-02 -2.047404E-03 -2.681752E+00 -1.472982E+00 -8.701435E-02 -1.526110E-03 -4.175631E+00 -3.518871E+00 -3.914441E-02 -3.118235E-04 -9.704732E-02 -1.916622E-03 +3.709821E+00 +2.847102E+00 +1.037249E-01 +2.264974E-03 +5.329369E+00 +5.878403E+00 +4.295875E-02 +3.964777E-04 +1.065039E-01 +2.436949E-03 +3.237824E+00 +2.159909E+00 +9.708289E-02 +1.898400E-03 +4.765807E+00 +4.617662E+00 +4.179332E-02 +3.503645E-04 +1.036145E-01 +2.153514E-03 +2.503072E+00 +1.321745E+00 +6.623202E-02 +9.120239E-04 +3.541728E+00 +2.623055E+00 +2.654018E-02 +1.469478E-04 +6.579875E-02 +9.032144E-04 +2.360183E+00 +1.196310E+00 +7.336179E-02 +1.123869E-03 +3.552179E+00 +2.637131E+00 +3.222538E-02 +2.218615E-04 +7.989359E-02 +1.363671E-03 +2.353136E+00 +1.260383E+00 +7.514099E-02 +1.159881E-03 +3.611322E+00 +2.808437E+00 +3.349306E-02 +2.280172E-04 +8.303643E-02 +1.401507E-03 +2.404559E+00 +1.241962E+00 +6.952417E-02 +1.036673E-03 +3.551485E+00 +2.687553E+00 +2.947110E-02 +1.929942E-04 +7.306514E-02 +1.186238E-03 +2.740499E+00 +1.588007E+00 +7.592011E-02 +1.232446E-03 +3.959573E+00 +3.327411E+00 +3.134446E-02 +2.121705E-04 +7.770960E-02 +1.304106E-03 +2.647586E+00 +1.416013E+00 +7.421099E-02 +1.112815E-03 +3.826931E+00 +2.947306E+00 +3.083732E-02 +1.923794E-04 +7.645229E-02 +1.182459E-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.417493E+01 -3.967273E+02 -4.418714E+01 -3.969466E+02 -7.878379E+00 -1.248770E+01 -7.878666E+00 -1.248861E+01 -1.271565E+02 -3.251279E+03 -1.271565E+02 -3.251279E+03 +3.995283E+01 +3.210141E+02 +3.996387E+01 +3.211916E+02 +6.783537E+00 +9.416330E+00 +6.783789E+00 +9.417032E+00 +1.239468E+02 +3.134204E+03 +1.239468E+02 +3.134204E+03 diff --git a/tests/test_mgxs_library_ce_to_mg/results_true.dat b/tests/test_mgxs_library_ce_to_mg/results_true.dat index c82da3bce2..6710c82be1 100644 --- a/tests/test_mgxs_library_ce_to_mg/results_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.151644E+00 3.044607E-02 +1.140804E+00 2.937150E-02 From 14aaaa6bb8f556b9f6775ba92f2797bcbf5f2a72 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 8 Jun 2016 19:47:05 -0500 Subject: [PATCH 065/417] Make TRISO a special kind of openmc.Cell --- openmc/model/triso.py | 49 +++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index 6f0d145b2f..89e0d8aa76 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -8,60 +8,49 @@ import numpy as np import openmc import openmc.checkvalue as cv -class TRISO(object): +class TRISO(openmc.Cell): """Tristructural-isotopic (TRISO) micro fuel particle Parameters ---------- - outer_radius : int + outer_radius : float Outer radius of TRISO particle - inner_univ : openmc.Universe + fill : openmc.Universe Universe which contains all layers of the TRISO particle center : Iterable of float Cartesian coordinates of the center of the TRISO particle in cm Attributes ---------- - cell : opemc.Cell - Cell which contains the TRISO universe + id : int + Unique identifier for the TRISO cell + name : str + Name of the TRISO cell center : numpy.ndarray Cartesian coordinates of the center of the TRISO particle in cm - outside : openmc.Region - Region of space outside of the TRISO particle - bounding_box : tuple of numpy.ndarray - Lower-left and upper-right coordinates of an axis-aligned bounding box - for the TRISO particle + fill : openmc.Universe + Universe that contains the TRISO layers + region : openmc.Region + Region of space within the TRISO particle """ - def __init__(self, outer_radius, inner_univ, center=(0., 0., 0.)): + def __init__(self, outer_radius, fill, center=(0., 0., 0.)): self._surface = openmc.Sphere(R=outer_radius) - self._cell = openmc.Cell(fill=inner_univ, region=-self._surface) + super(TRISO, self).__init__(fill=fill, region=-self._surface) self.center = np.asarray(center) - @property - def bounding_box(self): - return self.cell.region.bounding_box - - @property - def cell(self): - return self._cell - @property def center(self): return self._center - @property - def outside(self): - return +self._surface - @center.setter def center(self, center): cv.check_type('TRISO center', center, Iterable, Real) self._surface.x0 = center[0] self._surface.y0 = center[1] self._surface.z0 = center[2] - self.cell.translation = center + self.translation = center self._center = center def classify(self, lattice): @@ -80,7 +69,7 @@ class TRISO(object): """ - ll, ur = self.bounding_box + ll, ur = self.region.bounding_box if lattice.ndim == 2: (i_min, j_min), p = lattice.find_element(ll) (i_max, j_max), p = lattice.find_element(ur) @@ -129,8 +118,8 @@ def create_triso_lattice(trisos, lower_left, pitch, shape, background): # Create copy of TRISO particle with materials preserved and # different cell/surface IDs t_copy = copy.deepcopy(t) - t_copy.cell.id = None - t_copy.cell.fill = t.cell.fill + t_copy.id = None + t_copy.fill = t.fill t_copy._surface.id = None triso_locations[idx].append(t_copy) else: @@ -141,7 +130,7 @@ def create_triso_lattice(trisos, lower_left, pitch, shape, background): universes = np.empty(shape[::-1], dtype=openmc.Universe) for idx, triso_list in sorted(triso_locations.items()): if len(triso_list) > 0: - outside_trisos = openmc.Intersection(*[t.outside for t in triso_list]) + outside_trisos = openmc.Intersection(*[~t.region for t in triso_list]) background_cell = openmc.Cell(fill=background, region=outside_trisos) else: background_cell = openmc.Cell(fill=background) @@ -149,7 +138,7 @@ def create_triso_lattice(trisos, lower_left, pitch, shape, background): u = openmc.Universe() u.add_cell(background_cell) for t in triso_list: - u.add_cell(t.cell) + u.add_cell(t) iz, iy, ix = idx t.center = lattice.get_local_coordinates(t.center, (ix, iy, iz)) From 4706236837bc9040f2d451cabce35ab7bab229be Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 9 Jun 2016 09:29:31 -0500 Subject: [PATCH 066/417] Revert "Use ACE data over WMP data where possible" This reverts commit 5a9dc631357d5bdd7360b1bd22a1fe8f1576bd82. This commit created too many issues with incorrectly sampling reactions. --- src/multipole.F90 | 239 +++++++++++--------------- tests/test_multipole/results_true.dat | 2 +- 2 files changed, 106 insertions(+), 135 deletions(-) diff --git a/src/multipole.F90 b/src/multipole.F90 index 59c7fed695..caadab90f1 100644 --- a/src/multipole.F90 +++ b/src/multipole.F90 @@ -6,7 +6,6 @@ module multipole use hdf5_interface use multipole_header, only: MultipoleArray, FIT_T, FIT_A, FIT_F, & MP_FISS, FORM_MLBW, FORM_RM - use search, only: binary_search implicit none @@ -24,28 +23,25 @@ contains type(MultipoleArray), intent(out), target :: multipole ! The object to fill integer, intent(in) :: i_table ! index in nuclides/ ! sab_tables + integer(HID_T) :: file_id integer(HID_T) :: group_id + + ! Intermediate loading components + integer :: NMT + integer :: i, j + integer, allocatable :: MT(:) + logical :: accumulated_fission + character(len=24) :: MT_n ! Takes the form '/nuclide/reactions/MT???' integer :: is_fissionable - real(8) :: insert_pts(4) ! New points in the energy grid - integer :: cut1, cut2 ! Old indices just outside MP region - integer :: new_n_grid ! Number of points in new E grid - real(8), allocatable :: new_energy(:) ! New energy grid - real(8) :: f1, f2 ! Interpolation near cut1 & cut2 - real(8), allocatable :: new_xs(:) ! New cross sections - integer :: i - integer :: IE ! Reaction threshold associate (nuc => nuclides(i_table)) - !========================================================================= - ! Copy in data from the file. - - ! Open file for reading and move into the /isotope group. + ! Open file for reading and move into the /isotope group file_id = file_open(filename, 'r', parallel=.true.) group_id = open_group(file_id, "/nuclide") - ! Load in all the array size scalars. + ! Load in all the array size scalars call read_dataset(multipole % length, group_id, "length") call read_dataset(multipole % windows, group_id, "windows") call read_dataset(multipole % num_l, group_id, "num_l") @@ -64,10 +60,10 @@ contains call read_dataset(multipole % start_E, group_id, "start_E") call read_dataset(multipole % end_E, group_id, "end_E") - ! Allocate the multipole array components. + ! Allocate the multipole array components call multipole % allocate() - ! Read in arrays. + ! Read in arrays call read_dataset(multipole % data, group_id, "data") call read_dataset(multipole % pseudo_k0RS, group_id, "pseudo_K0RS") call read_dataset(multipole % l_value, group_id, "l_value") @@ -77,138 +73,113 @@ contains call read_dataset(multipole % curvefit, group_id, "curvefit") - ! Close the file. + ! Delete ACE pointwise data + call read_dataset(nuc % n_grid, group_id, "n_grid") + + deallocate(nuc % energy) + deallocate(nuc % total) + deallocate(nuc % elastic) + deallocate(nuc % fission) + deallocate(nuc % nu_fission) + deallocate(nuc % absorption) + + allocate(nuc % energy(nuc % n_grid)) + allocate(nuc % total(nuc % n_grid)) + allocate(nuc % elastic(nuc % n_grid)) + allocate(nuc % fission(nuc % n_grid)) + allocate(nuc % nu_fission(nuc % n_grid)) + allocate(nuc % absorption(nuc % n_grid)) + + nuc % total(:) = ZERO + nuc % absorption(:) = ZERO + nuc % fission(:) = ZERO + + ! Read in new energy axis (converting eV to MeV) + call read_dataset(nuc % energy, group_id, "energy_points") + nuc % energy = nuc % energy / 1.0e6_8 + + ! Get count and list of MT tables + call read_dataset(NMT, group_id, "MT_count") + allocate(MT(NMT)) + + call read_dataset(MT, group_id, "MT_list") + call close_group(group_id) - call file_close(file_id) - !========================================================================= - ! Remove the uneeded/inconsitent pointwise data. This step enforces the - ! assumption that no inelastic scattering reactions can occur in the - ! multipole region. The energy grid is replaced with one that removes all - ! energies covered by multiple and adds four new points. Two new points - ! mark the edges of the multipole region and cross sections will be - ! interpolated to these points. The other two points are used to zero the - ! cross sections inside the multipole region. + accumulated_fission = .false. - ! Define the four new inserted points. - insert_pts(:) = [multipole % start_E / 1e6_8, & - multipole % start_E / 1e6_8 + 1e-12_8, & - multipole % end_E / 1e6_8 - 1e-12_8, & - multipole % end_E / 1e6_8] + ! Loop over each MT entry and load it into a reaction. + do i = 1, NMT + write(MT_n, '(A, I3.3)') '/nuclide/reactions/MT', MT(i) - ! Find the points just outside the multipole region. - cut1 = binary_search(nuc % energy, nuc % n_grid, insert_pts(1)) - cut2 = binary_search(nuc % energy, nuc % n_grid, insert_pts(4)) + 1 - if (nuc % energy(cut1) == insert_pts(1)) cut1 = cut1 - 1 - if (nuc % energy(cut2) == insert_pts(4)) cut2 = cut2 + 1 + group_id = open_group(file_id, MT_n) - ! Generate the new energy grid. - new_n_grid = nuc % n_grid - (cut2 - cut1 - 1) + 4 - allocate(new_energy(new_n_grid)) - new_energy(1:cut1) = nuc % energy(1:cut1) - new_energy(cut1+1:cut1+4) = insert_pts(:) - new_energy(cut1+5:new_n_grid) = nuc % energy(cut2:nuc % n_grid) + ! Each MT needs to be treated slightly differently. + select case (MT(i)) + case(ELASTIC) + call read_dataset(nuc % elastic, group_id, "MT_sigma") + nuc % total(:) = nuc % total + nuc % elastic + case(N_FISSION) + call read_dataset(nuc % fission, group_id, "MT_sigma") + nuc % total(:) = nuc % total + nuc % fission + nuc % absorption(:) = nuc % absorption + nuc % fission + accumulated_fission = .true. + case default + ! Search through all of our secondary reactions + do j = 1, nuc % n_reaction + if (nuc % reactions(j) % MT == MT(i)) then + ! Match found - ! Compute interpolation factors for the new energy points. - f1 = (insert_pts(1) - nuc % energy(cut1)) & - / (nuc % energy(cut1+1) - nuc % energy(cut1)) - f2 = (insert_pts(4) - nuc % energy(cut2-1)) & - / (nuc % energy(cut2) - nuc % energy(cut2-1)) + ! Individual Fission components exist, so remove the combined + ! 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(:) = ZERO + accumulated_fission = .false. + end if - ! Adjust the total cross section. - allocate(new_xs(new_n_grid)) - new_xs(1:cut1) = nuc % total(1:cut1) - new_xs(cut1+1) = (ONE - f1) * nuc % total(cut1) & - + f1 * nuc % total(cut1+1) - new_xs(cut1+2:cut1+3) = ZERO - new_xs(cut1+4) = (ONE - f2) * nuc % total(cut2-1) & - + f2 * nuc % total(cut2) - new_xs(cut1+5:new_n_grid) = nuc % total(cut2:nuc % n_grid) - call move_alloc(new_xs, nuc % total) + deallocate(nuc % reactions(j) % sigma) + allocate(nuc % reactions(j) % sigma(nuc % n_grid)) - ! Adjust the elastic cross section. - allocate(new_xs(new_n_grid)) - new_xs(1:cut1) = nuc % elastic(1:cut1) - new_xs(cut1+1) = (ONE - f1) * nuc % elastic(cut1) & - + f1 * nuc % elastic(cut1+1) - new_xs(cut1+2:cut1+3) = ZERO - new_xs(cut1+4) = (ONE - f2) * nuc % elastic(cut2-1) & - + f2 * nuc % elastic(cut2) - new_xs(cut1+5:new_n_grid) = nuc % elastic(cut2:nuc % n_grid) - call move_alloc(new_xs, nuc % elastic) + call read_dataset(nuc % reactions(j) % sigma, & + group_id, "MT_sigma") + call read_dataset(nuc % reactions(j) % Q_value, & + group_id, "Q_value") + call read_dataset(nuc % reactions(j) % threshold, & + group_id, "threshold") + nuc % reactions(j) % threshold = 1 ! TODO: reconsider implications. + nuc % reactions(j) % Q_value = nuc % reactions(j) % Q_value & + / 1.0e6_8 - ! Adjust the fission cross section. - allocate(new_xs(new_n_grid)) - new_xs(1:cut1) = nuc % fission(1:cut1) - new_xs(cut1+1) = (ONE - f1) * nuc % fission(cut1) & - + f1 * nuc % fission(cut1+1) - new_xs(cut1+2:cut1+3) = ZERO - new_xs(cut1+4) = (ONE - f2) * nuc % fission(cut2-1) & - + f2 * nuc % fission(cut2) - new_xs(cut1+5:new_n_grid) = nuc % fission(cut2:nuc % n_grid) - call move_alloc(new_xs, nuc % fission) + ! Accumulate total + if (MT(i) /= N_LEVEL .and. MT(i) <= N_DA) then + nuc % total(:) = nuc % total + nuc % reactions(j) % sigma + end if - ! Adjust the nu-fission cross section. - allocate(new_xs(new_n_grid)) - new_xs(1:cut1) = nuc % nu_fission(1:cut1) - new_xs(cut1+1) = (ONE - f1) * nuc % nu_fission(cut1) & - + f1 * nuc % nu_fission(cut1+1) - new_xs(cut1+2:cut1+3) = ZERO - new_xs(cut1+4) = (ONE - f2) * nuc % nu_fission(cut2-1) & - + f2 * nuc % nu_fission(cut2) - new_xs(cut1+5:new_n_grid) = nuc % nu_fission(cut2:nuc % n_grid) - call move_alloc(new_xs, nuc % nu_fission) + ! Accumulate absorption + if (MT(i) >= N_GAMMA .and. MT(i) <= N_DA) then + nuc % absorption(:) = nuc % absorption & + + nuc % reactions(j) % sigma + end if - ! Adjust the absorption cross section. - allocate(new_xs(new_n_grid)) - new_xs(1:cut1) = nuc % absorption(1:cut1) - new_xs(cut1+1) = (ONE - f1) * nuc % absorption(cut1) & - + f1 * nuc % absorption(cut1+1) - new_xs(cut1+2:cut1+3) = ZERO - new_xs(cut1+4) = (ONE - f2) * nuc % absorption(cut2-1) & - + f2 * nuc % absorption(cut2) - new_xs(cut1+5:new_n_grid) = nuc % absorption(cut2:nuc % n_grid) - call move_alloc(new_xs, nuc % absorption) + ! 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 + end if + end if + end do + end select - ! Adjust other cross sections. - do i = 1, nuc % n_reaction - associate (rxn => nuc % reactions(i)) - if (.not. allocated(rxn % sigma)) cycle ! Skip unallocated reactions - IE = rxn % threshold - if (rxn % threshold >= cut2) then - ! The threshold is above the multipole range. All we need to do - ! is adjust the threshold index to match the new grid. - rxn % threshold = rxn % threshold - (cut2 - cut1 - 1) + 4 - else if (rxn % threshold <= cut1) then - ! The threhold is below the multipole range. Remove the multipole - ! region just like we did with the other reactions. - ! The new grid removed (cut2 - cut1 - 1) points and added 4. - allocate(new_xs(size(rxn % sigma) - (cut2 - cut1 - 1) + 4)) - new_xs(1:cut1-IE+1) = rxn % sigma(1:cut1-IE+1) - new_xs(cut1-IE+2) = (ONE - f1) * rxn % sigma(cut1-IE+1) & - + f1 * rxn % sigma(cut1-IE+2) - new_xs(cut1-IE+3:cut1-IE+4) = ZERO - new_xs(cut1-IE+5) = (ONE - f2) * rxn % sigma(cut2-IE) & - + f2 * rxn % sigma(cut2-IE+1) - new_xs(cut1-IE+6:size(new_xs)) = & - rxn % sigma(cut2-IE+1:size(rxn % sigma)) - call move_alloc(new_xs, rxn % sigma) - else - ! The threshold lies within the multipole range. Remove the first - ! cut2-IE points and add an interpolated point - allocate(new_xs(size(rxn % sigma) - (cut2-IE) + 1)) - new_xs(1) = (ONE - f2) * rxn % sigma(cut2-IE) & - + f2 * rxn % sigma(cut2-IE+1) - new_xs(2:size(new_xs)) = rxn % sigma(cut2-IE+1:size(rxn % sigma)) - call move_alloc(new_xs, rxn % sigma) - rxn % threshold = cut1 + 4 - end if - end associate + call close_group(group_id) end do - ! Apply the new energy grid. - nuc % n_grid = new_n_grid - call move_alloc(new_energy, nuc % energy) + ! Close file + call file_close(file_id) end associate diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 2c2b879fea..83d7e762e8 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.457760E+00 1.119656E-02 +1.457760E+00 1.119659E-02 Cell ID = 11 Name = From 7163011403d541dd84735372deab3d9157792cb6 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 9 Jun 2016 14:11:57 -0500 Subject: [PATCH 067/417] Address #618 comments --- data/get_multipole_data.py | 6 ++--- data/get_nndc_data.py | 6 ++--- docs/source/io_formats/data_wmp.rst | 41 ++++++++++++++++++----------- docs/source/io_formats/index.rst | 6 ++--- openmc/settings.py | 2 +- 5 files changed, 35 insertions(+), 26 deletions(-) diff --git a/data/get_multipole_data.py b/data/get_multipole_data.py index b5126bc0a4..9bccd5b9f2 100755 --- a/data/get_multipole_data.py +++ b/data/get_multipole_data.py @@ -11,8 +11,8 @@ import hashlib import argparse parser = argparse.ArgumentParser() -parser.add_argument('-b', '--batch', action = 'store_true', - help = 'supresses standard in') +parser.add_argument('-b', '--batch', action='store_true', + help='supresses standard in') args = parser.parse_args() try: @@ -92,7 +92,7 @@ for f, checksum in zip(files, checksums): for f in files: fname = f[:-9] if f.endswith('?raw=true') else f - if not fname in filesComplete: + if fname not in filesComplete: continue # Extract files diff --git a/data/get_nndc_data.py b/data/get_nndc_data.py index cd3c6c4dcf..b9b855a812 100755 --- a/data/get_nndc_data.py +++ b/data/get_nndc_data.py @@ -11,8 +11,8 @@ import hashlib import argparse parser = argparse.ArgumentParser() -parser.add_argument('-b', '--batch', action = 'store_true', - help = 'supresses standard in') +parser.add_argument('-b', '--batch', action='store_true', + help='supresses standard in') args = parser.parse_args() try: @@ -90,7 +90,7 @@ for f, checksum in zip(files, checksums): # EXTRACT FILES FROM TGZ for f in files: - if not f in filesComplete: + if f not in filesComplete: continue # Extract files diff --git a/docs/source/io_formats/data_wmp.rst b/docs/source/io_formats/data_wmp.rst index 1e791d6c59..9e4be499f4 100644 --- a/docs/source/io_formats/data_wmp.rst +++ b/docs/source/io_formats/data_wmp.rst @@ -1,8 +1,10 @@ .. _io_data_wmp: -========================================== -The Windowed Multipole Library Format v0.2 -========================================== +================================= +Windowed Multipole Library Format +================================= + +Version 0.2 **/nuclide/** - **broaden_poly** (*int[]*) @@ -12,14 +14,17 @@ The Windowed Multipole Library Format v0.2 Curve fit coefficients. Indexed by (reaction type, coefficient index, window index). - **data** (*complex[][]*) - Complex poles and residues. Each pole has a corresponding set of - residues. For example, the `i`th pole and corresponding residues are - stored as `data[:,i] = [pole, residue_1, residue_2, ...]`. The - residues are in the order: total, competitive if present, absorption, - fission. Complex numbers are stored by forming a type with `"r"` and - `"i"` identifiers, similar to how `h5py` does it. - - **start_E** (*double*) - Lowest energy the windowed multipole part of the library is valid for. + Complex poles and residues. Each pole has a corresponding set of + residues. For example, the :math:`i`-th pole and corresponding residues + are stored as + + .. math:: + \text{data}[:,i] = [\text{pole},~\text{residue}_1,~\text{residue}_2, + ~\ldots]` + + The residues are in the order: total, competitive if present, + absorption, fission. Complex numbers are stored by forming a type with + ":math:`r`" and ":math:`i`" identifiers, similar to how `h5py`_ does it. - **end_E** (*double*) Highest energy the windowed multipole part of the library is valid for. - **energy_points** (*double[]*) @@ -59,24 +64,27 @@ The Windowed Multipole Library Format v0.2 Number of possible :math:`l` quantum states for this nuclide. - **pseudo_K0RS** (*double[]*) :math:`l` dependent value of - + .. math:: \sqrt{\frac{2 m_n}{\hbar}}\frac{AWR}{AWR + 1} r_{s,l} - + Where :math:`m_n` is mass of neutron, :math:`AWR` is the atomic weight ratio of the target to the neutron, and :math:`r_{s,l}` is the scattering radius for a given :math:`l`. - **spacing** (*double*) .. math:: \frac{\sqrt{E_{max}}- \sqrt{E_{min}}}{n_w} - + Where :math:`E_{max}` is the maximum energy the windows go up to. This is not equivalent to the maximum energy for which the windowed multipole data is valid for. It is slightly higher to ensure an integer number of windows. :math:`E_{min}` is the minimum energy and equivalent to - `start_E`, and :math:`n_w` is the number of windows, given by `windows`. + ``start_E``, and :math:`n_w` is the number of windows, given by + ``windows``. - **sqrtAWR** (*double*) Square root of the atomic weight ratio. + - **start_E** (*double*) + Lowest energy the windowed multipole part of the library is valid for. - **w_start** (*int[]*) The pole to start from for each window. - **w_end** (*int[]*) @@ -87,6 +95,7 @@ The Windowed Multipole Library Format v0.2 **/nuclide/reactions/MT** - **MT_sigma** (*double[]*) -- Cross section value for this reaction. - **Q_value** (*double*) -- Energy released in this reaction, in eV. - - **threshold** (*int*) -- The first non-zero entry in `MT_sigma`. + - **threshold** (*int*) -- The first non-zero entry in ``MT_sigma``. +.. _h5py: http://docs.h5py.org/en/latest/ .. _ENDF-6: https://www.oecd-nea.org/dbdata/data/manual-endf/endf102.pdf diff --git a/docs/source/io_formats/index.rst b/docs/source/io_formats/index.rst index 33c43df081..905cd26cc0 100644 --- a/docs/source/io_formats/index.rst +++ b/docs/source/io_formats/index.rst @@ -1,8 +1,8 @@ .. _io_file_formats: -=============== -IO File Formats -=============== +========================== +File Format Specifications +========================== .. toctree:: :numbered: diff --git a/openmc/settings.py b/openmc/settings.py index bb38ca797f..3c22b39ba9 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -78,7 +78,7 @@ class Settings(object): multipole_library : str Indicates the path to a directory containing a windowed multipole cross section library. If it is not set, the - :envvar:`OPENMC_MULTIPOLE_LIBRARY' environment variable will be used. A + :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. From 72b9b0b811ad726d24590a42fe1a6e0997549c23 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 10 Jun 2016 14:05:17 -0500 Subject: [PATCH 068/417] Use versioning information in WMP format --- docs/source/io_formats/data_wmp.rst | 3 ++- src/constants.F90 | 9 +++++---- src/multipole.F90 | 7 +++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/docs/source/io_formats/data_wmp.rst b/docs/source/io_formats/data_wmp.rst index 9e4be499f4..268afa2dbf 100644 --- a/docs/source/io_formats/data_wmp.rst +++ b/docs/source/io_formats/data_wmp.rst @@ -4,7 +4,8 @@ Windowed Multipole Library Format ================================= -Version 0.2 +**/version** (*char[]*) + The format version of the file. The current version is "v0.2" **/nuclide/** - **broaden_poly** (*int[]*) diff --git a/src/constants.F90 b/src/constants.F90 index f1106f228a..f6e82d9bdc 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -11,10 +11,11 @@ module constants integer, parameter :: VERSION_RELEASE = 1 ! Revision numbers for binary files - integer, parameter :: REVISION_STATEPOINT = 15 - integer, parameter :: REVISION_PARTICLE_RESTART = 1 - integer, parameter :: REVISION_TRACK = 1 - integer, parameter :: REVISION_SUMMARY = 3 + integer, parameter :: REVISION_STATEPOINT = 15 + integer, parameter :: REVISION_PARTICLE_RESTART = 1 + integer, parameter :: REVISION_TRACK = 1 + integer, parameter :: REVISION_SUMMARY = 3 + character(10), parameter :: MULTIPOLE_VERSION = "v0.2" ! ============================================================================ ! ADJUSTABLE PARAMETERS diff --git a/src/multipole.F90 b/src/multipole.F90 index caadab90f1..3820025369 100644 --- a/src/multipole.F90 +++ b/src/multipole.F90 @@ -28,6 +28,7 @@ contains integer(HID_T) :: group_id ! Intermediate loading components + character(len=10) :: version integer :: NMT integer :: i, j integer, allocatable :: MT(:) @@ -41,6 +42,12 @@ contains file_id = file_open(filename, 'r', parallel=.true.) group_id = open_group(file_id, "/nuclide") + ! Check the file version number. + call read_dataset(version, file_id, "version") + if (version /= MULTIPOLE_VERSION) call fatal_error("The current multipole& + & format version is " // trim(MULTIPOLE_VERSION) // " but the file "& + // trim(filename) // " uses version " // trim(version)) + ! Load in all the array size scalars call read_dataset(multipole % length, group_id, "length") call read_dataset(multipole % windows, group_id, "windows") From 15e077dd9035411f2c78d964487e063742537754 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 11 Jun 2016 09:22:57 -0400 Subject: [PATCH 069/417] removed unused variables --- src/scattdata_header.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index ee101d63ba..2066b36b92 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -329,7 +329,7 @@ contains real(8), intent(in) :: coeffs(:, :, :) ! Coefficients to use integer :: imu, gin, gout, groups, order - real(8) :: norm, m, mu0, mu1, p0 + real(8) :: norm real(8), allocatable :: energy(:, :) real(8), allocatable :: matrix(:, :, :) From 661b899316d25eba8b8ce2f395817a47729d1414 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 15 Jun 2016 10:29:40 -0500 Subject: [PATCH 070/417] Update WMP library checksum --- data/get_multipole_data.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data/get_multipole_data.py b/data/get_multipole_data.py index 9bccd5b9f2..4af4ebbf55 100755 --- a/data/get_multipole_data.py +++ b/data/get_multipole_data.py @@ -25,7 +25,7 @@ sys.path.insert(0, os.path.join(cwd, '..')) baseUrl = 'https://github.com/smharper/windowed_multipole_library/blob/master/' files = ['multipole_lib.tar.gz?raw=true'] -checksums = ['9f0307132fe5beca78b8fc7a01fb401c'] +checksums = ['3985aea96f7162a9419c7ed8352e6abb'] block_size = 16384 # ============================================================================== @@ -81,6 +81,7 @@ print('Verifying MD5 checksums...') for f, checksum in zip(files, checksums): fname = f[:-9] if f.endswith('?raw=true') else f downloadsum = hashlib.md5(open(fname, 'rb').read()).hexdigest() + print(downloadsum) 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. " From 2fd10d1d53d11304de24bb162e39f931e325b527 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 15 Jun 2016 11:36:37 -0400 Subject: [PATCH 071/417] Updated cross_sections.rst to include a description of the MG mode options --- docs/source/methods/cross_sections.rst | 122 ++++++++++++++++++++++--- docs/source/methods/introduction.rst | 6 +- 2 files changed, 112 insertions(+), 16 deletions(-) diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index 5126252cd7..71caa07b80 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -1,16 +1,20 @@ .. _methods_cross_sections: -============================ -Cross Section Representation -============================ +============================= +Cross Section Representations +============================= -The data governing the interaction of neutrons with various nuclei are -represented using the ACE format which is used by MCNP_ and Serpent_. ACE-format -data can be generated with the NJOY_ nuclear data processing system which -converts raw `ENDF/B data`_ into linearly-interpolable data as required by most -Monte Carlo codes. The use of a standard cross section format allows for a -direct comparison of OpenMC with other codes since the same cross section -libraries can be used. +---------------------- +Continuous-Energy Data +---------------------- + +The data governing the interaction of neutrons with +various nuclei for continous-energy problems are represented using the ACE +format which is used by MCNP_ and Serpent_. ACE-format data can be generated +with the NJOY_ nuclear data processing system which converts raw +`ENDF/B data`_ into linearly-interpolable data as required by most Monte Carlo +codes. The use of a standard cross section format allows for a direct comparison +of OpenMC with other codes since the same cross section libraries can be used. The ACE format contains continuous-energy cross sections for the following types of reactions: elastic scattering, fission (or first-chance fission, @@ -24,7 +28,6 @@ accurate treatment of self-shielding in the unresolved resonance range. For bound scatterers, separate tables with :math:`S(\alpha,\beta,T)` scattering law data can be used. -------------------- Energy Grid Methods ------------------- @@ -48,7 +51,6 @@ implement a method of reducing the number of energy grid searches in order to speed up the calculation. Logarithmic Mapping -------------------- To speed up energy grid searches, OpenMC uses logarithmic mapping technique [Brown]_ to limit the range of energies that must be searched for each @@ -58,11 +60,102 @@ the nuclide energy grids. By default, OpenMC uses 8000 equal-lethargy segments as recommended by Brown. Other Methods -------------- A good survey of other energy grid techniques, including unionized energy grids, can be found in a paper by Leppanen_. +---------------- +Multi-Group Data +---------------- + +The data governing the interaction of neutrons with various nuclei or materials +are represented using a multi-group library format specific to the OpenMC code. +The format is described in the MGXS library specification_ +The data itself can be prepared via multiple paths including: generation via +NJOY_ and TRANSX_, or directly from a continuous-energy OpenMC calculation by +use of the Python API as is shown in the Python API example_ notebooks. This +multi-group library consists of library meta-data (such as the energy group +structure) and multiple `xsdata` objects which contains the required microscopic +or macroscopic multi-group data. + +At a minimum, the library must contain the absorption cross section +(:math:`\sigma_{a,g}`) and a scattering matrix. If the problem is an eigenvalue +problem then all fissionable materials must also contain either fission spectrum +data (:math:`\chi{g'}`) and a fission production cross section +(:math:`\nu\sigma_{f,g}`), or, a fission production matrix cross section +(:math:`\nu\sigma_{f,g\arrow\g'}`). If fission or energy release from fission +tallies are requested by the user, then the library must also contain the +fission cross section (:math:`\sigma_{f,g}`) or the fission energy release +cross section (:math:`\kappa\sigma_{f,g}`). + +After a scattering collision, the outgoing neutron experiences a change in both +energy and angle. The probability of a neutron resulting in a given outgoing +energy group (`g'`) given a certain incoming energy group (`g`) is provided +by the scattering matrix cross sections themselves. The angular information, +however, can be expressed either via Legendre expansion of the neutron's +change-in-angle (:math:`\mu`), a tabular representation of the probability of +a neutron experiencing a given :math:`\mu`, or a histogram representation of the +probability of a neutron experiencing a given :math:`\mu`. The formats used to +represent these are described in the library format specification_. + +Unlike the continuous-energy mode, the multi-group mode does not explicitly +track neutrons produced from scattering multiplication (i.e., :math:`(n,xn)`) +reactions. These are instead accounted for by adjusting the weight of the +neutron after the collision such that the correct total weight is maintained. +The information for how to adjust this weight is optionally provided by the +`multiplicity` data which exists as a group-wise matrix. This data represents +the average number of neutrons emitted from a scattering reaction, given a +scattering reaction has occurred: + +.. math:: + + multiplicity_{g \arrow g'} = \frac{\nu_{scatter}\sigma_{s,g \arrow g'}}{ + \sigma_{s,g \arrow g'}} + +This data is provided as a group-wise matrix since the probability of producing +multiple neutrons in a scattering reaction depends on both the incoming energy, +`g`, and the sampled outgoing energy, `g'`. + +If this scattering multiplication information is not provided in the library +then no weight adjustment will be performed. This is equivalent to neglecting +any additional neutrons produced in scattering multiplication reactions. +However, this assumption will result in a loss of accuracy since the total +neutron population would not be conserved. This reduction in accuracy due to +the loss in neutron conservation can be mitigated by reducing the absorption +cross section as needed to maintain neutron conservation. This adjustment can +be done when generating the library, or by OpenMC. To have OpenMC perform the +adjustment, the total cross section (:math:`\sigma_{t,g}`) must be provided. +With this information, OpenMC will then adjust the absorption cross section as +follows: + +.. math:: + + \sigma_{a,g} = \sigma_{t,g} - \sum_{g'}{\nu_{scatter}\sigma_{s,g \arrow g'}} + +The above method is the same as is typically done with most deterministic methods. +Note that this method is less accurate than using the scattering multiplication +weight adjustment since simply reducing the absorption cross section does not +include any information about the outgoing energy of the neutrons produced in +these reactions. + +All of the data discussed in this section can be provided to the code +independent of the neutron's direction of motion (i.e., isotropic), or the data +can be provided as a tabular distribution of the polar and azimuthal neutron +direction angles. The isotropic representation is the most commonly used, +however inaccuracies are to be expected especially near material interfaces +where a material has a very large cross sections relative to the other material +(as can be expected in the resonance range). The angular representation can be +used to minimize this error. + +Finally, the above options for representing the physics do not have to be +consistent across the problem. The number of groups and the structure, however, +does have to be consistent across the data sets. That is to say that each +microscopic or macroscopic data set does not have to apply the same scattering +expansion, treatment of multiplicity or angular representation of the cross +sections. This allows flexibility for the model to use highly anisotropic +scattering information in the water while the fuel can be simulated with linear +or even isotropic scattering. + .. only:: html .. rubric:: References @@ -75,3 +168,6 @@ can be found in a paper by Leppanen_. .. _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 +.. _specification: ENTER LINK +.. _TRANSX: ENTER LINK +.. _example: ENTER LINK diff --git a/docs/source/methods/introduction.rst b/docs/source/methods/introduction.rst index 7e4f94633f..0bd067470c 100644 --- a/docs/source/methods/introduction.rst +++ b/docs/source/methods/introduction.rst @@ -56,9 +56,9 @@ following steps: combined to produce material-specific cross section data. - In a fixed source problem, source sites are sampled from the specified - source. In an eigenvalue problem, source sites are sampled from some initial - source distribution or from a source file. The source sites consist of - coordinates, a direction, and an energy. + source. In an eigenvalue problem, source sites are sampled from some + initial source distribution or from a source file. The source sites + consist of coordinates, a direction, and an energy. Once initialization is complete, the actual transport simulation can proceed. The life of a single particle will proceed as follows: From 933fbb70d449fd8493995f507d74ef5d3b0595d8 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 15 Jun 2016 12:19:42 -0400 Subject: [PATCH 072/417] Updated physics.rst in the methods manual --- docs/source/methods/cross_sections.rst | 36 +++++----- docs/source/methods/physics.rst | 91 +++++++++++++++++++++++++- 2 files changed, 109 insertions(+), 18 deletions(-) diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index 71caa07b80..bb72a9c75e 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -51,6 +51,7 @@ implement a method of reducing the number of energy grid searches in order to speed up the calculation. Logarithmic Mapping ++++++++++++++++++++ To speed up energy grid searches, OpenMC uses logarithmic mapping technique [Brown]_ to limit the range of energies that must be searched for each @@ -60,6 +61,7 @@ the nuclide energy grids. By default, OpenMC uses 8000 equal-lethargy segments as recommended by Brown. Other Methods ++++++++++++++ A good survey of other energy grid techniques, including unionized energy grids, can be found in a paper by Leppanen_. @@ -68,7 +70,7 @@ can be found in a paper by Leppanen_. Multi-Group Data ---------------- -The data governing the interaction of neutrons with various nuclei or materials +The data governing the interaction of particles with various nuclei or materials are represented using a multi-group library format specific to the OpenMC code. The format is described in the MGXS library specification_ The data itself can be prepared via multiple paths including: generation via @@ -88,23 +90,23 @@ tallies are requested by the user, then the library must also contain the fission cross section (:math:`\sigma_{f,g}`) or the fission energy release cross section (:math:`\kappa\sigma_{f,g}`). -After a scattering collision, the outgoing neutron experiences a change in both -energy and angle. The probability of a neutron resulting in a given outgoing +After a scattering collision, the outgoing particle experiences a change in both +energy and angle. The probability of a particle resulting in a given outgoing energy group (`g'`) given a certain incoming energy group (`g`) is provided by the scattering matrix cross sections themselves. The angular information, -however, can be expressed either via Legendre expansion of the neutron's +however, can be expressed either via Legendre expansion of the particle's change-in-angle (:math:`\mu`), a tabular representation of the probability of -a neutron experiencing a given :math:`\mu`, or a histogram representation of the -probability of a neutron experiencing a given :math:`\mu`. The formats used to +a particle experiencing a given :math:`\mu`, or a histogram representation of the +probability of a particle experiencing a given :math:`\mu`. The formats used to represent these are described in the library format specification_. Unlike the continuous-energy mode, the multi-group mode does not explicitly -track neutrons produced from scattering multiplication (i.e., :math:`(n,xn)`) +track particles produced from scattering multiplication (i.e., :math:`(n,xn)`) reactions. These are instead accounted for by adjusting the weight of the -neutron after the collision such that the correct total weight is maintained. +particle after the collision such that the correct total weight is maintained. The information for how to adjust this weight is optionally provided by the `multiplicity` data which exists as a group-wise matrix. This data represents -the average number of neutrons emitted from a scattering reaction, given a +the average number of particles emitted from a scattering reaction, given a scattering reaction has occurred: .. math:: @@ -113,16 +115,16 @@ scattering reaction has occurred: \sigma_{s,g \arrow g'}} This data is provided as a group-wise matrix since the probability of producing -multiple neutrons in a scattering reaction depends on both the incoming energy, +multiple particles in a scattering reaction depends on both the incoming energy, `g`, and the sampled outgoing energy, `g'`. If this scattering multiplication information is not provided in the library then no weight adjustment will be performed. This is equivalent to neglecting -any additional neutrons produced in scattering multiplication reactions. +any additional particles produced in scattering multiplication reactions. However, this assumption will result in a loss of accuracy since the total -neutron population would not be conserved. This reduction in accuracy due to -the loss in neutron conservation can be mitigated by reducing the absorption -cross section as needed to maintain neutron conservation. This adjustment can +particle population would not be conserved. This reduction in accuracy due to +the loss in particle conservation can be mitigated by reducing the absorption +cross section as needed to maintain particle conservation. This adjustment can be done when generating the library, or by OpenMC. To have OpenMC perform the adjustment, the total cross section (:math:`\sigma_{t,g}`) must be provided. With this information, OpenMC will then adjust the absorption cross section as @@ -135,12 +137,12 @@ follows: The above method is the same as is typically done with most deterministic methods. Note that this method is less accurate than using the scattering multiplication weight adjustment since simply reducing the absorption cross section does not -include any information about the outgoing energy of the neutrons produced in +include any information about the outgoing energy of the particles produced in these reactions. All of the data discussed in this section can be provided to the code -independent of the neutron's direction of motion (i.e., isotropic), or the data -can be provided as a tabular distribution of the polar and azimuthal neutron +independent of the particle's direction of motion (i.e., isotropic), or the data +can be provided as a tabular distribution of the polar and azimuthal particle direction angles. The isotropic representation is the most commonly used, however inaccuracies are to be expected especially near material interfaces where a material has a very large cross sections relative to the other material diff --git a/docs/source/methods/physics.rst b/docs/source/methods/physics.rst index cc486ab67b..7edd656d62 100644 --- a/docs/source/methods/physics.rst +++ b/docs/source/methods/physics.rst @@ -4,6 +4,12 @@ Physics ======= +There are limited differences between physics treatments used in the +continuous-energy and multi-group modes. If distinctions are necessary, each +of the following sections will provide an explanation of the differences. +Otherwise, replacing any references of the particle's energy (`E`) with +references to the particle's energy group (`g) will suffice. + ----------------------------------- Sampling Distance to Next Collision ----------------------------------- @@ -79,6 +85,10 @@ originating from :math:`(n,\gamma)` and other reactions. Elastic Scattering ------------------ +Note that the multi-group mode makes no distinction between elastic or +inelastic scattering reactions. The spceific multi-group scattering +implementation is discussed in the multi-group-scatter_ section. + Elastic scattering refers to the process by which a neutron scatters off a nucleus and does not leave it in an excited. It is referred to as "elastic" because in the center-of-mass system, the neutron does not actually lose @@ -170,6 +180,10 @@ final direction in the lab system. Inelastic Scattering -------------------- +Note that the multi-group mode makes no distinction between elastic or +inelastic scattering reactions. The spceific multi-group scattering +implementation is discussed in the multi-group-scatter_ section. + The major algorithms for inelastic scattering were described in previous sections. First, a scattering cosine is sampled using the algorithms in :ref:`sample-angle`. Then an outgoing energy is sampled using the algorithms in @@ -186,12 +200,67 @@ secondary photons from nuclear de-excitation are tracked in OpenMC. :math:`(n,xn)` Reactions ------------------------ +Note that the multi-group mode makes no distinction between elastic or +inelastic scattering reactions. The specific multi-group scattering +implementation is discussed in the multi-group-scatter_ section. + These types of reactions are just treated as inelastic scattering and as such are subject to the same procedure as described in :ref:`inelastic-scatter`. For reactions with integral multiplicity, e.g., :math:`(n,2n)`, an appropriate number of secondary neutrons are created. For reactions that have a multiplicity given as a function of the incoming neutron energy (which occasionally occurs -for MT=5), the weight of the outgoing neutron is multiplied by the multiplcity. +for MT=5), the weight of the outgoing neutron is multiplied by the multiplicity. + +.. _multi-group-scatter: + +---------------------- +Multi-Group Scattering +---------------------- + +In multi-group mode, a scattering collision requires that the outgoing energy +group of the simulated particle be selected from a probability distribution, +then the change-in-angle selected from a probability distribution according to +the outgoing energy group, and finally the particle's weight adjusted again +according to the outgoing energy group. + +The first step in selecting an outgoing energy group for a particle in a given +incoming energy group is to select a random number (:math:`\xi`) between 0 and +1. This number is then compared to the cumulative distribution function +produced from the outgoing group (`g'`) data for the given incoming group (`g`): + +.. math:: + CDF = \sum_{g'=0}^{h}\Sigma_{s,g \arrow g'} + +If the scattering data is represented as a Legendre expansion, then the +value of :math:`\Sigma_{s,g \arrow g'}` above is simply the 0th order. If the +data is provided as tabular or histogram data, then the value of +:math:`\Sigma_{s,g \arrow g'}` is the sum of all bins of data for a given `g` +and `g'` pair. + +Now that the outgoing energy is known the change-in-angle, :math:`\mu` can be +determined. If the data is provided as a Legendre expansion, this is done by +rejection sampling of the probability distribution represented by the Legendre +series. For efficiency, the selected values of the PDF (:math:`f(\mu)`) are +chosen to be between 0 and the maximum value of :math:`f(\mu)` in the domain of +-1 to 1. + +If the angular data is instead provided as a tabular representation, then the +value of :math:`\mu` is selected as described in the later angle-tabular_ +section with a linear-linear interpolation scheme. + +If the angular data is provided as a histogram representation, then +the value of :math:`\mu` is selected in a similar fashion to that described for +the selection of the outgoing energy (since the energy group representation is +simply a histogram representation) except the CDF is composed of the angular +bins and not the energy groups. However, since we are interested in a specific +value of :math:`\mu` instead of a group, then an angle selected from a uniform +distribution within from the chosen histogram bin. + +The final step in the scattering treatment is to adjust the weight of the +neutron to account for any production of neutrons due to :math:`(n,xn)` +reactions. This data is obtained from the multiplicity data provided in the +multi-group cross section library for the material of interest. +The scaled value will default to 1.0 if no value is provided in the library. .. _fission: @@ -271,10 +340,19 @@ position of the collision site are stored in an array called the fission bank. In a subsequent generation, these fission bank sites are used as starting source sites. +The above description is similar for the multi-group mode except the data are +provided as group-wise data instead of in a continuous-energy format. In this +case, the outgoing energy of the fission neutrons are represented as histograms +by way of either the nu-fission matrix or chi vector. + ----------------------------------------- Secondary Angles and Energy Distributions ----------------------------------------- +Note that this section is specific to continuous-energy mode since the +multi-group scattering process has already been described including the +secondary energy and angle sampling. + For any reactions with secondary neutrons, it is necessary to sample secondary angle and energy distributions. This includes elastic and inelastic scattering, fission, and :math:`(n,xn)` reactions. In some cases, the angle and energy @@ -890,6 +968,9 @@ space distribution at all, the :math:`(n,2n)` reaction with H-2. Transforming a Particle's Coordinates ------------------------------------- +Since all the multi-group data exists in the laboratory frame of reference, this +section does not apply to the multi-group mode. + Once the cosine of the scattering angle :math:`\mu` has been sampled either from a angle distribution or a correlated angle-energy distribution, we are still left with the task of transforming the particle's coordinates. If the outgoing @@ -941,6 +1022,9 @@ the post-collision direction is calculated as Effect of Thermal Motion on Cross Sections ------------------------------------------ +Since all the multi-group data should be generated with thermal scattering +treatments already, this section does not apply to the multi-group mode. + When a neutron scatters off of a nucleus, it may often be assumed that the target nucleus is at rest. However, the target nucleus will have motion associated with its thermal vibration, even at absolute zero (This is due to the @@ -1272,6 +1356,8 @@ described fully in `Walsh et al.`_ |sab| Tables ------------ +Note that |sab| tables are only applicable to continuous-energy transport. + For neutrons with thermal energies, generally less than 4 eV, the kinematics of scattering can be affected by chemical binding and crystalline effects of the target molecule. If these effects are not accounted for in a simulation, the @@ -1461,6 +1547,9 @@ actual algorithm utilized to sample the outgoing angle is shown in equation Unresolved Resonance Region Probability Tables ---------------------------------------------- +Note that unresolved resonance treatments are only applicable to +continuous-energy transport. + In the unresolved resonance energy range, resonances may be so closely spaced that it is not possible for experimental measurements to resolve all resonances. To properly account for self-shielding in this energy range, OpenMC From bbded7667d00b605db52d47b99d391104bc49935 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 15 Jun 2016 12:27:24 -0400 Subject: [PATCH 073/417] Some minor comments in tallies and cmfd methods sections. Only need to add a few links and proof-read the compiled html! --- docs/source/methods/cmfd.rst | 4 ++++ docs/source/methods/tallies.rst | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/docs/source/methods/cmfd.rst b/docs/source/methods/cmfd.rst index 4181f1b37e..9403933fd6 100644 --- a/docs/source/methods/cmfd.rst +++ b/docs/source/methods/cmfd.rst @@ -8,6 +8,10 @@ This page section discusses how nonlinear diffusion acceleration (NDA) using coarse mesh finite difference (CMFD) is implemented into OpenMC. Before we get into the theory, general notation for this section is discussed. +Note that the methods discussed in this section are written specifically for +continuous-energy mode but equivalent apply to the multi-group mode if the +particle's energy is replaced with the particle's group + -------- Notation -------- diff --git a/docs/source/methods/tallies.rst b/docs/source/methods/tallies.rst index 60a2b9a632..3b01e03f3d 100644 --- a/docs/source/methods/tallies.rst +++ b/docs/source/methods/tallies.rst @@ -4,6 +4,10 @@ Tallies ======= +Note that the methods discussed in this section are written specifically for +continuous-energy mode but equivalent apply to the multi-group mode if the +particle's energy is replaced with the particle's group + ------------------ Filters and Scores ------------------ From f828141b281489429fe2b024252e43badb7b07ae Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 15 Jun 2016 14:43:45 -0400 Subject: [PATCH 074/417] fixed references and a few typos --- docs/source/methods/cross_sections.rst | 19 ++++++++----------- docs/source/methods/physics.rst | 2 +- docs/source/usersguide/mgxs_library.rst | 8 +++++--- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index bb72a9c75e..7fc076f6df 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -72,13 +72,13 @@ Multi-Group Data The data governing the interaction of particles with various nuclei or materials are represented using a multi-group library format specific to the OpenMC code. -The format is described in the MGXS library specification_ -The data itself can be prepared via multiple paths including: generation via -NJOY_ and TRANSX_, or directly from a continuous-energy OpenMC calculation by -use of the Python API as is shown in the Python API example_ notebooks. This -multi-group library consists of library meta-data (such as the energy group -structure) and multiple `xsdata` objects which contains the required microscopic -or macroscopic multi-group data. +The format is described in the :ref:`mgxs_lib_spec`. +The data itself can be prepared via traditional paths or directly from a +continuous-energy OpenMC calculation by use of the Python API as is shown in the +Python API :ref:`_notebook_mgxs_part_iv` example notebook. This multi-group +library consists of library meta-data (such as the energy group structure) and +multiple `xsdata` objects which contains the required microscopic or macroscopic +multi-group data. At a minimum, the library must contain the absorption cross section (:math:`\sigma_{a,g}`) and a scattering matrix. If the problem is an eigenvalue @@ -98,7 +98,7 @@ however, can be expressed either via Legendre expansion of the particle's change-in-angle (:math:`\mu`), a tabular representation of the probability of a particle experiencing a given :math:`\mu`, or a histogram representation of the probability of a particle experiencing a given :math:`\mu`. The formats used to -represent these are described in the library format specification_. +represent these are described in the :ref:`mgxs_lib_spec`. Unlike the continuous-energy mode, the multi-group mode does not explicitly track particles produced from scattering multiplication (i.e., :math:`(n,xn)`) @@ -170,6 +170,3 @@ or even isotropic scattering. .. _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 -.. _specification: ENTER LINK -.. _TRANSX: ENTER LINK -.. _example: ENTER LINK diff --git a/docs/source/methods/physics.rst b/docs/source/methods/physics.rst index 7edd656d62..3a243f7e8c 100644 --- a/docs/source/methods/physics.rst +++ b/docs/source/methods/physics.rst @@ -245,7 +245,7 @@ chosen to be between 0 and the maximum value of :math:`f(\mu)` in the domain of -1 to 1. If the angular data is instead provided as a tabular representation, then the -value of :math:`\mu` is selected as described in the later angle-tabular_ +value of :math:`\mu` is selected as described in the :ref:`angle-tabular` section with a linear-linear interpolation scheme. If the angular data is provided as a histogram representation, then diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index 11ccae43df..5284e49462 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -22,9 +22,11 @@ materials. .. _XML: http://www.w3.org/XML/ --------------------------------------- -MGXS Library Specification -- mgxs.xml --------------------------------------- +.. _mgxs_lib_spec: + +-------------------------- +MGXS Library Specification +-------------------------- The multi-group library meta-data is contained within the groups_, group_structure_, and inverse_velocities_ elements. From 6d5951635585382dd2e4ece33c6c7f8e22730d5f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 15 Jun 2016 14:55:46 -0400 Subject: [PATCH 075/417] proofreading changes --- docs/source/methods/cross_sections.rst | 44 ++++++++++++-------------- docs/source/methods/physics.rst | 16 ++++++---- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index 7fc076f6df..9c11d3626d 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -76,48 +76,46 @@ The format is described in the :ref:`mgxs_lib_spec`. The data itself can be prepared via traditional paths or directly from a continuous-energy OpenMC calculation by use of the Python API as is shown in the Python API :ref:`_notebook_mgxs_part_iv` example notebook. This multi-group -library consists of library meta-data (such as the energy group structure) and -multiple `xsdata` objects which contains the required microscopic or macroscopic +library consists of meta-data (such as the energy group structure) and multiple +`xsdata` objects which contains the required microscopic or macroscopic multi-group data. At a minimum, the library must contain the absorption cross section (:math:`\sigma_{a,g}`) and a scattering matrix. If the problem is an eigenvalue -problem then all fissionable materials must also contain either fission spectrum -data (:math:`\chi{g'}`) and a fission production cross section -(:math:`\nu\sigma_{f,g}`), or, a fission production matrix cross section -(:math:`\nu\sigma_{f,g\arrow\g'}`). If fission or energy release from fission -tallies are requested by the user, then the library must also contain the -fission cross section (:math:`\sigma_{f,g}`) or the fission energy release -cross section (:math:`\kappa\sigma_{f,g}`). +problem then all fissionable materials must also contain either +a fission production matrix cross section (:math:`\nu\sigma_{f,g\arrow\g'}`), or +both the fission spectrum data (:math:`\chi{g'}`) and a fission production cross +section (:math:`\nu\sigma_{f,g}`), or, . The library must also contain +the fission cross section (:math:`\sigma_{f,g}`) or the fission energy release +cross section (:math:`\kappa\sigma_{f,g}`) if the associated tallies are +required by the model using the library. After a scattering collision, the outgoing particle experiences a change in both energy and angle. The probability of a particle resulting in a given outgoing energy group (`g'`) given a certain incoming energy group (`g`) is provided -by the scattering matrix cross sections themselves. The angular information, -however, can be expressed either via Legendre expansion of the particle's -change-in-angle (:math:`\mu`), a tabular representation of the probability of -a particle experiencing a given :math:`\mu`, or a histogram representation of the -probability of a particle experiencing a given :math:`\mu`. The formats used to +by the scattering matrix data. The angular information can be expressed either +via Legendre expansion of the particle's change-in-angle (:math:`\mu`), a +tabular representation of the probability distribution function of :math:`\mu`, +or a histogram representation of the same PDF. The formats used to represent these are described in the :ref:`mgxs_lib_spec`. Unlike the continuous-energy mode, the multi-group mode does not explicitly track particles produced from scattering multiplication (i.e., :math:`(n,xn)`) reactions. These are instead accounted for by adjusting the weight of the particle after the collision such that the correct total weight is maintained. -The information for how to adjust this weight is optionally provided by the -`multiplicity` data which exists as a group-wise matrix. This data represents -the average number of particles emitted from a scattering reaction, given a -scattering reaction has occurred: +The weight adjustment factor is optionally provided by the `multiplicity` data +which is required to be provided in the form of a group-wise matrix. +This data is provided as a group-wise matrix since the probability of producing +multiple particles in a scattering reaction depends on both the incoming energy, +`g`, and the sampled outgoing energy, `g'`. This data represents the average +number of particles emitted from a scattering reaction, given a scattering +reaction has occurred: .. math:: multiplicity_{g \arrow g'} = \frac{\nu_{scatter}\sigma_{s,g \arrow g'}}{ \sigma_{s,g \arrow g'}} -This data is provided as a group-wise matrix since the probability of producing -multiple particles in a scattering reaction depends on both the incoming energy, -`g`, and the sampled outgoing energy, `g'`. - If this scattering multiplication information is not provided in the library then no weight adjustment will be performed. This is equivalent to neglecting any additional particles produced in scattering multiplication reactions. @@ -134,7 +132,7 @@ follows: \sigma_{a,g} = \sigma_{t,g} - \sum_{g'}{\nu_{scatter}\sigma_{s,g \arrow g'}} -The above method is the same as is typically done with most deterministic methods. +The above method is the same as is usually done with most deterministic solvers. Note that this method is less accurate than using the scattering multiplication weight adjustment since simply reducing the absorption cross section does not include any information about the outgoing energy of the particles produced in diff --git a/docs/source/methods/physics.rst b/docs/source/methods/physics.rst index 3a243f7e8c..e08965371c 100644 --- a/docs/source/methods/physics.rst +++ b/docs/source/methods/physics.rst @@ -219,7 +219,7 @@ Multi-Group Scattering In multi-group mode, a scattering collision requires that the outgoing energy group of the simulated particle be selected from a probability distribution, -then the change-in-angle selected from a probability distribution according to +the change-in-angle selected from a probability distribution according to the outgoing energy group, and finally the particle's weight adjusted again according to the outgoing energy group. @@ -232,17 +232,19 @@ produced from the outgoing group (`g'`) data for the given incoming group (`g`): CDF = \sum_{g'=0}^{h}\Sigma_{s,g \arrow g'} If the scattering data is represented as a Legendre expansion, then the -value of :math:`\Sigma_{s,g \arrow g'}` above is simply the 0th order. If the -data is provided as tabular or histogram data, then the value of -:math:`\Sigma_{s,g \arrow g'}` is the sum of all bins of data for a given `g` -and `g'` pair. +value of :math:`\Sigma_{s,g \arrow g'}` above is simply the 0th order for the +given group transfer. If the data is provided as tabular or histogram data, then +the value of :math:`\Sigma_{s,g \arrow g'}` is the sum of all bins of data for a +given `g` and `g'` pair. Now that the outgoing energy is known the change-in-angle, :math:`\mu` can be determined. If the data is provided as a Legendre expansion, this is done by rejection sampling of the probability distribution represented by the Legendre series. For efficiency, the selected values of the PDF (:math:`f(\mu)`) are chosen to be between 0 and the maximum value of :math:`f(\mu)` in the domain of --1 to 1. +-1 to 1. Note that this sampling scheme automatically forces negative values of +the :math:`f(\mu)` probability distribution function to be treated as zero +probabilities. If the angular data is instead provided as a tabular representation, then the value of :math:`\mu` is selected as described in the :ref:`angle-tabular` @@ -254,7 +256,7 @@ the selection of the outgoing energy (since the energy group representation is simply a histogram representation) except the CDF is composed of the angular bins and not the energy groups. However, since we are interested in a specific value of :math:`\mu` instead of a group, then an angle selected from a uniform -distribution within from the chosen histogram bin. +distribution within from the chosen angular bin. The final step in the scattering treatment is to adjust the weight of the neutron to account for any production of neutrons due to :math:`(n,xn)` From 1f60c365a6b22f817fd26dcaf1d92d60e30a8bb9 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 15 Jun 2016 19:36:39 -0400 Subject: [PATCH 076/417] Fixed typos after building and looking at html --- docs/source/methods/cross_sections.rst | 15 ++++++++------- docs/source/methods/physics.rst | 14 +++++++------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index 9c11d3626d..869040f5df 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -75,7 +75,7 @@ are represented using a multi-group library format specific to the OpenMC code. The format is described in the :ref:`mgxs_lib_spec`. The data itself can be prepared via traditional paths or directly from a continuous-energy OpenMC calculation by use of the Python API as is shown in the -Python API :ref:`_notebook_mgxs_part_iv` example notebook. This multi-group +:ref:`notebook_mgxs_part_iv` example notebook. This multi-group library consists of meta-data (such as the energy group structure) and multiple `xsdata` objects which contains the required microscopic or macroscopic multi-group data. @@ -83,9 +83,10 @@ multi-group data. At a minimum, the library must contain the absorption cross section (:math:`\sigma_{a,g}`) and a scattering matrix. If the problem is an eigenvalue problem then all fissionable materials must also contain either -a fission production matrix cross section (:math:`\nu\sigma_{f,g\arrow\g'}`), or -both the fission spectrum data (:math:`\chi{g'}`) and a fission production cross -section (:math:`\nu\sigma_{f,g}`), or, . The library must also contain +a fission production matrix cross section +(:math:`\nu\sigma_{f,g\rightarrow g'}`), or +both the fission spectrum data (:math:`\chi_{g'}`) and a fission production +cross section (:math:`\nu\sigma_{f,g}`), or, . The library must also contain the fission cross section (:math:`\sigma_{f,g}`) or the fission energy release cross section (:math:`\kappa\sigma_{f,g}`) if the associated tallies are required by the model using the library. @@ -113,8 +114,8 @@ reaction has occurred: .. math:: - multiplicity_{g \arrow g'} = \frac{\nu_{scatter}\sigma_{s,g \arrow g'}}{ - \sigma_{s,g \arrow g'}} + multiplicity_{g \rightarrow g'} = \frac{\nu_{scatter}\sigma_{s,g \rightarrow g'}}{ + \sigma_{s,g \rightarrow g'}} If this scattering multiplication information is not provided in the library then no weight adjustment will be performed. This is equivalent to neglecting @@ -130,7 +131,7 @@ follows: .. math:: - \sigma_{a,g} = \sigma_{t,g} - \sum_{g'}{\nu_{scatter}\sigma_{s,g \arrow g'}} + \sigma_{a,g} = \sigma_{t,g} - \sum_{g'}\nu_{scatter}\sigma_{s,g \rightarrow g'} The above method is the same as is usually done with most deterministic solvers. Note that this method is less accurate than using the scattering multiplication diff --git a/docs/source/methods/physics.rst b/docs/source/methods/physics.rst index e08965371c..bb26ffec53 100644 --- a/docs/source/methods/physics.rst +++ b/docs/source/methods/physics.rst @@ -87,7 +87,7 @@ Elastic Scattering Note that the multi-group mode makes no distinction between elastic or inelastic scattering reactions. The spceific multi-group scattering -implementation is discussed in the multi-group-scatter_ section. +implementation is discussed in the :ref:`multi-group-scatter` section. Elastic scattering refers to the process by which a neutron scatters off a nucleus and does not leave it in an excited. It is referred to as "elastic" @@ -182,7 +182,7 @@ Inelastic Scattering Note that the multi-group mode makes no distinction between elastic or inelastic scattering reactions. The spceific multi-group scattering -implementation is discussed in the multi-group-scatter_ section. +implementation is discussed in the :ref:`multi-group-scatter` section. The major algorithms for inelastic scattering were described in previous sections. First, a scattering cosine is sampled using the algorithms in @@ -202,7 +202,7 @@ secondary photons from nuclear de-excitation are tracked in OpenMC. Note that the multi-group mode makes no distinction between elastic or inelastic scattering reactions. The specific multi-group scattering -implementation is discussed in the multi-group-scatter_ section. +implementation is discussed in the :ref:`multi-group-scatter` section. These types of reactions are just treated as inelastic scattering and as such are subject to the same procedure as described in :ref:`inelastic-scatter`. For @@ -229,13 +229,13 @@ incoming energy group is to select a random number (:math:`\xi`) between 0 and produced from the outgoing group (`g'`) data for the given incoming group (`g`): .. math:: - CDF = \sum_{g'=0}^{h}\Sigma_{s,g \arrow g'} + CDF = \sum_{g'=0}^{h}\Sigma_{s,g \rightarrow g'} If the scattering data is represented as a Legendre expansion, then the -value of :math:`\Sigma_{s,g \arrow g'}` above is simply the 0th order for the +value of :math:`\Sigma_{s,g \rightarrow g'}` above is the 0th order forthe given group transfer. If the data is provided as tabular or histogram data, then -the value of :math:`\Sigma_{s,g \arrow g'}` is the sum of all bins of data for a -given `g` and `g'` pair. +:math:`\Sigma_{s,g \rightarrow g'}` is the sum of all bins of data for a given +`g` and `g'` pair. Now that the outgoing energy is known the change-in-angle, :math:`\mu` can be determined. If the data is provided as a Legendre expansion, this is done by From 1a1320a2be9d13a755761b31329c4cf49e994599 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 16 Jun 2016 09:44:29 -0500 Subject: [PATCH 077/417] Address #618 comments --- data/get_multipole_data.py | 1 - docs/source/io_formats/data_wmp.rst | 4 ++-- openmc/cell.py | 1 + src/cross_section.F90 | 15 +++++++++++---- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/data/get_multipole_data.py b/data/get_multipole_data.py index 4af4ebbf55..d51c196dcc 100755 --- a/data/get_multipole_data.py +++ b/data/get_multipole_data.py @@ -81,7 +81,6 @@ print('Verifying MD5 checksums...') for f, checksum in zip(files, checksums): fname = f[:-9] if f.endswith('?raw=true') else f downloadsum = hashlib.md5(open(fname, 'rb').read()).hexdigest() - print(downloadsum) 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. " diff --git a/docs/source/io_formats/data_wmp.rst b/docs/source/io_formats/data_wmp.rst index 268afa2dbf..d645c6e8f1 100644 --- a/docs/source/io_formats/data_wmp.rst +++ b/docs/source/io_formats/data_wmp.rst @@ -20,8 +20,8 @@ Windowed Multipole Library Format are stored as .. math:: - \text{data}[:,i] = [\text{pole},~\text{residue}_1,~\text{residue}_2, - ~\ldots]` + \text{data}[:,i] = [\text{pole},~\text{residue}_1,~\text{residue}_2, + ~\ldots] The residues are in the order: total, competitive if present, absorption, fission. Complex numbers are stored by forming a type with diff --git a/openmc/cell.py b/openmc/cell.py index 936ffd94fe..9ff5d1fa30 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -58,6 +58,7 @@ class Cell(object): rotation : Iterable of float 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. The rotation applied is an intrinsic rotation with specified Tait-Bryan angles. That is to say, if the angles are :math:`(\phi, \theta, \psi)`, then the rotation matrix applied is :math:`R_z(\psi) R_y(\theta) R_x(\phi)` or diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 32f7414312..a8acb25a83 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -151,6 +151,7 @@ contains ! material union energy grid real(8), intent(in) :: sqrtkT ! Square root of kT, material dependent + logical :: use_mp ! true if XS can be calculated with windowed multipole integer :: i_grid ! index on nuclide energy grid integer :: i_low ! lower logarithmic mapping index integer :: i_high ! upper logarithmic mapping index @@ -163,11 +164,17 @@ contains nuc => nuclides(i_nuclide) mat => materials(i_mat) - ! If MP, don't interpolate, it's all already baked in. - if (nuc % mp_present .and. & - (E >= nuc % multipole % start_E/1.0e6_8 .and.& - E <= nuc % multipole % end_E/1.0e6_8)) then + ! Check to see if there is multipole data present at this energy + use_mp = .false. + if (nuc % mp_present) then + if (E >= nuc % multipole % start_E/1.0e6_8 .and. & + E <= nuc % multipole % end_E/1.0e6_8) then + use_mp = .true. + end if + end if + ! Evaluate multipole or interpolate + if (use_mp) then ! Call multipole kernel call multipole_eval(nuc % multipole, E, sqrtkT, sigT, sigA, sigF) From 8ea1c5e023b26126eb519aa8aa7156c5c16751fd Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 16 Jun 2016 19:39:21 -0400 Subject: [PATCH 078/417] Fixed two typos --- docs/source/methods/introduction.rst | 2 +- docs/source/methods/physics.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/methods/introduction.rst b/docs/source/methods/introduction.rst index 0bd067470c..dab1c544ad 100644 --- a/docs/source/methods/introduction.rst +++ b/docs/source/methods/introduction.rst @@ -124,7 +124,7 @@ proceed. The life of a single particle will proceed as follows: continuous-energy simulation, reactions of type :math:`(n,xn)` are treated as scattering and any additional particles which may be created are added to a secondary particle bank to be tracked later. In a multi-group - simulation, this secondary bank is ont used but the particle weight is + simulation, this secondary bank is not used but the particle weight is increased accordingly. The original particle then continues from step 3. If the reaction is absorption or fission, the particle dies and if necessary, fission sites are created and stored in the fission bank. diff --git a/docs/source/methods/physics.rst b/docs/source/methods/physics.rst index bb26ffec53..b246584c8b 100644 --- a/docs/source/methods/physics.rst +++ b/docs/source/methods/physics.rst @@ -8,7 +8,7 @@ There are limited differences between physics treatments used in the continuous-energy and multi-group modes. If distinctions are necessary, each of the following sections will provide an explanation of the differences. Otherwise, replacing any references of the particle's energy (`E`) with -references to the particle's energy group (`g) will suffice. +references to the particle's energy group (`g`) will suffice. ----------------------------------- Sampling Distance to Next Collision From 2ae943c37c279337cd5667dcea5ee609f6c703e5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 22 Jun 2016 13:07:34 +0700 Subject: [PATCH 079/417] Make sure densities are repeated when calculating microscopic cross sections for Legendre moments --- openmc/mgxs/mgxs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 088db649fa..c12c61bdf4 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1517,6 +1517,7 @@ class MGXS(object): densities = self.get_nuclide_densities(nuclides) else: densities = self.get_nuclide_densities('sum') + densities = np.repeat(densities, len(self.rxn_rate_tally.scores)) tile_factor = df.shape[0] / len(densities) df['mean'] /= np.tile(densities, tile_factor) df['std. dev.'] /= np.tile(densities, tile_factor) From 9017a7d5331730915557c879fc7e3345fc171e3c Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 23 Jun 2016 16:40:18 -0500 Subject: [PATCH 080/417] Start coding object-oriented tally filters --- src/cmfd_data.F90 | 11 +- src/cmfd_input.F90 | 90 +- src/initialize.F90 | 105 +- src/input_xml.F90 | 505 ++++---- src/output.F90 | 826 ++++++------- src/state_point.F90 | 46 +- src/summary.F90 | 72 +- src/tally.F90 | 2269 ++++++++++++++++------------------- src/tally_filter.F90 | 913 ++++++++++++++ src/tally_filter_header.F90 | 64 + src/tally_header.F90 | 21 +- src/tally_initialize.F90 | 88 +- src/trigger.F90 | 8 +- 13 files changed, 2859 insertions(+), 2159 deletions(-) create mode 100644 src/tally_filter.F90 create mode 100644 src/tally_filter_header.F90 diff --git a/src/cmfd_data.F90 b/src/cmfd_data.F90 index 347351e318..61e74716c9 100644 --- a/src/cmfd_data.F90 +++ b/src/cmfd_data.F90 @@ -6,6 +6,7 @@ module cmfd_data !============================================================================== use constants + use tally_filter, only: MeshFilter implicit none private @@ -94,7 +95,10 @@ contains ! Associate tallies and mesh t => cmfd_tallies(1) - i_mesh = t % filters(t % find_filter(FILTER_MESH)) % int_bins(1) + select type(filt => t % filters(t % find_filter(FILTER_MESH)) % obj) + type is (MeshFilter) + i_mesh = filt % mesh + end select m => meshes(i_mesh) ! Set mesh widths @@ -109,7 +113,10 @@ contains ! Associate tallies and mesh t => cmfd_tallies(ital) - i_mesh = t % filters(t % find_filter(FILTER_MESH)) % int_bins(1) + select type(filt => t % filters(t % find_filter(FILTER_MESH)) % obj) + type is (MeshFilter) + i_mesh = filt % mesh + end select m => meshes(i_mesh) i_filter_mesh = t % find_filter(FILTER_MESH) diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index f69c09fe1c..ecd22b5abc 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -267,7 +267,9 @@ contains use mesh_header, only: RegularMesh use string use tally, only: setup_active_cmfdtallies - use tally_header, only: TallyObject, TallyFilter + use tally_header, only: TallyObject + use tally_filter_header + use tally_filter use tally_initialize, only: add_tallies use xml_interface @@ -283,7 +285,7 @@ contains real(8) :: rarray3(3) ! temp double array type(TallyObject), pointer :: t type(RegularMesh), pointer :: m - type(TallyFilter) :: filters(N_FILTER_TYPES) ! temporary filters + type(TallyFilterContainer) :: filters(N_FILTER_TYPES) ! temporary filters type(Node), pointer :: node_mesh ! Set global variables if they are 0 (this can happen if there is no tally @@ -410,21 +412,25 @@ contains ! Set up mesh filter n_filters = 1 - filters(n_filters) % type = FILTER_MESH - filters(n_filters) % n_bins = product(m % dimension) - allocate(filters(n_filters) % int_bins(1)) - filters(n_filters) % int_bins(1) = n_user_meshes + 1 + allocate(MeshFilter::filters(n_filters) % obj) + select type (filt => filters(n_filters) % obj) + type is (MeshFilter) + filt % n_bins = product(m % dimension) + filt % mesh = n_user_meshes + 1 + end select t % find_filter(FILTER_MESH) = n_filters ! Read and set incoming energy mesh filter if (check_for_node(node_mesh, "energy")) then n_filters = n_filters + 1 - filters(n_filters) % type = FILTER_ENERGYIN - ng = get_arraysize_double(node_mesh, "energy") - filters(n_filters) % n_bins = ng - 1 - allocate(filters(n_filters) % real_bins(ng)) - call get_node_array(node_mesh, "energy", & - filters(n_filters) % real_bins) + allocate(EnergyFilter::filters(n_filters) % obj) + select type (filt => filters(n_filters) % obj) + type is (EnergyFilter) + ng = get_arraysize_double(node_mesh, "energy") + filt % n_bins = ng - 1 + allocate(filt % bins(ng)) + call get_node_array(node_mesh, "energy", filt % bins) + end select t % find_filter(FILTER_ENERGYIN) = n_filters end if @@ -481,12 +487,14 @@ contains ! read and set outgoing energy mesh filter if (check_for_node(node_mesh, "energy")) then n_filters = n_filters + 1 - filters(n_filters) % type = FILTER_ENERGYOUT - ng = get_arraysize_double(node_mesh, "energy") - filters(n_filters) % n_bins = ng - 1 - allocate(filters(n_filters) % real_bins(ng)) - call get_node_array(node_mesh, "energy", & - filters(n_filters) % real_bins) + allocate(EnergyoutFilter::filters(n_filters) % obj) + select type (filt => filters(n_filters) % obj) + type is (EnergyoutFilter) + ng = get_arraysize_double(node_mesh, "energy") + filt % n_bins = ng - 1 + allocate(filt % bins(ng)) + call get_node_array(node_mesh, "energy", filt % bins) + end select t % find_filter(FILTER_ENERGYOUT) = n_filters end if @@ -496,8 +504,12 @@ contains t % filters = filters(1:n_filters) ! deallocate filters bins array - if (check_for_node(node_mesh, "energy")) & - deallocate(filters(n_filters) % real_bins) + if (check_for_node(node_mesh, "energy")) then + select type (filt => filters(n_filters) % obj) + type is (EnergyoutFilter) + deallocate(filt % bins) + end select + end if ! Allocate macro reactions allocate(t % score_bins(2)) @@ -522,16 +534,18 @@ contains ! Add extra filter for surface n_filters = n_filters + 1 - filters(n_filters) % type = FILTER_SURFACE - filters(n_filters) % n_bins = 2 * m % n_dimension - allocate(filters(n_filters) % int_bins(2 * m % n_dimension)) - if (m % n_dimension == 2) then - filters(n_filters) % int_bins = (/ IN_RIGHT, OUT_RIGHT, IN_FRONT, & - OUT_FRONT /) - elseif (m % n_dimension == 3) then - filters(n_filters) % int_bins = (/ IN_RIGHT, OUT_RIGHT, IN_FRONT, & - OUT_FRONT, IN_TOP, OUT_TOP /) - end if + allocate(SurfaceFilter::filters(n_filters) % obj) + select type(filt => filters(n_filters) % obj) + type is(SurfaceFilter) + filt % n_bins = 2 * m % n_dimension + allocate(filt % surfaces(2 * m % n_dimension)) + if (m % n_dimension == 2) then + filt % surfaces = (/ IN_RIGHT, OUT_RIGHT, IN_FRONT, OUT_FRONT /) + elseif (m % n_dimension == 3) then + filt % surfaces = (/ IN_RIGHT, OUT_RIGHT, IN_FRONT, OUT_FRONT, & + IN_TOP, OUT_TOP /) + end if + end select t % find_filter(FILTER_SURFACE) = n_filters ! Allocate and set filters @@ -540,7 +554,10 @@ contains t % filters = filters(1:n_filters) ! Deallocate filters bins array - deallocate(filters(n_filters) % int_bins) + select type(filt => filters(n_filters) % obj) + type is (SurfaceFilter) + deallocate(filt % surfaces) + end select ! Allocate macro reactions allocate(t % score_bins(1)) @@ -558,14 +575,17 @@ contains ! We need to increase the dimension by one since we also need ! currents coming into and out of the boundary mesh cells. i_filter_mesh = t % find_filter(FILTER_MESH) - t % filters(i_filter_mesh) % n_bins = product(m % dimension + 1) + t % filters(i_filter_mesh) % obj % n_bins = product(m % dimension + 1) end if ! Deallocate filter bins - deallocate(filters(1) % int_bins) - if (check_for_node(node_mesh, "energy")) & - deallocate(filters(2) % real_bins) + if (check_for_node(node_mesh, "energy")) then + select type(filt => filters(2) % obj) + type is (EnergyFilter) + deallocate(filt % bins) + end select + end if end do diff --git a/src/initialize.F90 b/src/initialize.F90 index 48b3ee61a9..d267df6318 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -23,8 +23,9 @@ module initialize 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_header, only: TallyObject, TallyResult use tally_initialize,only: configure_tallies + use tally_filter use tally, only: init_tally_routines #ifdef MPI @@ -722,76 +723,15 @@ contains ! ======================================================================= ! ADJUST INDICES FOR EACH TALLY FILTER - FILTER_LOOP: do j = 1, t%n_filters - - select case (t%filters(j)%type) - case (FILTER_DISTRIBCELL) - do k = 1, size(t%filters(j)%int_bins) - id = t%filters(j)%int_bins(k) - if (cell_dict%has_key(id)) then - t%filters(j)%int_bins(k) = cell_dict%get_key(id) - else - call fatal_error("Could not find cell " // trim(to_str(id)) // & - " specified on tally " // trim(to_str(t%id))) - end if - - end do - case (FILTER_CELL, FILTER_CELLBORN) - - do k = 1, t%filters(j)%n_bins - id = t%filters(j)%int_bins(k) - if (cell_dict%has_key(id)) then - t%filters(j)%int_bins(k) = cell_dict%get_key(id) - else - call fatal_error("Could not find cell " // trim(to_str(id)) & - &// " specified on tally " // trim(to_str(t%id))) - end if - end do - - case (FILTER_SURFACE) + FILTER_LOOP: do j = 1, t % n_filters + select type(filt => t % filters(j) % obj) + type is (SurfaceFilter) ! Check if this is a surface filter only for surface currents - if (any(t%score_bins == SCORE_CURRENT)) cycle FILTER_LOOP - - do k = 1, t%filters(j)%n_bins - id = t%filters(j)%int_bins(k) - if (surface_dict%has_key(id)) then - t%filters(j)%int_bins(k) = surface_dict%get_key(id) - else - call fatal_error("Could not find surface " // trim(to_str(id)) & - &// " specified on tally " // trim(to_str(t%id))) - end if - end do - - case (FILTER_UNIVERSE) - - do k = 1, t%filters(j)%n_bins - id = t%filters(j)%int_bins(k) - if (universe_dict%has_key(id)) then - t%filters(j)%int_bins(k) = universe_dict%get_key(id) - else - call fatal_error("Could not find universe " // trim(to_str(id)) & - &// " specified on tally " // trim(to_str(t%id))) - end if - end do - - case (FILTER_MATERIAL) - - do k = 1, t%filters(j)%n_bins - id = t%filters(j)%int_bins(k) - if (material_dict%has_key(id)) then - t%filters(j)%int_bins(k) = material_dict%get_key(id) - else - call fatal_error("Could not find material " // trim(to_str(id)) & - &// " specified on tally " // trim(to_str(t%id))) - end if - end do - - case (FILTER_MESH) - - ! The mesh filter already has been set to the index in meshes rather - ! than the user-specified id, so it doesn't need to be changed. - + if (.not. any(t%score_bins == SCORE_CURRENT)) & + call filt % initialize() + class default + call filt % initialize() end select end do FILTER_LOOP @@ -971,13 +911,10 @@ contains ! We need distribcell if any tallies have distribcell filters. do i = 1, n_tallies do j = 1, tallies(i) % n_filters - if (tallies(i) % filters(j) % type == FILTER_DISTRIBCELL) then + select type(filt => tallies(i) % filters(j) % obj) + type is (DistribcellFilter) distribcell_active = .true. - if (size(tallies(i) % filters(j) % int_bins) > 1) then - call fatal_error("A distribcell filter was specified with & - &multiple bins. This feature is not supported.") - end if - end if + end select end do end do @@ -1001,12 +938,11 @@ contains ! Set the number of bins in all distribcell filters. do i = 1, n_tallies do j = 1, tallies(i) % n_filters - associate (filt => tallies(i) % filters(j)) - if (filt % type == FILTER_DISTRIBCELL) then - ! Set the number of bins to the number of instances of the cell. - filt % n_bins = cells(filt % int_bins(1)) % instances - end if - end associate + select type(filt => tallies(i) % filters(j) % obj) + type is (DistribcellFilter) + ! Set the number of bins to the number of instances of the cell. + filt % n_bins = cells(filt % cell) % instances + end select end do end do @@ -1067,9 +1003,10 @@ contains ! List all cells referenced in distribcell filters. do i = 1, n_tallies do j = 1, tallies(i) % n_filters - if (tallies(i) % filters(j) % type == FILTER_DISTRIBCELL) then - call cell_list % add(tallies(i) % filters(j) % int_bins(1)) - end if + select type(filt => tallies(i) % filters(j) % obj) + type is (DistribcellFilter) + call cell_list % add(filt % cell) + end select end do end do diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 3c6143e5a0..fc244670f1 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -19,7 +19,8 @@ module input_xml use stl_vector, only: VectorInt 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_header, only: TallyObject + use tally_filter use tally_initialize, only: add_tallies use xml_interface @@ -2642,7 +2643,7 @@ contains type(ElemKeyValueCI), pointer :: pair_list type(TallyObject), pointer :: t type(RegularMesh), pointer :: m - type(TallyFilter), allocatable :: filters(:) ! temporary filters + type(TallyFilterContainer), allocatable :: filters(:) ! temporary filters type(Node), pointer :: doc => null() type(Node), pointer :: node_mesh => null() type(Node), pointer :: node_tal => null() @@ -2916,148 +2917,153 @@ contains select case (temp_str) case ('distribcell') - - ! Set type of filter - t % filters(j) % type = FILTER_DISTRIBCELL - - ! Going to add new filters to this tally if n_words > 1 - - ! Allocate and store bins - allocate(t % filters(j) % int_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % int_bins) + ! Allocate and declare the filter type + allocate(DistribcellFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (DistribcellFilter) + filt % type = FILTER_DISTRIBCELL + if (n_words /= 1) call fatal_error("Only one cell can be & + &specified per distribcell filter.") + ! Store bins + call get_node_value(node_filt, "bins", filt % cell) + end select case ('cell') - ! Set type of filter - t % filters(j) % type = FILTER_CELL - - ! Set number of bins - t % filters(j) % n_bins = n_words - - ! Allocate and store bins - allocate(t % filters(j) % int_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % int_bins) + ! Allocate and declare the filter type + allocate(CellFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (CellFilter) + filt % type = FILTER_CELL + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % cells(n_words)) + call get_node_array(node_filt, "bins", filt % cells) + end select case ('cellborn') - ! Set type of filter - t % filters(j) % type = FILTER_CELLBORN - - ! Set number of bins - t % filters(j) % n_bins = n_words - - ! Allocate and store bins - allocate(t % filters(j) % int_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % int_bins) + ! Allocate and declare the filter type + allocate(CellbornFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (CellbornFilter) + filt % type = FILTER_CELLBORN + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % cells(n_words)) + call get_node_array(node_filt, "bins", filt % cells) + end select case ('material') - ! Set type of filter - t % filters(j) % type = FILTER_MATERIAL - - ! Set number of bins - t % filters(j) % n_bins = n_words - - ! Allocate and store bins - allocate(t % filters(j) % int_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % int_bins) + ! Allocate and declare the filter type + allocate(MaterialFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (MaterialFilter) + filt % type = FILTER_MATERIAL + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % materials(n_words)) + call get_node_array(node_filt, "bins", filt % materials) + end select case ('universe') - ! Set type of filter - t % filters(j) % type = FILTER_UNIVERSE - - ! Set number of bins - t % filters(j) % n_bins = n_words - - ! Allocate and store bins - allocate(t % filters(j) % int_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % int_bins) + ! Allocate and declare the filter type + allocate(UniverseFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (UniverseFilter) + filt % type = FILTER_UNIVERSE + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % universes(n_words)) + call get_node_array(node_filt, "bins", filt % universes) + end select case ('surface') call fatal_error("Surface filter is not yet supported!") - - ! Set type of filter - t % filters(j) % type = FILTER_SURFACE - - ! Set number of bins - t % filters(j) % n_bins = n_words - - ! Allocate and store bins - allocate(t % filters(j) % int_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % int_bins) + ! Allocate and declare the filter type + allocate(SurfaceFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (SurfaceFilter) + filt % type = FILTER_SURFACE + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % surfaces(n_words)) + call get_node_array(node_filt, "bins", filt % surfaces) + end select case ('mesh') - ! Set type of filter - t % filters(j) % type = FILTER_MESH + ! Allocate and declare the filter type + allocate(MeshFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (MeshFilter) + filt % type = FILTER_MESH + if (n_words /= 1) call fatal_error("Only one mesh can be & + &specified per mesh filter.") - ! Check to make sure multiple meshes weren't given - if (n_words /= 1) then - call fatal_error("Can only have one mesh filter specified.") - end if + ! Determine id of mesh + call get_node_value(node_filt, "bins", id) - ! Determine id of mesh - call get_node_value(node_filt, "bins", id) + ! Get pointer to mesh + if (mesh_dict % has_key(id)) then + i_mesh = mesh_dict % get_key(id) + m => meshes(i_mesh) + else + call fatal_error("Could not find mesh " // trim(to_str(id)) & + // " specified on tally " // trim(to_str(t % id))) + end if - ! Get pointer to mesh - if (mesh_dict % has_key(id)) then - i_mesh = mesh_dict % get_key(id) - m => meshes(i_mesh) - else - call fatal_error("Could not find mesh " // trim(to_str(id)) & - // " specified on tally " // trim(to_str(t % id))) - end if + ! Determine number of bins -- this is assuming that the tally is + ! a volume tally and not a surface current tally. If it is a + ! surface current tally, the number of bins will get reset later + filt % n_bins = product(m % dimension) - ! Determine number of bins -- this is assuming that the tally is - ! a volume tally and not a surface current tally. If it is a - ! surface current tally, the number of bins will get reset later - t % filters(j) % n_bins = product(m % dimension) - - ! Allocate and store index of mesh - allocate(t % filters(j) % int_bins(1)) - t % filters(j) % int_bins(1) = i_mesh + ! Store the index of the mesh + filt % mesh = i_mesh + end select case ('energy') - ! Set type of filter - t % filters(j) % type = FILTER_ENERGYIN + ! Allocate and declare the filter type + allocate(EnergyFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (EnergyFilter) + filt % type = FILTER_ENERGYIN + ! Allocate and store bins + filt % n_bins = n_words - 1 + allocate(filt % bins(n_words)) + call get_node_array(node_filt, "bins", filt % bins) - ! 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) - - ! We can save tallying time if we know that the tally bins - ! match the energy group structure. In that case, the matching bin - ! index is simply the group (after flipping for the different - ! ordering of the library and tallying systems). - if (.not. run_CE) then - if (n_words == energy_groups + 1) then - if (all(t % filters(j) % real_bins == & - energy_bins(energy_groups + 1:1:-1))) & - t % energy_matches_groups = .true. + ! We can save tallying time if we know that the tally bins match + ! the energy group structure. In that case, the matching bin + ! index is simply the group (after flipping for the different + ! ordering of the library and tallying systems). + if (.not. run_CE) then + if (n_words == energy_groups + 1) then + if (all(filt % bins == energy_bins(energy_groups + 1:1:-1))) & + t % energy_matches_groups = .true. + end if end if - end if + end select case ('energyout') - ! Set type of filter - t % filters(j) % type = FILTER_ENERGYOUT + ! Allocate and declare the filter type + allocate(EnergyoutFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (EnergyoutFilter) + filt % type = FILTER_ENERGYOUT + ! Allocate and store bins + filt % n_bins = n_words - 1 + allocate(filt % bins(n_words)) + call get_node_array(node_filt, "bins", filt % bins) - ! 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) - - ! We can save tallying time if we know that the tally bins - ! match the energy group structure. In that case, the matching bin - ! index is simply the group (after flipping for the different - ! ordering of the library and tallying systems). - if (.not. run_CE) then - if (n_words == energy_groups + 1) then - if (all(t % filters(j) % real_bins == & - energy_bins(energy_groups + 1:1:-1))) & - t % energyout_matches_groups = .true. + ! We can save tallying time if we know that the tally bins match + ! the energy group structure. In that case, the matching bin + ! index is simply the group (after flipping for the different + ! ordering of the library and tallying systems). + if (.not. run_CE) then + if (n_words == energy_groups + 1) then + if (all(filt % bins == energy_bins(energy_groups + 1:1:-1))) & + t % energy_matches_groups = .true. + end if end if - end if + end select ! Set to analog estimator t % estimator = ESTIMATOR_ANALOG @@ -3072,123 +3078,127 @@ contains & for multi-group mode.") end if - ! Set type of filter - t % filters(j) % type = FILTER_DELAYEDGROUP + ! Allocate and declare the filter type + allocate(DelayedGroupFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (DelayedGroupFilter) + filt % type = FILTER_DELAYEDGROUP + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % groups(n_words)) + call get_node_array(node_filt, "bins", filt % groups) - ! Set number of bins - t % filters(j) % n_bins = n_words - - ! Allocate and store bins - allocate(t % filters(j) % int_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % int_bins) - - ! Check bins to make sure all are between 1 and MAX_DELAYED_GROUPS - do d = 1, n_words - if (t % filters(j) % int_bins(d) < 1 .or. & - t % filters(j) % int_bins(d) > MAX_DELAYED_GROUPS) then - call fatal_error("Encountered delayedgroup bin with index " & - // trim(to_str(t % filters(j) % int_bins(d))) // " that is& - & outside the range of 1 to MAX_DELAYED_GROUPS ( " & - // trim(to_str(MAX_DELAYED_GROUPS)) // ")") - end if - end do + ! Check that bins are all are between 1 and MAX_DELAYED_GROUPS + do d = 1, n_words + if (filt % groups(d) < 1 .or. & + filt % groups(d) > MAX_DELAYED_GROUPS) then + call fatal_error("Encountered delayedgroup bin with index " & + // trim(to_str(filt % groups(d))) // " that is outside & + &the range of 1 to MAX_DELAYED_GROUPS ( " & + // trim(to_str(MAX_DELAYED_GROUPS)) // ")") + end if + end do + end select case ('mu') - ! Set type of filter - t % filters(j) % type = FILTER_MU + ! Allocate and declare the filter type + allocate(MuFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (MuFilter) + filt % type = FILTER_MU + ! Allocate and store bins + filt % n_bins = n_words - 1 + allocate(filt % bins(n_words)) + call get_node_array(node_filt, "bins", filt % bins) - ! 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) - - ! Allow a user to input a lone number which will mean that - ! you subivide [-1,1] evenly with the input being the number of bins - if (n_words == 1) then - Nangle = int(t % filters(j) % real_bins(1)) - if (Nangle > 1) then - t % filters(j) % n_bins = Nangle - dangle = TWO / real(Nangle,8) - deallocate(t % filters(j) % real_bins) - allocate(t % filters(j) % real_bins(Nangle + 1)) - do iangle = 1, Nangle - t % filters(j) % real_bins(iangle) = -ONE + (iangle - 1) * dangle - end do - t % filters(j) % real_bins(Nangle + 1) = ONE - else - call fatal_error("Number of bins for mu filter must be& - & greater than 1 on tally " // trim(to_str(t % id)) // ".") + ! Allow a user to input a lone number which will mean that you + ! subdivide [-1,1] evenly with the input being the number of bins + if (n_words == 1) then + Nangle = int(filt % bins(1)) + if (Nangle > 1) then + filt % n_bins = Nangle + dangle = TWO / real(Nangle,8) + deallocate(filt % bins) + allocate(filt % bins(Nangle + 1)) + do iangle = 1, Nangle + filt % bins(iangle) = -ONE + (iangle - 1) * dangle + end do + filt % bins(Nangle + 1) = ONE + else + call fatal_error("Number of bins for mu filter must be& + & greater than 1 on tally " & + // trim(to_str(t % id)) // ".") + end if end if - - end if + end select ! Set to analog estimator t % estimator = ESTIMATOR_ANALOG case ('polar') - ! Set type of filter - t % filters(j) % type = FILTER_POLAR + ! Allocate and declare the filter type + allocate(PolarFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (PolarFilter) + filt % type = FILTER_POLAR + ! Allocate and store bins + filt % n_bins = n_words - 1 + allocate(filt % bins(n_words)) + call get_node_array(node_filt, "bins", filt % bins) - ! 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) - - ! Allow a user to input a lone number which will mean that - ! you subivide [0,pi] evenly with the input being the number of bins - if (n_words == 1) then - Nangle = int(t % filters(j) % real_bins(1)) - if (Nangle > 1) then - t % filters(j) % n_bins = Nangle - dangle = PI / real(Nangle,8) - deallocate(t % filters(j) % real_bins) - allocate(t % filters(j) % real_bins(Nangle + 1)) - do iangle = 1, Nangle - t % filters(j) % real_bins(iangle) = (iangle - 1) * dangle - end do - t % filters(j) % real_bins(Nangle + 1) = PI - else - call fatal_error("Number of bins for polar filter must be& - & greater than 1 on tally " // trim(to_str(t % id)) // ".") + ! Allow a user to input a lone number which will mean that you + ! subdivide [0,pi] evenly with the input being the number of bins + if (n_words == 1) then + Nangle = int(filt % bins(1)) + if (Nangle > 1) then + filt % n_bins = Nangle + dangle = PI / real(Nangle,8) + deallocate(filt % bins) + allocate(filt % bins(Nangle + 1)) + do iangle = 1, Nangle + filt % bins(iangle) = (iangle - 1) * dangle + end do + filt % bins(Nangle + 1) = PI + else + call fatal_error("Number of bins for mu filter must be& + & greater than 1 on tally " & + // trim(to_str(t % id)) // ".") + end if end if - - end if + end select case ('azimuthal') - ! Set type of filter - t % filters(j) % type = FILTER_AZIMUTHAL + ! Allocate and declare the filter type + allocate(AzimuthalFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (AzimuthalFilter) + filt % type = FILTER_AZIMUTHAL + ! Allocate and store bins + filt % n_bins = n_words - 1 + allocate(filt % bins(n_words)) + call get_node_array(node_filt, "bins", filt % bins) - ! 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) - - ! Allow a user to input a lone number which will mean that - ! you sub-divide [-pi,pi) evenly with the input being the number of - ! bins - if (n_words == 1) then - Nangle = int(t % filters(j) % real_bins(1)) - if (Nangle > 1) then - t % filters(j) % n_bins = Nangle - dangle = TWO * PI / real(Nangle,8) - deallocate(t % filters(j) % real_bins) - allocate(t % filters(j) % real_bins(Nangle + 1)) - do iangle = 1, Nangle - t % filters(j) % real_bins(iangle) = -PI + (iangle - 1) * dangle - end do - t % filters(j) % real_bins(Nangle + 1) = PI - else - call fatal_error("Number of bins for azimuthal filter must be& - & greater than 1 on tally " // trim(to_str(t % id)) // ".") + ! Allow a user to input a lone number which will mean that you + ! subdivide [-pi,pi) evenly with the input being the number of + ! bins + if (n_words == 1) then + Nangle = int(filt % bins(1)) + if (Nangle > 1) then + filt % n_bins = Nangle + dangle = TWO * PI / real(Nangle,8) + deallocate(filt % bins) + allocate(filt % bins(Nangle + 1)) + do iangle = 1, Nangle + filt % bins(iangle) = -PI + (iangle - 1) * dangle + end do + filt % bins(Nangle + 1) = PI + else + call fatal_error("Number of bins for mu filter must be& + & greater than 1 on tally " & + // trim(to_str(t % id)) // ".") + end if end if - - end if + end select case default ! Specified tally filter is invalid, raise error @@ -3201,7 +3211,7 @@ contains ! Set find_filter, e.g. if filter(3) has type FILTER_CELL, then ! find_filter(FILTER_CELL) would be set to 3. - t % find_filter(t % filters(j) % type) = j + t % find_filter(t % filters(j) % obj % type) = j end do READ_FILTERS @@ -3251,7 +3261,7 @@ contains ! Check if a delayedgroup filter is present for this tally do l = 1, t % n_filters - if (t % filters(l) % type == FILTER_DELAYEDGROUP) then + if (t % filters(l) % obj % type == FILTER_DELAYEDGROUP) then call warning("A delayedgroup filter was used on a total & &nuclide tally. Cross section libraries are not & &guaranteed to have the same delayed group structure & @@ -3315,7 +3325,7 @@ contains ! Check if a delayedgroup filter is present for this tally do l = 1, t % n_filters - if (t % filters(l) % type == FILTER_DELAYEDGROUP) then + if (t % filters(l) % obj % type == FILTER_DELAYEDGROUP) then call warning("A delayedgroup filter was used on a total nuclide & &tally. Cross section libraries are not guaranteed to have the& & same delayed group structure across all isotopes. In & @@ -3633,13 +3643,18 @@ contains &filter.") end if - ! Get pointer to mesh - i_mesh = t % filters(k) % int_bins(1) - m => meshes(i_mesh) + ! Declare the type of the mesh filter + select type(filt => t % filters(k) % obj) + type is (MeshFilter) - ! We need to increase the dimension by one since we also need - ! currents coming into and out of the boundary mesh cells. - t % filters(k) % n_bins = product(m % dimension + 1) + ! Get pointer to mesh + i_mesh = filt % mesh + m => meshes(i_mesh) + + ! We need to increase the dimension by one since we also need + ! currents coming into and out of the boundary mesh cells. + filt % n_bins = product(m % dimension + 1) + end select ! Copy filters to temporary array allocate(filters(t % n_filters + 1)) @@ -3651,17 +3666,19 @@ contains ! Add surface filter t % n_filters = t % n_filters + 1 - t % filters(t % n_filters) % type = FILTER_SURFACE - t % filters(t % n_filters) % n_bins = 2 * m % n_dimension - allocate(t % filters(t % n_filters) % int_bins(& - 2 * m % n_dimension)) - if (m % n_dimension == 2) then - t % filters(t % n_filters) % int_bins = (/ IN_RIGHT, & - OUT_RIGHT, IN_FRONT, OUT_FRONT /) - elseif (m % n_dimension == 3) then - t % filters(t % n_filters) % int_bins = (/ IN_RIGHT, & - OUT_RIGHT, IN_FRONT, OUT_FRONT, IN_TOP, OUT_TOP /) - end if + allocate(SurfaceFilter::t % filters(t % n_filters) % obj) + select type (filt => t % filters(t % n_filters) % obj) + type is (SurfaceFilter) + filt % type = FILTER_SURFACE + filt % n_bins = 2 * m % n_dimension + allocate(filt % surfaces(2 * m % n_dimension)) + if (m % n_dimension == 2) then + filt % surfaces = (/ IN_RIGHT, OUT_RIGHT, IN_FRONT, OUT_FRONT /) + elseif (m % n_dimension == 3) then + filt % surfaces = (/ IN_RIGHT, OUT_RIGHT, IN_FRONT, OUT_FRONT,& + IN_TOP, OUT_TOP /) + end if + end select t % find_filter(FILTER_SURFACE) = t % n_filters case ('events') @@ -4372,9 +4389,11 @@ contains &meshlines on plot " // trim(to_str(pl % id))) end if - i_mesh = cmfd_tallies(1) % & - filters(cmfd_tallies(1) % find_filter(FILTER_MESH)) % & - int_bins(1) + select type(filt => cmfd_tallies(1) % & + filters(cmfd_tallies(1) % find_filter(FILTER_MESH)) % obj) + type is (MeshFilter) + i_mesh = filt % mesh + end select pl % meshlines_mesh => meshes(i_mesh) case ('entropy') diff --git a/src/output.F90 b/src/output.F90 index d7dfe7e1c2..5fe9685a2a 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -757,233 +757,233 @@ contains ! Skip if there are no tallies if (n_tallies == 0) return - ! Initialize names for tally filter types - filter_name(FILTER_UNIVERSE) = "Universe" - filter_name(FILTER_MATERIAL) = "Material" - filter_name(FILTER_DISTRIBCELL) = "Distributed Cell" - filter_name(FILTER_CELL) = "Cell" - filter_name(FILTER_CELLBORN) = "Birth Cell" - filter_name(FILTER_SURFACE) = "Surface" - filter_name(FILTER_MESH) = "Mesh" - filter_name(FILTER_ENERGYIN) = "Incoming Energy" - filter_name(FILTER_ENERGYOUT) = "Outgoing Energy" - filter_name(FILTER_MU) = "Change-in-Angle" - filter_name(FILTER_POLAR) = "Polar Angle" - filter_name(FILTER_AZIMUTHAL) = "Azimuthal Angle" - filter_name(FILTER_DELAYEDGROUP) = "Delayed Group" - - ! Initialize names for scores - score_names(abs(SCORE_FLUX)) = "Flux" - score_names(abs(SCORE_TOTAL)) = "Total Reaction Rate" - score_names(abs(SCORE_SCATTER)) = "Scattering Rate" - score_names(abs(SCORE_NU_SCATTER)) = "Scattering Production Rate" - score_names(abs(SCORE_ABSORPTION)) = "Absorption Rate" - score_names(abs(SCORE_FISSION)) = "Fission Rate" - score_names(abs(SCORE_NU_FISSION)) = "Nu-Fission Rate" - score_names(abs(SCORE_KAPPA_FISSION)) = "Kappa-Fission Rate" - score_names(abs(SCORE_EVENTS)) = "Events" - score_names(abs(SCORE_FLUX_YN)) = "Flux Moment" - score_names(abs(SCORE_TOTAL_YN)) = "Total Reaction Rate Moment" - score_names(abs(SCORE_SCATTER_N)) = "Scattering Rate Moment" - score_names(abs(SCORE_SCATTER_PN)) = "Scattering Rate Moment" - score_names(abs(SCORE_SCATTER_YN)) = "Scattering Rate Moment" - score_names(abs(SCORE_NU_SCATTER_N)) = "Scattering Prod. Rate Moment" - score_names(abs(SCORE_NU_SCATTER_PN)) = "Scattering Prod. Rate Moment" - score_names(abs(SCORE_NU_SCATTER_YN)) = "Scattering Prod. Rate Moment" - score_names(abs(SCORE_DELAYED_NU_FISSION)) = "Delayed-Nu-Fission Rate" - score_names(abs(SCORE_INVERSE_VELOCITY)) = "Flux-Weighted Inverse Velocity" - - ! Create filename for tally output - filename = trim(path_output) // "tallies.out" - - ! Open tally file for writing - open(FILE=filename, NEWUNIT=unit_tally, STATUS='replace', ACTION='write') - - ! Calculate t-value for confidence intervals - if (confidence_intervals) then - alpha = ONE - CONFIDENCE_LEVEL - t_value = t_percentile(ONE - alpha/TWO, n_realizations - 1) - end if - - TALLY_LOOP: do i = 1, n_tallies - t => tallies(i) - - if (confidence_intervals) then - ! Calculate t-value for confidence intervals - if (confidence_intervals) then - alpha = ONE - CONFIDENCE_LEVEL - t_value = t_percentile(ONE - alpha/TWO, t % n_realizations - 1) - end if - - ! Multiply uncertainty by t-value - t % results % sum_sq = t_value * t % results % sum_sq - end if - - ! Write header block - if (t % name == "") then - call header("TALLY " // trim(to_str(t % id)), unit=unit_tally, & - level=3) - else - call header("TALLY " // trim(to_str(t % id)) // ": " & - // trim(t % name), unit=unit_tally, level=3) - endif - - ! Handle surface current tallies separately - if (t % type == TALLY_SURFACE_CURRENT) then - call write_surface_current(t, unit_tally) - cycle - end if - - ! WARNING: Admittedly, the logic for moving for printing results is - ! extremely confusing and took quite a bit of time to get correct. The - ! logic is structured this way since it is not practical to have a do - ! loop for each filter variable (given that only a few filters are likely - ! to be used for a given tally. - - ! Initialize bins, filter level, and indentation - matching_bins(1:t%n_filters) = 0 - j = 1 - indent = 0 - - print_bin: do - find_bin: do - ! Check for no filters - if (t % n_filters == 0) exit find_bin - - ! Increment bin combination - matching_bins(j) = matching_bins(j) + 1 - - ! ================================================================= - ! REACHED END OF BINS FOR THIS FILTER, MOVE TO NEXT FILTER - - if (matching_bins(j) > t % filters(j) % n_bins) then - ! If this is the first filter, then exit - if (j == 1) exit print_bin - - matching_bins(j) = 0 - j = j - 1 - indent = indent - 2 - - ! ================================================================= - ! VALID BIN -- WRITE FILTER INFORMATION OR EXIT TO WRITE RESULTS - - else - ! Check if this is last filter - if (j == t % n_filters) exit find_bin - - ! Print current filter information - type = t % filters(j) % type - write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & - trim(filter_name(type)), trim(get_label(t, j)) - indent = indent + 2 - j = j + 1 - end if - - end do find_bin - - ! Print filter information - if (t % n_filters > 0) then - type = t % filters(j) % type - write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & - trim(filter_name(type)), trim(get_label(t, j)) - end if - - ! Determine scoring index for this bin combination -- note that unlike - ! in the score_tally subroutine, we have to use max(bins,1) since all - ! bins below the lowest filter level will be zeros - - if (t % n_filters > 0) then - filter_index = sum((max(matching_bins(1:t%n_filters),1) - 1) * t % stride) + 1 - else - filter_index = 1 - end if - - ! Write results for this filter bin combination - score_index = 0 - if (t % n_filters > 0) indent = indent + 2 - do n = 1, t % n_nuclide_bins - ! Write label for nuclide - i_nuclide = t % nuclide_bins(n) - if (i_nuclide == -1) then - write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & - "Total Material" - else - if (run_CE) then - i_listing = nuclides(i_nuclide) % listing - else - i_listing = nuclides_MG(i_nuclide) % obj % listing - end if - write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & - trim(xs_listings(i_listing) % alias) - end if - - indent = indent + 2 - k = 0 - do l = 1, t % n_user_score_bins - k = k + 1 - score_index = score_index + 1 - select case(t % score_bins(k)) - case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) - score_name = 'P' // trim(to_str(t % moment_order(k))) // " " // & - score_names(abs(t % score_bins(k))) - write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & - repeat(" ", indent), score_name, & - to_str(t % results(score_index,filter_index) % sum), & - trim(to_str(t % results(score_index,filter_index) % sum_sq)) - case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN) - score_index = score_index - 1 - do n_order = 0, t % moment_order(k) - score_index = score_index + 1 - score_name = 'P' // trim(to_str(n_order)) // " " //& - score_names(abs(t % score_bins(k))) - write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & - repeat(" ", indent), score_name, & - to_str(t % results(score_index,filter_index) % sum), & - trim(to_str(t % results(score_index,filter_index) & - % sum_sq)) - end do - k = k + t % moment_order(k) - case (SCORE_SCATTER_YN, SCORE_NU_SCATTER_YN, SCORE_FLUX_YN, & - SCORE_TOTAL_YN) - score_index = score_index - 1 - do n_order = 0, t % moment_order(k) - do nm_order = -n_order, n_order - score_index = score_index + 1 - score_name = 'Y' // trim(to_str(n_order)) // ',' // & - trim(to_str(nm_order)) // " " & - // score_names(abs(t % score_bins(k))) - write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & - repeat(" ", indent), score_name, & - to_str(t % results(score_index,filter_index) % sum), & - trim(to_str(t % results(score_index,filter_index)& - % sum_sq)) - end do - end do - k = k + (t % moment_order(k) + 1)**2 - 1 - case default - if (t % score_bins(k) > 0) then - score_name = reaction_name(t % score_bins(k)) - else - score_name = score_names(abs(t % score_bins(k))) - end if - write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & - repeat(" ", indent), score_name, & - to_str(t % results(score_index,filter_index) % sum), & - trim(to_str(t % results(score_index,filter_index) % sum_sq)) - end select - end do - indent = indent - 2 - - end do - indent = indent - 2 - - if (t % n_filters == 0) exit print_bin - - end do print_bin - - end do TALLY_LOOP - - close(UNIT=unit_tally) +! ! Initialize names for tally filter types +! filter_name(FILTER_UNIVERSE) = "Universe" +! filter_name(FILTER_MATERIAL) = "Material" +! filter_name(FILTER_DISTRIBCELL) = "Distributed Cell" +! filter_name(FILTER_CELL) = "Cell" +! filter_name(FILTER_CELLBORN) = "Birth Cell" +! filter_name(FILTER_SURFACE) = "Surface" +! filter_name(FILTER_MESH) = "Mesh" +! filter_name(FILTER_ENERGYIN) = "Incoming Energy" +! filter_name(FILTER_ENERGYOUT) = "Outgoing Energy" +! filter_name(FILTER_MU) = "Change-in-Angle" +! filter_name(FILTER_POLAR) = "Polar Angle" +! filter_name(FILTER_AZIMUTHAL) = "Azimuthal Angle" +! filter_name(FILTER_DELAYEDGROUP) = "Delayed Group" +! +! ! Initialize names for scores +! score_names(abs(SCORE_FLUX)) = "Flux" +! score_names(abs(SCORE_TOTAL)) = "Total Reaction Rate" +! score_names(abs(SCORE_SCATTER)) = "Scattering Rate" +! score_names(abs(SCORE_NU_SCATTER)) = "Scattering Production Rate" +! score_names(abs(SCORE_ABSORPTION)) = "Absorption Rate" +! score_names(abs(SCORE_FISSION)) = "Fission Rate" +! score_names(abs(SCORE_NU_FISSION)) = "Nu-Fission Rate" +! score_names(abs(SCORE_KAPPA_FISSION)) = "Kappa-Fission Rate" +! score_names(abs(SCORE_EVENTS)) = "Events" +! score_names(abs(SCORE_FLUX_YN)) = "Flux Moment" +! score_names(abs(SCORE_TOTAL_YN)) = "Total Reaction Rate Moment" +! score_names(abs(SCORE_SCATTER_N)) = "Scattering Rate Moment" +! score_names(abs(SCORE_SCATTER_PN)) = "Scattering Rate Moment" +! score_names(abs(SCORE_SCATTER_YN)) = "Scattering Rate Moment" +! score_names(abs(SCORE_NU_SCATTER_N)) = "Scattering Prod. Rate Moment" +! score_names(abs(SCORE_NU_SCATTER_PN)) = "Scattering Prod. Rate Moment" +! score_names(abs(SCORE_NU_SCATTER_YN)) = "Scattering Prod. Rate Moment" +! score_names(abs(SCORE_DELAYED_NU_FISSION)) = "Delayed-Nu-Fission Rate" +! score_names(abs(SCORE_INVERSE_VELOCITY)) = "Flux-Weighted Inverse Velocity" +! +! ! Create filename for tally output +! filename = trim(path_output) // "tallies.out" +! +! ! Open tally file for writing +! open(FILE=filename, NEWUNIT=unit_tally, STATUS='replace', ACTION='write') +! +! ! Calculate t-value for confidence intervals +! if (confidence_intervals) then +! alpha = ONE - CONFIDENCE_LEVEL +! t_value = t_percentile(ONE - alpha/TWO, n_realizations - 1) +! end if +! +! TALLY_LOOP: do i = 1, n_tallies +! t => tallies(i) +! +! if (confidence_intervals) then +! ! Calculate t-value for confidence intervals +! if (confidence_intervals) then +! alpha = ONE - CONFIDENCE_LEVEL +! t_value = t_percentile(ONE - alpha/TWO, t % n_realizations - 1) +! end if +! +! ! Multiply uncertainty by t-value +! t % results % sum_sq = t_value * t % results % sum_sq +! end if +! +! ! Write header block +! if (t % name == "") then +! call header("TALLY " // trim(to_str(t % id)), unit=unit_tally, & +! level=3) +! else +! call header("TALLY " // trim(to_str(t % id)) // ": " & +! // trim(t % name), unit=unit_tally, level=3) +! endif +! +! ! Handle surface current tallies separately +! if (t % type == TALLY_SURFACE_CURRENT) then +! call write_surface_current(t, unit_tally) +! cycle +! end if +! +! ! WARNING: Admittedly, the logic for moving for printing results is +! ! extremely confusing and took quite a bit of time to get correct. The +! ! logic is structured this way since it is not practical to have a do +! ! loop for each filter variable (given that only a few filters are likely +! ! to be used for a given tally. +! +! ! Initialize bins, filter level, and indentation +! matching_bins(1:t%n_filters) = 0 +! j = 1 +! indent = 0 +! +! print_bin: do +! find_bin: do +! ! Check for no filters +! if (t % n_filters == 0) exit find_bin +! +! ! Increment bin combination +! matching_bins(j) = matching_bins(j) + 1 +! +! ! ================================================================= +! ! REACHED END OF BINS FOR THIS FILTER, MOVE TO NEXT FILTER +! +! if (matching_bins(j) > t % filters(j) % n_bins) then +! ! If this is the first filter, then exit +! if (j == 1) exit print_bin +! +! matching_bins(j) = 0 +! j = j - 1 +! indent = indent - 2 +! +! ! ================================================================= +! ! VALID BIN -- WRITE FILTER INFORMATION OR EXIT TO WRITE RESULTS +! +! else +! ! Check if this is last filter +! if (j == t % n_filters) exit find_bin +! +! ! Print current filter information +! type = t % filters(j) % type +! write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & +! trim(filter_name(type)), trim(get_label(t, j)) +! indent = indent + 2 +! j = j + 1 +! end if +! +! end do find_bin +! +! ! Print filter information +! if (t % n_filters > 0) then +! type = t % filters(j) % type +! write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & +! trim(filter_name(type)), trim(get_label(t, j)) +! end if +! +! ! Determine scoring index for this bin combination -- note that unlike +! ! in the score_tally subroutine, we have to use max(bins,1) since all +! ! bins below the lowest filter level will be zeros +! +! if (t % n_filters > 0) then +! filter_index = sum((max(matching_bins(1:t%n_filters),1) - 1) * t % stride) + 1 +! else +! filter_index = 1 +! end if +! +! ! Write results for this filter bin combination +! score_index = 0 +! if (t % n_filters > 0) indent = indent + 2 +! do n = 1, t % n_nuclide_bins +! ! Write label for nuclide +! i_nuclide = t % nuclide_bins(n) +! if (i_nuclide == -1) then +! write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & +! "Total Material" +! else +! if (run_CE) then +! i_listing = nuclides(i_nuclide) % listing +! else +! i_listing = nuclides_MG(i_nuclide) % obj % listing +! end if +! write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & +! trim(xs_listings(i_listing) % alias) +! end if +! +! indent = indent + 2 +! k = 0 +! do l = 1, t % n_user_score_bins +! k = k + 1 +! score_index = score_index + 1 +! select case(t % score_bins(k)) +! case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) +! score_name = 'P' // trim(to_str(t % moment_order(k))) // " " // & +! score_names(abs(t % score_bins(k))) +! write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & +! repeat(" ", indent), score_name, & +! to_str(t % results(score_index,filter_index) % sum), & +! trim(to_str(t % results(score_index,filter_index) % sum_sq)) +! case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN) +! score_index = score_index - 1 +! do n_order = 0, t % moment_order(k) +! score_index = score_index + 1 +! score_name = 'P' // trim(to_str(n_order)) // " " //& +! score_names(abs(t % score_bins(k))) +! write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & +! repeat(" ", indent), score_name, & +! to_str(t % results(score_index,filter_index) % sum), & +! trim(to_str(t % results(score_index,filter_index) & +! % sum_sq)) +! end do +! k = k + t % moment_order(k) +! case (SCORE_SCATTER_YN, SCORE_NU_SCATTER_YN, SCORE_FLUX_YN, & +! SCORE_TOTAL_YN) +! score_index = score_index - 1 +! do n_order = 0, t % moment_order(k) +! do nm_order = -n_order, n_order +! score_index = score_index + 1 +! score_name = 'Y' // trim(to_str(n_order)) // ',' // & +! trim(to_str(nm_order)) // " " & +! // score_names(abs(t % score_bins(k))) +! write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & +! repeat(" ", indent), score_name, & +! to_str(t % results(score_index,filter_index) % sum), & +! trim(to_str(t % results(score_index,filter_index)& +! % sum_sq)) +! end do +! end do +! k = k + (t % moment_order(k) + 1)**2 - 1 +! case default +! if (t % score_bins(k) > 0) then +! score_name = reaction_name(t % score_bins(k)) +! else +! score_name = score_names(abs(t % score_bins(k))) +! end if +! write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & +! repeat(" ", indent), score_name, & +! to_str(t % results(score_index,filter_index) % sum), & +! trim(to_str(t % results(score_index,filter_index) % sum_sq)) +! end select +! end do +! indent = indent - 2 +! +! end do +! indent = indent - 2 +! +! if (t % n_filters == 0) exit print_bin +! +! end do print_bin +! +! end do TALLY_LOOP +! +! close(UNIT=unit_tally) end subroutine write_tallies @@ -1011,151 +1011,151 @@ contains character(MAX_LINE_LEN) :: string type(RegularMesh), pointer :: m - ! Get pointer to mesh - i_filter_mesh = t % find_filter(FILTER_MESH) - i_filter_surf = t % find_filter(FILTER_SURFACE) - m => meshes(t % filters(i_filter_mesh) % int_bins(1)) - - ! initialize bins array - matching_bins(1:t%n_filters) = 1 - - ! determine how many energy in bins there are - i_filter_ein = t % find_filter(FILTER_ENERGYIN) - if (i_filter_ein > 0) then - print_ebin = .true. - n = t % filters(i_filter_ein) % n_bins - else - print_ebin = .false. - n = 1 - end if - - do i = 1, m % dimension(1) - string = "Mesh Index (" // trim(to_str(i)) // ", " - len1 = len_trim(string) - do j = 1, m % dimension(2) - string = string(1:len1+1) // trim(to_str(j)) // ", " - len2 = len_trim(string) - do k = 1, m % dimension(3) - ! Write mesh cell index - string = string(1:len2+1) // trim(to_str(k)) // ")" - write(UNIT=unit_tally, FMT='(1X,A)') trim(string) - - do l = 1, n - if (print_ebin) then - ! Set incoming energy bin - matching_bins(i_filter_ein) = l - - ! Write incoming energy bin - write(UNIT=unit_tally, FMT='(3X,A,1X,A)') & - "Incoming Energy", trim(get_label(t, i_filter_ein)) - end if - - ! Left Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i-1, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_RIGHT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Left", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - matching_bins(i_filter_surf) = OUT_RIGHT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Left", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - ! Right Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_RIGHT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Right", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - matching_bins(i_filter_surf) = OUT_RIGHT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Right", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - ! Back Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j-1, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_FRONT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Back", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - matching_bins(i_filter_surf) = OUT_FRONT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Back", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - ! Front Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_FRONT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Front", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - matching_bins(i_filter_surf) = OUT_FRONT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Front", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - ! Bottom Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k-1 /) + 1, .true.) - matching_bins(i_filter_surf) = IN_TOP - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Bottom", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - matching_bins(i_filter_surf) = OUT_TOP - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Bottom", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - ! Top Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_TOP - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Top", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - - matching_bins(i_filter_surf) = OUT_TOP - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Top", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - end do - - end do - end do - end do +! ! Get pointer to mesh +! i_filter_mesh = t % find_filter(FILTER_MESH) +! i_filter_surf = t % find_filter(FILTER_SURFACE) +! m => meshes(t % filters(i_filter_mesh) % int_bins(1)) +! +! ! initialize bins array +! matching_bins(1:t%n_filters) = 1 +! +! ! determine how many energy in bins there are +! i_filter_ein = t % find_filter(FILTER_ENERGYIN) +! if (i_filter_ein > 0) then +! print_ebin = .true. +! n = t % filters(i_filter_ein) % n_bins +! else +! print_ebin = .false. +! n = 1 +! end if +! +! do i = 1, m % dimension(1) +! string = "Mesh Index (" // trim(to_str(i)) // ", " +! len1 = len_trim(string) +! do j = 1, m % dimension(2) +! string = string(1:len1+1) // trim(to_str(j)) // ", " +! len2 = len_trim(string) +! do k = 1, m % dimension(3) +! ! Write mesh cell index +! string = string(1:len2+1) // trim(to_str(k)) // ")" +! write(UNIT=unit_tally, FMT='(1X,A)') trim(string) +! +! do l = 1, n +! if (print_ebin) then +! ! Set incoming energy bin +! matching_bins(i_filter_ein) = l +! +! ! Write incoming energy bin +! write(UNIT=unit_tally, FMT='(3X,A,1X,A)') & +! "Incoming Energy", trim(get_label(t, i_filter_ein)) +! end if +! +! ! Left Surface +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, (/ i-1, j, k /) + 1, .true.) +! matching_bins(i_filter_surf) = IN_RIGHT +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Outgoing Current to Left", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! matching_bins(i_filter_surf) = OUT_RIGHT +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Incoming Current from Left", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! ! Right Surface +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) +! matching_bins(i_filter_surf) = IN_RIGHT +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Incoming Current from Right", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! matching_bins(i_filter_surf) = OUT_RIGHT +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Outgoing Current to Right", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! ! Back Surface +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, (/ i, j-1, k /) + 1, .true.) +! matching_bins(i_filter_surf) = IN_FRONT +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Outgoing Current to Back", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! matching_bins(i_filter_surf) = OUT_FRONT +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Incoming Current from Back", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! ! Front Surface +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) +! matching_bins(i_filter_surf) = IN_FRONT +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Incoming Current from Front", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! matching_bins(i_filter_surf) = OUT_FRONT +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Outgoing Current to Front", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! ! Bottom Surface +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, (/ i, j, k-1 /) + 1, .true.) +! matching_bins(i_filter_surf) = IN_TOP +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Outgoing Current to Bottom", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! matching_bins(i_filter_surf) = OUT_TOP +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Incoming Current from Bottom", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! ! Top Surface +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) +! matching_bins(i_filter_surf) = IN_TOP +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Incoming Current from Top", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! +! matching_bins(i_filter_surf) = OUT_TOP +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & +! "Outgoing Current to Top", & +! to_str(t % results(1,filter_index) % sum), & +! trim(to_str(t % results(1,filter_index) % sum_sq)) +! end do +! +! end do +! end do +! end do end subroutine write_surface_current @@ -1178,47 +1178,47 @@ contains type(RegularMesh), pointer :: m type(Universe), pointer :: univ - bin = matching_bins(i_filter) - - select case(t % filters(i_filter) % type) - case (FILTER_UNIVERSE) - i = t % filters(i_filter) % int_bins(bin) - label = to_str(universes(i) % id) - case (FILTER_MATERIAL) - i = t % filters(i_filter) % int_bins(bin) - label = to_str(materials(i) % id) - case (FILTER_CELL, FILTER_CELLBORN) - i = t % filters(i_filter) % int_bins(bin) - label = to_str(cells(i) % id) - case (FILTER_DISTRIBCELL) - label = '' - univ => universes(BASE_UNIVERSE) - offset = 0 - call find_offset(t % filters(i_filter) % int_bins(1), & - univ, bin-1, offset, label) - case (FILTER_SURFACE) - i = t % filters(i_filter) % int_bins(bin) - label = to_str(surfaces(i)%obj%id) - case (FILTER_MESH) - m => meshes(t % filters(i_filter) % int_bins(1)) - allocate(ijk(m % n_dimension)) - call bin_to_mesh_indices(m, bin, ijk) - if (m % n_dimension == 2) then - label = "Index (" // trim(to_str(ijk(1))) // ", " // & - trim(to_str(ijk(2))) // ")" - elseif (m % n_dimension == 3) then - label = "Index (" // trim(to_str(ijk(1))) // ", " // & - trim(to_str(ijk(2))) // ", " // trim(to_str(ijk(3))) // ")" - end if - case (FILTER_ENERGYIN, FILTER_ENERGYOUT, FILTER_MU, FILTER_POLAR, & - FILTER_AZIMUTHAL) - E0 = t % filters(i_filter) % real_bins(bin) - E1 = t % filters(i_filter) % real_bins(bin + 1) - label = "[" // trim(to_str(E0)) // ", " // trim(to_str(E1)) // ")" - case (FILTER_DELAYEDGROUP) - i = t % filters(i_filter) % int_bins(bin) - label = to_str(i) - end select +! bin = matching_bins(i_filter) +! +! select case(t % filters(i_filter) % type) +! case (FILTER_UNIVERSE) +! i = t % filters(i_filter) % int_bins(bin) +! label = to_str(universes(i) % id) +! case (FILTER_MATERIAL) +! i = t % filters(i_filter) % int_bins(bin) +! label = to_str(materials(i) % id) +! case (FILTER_CELL, FILTER_CELLBORN) +! i = t % filters(i_filter) % int_bins(bin) +! label = to_str(cells(i) % id) +! case (FILTER_DISTRIBCELL) +! label = '' +! univ => universes(BASE_UNIVERSE) +! offset = 0 +! call find_offset(t % filters(i_filter) % int_bins(1), & +! univ, bin-1, offset, label) +! case (FILTER_SURFACE) +! i = t % filters(i_filter) % int_bins(bin) +! label = to_str(surfaces(i)%obj%id) +! case (FILTER_MESH) +! m => meshes(t % filters(i_filter) % int_bins(1)) +! allocate(ijk(m % n_dimension)) +! call bin_to_mesh_indices(m, bin, ijk) +! if (m % n_dimension == 2) then +! label = "Index (" // trim(to_str(ijk(1))) // ", " // & +! trim(to_str(ijk(2))) // ")" +! elseif (m % n_dimension == 3) then +! label = "Index (" // trim(to_str(ijk(1))) // ", " // & +! trim(to_str(ijk(2))) // ", " // trim(to_str(ijk(3))) // ")" +! end if +! case (FILTER_ENERGYIN, FILTER_ENERGYOUT, FILTER_MU, FILTER_POLAR, & +! FILTER_AZIMUTHAL) +! E0 = t % filters(i_filter) % real_bins(bin) +! E1 = t % filters(i_filter) % real_bins(bin + 1) +! label = "[" // trim(to_str(E0)) // ", " // trim(to_str(E1)) // ")" +! case (FILTER_DELAYEDGROUP) +! i = t % filters(i_filter) % int_bins(bin) +! label = to_str(i) +! end select end function get_label diff --git a/src/state_point.F90 b/src/state_point.F90 index f379501343..68905ca4ad 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -243,51 +243,7 @@ contains 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) - case(FILTER_UNIVERSE) - call write_dataset(filter_group, "type", "universe") - case(FILTER_MATERIAL) - call write_dataset(filter_group, "type", "material") - case(FILTER_CELL) - call write_dataset(filter_group, "type", "cell") - case(FILTER_CELLBORN) - call write_dataset(filter_group, "type", "cellborn") - case(FILTER_SURFACE) - call write_dataset(filter_group, "type", "surface") - case(FILTER_MESH) - call write_dataset(filter_group, "type", "mesh") - case(FILTER_ENERGYIN) - call write_dataset(filter_group, "type", "energy") - case(FILTER_ENERGYOUT) - call write_dataset(filter_group, "type", "energyout") - case(FILTER_MU) - call write_dataset(filter_group, "type", "mu") - case(FILTER_POLAR) - call write_dataset(filter_group, "type", "polar") - case(FILTER_AZIMUTHAL) - call write_dataset(filter_group, "type", "azimuthal") - case(FILTER_DISTRIBCELL) - call write_dataset(filter_group, "type", "distribcell") - case(FILTER_DELAYEDGROUP) - call write_dataset(filter_group, "type", "delayedgroup") - end select - - 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) - else - call write_dataset(filter_group, "bins", & - tally % filters(j) % int_bins) - end if - + call tally % filters(j) % obj % to_statepoint(filter_group) call close_group(filter_group) end do FILTER_LOOP diff --git a/src/summary.F90 b/src/summary.F90 index 2ec96042c1..52b4ad9dd4 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -3,7 +3,7 @@ module summary use constants use endf, only: reaction_name use geometry_header, only: Cell, Universe, Lattice, RectLattice, & - &HexLattice, BASE_UNIVERSE + &HexLattice use global use hdf5_interface use material_header, only: Material @@ -13,7 +13,6 @@ module summary use surface_header use string, only: to_str use tally_header, only: TallyObject - use output, only: find_offset use hdf5 @@ -586,10 +585,6 @@ contains type(RegularMesh), pointer :: m type(TallyObject), pointer :: t - 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") ! Write total number of meshes @@ -634,70 +629,7 @@ contains 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) - - ! 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) - else - 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 - ! 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 = 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) - end if - - ! Write name of type - select case (t%filters(j)%type) - case(FILTER_UNIVERSE) - call write_dataset(filter_group, "type", "universe") - case(FILTER_MATERIAL) - call write_dataset(filter_group, "type", "material") - case(FILTER_CELL) - call write_dataset(filter_group, "type", "cell") - case(FILTER_CELLBORN) - call write_dataset(filter_group, "type", "cellborn") - case(FILTER_SURFACE) - call write_dataset(filter_group, "type", "surface") - case(FILTER_MESH) - call write_dataset(filter_group, "type", "mesh") - case(FILTER_ENERGYIN) - call write_dataset(filter_group, "type", "energy") - case(FILTER_ENERGYOUT) - call write_dataset(filter_group, "type", "energyout") - case(FILTER_DISTRIBCELL) - call write_dataset(filter_group, "type", "distribcell") - case(FILTER_MU) - call write_dataset(filter_group, "type", "mu") - case(FILTER_POLAR) - call write_dataset(filter_group, "type", "polar") - case(FILTER_AZIMUTHAL) - call write_dataset(filter_group, "type", "azimuthal") - case(FILTER_DELAYEDGROUP) - call write_dataset(filter_group, "type", "delayedgroup") - end select - + call t % filters(j) % obj % to_summary(filter_group) call close_group(filter_group) end do FILTER_LOOP diff --git a/src/tally.F90 b/src/tally.F90 index b40a39ce0c..b11a1eabf1 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -15,6 +15,7 @@ module tally use search, only: binary_search use string, only: to_str use tally_header, only: TallyResult, TallyMapItem, TallyMapElement + use tally_filter #ifdef MPI use message_passing @@ -473,23 +474,28 @@ contains ! Check if the delayed group filter is present if (dg_filter > 0) then + select type(filt => t % filters(dg_filter) % obj) + type is (DelayedGroupFilter) - ! Loop over all delayed group bins and tally to them - ! individually - do d_bin = 1, t % filters(dg_filter) % n_bins + ! Loop over all delayed group bins and tally to them + ! individually + do d_bin = 1, filt % n_bins - ! Get the delayed group for this bin - d = t % filters(dg_filter) % int_bins(d_bin) + ! Get the delayed group for this bin + d = filt % groups(d_bin) - ! Compute the yield for this delayed group - yield = nuclides(p % event_nuclide) % nu(E, EMISSION_DELAYED, d) + ! Compute the yield for this delayed group + 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 / micro_xs(p % event_nuclide) % absorption - call score_fission_delayed_dg(t, d_bin, score, score_index) - end do - cycle SCORE_LOOP + ! Compute the score and tally to bin + score = p % absorb_wgt * yield & + * micro_xs(p % event_nuclide) % fission & + / micro_xs(p % event_nuclide) % absorption + call score_fission_delayed_dg(t, d_bin, score, score_index) + end do + cycle SCORE_LOOP + end select else ! If the delayed group filter is not present, compute the score ! by multiplying the absorbed weight by the fraction of the @@ -513,18 +519,22 @@ contains ! Check if the delayed group filter is present if (dg_filter > 0) then + select type(filt => t % filters(dg_filter) % obj) + type is (DelayedGroupFilter) - ! Loop over all delayed group bins and tally to them individually - do d_bin = 1, t % filters(dg_filter) % n_bins + ! Loop over all delayed group bins and tally to them + ! individually + do d_bin = 1, filt % n_bins - ! Get the delayed group for this bin - d = t % filters(dg_filter) % int_bins(d_bin) + ! Get the delayed group for this bin + d = filt % groups(d_bin) - ! Compute the score and tally to bin - score = keff * p % wgt_bank / p % n_bank * p % n_delayed_bank(d) - call score_fission_delayed_dg(t, d_bin, score, score_index) - end do - cycle SCORE_LOOP + ! Compute the score and tally to bin + score = keff * p % wgt_bank / p % n_bank * p % n_delayed_bank(d) + call score_fission_delayed_dg(t, d_bin, score, score_index) + end do + cycle SCORE_LOOP + end select else ! Add the contribution from all delayed groups @@ -538,22 +548,26 @@ contains ! Check if the delayed group filter is present if (dg_filter > 0) then + select type(filt => t % filters(dg_filter) % obj) + type is (DelayedGroupFilter) - ! Loop over all delayed group bins and tally to them individually - do d_bin = 1, t % filters(dg_filter) % n_bins + ! Loop over all delayed group bins and tally to them + ! individually + do d_bin = 1, filt % n_bins - ! Get the delayed group for this bin - d = t % filters(dg_filter) % int_bins(d_bin) + ! Get the delayed group for this bin + d = filt % groups(d_bin) - ! Compute the yield for this delayed group - yield = nuclides(i_nuclide) % nu(E, EMISSION_DELAYED, d) + ! Compute the yield for this delayed group + yield = nuclides(i_nuclide) % nu(E, EMISSION_DELAYED, d) - ! Compute the score and tally to bin - 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 + ! Compute the score and tally to bin + 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 + end select else ! If the delayed group filter is not present, compute the score @@ -567,31 +581,35 @@ contains ! Check if the delayed group filter is present if (dg_filter > 0) then + select type(filt => t % filters(dg_filter) % obj) + type is (DelayedGroupFilter) - ! Loop over all nuclides in the current material - do l = 1, materials(p % material) % n_nuclides + ! Loop over all nuclides in the current material + do l = 1, materials(p % material) % n_nuclides - ! Get atom density - atom_density_ = materials(p % material) % atom_density(l) + ! Get atom density + atom_density_ = materials(p % material) % atom_density(l) - ! Get index in nuclides array - i_nuc = materials(p % material) % nuclide(l) + ! Get index in nuclides array + i_nuc = materials(p % material) % nuclide(l) - ! Loop over all delayed group bins and tally to them individually - do d_bin = 1, t % filters(dg_filter) % n_bins + ! Loop over all delayed group bins and tally to them + ! individually + do d_bin = 1, filt % n_bins - ! Get the delayed group for this bin - d = t % filters(dg_filter) % int_bins(d_bin) + ! Get the delayed group for this bin + d = filt % groups(d_bin) - ! Get the yield for the desired nuclide and delayed group - yield = nuclides(i_nuc) % nu(E, EMISSION_DELAYED, d) + ! Get the yield for the desired nuclide and delayed group + yield = nuclides(i_nuc) % nu(E, EMISSION_DELAYED, d) - ! Compute the score and tally to bin - score = micro_xs(i_nuc) % fission * yield * atom_density_ * flux - call score_fission_delayed_dg(t, d_bin, score, score_index) + ! Compute the score and tally to bin + 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 - end do - cycle SCORE_LOOP + cycle SCORE_LOOP + end select else score = ZERO @@ -1520,52 +1538,52 @@ contains type(TallyObject), intent(inout) :: 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 - real(8) :: E_out ! energy 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) % 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 - ! 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 - 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) - - ! 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 +! 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 +! real(8) :: E_out ! energy 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) % 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 +! ! 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 +! 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) +! +! ! 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_ce @@ -1576,74 +1594,74 @@ contains integer, intent(in) :: i_nuclide ! index for nuclide real(8), intent(in) :: atom_density - 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 - integer :: gin ! energy group of incident particle - 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) % 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 - ! 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 - if (i_nuclide > 0) then - if (survival_biasing) then - gin = p % g - else - gin = p % last_g - end if - score = score * atom_density * & - nuclides_MG(i_nuclide) % obj % get_xs('fission', gin, & - UVW=p % last_uvw) / & - macro_xs(p % material) % obj % get_xs('fission', gin, & - UVW=p % last_uvw) - end if - - if (t % energyout_matches_groups) then - ! determine outgoing energy from fission bank - gout = int(fission_bank(n_bank - p % n_bank + k) % E) - - ! change outgoing energy bin - matching_bins(i) = gout - else - ! determine outgoing energy from fission bank - E_out = energy_bin_avg(int(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 - - ! 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 +! 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 +! integer :: gin ! energy group of incident particle +! 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) % 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 +! ! 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 +! if (i_nuclide > 0) then +! if (survival_biasing) then +! gin = p % g +! else +! gin = p % last_g +! end if +! score = score * atom_density * & +! nuclides_MG(i_nuclide) % obj % get_xs('fission', gin, & +! UVW=p % last_uvw) / & +! macro_xs(p % material) % obj % get_xs('fission', gin, & +! UVW=p % last_uvw) +! end if +! +! if (t % energyout_matches_groups) then +! ! determine outgoing energy from fission bank +! gout = int(fission_bank(n_bank - p % n_bank + k) % E) +! +! ! change outgoing energy bin +! matching_bins(i) = gout +! else +! ! determine outgoing energy from fission bank +! E_out = energy_bin_avg(int(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 +! +! ! 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 @@ -1660,86 +1678,86 @@ contains type(TallyObject), intent(inout) :: t integer, intent(in) :: i_score ! index for score - integer :: i ! index of outgoing energy filter - integer :: j ! index of delayedgroup filter - integer :: d ! delayed group - integer :: g ! another delayed group - integer :: d_bin ! delayed group bin index - 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 - real(8) :: E_out ! energy of fission bank site - - ! Save original outgoing energy bin - i = t % find_filter(FILTER_ENERGYOUT) - bin_energyout = matching_bins(i) - - ! Get the index of delayed group filter - j = t % find_filter(FILTER_DELAYEDGROUP) - - ! Get number of energies on filter - 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 - ! score by keff to get the true delayed-nu-fission rate. - - ! loop over number of particles banked - do k = 1, p % n_bank - - ! get the delayed group - g = fission_bank(n_bank - p % n_bank + k) % delayed_group - - ! check if the particle was born delayed - if (g /= 0) then - - ! 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 - 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) - - ! if the delayed group filter is present, tally to corresponding - ! delayed group bin if it exists - if (j > 0) then - - ! loop over delayed group bins until the corresponding bin is found - do d_bin = 1, t % filters(j) % n_bins - d = t % filters(j) % int_bins(d_bin) - - ! check whether the delayed group of the particle is equal to the - ! delayed group of this bin - if (d == g) then - call score_fission_delayed_dg(t, d_bin, score, i_score) - end if - end do - - ! if the delayed group filter is not present, add score to tally - else - - ! 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 if - end if - end do - - ! reset outgoing energy bin - matching_bins(i) = bin_energyout - +! integer :: i ! index of outgoing energy filter +! integer :: j ! index of delayedgroup filter +! integer :: d ! delayed group +! integer :: g ! another delayed group +! integer :: d_bin ! delayed group bin index +! 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 +! real(8) :: E_out ! energy of fission bank site +! +! ! Save original outgoing energy bin +! i = t % find_filter(FILTER_ENERGYOUT) +! bin_energyout = matching_bins(i) +! +! ! Get the index of delayed group filter +! j = t % find_filter(FILTER_DELAYEDGROUP) +! +! ! Get number of energies on filter +! 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 +! ! score by keff to get the true delayed-nu-fission rate. +! +! ! loop over number of particles banked +! do k = 1, p % n_bank +! +! ! get the delayed group +! g = fission_bank(n_bank - p % n_bank + k) % delayed_group +! +! ! check if the particle was born delayed +! if (g /= 0) then +! +! ! 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 +! 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) +! +! ! if the delayed group filter is present, tally to corresponding +! ! delayed group bin if it exists +! if (j > 0) then +! +! ! loop over delayed group bins until the corresponding bin is found +! do d_bin = 1, t % filters(j) % n_bins +! d = t % filters(j) % int_bins(d_bin) +! +! ! check whether the delayed group of the particle is equal to the +! ! delayed group of this bin +! if (d == g) then +! call score_fission_delayed_dg(t, d_bin, score, i_score) +! end if +! end do +! +! ! if the delayed group filter is not present, add score to tally +! else +! +! ! 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 if +! end if +! end do +! +! ! reset outgoing energy bin +! matching_bins(i) = bin_energyout +! end subroutine score_fission_delayed_eout !=============================================================================== @@ -1751,25 +1769,25 @@ contains type(TallyObject), intent(inout) :: t integer, intent(in) :: score_index ! index for score + real(8), intent(in) :: score ! actual score integer, intent(in) :: d_bin ! delayed group bin index - integer :: bin_original ! original bin index - integer :: filter_index ! index for matching filter bin combination - real(8) :: score ! actual score - - ! save original delayed group bin - bin_original = matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) - matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = d_bin - - ! Compute the filter index based on the modified matching_bins - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - -!$omp atomic - t % results(score_index, filter_index) % value = & - t % results(score_index, filter_index) % value + score - - ! reset original delayed group bin - matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = bin_original +! integer :: bin_original ! original bin index +! integer :: filter_index ! index for matching filter bin combination +! +! ! save original delayed group bin +! bin_original = matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) +! matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = d_bin +! +! ! Compute the filter index based on the modified matching_bins +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! +!!$omp atomic +! t % results(score_index, filter_index) % value = & +! t % results(score_index, filter_index) % value + score +! +! ! reset original delayed group bin +! matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = bin_original end subroutine score_fission_delayed_dg @@ -1899,274 +1917,274 @@ contains 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 - integer :: k ! loop index for mesh cell crossings - integer :: b ! loop index for nuclide bins - integer :: ijk0(3) ! indices of starting coordinates - integer :: ijk1(3) ! indices of ending coordinates - integer :: ijk_cross(3) ! indices of mesh cell crossed - integer :: n_cross ! number of surface crossings - integer :: filter_index ! single index for single bin - integer :: i_nuclide ! index in nuclides array - integer :: i_filter_mesh ! index of mesh filter in filters array - real(8) :: atom_density ! density of individual nuclide in atom/b-cm - real(8) :: flux ! tracklength estimate of flux - real(8) :: uvw(3) ! cosine of angle of particle - real(8) :: xyz0(3) ! starting/intermediate coordinates - real(8) :: xyz1(3) ! ending coordinates of particle - real(8) :: xyz_cross(3) ! coordinates of next boundary - real(8) :: d(3) ! distance to each bounding surface - real(8) :: distance ! distance traveled in mesh cell - logical :: found_bin ! was a scoring bin found? - logical :: start_in_mesh ! starting coordinates inside mesh? - logical :: end_in_mesh ! ending coordinates inside mesh? - real(8) :: theta - real(8) :: phi - type(TallyObject), pointer :: t - type(RegularMesh), pointer :: m - type(Material), pointer :: mat - - t => tallies(i_tally) - matching_bins(1:t%n_filters) = 1 - - ! ========================================================================== - ! CHECK IF THIS TRACK INTERSECTS THE MESH - - ! Copy starting and ending location of particle - xyz0 = p % coord(1) % xyz - (d_track - TINY_BIT) * p % coord(1) % uvw - xyz1 = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw - - ! Get index for mesh filter - i_filter_mesh = t % find_filter(FILTER_MESH) - - ! Determine indices for starting and ending location - m => meshes(t % filters(i_filter_mesh) % int_bins(1)) - call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) - call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) - - ! Check if start or end is in mesh -- if not, check if track still - ! intersects with mesh - if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then - if (m % n_dimension == 2) then - if (.not. mesh_intersects_2d(m, xyz0, xyz1)) return - else - if (.not. mesh_intersects_3d(m, xyz0, xyz1)) return - end if - end if - - ! Reset starting and ending location - xyz0 = p % coord(1) % xyz - d_track * p % coord(1) % uvw - xyz1 = p % coord(1) % xyz - - ! ========================================================================= - ! CHECK FOR SCORING COMBINATION FOR FILTERS OTHER THAN MESH - - FILTER_LOOP: do i = 1, t % n_filters - - select case (t % filters(i) % type) - 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) - matching_bins(i) = get_next_bin(FILTER_MATERIAL, & - p % material, i_tally) - - 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_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) - ! determine incoming energy bin - k = 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(k + 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, & - k + 1, p % E) - end if - - case (FILTER_POLAR) - ! Get theta value - theta = acos(p % coord(1) % uvw(3)) - - ! determine polar angle bin - k = 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(k + 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, & - k + 1, theta) - end if - - case (FILTER_AZIMUTHAL) - ! make sure the correct direction vector is used - phi = atan2(p % coord(1) % uvw(2), p % coord(1) % uvw(1)) - - ! determine mu bin - k = 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(k + 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, & - k + 1, phi) - end if - - end select - - ! Check if no matching bin was found - if (matching_bins(i) == NO_BIN_FOUND) return - - end do FILTER_LOOP - - ! ========================================================================== - ! DETERMINE WHICH MESH CELLS TO SCORE TO - - ! Calculate number of surface crossings - n_cross = sum(abs(ijk1(:m % n_dimension) - ijk0(:m % n_dimension))) + 1 - - ! Copy particle's direction - uvw = p % coord(1) % uvw - - ! Bounding coordinates - do j = 1, m % n_dimension - if (uvw(j) > 0) then - xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) - else - xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) - end if - end do - - MESH_LOOP: do k = 1, n_cross - found_bin = .false. - - ! Calculate distance to each bounding surface. We need to treat special - ! case where the cosine of the angle is zero since this would result in a - ! divide-by-zero. - - if (k == n_cross) xyz_cross = xyz1 - - do j = 1, m % n_dimension - if (uvw(j) == 0) then - d(j) = INFINITY - else - d(j) = (xyz_cross(j) - xyz0(j))/uvw(j) - end if - end do - - ! Determine the closest bounding surface of the mesh cell by calculating - ! the minimum distance - - j = minloc(d(:m % n_dimension), 1) - distance = d(j) - - ! Now use the minimum distance and diretion of the particle to determine - ! which surface was crossed - - if (all(ijk0(:m % n_dimension) >= 1) .and. all(ijk0(:m % n_dimension) <= m % dimension)) then - ijk_cross = ijk0 - found_bin = .true. - end if - - ! Increment indices and determine new crossing point - if (uvw(j) > 0) then - ijk0(j) = ijk0(j) + 1 - xyz_cross(j) = xyz_cross(j) + m % width(j) - else - ijk0(j) = ijk0(j) - 1 - xyz_cross(j) = xyz_cross(j) - m % width(j) - end if - - ! ======================================================================= - ! SCORE TO THIS MESH CELL - - if (found_bin) then - ! Calculate track-length estimate of flux - flux = p % wgt * distance - - ! Determine mesh bin - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, ijk_cross) - - ! Determining scoring index - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - - if (t % all_nuclides) then - if (p % material /= MATERIAL_VOID) then - ! Score reaction rates for each nuclide in material - call score_all_nuclides(p, i_tally, flux, filter_index) - end if - else - NUCLIDE_BIN_LOOP: do b = 1, t % n_nuclide_bins - ! Get index of nuclide in nuclides array - i_nuclide = t % nuclide_bins(b) - - if (i_nuclide > 0) then - if (p % material /= MATERIAL_VOID) then - ! Get pointer to current material - mat => materials(p % material) - - ! Determine if nuclide is actually in material - NUCLIDE_MAT_LOOP: do j = 1, mat % n_nuclides - ! If index of nuclide matches the j-th nuclide listed in - ! the material, break out of the loop - if (i_nuclide == mat % nuclide(j)) exit - - ! If we've reached the last nuclide in the material, it - ! means the specified nuclide to be tallied is not in this - ! material - if (j == mat % n_nuclides) then - cycle NUCLIDE_BIN_LOOP - end if - end do NUCLIDE_MAT_LOOP - - atom_density = mat % atom_density(j) - else - atom_density = ZERO - end if - end if - - ! Determine score for each bin - call score_general(p, t, (b-1)*t % n_score_bins, filter_index, & - i_nuclide, atom_density, flux) - - end do NUCLIDE_BIN_LOOP - end if - end if - - ! Calculate new coordinates - xyz0 = xyz0 + distance * uvw - - end do MESH_LOOP +! integer :: i ! loop index for filter/score bins +! integer :: j ! loop index for direction +! integer :: k ! loop index for mesh cell crossings +! integer :: b ! loop index for nuclide bins +! integer :: ijk0(3) ! indices of starting coordinates +! integer :: ijk1(3) ! indices of ending coordinates +! integer :: ijk_cross(3) ! indices of mesh cell crossed +! integer :: n_cross ! number of surface crossings +! integer :: filter_index ! single index for single bin +! integer :: i_nuclide ! index in nuclides array +! integer :: i_filter_mesh ! index of mesh filter in filters array +! real(8) :: atom_density ! density of individual nuclide in atom/b-cm +! real(8) :: flux ! tracklength estimate of flux +! real(8) :: uvw(3) ! cosine of angle of particle +! real(8) :: xyz0(3) ! starting/intermediate coordinates +! real(8) :: xyz1(3) ! ending coordinates of particle +! real(8) :: xyz_cross(3) ! coordinates of next boundary +! real(8) :: d(3) ! distance to each bounding surface +! real(8) :: distance ! distance traveled in mesh cell +! logical :: found_bin ! was a scoring bin found? +! logical :: start_in_mesh ! starting coordinates inside mesh? +! logical :: end_in_mesh ! ending coordinates inside mesh? +! real(8) :: theta +! real(8) :: phi +! type(TallyObject), pointer :: t +! type(RegularMesh), pointer :: m +! type(Material), pointer :: mat +! +! t => tallies(i_tally) +! matching_bins(1:t%n_filters) = 1 +! +! ! ========================================================================== +! ! CHECK IF THIS TRACK INTERSECTS THE MESH +! +! ! Copy starting and ending location of particle +! xyz0 = p % coord(1) % xyz - (d_track - TINY_BIT) * p % coord(1) % uvw +! xyz1 = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw +! +! ! Get index for mesh filter +! i_filter_mesh = t % find_filter(FILTER_MESH) +! +! ! Determine indices for starting and ending location +! m => meshes(t % filters(i_filter_mesh) % int_bins(1)) +! call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) +! call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) +! +! ! Check if start or end is in mesh -- if not, check if track still +! ! intersects with mesh +! if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then +! if (m % n_dimension == 2) then +! if (.not. mesh_intersects_2d(m, xyz0, xyz1)) return +! else +! if (.not. mesh_intersects_3d(m, xyz0, xyz1)) return +! end if +! end if +! +! ! Reset starting and ending location +! xyz0 = p % coord(1) % xyz - d_track * p % coord(1) % uvw +! xyz1 = p % coord(1) % xyz +! +! ! ========================================================================= +! ! CHECK FOR SCORING COMBINATION FOR FILTERS OTHER THAN MESH +! +! FILTER_LOOP: do i = 1, t % n_filters +! +! select case (t % filters(i) % type) +! 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) +! matching_bins(i) = get_next_bin(FILTER_MATERIAL, & +! p % material, i_tally) +! +! 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_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) +! ! determine incoming energy bin +! k = 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(k + 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, & +! k + 1, p % E) +! end if +! +! case (FILTER_POLAR) +! ! Get theta value +! theta = acos(p % coord(1) % uvw(3)) +! +! ! determine polar angle bin +! k = 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(k + 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, & +! k + 1, theta) +! end if +! +! case (FILTER_AZIMUTHAL) +! ! make sure the correct direction vector is used +! phi = atan2(p % coord(1) % uvw(2), p % coord(1) % uvw(1)) +! +! ! determine mu bin +! k = 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(k + 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, & +! k + 1, phi) +! end if +! +! end select +! +! ! Check if no matching bin was found +! if (matching_bins(i) == NO_BIN_FOUND) return +! +! end do FILTER_LOOP +! +! ! ========================================================================== +! ! DETERMINE WHICH MESH CELLS TO SCORE TO +! +! ! Calculate number of surface crossings +! n_cross = sum(abs(ijk1(:m % n_dimension) - ijk0(:m % n_dimension))) + 1 +! +! ! Copy particle's direction +! uvw = p % coord(1) % uvw +! +! ! Bounding coordinates +! do j = 1, m % n_dimension +! if (uvw(j) > 0) then +! xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) +! else +! xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) +! end if +! end do +! +! MESH_LOOP: do k = 1, n_cross +! found_bin = .false. +! +! ! Calculate distance to each bounding surface. We need to treat special +! ! case where the cosine of the angle is zero since this would result in a +! ! divide-by-zero. +! +! if (k == n_cross) xyz_cross = xyz1 +! +! do j = 1, m % n_dimension +! if (uvw(j) == 0) then +! d(j) = INFINITY +! else +! d(j) = (xyz_cross(j) - xyz0(j))/uvw(j) +! end if +! end do +! +! ! Determine the closest bounding surface of the mesh cell by calculating +! ! the minimum distance +! +! j = minloc(d(:m % n_dimension), 1) +! distance = d(j) +! +! ! Now use the minimum distance and diretion of the particle to determine +! ! which surface was crossed +! +! if (all(ijk0(:m % n_dimension) >= 1) .and. all(ijk0(:m % n_dimension) <= m % dimension)) then +! ijk_cross = ijk0 +! found_bin = .true. +! end if +! +! ! Increment indices and determine new crossing point +! if (uvw(j) > 0) then +! ijk0(j) = ijk0(j) + 1 +! xyz_cross(j) = xyz_cross(j) + m % width(j) +! else +! ijk0(j) = ijk0(j) - 1 +! xyz_cross(j) = xyz_cross(j) - m % width(j) +! end if +! +! ! ======================================================================= +! ! SCORE TO THIS MESH CELL +! +! if (found_bin) then +! ! Calculate track-length estimate of flux +! flux = p % wgt * distance +! +! ! Determine mesh bin +! matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, ijk_cross) +! +! ! Determining scoring index +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! +! if (t % all_nuclides) then +! if (p % material /= MATERIAL_VOID) then +! ! Score reaction rates for each nuclide in material +! call score_all_nuclides(p, i_tally, flux, filter_index) +! end if +! else +! NUCLIDE_BIN_LOOP: do b = 1, t % n_nuclide_bins +! ! Get index of nuclide in nuclides array +! i_nuclide = t % nuclide_bins(b) +! +! if (i_nuclide > 0) then +! if (p % material /= MATERIAL_VOID) then +! ! Get pointer to current material +! mat => materials(p % material) +! +! ! Determine if nuclide is actually in material +! NUCLIDE_MAT_LOOP: do j = 1, mat % n_nuclides +! ! If index of nuclide matches the j-th nuclide listed in +! ! the material, break out of the loop +! if (i_nuclide == mat % nuclide(j)) exit +! +! ! If we've reached the last nuclide in the material, it +! ! means the specified nuclide to be tallied is not in this +! ! material +! if (j == mat % n_nuclides) then +! cycle NUCLIDE_BIN_LOOP +! end if +! end do NUCLIDE_MAT_LOOP +! +! atom_density = mat % atom_density(j) +! else +! atom_density = ZERO +! end if +! end if +! +! ! Determine score for each bin +! call score_general(p, t, (b-1)*t % n_score_bins, filter_index, & +! i_nuclide, atom_density, flux) +! +! end do NUCLIDE_BIN_LOOP +! end if +! end if +! +! ! Calculate new coordinates +! xyz0 = xyz0 + distance * uvw +! +! end do MESH_LOOP end subroutine score_tl_on_mesh @@ -2309,181 +2327,8 @@ contains 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 - 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(distribcell_index) - 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(distribcell_index, & - 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) - ! determine incoming energy bin - n = t % filters(i) % n_bins - - ! make sure the correct energy is used - if (t % estimator == ESTIMATOR_TRACKLENGTH) then - E = p % E - else - E = p % last_E - end if - - ! 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 - - case (FILTER_ENERGYOUT) - ! 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 - - 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 + matching_bins(i) = t % filters(i) % obj % get_next_bin(p, t % estimator, & + NO_BIN_FOUND) ! If the current filter didn't match, exit this subroutine if (matching_bins(i) == NO_BIN_FOUND) then @@ -2501,212 +2346,212 @@ contains 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 :: distribcell_index ! index in distribcell arrays - integer :: offset ! offset for distribcell - real(8) :: theta, phi ! Polar and Azimuthal Angles, respectively - real(8) :: E - 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 - 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(distribcell_index) - 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(distribcell_index, & - 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) - 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 % 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 - 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 - - ! 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 - - ! 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 - - ! 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 - +! 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 +! 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 +! 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(distribcell_index) +! 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(distribcell_index, & +! 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) +! 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 % 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 +! 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 +! +! ! 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 +! +! ! 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 +! +! ! 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 !=============================================================================== @@ -2718,307 +2563,307 @@ contains type(Particle), intent(in) :: p - integer :: i - integer :: i_tally - integer :: j ! loop indices - integer :: k ! loop indices - integer :: ijk0(3) ! indices of starting coordinates - integer :: ijk1(3) ! indices of ending coordinates - integer :: n_cross ! number of surface crossings - integer :: n ! number of incoming energy bins - integer :: filter_index ! index of scoring bin - integer :: i_filter_mesh ! index of mesh filter in filters array - integer :: i_filter_surf ! index of surface filter in filters - real(8) :: uvw(3) ! cosine of angle of particle - real(8) :: xyz0(3) ! starting/intermediate coordinates - real(8) :: xyz1(3) ! ending coordinates of particle - real(8) :: xyz_cross(3) ! coordinates of bounding surfaces - real(8) :: d(3) ! distance to each bounding surface - real(8) :: distance ! actual distance traveled - logical :: start_in_mesh ! particle's starting xyz in mesh? - logical :: end_in_mesh ! particle's ending xyz in mesh? - logical :: x_same ! same starting/ending x index (i) - logical :: y_same ! same starting/ending y index (j) - logical :: z_same ! same starting/ending z index (k) - type(TallyObject), pointer :: t - type(RegularMesh), pointer :: m - - TALLY_LOOP: do i = 1, active_current_tallies % size() - ! Copy starting and ending location of particle - xyz0 = p % last_xyz - xyz1 = p % coord(1) % xyz - - ! Get pointer to tally - i_tally = active_current_tallies % get_item(i) - t => tallies(i_tally) - - ! Get index for mesh and surface filters - i_filter_mesh = t % find_filter(FILTER_MESH) - i_filter_surf = t % find_filter(FILTER_SURFACE) - - ! Determine indices for starting and ending location - m => meshes(t % filters(i_filter_mesh) % int_bins(1)) - call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) - call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) - - ! Check to if start or end is in mesh -- if not, check if track still - ! intersects with mesh - if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then - if (m % n_dimension == 2) then - if (.not. mesh_intersects_2d(m, xyz0, xyz1)) cycle - else - if (.not. mesh_intersects_3d(m, xyz0, xyz1)) cycle - end if - end if - - ! Calculate number of surface crossings - n_cross = sum(abs(ijk1 - ijk0)) - if (n_cross == 0) then - cycle - end if - - ! Copy particle's direction - 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 - - ! 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 - - x_same = (ijk0(1) == ijk1(1)) - y_same = (ijk0(2) == ijk1(2)) - z_same = (ijk0(3) == ijk1(3)) - - if (x_same .and. y_same) then - ! Only z crossings - if (uvw(3) > 0) then - do j = ijk0(3), ijk1(3) - 1 - ijk0(3) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_TOP - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - end do - else - do j = ijk0(3) - 1, ijk1(3), -1 - ijk0(3) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_TOP - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - end do - end if - cycle - elseif (x_same .and. z_same) then - ! Only y crossings - if (uvw(2) > 0) then - do j = ijk0(2), ijk1(2) - 1 - ijk0(2) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_FRONT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - end do - else - do j = ijk0(2) - 1, ijk1(2), -1 - ijk0(2) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_FRONT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - end do - end if - cycle - elseif (y_same .and. z_same) then - ! Only x crossings - if (uvw(1) > 0) then - do j = ijk0(1), ijk1(1) - 1 - ijk0(1) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_RIGHT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - end do - else - do j = ijk0(1) - 1, ijk1(1), -1 - ijk0(1) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_RIGHT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - end do - end if - cycle - end if - - ! ======================================================================= - ! GENERIC CASE - - ! Bounding coordinates - do j = 1, 3 - if (uvw(j) > 0) then - xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) - else - xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) - end if - end do - - do k = 1, n_cross - ! Reset scoring bin index - matching_bins(i_filter_surf) = 0 - - ! Calculate distance to each bounding surface. We need to treat - ! special case where the cosine of the angle is zero since this would - ! result in a divide-by-zero. - - do j = 1, 3 - if (uvw(j) == 0) then - d(j) = INFINITY - else - d(j) = (xyz_cross(j) - xyz0(j))/uvw(j) - end if - end do - - ! Determine the closest bounding surface of the mesh cell by - ! calculating the minimum distance - - distance = minval(d) - - ! Now use the minimum distance and diretion of the particle to - ! determine which surface was crossed - - if (distance == d(1)) then - if (uvw(1) > 0) then - ! Crossing into right mesh cell -- this is treated as outgoing - ! current from (i,j,k) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_RIGHT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - end if - ijk0(1) = ijk0(1) + 1 - xyz_cross(1) = xyz_cross(1) + m % width(1) - else - ! Crossing into left mesh cell -- this is treated as incoming - ! current in (i-1,j,k) - ijk0(1) = ijk0(1) - 1 - xyz_cross(1) = xyz_cross(1) - m % width(1) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_RIGHT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - end if - end if - elseif (distance == d(2)) then - if (uvw(2) > 0) then - ! Crossing into front mesh cell -- this is treated as outgoing - ! current in (i,j,k) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_FRONT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - end if - ijk0(2) = ijk0(2) + 1 - xyz_cross(2) = xyz_cross(2) + m % width(2) - else - ! Crossing into back mesh cell -- this is treated as incoming - ! current in (i,j-1,k) - ijk0(2) = ijk0(2) - 1 - xyz_cross(2) = xyz_cross(2) - m % width(2) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_FRONT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - end if - end if - else if (distance == d(3)) then - if (uvw(3) > 0) then - ! Crossing into top mesh cell -- this is treated as outgoing - ! current in (i,j,k) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_TOP - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - end if - ijk0(3) = ijk0(3) + 1 - xyz_cross(3) = xyz_cross(3) + m % width(3) - else - ! Crossing into bottom mesh cell -- this is treated as incoming - ! current in (i,j,k-1) - ijk0(3) = ijk0(3) - 1 - xyz_cross(3) = xyz_cross(3) - m % width(3) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_TOP - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - end if - end if - end if - - ! Determine scoring index - if (matching_bins(i_filter_surf) > 0) then - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - - ! Check for errors - if (filter_index <= 0 .or. filter_index > & - t % total_filter_bins) then - call fatal_error("Score index outside range.") - end if - - ! Add to surface current tally -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! Calculate new coordinates - xyz0 = xyz0 + distance * uvw - end do - - end do TALLY_LOOP +! integer :: i +! integer :: i_tally +! integer :: j ! loop indices +! integer :: k ! loop indices +! integer :: ijk0(3) ! indices of starting coordinates +! integer :: ijk1(3) ! indices of ending coordinates +! integer :: n_cross ! number of surface crossings +! integer :: n ! number of incoming energy bins +! integer :: filter_index ! index of scoring bin +! integer :: i_filter_mesh ! index of mesh filter in filters array +! integer :: i_filter_surf ! index of surface filter in filters +! real(8) :: uvw(3) ! cosine of angle of particle +! real(8) :: xyz0(3) ! starting/intermediate coordinates +! real(8) :: xyz1(3) ! ending coordinates of particle +! real(8) :: xyz_cross(3) ! coordinates of bounding surfaces +! real(8) :: d(3) ! distance to each bounding surface +! real(8) :: distance ! actual distance traveled +! logical :: start_in_mesh ! particle's starting xyz in mesh? +! logical :: end_in_mesh ! particle's ending xyz in mesh? +! logical :: x_same ! same starting/ending x index (i) +! logical :: y_same ! same starting/ending y index (j) +! logical :: z_same ! same starting/ending z index (k) +! type(TallyObject), pointer :: t +! type(RegularMesh), pointer :: m +! +! TALLY_LOOP: do i = 1, active_current_tallies % size() +! ! Copy starting and ending location of particle +! xyz0 = p % last_xyz +! xyz1 = p % coord(1) % xyz +! +! ! Get pointer to tally +! i_tally = active_current_tallies % get_item(i) +! t => tallies(i_tally) +! +! ! Get index for mesh and surface filters +! i_filter_mesh = t % find_filter(FILTER_MESH) +! i_filter_surf = t % find_filter(FILTER_SURFACE) +! +! ! Determine indices for starting and ending location +! m => meshes(t % filters(i_filter_mesh) % int_bins(1)) +! call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) +! call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) +! +! ! Check to if start or end is in mesh -- if not, check if track still +! ! intersects with mesh +! if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then +! if (m % n_dimension == 2) then +! if (.not. mesh_intersects_2d(m, xyz0, xyz1)) cycle +! else +! if (.not. mesh_intersects_3d(m, xyz0, xyz1)) cycle +! end if +! end if +! +! ! Calculate number of surface crossings +! n_cross = sum(abs(ijk1 - ijk0)) +! if (n_cross == 0) then +! cycle +! end if +! +! ! Copy particle's direction +! 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 +! +! ! 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 +! +! x_same = (ijk0(1) == ijk1(1)) +! y_same = (ijk0(2) == ijk1(2)) +! z_same = (ijk0(3) == ijk1(3)) +! +! if (x_same .and. y_same) then +! ! Only z crossings +! if (uvw(3) > 0) then +! do j = ijk0(3), ijk1(3) - 1 +! ijk0(3) = j +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = OUT_TOP +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!!$omp atomic +! t % results(1, filter_index) % value = & +! t % results(1, filter_index) % value + p % wgt +! end if +! end do +! else +! do j = ijk0(3) - 1, ijk1(3), -1 +! ijk0(3) = j +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = IN_TOP +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!!$omp atomic +! t % results(1, filter_index) % value = & +! t % results(1, filter_index) % value + p % wgt +! end if +! end do +! end if +! cycle +! elseif (x_same .and. z_same) then +! ! Only y crossings +! if (uvw(2) > 0) then +! do j = ijk0(2), ijk1(2) - 1 +! ijk0(2) = j +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = OUT_FRONT +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!!$omp atomic +! t % results(1, filter_index) % value = & +! t % results(1, filter_index) % value + p % wgt +! end if +! end do +! else +! do j = ijk0(2) - 1, ijk1(2), -1 +! ijk0(2) = j +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = IN_FRONT +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!!$omp atomic +! t % results(1, filter_index) % value = & +! t % results(1, filter_index) % value + p % wgt +! end if +! end do +! end if +! cycle +! elseif (y_same .and. z_same) then +! ! Only x crossings +! if (uvw(1) > 0) then +! do j = ijk0(1), ijk1(1) - 1 +! ijk0(1) = j +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = OUT_RIGHT +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!!$omp atomic +! t % results(1, filter_index) % value = & +! t % results(1, filter_index) % value + p % wgt +! end if +! end do +! else +! do j = ijk0(1) - 1, ijk1(1), -1 +! ijk0(1) = j +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = IN_RIGHT +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!!$omp atomic +! t % results(1, filter_index) % value = & +! t % results(1, filter_index) % value + p % wgt +! end if +! end do +! end if +! cycle +! end if +! +! ! ======================================================================= +! ! GENERIC CASE +! +! ! Bounding coordinates +! do j = 1, 3 +! if (uvw(j) > 0) then +! xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) +! else +! xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) +! end if +! end do +! +! do k = 1, n_cross +! ! Reset scoring bin index +! matching_bins(i_filter_surf) = 0 +! +! ! Calculate distance to each bounding surface. We need to treat +! ! special case where the cosine of the angle is zero since this would +! ! result in a divide-by-zero. +! +! do j = 1, 3 +! if (uvw(j) == 0) then +! d(j) = INFINITY +! else +! d(j) = (xyz_cross(j) - xyz0(j))/uvw(j) +! end if +! end do +! +! ! Determine the closest bounding surface of the mesh cell by +! ! calculating the minimum distance +! +! distance = minval(d) +! +! ! Now use the minimum distance and diretion of the particle to +! ! determine which surface was crossed +! +! if (distance == d(1)) then +! if (uvw(1) > 0) then +! ! Crossing into right mesh cell -- this is treated as outgoing +! ! current from (i,j,k) +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = OUT_RIGHT +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! end if +! ijk0(1) = ijk0(1) + 1 +! xyz_cross(1) = xyz_cross(1) + m % width(1) +! else +! ! Crossing into left mesh cell -- this is treated as incoming +! ! current in (i-1,j,k) +! ijk0(1) = ijk0(1) - 1 +! xyz_cross(1) = xyz_cross(1) - m % width(1) +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = IN_RIGHT +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! end if +! end if +! elseif (distance == d(2)) then +! if (uvw(2) > 0) then +! ! Crossing into front mesh cell -- this is treated as outgoing +! ! current in (i,j,k) +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = OUT_FRONT +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! end if +! ijk0(2) = ijk0(2) + 1 +! xyz_cross(2) = xyz_cross(2) + m % width(2) +! else +! ! Crossing into back mesh cell -- this is treated as incoming +! ! current in (i,j-1,k) +! ijk0(2) = ijk0(2) - 1 +! xyz_cross(2) = xyz_cross(2) - m % width(2) +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = IN_FRONT +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! end if +! end if +! else if (distance == d(3)) then +! if (uvw(3) > 0) then +! ! Crossing into top mesh cell -- this is treated as outgoing +! ! current in (i,j,k) +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = OUT_TOP +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! end if +! ijk0(3) = ijk0(3) + 1 +! xyz_cross(3) = xyz_cross(3) + m % width(3) +! else +! ! Crossing into bottom mesh cell -- this is treated as incoming +! ! current in (i,j,k-1) +! ijk0(3) = ijk0(3) - 1 +! xyz_cross(3) = xyz_cross(3) - m % width(3) +! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then +! matching_bins(i_filter_surf) = IN_TOP +! matching_bins(i_filter_mesh) = & +! mesh_indices_to_bin(m, ijk0 + 1, .true.) +! end if +! end if +! end if +! +! ! Determine scoring index +! if (matching_bins(i_filter_surf) > 0) then +! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +! +! ! Check for errors +! if (filter_index <= 0 .or. filter_index > & +! t % total_filter_bins) then +! call fatal_error("Score index outside range.") +! end if +! +! ! Add to surface current tally +!!$omp atomic +! t % results(1, filter_index) % value = & +! t % results(1, filter_index) % value + p % wgt +! end if +! +! ! Calculate new coordinates +! xyz0 = xyz0 + distance * uvw +! end do +! +! end do TALLY_LOOP end subroutine score_surface_current diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 new file mode 100644 index 0000000000..5bb71df6fe --- /dev/null +++ b/src/tally_filter.F90 @@ -0,0 +1,913 @@ +module tally_filter + + use constants, only: ONE, NO_BIN_FOUND + use geometry_header, only: BASE_UNIVERSE + use global + use hdf5_interface + use mesh_header, only: RegularMesh + use mesh, only: get_mesh_bin, bin_to_mesh_indices, & + get_mesh_indices, mesh_indices_to_bin, & + mesh_intersects_2d, mesh_intersects_3d + use output, only: find_offset + use particle_header, only: Particle + use search, only: binary_search + use string, only: to_str + use tally_filter_header + + implicit none + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: MeshFilter + integer :: mesh + contains + procedure :: get_next_bin => get_next_bin_mesh + procedure :: get_score => get_score_mesh + procedure :: to_statepoint => to_statepoint_mesh + procedure :: to_summary => to_statepoint_mesh + procedure :: initialize => initialize_mesh + end type MeshFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: UniverseFilter + integer, allocatable :: universes(:) + contains + procedure :: get_next_bin => get_next_bin_universe + procedure :: get_score => get_score_universe + procedure :: to_statepoint => to_statepoint_universe + procedure :: to_summary => to_statepoint_universe + procedure :: initialize => initialize_universe + end type UniverseFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: MaterialFilter + integer, allocatable :: materials(:) + contains + procedure :: get_next_bin => get_next_bin_material + procedure :: get_score => get_score_material + procedure :: to_statepoint => to_statepoint_material + procedure :: to_summary => to_statepoint_material + procedure :: initialize => initialize_material + end type MaterialFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: CellFilter + integer, allocatable :: cells(:) + contains + procedure :: get_next_bin => get_next_bin_cell + procedure :: get_score => get_score_cell + procedure :: to_statepoint => to_statepoint_cell + procedure :: to_summary => to_statepoint_cell + procedure :: initialize => initialize_cell + end type CellFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: DistribcellFilter + integer :: cell + contains + procedure :: get_next_bin => get_next_bin_distribcell + procedure :: get_score => get_score_distribcell + procedure :: to_statepoint => to_statepoint_distribcell + procedure :: to_summary => to_summary_distribcell + procedure :: initialize => initialize_distribcell + end type DistribcellFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: CellbornFilter + integer, allocatable :: cells(:) + contains + procedure :: get_next_bin => get_next_bin_cellborn + procedure :: get_score => get_score_cellborn + procedure :: to_statepoint => to_statepoint_cellborn + procedure :: to_summary => to_statepoint_cellborn + procedure :: initialize => initialize_cellborn + end type CellbornFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: SurfaceFilter + integer, allocatable :: surfaces(:) + contains + procedure :: get_next_bin => get_next_bin_surface + procedure :: get_score => get_score_surface + procedure :: to_statepoint => to_statepoint_surface + procedure :: to_summary => to_statepoint_surface + procedure :: initialize => initialize_surface + end type SurfaceFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: EnergyFilter + real(8), allocatable :: bins(:) + contains + procedure :: get_next_bin => get_next_bin_energy + procedure :: get_score => get_score_energy + procedure :: to_statepoint => to_statepoint_energy + procedure :: to_summary => to_statepoint_energy + procedure :: initialize => initialize_energy + end type EnergyFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: EnergyoutFilter + real(8), allocatable :: bins(:) + contains + procedure :: get_next_bin => get_next_bin_energyout + procedure :: get_score => get_score_energyout + procedure :: to_statepoint => to_statepoint_energyout + procedure :: to_summary => to_statepoint_energyout + procedure :: initialize => initialize_energyout + end type EnergyoutFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: DelayedGroupFilter + integer, allocatable :: groups(:) + contains + procedure :: get_next_bin => get_next_bin_dg + procedure :: get_score => get_score_dg + procedure :: to_statepoint => to_statepoint_dg + procedure :: to_summary => to_statepoint_dg + procedure :: initialize => initialize_dg + end type DelayedGroupFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: MuFilter + real(8), allocatable :: bins(:) + contains + procedure :: get_next_bin => get_next_bin_mu + procedure :: get_score => get_score_mu + procedure :: to_statepoint => to_statepoint_mu + procedure :: to_summary => to_statepoint_mu + procedure :: initialize => initialize_mu + end type MuFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: PolarFilter + real(8), allocatable :: bins(:) + contains + procedure :: get_next_bin => get_next_bin_polar + procedure :: get_score => get_score_polar + procedure :: to_statepoint => to_statepoint_polar + procedure :: to_summary => to_statepoint_polar + procedure :: initialize => initialize_polar + end type PolarFilter + +!=============================================================================== +!=============================================================================== + type, extends(TallyFilter) :: AzimuthalFilter + real(8), allocatable :: bins(:) + contains + procedure :: get_next_bin => get_next_bin_azimuthal + procedure :: get_score => get_score_azimuthal + procedure :: to_statepoint => to_statepoint_azimuthal + procedure :: to_summary => to_statepoint_azimuthal + procedure :: initialize => initialize_azimuthal + end type AzimuthalFilter + +contains + + + + + + + + +!=============================================================================== +!=============================================================================== + function get_next_bin_mesh(this, p, estimator, current_bin) result(next_bin) + class(MeshFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + type(RegularMesh), pointer :: m + + m => meshes(this % mesh) + call get_mesh_bin(m, p % coord(1) % xyz, next_bin) + end function get_next_bin_mesh + + function get_score_mesh(this, bin) result(score) + class(MeshFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_mesh + + subroutine to_statepoint_mesh(this, filter_group) + class(MeshFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "mesh") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % mesh ) + end subroutine to_statepoint_mesh + + subroutine initialize_mesh(this) + class(MeshFilter), intent(inout) :: this + end subroutine initialize_mesh + +!=============================================================================== +!=============================================================================== + function get_next_bin_universe(this, p, estimator, current_bin) & + result(next_bin) + class(UniverseFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: i, j, start + logical :: bin_found + + if (current_bin == NO_BIN_FOUND) then + start = 1 + else + start = current_bin + 1 + end if + + bin_found = .false. + do i = start, this % n_bins + do j = 1, p % n_coord + if (p % coord(j) % universe == this % universes(i)) then + next_bin = i + bin_found = .true. + exit + end if + end do + if (bin_found) exit + end do + + if (.not. bin_found) next_bin = NO_BIN_FOUND + end function get_next_bin_universe + + function get_score_universe(this, bin) result(score) + class(UniverseFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_universe + + subroutine to_statepoint_universe(this, filter_group) + class(UniverseFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "universe") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % universes ) + end subroutine to_statepoint_universe + + subroutine initialize_universe(this) + class(UniverseFilter), intent(inout) :: this + + integer :: i, id + + do i = 1, this % n_bins + id = this % universes(i) + if (universe_dict % has_key(id)) then + this % universes(i) = universe_dict % get_key(id) + else + call fatal_error("Could not find universe " // trim(to_str(id)) & + &// " specified on a tally filter.") + end if + end do + end subroutine initialize_universe + +!=============================================================================== +!=============================================================================== + function get_next_bin_material(this, p, estimator, current_bin) & + result(next_bin) + class(MaterialFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: i + logical :: bin_found + + if (current_bin == NO_BIN_FOUND) then + bin_found = .false. + do i = 1, this % n_bins + if (p % material == this % materials(i)) then + next_bin = i + bin_found = .true. + exit + end if + end do + if (.not. bin_found) next_bin = NO_BIN_FOUND + else + next_bin = NO_BIN_FOUND + end if + end function get_next_bin_material + + function get_score_material(this, bin) result(score) + class(MaterialFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_material + + subroutine to_statepoint_material(this, filter_group) + class(MaterialFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "material") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % materials ) + end subroutine to_statepoint_material + + subroutine initialize_material(this) + class(MaterialFilter), intent(inout) :: this + + integer :: i, id + + do i = 1, this % n_bins + id = this % materials(i) + if (material_dict % has_key(id)) then + this % materials(i) = material_dict % get_key(id) + else + call fatal_error("Could not find material " // trim(to_str(id)) & + &// " specified on a tally filter.") + end if + end do + end subroutine initialize_material + +!=============================================================================== +!=============================================================================== + function get_next_bin_cell(this, p, estimator, current_bin) result(next_bin) + class(CellFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: i, j, start + logical :: bin_found + + if (current_bin == NO_BIN_FOUND) then + start = 1 + else + start = current_bin + 1 + end if + + bin_found = .false. + do i = start, this % n_bins + do j = 1, p % n_coord + if (p % coord(j) % cell == this % cells(i)) then + next_bin = i + bin_found = .true. + exit + end if + end do + if (bin_found) exit + end do + + if (.not. bin_found) next_bin = NO_BIN_FOUND + end function get_next_bin_cell + + function get_score_cell(this, bin) result(score) + class(CellFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_cell + + subroutine to_statepoint_cell(this, filter_group) + class(CellFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "cell") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % cells ) + end subroutine to_statepoint_cell + + subroutine initialize_cell(this) + class(CellFilter), intent(inout) :: this + + integer :: i, id + + do i = 1, this % n_bins + id = this % cells(i) + if (cell_dict % has_key(id)) then + this % cells(i) = cell_dict % get_key(id) + else + call fatal_error("Could not find cell " // trim(to_str(id)) & + &// " specified on tally filter.") + end if + end do + end subroutine initialize_cell + +!=============================================================================== +!=============================================================================== + function get_next_bin_distribcell(this, p, estimator, current_bin) & + result(next_bin) + class(DistribcellFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: distribcell_index, offset, i + + distribcell_index = cells(this % cell) % distribcell_index + + if (current_bin == NO_BIN_FOUND) then + offset = 0 + do i = 1, p % n_coord + if (cells(p % coord(i) % cell) % type == CELL_FILL) then + offset = offset + cells(p % coord(i) % cell) % & + offset(distribcell_index) + elseif (cells(p % coord(i) % cell) % type == CELL_LATTICE) then + if (lattices(p % coord(i + 1) % lattice) % obj & + % are_valid_indices([& + p % coord(i + 1) % lattice_x, & + p % coord(i + 1) % lattice_y, & + p % coord(i + 1) % lattice_z])) then + offset = offset + lattices(p % coord(i + 1) % lattice) % obj % & + offset(distribcell_index, & + p % coord(i + 1) % lattice_x, & + p % coord(i + 1) % lattice_y, & + p % coord(i + 1) % lattice_z) + end if + end if + if (this % cell == p % coord(i) % cell) then + next_bin = offset + 1 + exit + end if + end do + else + next_bin = NO_BIN_FOUND + end if + end function get_next_bin_distribcell + + function get_score_distribcell(this, bin) result(score) + class(DistribcellFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_distribcell + + subroutine to_statepoint_distribcell(this, filter_group) + class(DistribcellFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "distribcell") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % cell ) + end subroutine to_statepoint_distribcell + + subroutine to_summary_distribcell(this, filter_group) + class(DistribcellFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + integer :: offset, k + character(MAX_LINE_LEN), allocatable :: paths(:) + character(MAX_LINE_LEN) :: path + + call write_dataset(filter_group, "type", "distribcell") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % cell ) + + ! Write paths to reach each distribcell instance + + ! Allocate array of strings for each distribcell path + allocate(paths(this % n_bins)) + + ! Store path for each distribcell instance + do k = 1, this % n_bins + path = '' + offset = 1 + call find_offset(this % cell, 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) + end subroutine to_summary_distribcell + + subroutine initialize_distribcell(this) + class(DistribcellFilter), intent(inout) :: this + + integer :: i, id + + do i = 1, this % n_bins + id = this % cell + if (cell_dict % has_key(id)) then + this % cell = cell_dict % get_key(id) + else + call fatal_error("Could not find cell " // trim(to_str(id)) & + &// " specified on tally filter.") + end if + end do + end subroutine initialize_distribcell + +!=============================================================================== +!=============================================================================== + function get_next_bin_cellborn(this, p, estimator, current_bin) & + result(next_bin) + class(CellbornFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: i + logical :: bin_found + + if (current_bin == NO_BIN_FOUND) then + bin_found = .false. + do i = 1, this % n_bins + if (p % cell_born == this % cells(i)) then + next_bin = i + bin_found = .true. + exit + end if + end do + if (.not. bin_found) next_bin = NO_BIN_FOUND + else + next_bin = NO_BIN_FOUND + end if + end function get_next_bin_cellborn + + function get_score_cellborn(this, bin) result(score) + class(CellbornFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_cellborn + + subroutine to_statepoint_cellborn(this, filter_group) + class(CellbornFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "cellborn") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % cells ) + end subroutine to_statepoint_cellborn + + subroutine initialize_cellborn(this) + class(CellbornFilter), intent(inout) :: this + + integer :: i, id + + do i = 1, this % n_bins + id = this % cells(i) + if (cell_dict % has_key(id)) then + this % cells(i) = cell_dict % get_key(id) + else + call fatal_error("Could not find cell " // trim(to_str(id)) & + &// " specified on tally filter.") + end if + end do + end subroutine initialize_cellborn + +!=============================================================================== +!=============================================================================== + function get_next_bin_surface(this, p, estimator, current_bin) & + result(next_bin) + class(SurfaceFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: i + logical :: bin_found + + if (current_bin == NO_BIN_FOUND) then + bin_found = .false. + do i = 1, this % n_bins + if (p % surface == this % surfaces(i)) then + next_bin = i + bin_found = .true. + exit + end if + end do + if (.not. bin_found) next_bin = NO_BIN_FOUND + else + next_bin = NO_BIN_FOUND + end if + end function get_next_bin_surface + + function get_score_surface(this, bin) result(score) + class(SurfaceFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_surface + + subroutine to_statepoint_surface(this, filter_group) + class(SurfaceFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "surface") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % surfaces ) + end subroutine to_statepoint_surface + + subroutine initialize_surface(this) + class(SurfaceFilter), intent(inout) :: this + + integer :: i, id + + do i = 1, this % n_bins + id = this % surfaces(i) + if (surface_dict % has_key(id)) then + this % surfaces(i) = surface_dict % get_key(id) + else + call fatal_error("Could not find surface " // trim(to_str(id)) & + &// " specified on tally filter.") + end if + end do + end subroutine initialize_surface + +!=============================================================================== +!=============================================================================== + function get_next_bin_energy(this, p, estimator, current_bin) result(next_bin) + class(EnergyFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: n + real(8) :: E + + if (current_bin == NO_BIN_FOUND) then + n = this % n_bins + + ! Make sure the correct energy is used. + if (estimator == ESTIMATOR_TRACKLENGTH) then + E = p % E + else + E = p % last_E + end if + + ! Check if energy of the particle is within energy bins. + if (E < this % bins(1) .or. E > this % bins(n + 1)) then + next_bin = NO_BIN_FOUND + else + ! Search to find incoming energy bin. + next_bin = binary_search(this % bins, n + 1, E) + end if + + else + next_bin = NO_BIN_FOUND + end if + end function get_next_bin_energy + + function get_score_energy(this, bin) result(score) + class(EnergyFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_energy + + subroutine to_statepoint_energy(this, filter_group) + class(EnergyFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "energy") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % bins ) + end subroutine to_statepoint_energy + + subroutine initialize_energy(this) + class(EnergyFilter), intent(inout) :: this + end subroutine initialize_energy + +!=============================================================================== +!=============================================================================== + function get_next_bin_energyout(this, p, estimator, current_bin) & + result(next_bin) + class(EnergyoutFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: n + + if (current_bin == NO_BIN_FOUND) then + n = this % n_bins + + ! Check if energy of the particle is within energy bins. + if (p % E < this % bins(1) .or. p % E > this % bins(n + 1)) then + next_bin = NO_BIN_FOUND + else + ! Search to find incoming energy bin. + next_bin = binary_search(this % bins, n + 1, p % E) + end if + + else + next_bin = NO_BIN_FOUND + end if + end function get_next_bin_energyout + + function get_score_energyout(this, bin) result(score) + class(EnergyoutFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_energyout + + subroutine to_statepoint_energyout(this, filter_group) + class(EnergyoutFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "energyout") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % bins ) + end subroutine to_statepoint_energyout + + subroutine initialize_energyout(this) + class(EnergyoutFilter), intent(inout) :: this + end subroutine initialize_energyout + +!=============================================================================== +!=============================================================================== + function get_next_bin_dg(this, p, estimator, current_bin) result(next_bin) + class(DelayedGroupFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + end function get_next_bin_dg + + function get_score_dg(this, bin) result(score) + class(DelayedGroupFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_dg + + subroutine to_statepoint_dg(this, filter_group) + class(DelayedGroupFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "delayedgroup") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % groups ) + end subroutine to_statepoint_dg + + subroutine initialize_dg(this) + class(DelayedGroupFilter), intent(inout) :: this + end subroutine initialize_dg + +!=============================================================================== +!=============================================================================== + function get_next_bin_mu(this, p, estimator, current_bin) result(next_bin) + class(MuFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: n + + if (current_bin == NO_BIN_FOUND) then + n = this % n_bins + + ! Check if energy of the particle is within energy bins. + if (p % mu < this % bins(1) .or. p % mu > this % bins(n + 1)) then + next_bin = NO_BIN_FOUND + else + ! Search to find incoming energy bin. + next_bin = binary_search(this % bins, n + 1, p % mu) + end if + + else + next_bin = NO_BIN_FOUND + end if + end function get_next_bin_mu + + function get_score_mu(this, bin) result(score) + class(MuFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_mu + + subroutine to_statepoint_mu(this, filter_group) + class(MuFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "mu") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % bins ) + end subroutine to_statepoint_mu + + subroutine initialize_mu(this) + class(MuFilter), intent(inout) :: this + end subroutine initialize_mu + +!=============================================================================== +!=============================================================================== + function get_next_bin_polar(this, p, estimator, current_bin) result(next_bin) + class(PolarFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: n + real(8) :: theta + + if (current_bin == NO_BIN_FOUND) then + n = this % n_bins + + ! Make sure the correct direction vector is used. + if (estimator == ESTIMATOR_TRACKLENGTH) then + theta = acos(p % coord(1) % uvw(3)) + else + theta = acos(p % last_uvw(3)) + end if + + ! Check if particle is within polar angle bins. + if (theta < this % bins(1) .or. theta > this % bins(n + 1)) then + next_bin = NO_BIN_FOUND + else + ! Search to find polar angle bin. + next_bin = binary_search(this % bins, n + 1, theta) + end if + + else + next_bin = NO_BIN_FOUND + end if + end function get_next_bin_polar + + function get_score_polar(this, bin) result(score) + class(PolarFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_polar + + subroutine to_statepoint_polar(this, filter_group) + class(PolarFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "polar") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % bins ) + end subroutine to_statepoint_polar + + subroutine initialize_polar(this) + class(PolarFilter), intent(inout) :: this + end subroutine initialize_polar + +!=============================================================================== +!=============================================================================== + function get_next_bin_azimuthal(this, p, estimator, current_bin) & + result(next_bin) + class(AzimuthalFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + + integer :: n + real(8) :: phi + + if (current_bin == NO_BIN_FOUND) then + n = this % n_bins + + ! Make sure the correct direction vector is used. + if (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 + + ! Check if particle is within azimuthal angle bins. + if (phi < this % bins(1) .or. phi > this % bins(n + 1)) then + next_bin = NO_BIN_FOUND + else + ! Search to find azimuthal angle bin. + next_bin = binary_search(this % bins, n + 1, phi) + end if + + else + next_bin = NO_BIN_FOUND + end if + end function get_next_bin_azimuthal + + function get_score_azimuthal(this, bin) result(score) + class(AzimuthalFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_azimuthal + + subroutine to_statepoint_azimuthal(this, filter_group) + class(AzimuthalFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call write_dataset(filter_group, "type", "azimuthal") + call write_dataset(filter_group, "n_bins", this % n_bins) + call write_dataset(filter_group, "bins", this % bins ) + end subroutine to_statepoint_azimuthal + + subroutine initialize_azimuthal(this) + class(AzimuthalFilter), intent(inout) :: this + end subroutine initialize_azimuthal + +end module tally_filter diff --git a/src/tally_filter_header.F90 b/src/tally_filter_header.F90 new file mode 100644 index 0000000000..b373f8d413 --- /dev/null +++ b/src/tally_filter_header.F90 @@ -0,0 +1,64 @@ +module tally_filter_header + + use particle_header, only: Particle + + use hdf5 + + implicit none + + type, abstract :: TallyFilter + integer :: n_bins = 0 + integer :: type + contains + procedure(get_next_bin_), deferred :: get_next_bin + procedure(get_score_), deferred :: get_score + procedure(to_statepoint_), deferred :: to_statepoint + procedure(to_summary_), deferred :: to_summary + procedure(initialize_), deferred :: initialize + end type TallyFilter + + type TallyFilterContainer + class(TallyFilter), allocatable :: obj + end type TallyFilterContainer + + abstract interface + + function get_next_bin_(this, p, estimator, current_bin) result(next_bin) + import TallyFilter + import Particle + class(TallyFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer :: next_bin + end function get_next_bin_ + + function get_score_(this, bin) result(score) + import TallyFilter + class(TallyFilter), intent(in) :: this + integer, intent(in) :: bin + real(8) :: score + end function get_score_ + + subroutine to_statepoint_(this, filter_group) + import TallyFilter + import HID_T + class(TallyFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + end subroutine to_statepoint_ + + subroutine to_summary_(this, filter_group) + import TallyFilter + import HID_T + class(TallyFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + end subroutine to_summary_ + + subroutine initialize_(this) + import TallyFilter + class(TallyFilter), intent(inout) :: this + end subroutine initialize_ + + end interface + +end module tally_filter_header diff --git a/src/tally_header.F90 b/src/tally_header.F90 index 8db9ab0e1b..46a6e2d9ca 100644 --- a/src/tally_header.F90 +++ b/src/tally_header.F90 @@ -1,7 +1,9 @@ module tally_header - use constants, only: NONE, N_FILTER_TYPES - use trigger_header, only: TriggerObject + use constants, only: NONE, N_FILTER_TYPES + use tally_filter_header, only: TallyFilterContainer + use trigger_header, only: TriggerObject + use, intrinsic :: ISO_C_BINDING implicit none @@ -52,12 +54,12 @@ module tally_header ! should score to the tally. !=============================================================================== - type TallyFilter - integer :: type = NONE - integer :: n_bins = 0 - integer, allocatable :: int_bins(:) - real(8), allocatable :: real_bins(:) ! Only used for energy filters - end type TallyFilter +! type TallyFilter +! integer :: type = NONE +! integer :: n_bins = 0 +! integer, allocatable :: int_bins(:) +! real(8), allocatable :: real_bins(:) ! Only used for energy filters +! end type TallyFilter !=============================================================================== ! TALLYOBJECT describes a user-specified tally. The region of phase space to @@ -77,7 +79,8 @@ module tally_header ! Information about what filters should be used integer :: n_filters ! Number of filters - type(TallyFilter), allocatable :: filters(:) ! Filter data (type/bins) + !type(TallyFilter), allocatable :: filters(:) ! Filter data (type/bins) + type(TallyFilterContainer), allocatable :: filters(:) ! The stride attribute is used for determining the index in the results ! array for a matching_bin combination. Since multiple dimensions are diff --git a/src/tally_initialize.F90 b/src/tally_initialize.F90 index 73aa18c60c..d8f7176a6e 100644 --- a/src/tally_initialize.F90 +++ b/src/tally_initialize.F90 @@ -55,7 +55,7 @@ contains n = 1 STRIDE: do j = t % n_filters, 1, -1 t % stride(j) = n - n = n * t % filters(j) % n_bins + n = n * t % filters(j) % obj % n_bins end do STRIDE ! Set total number of filter and scoring bins @@ -83,49 +83,49 @@ contains subroutine setup_tally_maps() - integer :: i ! loop index for tallies - integer :: j ! loop index for filters - integer :: k ! loop index for bins - integer :: bin ! filter bin entries - integer :: type ! type of tally filter - type(TallyObject), pointer :: t - - ! allocate tally map array -- note that we don't need a tally map for the - ! energy_in and energy_out filters - allocate(tally_maps(N_FILTER_TYPES - 3)) - - ! allocate list of items for each different filter type - allocate(tally_maps(FILTER_UNIVERSE) % items(n_universes)) - allocate(tally_maps(FILTER_MATERIAL) % items(n_materials)) - allocate(tally_maps(FILTER_CELL) % items(n_cells)) - allocate(tally_maps(FILTER_CELLBORN) % items(n_cells)) - allocate(tally_maps(FILTER_SURFACE) % items(n_surfaces)) - - TALLY_LOOP: do i = 1, n_tallies - ! Get pointer to tally - t => tallies(i) - - ! No need to set up tally maps for surface current tallies - if (t % type == TALLY_SURFACE_CURRENT) cycle - - FILTER_LOOP: do j = 1, t % n_filters - ! Determine type of filter - type = t % filters(j) % type - - if (type == FILTER_CELL .or. type == FILTER_SURFACE .or. & - type == FILTER_MATERIAL .or. type == FILTER_UNIVERSE .or. & - type == FILTER_CELLBORN) then - - ! Add map elements - BIN_LOOP: do k = 1, t % filters(j) % n_bins - bin = t % filters(j) % int_bins(k) - call add_map_element(tally_maps(type) % items(bin), i, k) - end do BIN_LOOP - end if - - end do FILTER_LOOP - - end do TALLY_LOOP +! integer :: i ! loop index for tallies +! integer :: j ! loop index for filters +! integer :: k ! loop index for bins +! integer :: bin ! filter bin entries +! integer :: type ! type of tally filter +! type(TallyObject), pointer :: t +! +! ! allocate tally map array -- note that we don't need a tally map for the +! ! energy_in and energy_out filters +! allocate(tally_maps(N_FILTER_TYPES - 3)) +! +! ! allocate list of items for each different filter type +! allocate(tally_maps(FILTER_UNIVERSE) % items(n_universes)) +! allocate(tally_maps(FILTER_MATERIAL) % items(n_materials)) +! allocate(tally_maps(FILTER_CELL) % items(n_cells)) +! allocate(tally_maps(FILTER_CELLBORN) % items(n_cells)) +! allocate(tally_maps(FILTER_SURFACE) % items(n_surfaces)) +! +! TALLY_LOOP: do i = 1, n_tallies +! ! Get pointer to tally +! t => tallies(i) +! +! ! No need to set up tally maps for surface current tallies +! if (t % type == TALLY_SURFACE_CURRENT) cycle +! +! FILTER_LOOP: do j = 1, t % n_filters +! ! Determine type of filter +! type = t % filters(j) % type +! +! if (type == FILTER_CELL .or. type == FILTER_SURFACE .or. & +! type == FILTER_MATERIAL .or. type == FILTER_UNIVERSE .or. & +! type == FILTER_CELLBORN) then +! +! ! Add map elements +! BIN_LOOP: do k = 1, t % filters(j) % n_bins +! bin = t % filters(j) % int_bins(k) +! call add_map_element(tally_maps(type) % items(bin), i, k) +! end do BIN_LOOP +! end if +! +! end do FILTER_LOOP +! +! end do TALLY_LOOP end subroutine setup_tally_maps diff --git a/src/trigger.F90 b/src/trigger.F90 index ed362154b4..9756dd5a7b 100644 --- a/src/trigger.F90 +++ b/src/trigger.F90 @@ -12,6 +12,7 @@ module trigger use mesh_header, only: RegularMesh use trigger_header, only: TriggerObject use tally, only: TallyObject + use tally_filter, only: MeshFilter implicit none @@ -300,7 +301,10 @@ contains ! Get pointer to mesh i_filter_mesh = t % find_filter(FILTER_MESH) i_filter_surf = t % find_filter(FILTER_SURFACE) - m => meshes(t % filters(i_filter_mesh) % int_bins(1)) + select type(filt => t % filters(i_filter_mesh) % obj) + type is (MeshFilter) + m => meshes(filt % mesh) + end select ! initialize bins array matching_bins(1:t % n_filters) = 1 @@ -309,7 +313,7 @@ contains i_filter_ein = t % find_filter(FILTER_ENERGYIN) if (i_filter_ein > 0) then print_ebin = .true. - n = t % filters(i_filter_ein) % n_bins + n = t % filters(i_filter_ein) % obj % n_bins else print_ebin = .false. n = 1 From 5f3825d758ed3e92011b392403d9f10ce182dd5a Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 23 Jun 2016 19:43:08 -0500 Subject: [PATCH 081/417] Use type-bound methods for tallies.out output --- src/output.F90 | 1058 ++++++++++++----------------------- src/tally_filter.F90 | 429 +++++++++++++- src/tally_filter_header.F90 | 10 + 3 files changed, 796 insertions(+), 701 deletions(-) diff --git a/src/output.F90 b/src/output.F90 index 5fe9685a2a..ba0ad71c96 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -17,6 +17,7 @@ module output use sab_header, only: SAlphaBeta use string, only: to_upper, to_str use tally_header, only: TallyObject + use tally_filter implicit none @@ -748,7 +749,6 @@ contains real(8) :: t_value ! t-values for confidence intervals real(8) :: alpha ! significance level for CI character(MAX_FILE_LEN) :: filename ! name of output file - character(16) :: filter_name(N_FILTER_TYPES) ! names of tally filters character(36) :: score_names(N_SCORE_TYPES) ! names of scoring function character(36) :: score_name ! names of scoring function ! to be applied at write-time @@ -757,233 +757,216 @@ contains ! Skip if there are no tallies if (n_tallies == 0) return -! ! Initialize names for tally filter types -! filter_name(FILTER_UNIVERSE) = "Universe" -! filter_name(FILTER_MATERIAL) = "Material" -! filter_name(FILTER_DISTRIBCELL) = "Distributed Cell" -! filter_name(FILTER_CELL) = "Cell" -! filter_name(FILTER_CELLBORN) = "Birth Cell" -! filter_name(FILTER_SURFACE) = "Surface" -! filter_name(FILTER_MESH) = "Mesh" -! filter_name(FILTER_ENERGYIN) = "Incoming Energy" -! filter_name(FILTER_ENERGYOUT) = "Outgoing Energy" -! filter_name(FILTER_MU) = "Change-in-Angle" -! filter_name(FILTER_POLAR) = "Polar Angle" -! filter_name(FILTER_AZIMUTHAL) = "Azimuthal Angle" -! filter_name(FILTER_DELAYEDGROUP) = "Delayed Group" -! -! ! Initialize names for scores -! score_names(abs(SCORE_FLUX)) = "Flux" -! score_names(abs(SCORE_TOTAL)) = "Total Reaction Rate" -! score_names(abs(SCORE_SCATTER)) = "Scattering Rate" -! score_names(abs(SCORE_NU_SCATTER)) = "Scattering Production Rate" -! score_names(abs(SCORE_ABSORPTION)) = "Absorption Rate" -! score_names(abs(SCORE_FISSION)) = "Fission Rate" -! score_names(abs(SCORE_NU_FISSION)) = "Nu-Fission Rate" -! score_names(abs(SCORE_KAPPA_FISSION)) = "Kappa-Fission Rate" -! score_names(abs(SCORE_EVENTS)) = "Events" -! score_names(abs(SCORE_FLUX_YN)) = "Flux Moment" -! score_names(abs(SCORE_TOTAL_YN)) = "Total Reaction Rate Moment" -! score_names(abs(SCORE_SCATTER_N)) = "Scattering Rate Moment" -! score_names(abs(SCORE_SCATTER_PN)) = "Scattering Rate Moment" -! score_names(abs(SCORE_SCATTER_YN)) = "Scattering Rate Moment" -! score_names(abs(SCORE_NU_SCATTER_N)) = "Scattering Prod. Rate Moment" -! score_names(abs(SCORE_NU_SCATTER_PN)) = "Scattering Prod. Rate Moment" -! score_names(abs(SCORE_NU_SCATTER_YN)) = "Scattering Prod. Rate Moment" -! score_names(abs(SCORE_DELAYED_NU_FISSION)) = "Delayed-Nu-Fission Rate" -! score_names(abs(SCORE_INVERSE_VELOCITY)) = "Flux-Weighted Inverse Velocity" -! -! ! Create filename for tally output -! filename = trim(path_output) // "tallies.out" -! -! ! Open tally file for writing -! open(FILE=filename, NEWUNIT=unit_tally, STATUS='replace', ACTION='write') -! -! ! Calculate t-value for confidence intervals -! if (confidence_intervals) then -! alpha = ONE - CONFIDENCE_LEVEL -! t_value = t_percentile(ONE - alpha/TWO, n_realizations - 1) -! end if -! -! TALLY_LOOP: do i = 1, n_tallies -! t => tallies(i) -! -! if (confidence_intervals) then -! ! Calculate t-value for confidence intervals -! if (confidence_intervals) then -! alpha = ONE - CONFIDENCE_LEVEL -! t_value = t_percentile(ONE - alpha/TWO, t % n_realizations - 1) -! end if -! -! ! Multiply uncertainty by t-value -! t % results % sum_sq = t_value * t % results % sum_sq -! end if -! -! ! Write header block -! if (t % name == "") then -! call header("TALLY " // trim(to_str(t % id)), unit=unit_tally, & -! level=3) -! else -! call header("TALLY " // trim(to_str(t % id)) // ": " & -! // trim(t % name), unit=unit_tally, level=3) -! endif -! -! ! Handle surface current tallies separately -! if (t % type == TALLY_SURFACE_CURRENT) then -! call write_surface_current(t, unit_tally) -! cycle -! end if -! -! ! WARNING: Admittedly, the logic for moving for printing results is -! ! extremely confusing and took quite a bit of time to get correct. The -! ! logic is structured this way since it is not practical to have a do -! ! loop for each filter variable (given that only a few filters are likely -! ! to be used for a given tally. -! -! ! Initialize bins, filter level, and indentation -! matching_bins(1:t%n_filters) = 0 -! j = 1 -! indent = 0 -! -! print_bin: do -! find_bin: do -! ! Check for no filters -! if (t % n_filters == 0) exit find_bin -! -! ! Increment bin combination -! matching_bins(j) = matching_bins(j) + 1 -! -! ! ================================================================= -! ! REACHED END OF BINS FOR THIS FILTER, MOVE TO NEXT FILTER -! -! if (matching_bins(j) > t % filters(j) % n_bins) then -! ! If this is the first filter, then exit -! if (j == 1) exit print_bin -! -! matching_bins(j) = 0 -! j = j - 1 -! indent = indent - 2 -! -! ! ================================================================= -! ! VALID BIN -- WRITE FILTER INFORMATION OR EXIT TO WRITE RESULTS -! -! else -! ! Check if this is last filter -! if (j == t % n_filters) exit find_bin -! -! ! Print current filter information -! type = t % filters(j) % type -! write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & -! trim(filter_name(type)), trim(get_label(t, j)) -! indent = indent + 2 -! j = j + 1 -! end if -! -! end do find_bin -! -! ! Print filter information -! if (t % n_filters > 0) then -! type = t % filters(j) % type -! write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & -! trim(filter_name(type)), trim(get_label(t, j)) -! end if -! -! ! Determine scoring index for this bin combination -- note that unlike -! ! in the score_tally subroutine, we have to use max(bins,1) since all -! ! bins below the lowest filter level will be zeros -! -! if (t % n_filters > 0) then -! filter_index = sum((max(matching_bins(1:t%n_filters),1) - 1) * t % stride) + 1 -! else -! filter_index = 1 -! end if -! -! ! Write results for this filter bin combination -! score_index = 0 -! if (t % n_filters > 0) indent = indent + 2 -! do n = 1, t % n_nuclide_bins -! ! Write label for nuclide -! i_nuclide = t % nuclide_bins(n) -! if (i_nuclide == -1) then -! write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & -! "Total Material" -! else -! if (run_CE) then -! i_listing = nuclides(i_nuclide) % listing -! else -! i_listing = nuclides_MG(i_nuclide) % obj % listing -! end if -! write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & -! trim(xs_listings(i_listing) % alias) -! end if -! -! indent = indent + 2 -! k = 0 -! do l = 1, t % n_user_score_bins -! k = k + 1 -! score_index = score_index + 1 -! select case(t % score_bins(k)) -! case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) -! score_name = 'P' // trim(to_str(t % moment_order(k))) // " " // & -! score_names(abs(t % score_bins(k))) -! write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & -! repeat(" ", indent), score_name, & -! to_str(t % results(score_index,filter_index) % sum), & -! trim(to_str(t % results(score_index,filter_index) % sum_sq)) -! case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN) -! score_index = score_index - 1 -! do n_order = 0, t % moment_order(k) -! score_index = score_index + 1 -! score_name = 'P' // trim(to_str(n_order)) // " " //& -! score_names(abs(t % score_bins(k))) -! write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & -! repeat(" ", indent), score_name, & -! to_str(t % results(score_index,filter_index) % sum), & -! trim(to_str(t % results(score_index,filter_index) & -! % sum_sq)) -! end do -! k = k + t % moment_order(k) -! case (SCORE_SCATTER_YN, SCORE_NU_SCATTER_YN, SCORE_FLUX_YN, & -! SCORE_TOTAL_YN) -! score_index = score_index - 1 -! do n_order = 0, t % moment_order(k) -! do nm_order = -n_order, n_order -! score_index = score_index + 1 -! score_name = 'Y' // trim(to_str(n_order)) // ',' // & -! trim(to_str(nm_order)) // " " & -! // score_names(abs(t % score_bins(k))) -! write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & -! repeat(" ", indent), score_name, & -! to_str(t % results(score_index,filter_index) % sum), & -! trim(to_str(t % results(score_index,filter_index)& -! % sum_sq)) -! end do -! end do -! k = k + (t % moment_order(k) + 1)**2 - 1 -! case default -! if (t % score_bins(k) > 0) then -! score_name = reaction_name(t % score_bins(k)) -! else -! score_name = score_names(abs(t % score_bins(k))) -! end if -! write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & -! repeat(" ", indent), score_name, & -! to_str(t % results(score_index,filter_index) % sum), & -! trim(to_str(t % results(score_index,filter_index) % sum_sq)) -! end select -! end do -! indent = indent - 2 -! -! end do -! indent = indent - 2 -! -! if (t % n_filters == 0) exit print_bin -! -! end do print_bin -! -! end do TALLY_LOOP -! -! close(UNIT=unit_tally) + ! Initialize names for scores + score_names(abs(SCORE_FLUX)) = "Flux" + score_names(abs(SCORE_TOTAL)) = "Total Reaction Rate" + score_names(abs(SCORE_SCATTER)) = "Scattering Rate" + score_names(abs(SCORE_NU_SCATTER)) = "Scattering Production Rate" + score_names(abs(SCORE_ABSORPTION)) = "Absorption Rate" + score_names(abs(SCORE_FISSION)) = "Fission Rate" + score_names(abs(SCORE_NU_FISSION)) = "Nu-Fission Rate" + score_names(abs(SCORE_KAPPA_FISSION)) = "Kappa-Fission Rate" + score_names(abs(SCORE_EVENTS)) = "Events" + score_names(abs(SCORE_FLUX_YN)) = "Flux Moment" + score_names(abs(SCORE_TOTAL_YN)) = "Total Reaction Rate Moment" + score_names(abs(SCORE_SCATTER_N)) = "Scattering Rate Moment" + score_names(abs(SCORE_SCATTER_PN)) = "Scattering Rate Moment" + score_names(abs(SCORE_SCATTER_YN)) = "Scattering Rate Moment" + score_names(abs(SCORE_NU_SCATTER_N)) = "Scattering Prod. Rate Moment" + score_names(abs(SCORE_NU_SCATTER_PN)) = "Scattering Prod. Rate Moment" + score_names(abs(SCORE_NU_SCATTER_YN)) = "Scattering Prod. Rate Moment" + score_names(abs(SCORE_DELAYED_NU_FISSION)) = "Delayed-Nu-Fission Rate" + score_names(abs(SCORE_INVERSE_VELOCITY)) = "Flux-Weighted Inverse Velocity" + + ! Create filename for tally output + filename = trim(path_output) // "tallies.out" + + ! Open tally file for writing + open(FILE=filename, NEWUNIT=unit_tally, STATUS='replace', ACTION='write') + + ! Calculate t-value for confidence intervals + if (confidence_intervals) then + alpha = ONE - CONFIDENCE_LEVEL + t_value = t_percentile(ONE - alpha/TWO, n_realizations - 1) + end if + + TALLY_LOOP: do i = 1, n_tallies + t => tallies(i) + + if (confidence_intervals) then + ! Calculate t-value for confidence intervals + if (confidence_intervals) then + alpha = ONE - CONFIDENCE_LEVEL + t_value = t_percentile(ONE - alpha/TWO, t % n_realizations - 1) + end if + + ! Multiply uncertainty by t-value + t % results % sum_sq = t_value * t % results % sum_sq + end if + + ! Write header block + if (t % name == "") then + call header("TALLY " // trim(to_str(t % id)), unit=unit_tally, & + level=3) + else + call header("TALLY " // trim(to_str(t % id)) // ": " & + // trim(t % name), unit=unit_tally, level=3) + endif + + ! Handle surface current tallies separately + if (t % type == TALLY_SURFACE_CURRENT) then + call write_surface_current(t, unit_tally) + cycle + end if + + ! WARNING: Admittedly, the logic for moving for printing results is + ! extremely confusing and took quite a bit of time to get correct. The + ! logic is structured this way since it is not practical to have a do + ! loop for each filter variable (given that only a few filters are likely + ! to be used for a given tally. + + ! Initialize bins, filter level, and indentation + matching_bins(1:t%n_filters) = 0 + j = 1 + indent = 0 + + print_bin: do + find_bin: do + ! Check for no filters + if (t % n_filters == 0) exit find_bin + + ! Increment bin combination + matching_bins(j) = matching_bins(j) + 1 + + ! ================================================================= + ! REACHED END OF BINS FOR THIS FILTER, MOVE TO NEXT FILTER + + if (matching_bins(j) > t % filters(j) % obj % n_bins) then + ! If this is the first filter, then exit + if (j == 1) exit print_bin + + matching_bins(j) = 0 + j = j - 1 + indent = indent - 2 + + ! ================================================================= + ! VALID BIN -- WRITE FILTER INFORMATION OR EXIT TO WRITE RESULTS + + else + ! Check if this is last filter + if (j == t % n_filters) exit find_bin + + ! Print current filter information + write(UNIT=unit_tally, FMT='(1X,2A)') repeat(" ", indent), & + trim(t % filters(j) % obj % text_label(matching_bins(j))) + indent = indent + 2 + j = j + 1 + end if + + end do find_bin + + ! Print filter information + if (t % n_filters > 0) then + write(UNIT=unit_tally, FMT='(1X,2A)') repeat(" ", indent), & + trim(t % filters(j) % obj % text_label(matching_bins(j))) + end if + + ! Determine scoring index for this bin combination -- note that unlike + ! in the score_tally subroutine, we have to use max(bins,1) since all + ! bins below the lowest filter level will be zeros + + if (t % n_filters > 0) then + filter_index = sum((max(matching_bins(1:t%n_filters),1) - 1) * t % stride) + 1 + else + filter_index = 1 + end if + + ! Write results for this filter bin combination + score_index = 0 + if (t % n_filters > 0) indent = indent + 2 + do n = 1, t % n_nuclide_bins + ! Write label for nuclide + i_nuclide = t % nuclide_bins(n) + if (i_nuclide == -1) then + write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & + "Total Material" + else + if (run_CE) then + i_listing = nuclides(i_nuclide) % listing + else + i_listing = nuclides_MG(i_nuclide) % obj % listing + end if + write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & + trim(xs_listings(i_listing) % alias) + end if + + indent = indent + 2 + k = 0 + do l = 1, t % n_user_score_bins + k = k + 1 + score_index = score_index + 1 + select case(t % score_bins(k)) + case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) + score_name = 'P' // trim(to_str(t % moment_order(k))) // " " // & + score_names(abs(t % score_bins(k))) + write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & + repeat(" ", indent), score_name, & + to_str(t % results(score_index,filter_index) % sum), & + trim(to_str(t % results(score_index,filter_index) % sum_sq)) + case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN) + score_index = score_index - 1 + do n_order = 0, t % moment_order(k) + score_index = score_index + 1 + score_name = 'P' // trim(to_str(n_order)) // " " //& + score_names(abs(t % score_bins(k))) + write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & + repeat(" ", indent), score_name, & + to_str(t % results(score_index,filter_index) % sum), & + trim(to_str(t % results(score_index,filter_index) & + % sum_sq)) + end do + k = k + t % moment_order(k) + case (SCORE_SCATTER_YN, SCORE_NU_SCATTER_YN, SCORE_FLUX_YN, & + SCORE_TOTAL_YN) + score_index = score_index - 1 + do n_order = 0, t % moment_order(k) + do nm_order = -n_order, n_order + score_index = score_index + 1 + score_name = 'Y' // trim(to_str(n_order)) // ',' // & + trim(to_str(nm_order)) // " " & + // score_names(abs(t % score_bins(k))) + write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & + repeat(" ", indent), score_name, & + to_str(t % results(score_index,filter_index) % sum), & + trim(to_str(t % results(score_index,filter_index)& + % sum_sq)) + end do + end do + k = k + (t % moment_order(k) + 1)**2 - 1 + case default + if (t % score_bins(k) > 0) then + score_name = reaction_name(t % score_bins(k)) + else + score_name = score_names(abs(t % score_bins(k))) + end if + write(UNIT=unit_tally, FMT='(1X,2A,1X,A,"+/- ",A)') & + repeat(" ", indent), score_name, & + to_str(t % results(score_index,filter_index) % sum), & + trim(to_str(t % results(score_index,filter_index) % sum_sq)) + end select + end do + indent = indent - 2 + + end do + indent = indent - 2 + + if (t % n_filters == 0) exit print_bin + + end do print_bin + + end do TALLY_LOOP + + close(UNIT=unit_tally) end subroutine write_tallies @@ -1011,477 +994,156 @@ contains character(MAX_LINE_LEN) :: string type(RegularMesh), pointer :: m -! ! Get pointer to mesh -! i_filter_mesh = t % find_filter(FILTER_MESH) -! i_filter_surf = t % find_filter(FILTER_SURFACE) -! m => meshes(t % filters(i_filter_mesh) % int_bins(1)) -! -! ! initialize bins array -! matching_bins(1:t%n_filters) = 1 -! -! ! determine how many energy in bins there are -! i_filter_ein = t % find_filter(FILTER_ENERGYIN) -! if (i_filter_ein > 0) then -! print_ebin = .true. -! n = t % filters(i_filter_ein) % n_bins -! else -! print_ebin = .false. -! n = 1 -! end if -! -! do i = 1, m % dimension(1) -! string = "Mesh Index (" // trim(to_str(i)) // ", " -! len1 = len_trim(string) -! do j = 1, m % dimension(2) -! string = string(1:len1+1) // trim(to_str(j)) // ", " -! len2 = len_trim(string) -! do k = 1, m % dimension(3) -! ! Write mesh cell index -! string = string(1:len2+1) // trim(to_str(k)) // ")" -! write(UNIT=unit_tally, FMT='(1X,A)') trim(string) -! -! do l = 1, n -! if (print_ebin) then -! ! Set incoming energy bin -! matching_bins(i_filter_ein) = l -! -! ! Write incoming energy bin -! write(UNIT=unit_tally, FMT='(3X,A,1X,A)') & -! "Incoming Energy", trim(get_label(t, i_filter_ein)) -! end if -! -! ! Left Surface -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, (/ i-1, j, k /) + 1, .true.) -! matching_bins(i_filter_surf) = IN_RIGHT -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Outgoing Current to Left", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! matching_bins(i_filter_surf) = OUT_RIGHT -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Incoming Current from Left", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! ! Right Surface -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) -! matching_bins(i_filter_surf) = IN_RIGHT -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Incoming Current from Right", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! matching_bins(i_filter_surf) = OUT_RIGHT -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Outgoing Current to Right", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! ! Back Surface -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, (/ i, j-1, k /) + 1, .true.) -! matching_bins(i_filter_surf) = IN_FRONT -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Outgoing Current to Back", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! matching_bins(i_filter_surf) = OUT_FRONT -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Incoming Current from Back", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! ! Front Surface -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) -! matching_bins(i_filter_surf) = IN_FRONT -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Incoming Current from Front", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! matching_bins(i_filter_surf) = OUT_FRONT -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Outgoing Current to Front", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! ! Bottom Surface -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, (/ i, j, k-1 /) + 1, .true.) -! matching_bins(i_filter_surf) = IN_TOP -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Outgoing Current to Bottom", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! matching_bins(i_filter_surf) = OUT_TOP -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Incoming Current from Bottom", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! ! Top Surface -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) -! matching_bins(i_filter_surf) = IN_TOP -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Incoming Current from Top", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! -! matching_bins(i_filter_surf) = OUT_TOP -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & -! "Outgoing Current to Top", & -! to_str(t % results(1,filter_index) % sum), & -! trim(to_str(t % results(1,filter_index) % sum_sq)) -! end do -! -! end do -! end do -! end do + ! Get pointer to mesh + i_filter_mesh = t % find_filter(FILTER_MESH) + i_filter_surf = t % find_filter(FILTER_SURFACE) + select type(filt => t % filters(i_filter_mesh) % obj) + type is (MeshFilter) + m => meshes(filt % mesh) + end select + + ! initialize bins array + matching_bins(1:t%n_filters) = 1 + + ! determine how many energy in bins there are + i_filter_ein = t % find_filter(FILTER_ENERGYIN) + if (i_filter_ein > 0) then + print_ebin = .true. + n = t % filters(i_filter_ein) % obj % n_bins + else + print_ebin = .false. + n = 1 + end if + + do i = 1, m % dimension(1) + string = "Mesh Index (" // trim(to_str(i)) // ", " + len1 = len_trim(string) + do j = 1, m % dimension(2) + string = string(1:len1+1) // trim(to_str(j)) // ", " + len2 = len_trim(string) + do k = 1, m % dimension(3) + ! Write mesh cell index + string = string(1:len2+1) // trim(to_str(k)) // ")" + write(UNIT=unit_tally, FMT='(1X,A)') trim(string) + + do l = 1, n + if (print_ebin) then + ! Set incoming energy bin + matching_bins(i_filter_ein) = l + + ! Write incoming energy bin + write(UNIT=unit_tally, FMT='(3X,A)') & + t % filters(i_filter_ein) % obj % text_label( & + matching_bins(i_filter_ein)) + end if + + ! Left Surface + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i-1, j, k /) + 1, .true.) + matching_bins(i_filter_surf) = IN_RIGHT + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current to Left", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_surf) = OUT_RIGHT + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current from Left", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + ! Right Surface + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) + matching_bins(i_filter_surf) = IN_RIGHT + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current from Right", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_surf) = OUT_RIGHT + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current to Right", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + ! Back Surface + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j-1, k /) + 1, .true.) + matching_bins(i_filter_surf) = IN_FRONT + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current to Back", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_surf) = OUT_FRONT + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current from Back", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + ! Front Surface + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) + matching_bins(i_filter_surf) = IN_FRONT + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current from Front", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_surf) = OUT_FRONT + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current to Front", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + ! Bottom Surface + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j, k-1 /) + 1, .true.) + matching_bins(i_filter_surf) = IN_TOP + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current to Bottom", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_surf) = OUT_TOP + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current from Bottom", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + ! Top Surface + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) + matching_bins(i_filter_surf) = IN_TOP + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current from Top", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_surf) = OUT_TOP + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current to Top", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + end do + + end do + end do + end do end subroutine write_surface_current -!=============================================================================== -! GET_LABEL returns a label for a cell/surface/etc given a tally, filter type, -! and corresponding bin -!=============================================================================== - - 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(MAX_LINE_LEN) :: label ! user-specified identifier - - integer :: i ! index in cells/surfaces/etc array - integer :: bin - integer :: offset - integer, allocatable :: ijk(:) ! indices in mesh - real(8) :: E0 ! lower bound for energy bin - real(8) :: E1 ! upper bound for energy bin - type(RegularMesh), pointer :: m - type(Universe), pointer :: univ - -! bin = matching_bins(i_filter) -! -! select case(t % filters(i_filter) % type) -! case (FILTER_UNIVERSE) -! i = t % filters(i_filter) % int_bins(bin) -! label = to_str(universes(i) % id) -! case (FILTER_MATERIAL) -! i = t % filters(i_filter) % int_bins(bin) -! label = to_str(materials(i) % id) -! case (FILTER_CELL, FILTER_CELLBORN) -! i = t % filters(i_filter) % int_bins(bin) -! label = to_str(cells(i) % id) -! case (FILTER_DISTRIBCELL) -! label = '' -! univ => universes(BASE_UNIVERSE) -! offset = 0 -! call find_offset(t % filters(i_filter) % int_bins(1), & -! univ, bin-1, offset, label) -! case (FILTER_SURFACE) -! i = t % filters(i_filter) % int_bins(bin) -! label = to_str(surfaces(i)%obj%id) -! case (FILTER_MESH) -! m => meshes(t % filters(i_filter) % int_bins(1)) -! allocate(ijk(m % n_dimension)) -! call bin_to_mesh_indices(m, bin, ijk) -! if (m % n_dimension == 2) then -! label = "Index (" // trim(to_str(ijk(1))) // ", " // & -! trim(to_str(ijk(2))) // ")" -! elseif (m % n_dimension == 3) then -! label = "Index (" // trim(to_str(ijk(1))) // ", " // & -! trim(to_str(ijk(2))) // ", " // trim(to_str(ijk(3))) // ")" -! end if -! case (FILTER_ENERGYIN, FILTER_ENERGYOUT, FILTER_MU, FILTER_POLAR, & -! FILTER_AZIMUTHAL) -! E0 = t % filters(i_filter) % real_bins(bin) -! E1 = t % filters(i_filter) % real_bins(bin + 1) -! label = "[" // trim(to_str(E0)) // ", " // trim(to_str(E1)) // ")" -! case (FILTER_DELAYEDGROUP) -! i = t % filters(i_filter) % int_bins(bin) -! label = to_str(i) -! end select - - end function get_label - -!=============================================================================== -! FIND_OFFSET uses a given map number, a target cell ID, and a target offset -! to build a string which is the path from the base universe to the target cell -! with the given offset -!=============================================================================== - - recursive subroutine find_offset(goal, univ, final, offset, path) - - integer, intent(in) :: goal ! The target cell index - type(Universe), intent(in) :: univ ! Universe to begin search - integer, intent(in) :: final ! Target offset - integer, intent(inout) :: offset ! Current offset - character(*), intent(inout) :: path ! Path to offset - - integer :: map ! Index in maps vector - integer :: i, j ! Index over cells - integer :: k, l, m ! Indices in lattice - integer :: old_k, old_l, old_m ! Previous indices in lattice - integer :: n_x, n_y, n_z ! Lattice cell array dimensions - integer :: n ! Number of cells to search - integer :: cell_index ! Index in cells array - integer :: lat_offset ! Offset from lattice - integer :: temp_offset ! Looped sum of offsets - logical :: this_cell = .false. ! Advance in this cell? - logical :: later_cell = .false. ! Fill cells after this one? - type(Cell), pointer :: c ! Pointer to current cell - type(Universe), pointer :: next_univ ! Next universe to loop through - class(Lattice), pointer :: lat ! Pointer to current lattice - - ! Get the distribcell index for this cell - map = cells(goal) % distribcell_index - - n = univ % n_cells - - ! Write to the geometry stack - if (univ%id == 0) then - path = trim(path) // to_str(univ%id) - else - path = trim(path) // "->" // to_str(univ%id) - end if - - ! Look through all cells in this universe - do i = 1, n - ! If the cell matches the goal and the offset matches final, write to the - ! geometry stack - if (univ % cells(i) == goal .and. offset == final) then - c => cells(univ % cells(i)) - path = trim(path) // "->" // to_str(c % id) - return - end if - end do - - ! Find the fill cell or lattice cell that we need to enter - do i = 1, n - - later_cell = .false. - - cell_index = univ % cells(i) - c => cells(cell_index) - - this_cell = .false. - - ! If we got here, we still think the target is in this universe - ! or further down, but it's not this exact cell. - ! Compare offset to next cell to see if we should enter this cell - if (i /= n) then - - do j = i+1, n - - cell_index = univ % cells(j) - c => cells(cell_index) - - ! Skip normal cells which do not have offsets - if (c % type == CELL_NORMAL) then - cycle - end if - - ! Break loop once we've found the next cell with an offset - exit - end do - - ! Ensure we didn't just end the loop by iteration - if (c % type /= CELL_NORMAL) then - - ! There are more cells in this universe that it could be in - later_cell = .true. - - ! Two cases, lattice or fill cell - if (c % type == CELL_FILL) then - temp_offset = c % offset(map) - - ! Get the offset of the first lattice location - else - lat => lattices(c % fill) % obj - temp_offset = lat % offset(map, 1, 1, 1) - end if - - ! If the final offset is in the range of offset - temp_offset+offset - ! then the goal is in this cell - if (final < temp_offset + offset) then - this_cell = .true. - end if - end if - end if - - if (n == 1 .and. c % type /= CELL_NORMAL) then - this_cell = .true. - end if - - if (.not. later_cell) then - this_cell = .true. - end if - - ! Get pointer to THIS cell because target must be in this cell - if (this_cell) then - - cell_index = univ % cells(i) - c => cells(cell_index) - - path = trim(path) // "->" // to_str(c%id) - - ! ==================================================================== - ! CELL CONTAINS LOWER UNIVERSE, RECURSIVELY FIND CELL - if (c % type == CELL_FILL) then - - ! Enter this cell to update the current offset - offset = c % offset(map) + offset - - next_univ => universes(c % fill) - call find_offset(goal, next_univ, final, offset, path) - return - - ! ==================================================================== - ! CELL CONTAINS LATTICE, RECURSIVELY FIND CELL - elseif (c % type == CELL_LATTICE) then - - ! Set current lattice - lat => lattices(c % fill) % obj - - select type (lat) - - ! ================================================================== - ! RECTANGULAR LATTICES - type is (RectLattice) - - ! Write to the geometry stack - path = trim(path) // "->" // to_str(lat%id) - - n_x = lat % n_cells(1) - n_y = lat % n_cells(2) - n_z = lat % n_cells(3) - old_m = 1 - old_l = 1 - old_k = 1 - - ! Loop over lattice coordinates - do k = 1, n_x - do l = 1, n_y - do m = 1, n_z - - if (final >= lat % offset(map, k, l, m) + offset) then - if (k == n_x .and. l == n_y .and. m == n_z) then - ! This is last lattice cell, so target must be here - lat_offset = lat % offset(map, k, l, m) - offset = offset + lat_offset - next_univ => universes(lat % universes(k, l, m)) - path = trim(path) // "(" // trim(to_str(k)) // & - "," // trim(to_str(l)) // "," // & - trim(to_str(m)) // ")" - call find_offset(goal, next_univ, final, offset, path) - return - else - old_m = m - old_l = l - old_k = k - cycle - end if - else - ! Target is at this lattice position - lat_offset = lat % offset(map, old_k, old_l, old_m) - offset = offset + lat_offset - next_univ => universes(lat % universes(old_k, old_l, old_m)) - path = trim(path) // "(" // trim(to_str(old_k)) // & - "," // trim(to_str(old_l)) // "," // & - trim(to_str(old_m)) // ")" - call find_offset(goal, next_univ, final, offset, path) - return - end if - - end do - end do - end do - - ! ================================================================== - ! HEXAGONAL LATTICES - type is (HexLattice) - - ! Write to the geometry stack - path = trim(path) // "->" // to_str(lat%id) - - n_z = lat % n_axial - n_y = 2 * lat % n_rings - 1 - n_x = 2 * lat % n_rings - 1 - old_m = 1 - old_l = 1 - old_k = 1 - - ! Loop over lattice coordinates - do m = 1, n_z - do l = 1, n_y - do k = 1, n_x - - ! This array position is never used - if (k + l < lat % n_rings + 1) then - cycle - ! This array position is never used - else if (k + l > 3*lat % n_rings - 1) then - cycle - end if - - if (final >= lat % offset(map, k, l, m) + offset) then - if (k == lat % n_rings .and. l == n_y .and. m == n_z) then - ! This is last lattice cell, so target must be here - lat_offset = lat % offset(map, k, l, m) - offset = offset + lat_offset - next_univ => universes(lat % universes(k, l, m)) - path = trim(path) // "(" // & - trim(to_str(k - lat % n_rings)) // "," // & - trim(to_str(l - lat % n_rings)) // "," // & - trim(to_str(m)) // ")" - call find_offset(goal, next_univ, final, offset, path) - return - else - old_m = m - old_l = l - old_k = k - cycle - end if - else - ! Target is at this lattice position - lat_offset = lat % offset(map, old_k, old_l, old_m) - offset = offset + lat_offset - next_univ => universes(lat % universes(old_k, old_l, old_m)) - path = trim(path) // "(" // & - trim(to_str(old_k - lat % n_rings)) // "," // & - trim(to_str(old_l - lat % n_rings)) // "," // & - trim(to_str(old_m)) // ")" - call find_offset(goal, next_univ, final, offset, path) - return - end if - - end do - end do - end do - - end select - - end if - end if - end do - end subroutine find_offset - end module output diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index 5bb71df6fe..13b9fa48cd 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -1,18 +1,19 @@ module tally_filter use constants, only: ONE, NO_BIN_FOUND - use geometry_header, only: BASE_UNIVERSE + use geometry_header, only: BASE_UNIVERSE, RectLattice, HexLattice use global use hdf5_interface use mesh_header, only: RegularMesh use mesh, only: get_mesh_bin, bin_to_mesh_indices, & get_mesh_indices, mesh_indices_to_bin, & mesh_intersects_2d, mesh_intersects_3d - use output, only: find_offset use particle_header, only: Particle use search, only: binary_search use string, only: to_str - use tally_filter_header + use tally_filter_header, only: TallyFilter, TallyFilterContainer + + use hdf5, only: HID_T implicit none @@ -26,6 +27,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_mesh procedure :: to_summary => to_statepoint_mesh procedure :: initialize => initialize_mesh + procedure :: text_label => text_label_mesh end type MeshFilter !=============================================================================== @@ -38,6 +40,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_universe procedure :: to_summary => to_statepoint_universe procedure :: initialize => initialize_universe + procedure :: text_label => text_label_universe end type UniverseFilter !=============================================================================== @@ -50,6 +53,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_material procedure :: to_summary => to_statepoint_material procedure :: initialize => initialize_material + procedure :: text_label => text_label_material end type MaterialFilter !=============================================================================== @@ -62,6 +66,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_cell procedure :: to_summary => to_statepoint_cell procedure :: initialize => initialize_cell + procedure :: text_label => text_label_cell end type CellFilter !=============================================================================== @@ -74,6 +79,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_distribcell procedure :: to_summary => to_summary_distribcell procedure :: initialize => initialize_distribcell + procedure :: text_label => text_label_distribcell end type DistribcellFilter !=============================================================================== @@ -86,6 +92,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_cellborn procedure :: to_summary => to_statepoint_cellborn procedure :: initialize => initialize_cellborn + procedure :: text_label => text_label_cellborn end type CellbornFilter !=============================================================================== @@ -98,6 +105,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_surface procedure :: to_summary => to_statepoint_surface procedure :: initialize => initialize_surface + procedure :: text_label => text_label_surface end type SurfaceFilter !=============================================================================== @@ -110,6 +118,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_energy procedure :: to_summary => to_statepoint_energy procedure :: initialize => initialize_energy + procedure :: text_label => text_label_energy end type EnergyFilter !=============================================================================== @@ -122,6 +131,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_energyout procedure :: to_summary => to_statepoint_energyout procedure :: initialize => initialize_energyout + procedure :: text_label => text_label_energyout end type EnergyoutFilter !=============================================================================== @@ -134,6 +144,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_dg procedure :: to_summary => to_statepoint_dg procedure :: initialize => initialize_dg + procedure :: text_label => text_label_dg end type DelayedGroupFilter !=============================================================================== @@ -146,6 +157,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_mu procedure :: to_summary => to_statepoint_mu procedure :: initialize => initialize_mu + procedure :: text_label => text_label_mu end type MuFilter !=============================================================================== @@ -158,6 +170,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_polar procedure :: to_summary => to_statepoint_polar procedure :: initialize => initialize_polar + procedure :: text_label => text_label_polar end type PolarFilter !=============================================================================== @@ -170,6 +183,7 @@ module tally_filter procedure :: to_statepoint => to_statepoint_azimuthal procedure :: to_summary => to_statepoint_azimuthal procedure :: initialize => initialize_azimuthal + procedure :: text_label => text_label_azimuthal end type AzimuthalFilter contains @@ -215,6 +229,26 @@ contains class(MeshFilter), intent(inout) :: this end subroutine initialize_mesh + function text_label_mesh(this, bin) result(label) + class(MeshFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + integer, allocatable :: ijk(:) + type(RegularMesh), pointer :: m + + m => meshes(this % mesh) + allocate(ijk(m % n_dimension)) + call bin_to_mesh_indices(m, bin, ijk) + if (m % n_dimension == 2) then + label = "Mesh Index (" // trim(to_str(ijk(1))) // ", " // & + trim(to_str(ijk(2))) // ")" + elseif (m % n_dimension == 3) then + label = "Mesh Index (" // trim(to_str(ijk(1))) // ", " // & + trim(to_str(ijk(2))) // ", " // trim(to_str(ijk(3))) // ")" + end if + end function text_label_mesh + !=============================================================================== !=============================================================================== function get_next_bin_universe(this, p, estimator, current_bin) & @@ -280,6 +314,14 @@ contains end do end subroutine initialize_universe + function text_label_universe(this, bin) result(label) + class(UniverseFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + label = "Universe " // to_str(universes(this % universes(bin)) % id) + end function text_label_universe + !=============================================================================== !=============================================================================== function get_next_bin_material(this, p, estimator, current_bin) & @@ -339,6 +381,14 @@ contains end do end subroutine initialize_material + function text_label_material(this, bin) result(label) + class(MaterialFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + label = "Material " // to_str(materials(this % materials(bin)) % id) + end function text_label_material + !=============================================================================== !=============================================================================== function get_next_bin_cell(this, p, estimator, current_bin) result(next_bin) @@ -403,6 +453,14 @@ contains end do end subroutine initialize_cell + function text_label_cell(this, bin) result(label) + class(CellFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + label = "Cell " // to_str(cells(this % cells(bin)) % id) + end function text_label_cell + !=============================================================================== !=============================================================================== function get_next_bin_distribcell(this, p, estimator, current_bin) & @@ -507,6 +565,20 @@ contains end do end subroutine initialize_distribcell + function text_label_distribcell(this, bin) result(label) + class(DistribcellFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + integer :: offset + type(Universe), pointer :: univ + + univ => universes(BASE_UNIVERSE) + offset = 0 + call find_offset(this % cell, univ, bin-1, offset, label) + label = "Distributed Cell " // label + end function text_label_distribcell + !=============================================================================== !=============================================================================== function get_next_bin_cellborn(this, p, estimator, current_bin) & @@ -566,6 +638,14 @@ contains end do end subroutine initialize_cellborn + function text_label_cellborn(this, bin) result(label) + class(CellbornFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + label = "Birth Cell " // to_str(cells(this % cells(bin)) % id) + end function text_label_cellborn + !=============================================================================== !=============================================================================== function get_next_bin_surface(this, p, estimator, current_bin) & @@ -625,6 +705,14 @@ contains end do end subroutine initialize_surface + function text_label_surface(this, bin) result(label) + class(SurfaceFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + label = "Surface " // to_str(surfaces(this % surfaces(bin)) % obj % id) + end function text_label_surface + !=============================================================================== !=============================================================================== function get_next_bin_energy(this, p, estimator, current_bin) result(next_bin) @@ -679,6 +767,19 @@ contains class(EnergyFilter), intent(inout) :: this end subroutine initialize_energy + function text_label_energy(this, bin) result(label) + class(EnergyFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + real(8) :: E0, E1 + + E0 = this % bins(bin) + E1 = this % bins(bin + 1) + label = "Incoming Energy [" // trim(to_str(E0)) // ", " & + // trim(to_str(E1)) // ")" + end function text_label_energy + !=============================================================================== !=============================================================================== function get_next_bin_energyout(this, p, estimator, current_bin) & @@ -726,6 +827,19 @@ contains class(EnergyoutFilter), intent(inout) :: this end subroutine initialize_energyout + function text_label_energyout(this, bin) result(label) + class(EnergyoutFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + real(8) :: E0, E1 + + E0 = this % bins(bin) + E1 = this % bins(bin + 1) + label = "Outgoing Energy [" // trim(to_str(E0)) // ", " & + // trim(to_str(E1)) // ")" + end function text_label_energyout + !=============================================================================== !=============================================================================== function get_next_bin_dg(this, p, estimator, current_bin) result(next_bin) @@ -755,6 +869,14 @@ contains class(DelayedGroupFilter), intent(inout) :: this end subroutine initialize_dg + function text_label_dg(this, bin) result(label) + class(DelayedGroupFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + label = "Delayed Group " // to_str(this % groups(bin)) + end function text_label_dg + !=============================================================================== !=============================================================================== function get_next_bin_mu(this, p, estimator, current_bin) result(next_bin) @@ -801,6 +923,19 @@ contains class(MuFilter), intent(inout) :: this end subroutine initialize_mu + function text_label_mu(this, bin) result(label) + class(MuFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + real(8) :: E0, E1 + + E0 = this % bins(bin) + E1 = this % bins(bin + 1) + label = "Change-in-Angle [" // trim(to_str(E0)) // ", " & + // trim(to_str(E1)) // ")" + end function text_label_mu + !=============================================================================== !=============================================================================== function get_next_bin_polar(this, p, estimator, current_bin) result(next_bin) @@ -855,6 +990,19 @@ contains class(PolarFilter), intent(inout) :: this end subroutine initialize_polar + function text_label_polar(this, bin) result(label) + class(PolarFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + real(8) :: E0, E1 + + E0 = this % bins(bin) + E1 = this % bins(bin + 1) + label = "Polar Angle [" // trim(to_str(E0)) // ", " // trim(to_str(E1)) & + // ")" + end function text_label_polar + !=============================================================================== !=============================================================================== function get_next_bin_azimuthal(this, p, estimator, current_bin) & @@ -910,4 +1058,279 @@ contains class(AzimuthalFilter), intent(inout) :: this end subroutine initialize_azimuthal + function text_label_azimuthal(this, bin) result(label) + class(AzimuthalFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + + real(8) :: E0, E1 + + E0 = this % bins(bin) + E1 = this % bins(bin + 1) + label = "Azimuthal Angle [" // trim(to_str(E0)) // ", " & + // trim(to_str(E1)) // ")" + end function text_label_azimuthal + +!=============================================================================== +! FIND_OFFSET uses a given map number, a target cell ID, and a target offset +! to build a string which is the path from the base universe to the target cell +! with the given offset +!=============================================================================== + + recursive subroutine find_offset(goal, univ, final, offset, path) + + integer, intent(in) :: goal ! The target cell index + type(Universe), intent(in) :: univ ! Universe to begin search + integer, intent(in) :: final ! Target offset + integer, intent(inout) :: offset ! Current offset + character(*), intent(inout) :: path ! Path to offset + + integer :: map ! Index in maps vector + integer :: i, j ! Index over cells + integer :: k, l, m ! Indices in lattice + integer :: old_k, old_l, old_m ! Previous indices in lattice + integer :: n_x, n_y, n_z ! Lattice cell array dimensions + integer :: n ! Number of cells to search + integer :: cell_index ! Index in cells array + integer :: lat_offset ! Offset from lattice + integer :: temp_offset ! Looped sum of offsets + logical :: this_cell = .false. ! Advance in this cell? + logical :: later_cell = .false. ! Fill cells after this one? + type(Cell), pointer :: c ! Pointer to current cell + type(Universe), pointer :: next_univ ! Next universe to loop through + class(Lattice), pointer :: lat ! Pointer to current lattice + + ! Get the distribcell index for this cell + map = cells(goal) % distribcell_index + + n = univ % n_cells + + ! Write to the geometry stack + if (univ%id == 0) then + path = trim(path) // to_str(univ%id) + else + path = trim(path) // "->" // to_str(univ%id) + end if + + ! Look through all cells in this universe + do i = 1, n + ! If the cell matches the goal and the offset matches final, write to the + ! geometry stack + if (univ % cells(i) == goal .and. offset == final) then + c => cells(univ % cells(i)) + path = trim(path) // "->" // to_str(c % id) + return + end if + end do + + ! Find the fill cell or lattice cell that we need to enter + do i = 1, n + + later_cell = .false. + + cell_index = univ % cells(i) + c => cells(cell_index) + + this_cell = .false. + + ! If we got here, we still think the target is in this universe + ! or further down, but it's not this exact cell. + ! Compare offset to next cell to see if we should enter this cell + if (i /= n) then + + do j = i+1, n + + cell_index = univ % cells(j) + c => cells(cell_index) + + ! Skip normal cells which do not have offsets + if (c % type == CELL_NORMAL) then + cycle + end if + + ! Break loop once we've found the next cell with an offset + exit + end do + + ! Ensure we didn't just end the loop by iteration + if (c % type /= CELL_NORMAL) then + + ! There are more cells in this universe that it could be in + later_cell = .true. + + ! Two cases, lattice or fill cell + if (c % type == CELL_FILL) then + temp_offset = c % offset(map) + + ! Get the offset of the first lattice location + else + lat => lattices(c % fill) % obj + temp_offset = lat % offset(map, 1, 1, 1) + end if + + ! If the final offset is in the range of offset - temp_offset+offset + ! then the goal is in this cell + if (final < temp_offset + offset) then + this_cell = .true. + end if + end if + end if + + if (n == 1 .and. c % type /= CELL_NORMAL) then + this_cell = .true. + end if + + if (.not. later_cell) then + this_cell = .true. + end if + + ! Get pointer to THIS cell because target must be in this cell + if (this_cell) then + + cell_index = univ % cells(i) + c => cells(cell_index) + + path = trim(path) // "->" // to_str(c%id) + + ! ==================================================================== + ! CELL CONTAINS LOWER UNIVERSE, RECURSIVELY FIND CELL + if (c % type == CELL_FILL) then + + ! Enter this cell to update the current offset + offset = c % offset(map) + offset + + next_univ => universes(c % fill) + call find_offset(goal, next_univ, final, offset, path) + return + + ! ==================================================================== + ! CELL CONTAINS LATTICE, RECURSIVELY FIND CELL + elseif (c % type == CELL_LATTICE) then + + ! Set current lattice + lat => lattices(c % fill) % obj + + select type (lat) + + ! ================================================================== + ! RECTANGULAR LATTICES + type is (RectLattice) + + ! Write to the geometry stack + path = trim(path) // "->" // to_str(lat%id) + + n_x = lat % n_cells(1) + n_y = lat % n_cells(2) + n_z = lat % n_cells(3) + old_m = 1 + old_l = 1 + old_k = 1 + + ! Loop over lattice coordinates + do k = 1, n_x + do l = 1, n_y + do m = 1, n_z + + if (final >= lat % offset(map, k, l, m) + offset) then + if (k == n_x .and. l == n_y .and. m == n_z) then + ! This is last lattice cell, so target must be here + lat_offset = lat % offset(map, k, l, m) + offset = offset + lat_offset + next_univ => universes(lat % universes(k, l, m)) + path = trim(path) // "(" // trim(to_str(k)) // & + "," // trim(to_str(l)) // "," // & + trim(to_str(m)) // ")" + call find_offset(goal, next_univ, final, offset, path) + return + else + old_m = m + old_l = l + old_k = k + cycle + end if + else + ! Target is at this lattice position + lat_offset = lat % offset(map, old_k, old_l, old_m) + offset = offset + lat_offset + next_univ => universes(lat % universes(old_k, old_l, old_m)) + path = trim(path) // "(" // trim(to_str(old_k)) // & + "," // trim(to_str(old_l)) // "," // & + trim(to_str(old_m)) // ")" + call find_offset(goal, next_univ, final, offset, path) + return + end if + + end do + end do + end do + + ! ================================================================== + ! HEXAGONAL LATTICES + type is (HexLattice) + + ! Write to the geometry stack + path = trim(path) // "->" // to_str(lat%id) + + n_z = lat % n_axial + n_y = 2 * lat % n_rings - 1 + n_x = 2 * lat % n_rings - 1 + old_m = 1 + old_l = 1 + old_k = 1 + + ! Loop over lattice coordinates + do m = 1, n_z + do l = 1, n_y + do k = 1, n_x + + ! This array position is never used + if (k + l < lat % n_rings + 1) then + cycle + ! This array position is never used + else if (k + l > 3*lat % n_rings - 1) then + cycle + end if + + if (final >= lat % offset(map, k, l, m) + offset) then + if (k == lat % n_rings .and. l == n_y .and. m == n_z) then + ! This is last lattice cell, so target must be here + lat_offset = lat % offset(map, k, l, m) + offset = offset + lat_offset + next_univ => universes(lat % universes(k, l, m)) + path = trim(path) // "(" // & + trim(to_str(k - lat % n_rings)) // "," // & + trim(to_str(l - lat % n_rings)) // "," // & + trim(to_str(m)) // ")" + call find_offset(goal, next_univ, final, offset, path) + return + else + old_m = m + old_l = l + old_k = k + cycle + end if + else + ! Target is at this lattice position + lat_offset = lat % offset(map, old_k, old_l, old_m) + offset = offset + lat_offset + next_univ => universes(lat % universes(old_k, old_l, old_m)) + path = trim(path) // "(" // & + trim(to_str(old_k - lat % n_rings)) // "," // & + trim(to_str(old_l - lat % n_rings)) // "," // & + trim(to_str(old_m)) // ")" + call find_offset(goal, next_univ, final, offset, path) + return + end if + + end do + end do + end do + + end select + + end if + end if + end do + end subroutine find_offset + end module tally_filter diff --git a/src/tally_filter_header.F90 b/src/tally_filter_header.F90 index b373f8d413..7fbe62547c 100644 --- a/src/tally_filter_header.F90 +++ b/src/tally_filter_header.F90 @@ -1,5 +1,6 @@ module tally_filter_header + use constants, only: MAX_LINE_LEN use particle_header, only: Particle use hdf5 @@ -15,6 +16,7 @@ module tally_filter_header procedure(to_statepoint_), deferred :: to_statepoint procedure(to_summary_), deferred :: to_summary procedure(initialize_), deferred :: initialize + procedure(text_label_), deferred :: text_label end type TallyFilter type TallyFilterContainer @@ -59,6 +61,14 @@ module tally_filter_header class(TallyFilter), intent(inout) :: this end subroutine initialize_ + function text_label_(this, bin) result(label) + import TallyFilter + import MAX_LINE_LEN + class(TallyFilter), intent(in) :: this + integer, intent(in) :: bin + character(MAX_LINE_LEN) :: label + end function text_label_ + end interface end module tally_filter_header From f917ad72a4102faec0e8e92d6df2dad59cc6777d Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 23 Jun 2016 23:46:22 -0500 Subject: [PATCH 082/417] Reconnect current tallies --- openmc/filter.py | 5 + src/cmfd_input.F90 | 4 +- src/initialize.F90 | 4 +- src/tally.F90 | 600 ++++++++++++++++++++++----------------------- 4 files changed, 308 insertions(+), 305 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 72fb3b14ed..d2615fba1a 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -163,6 +163,11 @@ class Filter(object): if not isinstance(bins, Iterable): bins = [bins] + # If the bin is 0D numpy array, promote to 1D + elif isinstance(bins, np.ndarray): + if bins.shape == (): + bins = bins.reshape((1,)) + # If the bins are in a collection, convert it to a list else: bins = list(bins) diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index ecd22b5abc..68ce031074 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -583,9 +583,9 @@ contains if (check_for_node(node_mesh, "energy")) then select type(filt => filters(2) % obj) type is (EnergyFilter) - deallocate(filt % bins) + deallocate(filt % bins) end select - end if + end if end do diff --git a/src/initialize.F90 b/src/initialize.F90 index d267df6318..3c1e44ff7a 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -731,7 +731,7 @@ contains if (.not. any(t%score_bins == SCORE_CURRENT)) & call filt % initialize() class default - call filt % initialize() + call filt % initialize() end select end do FILTER_LOOP @@ -1005,7 +1005,7 @@ contains do j = 1, tallies(i) % n_filters select type(filt => tallies(i) % filters(j) % obj) type is (DistribcellFilter) - call cell_list % add(filt % cell) + call cell_list % add(filt % cell) end select end do end do diff --git a/src/tally.F90 b/src/tally.F90 index b11a1eabf1..9a04feb050 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2563,307 +2563,305 @@ contains type(Particle), intent(in) :: p -! integer :: i -! integer :: i_tally -! integer :: j ! loop indices -! integer :: k ! loop indices -! integer :: ijk0(3) ! indices of starting coordinates -! integer :: ijk1(3) ! indices of ending coordinates -! integer :: n_cross ! number of surface crossings -! integer :: n ! number of incoming energy bins -! integer :: filter_index ! index of scoring bin -! integer :: i_filter_mesh ! index of mesh filter in filters array -! integer :: i_filter_surf ! index of surface filter in filters -! real(8) :: uvw(3) ! cosine of angle of particle -! real(8) :: xyz0(3) ! starting/intermediate coordinates -! real(8) :: xyz1(3) ! ending coordinates of particle -! real(8) :: xyz_cross(3) ! coordinates of bounding surfaces -! real(8) :: d(3) ! distance to each bounding surface -! real(8) :: distance ! actual distance traveled -! logical :: start_in_mesh ! particle's starting xyz in mesh? -! logical :: end_in_mesh ! particle's ending xyz in mesh? -! logical :: x_same ! same starting/ending x index (i) -! logical :: y_same ! same starting/ending y index (j) -! logical :: z_same ! same starting/ending z index (k) -! type(TallyObject), pointer :: t -! type(RegularMesh), pointer :: m -! -! TALLY_LOOP: do i = 1, active_current_tallies % size() -! ! Copy starting and ending location of particle -! xyz0 = p % last_xyz -! xyz1 = p % coord(1) % xyz -! -! ! Get pointer to tally -! i_tally = active_current_tallies % get_item(i) -! t => tallies(i_tally) -! -! ! Get index for mesh and surface filters -! i_filter_mesh = t % find_filter(FILTER_MESH) -! i_filter_surf = t % find_filter(FILTER_SURFACE) -! -! ! Determine indices for starting and ending location -! m => meshes(t % filters(i_filter_mesh) % int_bins(1)) -! call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) -! call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) -! -! ! Check to if start or end is in mesh -- if not, check if track still -! ! intersects with mesh -! if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then -! if (m % n_dimension == 2) then -! if (.not. mesh_intersects_2d(m, xyz0, xyz1)) cycle -! else -! if (.not. mesh_intersects_3d(m, xyz0, xyz1)) cycle -! end if -! end if -! -! ! Calculate number of surface crossings -! n_cross = sum(abs(ijk1 - ijk0)) -! if (n_cross == 0) then -! cycle -! end if -! -! ! Copy particle's direction -! 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 -! -! ! 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 -! -! x_same = (ijk0(1) == ijk1(1)) -! y_same = (ijk0(2) == ijk1(2)) -! z_same = (ijk0(3) == ijk1(3)) -! -! if (x_same .and. y_same) then -! ! Only z crossings -! if (uvw(3) > 0) then -! do j = ijk0(3), ijk1(3) - 1 -! ijk0(3) = j -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = OUT_TOP -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!!$omp atomic -! t % results(1, filter_index) % value = & -! t % results(1, filter_index) % value + p % wgt -! end if -! end do -! else -! do j = ijk0(3) - 1, ijk1(3), -1 -! ijk0(3) = j -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = IN_TOP -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!!$omp atomic -! t % results(1, filter_index) % value = & -! t % results(1, filter_index) % value + p % wgt -! end if -! end do -! end if -! cycle -! elseif (x_same .and. z_same) then -! ! Only y crossings -! if (uvw(2) > 0) then -! do j = ijk0(2), ijk1(2) - 1 -! ijk0(2) = j -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = OUT_FRONT -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!!$omp atomic -! t % results(1, filter_index) % value = & -! t % results(1, filter_index) % value + p % wgt -! end if -! end do -! else -! do j = ijk0(2) - 1, ijk1(2), -1 -! ijk0(2) = j -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = IN_FRONT -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!!$omp atomic -! t % results(1, filter_index) % value = & -! t % results(1, filter_index) % value + p % wgt -! end if -! end do -! end if -! cycle -! elseif (y_same .and. z_same) then -! ! Only x crossings -! if (uvw(1) > 0) then -! do j = ijk0(1), ijk1(1) - 1 -! ijk0(1) = j -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = OUT_RIGHT -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!!$omp atomic -! t % results(1, filter_index) % value = & -! t % results(1, filter_index) % value + p % wgt -! end if -! end do -! else -! do j = ijk0(1) - 1, ijk1(1), -1 -! ijk0(1) = j -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = IN_RIGHT -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -!!$omp atomic -! t % results(1, filter_index) % value = & -! t % results(1, filter_index) % value + p % wgt -! end if -! end do -! end if -! cycle -! end if -! -! ! ======================================================================= -! ! GENERIC CASE -! -! ! Bounding coordinates -! do j = 1, 3 -! if (uvw(j) > 0) then -! xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) -! else -! xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) -! end if -! end do -! -! do k = 1, n_cross -! ! Reset scoring bin index -! matching_bins(i_filter_surf) = 0 -! -! ! Calculate distance to each bounding surface. We need to treat -! ! special case where the cosine of the angle is zero since this would -! ! result in a divide-by-zero. -! -! do j = 1, 3 -! if (uvw(j) == 0) then -! d(j) = INFINITY -! else -! d(j) = (xyz_cross(j) - xyz0(j))/uvw(j) -! end if -! end do -! -! ! Determine the closest bounding surface of the mesh cell by -! ! calculating the minimum distance -! -! distance = minval(d) -! -! ! Now use the minimum distance and diretion of the particle to -! ! determine which surface was crossed -! -! if (distance == d(1)) then -! if (uvw(1) > 0) then -! ! Crossing into right mesh cell -- this is treated as outgoing -! ! current from (i,j,k) -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = OUT_RIGHT -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! end if -! ijk0(1) = ijk0(1) + 1 -! xyz_cross(1) = xyz_cross(1) + m % width(1) -! else -! ! Crossing into left mesh cell -- this is treated as incoming -! ! current in (i-1,j,k) -! ijk0(1) = ijk0(1) - 1 -! xyz_cross(1) = xyz_cross(1) - m % width(1) -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = IN_RIGHT -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! end if -! end if -! elseif (distance == d(2)) then -! if (uvw(2) > 0) then -! ! Crossing into front mesh cell -- this is treated as outgoing -! ! current in (i,j,k) -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = OUT_FRONT -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! end if -! ijk0(2) = ijk0(2) + 1 -! xyz_cross(2) = xyz_cross(2) + m % width(2) -! else -! ! Crossing into back mesh cell -- this is treated as incoming -! ! current in (i,j-1,k) -! ijk0(2) = ijk0(2) - 1 -! xyz_cross(2) = xyz_cross(2) - m % width(2) -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = IN_FRONT -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! end if -! end if -! else if (distance == d(3)) then -! if (uvw(3) > 0) then -! ! Crossing into top mesh cell -- this is treated as outgoing -! ! current in (i,j,k) -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = OUT_TOP -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! end if -! ijk0(3) = ijk0(3) + 1 -! xyz_cross(3) = xyz_cross(3) + m % width(3) -! else -! ! Crossing into bottom mesh cell -- this is treated as incoming -! ! current in (i,j,k-1) -! ijk0(3) = ijk0(3) - 1 -! xyz_cross(3) = xyz_cross(3) - m % width(3) -! if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then -! matching_bins(i_filter_surf) = IN_TOP -! matching_bins(i_filter_mesh) = & -! mesh_indices_to_bin(m, ijk0 + 1, .true.) -! end if -! end if -! end if -! -! ! Determine scoring index -! if (matching_bins(i_filter_surf) > 0) then -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! -! ! Check for errors -! if (filter_index <= 0 .or. filter_index > & -! t % total_filter_bins) then -! call fatal_error("Score index outside range.") -! end if -! -! ! Add to surface current tally -!!$omp atomic -! t % results(1, filter_index) % value = & -! t % results(1, filter_index) % value + p % wgt -! end if -! -! ! Calculate new coordinates -! xyz0 = xyz0 + distance * uvw -! end do -! -! end do TALLY_LOOP + integer :: i + integer :: i_tally + integer :: j ! loop indices + integer :: k ! loop indices + integer :: ijk0(3) ! indices of starting coordinates + integer :: ijk1(3) ! indices of ending coordinates + integer :: n_cross ! number of surface crossings + integer :: n ! number of incoming energy bins + integer :: filter_index ! index of scoring bin + integer :: i_filter_mesh ! index of mesh filter in filters array + integer :: i_filter_surf ! index of surface filter in filters + real(8) :: uvw(3) ! cosine of angle of particle + real(8) :: xyz0(3) ! starting/intermediate coordinates + real(8) :: xyz1(3) ! ending coordinates of particle + real(8) :: xyz_cross(3) ! coordinates of bounding surfaces + real(8) :: d(3) ! distance to each bounding surface + real(8) :: distance ! actual distance traveled + logical :: start_in_mesh ! particle's starting xyz in mesh? + logical :: end_in_mesh ! particle's ending xyz in mesh? + logical :: x_same ! same starting/ending x index (i) + logical :: y_same ! same starting/ending y index (j) + logical :: z_same ! same starting/ending z index (k) + type(TallyObject), pointer :: t + type(RegularMesh), pointer :: m + + TALLY_LOOP: do i = 1, active_current_tallies % size() + ! Copy starting and ending location of particle + xyz0 = p % last_xyz + xyz1 = p % coord(1) % xyz + + ! Get pointer to tally + i_tally = active_current_tallies % get_item(i) + t => tallies(i_tally) + + ! Get index for mesh and surface filters + i_filter_mesh = t % find_filter(FILTER_MESH) + i_filter_surf = t % find_filter(FILTER_SURFACE) + + ! Get pointer to mesh + select type(filt => t % filters(i_filter_mesh) % obj) + type is (MeshFilter) + m => meshes(filt % mesh) + end select + + ! Determine indices for starting and ending location + call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) + call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) + + ! Check to if start or end is in mesh -- if not, check if track still + ! intersects with mesh + if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then + if (m % n_dimension == 2) then + if (.not. mesh_intersects_2d(m, xyz0, xyz1)) cycle + else + if (.not. mesh_intersects_3d(m, xyz0, xyz1)) cycle + end if + end if + + ! Calculate number of surface crossings + n_cross = sum(abs(ijk1 - ijk0)) + if (n_cross == 0) then + cycle + end if + + ! Copy particle's direction + uvw = p % coord(1) % uvw + + ! determine incoming energy bin + j = t % find_filter(FILTER_ENERGYIN) + if (j > 0) then + matching_bins(j) = t % filters(j) % obj & + % get_next_bin(p, ESTIMATOR_COLLISION, NO_BIN_FOUND) + if (matching_bins(j) == NO_BIN_FOUND) cycle + end if + + ! ======================================================================= + ! SPECIAL CASES WHERE TWO INDICES ARE THE SAME + + x_same = (ijk0(1) == ijk1(1)) + y_same = (ijk0(2) == ijk1(2)) + z_same = (ijk0(3) == ijk1(3)) + + if (x_same .and. y_same) then + ! Only z crossings + if (uvw(3) > 0) then + do j = ijk0(3), ijk1(3) - 1 + ijk0(3) = j + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_TOP + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + end do + else + do j = ijk0(3) - 1, ijk1(3), -1 + ijk0(3) = j + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = IN_TOP + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + end do + end if + cycle + elseif (x_same .and. z_same) then + ! Only y crossings + if (uvw(2) > 0) then + do j = ijk0(2), ijk1(2) - 1 + ijk0(2) = j + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_FRONT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + end do + else + do j = ijk0(2) - 1, ijk1(2), -1 + ijk0(2) = j + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = IN_FRONT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + end do + end if + cycle + elseif (y_same .and. z_same) then + ! Only x crossings + if (uvw(1) > 0) then + do j = ijk0(1), ijk1(1) - 1 + ijk0(1) = j + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_RIGHT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + end do + else + do j = ijk0(1) - 1, ijk1(1), -1 + ijk0(1) = j + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = IN_RIGHT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + end do + end if + cycle + end if + + ! ======================================================================= + ! GENERIC CASE + + ! Bounding coordinates + do j = 1, 3 + if (uvw(j) > 0) then + xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) + else + xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) + end if + end do + + do k = 1, n_cross + ! Reset scoring bin index + matching_bins(i_filter_surf) = 0 + + ! Calculate distance to each bounding surface. We need to treat + ! special case where the cosine of the angle is zero since this would + ! result in a divide-by-zero. + + do j = 1, 3 + if (uvw(j) == 0) then + d(j) = INFINITY + else + d(j) = (xyz_cross(j) - xyz0(j))/uvw(j) + end if + end do + + ! Determine the closest bounding surface of the mesh cell by + ! calculating the minimum distance + + distance = minval(d) + + ! Now use the minimum distance and diretion of the particle to + ! determine which surface was crossed + + if (distance == d(1)) then + if (uvw(1) > 0) then + ! Crossing into right mesh cell -- this is treated as outgoing + ! current from (i,j,k) + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_RIGHT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + end if + ijk0(1) = ijk0(1) + 1 + xyz_cross(1) = xyz_cross(1) + m % width(1) + else + ! Crossing into left mesh cell -- this is treated as incoming + ! current in (i-1,j,k) + ijk0(1) = ijk0(1) - 1 + xyz_cross(1) = xyz_cross(1) - m % width(1) + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = IN_RIGHT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + end if + end if + elseif (distance == d(2)) then + if (uvw(2) > 0) then + ! Crossing into front mesh cell -- this is treated as outgoing + ! current in (i,j,k) + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_FRONT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + end if + ijk0(2) = ijk0(2) + 1 + xyz_cross(2) = xyz_cross(2) + m % width(2) + else + ! Crossing into back mesh cell -- this is treated as incoming + ! current in (i,j-1,k) + ijk0(2) = ijk0(2) - 1 + xyz_cross(2) = xyz_cross(2) - m % width(2) + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = IN_FRONT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + end if + end if + else if (distance == d(3)) then + if (uvw(3) > 0) then + ! Crossing into top mesh cell -- this is treated as outgoing + ! current in (i,j,k) + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_TOP + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + end if + ijk0(3) = ijk0(3) + 1 + xyz_cross(3) = xyz_cross(3) + m % width(3) + else + ! Crossing into bottom mesh cell -- this is treated as incoming + ! current in (i,j,k-1) + ijk0(3) = ijk0(3) - 1 + xyz_cross(3) = xyz_cross(3) - m % width(3) + if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = IN_TOP + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0 + 1, .true.) + end if + end if + end if + + ! Determine scoring index + if (matching_bins(i_filter_surf) > 0) then + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + + ! Check for errors + if (filter_index <= 0 .or. filter_index > & + t % total_filter_bins) then + call fatal_error("Score index outside range.") + end if + + ! Add to surface current tally +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + + ! Calculate new coordinates + xyz0 = xyz0 + distance * uvw + end do + + end do TALLY_LOOP end subroutine score_surface_current From 0b83f58fd17188403563a033be3314b0c4105fcb Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 24 Jun 2016 00:01:59 -0500 Subject: [PATCH 083/417] Reconnect tracklength mesh tallies --- src/tally.F90 | 563 ++++++++++++++++++++++---------------------------- 1 file changed, 249 insertions(+), 314 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index 9a04feb050..3236f8fcd9 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1538,52 +1538,56 @@ contains type(TallyObject), intent(inout) :: 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 -! real(8) :: E_out ! energy 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) % 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 -! ! 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 -! 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) -! -! ! 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 + 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 + real(8) :: E_out ! energy of fission bank site + + ! save original outgoing energy bin and score index + i = t % find_filter(FILTER_ENERGYOUT) + bin_energyout = matching_bins(i) + + ! Declare the filter type + select type(filt => t % filters(i) % obj) + type is (EnergyoutFilter) + + ! Get number of energies on filter + n = size(filt % 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 + E_out = fission_bank(n_bank - p % n_bank + k) % E + + ! check if outgoing energy is within specified range on filter + if (E_out < filt % bins(1) .or. E_out > filt % bins(n)) cycle + + ! change outgoing energy bin + matching_bins(i) = binary_search(filt % bins, n, E_out) + + ! 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 + end select + + ! reset outgoing energy bin and score index + matching_bins(i) = bin_energyout end subroutine score_fission_eout_ce @@ -1917,274 +1921,205 @@ contains 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 -! integer :: k ! loop index for mesh cell crossings -! integer :: b ! loop index for nuclide bins -! integer :: ijk0(3) ! indices of starting coordinates -! integer :: ijk1(3) ! indices of ending coordinates -! integer :: ijk_cross(3) ! indices of mesh cell crossed -! integer :: n_cross ! number of surface crossings -! integer :: filter_index ! single index for single bin -! integer :: i_nuclide ! index in nuclides array -! integer :: i_filter_mesh ! index of mesh filter in filters array -! real(8) :: atom_density ! density of individual nuclide in atom/b-cm -! real(8) :: flux ! tracklength estimate of flux -! real(8) :: uvw(3) ! cosine of angle of particle -! real(8) :: xyz0(3) ! starting/intermediate coordinates -! real(8) :: xyz1(3) ! ending coordinates of particle -! real(8) :: xyz_cross(3) ! coordinates of next boundary -! real(8) :: d(3) ! distance to each bounding surface -! real(8) :: distance ! distance traveled in mesh cell -! logical :: found_bin ! was a scoring bin found? -! logical :: start_in_mesh ! starting coordinates inside mesh? -! logical :: end_in_mesh ! ending coordinates inside mesh? -! real(8) :: theta -! real(8) :: phi -! type(TallyObject), pointer :: t -! type(RegularMesh), pointer :: m -! type(Material), pointer :: mat -! -! t => tallies(i_tally) -! matching_bins(1:t%n_filters) = 1 -! -! ! ========================================================================== -! ! CHECK IF THIS TRACK INTERSECTS THE MESH -! -! ! Copy starting and ending location of particle -! xyz0 = p % coord(1) % xyz - (d_track - TINY_BIT) * p % coord(1) % uvw -! xyz1 = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw -! -! ! Get index for mesh filter -! i_filter_mesh = t % find_filter(FILTER_MESH) -! -! ! Determine indices for starting and ending location -! m => meshes(t % filters(i_filter_mesh) % int_bins(1)) -! call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) -! call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) -! -! ! Check if start or end is in mesh -- if not, check if track still -! ! intersects with mesh -! if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then -! if (m % n_dimension == 2) then -! if (.not. mesh_intersects_2d(m, xyz0, xyz1)) return -! else -! if (.not. mesh_intersects_3d(m, xyz0, xyz1)) return -! end if -! end if -! -! ! Reset starting and ending location -! xyz0 = p % coord(1) % xyz - d_track * p % coord(1) % uvw -! xyz1 = p % coord(1) % xyz -! -! ! ========================================================================= -! ! CHECK FOR SCORING COMBINATION FOR FILTERS OTHER THAN MESH -! -! FILTER_LOOP: do i = 1, t % n_filters -! -! select case (t % filters(i) % type) -! 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) -! matching_bins(i) = get_next_bin(FILTER_MATERIAL, & -! p % material, i_tally) -! -! 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_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) -! ! determine incoming energy bin -! k = 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(k + 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, & -! k + 1, p % E) -! end if -! -! case (FILTER_POLAR) -! ! Get theta value -! theta = acos(p % coord(1) % uvw(3)) -! -! ! determine polar angle bin -! k = 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(k + 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, & -! k + 1, theta) -! end if -! -! case (FILTER_AZIMUTHAL) -! ! make sure the correct direction vector is used -! phi = atan2(p % coord(1) % uvw(2), p % coord(1) % uvw(1)) -! -! ! determine mu bin -! k = 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(k + 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, & -! k + 1, phi) -! end if -! -! end select -! -! ! Check if no matching bin was found -! if (matching_bins(i) == NO_BIN_FOUND) return -! -! end do FILTER_LOOP -! -! ! ========================================================================== -! ! DETERMINE WHICH MESH CELLS TO SCORE TO -! -! ! Calculate number of surface crossings -! n_cross = sum(abs(ijk1(:m % n_dimension) - ijk0(:m % n_dimension))) + 1 -! -! ! Copy particle's direction -! uvw = p % coord(1) % uvw -! -! ! Bounding coordinates -! do j = 1, m % n_dimension -! if (uvw(j) > 0) then -! xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) -! else -! xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) -! end if -! end do -! -! MESH_LOOP: do k = 1, n_cross -! found_bin = .false. -! -! ! Calculate distance to each bounding surface. We need to treat special -! ! case where the cosine of the angle is zero since this would result in a -! ! divide-by-zero. -! -! if (k == n_cross) xyz_cross = xyz1 -! -! do j = 1, m % n_dimension -! if (uvw(j) == 0) then -! d(j) = INFINITY -! else -! d(j) = (xyz_cross(j) - xyz0(j))/uvw(j) -! end if -! end do -! -! ! Determine the closest bounding surface of the mesh cell by calculating -! ! the minimum distance -! -! j = minloc(d(:m % n_dimension), 1) -! distance = d(j) -! -! ! Now use the minimum distance and diretion of the particle to determine -! ! which surface was crossed -! -! if (all(ijk0(:m % n_dimension) >= 1) .and. all(ijk0(:m % n_dimension) <= m % dimension)) then -! ijk_cross = ijk0 -! found_bin = .true. -! end if -! -! ! Increment indices and determine new crossing point -! if (uvw(j) > 0) then -! ijk0(j) = ijk0(j) + 1 -! xyz_cross(j) = xyz_cross(j) + m % width(j) -! else -! ijk0(j) = ijk0(j) - 1 -! xyz_cross(j) = xyz_cross(j) - m % width(j) -! end if -! -! ! ======================================================================= -! ! SCORE TO THIS MESH CELL -! -! if (found_bin) then -! ! Calculate track-length estimate of flux -! flux = p % wgt * distance -! -! ! Determine mesh bin -! matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, ijk_cross) -! -! ! Determining scoring index -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! -! if (t % all_nuclides) then -! if (p % material /= MATERIAL_VOID) then -! ! Score reaction rates for each nuclide in material -! call score_all_nuclides(p, i_tally, flux, filter_index) -! end if -! else -! NUCLIDE_BIN_LOOP: do b = 1, t % n_nuclide_bins -! ! Get index of nuclide in nuclides array -! i_nuclide = t % nuclide_bins(b) -! -! if (i_nuclide > 0) then -! if (p % material /= MATERIAL_VOID) then -! ! Get pointer to current material -! mat => materials(p % material) -! -! ! Determine if nuclide is actually in material -! NUCLIDE_MAT_LOOP: do j = 1, mat % n_nuclides -! ! If index of nuclide matches the j-th nuclide listed in -! ! the material, break out of the loop -! if (i_nuclide == mat % nuclide(j)) exit -! -! ! If we've reached the last nuclide in the material, it -! ! means the specified nuclide to be tallied is not in this -! ! material -! if (j == mat % n_nuclides) then -! cycle NUCLIDE_BIN_LOOP -! end if -! end do NUCLIDE_MAT_LOOP -! -! atom_density = mat % atom_density(j) -! else -! atom_density = ZERO -! end if -! end if -! -! ! Determine score for each bin -! call score_general(p, t, (b-1)*t % n_score_bins, filter_index, & -! i_nuclide, atom_density, flux) -! -! end do NUCLIDE_BIN_LOOP -! end if -! end if -! -! ! Calculate new coordinates -! xyz0 = xyz0 + distance * uvw -! -! end do MESH_LOOP + integer :: i ! loop index for filter/score bins + integer :: j ! loop index for direction + integer :: k ! loop index for mesh cell crossings + integer :: b ! loop index for nuclide bins + integer :: ijk0(3) ! indices of starting coordinates + integer :: ijk1(3) ! indices of ending coordinates + integer :: ijk_cross(3) ! indices of mesh cell crossed + integer :: n_cross ! number of surface crossings + integer :: filter_index ! single index for single bin + integer :: i_nuclide ! index in nuclides array + integer :: i_filter_mesh ! index of mesh filter in filters array + real(8) :: atom_density ! density of individual nuclide in atom/b-cm + real(8) :: flux ! tracklength estimate of flux + real(8) :: uvw(3) ! cosine of angle of particle + real(8) :: xyz0(3) ! starting/intermediate coordinates + real(8) :: xyz1(3) ! ending coordinates of particle + real(8) :: xyz_cross(3) ! coordinates of next boundary + real(8) :: d(3) ! distance to each bounding surface + real(8) :: distance ! distance traveled in mesh cell + logical :: found_bin ! was a scoring bin found? + logical :: start_in_mesh ! starting coordinates inside mesh? + logical :: end_in_mesh ! ending coordinates inside mesh? + real(8) :: theta + real(8) :: phi + type(TallyObject), pointer :: t + type(RegularMesh), pointer :: m + type(Material), pointer :: mat + + t => tallies(i_tally) + matching_bins(1:t%n_filters) = 1 + + ! ========================================================================== + ! CHECK IF THIS TRACK INTERSECTS THE MESH + + ! Copy starting and ending location of particle + xyz0 = p % coord(1) % xyz - (d_track - TINY_BIT) * p % coord(1) % uvw + xyz1 = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw + + ! Get index for mesh filter + i_filter_mesh = t % find_filter(FILTER_MESH) + + ! Get pointer to mesh + select type(filt => t % filters(i_filter_mesh) % obj) + type is (MeshFilter) + m => meshes(filt % mesh) + end select + + ! Determine indices for starting and ending location + call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) + call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) + + ! Check if start or end is in mesh -- if not, check if track still + ! intersects with mesh + if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then + if (m % n_dimension == 2) then + if (.not. mesh_intersects_2d(m, xyz0, xyz1)) return + else + if (.not. mesh_intersects_3d(m, xyz0, xyz1)) return + end if + end if + + ! Reset starting and ending location + xyz0 = p % coord(1) % xyz - d_track * p % coord(1) % uvw + xyz1 = p % coord(1) % xyz + + ! ========================================================================= + ! CHECK FOR SCORING COMBINATION FOR FILTERS OTHER THAN MESH + + FILTER_LOOP: do i = 1, t % n_filters + + ! Ignore this filter if it's the mesh filter + if (i == i_filter_mesh) cycle + + matching_bins(i) = t % filters(i) % obj % get_next_bin(p, t % estimator, & + NO_BIN_FOUND) + + ! Check if no matching bin was found + if (matching_bins(i) == NO_BIN_FOUND) return + + end do FILTER_LOOP + + ! ========================================================================== + ! DETERMINE WHICH MESH CELLS TO SCORE TO + + ! Calculate number of surface crossings + n_cross = sum(abs(ijk1(:m % n_dimension) - ijk0(:m % n_dimension))) + 1 + + ! Copy particle's direction + uvw = p % coord(1) % uvw + + ! Bounding coordinates + do j = 1, m % n_dimension + if (uvw(j) > 0) then + xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) + else + xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) + end if + end do + + MESH_LOOP: do k = 1, n_cross + found_bin = .false. + + ! Calculate distance to each bounding surface. We need to treat special + ! case where the cosine of the angle is zero since this would result in a + ! divide-by-zero. + + if (k == n_cross) xyz_cross = xyz1 + + do j = 1, m % n_dimension + if (uvw(j) == 0) then + d(j) = INFINITY + else + d(j) = (xyz_cross(j) - xyz0(j))/uvw(j) + end if + end do + + ! Determine the closest bounding surface of the mesh cell by calculating + ! the minimum distance + + j = minloc(d(:m % n_dimension), 1) + distance = d(j) + + ! Now use the minimum distance and diretion of the particle to determine + ! which surface was crossed + + if (all(ijk0(:m % n_dimension) >= 1) .and. all(ijk0(:m % n_dimension) <= m % dimension)) then + ijk_cross = ijk0 + found_bin = .true. + end if + + ! Increment indices and determine new crossing point + if (uvw(j) > 0) then + ijk0(j) = ijk0(j) + 1 + xyz_cross(j) = xyz_cross(j) + m % width(j) + else + ijk0(j) = ijk0(j) - 1 + xyz_cross(j) = xyz_cross(j) - m % width(j) + end if + + ! ======================================================================= + ! SCORE TO THIS MESH CELL + + if (found_bin) then + ! Calculate track-length estimate of flux + flux = p % wgt * distance + + ! Determine mesh bin + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, ijk_cross) + + ! Determining scoring index + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + + if (t % all_nuclides) then + if (p % material /= MATERIAL_VOID) then + ! Score reaction rates for each nuclide in material + call score_all_nuclides(p, i_tally, flux, filter_index) + end if + else + NUCLIDE_BIN_LOOP: do b = 1, t % n_nuclide_bins + ! Get index of nuclide in nuclides array + i_nuclide = t % nuclide_bins(b) + + if (i_nuclide > 0) then + if (p % material /= MATERIAL_VOID) then + ! Get pointer to current material + mat => materials(p % material) + + ! Determine if nuclide is actually in material + NUCLIDE_MAT_LOOP: do j = 1, mat % n_nuclides + ! If index of nuclide matches the j-th nuclide listed in + ! the material, break out of the loop + if (i_nuclide == mat % nuclide(j)) exit + + ! If we've reached the last nuclide in the material, it + ! means the specified nuclide to be tallied is not in this + ! material + if (j == mat % n_nuclides) then + cycle NUCLIDE_BIN_LOOP + end if + end do NUCLIDE_MAT_LOOP + + atom_density = mat % atom_density(j) + else + atom_density = ZERO + end if + end if + + ! Determine score for each bin + call score_general(p, t, (b-1)*t % n_score_bins, filter_index, & + i_nuclide, atom_density, flux) + + end do NUCLIDE_BIN_LOOP + end if + end if + + ! Calculate new coordinates + xyz0 = xyz0 + distance * uvw + + end do MESH_LOOP end subroutine score_tl_on_mesh From 8212333425a9baaf2c9b0730fbf0bea4cd7ab244 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 24 Jun 2016 11:27:22 -0500 Subject: [PATCH 084/417] Reconnect delayed fission tallies --- src/tally.F90 | 202 ++++++++++++++++++++++++++------------------------ 1 file changed, 106 insertions(+), 96 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index 3236f8fcd9..08275588bd 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1682,86 +1682,96 @@ contains type(TallyObject), intent(inout) :: t integer, intent(in) :: i_score ! index for score -! integer :: i ! index of outgoing energy filter -! integer :: j ! index of delayedgroup filter -! integer :: d ! delayed group -! integer :: g ! another delayed group -! integer :: d_bin ! delayed group bin index -! 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 -! real(8) :: E_out ! energy of fission bank site -! -! ! Save original outgoing energy bin -! i = t % find_filter(FILTER_ENERGYOUT) -! bin_energyout = matching_bins(i) -! -! ! Get the index of delayed group filter -! j = t % find_filter(FILTER_DELAYEDGROUP) -! -! ! Get number of energies on filter -! 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 -! ! score by keff to get the true delayed-nu-fission rate. -! -! ! loop over number of particles banked -! do k = 1, p % n_bank -! -! ! get the delayed group -! g = fission_bank(n_bank - p % n_bank + k) % delayed_group -! -! ! check if the particle was born delayed -! if (g /= 0) then -! -! ! 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 -! 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) -! -! ! if the delayed group filter is present, tally to corresponding -! ! delayed group bin if it exists -! if (j > 0) then -! -! ! loop over delayed group bins until the corresponding bin is found -! do d_bin = 1, t % filters(j) % n_bins -! d = t % filters(j) % int_bins(d_bin) -! -! ! check whether the delayed group of the particle is equal to the -! ! delayed group of this bin -! if (d == g) then -! call score_fission_delayed_dg(t, d_bin, score, i_score) -! end if -! end do -! -! ! if the delayed group filter is not present, add score to tally -! else -! -! ! 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 if -! end if -! end do -! -! ! reset outgoing energy bin -! matching_bins(i) = bin_energyout -! + integer :: i ! index of outgoing energy filter + integer :: j ! index of delayedgroup filter + integer :: d ! delayed group + integer :: g ! another delayed group + integer :: d_bin ! delayed group bin index + 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 + real(8) :: E_out ! energy of fission bank site + + ! Save original outgoing energy bin + i = t % find_filter(FILTER_ENERGYOUT) + bin_energyout = matching_bins(i) + + ! Get the index of delayed group filter + j = t % find_filter(FILTER_DELAYEDGROUP) + + ! Declare the energyout filter type + select type(eo_filt => t % filters(i) % obj) + type is (EnergyoutFilter) + + ! Get number of energies on filter + n = size(eo_filt % 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 delayed-nu-fission rate. + + ! loop over number of particles banked + do k = 1, p % n_bank + + ! get the delayed group + g = fission_bank(n_bank - p % n_bank + k) % delayed_group + + ! check if the particle was born delayed + if (g /= 0) then + + ! 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 + E_out = fission_bank(n_bank - p % n_bank + k) % E + + ! check if outgoing energy is within specified range on filter + if (E_out < eo_filt % bins(1) .or. E_out > eo_filt % bins(n)) cycle + + ! change outgoing energy bin + matching_bins(i) = binary_search(eo_filt % bins, n, E_out) + + ! if the delayed group filter is present, tally to corresponding + ! delayed group bin if it exists + if (j > 0) then + + ! Declare the delayed group filter type + select type(dg_filt => t % filters(j) % obj) + type is (DelayedGroupFilter) + + ! loop over delayed group bins until the corresponding bin is + ! found + do d_bin = 1, dg_filt % n_bins + d = dg_filt % groups(d_bin) + + ! check whether the delayed group of the particle is equal to + ! the delayed group of this bin + if (d == g) then + call score_fission_delayed_dg(t, d_bin, score, i_score) + end if + end do + end select + + ! if the delayed group filter is not present, add score to tally + else + + ! 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 if + end if + end do + end select + + ! reset outgoing energy bin + matching_bins(i) = bin_energyout + end subroutine score_fission_delayed_eout !=============================================================================== @@ -1776,22 +1786,22 @@ contains real(8), intent(in) :: score ! actual score integer, intent(in) :: d_bin ! delayed group bin index -! integer :: bin_original ! original bin index -! integer :: filter_index ! index for matching filter bin combination -! -! ! save original delayed group bin -! bin_original = matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) -! matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = d_bin -! -! ! Compute the filter index based on the modified matching_bins -! filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 -! -!!$omp atomic -! t % results(score_index, filter_index) % value = & -! t % results(score_index, filter_index) % value + score -! -! ! reset original delayed group bin -! matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = bin_original + integer :: bin_original ! original bin index + integer :: filter_index ! index for matching filter bin combination + + ! save original delayed group bin + bin_original = matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) + matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = d_bin + + ! Compute the filter index based on the modified matching_bins + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + +!$omp atomic + t % results(score_index, filter_index) % value = & + t % results(score_index, filter_index) % value + score + + ! reset original delayed group bin + matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = bin_original end subroutine score_fission_delayed_dg From b0b3f4eb948d35afc457d0dae30511ea692b9970 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 24 Jun 2016 12:53:19 -0500 Subject: [PATCH 085/417] Reconnect MG tallies --- src/input_xml.F90 | 10 +- src/tally.F90 | 380 +++++++++---------------------------------- src/tally_filter.F90 | 56 +++++-- 3 files changed, 123 insertions(+), 323 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index fc244670f1..e1cb94e254 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3037,7 +3037,10 @@ contains if (.not. run_CE) then if (n_words == energy_groups + 1) then if (all(filt % bins == energy_bins(energy_groups + 1:1:-1))) & - t % energy_matches_groups = .true. + then + t % energy_matches_groups = .true. + filt % matches_transport_groups = .true. + end if end if end if end select @@ -3060,7 +3063,10 @@ contains if (.not. run_CE) then if (n_words == energy_groups + 1) then if (all(filt % bins == energy_bins(energy_groups + 1:1:-1))) & - t % energy_matches_groups = .true. + then + t % energyout_matches_groups = .true. + filt % matches_transport_groups = .true. + end if end if end if end select diff --git a/src/tally.F90 b/src/tally.F90 index 08275588bd..98ee1d7f27 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -29,7 +29,6 @@ module tally procedure(score_general_), pointer :: score_general => null() procedure(score_analog_tally_), pointer :: score_analog_tally => null() - procedure(get_scoring_bins_), pointer :: get_scoring_bins => null() abstract interface subroutine score_general_(p, t, start_index, filter_index, i_nuclide, & @@ -49,13 +48,6 @@ module tally import Particle type(Particle), intent(in) :: p end subroutine score_analog_tally_ - - 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_ end interface contains @@ -69,11 +61,9 @@ contains if (run_CE) then score_general => score_general_ce score_analog_tally => score_analog_tally_ce - get_scoring_bins => get_scoring_bins_ce else score_general => score_general_mg score_analog_tally => score_analog_tally_mg - get_scoring_bins => get_scoring_bins_mg end if end subroutine init_tally_routines @@ -1598,74 +1588,78 @@ contains integer, intent(in) :: i_nuclide ! index for nuclide real(8), intent(in) :: atom_density -! 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 -! integer :: gin ! energy group of incident particle -! 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) % 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 -! ! 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 -! if (i_nuclide > 0) then -! if (survival_biasing) then -! gin = p % g -! else -! gin = p % last_g -! end if -! score = score * atom_density * & -! nuclides_MG(i_nuclide) % obj % get_xs('fission', gin, & -! UVW=p % last_uvw) / & -! macro_xs(p % material) % obj % get_xs('fission', gin, & -! UVW=p % last_uvw) -! end if -! -! if (t % energyout_matches_groups) then -! ! determine outgoing energy from fission bank -! gout = int(fission_bank(n_bank - p % n_bank + k) % E) -! -! ! change outgoing energy bin -! matching_bins(i) = gout -! else -! ! determine outgoing energy from fission bank -! E_out = energy_bin_avg(int(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 -! -! ! 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 + 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 + integer :: gin ! energy group of incident particle + real(8) :: E_out + + ! save original outgoing energy bin and score index + i = t % find_filter(FILTER_ENERGYOUT) + bin_energyout = matching_bins(i) + + ! Declare the filter type + select type(filt => t % filters(i) % obj) + type is (EnergyoutFilter) + + ! Get number of energies on filter + n = size(filt % 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 + if (i_nuclide > 0) then + if (survival_biasing) then + gin = p % g + else + gin = p % last_g + end if + score = score * atom_density * & + nuclides_MG(i_nuclide) % obj % get_xs('fission', gin, & + UVW=p % last_uvw) / & + macro_xs(p % material) % obj % get_xs('fission', gin, & + UVW=p % last_uvw) + end if + + if (t % energyout_matches_groups) then + ! determine outgoing energy from fission bank + gout = int(fission_bank(n_bank - p % n_bank + k) % E) + + ! change outgoing energy bin + matching_bins(i) = gout + else + ! determine outgoing energy from fission bank + E_out = energy_bin_avg(int(fission_bank(n_bank - p % n_bank + k) % E)) + + ! check if outgoing energy is within specified range on filter + if (E_out < filt % bins(1) .or. E_out > filt % bins(n)) cycle + + ! change outgoing energy bin + matching_bins(i) = binary_search(filt % bins, n, E_out) + end if + + ! 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 select end subroutine score_fission_eout_mg @@ -1953,8 +1947,6 @@ contains logical :: found_bin ! was a scoring bin found? logical :: start_in_mesh ! starting coordinates inside mesh? logical :: end_in_mesh ! ending coordinates inside mesh? - real(8) :: theta - real(8) :: phi type(TallyObject), pointer :: t type(RegularMesh), pointer :: m type(Material), pointer :: mat @@ -2250,21 +2242,14 @@ contains ! for a tally based on the particle's current attributes. !=============================================================================== - subroutine get_scoring_bins_ce(p, i_tally, found_bin) + subroutine get_scoring_bins(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 :: distribcell_index ! index in distribcell arrays - real(8) :: E ! particle energy - real(8) :: theta, phi ! Polar and Azimuthal Angles, respectively + integer :: i type(TallyObject), pointer :: t - type(RegularMesh), pointer :: m found_bin = .true. t => tallies(i_tally) @@ -2283,221 +2268,7 @@ contains end do FILTER_LOOP - 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 :: distribcell_index ! index in distribcell arrays -! integer :: offset ! offset for distribcell -! real(8) :: theta, phi ! Polar and Azimuthal Angles, respectively -! real(8) :: E -! 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 -! 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(distribcell_index) -! 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(distribcell_index, & -! 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) -! 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 % 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 -! 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 -! -! ! 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 -! -! ! 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 -! -! ! 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 + end subroutine get_scoring_bins !=============================================================================== ! SCORE_SURFACE_CURRENT tallies surface crossings in a mesh tally by manually @@ -2515,7 +2286,6 @@ contains integer :: ijk0(3) ! indices of starting coordinates integer :: ijk1(3) ! indices of ending coordinates integer :: n_cross ! number of surface crossings - integer :: n ! number of incoming energy bins integer :: filter_index ! index of scoring bin integer :: i_filter_mesh ! index of mesh filter in filters array integer :: i_filter_surf ! index of surface filter in filters diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index 13b9fa48cd..b119c1edfd 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -112,6 +112,7 @@ module tally_filter !=============================================================================== type, extends(TallyFilter) :: EnergyFilter real(8), allocatable :: bins(:) + logical :: matches_transport_groups = .false. contains procedure :: get_next_bin => get_next_bin_energy procedure :: get_score => get_score_energy @@ -125,6 +126,7 @@ module tally_filter !=============================================================================== type, extends(TallyFilter) :: EnergyoutFilter real(8), allocatable :: bins(:) + logical :: matches_transport_groups = .false. contains procedure :: get_next_bin => get_next_bin_energyout procedure :: get_score => get_score_energyout @@ -728,19 +730,32 @@ contains if (current_bin == NO_BIN_FOUND) then n = this % n_bins - ! Make sure the correct energy is used. - if (estimator == ESTIMATOR_TRACKLENGTH) then - E = p % E - else - E = p % last_E - end if + if ((.not. run_CE) .and. this % matches_transport_groups) then + if (estimator == ESTIMATOR_TRACKLENGTH) then + next_bin = p % g + else + next_bin = p % last_g + end if + + ! Tallies are ordered in increasing groups, group indices + ! however are the opposite, so switch + next_bin = energy_groups - next_bin + 1 - ! Check if energy of the particle is within energy bins. - if (E < this % bins(1) .or. E > this % bins(n + 1)) then - next_bin = NO_BIN_FOUND else - ! Search to find incoming energy bin. - next_bin = binary_search(this % bins, n + 1, E) + ! Make sure the correct energy is used. + if (estimator == ESTIMATOR_TRACKLENGTH) then + E = p % E + else + E = p % last_E + end if + + ! Check if energy of the particle is within energy bins. + if (E < this % bins(1) .or. E > this % bins(n + 1)) then + next_bin = NO_BIN_FOUND + else + ! Search to find incoming energy bin. + next_bin = binary_search(this % bins, n + 1, E) + end if end if else @@ -795,12 +810,21 @@ contains if (current_bin == NO_BIN_FOUND) then n = this % n_bins - ! Check if energy of the particle is within energy bins. - if (p % E < this % bins(1) .or. p % E > this % bins(n + 1)) then - next_bin = NO_BIN_FOUND + if ((.not. run_CE) .and. this % matches_transport_groups) then + next_bin = p % g + + ! Tallies are ordered in increasing groups, group indices + ! however are the opposite, so switch + next_bin = energy_groups - next_bin + 1 + else - ! Search to find incoming energy bin. - next_bin = binary_search(this % bins, n + 1, p % E) + ! Check if energy of the particle is within energy bins. + if (p % E < this % bins(1) .or. p % E > this % bins(n + 1)) then + next_bin = NO_BIN_FOUND + else + ! Search to find incoming energy bin. + next_bin = binary_search(this % bins, n + 1, p % E) + end if end if else From ab04cd0338818ad68c2b03005d4ec0ba4e1ef061 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 24 Jun 2016 13:21:44 -0500 Subject: [PATCH 086/417] Fix CMFD --- src/cmfd_input.F90 | 40 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index 68ce031074..ec99a1c669 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -276,7 +276,7 @@ contains type(Node), pointer :: doc ! pointer to XML doc info character(MAX_LINE_LEN) :: temp_str ! temp string - integer :: i ! loop counter + integer :: i, j ! loop counter integer :: n ! size of arrays in mesh specification integer :: ng ! number of energy groups (default 1) integer :: n_filters ! number of filters @@ -415,6 +415,7 @@ contains allocate(MeshFilter::filters(n_filters) % obj) select type (filt => filters(n_filters) % obj) type is (MeshFilter) + filt % type = FILTER_MESH filt % n_bins = product(m % dimension) filt % mesh = n_user_meshes + 1 end select @@ -426,6 +427,7 @@ contains allocate(EnergyFilter::filters(n_filters) % obj) select type (filt => filters(n_filters) % obj) type is (EnergyFilter) + filt % type = FILTER_ENERGYIN ng = get_arraysize_double(node_mesh, "energy") filt % n_bins = ng - 1 allocate(filt % bins(ng)) @@ -456,7 +458,9 @@ contains ! Allocate and set filters t % n_filters = n_filters allocate(t % filters(n_filters)) - t % filters = filters(1:n_filters) + do j = 1, n_filters + call move_alloc(filters(j) % obj, t % filters(j) % obj) + end do ! Allocate scoring bins allocate(t % score_bins(3)) @@ -490,6 +494,7 @@ contains allocate(EnergyoutFilter::filters(n_filters) % obj) select type (filt => filters(n_filters) % obj) type is (EnergyoutFilter) + filt % type = FILTER_ENERGYOUT ng = get_arraysize_double(node_mesh, "energy") filt % n_bins = ng - 1 allocate(filt % bins(ng)) @@ -501,15 +506,9 @@ contains ! Allocate and set filters t % n_filters = n_filters allocate(t % filters(n_filters)) - t % filters = filters(1:n_filters) - - ! deallocate filters bins array - if (check_for_node(node_mesh, "energy")) then - select type (filt => filters(n_filters) % obj) - type is (EnergyoutFilter) - deallocate(filt % bins) - end select - end if + do j = 1, n_filters + call move_alloc(filters(j) % obj, t % filters(j) % obj) + end do ! Allocate macro reactions allocate(t % score_bins(2)) @@ -537,6 +536,7 @@ contains allocate(SurfaceFilter::filters(n_filters) % obj) select type(filt => filters(n_filters) % obj) type is(SurfaceFilter) + filt % type = FILTER_SURFACE filt % n_bins = 2 * m % n_dimension allocate(filt % surfaces(2 * m % n_dimension)) if (m % n_dimension == 2) then @@ -551,13 +551,9 @@ contains ! Allocate and set filters t % n_filters = n_filters allocate(t % filters(n_filters)) - t % filters = filters(1:n_filters) - - ! Deallocate filters bins array - select type(filt => filters(n_filters) % obj) - type is (SurfaceFilter) - deallocate(filt % surfaces) - end select + do j = 1, n_filters + call move_alloc(filters(j) % obj, t % filters(j) % obj) + end do ! Allocate macro reactions allocate(t % score_bins(1)) @@ -579,14 +575,6 @@ contains end if - ! Deallocate filter bins - if (check_for_node(node_mesh, "energy")) then - select type(filt => filters(2) % obj) - type is (EnergyFilter) - deallocate(filt % bins) - end select - end if - end do ! Put cmfd tallies into active tally array and turn tallies on From 64c77a21b10e60ed07949b437174d10b7c772753 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 24 Jun 2016 15:10:17 -0500 Subject: [PATCH 087/417] Fix distribcell --- src/tally_filter.F90 | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index b119c1edfd..951562a6e8 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -475,6 +475,8 @@ contains integer :: distribcell_index, offset, i + next_bin = NO_BIN_FOUND + distribcell_index = cells(this % cell) % distribcell_index if (current_bin == NO_BIN_FOUND) then @@ -501,8 +503,6 @@ contains exit end if end do - else - next_bin = NO_BIN_FOUND end if end function get_next_bin_distribcell @@ -556,15 +556,13 @@ contains integer :: i, id - do i = 1, this % n_bins - id = this % cell - if (cell_dict % has_key(id)) then - this % cell = cell_dict % get_key(id) - else - call fatal_error("Could not find cell " // trim(to_str(id)) & - &// " specified on tally filter.") - end if - end do + id = this % cell + if (cell_dict % has_key(id)) then + this % cell = cell_dict % get_key(id) + else + call fatal_error("Could not find cell " // trim(to_str(id)) & + &// " specified on tally filter.") + end if end subroutine initialize_distribcell function text_label_distribcell(this, bin) result(label) @@ -577,6 +575,7 @@ contains univ => universes(BASE_UNIVERSE) offset = 0 + label = '' call find_offset(this % cell, univ, bin-1, offset, label) label = "Distributed Cell " // label end function text_label_distribcell From 065fe6f162bfefa4d684f7833ddaa778255e85b1 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 27 Jun 2016 13:11:17 -0500 Subject: [PATCH 088/417] Fix current tallies --- src/output.F90 | 5 ++--- src/tally.F90 | 5 +++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/output.F90 b/src/output.F90 index ba0ad71c96..c9c0cffbeb 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -737,7 +737,6 @@ contains integer :: k ! loop index for scoring bins integer :: n ! loop index for nuclides integer :: l ! loop index for user scores - integer :: type ! type of tally filter integer :: indent ! number of spaces to preceed output integer :: filter_index ! index in results array for filters integer :: score_index ! scoring bin index @@ -1033,8 +1032,8 @@ contains ! Write incoming energy bin write(UNIT=unit_tally, FMT='(3X,A)') & - t % filters(i_filter_ein) % obj % text_label( & - matching_bins(i_filter_ein)) + trim(t % filters(i_filter_ein) % obj % text_label( & + matching_bins(i_filter_ein))) end if ! Left Surface diff --git a/src/tally.F90 b/src/tally.F90 index 98ee1d7f27..7db2f4e8fc 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2345,11 +2345,12 @@ contains ! Copy particle's direction uvw = p % coord(1) % uvw - ! determine incoming energy bin + ! Determine incoming energy bin. We need to tell the energy filter this + ! is a tracklength tally so it uses the pre-collision energy. j = t % find_filter(FILTER_ENERGYIN) if (j > 0) then matching_bins(j) = t % filters(j) % obj & - % get_next_bin(p, ESTIMATOR_COLLISION, NO_BIN_FOUND) + % get_next_bin(p, ESTIMATOR_TRACKLENGTH, NO_BIN_FOUND) if (matching_bins(j) == NO_BIN_FOUND) cycle end if From 1f02570c2438fb45ea5e5cd69c7f77d05f574f67 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 27 Jun 2016 15:22:48 -0500 Subject: [PATCH 089/417] Move get_score functionality into get_next_bin --- src/tally.F90 | 15 +- src/tally_filter.F90 | 313 ++++++++++++++---------------------- src/tally_filter_header.F90 | 23 +-- 3 files changed, 142 insertions(+), 209 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index 7db2f4e8fc..3544ed5c58 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1944,6 +1944,7 @@ contains real(8) :: xyz_cross(3) ! coordinates of next boundary real(8) :: d(3) ! distance to each bounding surface real(8) :: distance ! distance traveled in mesh cell + real(8) :: filt_score ! score applied by filters logical :: found_bin ! was a scoring bin found? logical :: start_in_mesh ! starting coordinates inside mesh? logical :: end_in_mesh ! ending coordinates inside mesh? @@ -1996,8 +1997,8 @@ contains ! Ignore this filter if it's the mesh filter if (i == i_filter_mesh) cycle - matching_bins(i) = t % filters(i) % obj % get_next_bin(p, t % estimator, & - NO_BIN_FOUND) + call t % filters(i) % obj % get_next_bin(p, t % estimator, NO_BIN_FOUND, & + matching_bins(i), filt_score) ! Check if no matching bin was found if (matching_bins(i) == NO_BIN_FOUND) return @@ -2249,6 +2250,7 @@ contains logical, intent(out) :: found_bin integer :: i + real(8) :: filt_score ! score applied by filters type(TallyObject), pointer :: t found_bin = .true. @@ -2257,8 +2259,8 @@ contains FILTER_LOOP: do i = 1, t % n_filters - matching_bins(i) = t % filters(i) % obj % get_next_bin(p, t % estimator, & - NO_BIN_FOUND) + call t % filters(i) % obj % get_next_bin(p, t % estimator, NO_BIN_FOUND, & + matching_bins(i), filt_score) ! If the current filter didn't match, exit this subroutine if (matching_bins(i) == NO_BIN_FOUND) then @@ -2295,6 +2297,7 @@ contains real(8) :: xyz_cross(3) ! coordinates of bounding surfaces real(8) :: d(3) ! distance to each bounding surface real(8) :: distance ! actual distance traveled + real(8) :: filt_score ! score applied by filters logical :: start_in_mesh ! particle's starting xyz in mesh? logical :: end_in_mesh ! particle's ending xyz in mesh? logical :: x_same ! same starting/ending x index (i) @@ -2349,8 +2352,8 @@ contains ! is a tracklength tally so it uses the pre-collision energy. j = t % find_filter(FILTER_ENERGYIN) if (j > 0) then - matching_bins(j) = t % filters(j) % obj & - % get_next_bin(p, ESTIMATOR_TRACKLENGTH, NO_BIN_FOUND) + call t % filters(i) % obj % get_next_bin(p, ESTIMATOR_TRACKLENGTH, & + & NO_BIN_FOUND, matching_bins(j), filt_score) if (matching_bins(j) == NO_BIN_FOUND) cycle end if diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index 951562a6e8..c0b7dc5c56 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -23,7 +23,6 @@ module tally_filter integer :: mesh contains procedure :: get_next_bin => get_next_bin_mesh - procedure :: get_score => get_score_mesh procedure :: to_statepoint => to_statepoint_mesh procedure :: to_summary => to_statepoint_mesh procedure :: initialize => initialize_mesh @@ -36,7 +35,6 @@ module tally_filter integer, allocatable :: universes(:) contains procedure :: get_next_bin => get_next_bin_universe - procedure :: get_score => get_score_universe procedure :: to_statepoint => to_statepoint_universe procedure :: to_summary => to_statepoint_universe procedure :: initialize => initialize_universe @@ -49,7 +47,6 @@ module tally_filter integer, allocatable :: materials(:) contains procedure :: get_next_bin => get_next_bin_material - procedure :: get_score => get_score_material procedure :: to_statepoint => to_statepoint_material procedure :: to_summary => to_statepoint_material procedure :: initialize => initialize_material @@ -62,7 +59,6 @@ module tally_filter integer, allocatable :: cells(:) contains procedure :: get_next_bin => get_next_bin_cell - procedure :: get_score => get_score_cell procedure :: to_statepoint => to_statepoint_cell procedure :: to_summary => to_statepoint_cell procedure :: initialize => initialize_cell @@ -75,7 +71,6 @@ module tally_filter integer :: cell contains procedure :: get_next_bin => get_next_bin_distribcell - procedure :: get_score => get_score_distribcell procedure :: to_statepoint => to_statepoint_distribcell procedure :: to_summary => to_summary_distribcell procedure :: initialize => initialize_distribcell @@ -88,7 +83,6 @@ module tally_filter integer, allocatable :: cells(:) contains procedure :: get_next_bin => get_next_bin_cellborn - procedure :: get_score => get_score_cellborn procedure :: to_statepoint => to_statepoint_cellborn procedure :: to_summary => to_statepoint_cellborn procedure :: initialize => initialize_cellborn @@ -101,7 +95,6 @@ module tally_filter integer, allocatable :: surfaces(:) contains procedure :: get_next_bin => get_next_bin_surface - procedure :: get_score => get_score_surface procedure :: to_statepoint => to_statepoint_surface procedure :: to_summary => to_statepoint_surface procedure :: initialize => initialize_surface @@ -115,7 +108,6 @@ module tally_filter logical :: matches_transport_groups = .false. contains procedure :: get_next_bin => get_next_bin_energy - procedure :: get_score => get_score_energy procedure :: to_statepoint => to_statepoint_energy procedure :: to_summary => to_statepoint_energy procedure :: initialize => initialize_energy @@ -129,7 +121,6 @@ module tally_filter logical :: matches_transport_groups = .false. contains procedure :: get_next_bin => get_next_bin_energyout - procedure :: get_score => get_score_energyout procedure :: to_statepoint => to_statepoint_energyout procedure :: to_summary => to_statepoint_energyout procedure :: initialize => initialize_energyout @@ -142,7 +133,6 @@ module tally_filter integer, allocatable :: groups(:) contains procedure :: get_next_bin => get_next_bin_dg - procedure :: get_score => get_score_dg procedure :: to_statepoint => to_statepoint_dg procedure :: to_summary => to_statepoint_dg procedure :: initialize => initialize_dg @@ -155,7 +145,6 @@ module tally_filter real(8), allocatable :: bins(:) contains procedure :: get_next_bin => get_next_bin_mu - procedure :: get_score => get_score_mu procedure :: to_statepoint => to_statepoint_mu procedure :: to_summary => to_statepoint_mu procedure :: initialize => initialize_mu @@ -168,7 +157,6 @@ module tally_filter real(8), allocatable :: bins(:) contains procedure :: get_next_bin => get_next_bin_polar - procedure :: get_score => get_score_polar procedure :: to_statepoint => to_statepoint_polar procedure :: to_summary => to_statepoint_polar procedure :: initialize => initialize_polar @@ -181,7 +169,6 @@ module tally_filter real(8), allocatable :: bins(:) contains procedure :: get_next_bin => get_next_bin_azimuthal - procedure :: get_score => get_score_azimuthal procedure :: to_statepoint => to_statepoint_azimuthal procedure :: to_summary => to_statepoint_azimuthal procedure :: initialize => initialize_azimuthal @@ -199,24 +186,21 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_mesh(this, p, estimator, current_bin) result(next_bin) - class(MeshFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_mesh(this, p, estimator, current_bin, next_bin, score) + class(MeshFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score type(RegularMesh), pointer :: m m => meshes(this % mesh) call get_mesh_bin(m, p % coord(1) % xyz, next_bin) - end function get_next_bin_mesh - function get_score_mesh(this, bin) result(score) - class(MeshFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_mesh + score = ONE + end subroutine get_next_bin_mesh subroutine to_statepoint_mesh(this, filter_group) class(MeshFilter), intent(in) :: this @@ -253,13 +237,14 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_universe(this, p, estimator, current_bin) & - result(next_bin) - class(UniverseFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_universe(this, p, estimator, current_bin, next_bin, & + score) + class(UniverseFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: i, j, start logical :: bin_found @@ -283,13 +268,8 @@ contains end do if (.not. bin_found) next_bin = NO_BIN_FOUND - end function get_next_bin_universe - - function get_score_universe(this, bin) result(score) - class(UniverseFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_universe + score = ONE + end subroutine get_next_bin_universe subroutine to_statepoint_universe(this, filter_group) class(UniverseFilter), intent(in) :: this @@ -326,13 +306,14 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_material(this, p, estimator, current_bin) & - result(next_bin) - class(MaterialFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_material(this, p, estimator, current_bin, next_bin, & + score) + class(MaterialFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: i logical :: bin_found @@ -350,13 +331,8 @@ contains else next_bin = NO_BIN_FOUND end if - end function get_next_bin_material - - function get_score_material(this, bin) result(score) - class(MaterialFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_material + score = ONE + end subroutine get_next_bin_material subroutine to_statepoint_material(this, filter_group) class(MaterialFilter), intent(in) :: this @@ -393,12 +369,13 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_cell(this, p, estimator, current_bin) result(next_bin) - class(CellFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_cell(this, p, estimator, current_bin, next_bin, score) + class(CellFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: i, j, start logical :: bin_found @@ -422,13 +399,8 @@ contains end do if (.not. bin_found) next_bin = NO_BIN_FOUND - end function get_next_bin_cell - - function get_score_cell(this, bin) result(score) - class(CellFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_cell + score = ONE + end subroutine get_next_bin_cell subroutine to_statepoint_cell(this, filter_group) class(CellFilter), intent(in) :: this @@ -465,13 +437,14 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_distribcell(this, p, estimator, current_bin) & - result(next_bin) - class(DistribcellFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_distribcell(this, p, estimator, current_bin, & + next_bin, score) + class(DistribcellFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: distribcell_index, offset, i @@ -504,13 +477,8 @@ contains end if end do end if - end function get_next_bin_distribcell - - function get_score_distribcell(this, bin) result(score) - class(DistribcellFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_distribcell + score = ONE + end subroutine get_next_bin_distribcell subroutine to_statepoint_distribcell(this, filter_group) class(DistribcellFilter), intent(in) :: this @@ -582,13 +550,14 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_cellborn(this, p, estimator, current_bin) & - result(next_bin) - class(CellbornFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_cellborn(this, p, estimator, current_bin, next_bin, & + score) + class(CellbornFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: i logical :: bin_found @@ -606,13 +575,8 @@ contains else next_bin = NO_BIN_FOUND end if - end function get_next_bin_cellborn - - function get_score_cellborn(this, bin) result(score) - class(CellbornFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_cellborn + score = ONE + end subroutine get_next_bin_cellborn subroutine to_statepoint_cellborn(this, filter_group) class(CellbornFilter), intent(in) :: this @@ -649,13 +613,14 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_surface(this, p, estimator, current_bin) & - result(next_bin) - class(SurfaceFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_surface(this, p, estimator, current_bin, next_bin, & + score) + class(SurfaceFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: i logical :: bin_found @@ -673,13 +638,8 @@ contains else next_bin = NO_BIN_FOUND end if - end function get_next_bin_surface - - function get_score_surface(this, bin) result(score) - class(SurfaceFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_surface + score = ONE + end subroutine get_next_bin_surface subroutine to_statepoint_surface(this, filter_group) class(SurfaceFilter), intent(in) :: this @@ -716,12 +676,14 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_energy(this, p, estimator, current_bin) result(next_bin) - class(EnergyFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_energy(this, p, estimator, current_bin, next_bin, & + score) + class(EnergyFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: n real(8) :: E @@ -760,13 +722,8 @@ contains else next_bin = NO_BIN_FOUND end if - end function get_next_bin_energy - - function get_score_energy(this, bin) result(score) - class(EnergyFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_energy + score = ONE + end subroutine get_next_bin_energy subroutine to_statepoint_energy(this, filter_group) class(EnergyFilter), intent(in) :: this @@ -796,13 +753,14 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_energyout(this, p, estimator, current_bin) & - result(next_bin) - class(EnergyoutFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_energyout(this, p, estimator, current_bin, next_bin, & + score) + class(EnergyoutFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: n @@ -829,13 +787,8 @@ contains else next_bin = NO_BIN_FOUND end if - end function get_next_bin_energyout - - function get_score_energyout(this, bin) result(score) - class(EnergyoutFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_energyout + score = ONE + end subroutine get_next_bin_energyout subroutine to_statepoint_energyout(this, filter_group) class(EnergyoutFilter), intent(in) :: this @@ -865,19 +818,15 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_dg(this, p, estimator, current_bin) result(next_bin) - class(DelayedGroupFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin - end function get_next_bin_dg - - function get_score_dg(this, bin) result(score) - class(DelayedGroupFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_dg + subroutine get_next_bin_dg(this, p, estimator, current_bin, next_bin, score) + class(DelayedGroupFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score + score = ONE + end subroutine get_next_bin_dg subroutine to_statepoint_dg(this, filter_group) class(DelayedGroupFilter), intent(in) :: this @@ -902,12 +851,13 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_mu(this, p, estimator, current_bin) result(next_bin) - class(MuFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_mu(this, p, estimator, current_bin, next_bin, score) + class(MuFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: n @@ -925,13 +875,8 @@ contains else next_bin = NO_BIN_FOUND end if - end function get_next_bin_mu - - function get_score_mu(this, bin) result(score) - class(MuFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_mu + score = ONE + end subroutine get_next_bin_mu subroutine to_statepoint_mu(this, filter_group) class(MuFilter), intent(in) :: this @@ -961,12 +906,13 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_polar(this, p, estimator, current_bin) result(next_bin) - class(PolarFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_polar(this, p, estimator, current_bin, next_bin, score) + class(PolarFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: n real(8) :: theta @@ -992,13 +938,8 @@ contains else next_bin = NO_BIN_FOUND end if - end function get_next_bin_polar - - function get_score_polar(this, bin) result(score) - class(PolarFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_polar + score = ONE + end subroutine get_next_bin_polar subroutine to_statepoint_polar(this, filter_group) class(PolarFilter), intent(in) :: this @@ -1028,13 +969,14 @@ contains !=============================================================================== !=============================================================================== - function get_next_bin_azimuthal(this, p, estimator, current_bin) & - result(next_bin) - class(AzimuthalFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin + subroutine get_next_bin_azimuthal(this, p, estimator, current_bin, next_bin, & + score) + class(AzimuthalFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score integer :: n real(8) :: phi @@ -1060,13 +1002,8 @@ contains else next_bin = NO_BIN_FOUND end if - end function get_next_bin_azimuthal - - function get_score_azimuthal(this, bin) result(score) - class(AzimuthalFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_azimuthal + score = ONE + end subroutine get_next_bin_azimuthal subroutine to_statepoint_azimuthal(this, filter_group) class(AzimuthalFilter), intent(in) :: this diff --git a/src/tally_filter_header.F90 b/src/tally_filter_header.F90 index 7fbe62547c..7da8eea061 100644 --- a/src/tally_filter_header.F90 +++ b/src/tally_filter_header.F90 @@ -12,7 +12,6 @@ module tally_filter_header integer :: type contains procedure(get_next_bin_), deferred :: get_next_bin - procedure(get_score_), deferred :: get_score procedure(to_statepoint_), deferred :: to_statepoint procedure(to_summary_), deferred :: to_summary procedure(initialize_), deferred :: initialize @@ -25,22 +24,16 @@ module tally_filter_header abstract interface - function get_next_bin_(this, p, estimator, current_bin) result(next_bin) + subroutine get_next_bin_(this, p, estimator, current_bin, next_bin, score) import TallyFilter import Particle - class(TallyFilter), intent(in) :: this - type(Particle), intent(in) :: p - integer, intent(in) :: estimator - integer, intent(in) :: current_bin - integer :: next_bin - end function get_next_bin_ - - function get_score_(this, bin) result(score) - import TallyFilter - class(TallyFilter), intent(in) :: this - integer, intent(in) :: bin - real(8) :: score - end function get_score_ + class(TallyFilter), intent(in) :: this + type(Particle), intent(in) :: p + integer, intent(in) :: estimator + integer, intent(in) :: current_bin + integer, intent(out) :: next_bin + real(8), intent(out) :: score + end subroutine get_next_bin_ subroutine to_statepoint_(this, filter_group) import TallyFilter From 687e81b0dd34e1a1ff2c8699d7aca25c6fb5c6ba Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 28 Jun 2016 13:32:27 -0400 Subject: [PATCH 090/417] got mesh domain working for mgxs --- .../pythonapi/examples/mgxs-part-i.ipynb | 403 ++++++---- .../pythonapi/examples/mgxs-part-iii.ipynb | 239 +++--- .../pythonapi/examples/mgxs-part-iv.ipynb | 10 +- examples/xml/basic/materials.xml | 1 - openmc/__init__.py | 2 +- openmc/filter.py | 2 +- openmc/mgxs/library.py | 38 +- openmc/mgxs/mgxs.py | 703 +++++++++++++++--- 8 files changed, 1017 insertions(+), 381 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index ea75bec722..5c51b11d38 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -183,7 +183,7 @@ "cell_type": "code", "execution_count": 4, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -208,7 +208,7 @@ "cell_type": "code", "execution_count": 5, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -229,7 +229,7 @@ "cell_type": "code", "execution_count": 6, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -324,9 +324,9 @@ "outputs": [], "source": [ "# OpenMC simulation parameters\n", - "batches = 50\n", + "batches = 20\n", "inactive = 10\n", - "particles = 2500\n", + "particles = 1000\n", "\n", "# Instantiate a Settings object\n", "settings_file = openmc.Settings()\n", @@ -395,10 +395,20 @@ }, "outputs": [], "source": [ + "# Instantiate a tally Mesh\n", + "mesh = openmc.Mesh(name='mesh')\n", + "mesh.type = 'regular'\n", + "mesh.dimension = [1, 1]\n", + "mesh.lower_left = [-0.63, -0.63]\n", + "mesh.upper_right = [+0.63, +0.63]\n", + "\n", "# Instantiate a few different sections\n", - "total = mgxs.TotalXS(domain=cell, groups=groups)\n", - "absorption = mgxs.AbsorptionXS(domain=cell, groups=groups)\n", - "scattering = mgxs.ScatterXS(domain=cell, groups=groups)" + "total = mgxs.TotalXS(domain=mesh, groups=groups)\n", + "absorption = mgxs.AbsorptionXS(domain=mesh, groups=groups)\n", + "scattering = mgxs.ScatterXS(domain=mesh, groups=groups)\n", + "#total = mgxs.TotalXS(domain=cell, groups=groups)\n", + "#absorption = mgxs.AbsorptionXS(domain=cell, groups=groups)\n", + "#scattering = mgxs.ScatterXS(domain=cell, groups=groups)" ] }, { @@ -419,24 +429,22 @@ "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\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", - ")])" + " \tID =\t10000\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tmesh\t[10000]\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\tmesh\t[10000]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + " \tNuclides =\ttotal \n", + " \tScores =\t['absorption']\n", + " \tEstimator =\ttracklength)])" ] }, "execution_count": 13, @@ -513,8 +521,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", - " Date/Time: 2016-05-13 10:19:16\n", + " Git SHA1: d30d010aea2c1cba90c993a9c501be9d5d81921d\n", + " Date/Time: 2016-06-28 13:31:05\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -541,57 +549,27 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \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", + " 1/1 1.07993 \n", + " 2/1 1.23691 \n", + " 3/1 1.17407 \n", + " 4/1 1.08258 \n", + " 5/1 1.21012 \n", + " 6/1 1.23825 \n", + " 7/1 1.18016 \n", + " 8/1 1.20989 \n", + " 9/1 1.15475 \n", + " 10/1 1.13462 \n", + " 11/1 1.12749 \n", + " 12/1 1.09502 1.11125 +/- 0.01623\n", + " 13/1 1.24722 1.15657 +/- 0.04628\n", + " 14/1 1.14700 1.15418 +/- 0.03281\n", + " 15/1 1.13889 1.15112 +/- 0.02560\n", + " 16/1 1.19008 1.15762 +/- 0.02189\n", + " 17/1 1.11320 1.15127 +/- 0.01956\n", + " 18/1 1.12093 1.14748 +/- 0.01736\n", + " 19/1 1.13809 1.14643 +/- 0.01534\n", + " 20/1 1.09886 1.14168 +/- 0.01452\n", + " Creating state point statepoint.20.h5...\n", "\n", " ===========================================================================\n", " ======================> SIMULATION FINISHED <======================\n", @@ -600,27 +578,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.2300E-01 seconds\n", - " Reading cross sections = 9.3000E-02 seconds\n", - " Total time in simulation = 1.6549E+01 seconds\n", - " Time in transport only = 1.6535E+01 seconds\n", - " Time in inactive batches = 2.3650E+00 seconds\n", - " Time in active batches = 1.4184E+01 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 8.1200E-01 seconds\n", + " Reading cross sections = 2.4200E-01 seconds\n", + " Total time in simulation = 2.8910E+00 seconds\n", + " Time in transport only = 2.8710E+00 seconds\n", + " Time in inactive batches = 8.5700E-01 seconds\n", + " Time in active batches = 2.0340E+00 seconds\n", + " Time synchronizing fission bank = 0.0000E+00 seconds\n", + " Sampling source sites = 0.0000E+00 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 = 1.6981E+01 seconds\n", - " Calculation Rate (inactive) = 10570.8 neutrons/second\n", - " Calculation Rate (active) = 7050.20 neutrons/second\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 3.7090E+00 seconds\n", + " Calculation Rate (inactive) = 11668.6 neutrons/second\n", + " Calculation Rate (active) = 4916.42 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\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", + " k-effective (Collision) = 1.14223 +/- 0.01330\n", + " k-effective (Track-length) = 1.14168 +/- 0.01452\n", + " k-effective (Absorption) = 1.16108 +/- 0.00876\n", + " Combined k-effective = 1.15408 +/- 0.00566\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -664,7 +642,7 @@ "outputs": [], "source": [ "# Load the last statepoint file\n", - "sp = openmc.StatePoint('statepoint.50.h5')" + "sp = openmc.StatePoint('statepoint.20.h5')" ] }, { @@ -729,11 +707,11 @@ "text": [ "Multi-Group XS\n", "\tReaction Type =\ttotal\n", - "\tDomain Type =\tcell\n", - "\tDomain ID =\t1\n", + "\tDomain Type =\tmesh\n", + "\tDomain ID =\t10000\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 2.69e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 5.93e-01%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.79e-01 +/- 7.64e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 1.79e+00%\n", "\n", "\n", "\n" @@ -764,40 +742,55 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
cellmesh 10000group innuclidemeanstd. dev.
xyz
11111total0.6677870.0018020.6662610.005072
01112total1.2920130.0076421.2924510.022969
\n", "
" ], "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "1 1 1 total 0.667787 0.001802\n", - "0 1 2 total 1.292013 0.007642" + " mesh 10000 group in nuclide mean std. dev.\n", + " x y z \n", + "1 1 1 1 1 total 0.666261 0.005072\n", + "0 1 1 1 2 total 1.292451 0.022969" ] }, "execution_count": 19, @@ -821,11 +814,11 @@ "cell_type": "code", "execution_count": 20, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ - "absorption.export_xs_data(filename='absorption-xs', format='excel')" + "#absorption.export_xs_data(filename='absorption-xs', format='excel')" ] }, { @@ -875,9 +868,9 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -885,40 +878,58 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
cellmesh 10000energy low [MeV]energy high [MeV]nuclidemeanstd. dev.
xyz
01110.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...-3.774758e-150.011292-1.554312e-150.033991
11116.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...1.443290e-150.002570-2.886580e-150.007258
\n", "
" ], "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", + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 1 1 6.25e-07 2.00e+01 total \n", "\n", - " score mean std. dev. \n", - "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 " + " score mean std. dev. \n", + " \n", + "0 (((total / flux) - (absorption / flux)) - (sca... -1.55e-15 3.40e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... -2.89e-15 7.26e-03 " ] }, "execution_count": 22, @@ -954,9 +965,9 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -964,40 +975,58 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
cellmesh 10000energy low [MeV]energy high [MeV]nuclidemeanstd. dev.
xyz
01110.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0761150.0006490.0761440.001984
11116.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0192630.0000950.0192240.000329
\n", "
" ], "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", + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 1 1 6.25e-07 2.00e+01 total \n", "\n", - " score mean std. dev. \n", - "0 ((absorption / flux) / (total / flux)) 7.61e-02 6.49e-04 \n", - "1 ((absorption / flux) / (total / flux)) 1.93e-02 9.46e-05 " + " score mean std. dev. \n", + " \n", + "0 ((absorption / flux) / (total / flux)) 7.61e-02 1.98e-03 \n", + "1 ((absorption / flux) / (total / flux)) 1.92e-02 3.29e-04 " ] }, "execution_count": 23, @@ -1026,9 +1055,9 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1036,40 +1065,58 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
cellmesh 10000energy low [MeV]energy high [MeV]nuclidemeanstd. dev.
xyz
01110.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9238850.0077360.9238560.023272
11116.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9807370.0037370.9807760.010576
\n", "
" ], "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", + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 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.74e-03 \n", - "1 ((scatter / flux) / (total / flux)) 9.81e-01 3.74e-03 " + " score mean std. dev. \n", + " \n", + "0 ((scatter / flux) / (total / flux)) 9.24e-01 2.33e-02 \n", + "1 ((scatter / flux) / (total / flux)) 9.81e-01 1.06e-02 " ] }, "execution_count": 24, @@ -1105,9 +1152,9 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1115,40 +1162,58 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
cellmesh 10000energy low [MeV]energy high [MeV]nuclidemeanstd. dev.
xyz
01110.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...1.00.00776310.023356
11116.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...1.00.00373910.010581
\n", "
" ], "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", + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 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.76e-03 \n", - "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 3.74e-03 " + " score mean std. dev. \n", + " \n", + "0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 2.34e-02 \n", + "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 1.06e-02 " ] }, "execution_count": 25, @@ -1163,6 +1228,24 @@ "# 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": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { @@ -1181,7 +1264,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 5f0acde3f1..e89a9cb7dc 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", + "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/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", @@ -94,7 +94,7 @@ "cell_type": "code", "execution_count": 3, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -458,7 +458,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -557,14 +557,14 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Specify multi-group cross section types to compute\n", - "mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'fission', 'nu-scatter matrix', 'chi']" + "mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'fission', 'nu-scatter matrix', 'chi', 'chi-delayed']" ] }, { @@ -578,7 +578,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": { "collapsed": true }, @@ -600,7 +600,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": { "collapsed": true }, @@ -619,7 +619,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": { "collapsed": true }, @@ -640,7 +640,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": { "collapsed": true }, @@ -660,7 +660,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -688,7 +688,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "metadata": { "collapsed": true }, @@ -700,7 +700,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -725,8 +725,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 47ef320ad517612376e181ec6a6bc42ca0db98ce\n", - " Date/Time: 2016-05-14 12:29:07\n", + " Git SHA1: d30d010aea2c1cba90c993a9c501be9d5d81921d\n", + " Date/Time: 2016-06-17 12:58:23\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -778,32 +778,32 @@ " 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", + " 25/1 0.97414 1.02442 +/- 0.00666\n", + " 26/1 1.04709 1.02584 +/- 0.00639\n", + " 27/1 1.05872 1.02777 +/- 0.00631\n", + " 28/1 1.03930 1.02841 +/- 0.00598\n", + " 29/1 1.01488 1.02770 +/- 0.00570\n", + " 30/1 1.04513 1.02857 +/- 0.00548\n", + " 31/1 0.99538 1.02699 +/- 0.00545\n", + " 32/1 1.00106 1.02581 +/- 0.00532\n", + " 33/1 0.99389 1.02442 +/- 0.00527\n", + " 34/1 0.99938 1.02338 +/- 0.00516\n", + " 35/1 1.02161 1.02331 +/- 0.00495\n", + " 36/1 1.04084 1.02398 +/- 0.00480\n", + " 37/1 0.98801 1.02265 +/- 0.00481\n", + " 38/1 1.01348 1.02232 +/- 0.00464\n", + " 39/1 1.06693 1.02386 +/- 0.00474\n", + " 40/1 1.07729 1.02564 +/- 0.00491\n", + " 41/1 1.03191 1.02585 +/- 0.00475\n", + " 42/1 1.05209 1.02667 +/- 0.00468\n", + " 43/1 1.02997 1.02677 +/- 0.00453\n", + " 44/1 1.07288 1.02812 +/- 0.00460\n", + " 45/1 1.01268 1.02768 +/- 0.00449\n", + " 46/1 1.03759 1.02796 +/- 0.00437\n", + " 47/1 1.02620 1.02791 +/- 0.00425\n", + " 48/1 1.02509 1.02783 +/- 0.00414\n", + " 49/1 1.01043 1.02739 +/- 0.00406\n", + " 50/1 1.01457 1.02707 +/- 0.00397\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -813,27 +813,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7700E-01 seconds\n", - " Reading cross sections = 1.3400E-01 seconds\n", - " Total time in simulation = 8.0461E+01 seconds\n", - " Time in transport only = 8.0422E+01 seconds\n", - " Time in inactive batches = 6.4060E+00 seconds\n", - " Time in active batches = 7.4055E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for initialization = 8.4000E-01 seconds\n", + " Reading cross sections = 2.5400E-01 seconds\n", + " Total time in simulation = 7.0993E+01 seconds\n", + " Time in transport only = 7.0952E+01 seconds\n", + " Time in inactive batches = 5.0170E+00 seconds\n", + " Time in active batches = 6.5976E+01 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", + " Sampling source sites = 1.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 = 0.0000E+00 seconds\n", - " Total time elapsed = 8.1067E+01 seconds\n", - " Calculation Rate (inactive) = 3902.59 neutrons/second\n", - " Calculation Rate (active) = 1350.35 neutrons/second\n", + " Total time elapsed = 7.1853E+01 seconds\n", + " Calculation Rate (inactive) = 4983.06 neutrons/second\n", + " Calculation Rate (active) = 1515.70 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\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", + " k-effective (Collision) = 1.02489 +/- 0.00308\n", + " k-effective (Track-length) = 1.02707 +/- 0.00397\n", + " k-effective (Absorption) = 1.02637 +/- 0.00325\n", + " Combined k-effective = 1.02581 +/- 0.00264\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -844,7 +844,7 @@ "0" ] }, - "execution_count": 26, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -870,7 +870,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -889,7 +889,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -924,7 +924,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 44, "metadata": { "collapsed": false }, @@ -944,19 +944,11 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n", - " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" - ] - }, { "data": { "text/html": [ @@ -978,16 +970,16 @@ " 10000\n", " 1\n", " U-235\n", - " 8.055246e-03\n", - " 2.857567e-05\n", + " 8.046809e-03\n", + " 2.697198e-05\n", " \n", " \n", " 4\n", " 10000\n", " 1\n", " U-238\n", - " 7.339215e-03\n", - " 4.349466e-05\n", + " 7.366624e-03\n", + " 4.255197e-05\n", " \n", " \n", " 5\n", @@ -1002,16 +994,16 @@ " 10000\n", " 2\n", " U-235\n", - " 3.615565e-01\n", - " 2.050486e-03\n", + " 3.614917e-01\n", + " 2.135233e-03\n", " \n", " \n", " 1\n", " 10000\n", " 2\n", " U-238\n", - " 6.742638e-07\n", - " 3.795256e-09\n", + " 6.741607e-07\n", + " 3.924924e-09\n", " \n", " \n", " 2\n", @@ -1027,15 +1019,15 @@ ], "text/plain": [ " 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", + "3 10000 1 U-235 8.046809e-03 2.697198e-05\n", + "4 10000 1 U-238 7.366624e-03 4.255197e-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", + "0 10000 2 U-235 3.614917e-01 2.135233e-03\n", + "1 10000 2 U-238 6.741607e-07 3.924924e-09\n", "2 10000 2 O-16 0.000000e+00 0.000000e+00" ] }, - "execution_count": 30, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -1054,7 +1046,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -1069,13 +1061,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 +/- 3.55e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t3.62e-01 +/- 5.67e-01%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t8.05e-03 +/- 3.35e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t3.61e-01 +/- 5.91e-01%\n", "\n", "\tNuclide =\tU-238\n", "\tCross Sections [cm^-1]:\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", + " Group 1 [6.25e-07 - 20.0 MeV]:\t7.37e-03 +/- 5.78e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t6.74e-07 +/- 5.82e-01%\n", "\n", "\tNuclide =\tO-16\n", "\tCross Sections [cm^-1]:\n", @@ -1100,7 +1092,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -1119,7 +1111,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "metadata": { "collapsed": true }, @@ -1131,7 +1123,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "metadata": { "collapsed": true }, @@ -1150,7 +1142,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "metadata": { "collapsed": true }, @@ -1165,7 +1157,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 41, "metadata": { "collapsed": false }, @@ -1191,16 +1183,16 @@ " 10000\n", " 1\n", " U-235\n", - " 0.074860\n", - " 0.000303\n", + " 0.074734\n", + " 0.000325\n", " \n", " \n", " 1\n", " 10000\n", " 1\n", " U-238\n", - " 0.005952\n", - " 0.000035\n", + " 0.005977\n", + " 0.000034\n", " \n", " \n", " 2\n", @@ -1216,12 +1208,12 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\n", - "0 10000 1 U-235 0.074860 0.000303\n", - "1 10000 1 U-238 0.005952 0.000035\n", + "0 10000 1 U-235 0.074734 0.000325\n", + "1 10000 1 U-238 0.005977 0.000034\n", "2 10000 1 O-16 0.000000 0.000000" ] }, - "execution_count": 36, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -1250,11 +1242,28 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'RectLattice' object has no attribute 'dimension'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Create an OpenMOC Geometry from the OpenCG Geometry\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mopenmoc_geometry\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_openmoc_geometry\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmgxs_lib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopencg_geometry\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/mgxs/library.pyc\u001b[0m in \u001b[0;36mopencg_geometry\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 161\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_opencg_geometry\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 162\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mopenmc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopencg_compatible\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mget_opencg_geometry\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 163\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_opencg_geometry\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_opencg_geometry\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_openmc_geometry\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 164\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_opencg_geometry\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/opencg_compatible.pyc\u001b[0m in \u001b[0;36mget_opencg_geometry\u001b[0;34m(openmc_geometry)\u001b[0m\n\u001b[1;32m 997\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 998\u001b[0m \u001b[0mopenmc_root_universe\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopenmc_geometry\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mroot_universe\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 999\u001b[0;31m \u001b[0mopencg_root_universe\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_opencg_universe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mopenmc_root_universe\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1000\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1001\u001b[0m \u001b[0mopencg_geometry\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopencg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGeometry\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/opencg_compatible.pyc\u001b[0m in \u001b[0;36mget_opencg_universe\u001b[0;34m(openmc_universe)\u001b[0m\n\u001b[1;32m 746\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 747\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcell_id\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopenmc_cell\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mopenmc_cells\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 748\u001b[0;31m \u001b[0mopencg_cell\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_opencg_cell\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mopenmc_cell\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 749\u001b[0m \u001b[0mopencg_universe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_cell\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mopencg_cell\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 750\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/opencg_compatible.pyc\u001b[0m in \u001b[0;36mget_opencg_cell\u001b[0;34m(openmc_cell)\u001b[0m\n\u001b[1;32m 454\u001b[0m \u001b[0mopencg_cell\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfill\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_opencg_universe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfill\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 455\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 456\u001b[0;31m \u001b[0mopencg_cell\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfill\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_opencg_lattice\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfill\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 457\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 458\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mopenmc_cell\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrotation\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/opencg_compatible.pyc\u001b[0m in \u001b[0;36mget_opencg_lattice\u001b[0;34m(openmc_lattice)\u001b[0m\n\u001b[1;32m 831\u001b[0m \u001b[0;31m# Create an OpenCG Lattice to represent this OpenMC Lattice\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 832\u001b[0m \u001b[0mname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopenmc_lattice\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 833\u001b[0;31m \u001b[0mdimension\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopenmc_lattice\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdimension\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 834\u001b[0m \u001b[0mpitch\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopenmc_lattice\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpitch\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 835\u001b[0m \u001b[0mlower_left\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopenmc_lattice\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlower_left\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mAttributeError\u001b[0m: 'RectLattice' object has no attribute 'dimension'" + ] + } + ], "source": [ "# Create an OpenMOC Geometry from the OpenCG Geometry\n", "openmoc_geometry = get_openmoc_geometry(mgxs_lib.opencg_geometry)" @@ -1269,11 +1278,23 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'openmoc_geometry' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Load the library into the OpenMOC geometry\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmaterials\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mload_openmc_mgxs_lib\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmgxs_lib\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopenmoc_geometry\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'openmoc_geometry' is not defined" + ] + } + ], "source": [ "# Load the library into the OpenMOC geometry\n", "materials = load_openmc_mgxs_lib(mgxs_lib, openmoc_geometry)" @@ -1596,21 +1617,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.1" + "pygments_lexer": "ipython2", + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index e5c80c1926..62a6a09da1 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -1439,21 +1439,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.1" + "pygments_lexer": "ipython2", + "version": "2.7.11" } }, "nbformat": 4, diff --git a/examples/xml/basic/materials.xml b/examples/xml/basic/materials.xml index 75ab74dbba..39fce5f278 100644 --- a/examples/xml/basic/materials.xml +++ b/examples/xml/basic/materials.xml @@ -12,7 +12,6 @@ - diff --git a/openmc/__init__.py b/openmc/__init__.py index 0bde0f5843..557e13039f 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -9,8 +9,8 @@ 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.mgxs_library import * from openmc.filter import * from openmc.trigger import * from openmc.tallies import * diff --git a/openmc/filter.py b/openmc/filter.py index 72fb3b14ed..4c742352d2 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -564,7 +564,7 @@ class Filter(object): # Initialize dictionary to build Pandas Multi-index column filter_dict = {} - # Append Mesh ID as outermost index of mult-index + # Append Mesh ID as outermost index of multi-index mesh_key = 'mesh {0}'.format(self.mesh.id) # Find mesh dimensions - use 3D indices for simplicity diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 9241892646..9c97942347 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -55,9 +55,10 @@ class Library(object): If true, computes cross sections for each nuclide in each domain mgxs_types : Iterable of str The types of cross sections in the library (e.g., ['total', 'scatter']) - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization - domains : Iterable of openmc.Material, openmc.Cell or openmc.Universe + domains : Iterable of openmc.Material, openmc.Cell, openmc.Universe, or + openmc.Mesh The spatial domain(s) for which MGXS in the Library are computed correction : {'P0', None} Apply the P0 correction to scattering matrices if set to 'P0' @@ -188,6 +189,10 @@ class Library(object): return self.openmc_geometry.get_all_material_cells() elif self.domain_type == 'universe': return self.openmc_geometry.get_all_universes() + # FIXME: Change to get tuples of all domain cells + elif self.domain_type == 'mesh': + raise ValueError('Unable to get all domains for a mesh domain ' + + 'type. The domains must be set to [openmc.Mesh]') else: raise ValueError('Unable to get domains without a domain type') else: @@ -253,11 +258,21 @@ class Library(object): @by_nuclide.setter def by_nuclide(self, by_nuclide): cv.check_type('by_nuclide', by_nuclide, bool) + + if by_nuclide == True and self.domain_type == 'mesh': + raise ValueError('Unable to create MGXS library by nuclide with ' + + 'mesh domain') + self._by_nuclide = by_nuclide @domain_type.setter def domain_type(self, domain_type): cv.check_value('domain type', domain_type, openmc.mgxs.DOMAIN_TYPES) + + if by_nuclide == True and domain_type == 'mesh': + raise ValueError('Unable to create MGXS library by nuclide with ' + + 'mesh domain') + self._domain_type = domain_type @domains.setter @@ -278,6 +293,9 @@ class Library(object): elif self.domain_type == 'universe': cv.check_iterable_type('domain', domains, openmc.Universe) all_domains = self.openmc_geometry.get_all_universes() + elif self.domain_type == 'mesh': + cv.check_iterable_type('domain', domains, openmc.Mesh) + all_domains = domains else: msg = 'Unable to set domains with ' \ 'domain type "{}"'.format(self.domain_type) @@ -458,9 +476,13 @@ class Library(object): Parameters ---------- - domain : Material or Cell or Universe or Integral - The material, cell, or universe object of interest (or its ID) - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi'} + domain : Material or Cell or Universe or Mesh or Integral + The material, cell, universe, or mesh object of interest (or its ID) + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', + 'capture', 'fission', 'nu-fission', 'kappa-fission', + 'scatter', 'nu-scatter', 'scatter matrix', + 'nu-scatter matrix', 'multiplicity matrix', + 'nu-fission matrix', chi'} The type of multi-group cross section object to return Returns @@ -482,6 +504,8 @@ class Library(object): cv.check_type('domain', domain, (openmc.Cell, Integral)) elif self.domain_type == 'universe': cv.check_type('domain', domain, (openmc.Universe, Integral)) + elif self.domain_type == 'mesh': + cv.check_type('domain', domain, (openmc.Mesh, Integral)) # Check that requested domain is included in library if isinstance(domain, Integral): @@ -761,7 +785,7 @@ class Library(object): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization xsdata_name : str Name to apply to the "xsdata" entry produced by this method @@ -809,7 +833,7 @@ class Library(object): """ cv.check_type('domain', domain, (openmc.Material, openmc.Cell, - openmc.Cell)) + openmc.Cell, openmc.Mesh)) cv.check_type('xsdata_name', xsdata_name, basestring) cv.check_type('nuclide', nuclide, basestring) cv.check_value('xs_type', xs_type, ['macro', 'micro']) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 088db649fa..fd6d0ee494 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -13,6 +13,7 @@ import numpy as np import openmc import openmc.checkvalue as cv from openmc.mgxs import EnergyGroups +from openmc import Mesh if sys.version_info[0] >= 3: @@ -34,7 +35,10 @@ MGXS_TYPES = ['total', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', - 'chi'] + 'chi', + 'chi-delayed', + 'chi-prompt', + 'velocity'] # Supported domain types @@ -42,13 +46,15 @@ MGXS_TYPES = ['total', DOMAIN_TYPES = ['cell', 'distribcell', 'universe', - 'material'] + 'material', + 'mesh'] # Supported domain classes # TODO: Implement Mesh domains _DOMAINS = (openmc.Cell, openmc.Universe, - openmc.Material) + openmc.Material, + openmc.Mesh) class MGXS(object): @@ -63,9 +69,9 @@ class MGXS(object): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -83,9 +89,9 @@ class MGXS(object): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -111,10 +117,11 @@ class MGXS(object): Derived tally for the multi-group cross section. This attribute is None unless the multi-group cross section has been computed. 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). + The number of subdomains is unity for 'material', 'cell', and 'universe' + domain types. 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) and the number of mesh cells for + 'mesh' domain types. 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. @@ -260,6 +267,9 @@ class MGXS(object): # Create a domain Filter object domain_filter = openmc.Filter(self.domain_type, self.domain.id) + if self.domain_type == 'mesh': + domain_filter.mesh = self.domain + # Create each Tally needed to compute the multi group cross section tally_metadata = zip(self.scores, self.tally_keys, self.filters) for score, key, filters in tally_metadata: @@ -375,6 +385,8 @@ class MGXS(object): self._domain_type = 'cell' elif isinstance(domain, openmc.Universe): self._domain_type = 'universe' + elif isinstance(domain, openmc.Mesh): + self._domain_type = 'mesh' @domain_type.setter def domain_type(self, domain_type): @@ -427,11 +439,14 @@ class MGXS(object): Parameters ---------- - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', + 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', + 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', + 'multiplicity matrix', 'nu-fission matrix', chi'} The type of multi-group cross section object to return - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -482,6 +497,12 @@ class MGXS(object): mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'chi': mgxs = Chi(domain, domain_type, energy_groups) + elif mgxs_type == 'chi-prompt': + mgxs = ChiPrompt(domain, domain_type, energy_groups) + elif mgxs_type == 'chi-delayed': + mgxs = ChiDelayed(domain, domain_type, energy_groups) + elif mgxs_type == 'velocity': + mgxs = Velocity(domain, domain_type, energy_groups) mgxs.by_nuclide = by_nuclide mgxs.name = name @@ -666,6 +687,8 @@ class MGXS(object): self.domain = statepoint.summary.get_universe_by_id(self.domain.id) elif self.domain_type == 'material': self.domain = statepoint.summary.get_material_by_id(self.domain.id) + elif self.domain_type == 'mesh': + self.domain = statepoint.meshes[self.domain.id] else: msg = 'Unable to load data from a statepoint for domain type {0} ' \ 'which is not yet supported'.format(self.domain_type) @@ -673,7 +696,23 @@ class MGXS(object): # Use tally "slicing" to ensure that tallies correspond to our domain # NOTE: This is important if tally merging was used - if self.domain_type != 'distribcell': + if self.domain_type == 'mesh': + filters = [self.domain_type] + bins = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + bins.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + bins.append((x, y, 1)) + + filter_bins = [tuple(bins)] + elif self.domain_type != 'distribcell': filters = [self.domain_type] filter_bins = [(self.domain.id,)] # Distribcell filters only accept single cell - neglect it when slicing @@ -752,10 +791,13 @@ class MGXS(object): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) - filter_bins.append((subdomain,)) + if self.domain_type == 'mesh': + filter_bins.append(subdomain) + else: + filter_bins.append((subdomain,)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(groups, basestring): @@ -1125,6 +1167,20 @@ 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 == 'mesh': + subdomains_list = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains_list.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains_list.append((x, y, 1)) + subdomains = [tuple(subdomains_list)] else: subdomains = [self.domain.id] @@ -1261,6 +1317,21 @@ class MGXS(object): elif self.domain_type == 'avg(distribcell)': domain_filter = self.xs_tally.find_filter('avg(distribcell)') subdomains = domain_filter.bins + elif self.domain_type == 'mesh': + bins = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + bins.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + bins.append((x, y, 1)) + + subdomains = [tuple(bins)] else: subdomains = [self.domain.id] @@ -1366,8 +1437,8 @@ class MGXS(object): df = self.get_pandas_dataframe(groups=groups, xs_type=xs_type) # Capitalize column label strings - df.columns = df.columns.astype(str) - df.columns = map(str.title, df.columns) + #df.columns = df.columns.astype(str) + #df.columns = map(str.title, df.columns) # Export the data using Pandas IO API if format == 'csv': @@ -1468,7 +1539,10 @@ class MGXS(object): distribcell_paths=distribcell_paths) # Remove the score column since it is homogeneous and redundant - df = df.drop('score', axis=1) + if self.domain_type == 'mesh': + df = df.drop('score', axis=1, level=0) + else: + df = df.drop('score', axis=1) # Override energy groups bounds with indices all_groups = np.arange(self.num_groups, 0, -1, dtype=np.int) @@ -1523,7 +1597,12 @@ 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_values(by=[self.domain_type] + columns, inplace=True) + if self.domain_type == 'mesh': + mesh_str = 'mesh {0}'.format(self.domain.id) + df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), \ + (mesh_str, 'z')] + columns, inplace=True) + else: + df.sort_values(by=[self.domain_type] + columns, inplace=True) return df @@ -1542,9 +1621,9 @@ class MatrixMGXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -1562,9 +1641,9 @@ class MatrixMGXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -1591,9 +1670,10 @@ class MatrixMGXS(MGXS): is None unless the multi-group cross section has been computed. 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). + domain types. 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) and the number of mesh cells for + 'mesh' domain types. 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. @@ -1693,7 +1773,10 @@ class MatrixMGXS(MGXS): max_depth=2) for subdomain in subdomains: filters.append(self.domain_type) - filter_bins.append((subdomain,)) + if self.domain_type == 'mesh': + filter_bins.append(subdomain) + else: + filter_bins.append((subdomain,)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(in_groups, basestring): @@ -1852,6 +1935,19 @@ class MatrixMGXS(MGXS): 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 == 'mesh': + subdomains = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains.append((x, y, 1)) else: subdomains = [self.domain.id] @@ -1934,7 +2030,7 @@ class MatrixMGXS(MGXS): class TotalXS(MGXS): - r"""A total multi-group cross section. + """A total multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -1961,9 +2057,9 @@ class TotalXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -1981,9 +2077,9 @@ class TotalXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2043,7 +2139,7 @@ class TotalXS(MGXS): class TransportXS(MGXS): - r"""A transport-corrected total multi-group cross section. + """A transport-corrected total multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2079,9 +2175,9 @@ class TransportXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2099,9 +2195,9 @@ class TransportXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2186,7 +2282,7 @@ class TransportXS(MGXS): class NuTransportXS(TransportXS): - r"""A transport-corrected total multi-group cross section which + """A transport-corrected total multi-group cross section which accounts for neutron multiplicity in scattering reactions. This class can be used for both OpenMC input generation and tally data @@ -2209,9 +2305,9 @@ class NuTransportXS(TransportXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2229,9 +2325,9 @@ class NuTransportXS(TransportXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2299,7 +2395,7 @@ class NuTransportXS(TransportXS): class AbsorptionXS(MGXS): - r"""An absorption multi-group cross section. + """An absorption multi-group cross section. Absorption is defined as all reactions that do not produce secondary neutrons (disappearance) plus fission reactions. @@ -2330,9 +2426,9 @@ class AbsorptionXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2350,9 +2446,9 @@ class AbsorptionXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2381,9 +2477,10 @@ class AbsorptionXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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). + tally data from a statepoint file) and the number of mesh cells for + 'mesh' domain types. 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. @@ -2412,7 +2509,7 @@ class AbsorptionXS(MGXS): class CaptureXS(MGXS): - r"""A capture multi-group cross section. + """A capture multi-group cross section. The neutron capture reaction rate is defined as the difference between OpenMC's 'absorption' and 'fission' reaction rate score types. This includes @@ -2446,9 +2543,9 @@ class CaptureXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2466,9 +2563,9 @@ class CaptureXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2568,9 +2665,9 @@ class FissionXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2588,9 +2685,9 @@ class FissionXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2650,7 +2747,7 @@ class FissionXS(MGXS): class NuFissionXS(MGXS): - r"""A fission neutron production multi-group cross section. + """A fission neutron production multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2679,9 +2776,9 @@ class NuFissionXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2699,9 +2796,9 @@ class NuFissionXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2761,7 +2858,7 @@ class NuFissionXS(MGXS): class KappaFissionXS(MGXS): - r"""A recoverable fission energy production rate multi-group cross section. + """A recoverable fission energy production rate multi-group cross section. The recoverable energy per fission, :math:`\kappa`, is defined as the fission product kinetic energy, prompt and delayed neutron kinetic energies, @@ -2795,9 +2892,9 @@ class KappaFissionXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2815,9 +2912,9 @@ class KappaFissionXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2877,7 +2974,7 @@ class KappaFissionXS(MGXS): class ScatterXS(MGXS): - r"""A scattering multi-group cross section. + """A scattering multi-group cross section. The scattering cross section is defined as the difference between the total and absorption cross sections. @@ -2908,9 +3005,9 @@ class ScatterXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2928,9 +3025,9 @@ class ScatterXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2990,7 +3087,7 @@ class ScatterXS(MGXS): class NuScatterXS(MGXS): - r"""A scattering neutron production multi-group cross section. + """A scattering neutron production multi-group cross section. The neutron production from scattering is defined as the average number of neutrons produced from all neutron-producing reactions except for fission. @@ -3023,9 +3120,9 @@ class NuScatterXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -3043,9 +3140,9 @@ class NuScatterXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -3109,7 +3206,7 @@ class NuScatterXS(MGXS): class ScatterMatrixXS(MatrixMGXS): - r"""A scattering matrix multi-group cross section for one or more Legendre + """A scattering matrix multi-group cross section for one or more Legendre moments. This class can be used for both OpenMC input generation and tally data @@ -3153,9 +3250,9 @@ class ScatterMatrixXS(MatrixMGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -3177,9 +3274,9 @@ class ScatterMatrixXS(MatrixMGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -3443,7 +3540,7 @@ class ScatterMatrixXS(MatrixMGXS): subdomains='all', nuclides='all', moment='all', xs_type='macro', order_groups='increasing', row_column='inout', value='mean', **kwargs): - r"""Returns an array of multi-group cross sections. + """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested scattering matrix data data for one or more energy groups and subdomains. @@ -3508,7 +3605,10 @@ class ScatterMatrixXS(MatrixMGXS): cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) for subdomain in subdomains: filters.append(self.domain_type) - filter_bins.append((subdomain,)) + if self.domain_type == 'mesh': + filter_bins.append(subdomain) + else: + filter_bins.append((subdomain,)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(in_groups, basestring): @@ -3692,6 +3792,19 @@ class ScatterMatrixXS(MatrixMGXS): 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 == 'mesh': + subdomains = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains.append((x, y, 1)) else: subdomains = [self.domain.id] @@ -4075,9 +4188,9 @@ class NuFissionMatrixXS(MatrixMGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -4095,9 +4208,9 @@ class NuFissionMatrixXS(MatrixMGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -4158,7 +4271,7 @@ class NuFissionMatrixXS(MatrixMGXS): class Chi(MGXS): - r"""The fission spectrum. + """The fission spectrum. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -4190,9 +4303,9 @@ class Chi(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -4210,9 +4323,9 @@ class Chi(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -4477,7 +4590,10 @@ class Chi(MGXS): cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) for subdomain in subdomains: filters.append(self.domain_type) - filter_bins.append((subdomain,)) + if self.domain_type == 'mesh': + filter_bins.append(subdomain) + else: + filter_bins.append((subdomain,)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(groups, basestring): @@ -4614,3 +4730,396 @@ class Chi(MGXS): df['std. dev.'] *= np.tile(densities, tile_factor) return df + + +class ChiDelayed(Chi): + """The delayed fission spectrum. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`ChiDelayed.energy_groups` and + :attr:`ChiDelayed.domain` properties. Tallies for the flux and appropriate reaction + rates over the specified domain are generated automatically via the + :attr:`ChiDelayed.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`Chi.xs_tally` property. + + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + fission spectrum is calculated as: + + .. math:: + + \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in V} dr + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) + \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \nu\sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, + E') \psi(r, E', \Omega') \\ + \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle + \nu\sigma_f \phi \rangle} + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`Chi.tally_keys` property and values are + instances of :class:`openmc.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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(ChiDelayed, self).__init__(domain, domain_type, groups, by_nuclide, name) + self._rxn_type = 'chi-delayed' + + @property + def scores(self): + return ['delayed-nu-fission', 'delayed-nu-fission'] + + @property + def tally_keys(self): + return ['delayed-nu-fission-in', 'delayed-nu-fission-out'] + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['delayed-nu-fission-out'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + @property + def xs_tally(self): + + if self._xs_tally is None: + nu_fission_in = self.tallies['delayed-nu-fission-in'] + + # Remove coarse energy filter to keep it out of tally arithmetic + energy_filter = nu_fission_in.find_filter('energy') + nu_fission_in.remove_filter(energy_filter) + + # Compute chi + self._xs_tally = self.rxn_rate_tally / nu_fission_in + super(ChiDelayed, self)._compute_xs() + + # Add the coarse energy filter back to the nu-fission tally + nu_fission_in.filters.append(energy_filter) + + return self._xs_tally + + def get_slice(self, nuclides=[], 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 + 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 + ------- + openmc.mgxs.MGXS + A new MGXS 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['delayed-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['delayed-nu-fission-out'] + tally_slice = nu_fission_out.get_slice(filters=['energyout'], + filter_bins=filter_bins) + slice_xs._tallies['delayed-nu-fission-out'] = tally_slice + + # Add energy filter back to nu-fission-in tallies + self.tallies['delayed-nu-fission-in'].add_filter(energy_filter) + slice_xs._tallies['delayed-nu-fission-in'].add_filter(energy_filter) + + 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 : openmc.mgxs.MGXS + MGXS to merge with this one + + Returns + ------- + merged_mgxs : openmc.mgxs.MGXS + Merged MGXS + """ + + if not self.can_merge(other): + raise ValueError('Unable to merge ChiDelayed') + + # 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 Delayed 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', **kwargs): + """Returns an array of the fission spectrum. + + This method constructs a 2D NumPy array for the requested multi-group + cross section data data for one or more energy groups and subdomains. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + This parameter is not relevant for chi but is included here to + mirror the parent MGXS.get_xs(...) class method + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. + + Returns + ------- + 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. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + for subdomain in subdomains: + filters.append(self.domain_type) + if self.domain_type == 'mesh': + filter_bins.append(subdomain) + else: + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(groups, basestring): + cv.check_iterable_type('groups', groups, Integral) + for group in groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # If chi was computed for each nuclide in the domain + if self.by_nuclide: + + # Get the sum as the fission source weighted average chi for all + # nuclides in the domain + if nuclides == 'sum' or nuclides == ['sum']: + + # Retrieve the fission production tallies + nu_fission_in = self.tallies['delayed-nu-fission-in'] + nu_fission_out = self.tallies['delayed-nu-fission-out'] + + # Sum out all nuclides + nuclides = self.get_all_nuclides() + nu_fission_in = nu_fission_in.summation(nuclides=nuclides) + nu_fission_out = nu_fission_out.summation(nuclides=nuclides) + + # Remove coarse energy filter to keep it out of tally arithmetic + energy_filter = nu_fission_in.find_filter('energy') + nu_fission_in.remove_filter(energy_filter) + + # Compute chi and store it as the xs_tally attribute so we can + # use the generic get_xs(...) method + xs_tally = nu_fission_out / nu_fission_in + + # Add the coarse energy filter back to the nu-fission tally + nu_fission_in.filters.append(energy_filter) + + xs = xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Get chi for all nuclides in the domain + elif nuclides == 'all': + nuclides = self.get_all_nuclides() + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # Get chi for user-specified nuclides in the domain + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # If chi was computed as an average of nuclides in the domain + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + + # Reshape tally data array with separate axes for domain and energy + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + num_subdomains = int(xs.shape[0] / num_groups) + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_1d(xs) + + xs = np.nan_to_num(xs) + return xs From 40b05fe94e16731703ca758a55953d62f353fc7a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 29 Jun 2016 10:17:31 +0700 Subject: [PATCH 091/417] Ensure source bank is resampled at each generation for fixed source --- docs/source/usersguide/input.rst | 2 +- src/particle_restart.F90 | 7 ++++++- src/simulation.F90 | 10 +++++++++- tests/test_fixed_source/results_true.dat | 8 ++++---- tests/test_particle_restart_fixed/results_true.dat | 10 +++++----- .../test_particle_restart_fixed.py | 2 +- 6 files changed, 26 insertions(+), 13 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 4c1f238238..d6802075e5 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -688,7 +688,7 @@ attributes/sub-elements: *Default*: false - :source_write: + :write: If this element is set to "false", source sites are not written to the state point or source point file. This can substantially reduce the size of state points if large numbers of particles per batch are used. diff --git a/src/particle_restart.F90 b/src/particle_restart.F90 index e5cca17bf8..846d37160d 100644 --- a/src/particle_restart.F90 +++ b/src/particle_restart.F90 @@ -97,10 +97,15 @@ contains call read_dataset(p % id, file_id, 'id') call read_dataset(p % wgt, file_id, 'weight') call read_dataset(p % E, file_id, 'energy') - call read_dataset(p % g, file_id, 'energy_group') call read_dataset(p % coord(1) % xyz, file_id, 'xyz') call read_dataset(p % coord(1) % uvw, file_id, 'uvw') + ! Set energy group and average energy in multi-group mode + if (.not. run_CE) then + p % g = int(p % E) + p % E = energy_bin_avg(p % g) + end if + ! Set particle last attributes p % last_wgt = p % wgt p % last_xyz = p % coord(1)%xyz diff --git a/src/simulation.F90 b/src/simulation.F90 index b762979d73..2e15e7c07a 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -17,7 +17,7 @@ module simulation print_batch_keff, print_generation use particle_header, only: Particle use random_lcg, only: set_particle_seed - use source, only: initialize_source + use source, only: initialize_source, sample_external_source use state_point, only: write_state_point, write_source_point use string, only: to_str use tally, only: synchronize_tallies, setup_active_usertallies, & @@ -227,6 +227,8 @@ contains subroutine finalize_generation() + integer(8) :: i + ! Update global tallies with the omp private accumulation variables !$omp parallel !$omp critical @@ -271,6 +273,12 @@ contains ! Write generation output if (master .and. current_gen /= gen_per_batch) call print_generation() + elseif (run_mode == MODE_FIXEDSOURCE) then + ! For fixed-source mode, we need to sample the external source + call set_particle_seed(overall_gen*n_particles) + do i = 1, work + call sample_external_source(source_bank(i)) + end do end if end subroutine finalize_generation diff --git a/tests/test_fixed_source/results_true.dat b/tests/test_fixed_source/results_true.dat index c7ddf3c0b5..eece8dc1c2 100644 --- a/tests/test_fixed_source/results_true.dat +++ b/tests/test_fixed_source/results_true.dat @@ -1,6 +1,6 @@ tally 1: -4.518784E+02 -2.056386E+04 +4.460676E+02 +1.993197E+04 leakage: -9.750000E+00 -9.508100E+00 +9.660000E+00 +9.335800E+00 diff --git a/tests/test_particle_restart_fixed/results_true.dat b/tests/test_particle_restart_fixed/results_true.dat index de42a0c68e..9cc800cf67 100644 --- a/tests/test_particle_restart_fixed/results_true.dat +++ b/tests/test_particle_restart_fixed/results_true.dat @@ -1,16 +1,16 @@ current batch: -7.000000E+00 +9.000000E+00 current gen: 1.000000E+00 particle id: -9.280000E+02 +5.900000E+02 run mode: fixed source particle weight: 1.000000E+00 particle energy: -4.412022E+00 +5.284635E+00 particle xyz: -5.572639E+00 -9.139472E+00 -1.974824E+00 +4.995064E+00 7.895146E+00 1.198717E+00 particle uvw: -1.410422E-01 5.330426E-01 -8.342498E-01 +7.594252E-01 3.731736E-01 -5.329305E-01 diff --git a/tests/test_particle_restart_fixed/test_particle_restart_fixed.py b/tests/test_particle_restart_fixed/test_particle_restart_fixed.py index 5af7454894..fcd377f13b 100644 --- a/tests/test_particle_restart_fixed/test_particle_restart_fixed.py +++ b/tests/test_particle_restart_fixed/test_particle_restart_fixed.py @@ -7,5 +7,5 @@ from testing_harness import ParticleRestartTestHarness if __name__ == '__main__': - harness = ParticleRestartTestHarness('particle_7_928.*') + harness = ParticleRestartTestHarness('particle_9_590.h5') harness.main() From 70daa76e0e9d0bd8163e5c9d306788dbd7cf30c6 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 29 Jun 2016 18:33:59 +0700 Subject: [PATCH 092/417] Make sure MT=3 cross section is not used --- src/ace.F90 | 2 +- src/constants.F90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index cbe14b6ae8..170c885f02 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -913,7 +913,7 @@ contains ! Skip total inelastic level scattering, gas production cross sections ! (MT=200+), etc. - if (rxn % MT == N_LEVEL) cycle + if (rxn % MT == N_LEVEL .or. rxn % MT == N_NONELASTIC) cycle if (rxn % MT > N_5N2P .and. rxn % MT < N_P0) cycle ! Skip level cross sections if total is available diff --git a/src/constants.F90 b/src/constants.F90 index f6e82d9bdc..75c047e8d6 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -207,7 +207,7 @@ module constants N_4N2P = 194, N_4N2A = 195, N_4NPA = 196, N_3P = 197, N_N3P = 198, & N_3N2PA = 199, N_5N2P = 200, N_P0 = 600, N_PC = 649, N_D0 = 650, & N_DC = 699, N_T0 = 700, N_TC = 749, N_3HE0 = 750, N_3HEC = 799, & - N_A0 = 800, N_AC = 849, N_2N0 = 875, N_2NC = 891 + N_A0 = 800, N_AC = 849, N_2N0 = 875, N_2NC = 891, N_NONELASTIC = 3 ! ACE table types integer, parameter :: & From 348eb44b6fb63fd4f1b1bfa9d859aee041459ec2 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 29 Jun 2016 18:51:26 +0700 Subject: [PATCH 093/417] Make sure fixed source resample is reproducible for MPI runs --- src/simulation.F90 | 2 +- tests/test_fixed_source/results_true.dat | 8 ++++---- tests/test_particle_restart_fixed/results_true.dat | 10 +++++----- .../test_particle_restart_fixed.py | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/simulation.F90 b/src/simulation.F90 index 2e15e7c07a..3321dc70fa 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -275,8 +275,8 @@ contains if (master .and. current_gen /= gen_per_batch) call print_generation() elseif (run_mode == MODE_FIXEDSOURCE) then ! For fixed-source mode, we need to sample the external source - call set_particle_seed(overall_gen*n_particles) do i = 1, work + call set_particle_seed(overall_gen*n_particles + work_index(rank) + i) call sample_external_source(source_bank(i)) end do end if diff --git a/tests/test_fixed_source/results_true.dat b/tests/test_fixed_source/results_true.dat index eece8dc1c2..6246dfaf62 100644 --- a/tests/test_fixed_source/results_true.dat +++ b/tests/test_fixed_source/results_true.dat @@ -1,6 +1,6 @@ tally 1: -4.460676E+02 -1.993197E+04 +4.448476E+02 +1.984373E+04 leakage: -9.660000E+00 -9.335800E+00 +9.790000E+00 +9.588300E+00 diff --git a/tests/test_particle_restart_fixed/results_true.dat b/tests/test_particle_restart_fixed/results_true.dat index 9cc800cf67..047760a2d5 100644 --- a/tests/test_particle_restart_fixed/results_true.dat +++ b/tests/test_particle_restart_fixed/results_true.dat @@ -1,16 +1,16 @@ current batch: -9.000000E+00 +7.000000E+00 current gen: 1.000000E+00 particle id: -5.900000E+02 +1.440000E+02 run mode: fixed source particle weight: 1.000000E+00 particle energy: -5.284635E+00 +5.749729E+00 particle xyz: -4.995064E+00 7.895146E+00 1.198717E+00 +8.754675E+00 2.551620E+00 4.394350E-01 particle uvw: -7.594252E-01 3.731736E-01 -5.329305E-01 +-5.971721E-01 -4.845709E-01 6.391999E-01 diff --git a/tests/test_particle_restart_fixed/test_particle_restart_fixed.py b/tests/test_particle_restart_fixed/test_particle_restart_fixed.py index fcd377f13b..df0398c6eb 100644 --- a/tests/test_particle_restart_fixed/test_particle_restart_fixed.py +++ b/tests/test_particle_restart_fixed/test_particle_restart_fixed.py @@ -7,5 +7,5 @@ from testing_harness import ParticleRestartTestHarness if __name__ == '__main__': - harness = ParticleRestartTestHarness('particle_9_590.h5') + harness = ParticleRestartTestHarness('particle_7_144.h5') harness.main() From 49889f7128243e7b6a7f093e633078a046727e4b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 29 Jun 2016 20:48:53 +0700 Subject: [PATCH 094/417] @smharper calling me out on my laziness --- src/constants.F90 | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/constants.F90 b/src/constants.F90 index 75c047e8d6..b3e5ed89b1 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -186,28 +186,28 @@ module constants ! Reaction types integer, parameter :: & - TOTAL_XS = 1, ELASTIC = 2, N_LEVEL = 4, MISC = 5, N_2ND = 11, & - N_2N = 16, N_3N = 17, N_FISSION = 18, N_F = 19, N_NF = 20, & - N_2NF = 21, N_NA = 22, N_N3A = 23, N_2NA = 24, N_3NA = 25, & - N_NP = 28, N_N2A = 29, N_2N2A = 30, N_ND = 32, N_NT = 33, & - N_N3HE = 34, N_ND2A = 35, N_NT2A = 36, N_4N = 37, N_3NF = 38, & - N_2NP = 41, N_3NP = 42, N_N2P = 44, N_NPA = 45, N_N1 = 51, & - N_N40 = 90, N_NC = 91, N_DISAPPEAR = 101, N_GAMMA = 102, N_P = 103, & - N_D = 104, N_T = 105, N_3HE = 106, N_A = 107, N_2A = 108, & - N_3A = 109, N_2P = 111, N_PA = 112, N_T2A = 113, N_D2A = 114, & - N_PD = 115, N_PT = 116, N_DA = 117, N_5N = 152, N_6N = 153, & - N_2NT = 154, N_TA = 155, N_4NP = 156, N_3ND = 157, N_NDA = 158, & - N_2NPA = 159, N_7N = 160, N_8N = 161, N_5NP = 162, N_6NP = 163, & - N_7NP = 164, N_4NA = 165, N_5NA = 166, N_6NA = 167, N_7NA = 168, & - N_4ND = 169, N_5ND = 170, N_6ND = 171, N_3NT = 172, N_4NT = 173, & - N_5NT = 174, N_6NT = 175, N_2N3HE = 176, N_3N3HE = 177, N_4N3HE = 178, & - N_3N2P = 179, N_3N3A = 180, N_3NPA = 181, N_DT = 182, N_NPD = 183, & - N_NPT = 184, N_NDT = 185, N_NP3HE = 186, N_ND3HE = 187, N_NT3HE = 188, & - N_NTA = 189, N_2N2P = 190, N_P3HE = 191, N_D3HE = 192, N_3HEA = 193, & - N_4N2P = 194, N_4N2A = 195, N_4NPA = 196, N_3P = 197, N_N3P = 198, & - N_3N2PA = 199, N_5N2P = 200, N_P0 = 600, N_PC = 649, N_D0 = 650, & - N_DC = 699, N_T0 = 700, N_TC = 749, N_3HE0 = 750, N_3HEC = 799, & - N_A0 = 800, N_AC = 849, N_2N0 = 875, N_2NC = 891, N_NONELASTIC = 3 + TOTAL_XS = 1, ELASTIC = 2, N_NONELASTIC = 3, N_LEVEL = 4, MISC = 5, & + N_2ND = 11, N_2N = 16, N_3N = 17, N_FISSION = 18, N_F = 19, & + N_NF = 20, N_2NF = 21, N_NA = 22, N_N3A = 23, N_2NA = 24, & + N_3NA = 25, N_NP = 28, N_N2A = 29, N_2N2A = 30, N_ND = 32, & + N_NT = 33, N_N3HE = 34, N_ND2A = 35, N_NT2A = 36, N_4N = 37, & + N_3NF = 38, N_2NP = 41, N_3NP = 42, N_N2P = 44, N_NPA = 45, & + N_N1 = 51, N_N40 = 90, N_NC = 91, N_DISAPPEAR = 101, N_GAMMA = 102, & + N_P = 103, N_D = 104, N_T = 105, N_3HE = 106, N_A = 107, & + N_2A = 108, N_3A = 109, N_2P = 111, N_PA = 112, N_T2A = 113, & + N_D2A = 114, N_PD = 115, N_PT = 116, N_DA = 117, N_5N = 152, & + N_6N = 153, N_2NT = 154, N_TA = 155, N_4NP = 156, N_3ND = 157, & + N_NDA = 158, N_2NPA = 159, N_7N = 160, N_8N = 161, N_5NP = 162, & + N_6NP = 163, N_7NP = 164, N_4NA = 165, N_5NA = 166, N_6NA = 167, & + N_7NA = 168, N_4ND = 169, N_5ND = 170, N_6ND = 171, N_3NT = 172, & + N_4NT = 173, N_5NT = 174, N_6NT = 175, N_2N3HE = 176, N_3N3HE = 177, & + N_4N3HE = 178, N_3N2P = 179, N_3N3A = 180, N_3NPA = 181, N_DT = 182, & + N_NPD = 183, N_NPT = 184, N_NDT = 185, N_NP3HE = 186, N_ND3HE = 187, & + N_NT3HE = 188, N_NTA = 189, N_2N2P = 190, N_P3HE = 191, N_D3HE = 192, & + N_3HEA = 193, N_4N2P = 194, N_4N2A = 195, N_4NPA = 196, N_3P = 197, & + N_N3P = 198, N_3N2PA = 199, N_5N2P = 200, N_P0 = 600, N_PC = 649, & + N_D0 = 650, N_DC = 699, N_T0 = 700, N_TC = 749, N_3HE0 = 750, & + N_3HEC = 799, N_A0 = 800, N_AC = 849, N_2N0 = 875, N_2NC = 891 ! ACE table types integer, parameter :: & From 4c2585660b5a2c5cc806414fe37cb7020543c5d9 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Tue, 28 Jun 2016 15:29:41 -0500 Subject: [PATCH 095/417] Implement new tally filter loop --- src/global.F90 | 5 +- src/mesh.F90 | 112 +++--- src/tally.F90 | 778 +++++++++++++++++---------------------- src/tally_filter.F90 | 167 ++++++++- src/tally_initialize.F90 | 1 + 5 files changed, 564 insertions(+), 499 deletions(-) diff --git a/src/global.F90 b/src/global.F90 index 357887199e..24a6726375 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -141,6 +141,7 @@ module global type(RegularMesh), allocatable, target :: meshes(:) type(TallyObject), allocatable, target :: tallies(:) integer, allocatable :: matching_bins(:) + real(8), allocatable :: filter_weights(:) ! Pointers for different tallies type(TallyObject), pointer :: user_tallies(:) => null() @@ -447,7 +448,8 @@ module global type(Nuclide0K), allocatable, target :: nuclides_0K(:) ! 0K nuclides info !$omp threadprivate(micro_xs, material_xs, fission_bank, n_bank, & -!$omp& trace, thread_id, current_work, matching_bins) +!$omp& trace, thread_id, current_work, matching_bins, & +!$omp& filter_weights) contains @@ -514,6 +516,7 @@ contains if (allocated(meshes)) deallocate(meshes) if (allocated(tallies)) deallocate(tallies) if (allocated(matching_bins)) deallocate(matching_bins) + if (allocated(filter_weights)) deallocate(filter_weights) if (allocated(tally_maps)) deallocate(tally_maps) ! Deallocate fission and source bank and entropy diff --git a/src/mesh.F90 b/src/mesh.F90 index 4ec84345ba..333062d78f 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -290,34 +290,42 @@ contains ! Check if line intersects left surface -- calculate the intersection point ! y - yi = y0 + (xm0 - x0) * (y1 - y0) / (x1 - x0) - if (yi >= ym0 .and. yi < ym1) then - intersects = .true. - return + if ( (x0 < xm0 .and. x1 > xm0) .or. (x0 > xm0 .and. x1 < xm0) ) then + yi = y0 + (xm0 - x0) * (y1 - y0) / (x1 - x0) + if (yi >= ym0 .and. yi < ym1) then + intersects = .true. + return + end if end if ! Check if line intersects back surface -- calculate the intersection point ! x - xi = x0 + (ym0 - y0) * (x1 - x0) / (y1 - y0) - if (xi >= xm0 .and. xi < xm1) then - intersects = .true. - return + if ( (y0 < ym0 .and. y1 > ym0) .or. (y0 > ym0 .and. y1 < ym0) ) then + xi = x0 + (ym0 - y0) * (x1 - x0) / (y1 - y0) + if (xi >= xm0 .and. xi < xm1) then + intersects = .true. + return + end if end if ! Check if line intersects right surface -- calculate the intersection ! point y - yi = y0 + (xm1 - x0) * (y1 - y0) / (x1 - x0) - if (yi >= ym0 .and. yi < ym1) then - intersects = .true. - return + if ( (x0 < xm1 .and. x1 > xm1) .or. (x0 > xm1 .and. x1 < xm1) ) then + yi = y0 + (xm1 - x0) * (y1 - y0) / (x1 - x0) + if (yi >= ym0 .and. yi < ym1) then + intersects = .true. + return + end if end if ! Check if line intersects front surface -- calculate the intersection point ! x - xi = x0 + (ym1 - y0) * (x1 - x0) / (y1 - y0) - if (xi >= xm0 .and. xi < xm1) then - intersects = .true. - return + if ( (y0 < ym1 .and. y1 > ym1) .or. (y0 > ym1 .and. y1 < ym1) ) then + xi = x0 + (ym1 - y0) * (x1 - x0) / (y1 - y0) + if (xi >= xm0 .and. xi < xm1) then + intersects = .true. + return + end if end if end function mesh_intersects_2d @@ -359,56 +367,68 @@ contains ! Check if line intersects left surface -- calculate the intersection point ! (y,z) - yi = y0 + (xm0 - x0) * (y1 - y0) / (x1 - x0) - zi = z0 + (xm0 - x0) * (z1 - z0) / (x1 - x0) - if (yi >= ym0 .and. yi < ym1 .and. zi >= zm0 .and. zi < zm1) then - intersects = .true. - return + if ( (x0 < xm0 .and. x1 > xm0) .or. (x0 > xm0 .and. x1 < xm0) ) then + yi = y0 + (xm0 - x0) * (y1 - y0) / (x1 - x0) + zi = z0 + (xm0 - x0) * (z1 - z0) / (x1 - x0) + if (yi >= ym0 .and. yi < ym1 .and. zi >= zm0 .and. zi < zm1) then + intersects = .true. + return + end if end if ! Check if line intersects back surface -- calculate the intersection point ! (x,z) - xi = x0 + (ym0 - y0) * (x1 - x0) / (y1 - y0) - zi = z0 + (ym0 - y0) * (z1 - z0) / (y1 - y0) - if (xi >= xm0 .and. xi < xm1 .and. zi >= zm0 .and. zi < zm1) then - intersects = .true. - return + if ( (y0 < ym0 .and. y1 > ym0) .or. (y0 > ym0 .and. y1 < ym0) ) then + xi = x0 + (ym0 - y0) * (x1 - x0) / (y1 - y0) + zi = z0 + (ym0 - y0) * (z1 - z0) / (y1 - y0) + if (xi >= xm0 .and. xi < xm1 .and. zi >= zm0 .and. zi < zm1) then + intersects = .true. + return + end if end if ! Check if line intersects bottom surface -- calculate the intersection ! point (x,y) - xi = x0 + (zm0 - z0) * (x1 - x0) / (z1 - z0) - yi = y0 + (zm0 - z0) * (y1 - y0) / (z1 - z0) - if (xi >= xm0 .and. xi < xm1 .and. yi >= ym0 .and. yi < ym1) then - intersects = .true. - return + if ( (z0 < zm0 .and. z1 > zm0) .or. (z0 > zm0 .and. z1 < zm0) ) then + xi = x0 + (zm0 - z0) * (x1 - x0) / (z1 - z0) + yi = y0 + (zm0 - z0) * (y1 - y0) / (z1 - z0) + if (xi >= xm0 .and. xi < xm1 .and. yi >= ym0 .and. yi < ym1) then + intersects = .true. + return + end if end if ! Check if line intersects right surface -- calculate the intersection point ! (y,z) - yi = y0 + (xm1 - x0) * (y1 - y0) / (x1 - x0) - zi = z0 + (xm1 - x0) * (z1 - z0) / (x1 - x0) - if (yi >= ym0 .and. yi < ym1 .and. zi >= zm0 .and. zi < zm1) then - intersects = .true. - return + if ( (x0 < xm1 .and. x1 > xm1) .or. (x0 > xm1 .and. x1 < xm1) ) then + yi = y0 + (xm1 - x0) * (y1 - y0) / (x1 - x0) + zi = z0 + (xm1 - x0) * (z1 - z0) / (x1 - x0) + if (yi >= ym0 .and. yi < ym1 .and. zi >= zm0 .and. zi < zm1) then + intersects = .true. + return + end if end if ! Check if line intersects front surface -- calculate the intersection point ! (x,z) - xi = x0 + (ym1 - y0) * (x1 - x0) / (y1 - y0) - zi = z0 + (ym1 - y0) * (z1 - z0) / (y1 - y0) - if (xi >= xm0 .and. xi < xm1 .and. zi >= zm0 .and. zi < zm1) then - intersects = .true. - return + if ( (y0 < ym1 .and. y1 > ym1) .or. (y0 > ym1 .and. y1 < ym1) ) then + xi = x0 + (ym1 - y0) * (x1 - x0) / (y1 - y0) + zi = z0 + (ym1 - y0) * (z1 - z0) / (y1 - y0) + if (xi >= xm0 .and. xi < xm1 .and. zi >= zm0 .and. zi < zm1) then + intersects = .true. + return + end if end if ! Check if line intersects top surface -- calculate the intersection point ! (x,y) - xi = x0 + (zm1 - z0) * (x1 - x0) / (z1 - z0) - yi = y0 + (zm1 - z0) * (y1 - y0) / (z1 - z0) - if (xi >= xm0 .and. xi < xm1 .and. yi >= ym0 .and. yi < ym1) then - intersects = .true. - return + if ( (z0 < zm1 .and. z1 > zm1) .or. (z0 > zm1 .and. z1 < zm1) ) then + xi = x0 + (zm1 - z0) * (x1 - x0) / (z1 - z0) + yi = y0 + (zm1 - z0) * (y1 - y0) / (z1 - z0) + if (xi >= xm0 .and. xi < xm1 .and. yi >= ym0 .and. yi < ym1) then + intersects = .true. + return + end if end if end function mesh_intersects_3d diff --git a/src/tally.F90 b/src/tally.F90 index 3544ed5c58..7bc45f1fc7 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1349,11 +1349,12 @@ contains integer :: i integer :: i_tally + integer :: i_filt integer :: k ! loop index for nuclide bins ! position during the loop integer :: filter_index ! single index for single bin integer :: i_nuclide ! index in nuclides array - logical :: found_bin ! scoring bin found? + real(8) :: filter_weight type(TallyObject), pointer :: t ! A loop over all tallies is necessary because we need to simultaneously @@ -1364,63 +1365,101 @@ contains i_tally = active_analog_tallies % get_item(i) t => tallies(i_tally) - ! ======================================================================= - ! DETERMINE SCORING BIN COMBINATION + ! Find the first bin in each filter. There may be more than one matching + ! bin per filter, but we'll deal with those later. + do i_filt = 1, t % n_filters + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + NO_BIN_FOUND, matching_bins(i_filt), filter_weights(i_filt)) + ! If there are no valid bins for this filter, then there is nothing to + ! score and we can move on to the next tally. + if (matching_bins(i_filt) == NO_BIN_FOUND) cycle TALLY_LOOP + end do - call get_scoring_bins(p, i_tally, found_bin) - if (.not. found_bin) cycle + ! ======================================================================== + ! Loop until we've covered all valid bins on each of the filters. - ! ======================================================================= - ! CALCULATE RESULTS AND ACCUMULATE TALLY + FILTER_LOOP: do - ! If we have made it here, we have a scoring combination of bins for this - ! tally -- now we need to determine where in the results array we should - ! be accumulating the tally values + ! Determine scoring index and weight for this filter combination + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_weight = product(filter_weights(:t % n_filters)) - ! Determine scoring index for this filter combination - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + ! ====================================================================== + ! Nuclide logic - ! Check for nuclide bins - k = 0 - NUCLIDE_LOOP: do while (k < t % n_nuclide_bins) + ! Check for nuclide bins + k = 0 + NUCLIDE_LOOP: do while (k < t % n_nuclide_bins) - ! Increment the index in the list of nuclide bins - k = k + 1 + ! Increment the index in the list of nuclide bins + k = k + 1 + + if (t % all_nuclides) then + ! In the case that the user has requested to tally all nuclides, we + ! can take advantage of the fact that we know exactly how nuclide + ! bins correspond to nuclide indices. + if (k == 1) then + ! If we just entered, set the nuclide bin index to the index in + ! the nuclides array since this will match the index in the + ! nuclide bin array. + k = p % event_nuclide + elseif (k == p % event_nuclide + 1) then + ! After we've tallied the individual nuclide bin, we also need + ! to contribute to the total material bin which is the last bin + k = n_nuclides_total + 1 + else + ! After we've tallied in both the individual nuclide bin and the + ! total material bin, we're done + exit + end if - if (t % all_nuclides) then - ! In the case that the user has requested to tally all nuclides, we - ! can take advantage of the fact that we know exactly how nuclide - ! bins correspond to nuclide indices. - if (k == 1) then - ! If we just entered, set the nuclide bin index to the index in - ! the nuclides array since this will match the index in the - ! nuclide bin array. - k = p % event_nuclide - elseif (k == p % event_nuclide + 1) then - ! After we've tallied the individual nuclide bin, we also need - ! to contribute to the total material bin which is the last bin - k = n_nuclides_total + 1 else - ! After we've tallied in both the individual nuclide bin and the - ! total material bin, we're done - exit + ! If the user has explicitly specified nuclides (or specified + ! none), we need to search through the nuclide bin list one by + ! one. First we need to get the value of the nuclide bin + i_nuclide = t % nuclide_bins(k) + + ! Now compare the value against that of the colliding nuclide. + if (i_nuclide /= p % event_nuclide .and. i_nuclide /= -1) cycle end if - else - ! If the user has explicitly specified nuclides (or specified - ! none), we need to search through the nuclide bin list one by - ! one. First we need to get the value of the nuclide bin - i_nuclide = t % nuclide_bins(k) + ! Determine score for each bin + call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & + i_nuclide, ZERO, ZERO) - ! Now compare the value against that of the colliding nuclide. - if (i_nuclide /= p % event_nuclide .and. i_nuclide /= -1) cycle - end if + end do NUCLIDE_LOOP - ! Determine score for each bin - call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & - i_nuclide, ZERO, ZERO) + ! ====================================================================== + ! Filter logic - end do NUCLIDE_LOOP + ! If there are no filters, then we are done. + if (t % n_filters == 0) exit FILTER_LOOP + + ! Increment the filter bins, starting with the last filter. If we get a + ! NO_BIN_FOUND for the last filter, it means we finished all valid bins + ! for that filter, but next-to-last filter might have more than one + ! valid bin so we need to increment that one as well, and so on. + do i_filt = t % n_filters, 1, -1 + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + matching_bins(i_filt), matching_bins(i_filt), & + filter_weights(i_filt)) + if (matching_bins(i_filt) /= NO_BIN_FOUND) exit + end do + + ! If we got all NO_BIN_FOUNDs, then we have finished all valid bins for + ! each of the filters. Exit the loop. + if (all(matching_bins(:t % n_filters) == NO_BIN_FOUND)) exit FILTER_LOOP + + ! Reset all the filters with NO_BIN_FOUND. This will set them back to + ! their first valid bin. + do i_filt = 1, t % n_filters + if (matching_bins(i_filt) == NO_BIN_FOUND) then + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + matching_bins(i_filt), matching_bins(i_filt), & + filter_weights(i_filt)) + end if + end do + end do FILTER_LOOP ! If the user has specified that we can assume all tallies are spatially ! separate, this implies that once a tally has been scored to, we needn't @@ -1442,14 +1481,15 @@ contains integer :: i, m integer :: i_tally + integer :: i_filt integer :: k ! loop index for nuclide bins ! position during the loop integer :: filter_index ! single index for single bin integer :: i_nuclide ! index in nuclides array - logical :: found_bin ! scoring bin found? + real(8) :: filter_weight + real(8) :: atom_density type(TallyObject), pointer :: t type(Material), pointer :: mat - real(8) :: atom_density ! A loop over all tallies is necessary because we need to simultaneously ! determine different filter bins for the same tally in order to score to it @@ -1463,44 +1503,82 @@ contains ! nuclides are in the material mat => materials(p % material) - ! ======================================================================= - ! DETERMINE SCORING BIN COMBINATION + ! Find the first bin in each filter. There may be more than one matching + ! bin per filter, but we'll deal with those later. + do i_filt = 1, t % n_filters + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + NO_BIN_FOUND, matching_bins(i_filt), filter_weights(i_filt)) + ! If there are no valid bins for this filter, then there is nothing to + ! score and we can move on to the next tally. + if (matching_bins(i_filt) == NO_BIN_FOUND) cycle TALLY_LOOP + end do - call get_scoring_bins(p, i_tally, found_bin) - if (.not. found_bin) cycle + ! ======================================================================== + ! Loop until we've covered all valid bins on each of the filters. - ! ======================================================================= - ! CALCULATE RESULTS AND ACCUMULATE TALLY + FILTER_LOOP: do - ! If we have made it here, we have a scoring combination of bins for this - ! tally -- now we need to determine where in the results array we should - ! be accumulating the tally values + ! Determine scoring index and weight for this filter combination + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_weight = product(filter_weights(:t % n_filters)) - ! Determine scoring index for this filter combination - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + ! ====================================================================== + ! Nuclide logic - ! Check for nuclide bins - k = 0 - NUCLIDE_LOOP: do while (k < t % n_nuclide_bins) + ! Check for nuclide bins + k = 0 + NUCLIDE_LOOP: do while (k < t % n_nuclide_bins) - ! Increment the index in the list of nuclide bins - k = k + 1 + ! Increment the index in the list of nuclide bins + k = k + 1 - i_nuclide = t % nuclide_bins(k) + i_nuclide = t % nuclide_bins(k) - ! Check to see if this nuclide was in the material of our collision. - do m = 1, mat % n_nuclides - if (mat % nuclide(m) == i_nuclide) then - atom_density = mat % atom_density(m) - exit - end if + ! Check to see if this nuclide was in the material of our collision. + do m = 1, mat % n_nuclides + if (mat % nuclide(m) == i_nuclide) then + atom_density = mat % atom_density(m) + exit + end if + end do + + ! Determine score for each bin + call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & + i_nuclide, atom_density, ZERO) + + end do NUCLIDE_LOOP + + ! ====================================================================== + ! Filter logic + + ! If there are no filters, then we are done. + if (t % n_filters == 0) exit FILTER_LOOP + + ! Increment the filter bins, starting with the last filter. If we get a + ! NO_BIN_FOUND for the last filter, it means we finished all valid bins + ! for that filter, but next-to-last filter might have more than one + ! valid bin so we need to increment that one as well, and so on. + do i_filt = t % n_filters, 1, -1 + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + matching_bins(i_filt), matching_bins(i_filt), & + filter_weights(i_filt)) + if (matching_bins(i_filt) /= NO_BIN_FOUND) exit end do - ! Determine score for each bin - call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & - i_nuclide, atom_density, ZERO) + ! If we got all NO_BIN_FOUNDs, then we have finished all valid bins for + ! each of the filters. Exit the loop. + if (all(matching_bins(:t % n_filters) == NO_BIN_FOUND)) exit FILTER_LOOP - end do NUCLIDE_LOOP + ! Reset all the filters with NO_BIN_FOUND. This will set them back to + ! their first valid bin. + do i_filt = 1, t % n_filters + if (matching_bins(i_filt) == NO_BIN_FOUND) then + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + matching_bins(i_filt), matching_bins(i_filt), & + filter_weights(i_filt)) + end if + end do + end do FILTER_LOOP ! If the user has specified that we can assume all tallies are spatially ! separate, this implies that once a tally has been scored to, we needn't @@ -1813,13 +1891,14 @@ contains integer :: i integer :: i_tally + integer :: i_filt integer :: j ! loop index for scoring bins integer :: k ! loop index for nuclide bins integer :: filter_index ! single index for single bin integer :: i_nuclide ! index in nuclides array (from bins) real(8) :: flux ! tracklength estimate of flux real(8) :: atom_density ! atom density of single nuclide in atom/b-cm - logical :: found_bin ! scoring bin found? + real(8) :: filter_weight type(TallyObject), pointer :: t type(Material), pointer :: mat @@ -1834,70 +1913,101 @@ contains i_tally = active_tracklength_tallies % get_item(i) t => tallies(i_tally) - ! Check if this tally has a mesh filter -- if so, we treat it separately - ! since multiple bins can be scored to with a single track + ! Find the first bin in each filter. There may be more than one matching + ! bin per filter, but we'll deal with those later. + do i_filt = 1, t % n_filters + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + NO_BIN_FOUND, matching_bins(i_filt), filter_weights(i_filt)) + ! If there are no valid bins for this filter, then there is nothing to + ! score and we can move on to the next tally. + if (matching_bins(i_filt) == NO_BIN_FOUND) cycle TALLY_LOOP + end do - if (t % find_filter(FILTER_MESH) > 0) then - call score_tl_on_mesh(p, i_tally, distance) - cycle - end if + ! ======================================================================== + ! Loop until we've covered all valid bins on each of the filters. - ! ======================================================================= - ! DETERMINE SCORING BIN COMBINATION + FILTER_LOOP: do - call get_scoring_bins(p, i_tally, found_bin) - if (.not. found_bin) cycle + ! Determine scoring index and weight for this filter combination + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_weight = product(filter_weights(:t % n_filters)) - ! ======================================================================= - ! CALCULATE RESULTS AND ACCUMULATE TALLY + ! ====================================================================== + ! Nuclide logic - ! If we have made it here, we have a scoring combination of bins for this - ! tally -- now we need to determine where in the results array we should - ! be accumulating the tally values - - ! Determine scoring index for this filter combination - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - - if (t % all_nuclides) then - if (p % material /= MATERIAL_VOID) then - call score_all_nuclides(p, i_tally, flux, filter_index) - end if - else - - NUCLIDE_BIN_LOOP: do k = 1, t % n_nuclide_bins - ! Get index of nuclide in nuclides array - i_nuclide = t % nuclide_bins(k) - - if (i_nuclide > 0) then - if (p % material /= MATERIAL_VOID) then - ! Get pointer to current material - mat => materials(p % material) - - ! Determine if nuclide is actually in material - NUCLIDE_MAT_LOOP: do j = 1, mat % n_nuclides - ! If index of nuclide matches the j-th nuclide listed in the - ! material, break out of the loop - if (i_nuclide == mat % nuclide(j)) exit - - ! If we've reached the last nuclide in the material, it means - ! the specified nuclide to be tallied is not in this material - if (j == mat % n_nuclides) then - cycle NUCLIDE_BIN_LOOP - end if - end do NUCLIDE_MAT_LOOP - - atom_density = mat % atom_density(j) - else - atom_density = ZERO - end if + if (t % all_nuclides) then + if (p % material /= MATERIAL_VOID) then + call score_all_nuclides(p, i_tally, flux, filter_index) end if + else - ! Determine score for each bin - call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & - i_nuclide, atom_density, flux) + NUCLIDE_BIN_LOOP: do k = 1, t % n_nuclide_bins + ! Get index of nuclide in nuclides array + i_nuclide = t % nuclide_bins(k) - end do NUCLIDE_BIN_LOOP - end if + if (i_nuclide > 0) then + if (p % material /= MATERIAL_VOID) then + ! Get pointer to current material + mat => materials(p % material) + + ! Determine if nuclide is actually in material + NUCLIDE_MAT_LOOP: do j = 1, mat % n_nuclides + ! If index of nuclide matches the j-th nuclide listed in the + ! material, break out of the loop + if (i_nuclide == mat % nuclide(j)) exit + + ! If we've reached the last nuclide in the material, it means + ! the specified nuclide to be tallied is not in this material + if (j == mat % n_nuclides) then + cycle NUCLIDE_BIN_LOOP + end if + end do NUCLIDE_MAT_LOOP + + atom_density = mat % atom_density(j) + else + atom_density = ZERO + end if + end if + + ! Determine score for each bin + call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & + i_nuclide, atom_density, flux * filter_weight) + + end do NUCLIDE_BIN_LOOP + + end if + + ! ====================================================================== + ! Filter logic + + ! If there are no filters, then we are done. + if (t % n_filters == 0) exit FILTER_LOOP + + ! Increment the filter bins, starting with the last filter. If we get a + ! NO_BIN_FOUND for the last filter, it means we finished all valid bins + ! for that filter, but next-to-last filter might have more than one + ! valid bin so we need to increment that one as well, and so on. + do i_filt = t % n_filters, 1, -1 + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + matching_bins(i_filt), matching_bins(i_filt), & + filter_weights(i_filt)) + if (matching_bins(i_filt) /= NO_BIN_FOUND) exit + end do + + ! If we got all NO_BIN_FOUNDs, then we have finished all valid bins for + ! each of the filters. Exit the loop. + if (all(matching_bins(:t % n_filters) == NO_BIN_FOUND)) exit FILTER_LOOP + + ! Reset all the filters with NO_BIN_FOUND. This will set them back to + ! their first valid bin. + do i_filt = 1, t % n_filters + if (matching_bins(i_filt) == NO_BIN_FOUND) then + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + matching_bins(i_filt), matching_bins(i_filt), & + filter_weights(i_filt)) + end if + end do + end do FILTER_LOOP ! If the user has specified that we can assume all tallies are spatially ! separate, this implies that once a tally has been scored to, we needn't @@ -1913,219 +2023,6 @@ contains end subroutine score_tracklength_tally -!=============================================================================== -! SCORE_TL_ON_MESH calculate fluxes and reaction rates based on the track-length -! estimate of the flux specifically for tallies that have mesh filters. For -! these tallies, it is possible to score to multiple mesh cells for each track. -!=============================================================================== - - 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 - - integer :: i ! loop index for filter/score bins - integer :: j ! loop index for direction - integer :: k ! loop index for mesh cell crossings - integer :: b ! loop index for nuclide bins - integer :: ijk0(3) ! indices of starting coordinates - integer :: ijk1(3) ! indices of ending coordinates - integer :: ijk_cross(3) ! indices of mesh cell crossed - integer :: n_cross ! number of surface crossings - integer :: filter_index ! single index for single bin - integer :: i_nuclide ! index in nuclides array - integer :: i_filter_mesh ! index of mesh filter in filters array - real(8) :: atom_density ! density of individual nuclide in atom/b-cm - real(8) :: flux ! tracklength estimate of flux - real(8) :: uvw(3) ! cosine of angle of particle - real(8) :: xyz0(3) ! starting/intermediate coordinates - real(8) :: xyz1(3) ! ending coordinates of particle - real(8) :: xyz_cross(3) ! coordinates of next boundary - real(8) :: d(3) ! distance to each bounding surface - real(8) :: distance ! distance traveled in mesh cell - real(8) :: filt_score ! score applied by filters - logical :: found_bin ! was a scoring bin found? - logical :: start_in_mesh ! starting coordinates inside mesh? - logical :: end_in_mesh ! ending coordinates inside mesh? - type(TallyObject), pointer :: t - type(RegularMesh), pointer :: m - type(Material), pointer :: mat - - t => tallies(i_tally) - matching_bins(1:t%n_filters) = 1 - - ! ========================================================================== - ! CHECK IF THIS TRACK INTERSECTS THE MESH - - ! Copy starting and ending location of particle - xyz0 = p % coord(1) % xyz - (d_track - TINY_BIT) * p % coord(1) % uvw - xyz1 = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw - - ! Get index for mesh filter - i_filter_mesh = t % find_filter(FILTER_MESH) - - ! Get pointer to mesh - select type(filt => t % filters(i_filter_mesh) % obj) - type is (MeshFilter) - m => meshes(filt % mesh) - end select - - ! Determine indices for starting and ending location - call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) - call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) - - ! Check if start or end is in mesh -- if not, check if track still - ! intersects with mesh - if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then - if (m % n_dimension == 2) then - if (.not. mesh_intersects_2d(m, xyz0, xyz1)) return - else - if (.not. mesh_intersects_3d(m, xyz0, xyz1)) return - end if - end if - - ! Reset starting and ending location - xyz0 = p % coord(1) % xyz - d_track * p % coord(1) % uvw - xyz1 = p % coord(1) % xyz - - ! ========================================================================= - ! CHECK FOR SCORING COMBINATION FOR FILTERS OTHER THAN MESH - - FILTER_LOOP: do i = 1, t % n_filters - - ! Ignore this filter if it's the mesh filter - if (i == i_filter_mesh) cycle - - call t % filters(i) % obj % get_next_bin(p, t % estimator, NO_BIN_FOUND, & - matching_bins(i), filt_score) - - ! Check if no matching bin was found - if (matching_bins(i) == NO_BIN_FOUND) return - - end do FILTER_LOOP - - ! ========================================================================== - ! DETERMINE WHICH MESH CELLS TO SCORE TO - - ! Calculate number of surface crossings - n_cross = sum(abs(ijk1(:m % n_dimension) - ijk0(:m % n_dimension))) + 1 - - ! Copy particle's direction - uvw = p % coord(1) % uvw - - ! Bounding coordinates - do j = 1, m % n_dimension - if (uvw(j) > 0) then - xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) - else - xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) - end if - end do - - MESH_LOOP: do k = 1, n_cross - found_bin = .false. - - ! Calculate distance to each bounding surface. We need to treat special - ! case where the cosine of the angle is zero since this would result in a - ! divide-by-zero. - - if (k == n_cross) xyz_cross = xyz1 - - do j = 1, m % n_dimension - if (uvw(j) == 0) then - d(j) = INFINITY - else - d(j) = (xyz_cross(j) - xyz0(j))/uvw(j) - end if - end do - - ! Determine the closest bounding surface of the mesh cell by calculating - ! the minimum distance - - j = minloc(d(:m % n_dimension), 1) - distance = d(j) - - ! Now use the minimum distance and diretion of the particle to determine - ! which surface was crossed - - if (all(ijk0(:m % n_dimension) >= 1) .and. all(ijk0(:m % n_dimension) <= m % dimension)) then - ijk_cross = ijk0 - found_bin = .true. - end if - - ! Increment indices and determine new crossing point - if (uvw(j) > 0) then - ijk0(j) = ijk0(j) + 1 - xyz_cross(j) = xyz_cross(j) + m % width(j) - else - ijk0(j) = ijk0(j) - 1 - xyz_cross(j) = xyz_cross(j) - m % width(j) - end if - - ! ======================================================================= - ! SCORE TO THIS MESH CELL - - if (found_bin) then - ! Calculate track-length estimate of flux - flux = p % wgt * distance - - ! Determine mesh bin - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, ijk_cross) - - ! Determining scoring index - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - - if (t % all_nuclides) then - if (p % material /= MATERIAL_VOID) then - ! Score reaction rates for each nuclide in material - call score_all_nuclides(p, i_tally, flux, filter_index) - end if - else - NUCLIDE_BIN_LOOP: do b = 1, t % n_nuclide_bins - ! Get index of nuclide in nuclides array - i_nuclide = t % nuclide_bins(b) - - if (i_nuclide > 0) then - if (p % material /= MATERIAL_VOID) then - ! Get pointer to current material - mat => materials(p % material) - - ! Determine if nuclide is actually in material - NUCLIDE_MAT_LOOP: do j = 1, mat % n_nuclides - ! If index of nuclide matches the j-th nuclide listed in - ! the material, break out of the loop - if (i_nuclide == mat % nuclide(j)) exit - - ! If we've reached the last nuclide in the material, it - ! means the specified nuclide to be tallied is not in this - ! material - if (j == mat % n_nuclides) then - cycle NUCLIDE_BIN_LOOP - end if - end do NUCLIDE_MAT_LOOP - - atom_density = mat % atom_density(j) - else - atom_density = ZERO - end if - end if - - ! Determine score for each bin - call score_general(p, t, (b-1)*t % n_score_bins, filter_index, & - i_nuclide, atom_density, flux) - - end do NUCLIDE_BIN_LOOP - end if - end if - - ! Calculate new coordinates - xyz0 = xyz0 + distance * uvw - - end do MESH_LOOP - - end subroutine score_tl_on_mesh - !=============================================================================== ! SCORE_COLLISION_TALLY calculates fluxes and reaction rates based on the ! 1/Sigma_t estimate of the flux. This is triggered after every collision. It @@ -2140,6 +2037,7 @@ contains integer :: i integer :: i_tally + integer :: i_filt integer :: j ! loop index for scoring bins integer :: k ! loop index for nuclide bins integer :: filter_index ! single index for single bin @@ -2147,7 +2045,7 @@ contains real(8) :: flux ! collision estimate of flux real(8) :: atom_density ! atom density of single nuclide ! in atom/b-cm - logical :: found_bin ! scoring bin found? + real(8) :: filter_weight type(TallyObject), pointer :: t type(Material), pointer :: mat @@ -2167,62 +2065,101 @@ contains i_tally = active_collision_tallies % get_item(i) t => tallies(i_tally) - ! ======================================================================= - ! DETERMINE SCORING BIN COMBINATION + ! Find the first bin in each filter. There may be more than one matching + ! bin per filter, but we'll deal with those later. + do i_filt = 1, t % n_filters + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + NO_BIN_FOUND, matching_bins(i_filt), filter_weights(i_filt)) + ! If there are no valid bins for this filter, then there is nothing to + ! score and we can move on to the next tally. + if (matching_bins(i_filt) == NO_BIN_FOUND) cycle TALLY_LOOP + end do - call get_scoring_bins(p, i_tally, found_bin) - if (.not. found_bin) cycle + ! ======================================================================== + ! Loop until we've covered all valid bins on each of the filters. - ! ======================================================================= - ! CALCULATE RESULTS AND ACCUMULATE TALLY + FILTER_LOOP: do - ! If we have made it here, we have a scoring combination of bins for this - ! tally -- now we need to determine where in the results array we should - ! be accumulating the tally values + ! Determine scoring index and weight for this filter combination + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_weight = product(filter_weights(:t % n_filters)) - ! Determine scoring index for this filter combination - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + ! ====================================================================== + ! Nuclide logic - if (t % all_nuclides) then - if (p % material /= MATERIAL_VOID) then - call score_all_nuclides(p, i_tally, flux, filter_index) - end if - else - - NUCLIDE_BIN_LOOP: do k = 1, t % n_nuclide_bins - ! Get index of nuclide in nuclides array - i_nuclide = t % nuclide_bins(k) - - if (i_nuclide > 0) then - if (p % material /= MATERIAL_VOID) then - ! Get pointer to current material - mat => materials(p % material) - - ! Determine if nuclide is actually in material - NUCLIDE_MAT_LOOP: do j = 1, mat % n_nuclides - ! If index of nuclide matches the j-th nuclide listed in the - ! material, break out of the loop - if (i_nuclide == mat % nuclide(j)) exit - - ! If we've reached the last nuclide in the material, it means - ! the specified nuclide to be tallied is not in this material - if (j == mat % n_nuclides) then - cycle NUCLIDE_BIN_LOOP - end if - end do NUCLIDE_MAT_LOOP - - atom_density = mat % atom_density(j) - else - atom_density = ZERO - end if + if (t % all_nuclides) then + if (p % material /= MATERIAL_VOID) then + call score_all_nuclides(p, i_tally, flux, filter_index) end if + else - ! Determine score for each bin - call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & - i_nuclide, atom_density, flux) + NUCLIDE_BIN_LOOP: do k = 1, t % n_nuclide_bins + ! Get index of nuclide in nuclides array + i_nuclide = t % nuclide_bins(k) - end do NUCLIDE_BIN_LOOP - end if + if (i_nuclide > 0) then + if (p % material /= MATERIAL_VOID) then + ! Get pointer to current material + mat => materials(p % material) + + ! Determine if nuclide is actually in material + NUCLIDE_MAT_LOOP: do j = 1, mat % n_nuclides + ! If index of nuclide matches the j-th nuclide listed in the + ! material, break out of the loop + if (i_nuclide == mat % nuclide(j)) exit + + ! If we've reached the last nuclide in the material, it means + ! the specified nuclide to be tallied is not in this material + if (j == mat % n_nuclides) then + cycle NUCLIDE_BIN_LOOP + end if + end do NUCLIDE_MAT_LOOP + + atom_density = mat % atom_density(j) + else + atom_density = ZERO + end if + end if + + ! Determine score for each bin + call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & + i_nuclide, atom_density, flux * filter_weight) + + end do NUCLIDE_BIN_LOOP + + end if + + ! ====================================================================== + ! Filter logic + + ! If there are no filters, then we are done. + if (t % n_filters == 0) exit FILTER_LOOP + + ! Increment the filter bins, starting with the last filter. If we get a + ! NO_BIN_FOUND for the last filter, it means we finished all valid bins + ! for that filter, but next-to-last filter might have more than one + ! valid bin so we need to increment that one as well, and so on. + do i_filt = t % n_filters, 1, -1 + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + matching_bins(i_filt), matching_bins(i_filt), & + filter_weights(i_filt)) + if (matching_bins(i_filt) /= NO_BIN_FOUND) exit + end do + + ! If we got all NO_BIN_FOUNDs, then we have finished all valid bins for + ! each of the filters. Exit the loop. + if (all(matching_bins(:t % n_filters) == NO_BIN_FOUND)) exit FILTER_LOOP + + ! Reset all the filters with NO_BIN_FOUND. This will set them back to + ! their first valid bin. + do i_filt = 1, t % n_filters + if (matching_bins(i_filt) == NO_BIN_FOUND) then + call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & + matching_bins(i_filt), matching_bins(i_filt), & + filter_weights(i_filt)) + end if + end do + end do FILTER_LOOP ! If the user has specified that we can assume all tallies are spatially ! separate, this implies that once a tally has been scored to, we needn't @@ -2584,61 +2521,6 @@ contains end subroutine score_surface_current -!=============================================================================== -! GET_NEXT_BIN determines the next scoring bin for a particular filter variable -!=============================================================================== - - function get_next_bin(filter_type, filter_value, i_tally) result(bin) - - integer, intent(in) :: filter_type ! e.g. FILTER_MATERIAL - integer, intent(in) :: filter_value ! value of filter, e.g. material 3 - integer, intent(in) :: i_tally ! index of tally - integer :: bin ! index of filter - - integer :: i_tally_check - integer :: n - - ! If there are no scoring bins for this item, then return immediately - if (.not. allocated(tally_maps(filter_type) % items(filter_value) % elements)) then - bin = NO_BIN_FOUND - return - end if - - ! Check how many elements there are for this item - n = size(tally_maps(filter_type) % items(filter_value) % elements) - - do - ! Increment position in elements - position(filter_type) = position(filter_type) + 1 - - ! If we've reached the end of the array, there is no more bin to score to - if (position(filter_type) > n) then - position(filter_type) = 0 - bin = NO_BIN_FOUND - return - end if - - i_tally_check = tally_maps(filter_type) % items(filter_value) % & - elements(position(filter_type)) % index_tally - - if (i_tally_check > i_tally) then - ! Since the index being checked against is greater than the index we - ! need (and the tally indices were added to elements sequentially), we - ! know that no more bins will be scoring bins for this tally - position(filter_type) = 0 - bin = NO_BIN_FOUND - return - elseif (i_tally_check == i_tally) then - ! Found a match - bin = tally_maps(filter_type) % items(filter_value) % & - elements(position(filter_type)) % index_bin - return - end if - - end do - - end function get_next_bin - !=============================================================================== ! SYNCHRONIZE_TALLIES accumulates the sum of the contributions from each history ! within the batch to a new random variable diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index c0b7dc5c56..8bf66ab1b4 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -1,6 +1,6 @@ module tally_filter - use constants, only: ONE, NO_BIN_FOUND + use constants, only: ONE, NO_BIN_FOUND, FP_PRECISION use geometry_header, only: BASE_UNIVERSE, RectLattice, HexLattice use global use hdf5_interface @@ -194,12 +194,171 @@ contains integer, intent(out) :: next_bin real(8), intent(out) :: score - type(RegularMesh), pointer :: m + integer :: j ! loop index for direction + integer :: ijk0(3) ! indices of starting coordinates + integer :: ijk1(3) ! indices of ending coordinates + real(8) :: uvw(3) ! cosine of angle of particle + real(8) :: xyz0(3) ! starting/intermediate coordinates + real(8) :: xyz1(3) ! ending coordinates of particle + real(8) :: xyz_cross(3) ! coordinates of next boundary + real(8) :: d(3) ! distance to each bounding surface + real(8) :: total_distance ! distance of entire particle track + real(8) :: distance ! distance traveled in mesh cell + logical :: start_in_mesh ! starting coordinates inside mesh? + logical :: end_in_mesh ! ending coordinates inside mesh? + type(RegularMesh), pointer :: m + ! Get a pointer to the mesh. m => meshes(this % mesh) - call get_mesh_bin(m, p % coord(1) % xyz, next_bin) - score = ONE + if (estimator /= ESTIMATOR_TRACKLENGTH) then + if (current_bin == NO_BIN_FOUND) then + call get_mesh_bin(m, p % coord(1) % xyz, next_bin) + else + next_bin = NO_BIN_FOUND + end if + score = ONE + + else + ! Copy starting and ending location of particle. + xyz0 = p % last_xyz + TINY_BIT * p % coord(1) % uvw + xyz1 = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw + + ! Determine indices for starting and ending location. + call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) + call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) + + ! If this is the first iteration of the filter loop, check if the track + ! intersects any part of the mesh. + if (current_bin == NO_BIN_FOUND) then + if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then + if (m % n_dimension == 2) then + if (.not. mesh_intersects_2d(m, xyz0, xyz1)) then + next_bin = NO_BIN_FOUND + return + end if + else + if (.not. mesh_intersects_3d(m, xyz0, xyz1)) then + next_bin = NO_BIN_FOUND + return + end if + end if + end if + end if + + ! Reset starting, ending locations and particle direction. + xyz0 = p % last_xyz + xyz1 = p % coord(1) % xyz + uvw = p % coord(1) % uvw + + ! Compute the length of the entire track. + total_distance = sqrt(sum((xyz1 - xyz0)**2)) + + if (current_bin == NO_BIN_FOUND) then + if (any(ijk0(:m % n_dimension) < 1) & + .or. any(ijk0(:m % n_dimension) > m % dimension)) then + do while (any(ijk0(:m % n_dimension) < 1) & + .or. any(ijk0(:m % n_dimension) > m % dimension)) + do j = 1, m % n_dimension + if (abs(uvw(j)) < FP_PRECISION) then + d(j) = INFINITY + else if (uvw(j) > 0) then + xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) + d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + else + xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) + d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + end if + end do + j = minloc(d(:m % n_dimension), 1) + if (uvw(j) > ZERO) then + ijk0(j) = ijk0(j) + 1 + else + ijk0(j) = ijk0(j) - 1 + end if + end do + distance = d(j) + xyz0 = xyz0 + distance * uvw + end if + end if + + + ! ======================================================================== + ! If we've already scored some mesh bins, figure out which mesh cell is + ! next and where the particle enters that cell. + + if (current_bin /= NO_BIN_FOUND) then + ! Get the indices to the last bin. + call bin_to_mesh_indices(m, current_bin, ijk0(:m % n_dimension)) + + ! If the particle track ends in that bin, then we are done. + if (all(ijk0(:m % n_dimension) == ijk1(:m % n_dimension))) then + next_bin = NO_BIN_FOUND + return + end if + + ! Figure out which face of the previous mesh cell our track exits, i.e. + ! the closest surface of that cell for which + ! dot(p % uvw, face_normal) > 0. + do j = 1, m % n_dimension + if (abs(uvw(j)) < FP_PRECISION) then + d(j) = INFINITY + else if (uvw(j) > 0) then + xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) + d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + else + xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) + d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + end if + end do + j = minloc(d(:m % n_dimension), 1) + + ! Translate the starting coordintes by the distance to that face. This + ! should be the xyz that we computed the distance to in the last + ! iteration of the filter loop. + distance = d(j) + xyz0 = xyz0 + distance * uvw + + ! Increment the indices into the next mesh cell. + if (uvw(j) > ZERO) then + ijk0(j) = ijk0(j) + 1 + xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) + else + ijk0(j) = ijk0(j) - 1 + xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) + end if + + ! If the next indices are invalid, then the track has left the mesh and + ! we are done. + if (any(ijk0(:m % n_dimension) < 1) & + .or. any(ijk0(:m % n_dimension) > m % dimension)) then + next_bin = NO_BIN_FOUND + return + end if + end if + + ! Compute the length of the track segment in this mesh cell. + if (all(ijk0(:m % n_dimension) == ijk1(:m % n_dimension))) then + distance = sqrt(sum((xyz1 - xyz0)**2)) + else + do j = 1, m % n_dimension + if (abs(uvw(j)) < FP_PRECISION) then + d(j) = INFINITY + else if (uvw(j) > 0) then + xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) + d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + else + xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) + d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + end if + end do + distance = minval(d(:m % n_dimension)) + end if + + ! Assign the next tally bin and the score + next_bin = mesh_indices_to_bin(m, ijk0(:m % n_dimension)) + score = distance / total_distance + endif end subroutine get_next_bin_mesh subroutine to_statepoint_mesh(this, filter_group) diff --git a/src/tally_initialize.F90 b/src/tally_initialize.F90 index d8f7176a6e..86e4520a56 100644 --- a/src/tally_initialize.F90 +++ b/src/tally_initialize.F90 @@ -70,6 +70,7 @@ contains ! Allocate array for matching filter bins !$omp parallel allocate(matching_bins(max_n_filters)) + allocate(filter_weights(max_n_filters)) !$omp end parallel end subroutine setup_tally_arrays From a8686acbe5ba48128d248d69cb772b8109dfc25c Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 30 Jun 2016 12:27:42 -0500 Subject: [PATCH 096/417] Fix tracklength mesh tallies Unfortunately this required a bit of a hack. Since the filters do not know the length of the tack, they need to get the old coordinates from p % last_xyz. But p % last_xyz isn't updated at every event. Changing the tracking so p % last_xyz is updated at every event results in CMFD SIGFPEs, so we need to keep the old p % last_xyz as p % last_xyz_current --- src/geometry.F90 | 4 +-- src/particle_header.F90 | 34 +++++++++++++---------- src/particle_restart.F90 | 11 ++++---- src/tally.F90 | 6 +++- src/tally_filter.F90 | 13 ++++++--- src/tracking.F90 | 5 +++- tests/test_score_current/results_true.dat | 2 +- 7 files changed, 46 insertions(+), 29 deletions(-) diff --git a/src/geometry.F90 b/src/geometry.F90 index 767e2db108..6d4ca77671 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -499,7 +499,7 @@ contains end if ! Set previous coordinate going slightly past surface crossing - p % last_xyz = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw + p % last_xyz_current = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw ! Diagnostic message if (verbosity >= 10 .or. trace) then @@ -563,7 +563,7 @@ contains end if ! Set previous coordinate going slightly past surface crossing - p % last_xyz = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw + p % last_xyz_current = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw ! Diagnostic message if (verbosity >= 10 .or. trace) then diff --git a/src/particle_header.F90 b/src/particle_header.F90 index a313c6ed58..ee854aea37 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -59,10 +59,13 @@ module particle_header logical :: alive ! is particle alive? ! Pre-collision physical data - 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) :: absorb_wgt ! weight absorbed for survival biasing + real(8) :: last_xyz_current(3) ! coordinates of the last collision or + ! reflective/periodic surface crossing + ! for current tallies + 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) :: absorb_wgt ! weight absorbed for survival biasing ! What event last took place logical :: fission ! did the particle cause implicit fission @@ -193,20 +196,21 @@ contains 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 + this % wgt = src % wgt + this % last_wgt = src % wgt + this % coord(1) % xyz = src % xyz + this % coord(1) % uvw = src % uvw + this % last_xyz_current = src % xyz + this % last_xyz = src % xyz + this % last_uvw = src % uvw if (run_CE) then - this % E = src % E + this % E = src % E else - this % g = int(src % E) - this % last_g = int(src % E) - this % E = energy_bin_avg(this % g) + this % g = int(src % E) + this % last_g = int(src % E) + this % E = energy_bin_avg(this % g) end if - this % last_E = this % E + this % last_E = this % E end subroutine initialize_from_source diff --git a/src/particle_restart.F90 b/src/particle_restart.F90 index e5cca17bf8..b780c1c32f 100644 --- a/src/particle_restart.F90 +++ b/src/particle_restart.F90 @@ -102,11 +102,12 @@ contains call read_dataset(p % coord(1) % uvw, file_id, 'uvw') ! Set particle last attributes - p % last_wgt = p % wgt - p % last_xyz = p % coord(1)%xyz - p % last_uvw = p % coord(1)%uvw - p % last_E = p % E - p % last_g = p % g + p % last_wgt = p % wgt + p % last_xyz_current = p % coord(1)%xyz + p % last_xyz = p % coord(1)%xyz + p % last_uvw = p % coord(1)%uvw + p % last_E = p % E + p % last_g = p % g ! Close hdf5 file call file_close(file_id) diff --git a/src/tally.F90 b/src/tally.F90 index 7bc45f1fc7..5bff92c991 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1378,6 +1378,7 @@ contains ! ======================================================================== ! Loop until we've covered all valid bins on each of the filters. + filter_weight = ONE FILTER_LOOP: do ! Determine scoring index and weight for this filter combination @@ -1516,6 +1517,7 @@ contains ! ======================================================================== ! Loop until we've covered all valid bins on each of the filters. + filter_weight = ONE FILTER_LOOP: do ! Determine scoring index and weight for this filter combination @@ -1926,6 +1928,7 @@ contains ! ======================================================================== ! Loop until we've covered all valid bins on each of the filters. + filter_weight = ONE FILTER_LOOP: do ! Determine scoring index and weight for this filter combination @@ -2078,6 +2081,7 @@ contains ! ======================================================================== ! Loop until we've covered all valid bins on each of the filters. + filter_weight = ONE FILTER_LOOP: do ! Determine scoring index and weight for this filter combination @@ -2245,7 +2249,7 @@ contains TALLY_LOOP: do i = 1, active_current_tallies % size() ! Copy starting and ending location of particle - xyz0 = p % last_xyz + xyz0 = p % last_xyz_current xyz1 = p % coord(1) % xyz ! Get pointer to tally diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index 8bf66ab1b4..6629e588a4 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -607,11 +607,8 @@ contains integer :: distribcell_index, offset, i - next_bin = NO_BIN_FOUND - - distribcell_index = cells(this % cell) % distribcell_index - if (current_bin == NO_BIN_FOUND) then + distribcell_index = cells(this % cell) % distribcell_index offset = 0 do i = 1, p % n_coord if (cells(p % coord(i) % cell) % type == CELL_FILL) then @@ -635,6 +632,8 @@ contains exit end if end do + else + next_bin = NO_BIN_FOUND end if score = ONE end subroutine get_next_bin_distribcell @@ -984,6 +983,12 @@ contains integer, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: score + + if (current_bin == NO_BIN_FOUND) then + next_bin = 1 + else + next_bin = NO_BIN_FOUND + end if score = ONE end subroutine get_next_bin_dg diff --git a/src/tracking.F90 b/src/tracking.F90 index d52b09a75d..69fb78c354 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -191,7 +191,7 @@ contains p % fission = .false. ! Save coordinates for tallying purposes - p % last_xyz = p % coord(1) % xyz + p % last_xyz_current = p % coord(1) % xyz ! Set last material to none since cross sections will need to be ! re-evaluated @@ -211,6 +211,9 @@ contains end do end if + ! Save coordinates for tallying purposes + p % last_xyz = p % coord(1) % xyz + ! If particle has too many events, display warning and kill it n_event = n_event + 1 if (n_event == MAX_EVENTS) then diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index d3ac03a709..5d26226ae2 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -a9310752363eb059ff40f16ac9716b41ccab6ec6607d29f498069318745e485d18d784264304cc2586865bd58cef7587203cc22a1d485c58ddd63c14c0defdb9 \ No newline at end of file +bafab1921a12146abb2bb29603b52b9cc28a5a950a7a6bb1e3f012c05891c310fad643760d4f148b04d0fef3d1f3e141d146e3a278d81cc6fc8187c37717c5e7 \ No newline at end of file From 13f5a32d7ac129965709e99397ea37b41e6361ac Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 30 Jun 2016 14:30:03 -0500 Subject: [PATCH 097/417] Fix distribcell --- src/tally_filter.F90 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index 6629e588a4..0c2e13f9be 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -605,8 +605,10 @@ contains integer, intent(out) :: next_bin real(8), intent(out) :: score + logical :: cell_found integer :: distribcell_index, offset, i + cell_found = .false. if (current_bin == NO_BIN_FOUND) then distribcell_index = cells(this % cell) % distribcell_index offset = 0 @@ -629,12 +631,14 @@ contains end if if (this % cell == p % coord(i) % cell) then next_bin = offset + 1 + cell_found = .true. exit end if end do else next_bin = NO_BIN_FOUND end if + if (.not. cell_found) next_bin = NO_BIN_FOUND score = ONE end subroutine get_next_bin_distribcell From 32e89bb03dd6d320b7e0b096ccb6ffce665a96b1 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 1 Jul 2016 00:18:26 -0500 Subject: [PATCH 098/417] Cleanup object-oriented filters --- src/global.F90 | 6 +- src/input_xml.F90 | 2 - src/tally.F90 | 4 +- src/tally_filter.F90 | 287 ++++++++++++++++++++---------------- src/tally_filter_header.F90 | 83 ++++++++--- src/tally_header.F90 | 50 +------ src/tally_initialize.F90 | 94 +----------- 7 files changed, 223 insertions(+), 303 deletions(-) diff --git a/src/global.F90 b/src/global.F90 index 24a6726375..2211f338df 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -14,7 +14,7 @@ module global use set_header, only: SetInt use surface_header, only: SurfaceContainer use source_header, only: SourceDistribution - use tally_header, only: TallyObject, TallyMap, TallyResult + use tally_header, only: TallyObject, TallyResult use trigger_header, only: KTrigger use timer_header, only: Timer @@ -181,9 +181,6 @@ module global !$omp threadprivate(global_tally_collision, global_tally_absorption, & !$omp& global_tally_tracklength, global_tally_leakage) - ! Tally map structure - type(TallyMap), allocatable :: tally_maps(:) - integer :: n_meshes = 0 ! # of structured meshes integer :: n_user_meshes = 0 ! # of structured user meshes integer :: n_tallies = 0 ! # of tallies @@ -517,7 +514,6 @@ contains if (allocated(tallies)) deallocate(tallies) if (allocated(matching_bins)) deallocate(matching_bins) if (allocated(filter_weights)) deallocate(filter_weights) - if (allocated(tally_maps)) deallocate(tally_maps) ! Deallocate fission and source bank and entropy !$omp parallel diff --git a/src/input_xml.F90 b/src/input_xml.F90 index e1cb94e254..28accf9df8 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3038,7 +3038,6 @@ contains if (n_words == energy_groups + 1) then if (all(filt % bins == energy_bins(energy_groups + 1:1:-1))) & then - t % energy_matches_groups = .true. filt % matches_transport_groups = .true. end if end if @@ -3064,7 +3063,6 @@ contains if (n_words == energy_groups + 1) then if (all(filt % bins == energy_bins(energy_groups + 1:1:-1))) & then - t % energyout_matches_groups = .true. filt % matches_transport_groups = .true. end if end if diff --git a/src/tally.F90 b/src/tally.F90 index 5bff92c991..dcf1215ebe 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -14,7 +14,7 @@ module tally use particle_header, only: LocalCoord, Particle use search, only: binary_search use string, only: to_str - use tally_header, only: TallyResult, TallyMapItem, TallyMapElement + use tally_header, only: TallyResult use tally_filter #ifdef MPI @@ -1711,7 +1711,7 @@ contains UVW=p % last_uvw) end if - if (t % energyout_matches_groups) then + if (filt % matches_transport_groups) then ! determine outgoing energy from fission bank gout = int(fission_bank(n_bank - p % n_bank + k) % E) diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index 0c2e13f9be..097c11e3b2 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -1,16 +1,16 @@ module tally_filter - use constants, only: ONE, NO_BIN_FOUND, FP_PRECISION - use geometry_header, only: BASE_UNIVERSE, RectLattice, HexLattice + use constants, only: ONE, NO_BIN_FOUND, FP_PRECISION + use geometry_header, only: BASE_UNIVERSE, RectLattice, HexLattice use global use hdf5_interface - use mesh_header, only: RegularMesh - use mesh, only: get_mesh_bin, bin_to_mesh_indices, & - get_mesh_indices, mesh_indices_to_bin, & - mesh_intersects_2d, mesh_intersects_3d - use particle_header, only: Particle - use search, only: binary_search - use string, only: to_str + use mesh_header, only: RegularMesh + use mesh, only: get_mesh_bin, bin_to_mesh_indices, & + get_mesh_indices, mesh_indices_to_bin, & + mesh_intersects_2d, mesh_intersects_3d + use particle_header, only: Particle + use search, only: binary_search + use string, only: to_str use tally_filter_header, only: TallyFilter, TallyFilterContainer use hdf5, only: HID_T @@ -18,54 +18,57 @@ module tally_filter implicit none !=============================================================================== +! MESHFILTER indexes the location of particle events to a regular mesh. For +! tracklength tallies, it will produce multiple valid bins and the bin weight +! will correspond to the fraction of the track length that lies in that bin. !=============================================================================== type, extends(TallyFilter) :: MeshFilter integer :: mesh contains procedure :: get_next_bin => get_next_bin_mesh procedure :: to_statepoint => to_statepoint_mesh - procedure :: to_summary => to_statepoint_mesh - procedure :: initialize => initialize_mesh procedure :: text_label => text_label_mesh end type MeshFilter !=============================================================================== +! UNIVERSEFILTER specifies which geometric universes tally events reside in. !=============================================================================== type, extends(TallyFilter) :: UniverseFilter integer, allocatable :: universes(:) contains procedure :: get_next_bin => get_next_bin_universe procedure :: to_statepoint => to_statepoint_universe - procedure :: to_summary => to_statepoint_universe - procedure :: initialize => initialize_universe procedure :: text_label => text_label_universe + procedure :: initialize => initialize_universe end type UniverseFilter !=============================================================================== +! MATERIAL specifies which material tally events reside in. !=============================================================================== type, extends(TallyFilter) :: MaterialFilter integer, allocatable :: materials(:) contains procedure :: get_next_bin => get_next_bin_material procedure :: to_statepoint => to_statepoint_material - procedure :: to_summary => to_statepoint_material - procedure :: initialize => initialize_material procedure :: text_label => text_label_material + procedure :: initialize => initialize_material end type MaterialFilter !=============================================================================== +! CELLFILTER specifies which geometric cells tally events reside in. !=============================================================================== type, extends(TallyFilter) :: CellFilter integer, allocatable :: cells(:) contains procedure :: get_next_bin => get_next_bin_cell procedure :: to_statepoint => to_statepoint_cell - procedure :: to_summary => to_statepoint_cell - procedure :: initialize => initialize_cell procedure :: text_label => text_label_cell + procedure :: initialize => initialize_cell end type CellFilter !=============================================================================== +! DISTRIBCELLFILTER specifies which distributed geometric cells tally events +! reside in. !=============================================================================== type, extends(TallyFilter) :: DistribcellFilter integer :: cell @@ -73,134 +76,147 @@ module tally_filter procedure :: get_next_bin => get_next_bin_distribcell procedure :: to_statepoint => to_statepoint_distribcell procedure :: to_summary => to_summary_distribcell - procedure :: initialize => initialize_distribcell procedure :: text_label => text_label_distribcell + procedure :: initialize => initialize_distribcell end type DistribcellFilter !=============================================================================== +! CELLBORNFILTER specifies which cell the particle was born in. !=============================================================================== type, extends(TallyFilter) :: CellbornFilter integer, allocatable :: cells(:) contains procedure :: get_next_bin => get_next_bin_cellborn procedure :: to_statepoint => to_statepoint_cellborn - procedure :: to_summary => to_statepoint_cellborn - procedure :: initialize => initialize_cellborn procedure :: text_label => text_label_cellborn + procedure :: initialize => initialize_cellborn end type CellbornFilter !=============================================================================== +! SURFACEFILTER is currently not implemented for usual geometric surfaces, but +! it is used as a placeholder for mesh surfaces used in current tallies. !=============================================================================== type, extends(TallyFilter) :: SurfaceFilter integer, allocatable :: surfaces(:) contains procedure :: get_next_bin => get_next_bin_surface procedure :: to_statepoint => to_statepoint_surface - procedure :: to_summary => to_statepoint_surface - procedure :: initialize => initialize_surface procedure :: text_label => text_label_surface + procedure :: initialize => initialize_surface end type SurfaceFilter !=============================================================================== +! ENERGYFILTER bins the incident neutron energy. !=============================================================================== type, extends(TallyFilter) :: EnergyFilter real(8), allocatable :: bins(:) + + ! True if transport group number can be used directly to get bin number logical :: matches_transport_groups = .false. + contains procedure :: get_next_bin => get_next_bin_energy procedure :: to_statepoint => to_statepoint_energy - procedure :: to_summary => to_statepoint_energy - procedure :: initialize => initialize_energy procedure :: text_label => text_label_energy end type EnergyFilter !=============================================================================== +! ENERGYOUTFILTER bins the outgoing neutron energy. Only scattering events use +! the get_next_bin functionality. Nu-fission tallies manually iterate over the +! filter bins. !=============================================================================== type, extends(TallyFilter) :: EnergyoutFilter real(8), allocatable :: bins(:) + + ! True if transport group number can be used directly to get bin number logical :: matches_transport_groups = .false. + contains procedure :: get_next_bin => get_next_bin_energyout procedure :: to_statepoint => to_statepoint_energyout - procedure :: to_summary => to_statepoint_energyout - procedure :: initialize => initialize_energyout procedure :: text_label => text_label_energyout end type EnergyoutFilter !=============================================================================== +! DELAYEDGROUPFILTER bins outgoing fission neutrons in their delayed groups. +! The get_next_bin functionality is not actually used. The bins are manually +! iterated over in the scoring subroutines. !=============================================================================== type, extends(TallyFilter) :: DelayedGroupFilter integer, allocatable :: groups(:) contains procedure :: get_next_bin => get_next_bin_dg procedure :: to_statepoint => to_statepoint_dg - procedure :: to_summary => to_statepoint_dg - procedure :: initialize => initialize_dg procedure :: text_label => text_label_dg end type DelayedGroupFilter !=============================================================================== +! MUFILTER bins the incoming-outgoing direction cosine. This is only used for +! scatter reactions. !=============================================================================== type, extends(TallyFilter) :: MuFilter real(8), allocatable :: bins(:) contains procedure :: get_next_bin => get_next_bin_mu procedure :: to_statepoint => to_statepoint_mu - procedure :: to_summary => to_statepoint_mu - procedure :: initialize => initialize_mu procedure :: text_label => text_label_mu end type MuFilter !=============================================================================== +! POLARFILTER bins the incident neutron polar angle (relative to the global +! z-axis). !=============================================================================== type, extends(TallyFilter) :: PolarFilter real(8), allocatable :: bins(:) contains procedure :: get_next_bin => get_next_bin_polar procedure :: to_statepoint => to_statepoint_polar - procedure :: to_summary => to_statepoint_polar - procedure :: initialize => initialize_polar procedure :: text_label => text_label_polar end type PolarFilter !=============================================================================== +! AZIMUTHALFILTER bins the incident neutron azimuthal angle (relative to the +! global xy-plane). !=============================================================================== type, extends(TallyFilter) :: AzimuthalFilter real(8), allocatable :: bins(:) contains procedure :: get_next_bin => get_next_bin_azimuthal procedure :: to_statepoint => to_statepoint_azimuthal - procedure :: to_summary => to_statepoint_azimuthal - procedure :: initialize => initialize_azimuthal procedure :: text_label => text_label_azimuthal end type AzimuthalFilter contains - - - - - - +!=============================================================================== +! METHODS: for a description of these methods, see their counterparts bound to +! the abstract TallyFilter class. +!=============================================================================== !=============================================================================== +! MeshFilter methods !=============================================================================== - subroutine get_next_bin_mesh(this, p, estimator, current_bin, next_bin, score) + subroutine get_next_bin_mesh(this, p, estimator, current_bin, next_bin, & + weight) class(MeshFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight + + integer, parameter :: MAX_SEARCH_ITER = 100 ! Maximum number of times we can + ! can loop while trying to find + ! the first intersection. integer :: j ! loop index for direction integer :: ijk0(3) ! indices of starting coordinates integer :: ijk1(3) ! indices of ending coordinates + integer :: search_iter ! loop count for intersection search real(8) :: uvw(3) ! cosine of angle of particle real(8) :: xyz0(3) ! starting/intermediate coordinates real(8) :: xyz1(3) ! ending coordinates of particle - real(8) :: xyz_cross(3) ! coordinates of next boundary + real(8) :: xyz_cross ! coordinates of next boundary real(8) :: d(3) ! distance to each bounding surface real(8) :: total_distance ! distance of entire particle track real(8) :: distance ! distance traveled in mesh cell @@ -212,15 +228,23 @@ contains m => meshes(this % mesh) if (estimator /= ESTIMATOR_TRACKLENGTH) then + ! If this is an analog or collision tally, then there can only be one + ! valid mesh bin. if (current_bin == NO_BIN_FOUND) then call get_mesh_bin(m, p % coord(1) % xyz, next_bin) else next_bin = NO_BIN_FOUND end if - score = ONE + weight = ONE else - ! Copy starting and ending location of particle. + ! A track can span multiple mesh bins so we need to handle a lot of + ! intersection logic for tracklength tallies. + + ! Copy the starting and ending coordinates of the particle. Offset these + ! just a bit for the purposes of determining if there was an intersection + ! in case the mesh surfaces coincide with lattice/geometric surfaces which + ! might produce finite-precision errors. xyz0 = p % last_xyz + TINY_BIT * p % coord(1) % uvw xyz1 = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw @@ -246,7 +270,7 @@ contains end if end if - ! Reset starting, ending locations and particle direction. + ! Copy the un-modified coordinates the particle direction. xyz0 = p % last_xyz xyz1 = p % coord(1) % xyz uvw = p % coord(1) % uvw @@ -254,20 +278,30 @@ contains ! Compute the length of the entire track. total_distance = sqrt(sum((xyz1 - xyz0)**2)) + ! If we're looking for the first valid bin, check to see if the particle + ! starts inside the mesh. if (current_bin == NO_BIN_FOUND) then if (any(ijk0(:m % n_dimension) < 1) & .or. any(ijk0(:m % n_dimension) > m % dimension)) then + + ! The particle does not start in the mesh so keep iterating the ijk0 + ! indices to cross the nearest mesh surface until we've found a valid + ! bin. MAX_SEARCH_ITER prevents an infinite loop. + search_iter = 0 do while (any(ijk0(:m % n_dimension) < 1) & .or. any(ijk0(:m % n_dimension) > m % dimension)) + if (search_iter == MAX_SEARCH_ITER) call fatal_error("Failed to & + &find a mesh intersection on a tally mesh filter.") + do j = 1, m % n_dimension if (abs(uvw(j)) < FP_PRECISION) then d(j) = INFINITY else if (uvw(j) > 0) then - xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) - d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + xyz_cross = m % lower_left(j) + ijk0(j) * m % width(j) + d(j) = (xyz_cross - xyz0(j)) / uvw(j) else - xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) - d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + xyz_cross = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) + d(j) = (xyz_cross - xyz0(j)) / uvw(j) end if end do j = minloc(d(:m % n_dimension), 1) @@ -279,10 +313,10 @@ contains end do distance = d(j) xyz0 = xyz0 + distance * uvw + end if end if - ! ======================================================================== ! If we've already scored some mesh bins, figure out which mesh cell is ! next and where the particle enters that cell. @@ -304,11 +338,11 @@ contains if (abs(uvw(j)) < FP_PRECISION) then d(j) = INFINITY else if (uvw(j) > 0) then - xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) - d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + xyz_cross = m % lower_left(j) + ijk0(j) * m % width(j) + d(j) = (xyz_cross - xyz0(j)) / uvw(j) else - xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) - d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + xyz_cross = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) + d(j) = (xyz_cross - xyz0(j)) / uvw(j) end if end do j = minloc(d(:m % n_dimension), 1) @@ -322,10 +356,8 @@ contains ! Increment the indices into the next mesh cell. if (uvw(j) > ZERO) then ijk0(j) = ijk0(j) + 1 - xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) else ijk0(j) = ijk0(j) - 1 - xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) end if ! If the next indices are invalid, then the track has left the mesh and @@ -339,17 +371,20 @@ contains ! Compute the length of the track segment in this mesh cell. if (all(ijk0(:m % n_dimension) == ijk1(:m % n_dimension))) then + ! The track ends in this cell. Use the particle end location rather + ! than the mesh surface. distance = sqrt(sum((xyz1 - xyz0)**2)) else + ! The track exits this cell. Use the distance to the mesh surface. do j = 1, m % n_dimension if (abs(uvw(j)) < FP_PRECISION) then d(j) = INFINITY else if (uvw(j) > 0) then - xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) - d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + xyz_cross = m % lower_left(j) + ijk0(j) * m % width(j) + d(j) = (xyz_cross - xyz0(j)) / uvw(j) else - xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) - d(j) = (xyz_cross(j) - xyz0(j)) / uvw(j) + xyz_cross = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) + d(j) = (xyz_cross - xyz0(j)) / uvw(j) end if end do distance = minval(d(:m % n_dimension)) @@ -357,7 +392,7 @@ contains ! Assign the next tally bin and the score next_bin = mesh_indices_to_bin(m, ijk0(:m % n_dimension)) - score = distance / total_distance + weight = distance / total_distance endif end subroutine get_next_bin_mesh @@ -370,10 +405,6 @@ contains call write_dataset(filter_group, "bins", this % mesh ) end subroutine to_statepoint_mesh - subroutine initialize_mesh(this) - class(MeshFilter), intent(inout) :: this - end subroutine initialize_mesh - function text_label_mesh(this, bin) result(label) class(MeshFilter), intent(in) :: this integer, intent(in) :: bin @@ -395,15 +426,16 @@ contains end function text_label_mesh !=============================================================================== +! UniverseFilter methods !=============================================================================== subroutine get_next_bin_universe(this, p, estimator, current_bin, next_bin, & - score) + weight) class(UniverseFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight integer :: i, j, start logical :: bin_found @@ -427,7 +459,7 @@ contains end do if (.not. bin_found) next_bin = NO_BIN_FOUND - score = ONE + weight = ONE end subroutine get_next_bin_universe subroutine to_statepoint_universe(this, filter_group) @@ -444,6 +476,7 @@ contains integer :: i, id + ! Convert ids to indices. do i = 1, this % n_bins id = this % universes(i) if (universe_dict % has_key(id)) then @@ -464,15 +497,16 @@ contains end function text_label_universe !=============================================================================== +! MaterialFilter methods !=============================================================================== subroutine get_next_bin_material(this, p, estimator, current_bin, next_bin, & - score) + weight) class(MaterialFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight integer :: i logical :: bin_found @@ -490,7 +524,7 @@ contains else next_bin = NO_BIN_FOUND end if - score = ONE + weight = ONE end subroutine get_next_bin_material subroutine to_statepoint_material(this, filter_group) @@ -507,6 +541,7 @@ contains integer :: i, id + ! Convert ids to indices. do i = 1, this % n_bins id = this % materials(i) if (material_dict % has_key(id)) then @@ -527,14 +562,16 @@ contains end function text_label_material !=============================================================================== +! CellFilter methods !=============================================================================== - subroutine get_next_bin_cell(this, p, estimator, current_bin, next_bin, score) + subroutine get_next_bin_cell(this, p, estimator, current_bin, next_bin, & + weight) class(CellFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight integer :: i, j, start logical :: bin_found @@ -558,7 +595,7 @@ contains end do if (.not. bin_found) next_bin = NO_BIN_FOUND - score = ONE + weight = ONE end subroutine get_next_bin_cell subroutine to_statepoint_cell(this, filter_group) @@ -575,6 +612,7 @@ contains integer :: i, id + ! Convert ids to indices. do i = 1, this % n_bins id = this % cells(i) if (cell_dict % has_key(id)) then @@ -595,15 +633,16 @@ contains end function text_label_cell !=============================================================================== +! DistribcellFilter methods !=============================================================================== subroutine get_next_bin_distribcell(this, p, estimator, current_bin, & - next_bin, score) + next_bin, weight) class(DistribcellFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight logical :: cell_found integer :: distribcell_index, offset, i @@ -639,7 +678,7 @@ contains next_bin = NO_BIN_FOUND end if if (.not. cell_found) next_bin = NO_BIN_FOUND - score = ONE + weight = ONE end subroutine get_next_bin_distribcell subroutine to_statepoint_distribcell(this, filter_group) @@ -684,8 +723,9 @@ contains subroutine initialize_distribcell(this) class(DistribcellFilter), intent(inout) :: this - integer :: i, id + integer :: id + ! Convert id to index. id = this % cell if (cell_dict % has_key(id)) then this % cell = cell_dict % get_key(id) @@ -711,15 +751,16 @@ contains end function text_label_distribcell !=============================================================================== +! CellbornFilter methods !=============================================================================== subroutine get_next_bin_cellborn(this, p, estimator, current_bin, next_bin, & - score) + weight) class(CellbornFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight integer :: i logical :: bin_found @@ -737,7 +778,7 @@ contains else next_bin = NO_BIN_FOUND end if - score = ONE + weight = ONE end subroutine get_next_bin_cellborn subroutine to_statepoint_cellborn(this, filter_group) @@ -754,6 +795,7 @@ contains integer :: i, id + ! Convert ids to indices. do i = 1, this % n_bins id = this % cells(i) if (cell_dict % has_key(id)) then @@ -774,15 +816,16 @@ contains end function text_label_cellborn !=============================================================================== +! SurfaceFilter methods !=============================================================================== subroutine get_next_bin_surface(this, p, estimator, current_bin, next_bin, & - score) + weight) class(SurfaceFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight integer :: i logical :: bin_found @@ -800,7 +843,7 @@ contains else next_bin = NO_BIN_FOUND end if - score = ONE + weight = ONE end subroutine get_next_bin_surface subroutine to_statepoint_surface(this, filter_group) @@ -817,6 +860,7 @@ contains integer :: i, id + ! Convert ids to indices. do i = 1, this % n_bins id = this % surfaces(i) if (surface_dict % has_key(id)) then @@ -837,15 +881,16 @@ contains end function text_label_surface !=============================================================================== +! EnergyFilter methods !=============================================================================== subroutine get_next_bin_energy(this, p, estimator, current_bin, next_bin, & - score) + weight) class(EnergyFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight integer :: n real(8) :: E @@ -884,7 +929,7 @@ contains else next_bin = NO_BIN_FOUND end if - score = ONE + weight = ONE end subroutine get_next_bin_energy subroutine to_statepoint_energy(this, filter_group) @@ -896,10 +941,6 @@ contains call write_dataset(filter_group, "bins", this % bins ) end subroutine to_statepoint_energy - subroutine initialize_energy(this) - class(EnergyFilter), intent(inout) :: this - end subroutine initialize_energy - function text_label_energy(this, bin) result(label) class(EnergyFilter), intent(in) :: this integer, intent(in) :: bin @@ -914,15 +955,16 @@ contains end function text_label_energy !=============================================================================== +! EnergyoutFilter methods !=============================================================================== subroutine get_next_bin_energyout(this, p, estimator, current_bin, next_bin, & - score) + weight) class(EnergyoutFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight integer :: n @@ -949,7 +991,7 @@ contains else next_bin = NO_BIN_FOUND end if - score = ONE + weight = ONE end subroutine get_next_bin_energyout subroutine to_statepoint_energyout(this, filter_group) @@ -961,10 +1003,6 @@ contains call write_dataset(filter_group, "bins", this % bins ) end subroutine to_statepoint_energyout - subroutine initialize_energyout(this) - class(EnergyoutFilter), intent(inout) :: this - end subroutine initialize_energyout - function text_label_energyout(this, bin) result(label) class(EnergyoutFilter), intent(in) :: this integer, intent(in) :: bin @@ -979,21 +1017,22 @@ contains end function text_label_energyout !=============================================================================== +! DelayedGroupFilter methods !=============================================================================== - subroutine get_next_bin_dg(this, p, estimator, current_bin, next_bin, score) + subroutine get_next_bin_dg(this, p, estimator, current_bin, next_bin, weight) class(DelayedGroupFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight if (current_bin == NO_BIN_FOUND) then next_bin = 1 else next_bin = NO_BIN_FOUND end if - score = ONE + weight = ONE end subroutine get_next_bin_dg subroutine to_statepoint_dg(this, filter_group) @@ -1005,10 +1044,6 @@ contains call write_dataset(filter_group, "bins", this % groups ) end subroutine to_statepoint_dg - subroutine initialize_dg(this) - class(DelayedGroupFilter), intent(inout) :: this - end subroutine initialize_dg - function text_label_dg(this, bin) result(label) class(DelayedGroupFilter), intent(in) :: this integer, intent(in) :: bin @@ -1018,14 +1053,15 @@ contains end function text_label_dg !=============================================================================== +! MuFilter methods !=============================================================================== - subroutine get_next_bin_mu(this, p, estimator, current_bin, next_bin, score) + subroutine get_next_bin_mu(this, p, estimator, current_bin, next_bin, weight) class(MuFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight integer :: n @@ -1043,7 +1079,7 @@ contains else next_bin = NO_BIN_FOUND end if - score = ONE + weight = ONE end subroutine get_next_bin_mu subroutine to_statepoint_mu(this, filter_group) @@ -1055,10 +1091,6 @@ contains call write_dataset(filter_group, "bins", this % bins ) end subroutine to_statepoint_mu - subroutine initialize_mu(this) - class(MuFilter), intent(inout) :: this - end subroutine initialize_mu - function text_label_mu(this, bin) result(label) class(MuFilter), intent(in) :: this integer, intent(in) :: bin @@ -1073,14 +1105,16 @@ contains end function text_label_mu !=============================================================================== +! PolarFilter methods !=============================================================================== - subroutine get_next_bin_polar(this, p, estimator, current_bin, next_bin, score) + subroutine get_next_bin_polar(this, p, estimator, current_bin, next_bin, & + weight) class(PolarFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight integer :: n real(8) :: theta @@ -1106,7 +1140,7 @@ contains else next_bin = NO_BIN_FOUND end if - score = ONE + weight = ONE end subroutine get_next_bin_polar subroutine to_statepoint_polar(this, filter_group) @@ -1118,10 +1152,6 @@ contains call write_dataset(filter_group, "bins", this % bins ) end subroutine to_statepoint_polar - subroutine initialize_polar(this) - class(PolarFilter), intent(inout) :: this - end subroutine initialize_polar - function text_label_polar(this, bin) result(label) class(PolarFilter), intent(in) :: this integer, intent(in) :: bin @@ -1136,15 +1166,16 @@ contains end function text_label_polar !=============================================================================== +! AzimuthalFilter methods !=============================================================================== subroutine get_next_bin_azimuthal(this, p, estimator, current_bin, next_bin, & - score) + weight) class(AzimuthalFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight integer :: n real(8) :: phi @@ -1170,7 +1201,7 @@ contains else next_bin = NO_BIN_FOUND end if - score = ONE + weight = ONE end subroutine get_next_bin_azimuthal subroutine to_statepoint_azimuthal(this, filter_group) @@ -1182,10 +1213,6 @@ contains call write_dataset(filter_group, "bins", this % bins ) end subroutine to_statepoint_azimuthal - subroutine initialize_azimuthal(this) - class(AzimuthalFilter), intent(inout) :: this - end subroutine initialize_azimuthal - function text_label_azimuthal(this, bin) result(label) class(AzimuthalFilter), intent(in) :: this integer, intent(in) :: bin @@ -1200,9 +1227,9 @@ contains end function text_label_azimuthal !=============================================================================== -! FIND_OFFSET uses a given map number, a target cell ID, and a target offset -! to build a string which is the path from the base universe to the target cell -! with the given offset +! FIND_OFFSET (for distribcell) uses a given map number, a target cell ID, and +! a target offset to build a string which is the path from the base universe to +! the target cell with the given offset !=============================================================================== recursive subroutine find_offset(goal, univ, final, offset, path) diff --git a/src/tally_filter_header.F90 b/src/tally_filter_header.F90 index 7da8eea061..505579b759 100644 --- a/src/tally_filter_header.F90 +++ b/src/tally_filter_header.F90 @@ -1,30 +1,41 @@ module tally_filter_header - use constants, only: MAX_LINE_LEN + use constants, only: MAX_LINE_LEN use particle_header, only: Particle use hdf5 implicit none +!=============================================================================== +! TALLYFILTER describes a filter that limits what events score to a tally. For +! example, a cell filter indicates that only particles in a specified cell +! should score to the tally. +!=============================================================================== + type, abstract :: TallyFilter integer :: n_bins = 0 integer :: type contains - procedure(get_next_bin_), deferred :: get_next_bin + procedure(get_next_bin_), deferred :: get_next_bin procedure(to_statepoint_), deferred :: to_statepoint - procedure(to_summary_), deferred :: to_summary - procedure(initialize_), deferred :: initialize - procedure(text_label_), deferred :: text_label + procedure :: to_summary => to_summary_ + procedure(text_label_), deferred :: text_label + procedure :: initialize => initialize_ end type TallyFilter - type TallyFilterContainer - class(TallyFilter), allocatable :: obj - end type TallyFilterContainer - abstract interface - subroutine get_next_bin_(this, p, estimator, current_bin, next_bin, score) +!=============================================================================== +! GET_NEXT_BIN gives the index for the next valid filter bin and a weight that +! will be applied to the flux. +! +! In principle, a filter can have multiple valid bins. If current_bin = +! NO_BIN_FOUND, then this method should give the first valid bin. Providing the +! first valid bin should then give the second valid bin, and so on. When there +! are no valid bins left, the next_bin should be NO_VALID_BIN. + + subroutine get_next_bin_(this, p, estimator, current_bin, next_bin, weight) import TallyFilter import Particle class(TallyFilter), intent(in) :: this @@ -32,9 +43,13 @@ module tally_filter_header integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: score + real(8), intent(out) :: weight end subroutine get_next_bin_ +!=============================================================================== +! TO_STATPEOINT writes all the information needed to reconstruct the filter to +! the given filter_group. + subroutine to_statepoint_(this, filter_group) import TallyFilter import HID_T @@ -42,17 +57,10 @@ module tally_filter_header integer(HID_T), intent(in) :: filter_group end subroutine to_statepoint_ - subroutine to_summary_(this, filter_group) - import TallyFilter - import HID_T - class(TallyFilter), intent(in) :: this - integer(HID_T), intent(in) :: filter_group - end subroutine to_summary_ - - subroutine initialize_(this) - import TallyFilter - class(TallyFilter), intent(inout) :: this - end subroutine initialize_ +!=============================================================================== +! TEXT_LABEL returns a string describing the given filter bin. For example, an +! energy filter might return the string "Incoming Energy [0.625E-6, 20.0)". +! This is used to write the tallies.out file. function text_label_(this, bin) result(label) import TallyFilter @@ -64,4 +72,35 @@ module tally_filter_header end interface +!=============================================================================== +! TALLYFILTERCONTAINER contains an allocatable TallyFilter object for arrays of +! TallyFilters +!=============================================================================== + + type TallyFilterContainer + class(TallyFilter), allocatable :: obj + end type TallyFilterContainer + +contains + +!=============================================================================== +! TO_SUMMARY writes all the information needed to reconstruct the filter to the +! given filter_group. If this procedure is not overridden by the derived class, +! then it will call to_statepoint by default. + + subroutine to_summary_(this, filter_group) + class(TallyFilter), intent(in) :: this + integer(HID_T), intent(in) :: filter_group + + call this % to_statepoint(filter_group) + end subroutine to_summary_ + +!=============================================================================== +! INITIALIZE sets up any internal data, as necessary. If this procedure is not +! overriden by the derived class, then it will do nothing by default. + + subroutine initialize_(this) + class(TallyFilter), intent(inout) :: this + end subroutine initialize_ + end module tally_filter_header diff --git a/src/tally_header.F90 b/src/tally_header.F90 index 46a6e2d9ca..b786d9c298 100644 --- a/src/tally_header.F90 +++ b/src/tally_header.F90 @@ -8,36 +8,6 @@ module tally_header implicit none -!=============================================================================== -! TALLYMAPELEMENT gives an index to a tally which is to be scored and the -! corresponding bin for the filter variable -!=============================================================================== - - type TallyMapElement - integer :: index_tally - integer :: index_bin - end type TallyMapElement - -!=============================================================================== -! TALLYMAPITEM contains a list of tally/bin combinations for each mappable -! filter bin specified. -!=============================================================================== - - type TallyMapItem - type(TallyMapElement), allocatable :: elements(:) - end type TallyMapItem - -!=============================================================================== -! TALLYMAP contains a list of pairs of indices to tallies and the corresponding -! bin for a given filter. There is one TallyMap for each mappable filter -! type. The items array is as long as the corresponding array for that filter, -! e.g. for tally_maps(FILTER_CELL), items is n_cells long. -!=============================================================================== - - type TallyMap - type(TallyMapItem), allocatable :: items(:) - end type TallyMap - !=============================================================================== ! TALLYRESULT provides accumulation of results in a particular tally bin !=============================================================================== @@ -48,19 +18,6 @@ module tally_header real(C_DOUBLE) :: sum_sq = 0. end type TallyResult -!=============================================================================== -! TALLYFILTER describes a filter that limits what events score to a tally. For -! example, a cell filter indicates that only particles in a specified cell -! should score to the tally. -!=============================================================================== - -! type TallyFilter -! integer :: type = NONE -! integer :: n_bins = 0 -! integer, allocatable :: int_bins(:) -! real(8), allocatable :: real_bins(:) ! Only used for energy filters -! end type TallyFilter - !=============================================================================== ! TALLYOBJECT describes a user-specified tally. The region of phase space to ! tally in is given by the TallyFilters and the results are stored in a @@ -78,8 +35,7 @@ module tally_header ! Information about what filters should be used - integer :: n_filters ! Number of filters - !type(TallyFilter), allocatable :: filters(:) ! Filter data (type/bins) + integer :: n_filters ! Number of filters type(TallyFilterContainer), allocatable :: filters(:) ! The stride attribute is used for determining the index in the results @@ -127,10 +83,6 @@ module tally_header ! Tally precision triggers 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. end type TallyObject end module tally_header diff --git a/src/tally_initialize.F90 b/src/tally_initialize.F90 index 86e4520a56..a48faeead1 100644 --- a/src/tally_initialize.F90 +++ b/src/tally_initialize.F90 @@ -2,7 +2,7 @@ module tally_initialize use constants use global - use tally_header, only: TallyObject, TallyMapElement, TallyMapItem + use tally_header, only: TallyObject implicit none private @@ -23,7 +23,6 @@ contains allocate(global_tallies(N_GLOBAL_TALLIES)) call setup_tally_arrays() - call setup_tally_maps() end subroutine configure_tallies @@ -75,97 +74,6 @@ contains end subroutine setup_tally_arrays -!=============================================================================== -! SETUP_TALLY_MAPS creates a map that allows a quick determination of which -! tallies and bins need to be scored to when a particle makes a collision. This -! subroutine also sets the stride attribute for each tally as well as allocating -! storage for the results array. -!=============================================================================== - - subroutine setup_tally_maps() - -! integer :: i ! loop index for tallies -! integer :: j ! loop index for filters -! integer :: k ! loop index for bins -! integer :: bin ! filter bin entries -! integer :: type ! type of tally filter -! type(TallyObject), pointer :: t -! -! ! allocate tally map array -- note that we don't need a tally map for the -! ! energy_in and energy_out filters -! allocate(tally_maps(N_FILTER_TYPES - 3)) -! -! ! allocate list of items for each different filter type -! allocate(tally_maps(FILTER_UNIVERSE) % items(n_universes)) -! allocate(tally_maps(FILTER_MATERIAL) % items(n_materials)) -! allocate(tally_maps(FILTER_CELL) % items(n_cells)) -! allocate(tally_maps(FILTER_CELLBORN) % items(n_cells)) -! allocate(tally_maps(FILTER_SURFACE) % items(n_surfaces)) -! -! TALLY_LOOP: do i = 1, n_tallies -! ! Get pointer to tally -! t => tallies(i) -! -! ! No need to set up tally maps for surface current tallies -! if (t % type == TALLY_SURFACE_CURRENT) cycle -! -! FILTER_LOOP: do j = 1, t % n_filters -! ! Determine type of filter -! type = t % filters(j) % type -! -! if (type == FILTER_CELL .or. type == FILTER_SURFACE .or. & -! type == FILTER_MATERIAL .or. type == FILTER_UNIVERSE .or. & -! type == FILTER_CELLBORN) then -! -! ! Add map elements -! BIN_LOOP: do k = 1, t % filters(j) % n_bins -! bin = t % filters(j) % int_bins(k) -! call add_map_element(tally_maps(type) % items(bin), i, k) -! end do BIN_LOOP -! end if -! -! end do FILTER_LOOP -! -! end do TALLY_LOOP - - end subroutine setup_tally_maps - -!=============================================================================== -! ADD_MAP_ELEMENT adds a pair of tally and bin indices to the list for a given -! cell/surface/etc. -!=============================================================================== - - subroutine add_map_element(item, index_tally, index_bin) - - type(TallyMapItem), intent(inout) :: item - integer, intent(in) :: index_tally ! index in tallies array - integer, intent(in) :: index_bin ! index in bins array - - integer :: n ! size of elements array - type(TallyMapElement), allocatable :: temp(:) - - if (.not. allocated(item % elements)) then - allocate(item % elements(1)) - item % elements(1) % index_tally = index_tally - item % elements(1) % index_bin = index_bin - else - ! determine size of elements array - n = size(item % elements) - - ! allocate temporary storage and copy elements - allocate(temp(n+1)) - temp(1:n) = item % elements - - ! move allocation back to main array - call move_alloc(FROM=temp, TO=item%elements) - - ! set new element - item % elements(n+1) % index_tally = index_tally - item % elements(n+1) % index_bin = index_bin - end if - - end subroutine add_map_element - !=============================================================================== ! ADD_TALLIES extends the tallies array with a new group of tallies and assigns ! pointers to each group. This is called once for user tallies, once for CMFD From c4e1844c99ef94d7754ff00ce747943ed838bc24 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 1 Jul 2016 00:40:43 -0500 Subject: [PATCH 099/417] Remove type attribute from filters --- src/cmfd_input.F90 | 4 --- src/input_xml.F90 | 55 +++++++++++++++++++++---------------- src/tally.F90 | 34 ----------------------- src/tally_filter.F90 | 2 +- src/tally_filter_header.F90 | 1 - 5 files changed, 33 insertions(+), 63 deletions(-) diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index ec99a1c669..69b9eb6c02 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -415,7 +415,6 @@ contains allocate(MeshFilter::filters(n_filters) % obj) select type (filt => filters(n_filters) % obj) type is (MeshFilter) - filt % type = FILTER_MESH filt % n_bins = product(m % dimension) filt % mesh = n_user_meshes + 1 end select @@ -427,7 +426,6 @@ contains allocate(EnergyFilter::filters(n_filters) % obj) select type (filt => filters(n_filters) % obj) type is (EnergyFilter) - filt % type = FILTER_ENERGYIN ng = get_arraysize_double(node_mesh, "energy") filt % n_bins = ng - 1 allocate(filt % bins(ng)) @@ -494,7 +492,6 @@ contains allocate(EnergyoutFilter::filters(n_filters) % obj) select type (filt => filters(n_filters) % obj) type is (EnergyoutFilter) - filt % type = FILTER_ENERGYOUT ng = get_arraysize_double(node_mesh, "energy") filt % n_bins = ng - 1 allocate(filt % bins(ng)) @@ -536,7 +533,6 @@ contains allocate(SurfaceFilter::filters(n_filters) % obj) select type(filt => filters(n_filters) % obj) type is(SurfaceFilter) - filt % type = FILTER_SURFACE filt % n_bins = 2 * m % n_dimension allocate(filt % surfaces(2 * m % n_dimension)) if (m % n_dimension == 2) then diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 28accf9df8..c8e5b28aff 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2921,60 +2921,65 @@ contains allocate(DistribcellFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (DistribcellFilter) - filt % type = FILTER_DISTRIBCELL if (n_words /= 1) call fatal_error("Only one cell can be & &specified per distribcell filter.") ! Store bins call get_node_value(node_filt, "bins", filt % cell) end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_DISTRIBCELL) = j case ('cell') ! Allocate and declare the filter type allocate(CellFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (CellFilter) - filt % type = FILTER_CELL ! Allocate and store bins filt % n_bins = n_words allocate(filt % cells(n_words)) call get_node_array(node_filt, "bins", filt % cells) end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_CELL) = j case ('cellborn') ! Allocate and declare the filter type allocate(CellbornFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (CellbornFilter) - filt % type = FILTER_CELLBORN ! Allocate and store bins filt % n_bins = n_words allocate(filt % cells(n_words)) call get_node_array(node_filt, "bins", filt % cells) end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_CELLBORN) = j case ('material') ! Allocate and declare the filter type allocate(MaterialFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (MaterialFilter) - filt % type = FILTER_MATERIAL ! Allocate and store bins filt % n_bins = n_words allocate(filt % materials(n_words)) call get_node_array(node_filt, "bins", filt % materials) end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_MATERIAL) = j case ('universe') ! Allocate and declare the filter type allocate(UniverseFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (UniverseFilter) - filt % type = FILTER_UNIVERSE ! Allocate and store bins filt % n_bins = n_words allocate(filt % universes(n_words)) call get_node_array(node_filt, "bins", filt % universes) end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_UNIVERSE) = j case ('surface') call fatal_error("Surface filter is not yet supported!") @@ -2982,19 +2987,19 @@ contains allocate(SurfaceFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (SurfaceFilter) - filt % type = FILTER_SURFACE ! Allocate and store bins filt % n_bins = n_words allocate(filt % surfaces(n_words)) call get_node_array(node_filt, "bins", filt % surfaces) end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_SURFACE) = j case ('mesh') ! Allocate and declare the filter type allocate(MeshFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (MeshFilter) - filt % type = FILTER_MESH if (n_words /= 1) call fatal_error("Only one mesh can be & &specified per mesh filter.") @@ -3018,13 +3023,14 @@ contains ! Store the index of the mesh filt % mesh = i_mesh end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_MESH) = j case ('energy') ! Allocate and declare the filter type allocate(EnergyFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (EnergyFilter) - filt % type = FILTER_ENERGYIN ! Allocate and store bins filt % n_bins = n_words - 1 allocate(filt % bins(n_words)) @@ -3043,13 +3049,14 @@ contains end if end if end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_ENERGYIN) = j case ('energyout') ! Allocate and declare the filter type allocate(EnergyoutFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (EnergyoutFilter) - filt % type = FILTER_ENERGYOUT ! Allocate and store bins filt % n_bins = n_words - 1 allocate(filt % bins(n_words)) @@ -3068,6 +3075,8 @@ contains end if end if end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_ENERGYOUT) = j ! Set to analog estimator t % estimator = ESTIMATOR_ANALOG @@ -3086,7 +3095,6 @@ contains allocate(DelayedGroupFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (DelayedGroupFilter) - filt % type = FILTER_DELAYEDGROUP ! Allocate and store bins filt % n_bins = n_words allocate(filt % groups(n_words)) @@ -3103,13 +3111,14 @@ contains end if end do end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_DELAYEDGROUP) = j case ('mu') ! Allocate and declare the filter type allocate(MuFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (MuFilter) - filt % type = FILTER_MU ! Allocate and store bins filt % n_bins = n_words - 1 allocate(filt % bins(n_words)) @@ -3135,6 +3144,8 @@ contains end if end if end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_MU) = j ! Set to analog estimator t % estimator = ESTIMATOR_ANALOG @@ -3144,7 +3155,6 @@ contains allocate(PolarFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (PolarFilter) - filt % type = FILTER_POLAR ! Allocate and store bins filt % n_bins = n_words - 1 allocate(filt % bins(n_words)) @@ -3170,13 +3180,14 @@ contains end if end if end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_POLAR) = j case ('azimuthal') ! Allocate and declare the filter type allocate(AzimuthalFilter::t % filters(j) % obj) select type (filt => t % filters(j) % obj) type is (AzimuthalFilter) - filt % type = FILTER_AZIMUTHAL ! Allocate and store bins filt % n_bins = n_words - 1 allocate(filt % bins(n_words)) @@ -3203,6 +3214,8 @@ contains end if end if end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_AZIMUTHAL) = j case default ! Specified tally filter is invalid, raise error @@ -3212,11 +3225,6 @@ contains end select - ! Set find_filter, e.g. if filter(3) has type FILTER_CELL, then - ! find_filter(FILTER_CELL) would be set to 3. - - t % find_filter(t % filters(j) % obj % type) = j - end do READ_FILTERS ! Check that both cell and surface weren't specified @@ -3265,7 +3273,8 @@ contains ! Check if a delayedgroup filter is present for this tally do l = 1, t % n_filters - if (t % filters(l) % obj % type == FILTER_DELAYEDGROUP) then + select type(filt => t % filters(l) % obj) + type is (DelayedGroupFilter) call warning("A delayedgroup filter was used on a total & &nuclide tally. Cross section libraries are not & &guaranteed to have the same delayed group structure & @@ -3274,7 +3283,7 @@ contains &all isotopes while the JEFF 3.1.1 library has the same & &delayed group structure across all isotopes. Use with & &caution!") - end if + end select end do t % nuclide_bins(j) = -1 @@ -3329,7 +3338,8 @@ contains ! Check if a delayedgroup filter is present for this tally do l = 1, t % n_filters - if (t % filters(l) % obj % type == FILTER_DELAYEDGROUP) then + select type(filt => t % filters(l) % obj) + type is (DelayedGroupFilter) call warning("A delayedgroup filter was used on a total nuclide & &tally. Cross section libraries are not guaranteed to have the& & same delayed group structure across all isotopes. In & @@ -3337,7 +3347,7 @@ contains &group structure across all isotopes while the JEFF 3.1.1 & &library has the same delayed group structure across all & &isotopes. Use with caution!") - end if + end select end do end if @@ -3673,7 +3683,6 @@ contains allocate(SurfaceFilter::t % filters(t % n_filters) % obj) select type (filt => t % filters(t % n_filters) % obj) type is (SurfaceFilter) - filt % type = FILTER_SURFACE filt % n_bins = 2 * m % n_dimension allocate(filt % surfaces(2 * m % n_dimension)) if (m % n_dimension == 2) then diff --git a/src/tally.F90 b/src/tally.F90 index dcf1215ebe..fed64324b3 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2179,40 +2179,6 @@ contains end subroutine score_collision_tally -!=============================================================================== -! GET_SCORING_BINS determines a combination of filter bins that should be scored -! for a tally based on the particle's current attributes. -!=============================================================================== - - subroutine get_scoring_bins(p, i_tally, found_bin) - - type(Particle), intent(in) :: p - integer, intent(in) :: i_tally - logical, intent(out) :: found_bin - - integer :: i - real(8) :: filt_score ! score applied by filters - type(TallyObject), pointer :: t - - found_bin = .true. - t => tallies(i_tally) - matching_bins(1:t%n_filters) = 1 - - FILTER_LOOP: do i = 1, t % n_filters - - call t % filters(i) % obj % get_next_bin(p, t % estimator, NO_BIN_FOUND, & - matching_bins(i), filt_score) - - ! 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 - !=============================================================================== ! SCORE_SURFACE_CURRENT tallies surface crossings in a mesh tally by manually ! determining which mesh surfaces were crossed diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index 097c11e3b2..eeb720fd28 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -435,7 +435,7 @@ contains integer, intent(in) :: estimator integer, intent(in) :: current_bin integer, intent(out) :: next_bin - real(8), intent(out) :: weight + real(8), intent(out) :: weight integer :: i, j, start logical :: bin_found diff --git a/src/tally_filter_header.F90 b/src/tally_filter_header.F90 index 505579b759..5b5e278e37 100644 --- a/src/tally_filter_header.F90 +++ b/src/tally_filter_header.F90 @@ -15,7 +15,6 @@ module tally_filter_header type, abstract :: TallyFilter integer :: n_bins = 0 - integer :: type contains procedure(get_next_bin_), deferred :: get_next_bin procedure(to_statepoint_), deferred :: to_statepoint From b4f056feb58ae9cbad2112696554ac4f3178d2aa Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 1 Jul 2016 11:22:44 -0400 Subject: [PATCH 100/417] added chi-prompt and inverse-velocity mgxs --- openmc/mgxs/mgxs.py | 852 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 771 insertions(+), 81 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index fd6d0ee494..acc240e045 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -38,8 +38,7 @@ MGXS_TYPES = ['total', 'chi', 'chi-delayed', 'chi-prompt', - 'velocity'] - + 'inverse-velocity'] # Supported domain types # TODO: Implement Mesh domains @@ -497,10 +496,10 @@ class MGXS(object): mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'chi': mgxs = Chi(domain, domain_type, energy_groups) - elif mgxs_type == 'chi-prompt': - mgxs = ChiPrompt(domain, domain_type, energy_groups) elif mgxs_type == 'chi-delayed': mgxs = ChiDelayed(domain, domain_type, energy_groups) + elif mgxs_type == 'chi-prompt': + mgxs = ChiPrompt(domain, domain_type, energy_groups) elif mgxs_type == 'velocity': mgxs = Velocity(domain, domain_type, energy_groups) @@ -794,10 +793,7 @@ class MGXS(object): cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) - if self.domain_type == 'mesh': - filter_bins.append(subdomain) - else: - filter_bins.append((subdomain,)) + filter_bins.append((subdomain,)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(groups, basestring): @@ -1168,19 +1164,18 @@ class MGXS(object): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - subdomains_list = [] + subdomains = [] if (len(self.domain.dimension) == 3): nx, ny, nz = self.domain.dimension for x in range(1,nx+1): for y in range(1,ny+1): for z in range(1,nz+1): - subdomains_list.append((x, y, z)) + subdomains.append((x, y, z)) else: nx, ny = self.domain.dimension for x in range(1,nx+1): for y in range(1,ny+1): - subdomains_list.append((x, y, 1)) - subdomains = [tuple(subdomains_list)] + subdomains.append((x, y, 1)) else: subdomains = [self.domain.id] @@ -1318,20 +1313,18 @@ class MGXS(object): domain_filter = self.xs_tally.find_filter('avg(distribcell)') subdomains = domain_filter.bins elif self.domain_type == 'mesh': - bins = [] + subdomains = [] if (len(self.domain.dimension) == 3): nx, ny, nz = self.domain.dimension for x in range(1,nx+1): for y in range(1,ny+1): for z in range(1,nz+1): - bins.append((x, y, z)) + subdomains.append((x, y, z)) else: nx, ny = self.domain.dimension for x in range(1,nx+1): for y in range(1,ny+1): - bins.append((x, y, 1)) - - subdomains = [tuple(bins)] + subdomains.append((x, y, 1)) else: subdomains = [self.domain.id] @@ -1770,13 +1763,10 @@ class MatrixMGXS(MGXS): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): cv.check_iterable_type('subdomains', subdomains, Integral, - max_depth=2) + max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) - if self.domain_type == 'mesh': - filter_bins.append(subdomain) - else: - filter_bins.append((subdomain,)) + filter_bins.append((subdomain,)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(in_groups, basestring): @@ -3602,13 +3592,10 @@ class ScatterMatrixXS(MatrixMGXS): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) - if self.domain_type == 'mesh': - filter_bins.append(subdomain) - else: - filter_bins.append((subdomain,)) + filter_bins.append((subdomain,)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(in_groups, basestring): @@ -4587,13 +4574,10 @@ class Chi(MGXS): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) - if self.domain_type == 'mesh': - filter_bins.append(subdomain) - else: - filter_bins.append((subdomain,)) + filter_bins.append((subdomain,)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(groups, basestring): @@ -4739,15 +4723,592 @@ class ChiDelayed(Chi): post-processing to compute spatially-homogenized and energy-integrated multi-group cross sections for multi-group neutronics calculations. At a minimum, one needs to set the :attr:`ChiDelayed.energy_groups` and - :attr:`ChiDelayed.domain` properties. Tallies for the flux and appropriate reaction - rates over the specified domain are generated automatically via the + :attr:`ChiDelayed.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the :attr:`ChiDelayed.tallies` property, which can then be appended to a :class:`openmc.Tallies` instance. For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the necessary data to compute multi-group cross sections from a :class:`openmc.StatePoint` instance. The derived multi-group cross section - can then be obtained from the :attr:`Chi.xs_tally` property. + can then be obtained from the :attr:`ChiDelayed.xs_tally` property. + + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + fission spectrum is calculated as: + + .. math:: + + \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in V} dr + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) + \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \nu\sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, + E') \psi(r, E', \Omega') \\ + \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle + \nu\sigma_f \phi \rangle} + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + delayed_groups : list of int + Delayed groups to filter out the xs + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`ChiDelayed.tally_keys` property and + values are instances of :class:`openmc.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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name='', delayed_groups=None): + super(ChiDelayed, self).__init__(domain, domain_type, groups, by_nuclide, name) + self._rxn_type = 'chi-delayed' + self._delayed_groups = None + + if delayed_groups is not None: + self.delayed_groups = delayed_groups + + @property + def delayed_groups(self): + return self._delayed_groups + + @property + def num_delayed_groups(self): + if self._delayed_groups != None: + return len(self.delayed_groups) + else: + return 0 + + @delayed_groups.setter + def delayed_groups(self, delayed_groups): + cv.check_iterable_type('delayed groups', delayed_groups, int) + self._delayed_groups = delayed_groups + + @property + def filters(self): + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energyout = openmc.Filter('energyout', group_edges) + energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) + if self.delayed_groups != None: + delayed_group_filter = openmc.Filter('delayedgroup', self.delayed_groups) + return [[delayed_group_filter, energyin], [delayed_group_filter, energyout]] + else: + return [[energyin], [energyout]] + + @property + def scores(self): + return ['delayed-nu-fission', 'delayed-nu-fission'] + + @property + def tally_keys(self): + return ['delayed-nu-fission-in', 'delayed-nu-fission-out'] + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['delayed-nu-fission-out'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + @property + def xs_tally(self): + + if self._xs_tally is None: + delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] + + # Remove coarse energy filter to keep it out of tally arithmetic + energy_filter = delayed_nu_fission_in.find_filter('energy') + delayed_nu_fission_in.remove_filter(energy_filter) + + # Compute chi + self._xs_tally = self.rxn_rate_tally / delayed_nu_fission_in + super(ChiDelayed, self)._compute_xs() + + # Add the coarse energy filter back to the nu-fission tally + delayed_nu_fission_in.filters.append(energy_filter) + + return self._xs_tally + + def get_slice(self, nuclides=[], groups=[]): + """Build a sliced ChiDelayed 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 + ------- + openmc.mgxs.MGXS + A new MGXS 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 delayed-nu-fission-in since its + # group structure will work in super MGXS.get_slice(...) method + delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] + energy_filter = delayed_nu_fission_in.find_filter('energy') + delayed_nu_fission_in.remove_filter(energy_filter) + + # Call super class method and null out derived tallies + slice_xs = super(ChiDelayed, 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 + delayed_nu_fission_out = slice_xs.tallies['delayed-nu-fission-out'] + tally_slice = delayed_nu_fission_out.get_slice(filters=['energyout'], + filter_bins=filter_bins) + slice_xs._tallies['delayed-nu-fission-out'] = tally_slice + + # Add energy filter back to nu-fission-in tallies + self.tallies['delayed-nu-fission-in'].add_filter(energy_filter) + slice_xs._tallies['delayed-nu-fission-in'].add_filter(energy_filter) + + slice_xs.sparse = self.sparse + return slice_xs + + def merge(self, other): + """Merge another ChiDelayed with this one + + If results have been loaded from a statepoint, then ChiDelayed are only + mergeable along one and only one of energy groups or nuclides. + + Parameters + ---------- + other : openmc.mgxs.MGXS + MGXS to merge with this one + + Returns + ------- + merged_mgxs : openmc.mgxs.MGXS + Merged MGXS + """ + + if not self.can_merge(other): + raise ValueError('Unable to merge ChiDelayed') + + # 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 Delayed 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'): + """Prints a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will + report the cross sections summed over all nuclides. Defaults to + 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + 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 == 'mesh': + subdomains = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains.append((x, y, 1)) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + if nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + string += '{0: <16}\n'.format('\tEnergy Groups:') + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' + + # Loop over energy groups ranges + for group in range(1, self.num_groups + 1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += \ + '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if xs_type != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + if xs_type == 'macro': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') + else: + string += '{0: <16}\n'.format('\tCross Sections [barns]:') + + if self.delayed_groups != None: + + for delayed_group in range(1, self.num_delayed_groups+1): + + template = '{0: <12}Delayed Group {1}:\t' + string += template.format('', delayed_group) + string += '\n' + + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + average = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='mean', + delayed_groups=[delayed_group]) + rel_err = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='rel_err', + delayed_groups=[delayed_group]) + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + + else: + + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + average = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + + + print(string) + + def get_xs(self, groups='all', subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', + value='mean', delayed_groups='all', **kwargs): + """Returns an array of the fission spectrum. + + This method constructs a 2D NumPy array for the requested multi-group + cross section data data for one or more energy groups and subdomains. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest. Defaults to 'all'. + delayed_groups : Iterable of Integral or 'all' + Delayed groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + This parameter is not relevant for chi but is included here to + mirror the parent MGXS.get_xs(...) class method + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. + + Returns + ------- + 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. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(groups, basestring): + cv.check_iterable_type('groups', groups, Integral) + for group in groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of delayed group tuples for all requested groups + if not isinstance(delayed_groups, basestring): + cv.check_iterable_type('delayed_groups', delayed_groups, Integral) + for delayed_group in delayed_groups: + filters.append('delayedgroups') + filter_bins.append((delayed_group,)) + + # If chi delayed was computed for each nuclide in the domain + if self.by_nuclide: + + # Get the sum as the fission source weighted average chi for all + # nuclides in the domain + if nuclides == 'sum' or nuclides == ['sum']: + + # Retrieve the fission production tallies + delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] + delayed_nu_fission_out = self.tallies['delayed-nu-fission-out'] + + # Sum out all nuclides + nuclides = self.get_all_nuclides() + delayed_nu_fission_in = delayed_nu_fission_in.summation(nuclides=nuclides) + delayed_nu_fission_out = delayed_nu_fission_out.summation(nuclides=nuclides) + + # Remove coarse energy filter to keep it out of tally arithmetic + energy_filter = delayed_nu_fission_in.find_filter('energy') + delayed_nu_fission_in.remove_filter(energy_filter) + + # Compute chi and store it as the xs_tally attribute so we can + # use the generic get_xs(...) method + xs_tally = delayed_nu_fission_out / delayed_nu_fission_in + + # Add the coarse energy filter back to the nu-fission tally + delayed_nu_fission_in.filters.append(energy_filter) + + xs = xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Get chi delayed for all nuclides in the domain + elif nuclides == 'all': + nuclides = self.get_all_nuclides() + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # Get chi delayed for user-specified nuclides in the domain + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # If chi delayed was computed as an average of nuclides in the domain + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + + # Reshape tally data array with separate axes for domain and energy + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + num_subdomains = int(xs.shape[0] / num_groups) + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_1d(xs) + + xs = np.nan_to_num(xs) + return xs + + +class ChiPrompt(Chi): + """The prompt fission spectrum. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`ChiPrompt.energy_groups` and + :attr:`ChiPrompt.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`ChiPrompt.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`ChiPrompt.xs_tally` property. For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the fission spectrum is calculated as: @@ -4805,8 +5366,8 @@ class ChiDelayed(Chi): The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys - are strings listed in the :attr:`Chi.tally_keys` property and values are - instances of :class:`openmc.Tally`. + are strings listed in the :attr:`ChiPrompt.tally_keys` property and + values are instances of :class:`openmc.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 @@ -4841,21 +5402,32 @@ class ChiDelayed(Chi): def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(ChiDelayed, self).__init__(domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'chi-delayed' + super(ChiPrompt, self).__init__(domain, domain_type, groups, by_nuclide, name) + self._rxn_type = 'chi-prompt' @property def scores(self): - return ['delayed-nu-fission', 'delayed-nu-fission'] + return ['delayed-nu-fission', 'delayed-nu-fission', + 'nu-fission', 'nu-fission'] + + @property + def filters(self): + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energyout = openmc.Filter('energyout', group_edges) + energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) + return [[energyin], [energyout], [energyin], [energyout]] @property def tally_keys(self): - return ['delayed-nu-fission-in', 'delayed-nu-fission-out'] + return ['delayed-nu-fission-in', 'delayed-nu-fission-out', + 'nu-fission-in', 'nu-fission-out'] @property def rxn_rate_tally(self): if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['delayed-nu-fission-out'] + self._rxn_rate_tally = self.tallies['nu-fission-out'] - \ + self.tallies['delayed-nu-fission-out'] self._rxn_rate_tally.sparse = self.sparse return self._rxn_rate_tally @@ -4863,23 +5435,26 @@ class ChiDelayed(Chi): def xs_tally(self): if self._xs_tally is None: - nu_fission_in = self.tallies['delayed-nu-fission-in'] + delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] + nu_fission_in = self.tallies['nu-fission-in'] + prompt_nu_fission_in = nu_fission_in - delayed_nu_fission_in # Remove coarse energy filter to keep it out of tally arithmetic - energy_filter = nu_fission_in.find_filter('energy') - nu_fission_in.remove_filter(energy_filter) + energy_filter = prompt_nu_fission_in.find_filter('energy') + prompt_nu_fission_in.remove_filter(energy_filter) # Compute chi - self._xs_tally = self.rxn_rate_tally / nu_fission_in - super(ChiDelayed, self)._compute_xs() + self._xs_tally = self.rxn_rate_tally / prompt_nu_fission_in + super(ChiPrompt, self)._compute_xs() # Add the coarse energy filter back to the nu-fission tally - nu_fission_in.filters.append(energy_filter) + prompt_nu_fission_in.filters.append(energy_filter) return self._xs_tally def get_slice(self, nuclides=[], groups=[]): - """Build a sliced Chi for the specified nuclides and energy groups. + """Build a sliced ChiDelayed 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 @@ -4904,14 +5479,16 @@ class ChiDelayed(Chi): """ - # Temporarily remove energy filter from nu-fission-in since its + # Temporarily remove energy filter from delayed-nu-fission-in since its # group structure will work in super MGXS.get_slice(...) method - nu_fission_in = self.tallies['delayed-nu-fission-in'] - energy_filter = nu_fission_in.find_filter('energy') - nu_fission_in.remove_filter(energy_filter) + delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] + nu_fission_in = self.tallies['nu-fission-in'] + prompt_nu_fission_in = nu_fission_in - delayed_nu_fission_in + energy_filter = prompt_nu_fission_in.find_filter('energy') + prompt_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 = super(ChiPrompt, self).get_slice(nuclides, groups) slice_xs._rxn_rate_tally = None slice_xs._xs_tally = None @@ -4924,22 +5501,22 @@ class ChiDelayed(Chi): filter_bins = [tuple(filter_bins)] # Slice nu-fission-out tally along energyout filter - nu_fission_out = slice_xs.tallies['delayed-nu-fission-out'] - tally_slice = nu_fission_out.get_slice(filters=['energyout'], - filter_bins=filter_bins) - slice_xs._tallies['delayed-nu-fission-out'] = tally_slice + prompt_nu_fission_out = slice_xs.tallies['nu-fission-out'] - \ + slice_xs.tallies['delayed-nu-fission-out'] + tally_slice = prompt_nu_fission_out.get_slice(filters=['energyout'], + filter_bins=filter_bins) + slice_xs._tallies['prompt-nu-fission-out'] = tally_slice # Add energy filter back to nu-fission-in tallies - self.tallies['delayed-nu-fission-in'].add_filter(energy_filter) - slice_xs._tallies['delayed-nu-fission-in'].add_filter(energy_filter) + slice_xs._tallies['prompt-nu-fission-in'].add_filter(energy_filter) slice_xs.sparse = self.sparse return slice_xs def merge(self, other): - """Merge another Chi with this one + """Merge another ChiPrompt with this one - If results have been loaded from a statepoint, then Chi are only + If results have been loaded from a statepoint, then ChiPrompt are only mergeable along one and only one of energy groups or nuclides. Parameters @@ -4954,7 +5531,7 @@ class ChiDelayed(Chi): """ if not self.can_merge(other): - raise ValueError('Unable to merge ChiDelayed') + raise ValueError('Unable to merge ChiPrompt') # Create deep copy of tally to return as merged tally merged_mgxs = copy.deepcopy(self) @@ -4973,7 +5550,7 @@ class ChiDelayed(Chi): # The nuclides must be mutually exclusive for nuclide in self.nuclides: if nuclide in other.nuclides: - msg = 'Unable to merge Chi Delayed with shared nuclides' + msg = 'Unable to merge Chi Prompt with shared nuclides' raise ValueError(msg) # Concatenate lists of nuclides for the merged MGXS @@ -5037,13 +5614,10 @@ class ChiDelayed(Chi): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) - if self.domain_type == 'mesh': - filter_bins.append(subdomain) - else: - filter_bins.append((subdomain,)) + filter_bins.append((subdomain,)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(groups, basestring): @@ -5052,7 +5626,7 @@ class ChiDelayed(Chi): filters.append('energyout') filter_bins.append((self.energy_groups.get_group_bounds(group),)) - # If chi was computed for each nuclide in the domain + # If chi delayed was computed for each nuclide in the domain if self.by_nuclide: # Get the sum as the fission source weighted average chi for all @@ -5060,43 +5634,45 @@ class ChiDelayed(Chi): if nuclides == 'sum' or nuclides == ['sum']: # Retrieve the fission production tallies - nu_fission_in = self.tallies['delayed-nu-fission-in'] - nu_fission_out = self.tallies['delayed-nu-fission-out'] + prompt_nu_fission_in = self.tallies['nu-fission-in'] - \ + self.tallies['delayed-nu-fission-in'] + prompt_nu_fission_out = self.tallies['nu-fission-out'] - \ + self.tallies['delayed-nu-fission-out'] # Sum out all nuclides nuclides = self.get_all_nuclides() - nu_fission_in = nu_fission_in.summation(nuclides=nuclides) - nu_fission_out = nu_fission_out.summation(nuclides=nuclides) + prompt_nu_fission_in = prompt_nu_fission_in.summation(nuclides=nuclides) + prompt_nu_fission_out = prompt_nu_fission_out.summation(nuclides=nuclides) # Remove coarse energy filter to keep it out of tally arithmetic - energy_filter = nu_fission_in.find_filter('energy') - nu_fission_in.remove_filter(energy_filter) + energy_filter = prompt_nu_fission_in.find_filter('energy') + prompt_nu_fission_in.remove_filter(energy_filter) # Compute chi and store it as the xs_tally attribute so we can # use the generic get_xs(...) method - xs_tally = nu_fission_out / nu_fission_in + xs_tally = prompt_nu_fission_out / prompt_nu_fission_in # Add the coarse energy filter back to the nu-fission tally - nu_fission_in.filters.append(energy_filter) + prompt_nu_fission_in.filters.append(energy_filter) xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) - # Get chi for all nuclides in the domain + # Get chi delayed for all nuclides in the domain elif nuclides == 'all': nuclides = self.get_all_nuclides() xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, nuclides=nuclides, value=value) - # Get chi for user-specified nuclides in the domain + # Get chi prompt for user-specified nuclides in the domain else: cv.check_iterable_type('nuclides', nuclides, basestring) xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, nuclides=nuclides, value=value) - # If chi was computed as an average of nuclides in the domain + # If chi prompt was computed as an average of nuclides in the domain else: xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) @@ -5123,3 +5699,117 @@ class ChiDelayed(Chi): xs = np.nan_to_num(xs) return xs + + +class InverseVelocity(MGXS): + """An inverse velocity multi-group cross section. + + Absorption is defined as all reactions that do not produce secondary + neutrons (disappearance) plus fission reactions. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group absorption cross sections for multi-group neutronics + calculations. At a minimum, one needs to set the + :attr:`AbsorptionXS.energy_groups` and :attr:`AbsorptionXS.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`AbsorptionXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`AbsorptionXS.xs_tally` property. + + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + absorption cross section is calculated as: + + .. math:: + + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_a (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`AbsorptionXS.tally_keys` property and + values are instances of :class:`openmc.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 : 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 : int + The number of subdomains is unity for 'material', 'cell' and 'universe' + domain types. 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) and the number of mesh cells for + 'mesh' domain types. + 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(InverseVelocity, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'inverse-velocity' From d97c7ea4b354b8e6f30a5540051bad828f2ea482 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 1 Jul 2016 16:32:25 -0500 Subject: [PATCH 101/417] Add overlapping cells and universes to tally test --- tests/test_tallies/inputs_true.dat | 2 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tallies/test_tallies.py | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index e3d37be300..0cc1084bf4 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -ea09926d8f5c6c96529bf5529f4deb3be78eda2da80adbbf3440147c337587358c2b1823bc72df9463676135573eb481dcd361b735f18365216645ee81092f1e \ No newline at end of file +51e84302cef4982ccd82a546bc3dea0d33ec1976e0825df69fae04e3c6c28859a6e41f0b0f96ed6a9fec9dd6782c984ffefa493eeb40bb23bcd0bd7376412c46 \ No newline at end of file diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index ff3a828454..96450f3e09 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -a0c7d6ca246ecd7dd5fed06373af142390971401c4e97744f29e55810ab9c231c97c4d8947cdf0b3d2df0ae829a9ddf768e5b2d889bbea34f2b6db0e567db884 \ No newline at end of file +d890ab7b790d6672ce94ab4144c5f6b1a7ffae63cfe3bff5cdcf75a1458e3819650b547de9c137a223bc2725c7d7670b06636377f55b69078274a89ebc7c5851 \ No newline at end of file diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index 9e40d4185d..439d5573bf 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -113,10 +113,11 @@ class TalliesTestHarness(PyAPITestHarness): polar_tally4.estimator = 'tracklength' universe_tally = Tally() - universe_tally.filters = [Filter(type='universe', bins=(1, 2, 3, 4))] + universe_tally.filters = [ + Filter(type='universe', bins=(1, 2, 3, 4, 6, 8))] universe_tally.scores = ['total'] - cell_filter = Filter(type='cell', bins=(10, 21, 22, 23)) + cell_filter = Filter(type='cell', bins=(10, 21, 22, 23, 60)) score_tallies = [Tally(), Tally(), Tally()] for t in score_tallies: t.filters = [cell_filter] @@ -127,7 +128,7 @@ class TalliesTestHarness(PyAPITestHarness): score_tallies[1].estimator = 'analog' score_tallies[2].estimator = 'collision' - cell_filter2 = Filter(type='cell', bins=(21, 22, 23, 27, 28, 29)) + cell_filter2 = Filter(type='cell', bins=(21, 22, 23, 27, 28, 29, 60)) flux_tallies = [Tally() for i in range(4)] for t in flux_tallies: t.filters = [cell_filter2] From c7a0b716d26779b61c197a5bfcf0b64a884c9c7b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 1 Jul 2016 22:57:14 +0700 Subject: [PATCH 102/417] General cleanup -- both bugs and style issues -- based on running pylint --- openmc/arithmetic.py | 7 +++-- openmc/cell.py | 5 ++-- openmc/checkvalue.py | 4 +-- openmc/cmfd.py | 6 ++--- openmc/element.py | 7 ++--- openmc/filter.py | 5 ++-- openmc/geometry.py | 30 +++++++++++---------- openmc/lattice.py | 9 +++---- openmc/macroscopic.py | 10 ++----- openmc/material.py | 26 +++++++++--------- openmc/mesh.py | 17 ++++++------ openmc/mgxs/library.py | 54 ++++++++++++++----------------------- openmc/mgxs/mgxs.py | 37 +++++++++++++------------ openmc/mgxs_library.py | 17 +++++------- openmc/nuclide.py | 23 ++++++---------- openmc/opencg_compatible.py | 33 ++++++++--------------- openmc/particle_restart.py | 3 --- openmc/plots.py | 13 ++++----- openmc/region.py | 4 +-- openmc/settings.py | 28 ++++++++++--------- openmc/source.py | 8 ++++++ openmc/statepoint.py | 2 +- openmc/stats/univariate.py | 4 +-- openmc/summary.py | 15 ++++++----- openmc/surface.py | 23 +++++++++------- openmc/tallies.py | 54 +++++++++++++++++-------------------- openmc/trigger.py | 7 ++--- openmc/universe.py | 15 +++++------ setup.py | 1 - 29 files changed, 215 insertions(+), 252 deletions(-) diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index f9ef58db89..74ed760c7a 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -1,6 +1,5 @@ import sys import copy -from numbers import Integral from collections import Iterable import numpy as np @@ -321,7 +320,7 @@ class CrossFilter(object): @type.setter def type(self, filter_type): - if filter_type not in _FILTER_TYPES.values(): + if filter_type not in _FILTER_TYPES: msg = 'Unable to set CrossFilter type to "{0}" since it ' \ 'is not one of the supported types'.format(filter_type) raise ValueError(msg) @@ -576,7 +575,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 @@ -691,7 +690,7 @@ class AggregateFilter(object): @type.setter def type(self, filter_type): - if filter_type not in _FILTER_TYPES.values(): + if filter_type not in _FILTER_TYPES: msg = 'Unable to set AggregateFilter type to "{0}" since it ' \ 'is not one of the supported types'.format(filter_type) raise ValueError(msg) diff --git a/openmc/cell.py b/openmc/cell.py index 9ff5d1fa30..9055f10e59 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -21,6 +21,7 @@ AUTO_CELL_ID = 10000 def reset_auto_cell_id(): + """Reset counter for auto-generated cell IDs.""" global AUTO_CELL_ID AUTO_CELL_ID = 10000 @@ -421,7 +422,7 @@ class Cell(object): # Append all Cells in each Cell in the Universe to the dictionary cells = self.get_all_cells() - for cell_id, cell in cells.items(): + for cell in cells.values(): materials.update(cell.get_all_materials()) return materials @@ -497,7 +498,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/openmc/checkvalue.py b/openmc/checkvalue.py index cc0e1190df..7c0dff99dd 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -1,6 +1,5 @@ import copy from collections import Iterable -from numbers import Integral, Real import numpy as np @@ -162,7 +161,7 @@ def check_length(name, value, length_min, length_max=None): else: msg = 'Unable to set "{0}" to "{1}" since it must have length ' \ 'between "{2}" and "{3}"'.format(name, value, length_min, - length_max) + length_max) raise ValueError(msg) @@ -255,6 +254,7 @@ class CheckedList(list): """ def __init__(self, expected_type, name, items=[]): + super(CheckedList, self).__init__() self.expected_type = expected_type self.name = name for item in items: diff --git a/openmc/cmfd.py b/openmc/cmfd.py index d4cce2af5a..76d8685ff1 100644 --- a/openmc/cmfd.py +++ b/openmc/cmfd.py @@ -15,9 +15,7 @@ from numbers import Real, Integral from xml.etree import ElementTree as ET import sys -import numpy as np - -from openmc.clean_xml import * +from openmc.clean_xml import clean_xml_indentation from openmc.checkvalue import (check_type, check_length, check_value, check_greater_than, check_less_than) @@ -188,7 +186,7 @@ class CMFDMesh(object): class CMFD(object): - """Parameters that control the use of coarse-mesh finite difference acceleration + r"""Parameters that control the use of coarse-mesh finite difference acceleration in OpenMC. This corresponds directly to the cmfd.xml input file. Attributes diff --git a/openmc/element.py b/openmc/element.py index 14c98d4952..2e22702d99 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -45,9 +45,9 @@ class Element(object): def __eq__(self, other): if isinstance(other, Element): - if self._name != other._name: + if self._name != other.name: return False - elif self._xs != other._xs: + elif self._xs != other.xs: return False else: return True @@ -68,9 +68,6 @@ class Element(object): def __hash__(self): return hash(repr(self)) - def __hash__(self): - return hash(repr(self)) - def __repr__(self): string = 'Element - {0}\n'.format(self._name) string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self._xs) diff --git a/openmc/filter.py b/openmc/filter.py index 72fb3b14ed..bc8b5bdf77 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -6,7 +6,6 @@ import sys import numpy as np from openmc import Mesh -from openmc.summary import Summary import openmc.checkvalue as cv @@ -391,7 +390,7 @@ class Filter(object): if self.type == 'mesh': # Convert (x,y,z) to a single bin -- this is similar to # subroutine mesh_indices_to_bin in openmc/src/mesh.F90. - if (len(self.mesh.dimension) == 3): + if len(self.mesh.dimension) == 3: nx, ny, nz = self.mesh.dimension val = (filter_bin[0] - 1) * ny * nz + \ (filter_bin[1] - 1) * nz + \ @@ -568,7 +567,7 @@ class Filter(object): mesh_key = 'mesh {0}'.format(self.mesh.id) # Find mesh dimensions - use 3D indices for simplicity - if (len(self.mesh.dimension) == 3): + if len(self.mesh.dimension) == 3: nx, ny, nz = self.mesh.dimension else: nx, ny = self.mesh.dimension diff --git a/openmc/geometry.py b/openmc/geometry.py index 2625ed3fa5..14fd48fb1e 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -1,11 +1,13 @@ -from collections import Iterable, OrderedDict +from collections import OrderedDict from xml.etree import ElementTree as ET import openmc -from openmc.clean_xml import * +from openmc.clean_xml import sort_xml_elements, clean_xml_indentation from openmc.checkvalue import check_type + def reset_auto_ids(): + """Reset counters for all auto-generated IDs""" openmc.reset_auto_material_id() openmc.reset_auto_surface_id() openmc.reset_auto_cell_id() @@ -40,10 +42,10 @@ class Geometry(object): @root_universe.setter def root_universe(self, root_universe): check_type('root universe', root_universe, openmc.Universe) - if root_universe._id != 0: + if root_universe.id != 0: msg = 'Unable to add root Universe "{0}" to Geometry since ' \ 'it has ID="{1}" instead of ' \ - 'ID=0'.format(root_universe, root_universe._id) + 'ID=0'.format(root_universe, root_universe.id) raise ValueError(msg) self._root_universe = root_universe @@ -281,9 +283,9 @@ class Geometry(object): The name to match case_sensitive : bool Whether to distinguish upper and lower case letters in each - material's name (default is True) + material's name (default is False) matching : bool - Whether the names must match completely (default is True) + Whether the names must match completely (default is False) Returns ------- @@ -321,9 +323,9 @@ class Geometry(object): The name to search match case_sensitive : bool Whether to distinguish upper and lower case letters in each - cell's name (default is True) + cell's name (default is False) matching : bool - Whether the names must match completely (default is True) + Whether the names must match completely (default is False) Returns ------- @@ -361,9 +363,9 @@ class Geometry(object): The name to match case_sensitive : bool Whether to distinguish upper and lower case letters in each - cell's name (default is True) + cell's name (default is False) matching : bool - Whether the names must match completely (default is True) + Whether the names must match completely (default is False) Returns ------- @@ -401,9 +403,9 @@ class Geometry(object): The name to match case_sensitive : bool Whether to distinguish upper and lower case letters in each - universe's name (default is True) + universe's name (default is False) matching : bool - Whether the names must match completely (default is True) + Whether the names must match completely (default is False) Returns ------- @@ -441,9 +443,9 @@ class Geometry(object): The name to match case_sensitive : bool Whether to distinguish upper and lower case letters in each - lattice's name (default is True) + lattice's name (default is False) matching : bool - Whether the names must match completely (default is True) + Whether the names must match completely (default is False) Returns ------- diff --git a/openmc/lattice.py b/openmc/lattice.py index 7690104c71..81144e4d81 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -6,7 +6,6 @@ from math import sqrt, floor from numbers import Real, Integral from xml.etree import ElementTree as ET import sys -import warnings import numpy as np @@ -429,14 +428,14 @@ class RectLattice(Lattice): # For 2D Lattices if self.ndim == 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) + 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) + path, distribcell_index) return offset @@ -908,7 +907,7 @@ class HexLattice(Lattice): # coordinates d_min = np.inf for idx in [(ix, ia, iz), (ix + 1, ia, iz), (ix, ia + 1, iz), - (ix + 1, ia + 1, iz)]: + (ix + 1, ia + 1, iz)]: p = self.get_local_coordinates(point, idx) d = p[0]**2 + p[1]**2 if d < d_min: diff --git a/openmc/macroscopic.py b/openmc/macroscopic.py index 9f67a50ba4..1fdf875e72 100644 --- a/openmc/macroscopic.py +++ b/openmc/macroscopic.py @@ -1,4 +1,3 @@ -from numbers import Integral import sys from openmc.checkvalue import check_type @@ -39,9 +38,9 @@ class Macroscopic(object): def __eq__(self, other): if isinstance(other, Macroscopic): - if self._name != other._name: + if self._name != other.name: return False - elif self._xs != other._xs: + elif self._xs != other.xs: return False else: return True @@ -78,8 +77,3 @@ class Macroscopic(object): def xs(self, xs): check_type('cross-section identifier', xs, basestring) self._xs = xs - - def __repr__(self): - string = 'Macroscopic - {0}\n'.format(self._name) - string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self.xs) - return string diff --git a/openmc/material.py b/openmc/material.py index 66c2320ea4..1ba8f533a9 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -1,16 +1,16 @@ -from collections import Iterable, OrderedDict +from collections import OrderedDict from copy import deepcopy from numbers import Real, Integral import warnings from xml.etree import ElementTree as ET import sys -if sys.version_info[0] >= 3: - basestring = str import openmc import openmc.checkvalue as cv -from openmc.clean_xml import * -from openmc.data import natural_abundance +from openmc.clean_xml import sort_xml_elements, clean_xml_indentation + +if sys.version_info[0] >= 3: + basestring = str # A static variable for auto-generated Material IDs @@ -18,6 +18,7 @@ AUTO_MATERIAL_ID = 10000 def reset_auto_material_id(): + """Reset counter for auto-generated material IDs.""" global AUTO_MATERIAL_ID AUTO_MATERIAL_ID = 10000 @@ -352,8 +353,8 @@ class Material(object): self._macroscopic = macroscopic else: msg = 'Unable to add a Macroscopic to Material ID="{0}", ' \ - 'Only One Macroscopic allowed per ' \ - 'Material!'.format(self._id, macroscopic) + 'Only one Macroscopic allowed per ' \ + 'Material!'.format(self._id) raise ValueError(msg) # Generally speaking, the density for a macroscopic object will @@ -380,7 +381,7 @@ class Material(object): raise ValueError(msg) # If the Material contains the Macroscopic, delete it - if macroscopic._name == self._macroscopic.name: + if macroscopic.name == self._macroscopic.name: self._macroscopic = None def add_element(self, element, percent, percent_type='ao', expand=False): @@ -446,7 +447,7 @@ class Material(object): """ - if not isinstance(nuclide, openmc.Element): + if not isinstance(element, openmc.Element): msg = 'Unable to remove "{0}" in Material ID="{1}" ' \ 'since it is not an Element'.format(self.id, element) raise ValueError(msg) @@ -534,7 +535,7 @@ class Material(object): def _get_macroscopic_xml(self, macroscopic): xml_element = ET.Element("macroscopic") - xml_element.set("name", macroscopic._name) + xml_element.set("name", macroscopic.name) if macroscopic.xs is not None: xml_element.set("xs", macroscopic.xs) @@ -640,7 +641,7 @@ class Material(object): if self._macroscopic is None: # Create nuclide XML subelements - subelements = self.get_nuclides_xml(self._nuclides, distrib=True) + subelements = self._get_nuclides_xml(self._nuclides, distrib=True) for subelement_nuc in subelements: subelement.append(subelement_nuc) @@ -650,8 +651,7 @@ class Material(object): subelement.append(subsubelement) else: # Create macroscopic XML subelements - subsubelement = self._get_macroscopic_xml(self._macroscopic, - distrib=True) + subsubelement = self._get_macroscopic_xml(self._macroscopic) subelement.append(subsubelement) if len(self._sab) > 0: diff --git a/openmc/mesh.py b/openmc/mesh.py index 0c88d4a680..169e7705cc 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -16,6 +16,7 @@ AUTO_MESH_ID = 10000 def reset_auto_mesh_id(): + """Reset counter for auto-generated mesh IDs.""" global AUTO_MESH_ID AUTO_MESH_ID = 10000 @@ -63,20 +64,20 @@ class Mesh(object): def __eq__(self, mesh2): # Check type - if self._type != mesh2._type: + if self._type != mesh2.type: return False # Check dimension - elif self._dimension != mesh2._dimension: + elif self._dimension != mesh2.dimension: return False # Check width - elif self._width != mesh2._width: + elif self._width != mesh2.width: return False # Check lower left / upper right - elif self._lower_left != mesh2._lower_left and \ - self._upper_right != mesh2._upper_right: + elif self._lower_left != mesh2.lower_left and \ + self._upper_right != mesh2.upper_right: return False else: @@ -129,7 +130,7 @@ class Mesh(object): def name(self, name): if name is not None: cv.check_type('name for mesh ID="{0}"'.format(self._id), - name, basestring) + name, basestring) self._name = name else: self._name = '' @@ -137,9 +138,9 @@ class Mesh(object): @type.setter def type(self, meshtype): cv.check_type('type for mesh ID="{0}"'.format(self._id), - meshtype, basestring) + meshtype, basestring) cv.check_value('type for mesh ID="{0}"'.format(self._id), - meshtype, ['regular']) + meshtype, ['regular']) self._type = meshtype @dimension.setter diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 9241892646..319e4d4139 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -2,7 +2,6 @@ import sys import os import copy import pickle -import warnings from numbers import Integral from collections import OrderedDict from warnings import warn @@ -152,10 +151,6 @@ class Library(object): def openmc_geometry(self): return self._openmc_geometry - @property - def openmc_geometry(self): - return self._openmc_geometry - @property def opencg_geometry(self): if self._opencg_geometry is None: @@ -279,16 +274,14 @@ class Library(object): cv.check_iterable_type('domain', domains, openmc.Universe) all_domains = self.openmc_geometry.get_all_universes() else: - msg = 'Unable to set domains with ' \ - 'domain type "{}"'.format(self.domain_type) - raise ValueError(msg) + raise ValueError('Unable to set domains with domain ' + 'type "{}"'.format(self.domain_type)) # Check that each domain can be found in the geometry for domain in domains: if domain not in all_domains: - msg = 'Domain "{}" could not be found in the ' \ - 'geometry.'.format(domain) - raise ValueError(msg) + raise ValueError('Domain "{}" could not be found in the ' + 'geometry.'.format(domain)) self._domains = domains @@ -302,9 +295,8 @@ class Library(object): cv.check_value('correction', correction, ('P0', None)) if correction == 'P0' and self.legendre_order > 0: - msg = 'The P0 correction will be ignored since the scattering ' \ - 'order {} is greater than zero'.format(self.legendre_order) - warnings.warn(msg) + warn('The P0 correction will be ignored since the scattering ' + 'order {} is greater than zero'.format(self.legendre_order)) self._correction = correction @@ -317,7 +309,7 @@ class Library(object): if self.correction == 'P0' and legendre_order > 0: msg = 'The P0 correction will be ignored since the scattering ' \ 'order {} is greater than zero'.format(self.legendre_order) - warnings.warn(msg, RuntimeWarning) + warn(msg, RuntimeWarning) self.correction = None self._legendre_order = legendre_order @@ -402,7 +394,7 @@ class Library(object): for domain in self.domains: for mgxs_type in self.mgxs_types: mgxs = self.get_mgxs(domain, mgxs_type) - for tally_id, tally in mgxs.tallies.items(): + for tally in mgxs.tallies.values(): tallies_file.append(tally, merge=merge) def load_from_statepoint(self, statepoint): @@ -498,8 +490,8 @@ class Library(object): # Check that requested domain is included in library if mgxs_type not in self.mgxs_types: - msg = 'Unable to find MGXS type "{0}"'.format(mgxs_type) - raise ValueError(msg) + msg = 'Unable to find MGXS type "{0}"'.format(mgxs_type) + raise ValueError(msg) return self.all_mgxs[domain_id][mgxs_type] @@ -922,7 +914,7 @@ class Library(object): # accounted for approximately by using an adjusted # absorption cross section. if 'total' in self.mgxs_types: - xsdata._absorption = \ + xsdata.absorption = \ np.subtract(xsdata.total, np.sum(xsdata.scatter[0, :, :], axis=1)) @@ -1184,13 +1176,11 @@ class Library(object): # Ensure absorption is present if 'absorption' not in self.mgxs_types: error_flag = True - msg = '"absorption" MGXS type is required but not provided.' - warn(msg) + warn('"absorption" MGXS type is required but not provided.') # Ensure nu-scattering matrix is required if 'nu-scatter matrix' not in self.mgxs_types: error_flag = True - msg = '"nu-scatter matrix" MGXS type is required but not provided.' - warn(msg) + warn('"nu-scatter matrix" MGXS type is required but not provided.') else: # Ok, now see the status of scatter and/or multiplicity if ((('scatter matrix' not in self.mgxs_types) and @@ -1199,24 +1189,20 @@ class Library(object): # we need total, and not transport. if 'total' not in self.mgxs_types: error_flag = True - msg = '"total" MGXS type is required if a ' \ - 'scattering matrix is not provided.' - warn(msg) + warn('"total" MGXS type is required if a ' + 'scattering matrix is not provided.') # Total or transport can be present, but if using # self.correction=="P0", then we should use transport. if (((self.correction is "P0") and ('nu-transport' not in self.mgxs_types))): error_flag = True - msg = 'A "nu-transport" MGXS type is required since a "P0" ' \ - 'correction is applied, but a "nu-transport" MGXS is ' \ - 'not provided.' - warn(msg) + warn('A "nu-transport" MGXS type is required since a "P0" ' + 'correction is applied, but a "nu-transport" MGXS is ' + 'not provided.') elif (((self.correction is None) and ('total' not in self.mgxs_types))): error_flag = True - msg = '"total" MGXS type is required, but not provided.' - warn(msg) + warn('"total" MGXS type is required, but not provided.') if error_flag: - msg = 'Invalid MGXS configuration encountered.' - raise ValueError(msg) + raise ValueError('Invalid MGXS configuration encountered.') diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c12c61bdf4..2c0cb21c60 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1,6 +1,6 @@ from __future__ import division -from collections import Iterable, OrderedDict +from collections import OrderedDict from numbers import Integral import warnings import os @@ -412,7 +412,7 @@ class MGXS(object): self.rxn_rate_tally.sparse = sparse for tally_name in self.tallies: - self.tallies[tally_name].sparse = sparse + self.tallies[tally_name].sparse = sparse self._sparse = sparse @@ -852,7 +852,7 @@ class MGXS(object): fine_edges = self.energy_groups.group_edges # Condense each of the tallies to the coarse group structure - for tally_type, tally in condensed_xs.tallies.items(): + for tally in condensed_xs.tallies.values(): # Make condensed tally derived and null out sum, sum_sq tally._derived = True @@ -993,7 +993,8 @@ class MGXS(object): slice_nuclides = [nuc for nuc in nuclides if nuc in tally.nuclides] if len(groups) != 0 and tally.contains_filter('energy'): tally_slice = tally.get_slice(filters=filters, - filter_bins=filter_bins, nuclides=slice_nuclides) + filter_bins=filter_bins, + nuclides=slice_nuclides) else: tally_slice = tally.get_slice(nuclides=slice_nuclides) slice_xs.tallies[tally_type] = tally_slice @@ -1286,7 +1287,7 @@ class MGXS(object): num_digits = len(str(self.num_subdomains)) # Create a separate HDF5 group for each subdomain - for i, subdomain in enumerate(subdomains): + for subdomain in subdomains: # Create an HDF5 group for the subdomain if self.domain_type == 'distribcell': @@ -1311,9 +1312,11 @@ class MGXS(object): # Extract the cross section for this subdomain and nuclide average = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], - xs_type=xs_type, value='mean', row_column=row_column) + xs_type=xs_type, value='mean', + row_column=row_column) std_dev = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], - xs_type=xs_type, value='std_dev', row_column=row_column) + xs_type=xs_type, value='std_dev', + row_column=row_column) average = average.squeeze() std_dev = std_dev.squeeze() @@ -1386,9 +1389,9 @@ class MGXS(object): longtable=True, index=False) # Surround LaTeX table with code needed to run pdflatex - with open(filename + '.tex','r') as original: + with open(filename + '.tex', 'r') as original: data = original.read() - with open(filename + '.tex','w') as modified: + with open(filename + '.tex', 'w') as modified: modified.write( '\\documentclass[preview, 12pt, border=1mm]{standalone}\n') modified.write('\\usepackage{caption}\n') @@ -1451,7 +1454,7 @@ class MGXS(object): query_nuclides = self.get_all_nuclides() xs_tally = self.xs_tally.summation(nuclides=query_nuclides) df = xs_tally.get_pandas_dataframe( - distribcell_paths=distribcell_paths) + distribcell_paths=distribcell_paths) # Remove nuclide column since it is homogeneous and redundant df.drop('nuclide', axis=1, inplace=True) @@ -1460,12 +1463,12 @@ class MGXS(object): elif self.by_nuclide and nuclides != 'all': xs_tally = self.xs_tally.get_slice(nuclides=nuclides) df = xs_tally.get_pandas_dataframe( - distribcell_paths=distribcell_paths) + distribcell_paths=distribcell_paths) # If the user requested all nuclides, keep nuclide column in dataframe else: df = self.xs_tally.get_pandas_dataframe( - distribcell_paths=distribcell_paths) + distribcell_paths=distribcell_paths) # Remove the score column since it is homogeneous and redundant df = df.drop('score', axis=1) @@ -3443,7 +3446,7 @@ class ScatterMatrixXS(MatrixMGXS): def get_xs(self, in_groups='all', out_groups='all', subdomains='all', nuclides='all', moment='all', xs_type='macro', order_groups='increasing', - row_column='inout', value='mean', **kwargs): + row_column='inout', value='mean'): r"""Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested scattering @@ -3530,7 +3533,7 @@ class ScatterMatrixXS(MatrixMGXS): cv.check_type('moment', moment, Integral) cv.check_greater_than('moment', moment, 0, equality=True) cv.check_less_than( - 'moment', moment, self.legendre_order, equality=True) + 'moment', moment, self.legendre_order, equality=True) scores = [self.xs_tally.scores[moment]] else: scores = [] @@ -3641,7 +3644,7 @@ class ScatterMatrixXS(MatrixMGXS): """ df = super(ScatterMatrixXS, self).get_pandas_dataframe( - groups, nuclides, xs_type, distribcell_paths) + groups, nuclides, xs_type, distribcell_paths) # Add a moment column to dataframe if self.legendre_order > 0: @@ -3660,7 +3663,7 @@ class ScatterMatrixXS(MatrixMGXS): cv.check_type('moment', moment, Integral) cv.check_greater_than('moment', moment, 0, equality=True) cv.check_less_than( - 'moment', moment, self.legendre_order, equality=True) + 'moment', moment, self.legendre_order, equality=True) df = df[df['moment'] == 'P{}'.format(moment)] return df @@ -4601,7 +4604,7 @@ class Chi(MGXS): # Build the dataframe using the parent class method df = super(Chi, self).get_pandas_dataframe( - groups, nuclides, xs_type, distribcell_paths=distribcell_paths) + groups, nuclides, xs_type, distribcell_paths=distribcell_paths) # If user requested micro cross sections, multiply by the atom # densities to cancel out division made by the parent class method diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index f34f3b71ce..8a572c8748 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -9,7 +9,7 @@ import openmc import openmc.mgxs from openmc.checkvalue import check_type, check_value, check_greater_than, \ check_iterable_type -from openmc.clean_xml import * +from openmc.clean_xml import sort_xml_elements, clean_xml_indentation if sys.version_info[0] >= 3: basestring = str @@ -376,7 +376,7 @@ class XSdata(object): # Check validity of energy_groups check_type('energy_groups', energy_groups, openmc.mgxs.EnergyGroups) - if energy_group.group_edges is None: + if energy_groups.group_edges is None: msg = 'Unable to assign an EnergyGroups object ' \ 'with uninitialized group edges' raise ValueError(msg) @@ -597,10 +597,7 @@ class XSdata(object): [self.vector_shape, self.matrix_shape]) # Find out if we have a nu-fission matrix or vector # and set a flag to allow other methods to check this later. - if npnu_fission.shape == self.vector_shape: - self.use_chi = True - else: - self.use_chi = False + self.use_chi = (npnu_fission.shape == self.vector_shape) self._nu_fission = npnu_fission if np.sum(self._nu_fission) > 0.0: @@ -873,7 +870,7 @@ class XSdata(object): check_value('domain_type', scatter.domain_type, ['universe', 'cell', 'material']) - if (self.scatt_type != 'legendre'): + if self.scatt_type != 'legendre': msg = 'Anisotropic scattering representations other than ' \ 'Legendre expansions have not yet been implemented in ' \ 'openmc.mgxs.' @@ -1090,9 +1087,9 @@ class MGXSLibrary(object): @inverse_velocities.setter def inverse_velocities(self, inverse_velocities): - cv.check_type('inverse_velocities', inverse_velocities, Iterable, Real) - cv.check_greater_than('number of inverse_velocities', - len(inverse_velocities), 0.0) + check_type('inverse_velocities', inverse_velocities, Iterable, Real) + check_greater_than('number of inverse_velocities', + len(inverse_velocities), 0.0) self._inverse_velocities = np.array(inverse_velocities) @energy_groups.setter diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 8e97f1a1c6..a2130680fb 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -46,9 +46,9 @@ class Nuclide(object): def __eq__(self, other): if isinstance(other, Nuclide): - if self._name != other._name: + if self._name != other.name: return False - elif self._xs != other._xs: + elif self._xs != other.xs: return False else: return True @@ -71,9 +71,12 @@ class Nuclide(object): def __repr__(self): string = 'Nuclide - {0}\n'.format(self._name) - string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self._xs) - if self._zaid is not None: - string += '{0: <16}{1}{2}\n'.format('\tZAID', '=\t', self._zaid) + string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self.xs) + if self.zaid is not None: + string += '{0: <16}{1}{2}\n'.format('\tZAID', '=\t', self.zaid) + if self.scattering is not None: + string += '{0: <16}{1}{2}\n'.format('\tscattering', '=\t', + self.scattering) return string @property @@ -116,13 +119,3 @@ class Nuclide(object): raise ValueError(msg) self._scattering = scattering - - def __repr__(self): - string = 'Nuclide - {0}\n'.format(self._name) - string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self.xs) - if self.zaid is not None: - string += '{0: <16}{1}{2}\n'.format('\tZAID', '=\t', self.zaid) - if self.scattering is not None: - string += '{0: <16}{1}{2}\n'.format('\tscattering', '=\t', - self.scattering) - return string diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index b112ed327f..967e11f48c 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -6,8 +6,8 @@ import numpy as np try: import opencg except ImportError: - msg = 'Unable to import opencg which is needed by openmc.opencg_compatible' - raise ImportError(msg) + raise ImportError('Unable to import opencg which is needed by ' + 'openmc.opencg_compatible') import openmc import openmc.checkvalue as cv @@ -81,7 +81,6 @@ def get_opencg_material(openmc_material): cv.check_type('openmc_material', openmc_material, openmc.Material) - global OPENCG_MATERIALS material_id = openmc_material.id # If this Material was already created, use it @@ -118,7 +117,6 @@ def get_openmc_material(opencg_material): cv.check_type('opencg_material', opencg_material, opencg.Material) - global OPENMC_MATERIALS material_id = opencg_material.id # If this Material was already created, use it @@ -185,7 +183,6 @@ def get_opencg_surface(openmc_surface): cv.check_type('openmc_surface', openmc_surface, openmc.Surface) - global OPENCG_SURFACES surface_id = openmc_surface.id # If this Material was already created, use it @@ -226,21 +223,21 @@ def get_opencg_surface(openmc_surface): z0 = openmc_surface.z0 R = openmc_surface.r opencg_surface = opencg.XCylinder(surface_id, name, - boundary, y0, z0, R) + boundary, y0, z0, R) elif openmc_surface.type == 'y-cylinder': x0 = openmc_surface.x0 z0 = openmc_surface.z0 R = openmc_surface.r opencg_surface = opencg.YCylinder(surface_id, name, - boundary, x0, z0, R) + boundary, x0, z0, R) elif openmc_surface.type == 'z-cylinder': x0 = openmc_surface.x0 y0 = openmc_surface.y0 R = openmc_surface.r opencg_surface = opencg.ZCylinder(surface_id, name, - boundary, x0, y0, R) + boundary, x0, y0, R) # Add the OpenMC Surface to the global collection of all OpenMC Surfaces OPENMC_SURFACES[surface_id] = openmc_surface @@ -268,7 +265,6 @@ def get_openmc_surface(opencg_surface): cv.check_type('opencg_surface', opencg_surface, opencg.Surface) - global openmc_surface surface_id = opencg_surface.id # If this Surface was already created, use it @@ -356,7 +352,6 @@ def get_compatible_opencg_surfaces(opencg_surface): cv.check_type('opencg_surface', opencg_surface, opencg.Surface) - global OPENMC_SURFACES surface_id = opencg_surface.id # If this Surface was already created, use it @@ -435,7 +430,6 @@ def get_opencg_cell(openmc_cell): cv.check_type('openmc_cell', openmc_cell, openmc.Cell) - global OPENCG_CELLS cell_id = openmc_cell.id # If this Cell was already created, use it @@ -480,7 +474,7 @@ def get_opencg_cell(openmc_cell): opencg_cell.add_surface(get_opencg_surface(surface), halfspace) else: raise NotImplementedError("Complex cells not yet supported " - "in OpenCG.") + "in OpenCG.") # Add the OpenMC Cell to the global collection of all OpenMC Cells OPENMC_CELLS[cell_id] = openmc_cell @@ -615,7 +609,7 @@ def make_opencg_cells_compatible(opencg_universe): # Check all OpenCG Cells in this Universe for compatibility with OpenMC opencg_cells = opencg_universe.cells - for cell_id, opencg_cell in opencg_cells.items(): + for opencg_cell in opencg_cells.values(): # Check each of the OpenCG Surfaces for OpenMC compatibility surfaces = opencg_cell.surfaces @@ -635,7 +629,7 @@ def make_opencg_cells_compatible(opencg_universe): # of this block is necessary in the event that there are more # incompatible Surfaces in this Cell that are not accounted for. cells = get_compatible_opencg_cells(opencg_cell, - surface, halfspace) + surface, halfspace) # Remove the non-compatible OpenCG Cell from the Universe opencg_universe.remove_cell(opencg_cell) @@ -668,7 +662,6 @@ def get_openmc_cell(opencg_cell): cv.check_type('opencg_cell', opencg_cell, opencg.Cell) - global OPENMC_CELLS cell_id = opencg_cell.id # If this Cell was already created, use it @@ -730,7 +723,6 @@ def get_opencg_universe(openmc_universe): cv.check_type('openmc_universe', openmc_universe, openmc.Universe) - global OPENCG_UNIVERSES universe_id = openmc_universe.id # If this Universe was already created, use it @@ -744,7 +736,7 @@ def get_opencg_universe(openmc_universe): # Convert all OpenMC Cells in this Universe to OpenCG Cells openmc_cells = openmc_universe.cells - for cell_id, openmc_cell in openmc_cells.items(): + for openmc_cell in openmc_cells.values(): opencg_cell = get_opencg_cell(openmc_cell) opencg_universe.add_cell(opencg_cell) @@ -774,7 +766,6 @@ def get_openmc_universe(opencg_universe): cv.check_type('opencg_universe', opencg_universe, opencg.Universe) - global OPENMC_UNIVERSES universe_id = opencg_universe.id # If this Universe was already created, use it @@ -791,7 +782,7 @@ def get_openmc_universe(opencg_universe): # Convert all OpenCG Cells in this Universe to OpenMC Cells opencg_cells = opencg_universe.cells - for cell_id, opencg_cell in opencg_cells.items(): + for opencg_cell in opencg_cells.values(): openmc_cell = get_openmc_cell(opencg_cell) openmc_universe.add_cell(openmc_cell) @@ -821,7 +812,6 @@ def get_opencg_lattice(openmc_lattice): cv.check_type('openmc_lattice', openmc_lattice, openmc.Lattice) - global OPENCG_LATTICES lattice_id = openmc_lattice.id # If this Lattice was already created, use it @@ -915,7 +905,6 @@ def get_openmc_lattice(opencg_lattice): cv.check_type('opencg_lattice', opencg_lattice, opencg.Lattice) - global OPENMC_LATTICES lattice_id = opencg_lattice.id # If this Lattice was already created, use it @@ -1043,7 +1032,7 @@ def get_openmc_geometry(opencg_geometry): # Make the entire geometry "compatible" before assigning auto IDs universes = opencg_geometry.get_all_universes() - for universe_id, universe in universes.items(): + for universe in universes.values(): if not isinstance(universe, opencg.Lattice): make_opencg_cells_compatible(universe) diff --git a/openmc/particle_restart.py b/openmc/particle_restart.py index 7a27db2f60..fb2fc4736f 100644 --- a/openmc/particle_restart.py +++ b/openmc/particle_restart.py @@ -1,6 +1,3 @@ -import struct - - class Particle(object): """Information used to restart a specific particle that caused a simulation to fail. diff --git a/openmc/plots.py b/openmc/plots.py index 9167e55d50..73b51da5e8 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -8,7 +8,7 @@ import numpy as np import openmc import openmc.checkvalue as cv -from openmc.clean_xml import * +from openmc.clean_xml import clean_xml_indentation if sys.version_info[0] >= 3: basestring = str @@ -18,6 +18,7 @@ AUTO_PLOT_ID = 10000 def reset_auto_plot_id(): + """Reset counter for auto-generated plot IDs.""" global AUTO_PLOT_ID AUTO_PLOT_ID = 10000 @@ -201,7 +202,7 @@ class Plot(object): cv.check_type('plot background', background, Iterable, Integral) cv.check_length('plot background', background, 3) for rgb in background: - cv.check_greater_than('plot background',rgb, 0, True) + cv.check_greater_than('plot background', rgb, 0, True) cv.check_less_than('plot background', rgb, 256) self._background = background @@ -257,7 +258,7 @@ class Plot(object): string += '{0: <16}{1}{2}\n'.format('\tColor', '=\t', self._color) string += '{0: <16}{1}{2}\n'.format('\tMask', '=\t', self._mask_components) - string += '{0: <16}{1}{2}\n'.format('\tMask', '=\t', + string += '{0: <16}{1}{2}\n'.format('\tMask', '=\t', self._mask_background) string += '{0: <16}{1}{2}\n'.format('\tCol Spec', '=\t', self._col_spec) return string @@ -536,8 +537,8 @@ class Plots(cv.CheckedList): for plot in self: xml_element = plot.get_plot_xml() - if len(plot._name) > 0: - self._plots_file.append(ET.Comment(plot._name)) + if len(plot.name) > 0: + self._plots_file.append(ET.Comment(plot.name)) self._plots_file.append(xml_element) @@ -557,4 +558,4 @@ class Plots(cv.CheckedList): # Write the XML Tree to the plots.xml file tree = ET.ElementTree(self._plots_file) tree.write("plots.xml", xml_declaration=True, - encoding='utf-8', method="xml") + encoding='utf-8', method="xml") diff --git a/openmc/region.py b/openmc/region.py index 9e10112710..a1b9e9fd0d 100644 --- a/openmc/region.py +++ b/openmc/region.py @@ -203,7 +203,7 @@ class Region(object): class Intersection(Region): - """Intersection of two or more regions. + r"""Intersection of two or more regions. Instances of Intersection are generally created via the __and__ operator applied to two instances of :class:`openmc.Region`. This is illustrated in @@ -277,7 +277,7 @@ class Intersection(Region): class Union(Region): - """Union of two or more regions. + r"""Union of two or more regions. Instances of Union are generally created via the __or__ operator applied to two instances of :class:`openmc.Region`. This is illustrated in the diff --git a/openmc/settings.py b/openmc/settings.py index 3c22b39ba9..1738beb0d2 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -6,7 +6,7 @@ import sys import numpy as np -from openmc.clean_xml import * +from openmc.clean_xml import clean_xml_indentation from openmc.checkvalue import (check_type, check_length, check_value, check_greater_than, check_less_than) from openmc import Nuclide @@ -311,7 +311,7 @@ class Settings(object): @property def trigger_batch_interval(self): - return self._batch_interval + return self._trigger_batch_interval @property def output(self): @@ -1011,7 +1011,7 @@ class Settings(object): if self._trigger_active is not None: if self._trigger_subelement is None: self._trigger_subelement = ET.SubElement(self._settings_file, - "trigger") + "trigger") element = ET.SubElement(self._trigger_subelement, "active") element.text = str(self._trigger_active).lower() @@ -1020,7 +1020,7 @@ class Settings(object): if self._trigger_max_batches is not None: if self._trigger_subelement is None: self._trigger_subelement = ET.SubElement(self._settings_file, - "trigger") + "trigger") element = ET.SubElement(self._trigger_subelement, "max_batches") element.text = str(self._trigger_max_batches) @@ -1029,7 +1029,7 @@ class Settings(object): if self._trigger_batch_interval is not None: if self._trigger_subelement is None: self._trigger_subelement = ET.SubElement(self._settings_file, - "trigger") + "trigger") element = ET.SubElement(self._trigger_subelement, "batch_interval") element.text = str(self._trigger_batch_interval) @@ -1103,14 +1103,16 @@ class Settings(object): element.text = str(self._multipole_active) def _create_resonance_scattering_element(self): - if self.resonance_scattering is None: return + if self.resonance_scattering is None: + return element = ET.SubElement(self._settings_file, "resonance_scattering") for r in self.resonance_scattering: if r.nuclide.name != r.nuclide_0K.name: raise ValueError("The nuclide and nuclide_0K attributes of " - "a ResonantScattering object must have identical names.") + "a ResonantScattering object must have " + "identical names.") r.create_xml_subelement(element) def export_to_xml(self): @@ -1159,7 +1161,7 @@ class Settings(object): # Write the XML Tree to the settings.xml file tree = ET.ElementTree(self._settings_file) tree.write("settings.xml", xml_declaration=True, - encoding='utf-8', method="xml") + encoding='utf-8', method="xml") class ResonanceScattering(object): @@ -1215,15 +1217,17 @@ 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 is 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 is None: + raise ValueError("The nuclide_0K must have an explicitly defined " + "zaid attribute.") self._nuclide_0K = nuc @method.setter diff --git a/openmc/source.py b/openmc/source.py index 36a36e5948..7e8a68accf 100644 --- a/openmc/source.py +++ b/openmc/source.py @@ -104,6 +104,14 @@ class Source(object): self._strength = strength def to_xml(self): + """Return XML representation of the source + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing source data + + """ element = ET.Element("source") element.set("strength", str(self.strength)) if self.file is not None: diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 0baa631581..6337746650 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -558,7 +558,7 @@ class StatePoint(object): tally = None # Iterate over all tallies to find the appropriate one - for tally_id, test_tally in self.tallies.items(): + for test_tally in self.tallies.values(): # Determine if Tally has queried name if name and name != test_tally.name: diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index af9b9b3013..7c84dba34c 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -24,7 +24,7 @@ class Univariate(object): pass @abstractmethod - def to_xml(self): + def to_xml(self, element_name): return '' @@ -180,7 +180,7 @@ class Maxwell(Univariate): class Watt(Univariate): - """Watt fission energy spectrum. + r"""Watt fission energy spectrum. The Watt fission energy spectrum is characterized by two parameters :math:`a` and :math:`b` and has density function :math:`p(E) dE = c e^{-E/a} diff --git a/openmc/summary.py b/openmc/summary.py index c5dbcadda0..8c626940e5 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -1,7 +1,8 @@ from collections import Iterable -import numpy as np import re +import numpy as np + import openmc from openmc.region import Region @@ -301,7 +302,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 @@ -608,7 +609,7 @@ class Summary(object): """ - for index, material in self.materials.items(): + for material in self.materials.values(): if material.id == material_id: return material @@ -629,7 +630,7 @@ class Summary(object): """ - for index, surface in self.surfaces.items(): + for surface in self.surfaces.values(): if surface.id == surface_id: return surface @@ -650,7 +651,7 @@ class Summary(object): """ - for index, cell in self.cells.items(): + for cell in self.cells.values(): if cell.id == cell_id: return cell @@ -671,7 +672,7 @@ class Summary(object): """ - for index, universe in self.universes.items(): + for universe in self.universes.values(): if universe.id == universe_id: return universe @@ -692,7 +693,7 @@ class Summary(object): """ - for index, lattice in self.lattices.items(): + for lattice in self.lattices.values(): if lattice.id == lattice_id: return lattice diff --git a/openmc/surface.py b/openmc/surface.py index 76f0d82e7d..c33c4ee74c 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -19,6 +19,7 @@ _BC_TYPES = ['transmission', 'vacuum', 'reflective', 'periodic'] def reset_auto_surface_id(): + """Reset counters for all auto-generated surface IDs""" global AUTO_SURFACE_ID AUTO_SURFACE_ID = 10000 @@ -1814,18 +1815,20 @@ def make_hexagon_region(edge_length=1., orientation='y'): right = XPlane(x0=sqrt(3.)/2.*l) left = XPlane(x0=-sqrt(3.)/2.*l) c = sqrt(3.)/3. - ur = Plane(A=c, B=1., D=l) # y = -x/sqrt(3) + a - ul = Plane(A=-c, B=1., D=l) # y = x/sqrt(3) + a - lr = Plane(A=-c, B=1., D=-l) # y = x/sqrt(3) - a - ll = Plane(A=c, B=1., D=-l) # y = -x/sqrt(3) - a - return Intersection(-right, +left, -ur, -ul, +lr, +ll) + upper_right = Plane(A=c, B=1., D=l) # y = -x/sqrt(3) + a + upper_left = Plane(A=-c, B=1., D=l) # y = x/sqrt(3) + a + lower_right = Plane(A=-c, B=1., D=-l) # y = x/sqrt(3) - a + lower_left = Plane(A=c, B=1., D=-l) # y = -x/sqrt(3) - a + return Intersection(-right, +left, -upper_right, -upper_left, + +lower_right, +lower_left) elif orientation == 'x': top = YPlane(y0=sqrt(3.)/2.*l) bottom = YPlane(y0=-sqrt(3.)/2.*l) c = sqrt(3.) - ur = Plane(A=c, B=1., D=c*l) # y = -sqrt(3)*(x - a) - lr = Plane(A=-c, B=1., D=-c*l) # y = sqrt(3)*(x + a) - ll = Plane(A=c, B=1., D=-c*l) # y = -sqrt(3)*(x + a) - ul = Plane(A=-c, B=1., D=c*l) # y = sqrt(3)*(x + a) - return Intersection(-top, +bottom, -ur, +lr, +ll, -ul) + upper_right = Plane(A=c, B=1., D=c*l) # y = -sqrt(3)*(x - a) + lower_right = Plane(A=-c, B=1., D=-c*l) # y = sqrt(3)*(x + a) + lower_left = Plane(A=c, B=1., D=-c*l) # y = -sqrt(3)*(x + a) + upper_left = Plane(A=-c, B=1., D=c*l) # y = sqrt(3)*(x + a) + return Intersection(-top, +bottom, -upper_right, +lower_right, + +lower_left, -upper_left) diff --git a/openmc/tallies.py b/openmc/tallies.py index af19549a7c..a58465994d 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1,6 +1,6 @@ from __future__ import division -from collections import Iterable, MutableSequence, defaultdict +from collections import Iterable, MutableSequence import copy from functools import partial import os @@ -13,11 +13,12 @@ from xml.etree import ElementTree as ET import numpy as np -from openmc import Mesh, Filter, Trigger, Nuclide -from openmc.arithmetic import * +from openmc import Filter, Trigger, Nuclide +from openmc.arithmetic import CrossScore, CrossNuclide, CrossFilter, \ + AggregateScore, AggregateNuclide, AggregateFilter from openmc.filter import _FILTER_TYPES import openmc.checkvalue as cv -from openmc.clean_xml import * +from openmc.clean_xml import clean_xml_indentation if sys.version_info[0] >= 3: basestring = str @@ -41,6 +42,7 @@ _FILTER_CLASSES = (Filter, CrossFilter, AggregateFilter) def reset_auto_tally_id(): + """Reset counter for auto-generated tally IDs.""" global AUTO_TALLY_ID AUTO_TALLY_ID = 10000 @@ -177,7 +179,7 @@ class Tally(object): for self_filter in self.filters: string += '{0: <16}\t\t{1}\t{2}\n'.format('', self_filter.type, - self_filter.bins) + self_filter.bins) string += '{0: <16}{1}'.format('\tNuclides', '=\t') @@ -386,7 +388,7 @@ class Tally(object): @estimator.setter def estimator(self, estimator): cv.check_value('estimator', estimator, - ['analog', 'tracklength', 'collision']) + ['analog', 'tracklength', 'collision']) self._estimator = estimator @triggers.setter @@ -762,10 +764,7 @@ class Tally(object): no_nuclides_match = False # Either all nuclides should match, or none should - if no_nuclides_match or all_nuclides_match: - return True - else: - return False + return no_nuclides_match or all_nuclides_match def _can_merge_scores(self, other): """Determine if another tally's scores can be merged with this one's @@ -802,10 +801,7 @@ class Tally(object): return False # Either all scores should match, or none should - if no_scores_match or all_scores_match: - return True - else: - return False + return no_scores_match or all_scores_match def can_merge(self, other): """Determine if another tally can be merged with this one @@ -901,7 +897,7 @@ class Tally(object): # Search for mergeable filters for i, filter1 in enumerate(self.filters): - for j, filter2 in enumerate(other.filters): + for filter2 in other.filters: if filter1 != filter2 and filter1.can_merge(filter2): other_copy._swap_filters(other_copy.filters[i], filter2) merged_tally.filters[i] = filter1.merge(filter2) @@ -1058,7 +1054,7 @@ class Tally(object): for score in self.scores: scores += '{0} '.format(score) - subelement = ET.SubElement(element, "scores") + subelement = ET.SubElement(element, "scores") subelement.text = scores.rstrip(' ') # Tally estimator type @@ -1192,7 +1188,7 @@ class Tally(object): # If the Summary was linked, then values are Nuclide objects if isinstance(test_nuclide, Nuclide): - if test_nuclide._name == nuclide: + if test_nuclide.name == nuclide: nuclide_index = i break @@ -1557,7 +1553,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, distribcell_paths) + data_size, distribcell_paths) df = pd.concat([df, filter_df], axis=1) # Include DataFrame column for nuclides if user requested it @@ -1673,7 +1669,7 @@ class Tally(object): return data def export_results(self, filename='tally-results', directory='.', - format='hdf5', append=True): + format='hdf5', append=True): """Exports tallly results to an HDF5 or Python pickle binary file. Parameters @@ -1719,7 +1715,7 @@ class Tally(object): elif not isinstance(append, bool): msg = 'Unable to export the results for Tally ID="{0}" since the ' \ - 'append parameter is not True/False'.format(self.id, append) + 'append parameter is not True/False'.format(self.id) raise ValueError(msg) # Make directory if it does not exist @@ -1776,7 +1772,7 @@ class Tally(object): filename = directory + '/' + filename + '.pkl' if os.path.exists(filename) and append: - tally_results = pickle.load(file(filename, 'rb')) + tally_results = pickle.load(open(filename, 'rb')) else: tally_results = {} @@ -1815,7 +1811,7 @@ class Tally(object): pickle.dump(tally_results, open(filename, 'wb')) def hybrid_product(self, other, binary_op, filter_product=None, - nuclide_product=None, score_product=None): + nuclide_product=None, score_product=None): """Combines filters, scores and nuclides with another tally. This is a helper method for the tally arithmetic operator overloaded @@ -2451,7 +2447,7 @@ class Tally(object): new_tally._std_dev = self.std_dev new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary - new_tally.num_realization = self.num_realizations + new_tally.num_realizations = self.num_realizations new_tally.filters = copy.deepcopy(self.filters) new_tally.nuclides = copy.deepcopy(self.nuclides) @@ -2522,7 +2518,7 @@ class Tally(object): new_tally._std_dev = self.std_dev new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary - new_tally.num_realization = self.num_realizations + new_tally.num_realizations = self.num_realizations new_tally.filters = copy.deepcopy(self.filters) new_tally.nuclides = copy.deepcopy(self.nuclides) @@ -2594,7 +2590,7 @@ class Tally(object): new_tally._std_dev = self.std_dev * np.abs(other) new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary - new_tally.num_realization = self.num_realizations + new_tally.num_realizations = self.num_realizations new_tally.filters = copy.deepcopy(self.filters) new_tally.nuclides = copy.deepcopy(self.nuclides) @@ -2666,7 +2662,7 @@ class Tally(object): new_tally._std_dev = self.std_dev * np.abs(1. / other) new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary - new_tally.num_realization = self.num_realizations + new_tally.num_realizations = self.num_realizations new_tally.filters = copy.deepcopy(self.filters) new_tally.nuclides = copy.deepcopy(self.nuclides) @@ -2742,7 +2738,7 @@ class Tally(object): new_tally._std_dev = np.abs(new_tally._mean * power * self_rel_err) new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary - new_tally.num_realization = self.num_realizations + new_tally.num_realizations = self.num_realizations new_tally.filters = copy.deepcopy(self.filters) new_tally.nuclides = copy.deepcopy(self.nuclides) @@ -3149,7 +3145,7 @@ class Tally(object): return tally_sum def average(self, scores=[], filter_type=None, - filter_bins=[], nuclides=[], remove_filter=False): + filter_bins=[], nuclides=[], remove_filter=False): """Vectorized average of tally data across scores, filter bins and/or nuclides using tally aggregation. @@ -3577,4 +3573,4 @@ class Tallies(cv.CheckedList): # Write the XML Tree to the tallies.xml file tree = ET.ElementTree(self._tallies_file) tree.write("tallies.xml", xml_declaration=True, - encoding='utf-8', method="xml") + encoding='utf-8', method="xml") diff --git a/openmc/trigger.py b/openmc/trigger.py index 537af1c8d8..f23838dcff 100644 --- a/openmc/trigger.py +++ b/openmc/trigger.py @@ -40,10 +40,7 @@ class Trigger(object): self._scores = [] def __eq__(self, other): - if str(self) == str(other): - return True - else: - return False + return str(self) == str(other) def __ne__(self, other): return not self == other @@ -70,7 +67,7 @@ class Trigger(object): @trigger_type.setter def trigger_type(self, trigger_type): cv.check_value('tally trigger type', trigger_type, - ['variance', 'std_dev', 'rel_err']) + ['variance', 'std_dev', 'rel_err']) self._trigger_type = trigger_type @threshold.setter diff --git a/openmc/universe.py b/openmc/universe.py index 84a5acdcac..c8e7fcab1e 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -1,9 +1,7 @@ from collections import OrderedDict, Iterable from numbers import Integral -from xml.etree import ElementTree as ET import random import sys -import warnings import numpy as np @@ -22,6 +20,7 @@ AUTO_UNIVERSE_ID = 10000 def reset_auto_universe_id(): + """Reset counter for auto-generated universe IDs.""" global AUTO_UNIVERSE_ID AUTO_UNIVERSE_ID = 10000 @@ -256,7 +255,7 @@ class Universe(object): if obj not in colors: colors[obj] = (random.random(), random.random(), random.random(), 1.0) - img[j,i,:] = colors[obj] + img[j, i, :] = colors[obj] # Display image plt.imshow(img, extent=(x_min, x_max, y_min, y_max)) @@ -282,7 +281,7 @@ class Universe(object): 'a Cell'.format(self._id, cell) raise ValueError(msg) - cell_id = cell._id + cell_id = cell.id if cell_id not in self._cells: self._cells[cell_id] = cell @@ -364,7 +363,7 @@ class Universe(object): nuclides = OrderedDict() # Append all Nuclides in each Cell in the Universe to the dictionary - for cell_id, cell in self._cells.items(): + for cell in self._cells.values(): nuclides.update(cell.get_all_nuclides()) return nuclides @@ -386,7 +385,7 @@ class Universe(object): cells.update(self._cells) # Append all Cells in each Cell in the Universe to the dictionary - for cell_id, cell in self._cells.items(): + for cell in self._cells.values(): cells.update(cell.get_all_cells()) return cells @@ -406,7 +405,7 @@ class Universe(object): # Append all Cells in each Cell in the Universe to the dictionary cells = self.get_all_cells() - for cell_id, cell in cells.items(): + for cell in cells.values(): materials.update(cell.get_all_materials()) return materials @@ -428,7 +427,7 @@ class Universe(object): universes = OrderedDict() # Append all Universes containing each Cell to the dictionary - for cell_id, cell in cells.items(): + for cell in cells.values(): universes.update(cell.get_all_universes()) return universes diff --git a/setup.py b/setup.py index 99e465c9d4..a842a1c3ae 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,6 @@ #!/usr/bin/env python import glob -import os try: from setuptools import setup have_setuptools = True From b483cfe0b64bd6a77c2bc06e02b46b9a48630a33 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sat, 2 Jul 2016 15:21:58 +0700 Subject: [PATCH 103/417] Respond to @wbinventor comments on #679 --- openmc/element.py | 4 ++-- openmc/macroscopic.py | 4 ++-- openmc/material.py | 4 ++-- openmc/mgxs/library.py | 10 +++++----- openmc/nuclide.py | 4 ++-- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/openmc/element.py b/openmc/element.py index 2e22702d99..c877c27a12 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -45,9 +45,9 @@ class Element(object): def __eq__(self, other): if isinstance(other, Element): - if self._name != other.name: + if self.name != other.name: return False - elif self._xs != other.xs: + elif self.xs != other.xs: return False else: return True diff --git a/openmc/macroscopic.py b/openmc/macroscopic.py index 1fdf875e72..1dd087903f 100644 --- a/openmc/macroscopic.py +++ b/openmc/macroscopic.py @@ -38,9 +38,9 @@ class Macroscopic(object): def __eq__(self, other): if isinstance(other, Macroscopic): - if self._name != other.name: + if self.name != other.name: return False - elif self._xs != other.xs: + elif self.xs != other.xs: return False else: return True diff --git a/openmc/material.py b/openmc/material.py index 1ba8f533a9..d7ffd04e94 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -352,9 +352,9 @@ class Material(object): if self._macroscopic is None: self._macroscopic = macroscopic else: - msg = 'Unable to add a Macroscopic to Material ID="{0}", ' \ + msg = 'Unable to add a Macroscopic to Material ID="{0}". ' \ 'Only one Macroscopic allowed per ' \ - 'Material!'.format(self._id) + 'Material.'.format(self._id) raise ValueError(msg) # Generally speaking, the density for a macroscopic object will diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 319e4d4139..9df9d150dd 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -296,7 +296,7 @@ class Library(object): if correction == 'P0' and self.legendre_order > 0: warn('The P0 correction will be ignored since the scattering ' - 'order {} is greater than zero'.format(self.legendre_order)) + 'order "{}" is greater than zero'.format(self.legendre_order)) self._correction = correction @@ -1176,11 +1176,11 @@ class Library(object): # Ensure absorption is present if 'absorption' not in self.mgxs_types: error_flag = True - warn('"absorption" MGXS type is required but not provided.') + warn('An "absorption" MGXS type is required but not provided.') # Ensure nu-scattering matrix is required if 'nu-scatter matrix' not in self.mgxs_types: error_flag = True - warn('"nu-scatter matrix" MGXS type is required but not provided.') + warn('A "nu-scatter matrix" MGXS type is required but not provided.') else: # Ok, now see the status of scatter and/or multiplicity if ((('scatter matrix' not in self.mgxs_types) and @@ -1189,7 +1189,7 @@ class Library(object): # we need total, and not transport. if 'total' not in self.mgxs_types: error_flag = True - warn('"total" MGXS type is required if a ' + warn('A "total" MGXS type is required if a ' 'scattering matrix is not provided.') # Total or transport can be present, but if using # self.correction=="P0", then we should use transport. @@ -1202,7 +1202,7 @@ class Library(object): elif (((self.correction is None) and ('total' not in self.mgxs_types))): error_flag = True - warn('"total" MGXS type is required, but not provided.') + warn('A "total" MGXS type is required, but not provided.') if error_flag: raise ValueError('Invalid MGXS configuration encountered.') diff --git a/openmc/nuclide.py b/openmc/nuclide.py index a2130680fb..bfeff93113 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -46,9 +46,9 @@ class Nuclide(object): def __eq__(self, other): if isinstance(other, Nuclide): - if self._name != other.name: + if self.name != other.name: return False - elif self._xs != other.xs: + elif self.xs != other.xs: return False else: return True From 0677e35635329f96f157160e0f760473e6d4cb91 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 4 Jul 2016 15:33:57 -0400 Subject: [PATCH 104/417] implemented MDGXS abstract class for multi-delayed-group cross sections --- openmc/checkvalue.py | 2 +- openmc/kinetics/__init__.py | 2 + openmc/kinetics/clock.py | 117 +++ openmc/kinetics/solver.py | 638 ++++++++++++++++ openmc/mgxs/__init__.py | 3 +- openmc/mgxs/groups.py | 130 ++++ openmc/mgxs/mdgxs.py | 1432 +++++++++++++++++++++++++++++++++++ openmc/mgxs/mgxs.py | 853 +++++++-------------- 8 files changed, 2580 insertions(+), 597 deletions(-) create mode 100644 openmc/kinetics/__init__.py create mode 100644 openmc/kinetics/clock.py create mode 100644 openmc/kinetics/solver.py create mode 100644 openmc/mgxs/mdgxs.py diff --git a/openmc/checkvalue.py b/openmc/checkvalue.py index cc0e1190df..6bb2be31b5 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -213,7 +213,7 @@ def check_less_than(name, value, maximum, equality=False): raise ValueError(msg) def check_greater_than(name, value, minimum, equality=False): - """Ensure that an object's value is less than a given value. + """Ensure that an object's value is greater than a given value. Parameters ---------- diff --git a/openmc/kinetics/__init__.py b/openmc/kinetics/__init__.py new file mode 100644 index 0000000000..0ccd7e882f --- /dev/null +++ b/openmc/kinetics/__init__.py @@ -0,0 +1,2 @@ +from openmc.kinetics.clock import * +from openmc.kinetics.solver import * diff --git a/openmc/kinetics/clock.py b/openmc/kinetics/clock.py new file mode 100644 index 0000000000..9df266e1d7 --- /dev/null +++ b/openmc/kinetics/clock.py @@ -0,0 +1,117 @@ + +import copy +import numpy as np + +TIME_POINTS = ['START', + 'PREVIOUS_OUT', + 'PREVIOUS_IN', + 'CURRENT', + 'FORWARD_IN', + 'FORWARD_OUT', + 'END'] + +class Clock(object): + + def __init__(self, start=0., end=3., dt_outer=1.e-1, dt_inner=1.e-2): + + # Initialize coordinates + self.dt_outer = dt_outer + self.dt_inner = dt_inner + + # Create a dictionary of clock times + self._times = {} + for t in TIME_POINTS: + self._times[t] = start + + # Reset the end time + self._times['END'] = end + + + def __deepcopy__(self, memo): + + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy this object, create a copy + if existing is None: + + clone = type(self).__new__(type(self)) + + memo[id(self)] = clone + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + + def __repr__(self): + + string = 'Clock\n' + string += '{0: <24}{1}{2}\n'.format('\tdt inner', '=\t', self.dt_inner) + string += '{0: <24}{1}{2}\n'.format('\tdt outer', '=\t', self.dt_outer) + + for t in TIME_POINTS: + string += '{0: <24}{1}{2}\n'.format('\tTime ' + t, '=\t', self.times[t]) + + return string + + @property + def dt_inner(self): + return self._dt_inner + + @property + def dt_outer(self): + return self._dt_outer + + @property + def times(self): + return self._times + + @dt_inner.setter + def dt_inner(self, dt_inner): + self._dt_inner = np.float64(dt_inner) + + @dt_outer.setter + def dt_outer(self, dt_outer): + self._dt_outer = np.float64(dt_outer) + + @times.setter + def times(self, times): + self._times = np.float64(times) + + def take_outer_step(self): + """Take an outer time step and reset all the inner time step values + to the starting point for the outer time step. + + """ + + self.times['PREVIOUS_OUT'] = self.times['FORWARD_OUT'] + self.times['PREVIOUS_IN'] = self.times['FORWARD_OUT'] + self.times['FORWARD_IN'] = self.times['FORWARD_OUT'] + self.times['CURRENT'] = self.times['FORWARD_OUT'] + + if (self.times['END'] > self.times['FORWARD_OUT'] + self.dt_outer): + self.times['FORWARD_OUT'] = self.times['END'] + else: + self.times['FORWARD_OUT'] = self.times['FORWARD_OUT'] + self.dt_outer + + def take_inner_step(self): + """Take an inner time step. + + """ + self.times['PREVIOUS_IN'] = self.times['FORWARD_IN'] + self.times['CURRENT'] = self.times['FORWARD_IN'] + + if (self.times['FORWARD_OUT'] > self.times['FORWARD_IN'] + self.dt_inner): + self.times['FORWARD_IN'] = self.times['FORWARD_OUT'] + else: + self.times['FORWARD_IN'] = self.times['FORWARD_IN'] + self.dt_inner + + def reset_to_previous_outer(self): + """Reset the time values to the previous outer time. + + """ + + self.times['PREVIOUS_IN'] = self.times['PREVIOUS_IN'] + self.times['FORWARD_IN'] = self.times['PREVIOUS_IN'] + self.times['CURRENT'] = self.times['PREVIOUS_IN'] diff --git a/openmc/kinetics/solver.py b/openmc/kinetics/solver.py new file mode 100644 index 0000000000..a71907a1d3 --- /dev/null +++ b/openmc/kinetics/solver.py @@ -0,0 +1,638 @@ +from collections import OrderedDict +from xml.etree import ElementTree as ET + +import openmc +import openmc.kinetics +from openmc.clean_xml import * +from openmc.checkvalue import check_type +from openmc.kinetics.clock import TIME_POINTS +import numpy as np + + +class Solver(object): + """Solver to propagate the neutron flux and power forward in time. + + Attributes + ---------- + mesh : openmc.mesh.Mesh + Mesh which specifies the dimensions of coarse mesh. + + geometry : openmc.geometry.Geometry + Geometry which describes the problem being solved. + + settings_file : openmc.settings.SettingsFile + Settings file describing the general settings for each simulation. + + materials_file : openmc.materials.MaterialsFile + Materials file containing the materials info for each simulation. + + executor : openmc.executor.Executor + Executor object for executing OpenMC simulation. + + clock : openmc.kinetics.Clock + Clock object. + + energy_groups : openmc.mgxs.groups.EnergyGroups + EnergyGroups which specifies the energy groups structure. + + A : np.matrix + Numpy matrix used for storing the destruction terms. + + M : np.matrix + Numpy matrix used for storing the production terms. + + AM : np.matrix + Numpy matrix used for storing the combined production/destruction terms. + + flux : np.array + Numpy array used to store the flux. + + amplitude : np.array + Numpy array used to store the amplitude. + + shape : np.array + Numpy array used to store the shape. + + source : np.array + Numpy array used to store the source. + + power : np.array + Numpy array used to store the power. + + precursor_conc : np.array + Numpy array used to store the precursor concentrations. + + sigma_a : OrderedDict of openmc.MGXS.AbsorptionXS + MGXS absorption multigroup cross-sections. + + nu_sigma_f : OrderedDict of openmc.MGXS.NuFissionXS + MGXS nu-fission multigroup cross-sections. + + kappa_sigma_f : OrderedDict of openmc.MGXS.NuFissionXS + MGXS nu-fission multigroup cross-sections. + + dif_coef : OrderedDict of openmc.MGXS.DiffusionCoefficientXS + MGXS multigroup diffusion coefficients. + + beta : OrderedDict of openmc.MGXS.delayed.Beta + MGXS multigroup delayed neutron fractions. + + chi_prompt : OrderedDict of openmc.MGXS.delayed.ChiPrompt + MGXS multigroup prompt neutron spectrums. + + chi_delayed : OrderedDict of openmc.MGXS.delayed.ChiDelayed + MGXS multigroup delayed neutron spectrums. + + velocity : OrderedDict of openmc.MGXS.Velocity + MGXS multigroup velocities. + + nu_sigma_s : OrderedDict of openmc.MGXS.NuScatterMatrixXS + MGXS multigroup nu-scatter matrix. + + flux_xs : OrderedDict openmc.MGXS.Flux + MGXS multigroup flux. + + k_eff_0 : float + The initial eigenvalue. + + Methods + ------- + - initialize_xs() + take_outer_step() + take_inner_step() + solve() + - extract_xs() + 2 normalize_flux() + broadcast_to_all() + broadcast_to_one() + - compute_shape() + integrate_precursor_conc() + 3 compute_initial_precursor_conc() + 1 compute_power() + construct_A() + construct_M() + construct_AM() + interpolate_xs() + + To Do + ----- + 1) Create getters and setters for all attributes + 2) Create method to generate initialize xs + 3) Create method to compute flux + 4) Create method to compute initial precursor concentrations + 5) Create method to compute the initial power + + """ + + def __init__(self): + + # Initialize Solver class attributes + self._mesh = None + self._geometry = None + self._settings_file = None + self._materials_file = None + self._executor = openmc.Executor() + self._statepoint = None + self._summary = None + self._clock = None + self._energy_groups = None + self._A = None + self._M = None + self._AM = None + self._flux = None + self._amplitude = None + self._shape = None + self._source = None + self._power = None + self._precursor_conc = None + self._sigma_a = None + self._nu_sigma_f = None + self._kappa_sigma_f = None + self._dif_coef = None + self._beta = None + self._chi_prompt = None + self._chi_delayed = None + self._velocity = None + self._nu_sigma_s = None + self._flux_xs = None + self._decay_constants = None + self._k_eff_0 = None + + @property + def mesh(self): + return self._mesh + + @property + def geometry(self): + return self._geometry + + @property + def settings_file(self): + return self._settings_file + + @property + def materials_file(self): + return self._materials_file + + @property + def executor(self): + return self._executor + + @property + def statepoint(self): + return self._statepoint + + @property + def summary(self): + return self._summary + + @property + def clock(self): + return self._clock + + @property + def energy_groups(self): + return self._energy_groups + + @property + def A(self): + return self._A + + @property + def M(self): + return self._M + + @property + def AM(self): + return self._AM + + @property + def flux(self): + return self._flux + + @property + def amplitude(self): + return self._amplitude + + @property + def shape(self): + return self._shape + + @property + def source(self): + return self._source + + @property + def power(self): + return self._power + + @property + def precursor_conc(self): + return self._precursor_conc + + @property + def sigma_a(self): + return self._sigma_a + + @property + def nu_sigma_f(self): + return self._nu_sigma_f + + @property + def kappa_sigma_f(self): + return self._kappa_sigma_f + + @property + def dif_coef(self): + return self._dif_coef + + @property + def beta(self): + return self._beta + + @property + def chi_prompt(self): + return self._chi_prompt + + @property + def chi_delayed(self): + return self._chi_delayed + + @property + def velocity(self): + return self._velocity + + @property + def nu_sigma_s(self): + return self._nu_sigma_s + + @property + def flux_xs(self): + return self._flux_xs + + @property + def decay_constants(self): + return self._decay_constants + + @property + def k_eff_0(self): + return self._k_eff_0 + + @mesh.setter + def mesh(self, mesh): + self._mesh = mesh + + @geometry.setter + def geometry(self, geometry): + self._geometry = geometry + + @settings_file.setter + def settings_file(self, settings_file): + self._settings_file = settings_file + + @materials_file.setter + def materials_file(self, materials_file): + self._materials_file = materials_file + + @executor.setter + def executor(self, exectuor): + self._executor = executor + + @statepoint.setter + def statepoint(self, statepoint): + self._statepoint = statepoint + + @summary.setter + def summary(self, summary): + self._summary = summary + + @clock.setter + def clock(self, clock): + self._clock = clock + + @energy_groups.setter + def energy_groups(self, energy_groups): + self._energy_groups = energy_groups + + # Initialize the arrays + ng = energy_groups.num_groups + self._flux = np.zeros(ng) + self._amplitude = np.zeros(ng) + self._shape = np.zeros(ng) + self._source = np.zeros(ng) + self._power = np.zeros(ng) + + @A.setter + def A(self): + self._A = A + + @M.setter + def M(self, M): + self._M = M + + @AM.setter + def AM(self, AM): + self._AM = AM + + @flux.setter + def flux(self, flux): + self._flux = flux + + @amplitude.setter + def amplitude(self, amplitude): + self._amplitude = amplitude + + @shape.setter + def shape(self, shape): + self._shape = shape + + @source.setter + def source(self, source): + self._source = source + + @power.setter + def power(self, power): + self._power = power + + @precursor_conc.setter + def precursor_conc(self, precursor_conc): + self._precursor_conc = precursor_conc + + @sigma_a.setter + def sigma_a(self, sigma_a): + self._sigma_a = sigma_a + + @nu_sigma_f.setter + def nu_sigma_f(self, nu_sigma_f): + self._nu_sigma_f = nu_sigma_f + + @kappa_sigma_f.setter + def kappa_sigma_f(self, kappa_sigma_f): + self._kappa_sigma_f = kappa_sigma_f + + @dif_coef.setter + def dif_coef(self, dif_coef): + self._dif_coef = dif_coef + + @beta.setter + def beta(self, beta): + self._beta = beta + + @chi_prompt.setter + def chi_prompt(self, chi_prompt): + self._chi_prompt = chi_prompt + + @chi_delayed.setter + def chi_delayed(self, chi_delayed): + self._chi_delayed + + @velocity.setter + def velocity(self, velocity): + self._velocity = velocity + + @nu_sigma_s.setter + def nu_sigma_s(self, nu_sigma_s): + self._nu_sigma_s = nu_sigma_s + + @flux_xs.setter + def flux_xs(self, flux_xs): + self._flux_xs = flux_xs + + @decay_constants.setter + def decay_constants(self, decay_constants): + self._decay_constants = decay_constants + + @k_eff_0.setter + def k_eff_0(self, k_eff_0): + self._k_eff_0 = k_eff_0 + + def initialize_xs(self): + """Initialize all the tallies for the problem. + + """ + + self._sigma_a = {} + self._nu_sigma_f = {} + self._kappa_sigma_f = {} + self._dif_coef = {} + self._beta = {} + self._chi_prompt = {} + self._chi_delayed = {} + self._velocity = {} + self._nu_sigma_s = {} + self._flux_xs = {} + self._precursor_conc = {} + + self._decay_constants = openmc.Tally(name='decay constants') + self._decay_constants._derived = True + self._decay_constants.num_score_bins = 1 + self._decay_constants.add_score('None') + self._decay_constants._mean = np.array([0.012467, 0.028292, 0.042524,\ + 0.133042, 0.292467, 0.666488,\ + 1.634781, 3.554600]) + self._decay_constants._mean = np.reshape(self._decay_constants._mean, (8,1,1)) + self._decay_constants._std_dev = np.array([0 for i in range(8)]) + self._decay_constants._std_dev = np.reshape(self._decay_constants._std_dev, (8,1,1)) + self._decay_constants.estimator = 'analog' + self._decay_constants.add_filter(openmc.Filter('delayedgroup', range(1,9))) + self._decay_constants._nuclides = ['total'] + + # FIXME: replace domain with mesh + # Get the cell in the geometry + cells = self.geometry.root_universe.get_all_cells() + cell = cells.values()[0] + + global TIME_POINTS + for t in TIME_POINTS: + print 'computing tallies for time: ' + t + self._sigma_a[t] = openmc.mgxs.AbsorptionXS(name='sigma a', + domain=cell, domain_type='cell', groups=self.energy_groups) + self._nu_sigma_f[t] = openmc.mgxs.NuFissionXS(name='nu sigma f', + domain=cell, domain_type='cell', groups=self.energy_groups) + self._kappa_sigma_f[t] = openmc.mgxs.KappaFissionXS(name='kappa fission', + domain=cell, domain_type='cell', groups=self.energy_groups) + self._dif_coef[t] = openmc.mgxs.DiffusionCoefficient(name='dif coef', + domain=cell, domain_type='cell', groups=self.energy_groups) + self._beta[t] = openmc.mgxs.Beta(name='beta', + domain=cell, domain_type='cell', groups=self.energy_groups) + self._chi_prompt[t] = openmc.mgxs.ChiPrompt(name='chi prompt', + domain=cell, domain_type='cell', groups=self.energy_groups) + self._chi_delayed[t] = openmc.mgxs.ChiDelayed(name='chi delayed', + domain=cell, domain_type='cell', groups=self.energy_groups) + self._velocity[t] = openmc.mgxs.Velocity(name='velocity', + domain=cell, domain_type='cell', groups=self.energy_groups) + self._nu_sigma_s[t] = openmc.mgxs.NuScatterMatrixXS(name='nu scatter', + domain=cell, domain_type='cell', groups=self.energy_groups) + self._flux_xs[t] = openmc.mgxs.Flux(name='flux', + domain=cell, domain_type='cell', groups=self.energy_groups) + + + def generate_tallies_file(self, time): + """Initialize the tallies file. + + """ + + tallies_file = openmc.TalliesFile() + + # Add absorption tallies to the tallies file + for tally in self._sigma_a[time].tallies.values(): + tallies_file.add_tally(tally, merge=True) + + # Add nu-sigma-f tallies to the tallies file + for tally in self._nu_sigma_f[time].tallies.values(): + tallies_file.add_tally(tally, merge=True) + + # Add kappa-sigma-f tallies to the tallies file + for tally in self._kappa_sigma_f[time].tallies.values(): + tallies_file.add_tally(tally, merge=True) + + # Add dif-coef tallies to the tallies file + for tally in self._dif_coef[time].tallies.values(): + tallies_file.add_tally(tally, merge=True) + + # Add beta tallies to the tallies file + for tally in self._beta[time].tallies.values(): + tallies_file.add_tally(tally, merge=True) + + # Add chi prompt tallies to the tallies file + for tally in self._chi_prompt[time].tallies.values(): + tallies_file.add_tally(tally, merge=True) + + # Add chi delayed tallies to the tallies file + for tally in self._chi_delayed[time].tallies.values(): + tallies_file.add_tally(tally, merge=False) + + # Add velocity tallies to the tallies file + for tally in self._velocity[time].tallies.values(): + tallies_file.add_tally(tally, merge=True) + + # Add nu-sigma-s tallies to the tallies file + for tally in self._nu_sigma_s[time].tallies.values(): + tallies_file.add_tally(tally, merge=True) + + # Add flux tallies to the tallies file + for tally in self._flux_xs[time].tallies.values(): + tallies_file.add_tally(tally, merge=True) + + # Export to "tallies.xml" + tallies_file.export_to_xml() + + def extract_xs(self, time): + + filename = 'statepoint.' + str(self.settings_file.batches) + '.h5' + self.statepoint = openmc.StatePoint(filename) + self.summary = openmc.Summary('summary.h5') + self.statepoint.link_with_summary(self.summary) + + # load xs from statepoint + self._sigma_a[time].load_from_statepoint(self.statepoint) + self._nu_sigma_f[time].load_from_statepoint(self.statepoint) + self._kappa_sigma_f[time].load_from_statepoint(self.statepoint) + self._dif_coef[time].load_from_statepoint(self.statepoint) + self._beta[time].load_from_statepoint(self.statepoint) + self._chi_prompt[time].load_from_statepoint(self.statepoint) + self._chi_delayed[time].load_from_statepoint(self.statepoint) + self._velocity[time].load_from_statepoint(self.statepoint) + self._nu_sigma_s[time].load_from_statepoint(self.statepoint) + self._flux_xs[time].load_from_statepoint(self.statepoint) + self.k_eff_0 = self.statepoint.k_combined[0] + + # compute the xs + self._sigma_a[time].compute_xs() + self._nu_sigma_f[time].compute_xs() + self._kappa_sigma_f[time].compute_xs() + self._dif_coef[time].compute_xs() + self._beta[time].compute_xs() + self._chi_prompt[time].compute_xs() + self._chi_delayed[time].compute_xs() + self._velocity[time].compute_xs() + self._nu_sigma_s[time].compute_xs() + self._flux_xs[time].compute_xs() + + # extract the flux + #for g in range(self._energy_groups.num_groups): + # self._flux[g] = self._flux_xs[time].xs_tally.mean[g][0][0] + + def print_xs(self, time): + + # print the xs + self._sigma_a[time].print_xs() + self._nu_sigma_f[time].print_xs() + self._kappa_sigma_f[time].print_xs() + self._dif_coef[time].print_xs() + self._beta[time].print_xs() + self._chi_prompt[time].print_xs() + self._chi_delayed[time].print_xs() + self._velocity[time].print_xs() + self._nu_sigma_s[time].print_xs() + self._flux_xs[time].print_xs() + + def compute_shape(self, time): + + geometry_file = openmc.GeometryFile() + geometry_file.geometry = self.geometry + + # Create the xml files + self._materials_file.export_to_xml() + geometry_file.export_to_xml() + self._settings_file.export_to_xml() + self.generate_tallies_file(time) + + # Run OpenMC + self.executor.run_simulation(mpi_procs=4) + + def compute_power(self, time): + + self.power = self._kappa_sigma_f[time].xs_tally * \ + self._flux_xs[time].xs_tally + + def compute_initial_precursor_conc(self, time): + + self.precursor_conc[time] = self.nu_sigma_f[time].xs_tally \ + * self.flux_xs[time].xs_tally + self.precursor_conc[time] = self.precursor_conc[time].\ + summation(filter_type='energy', remove_filter=True) + beta = self.beta[time].xs_tally.\ + summation(filter_type='energy', remove_filter=True) + self.precursor_conc[time] = beta \ + * self.precursor_conc[time] + + self.precursor_conc[time] = self.precursor_conc[time] / self.k_eff_0 + + print self.precursor_conc[time] + print self._decay_constants + + self.precursor_conc[time] = self.precursor_conc[time] / self._decay_constants + print self.precursor_conc[time] + + + def compute_forward_flux(self, time, time_next): + + dt_v = self.clock.dt_outer * self.velocity + + fission_rate = self.nu_sigma_f[time].xs_tally \ + * self.flux_xs[time].xs_tally + + fission_rate = fission_rate.summation(filter_type='energy', remove_filter=True) + + self.flux_xs[time_next] = [self.flux_xs[time] + (1 - self.beta) \ + / self.k_eff_0 * fission_rate + \ + + self.precursor_conc[time] = self.nu_sigma_f[time].xs_tally \ + * self.flux_xs[time].xs_tally + self.precursor_conc[time] = self.precursor_conc[time].\ + summation(filter_type='energy', remove_filter=True) + beta = self.beta[time].xs_tally.\ + summation(filter_type='energy', remove_filter=True) + self.precursor_conc[time] = beta \ + * self.precursor_conc[time] + + self.precursor_conc[time] = self.precursor_conc[time] / self.k_eff_0 + + print self.precursor_conc[time] + print self._decay_constants + + inv_decay_constants = 1.0 / self._decay_constants + inv_decay_constants.name = 'inverse decay constants' + self.precursor_conc[time] = inv_decay_constants * self.precursor_conc[time] + print self.precursor_conc[time] diff --git a/openmc/mgxs/__init__.py b/openmc/mgxs/__init__.py index 4fcf8b6aed..b41deac843 100644 --- a/openmc/mgxs/__init__.py +++ b/openmc/mgxs/__init__.py @@ -1,3 +1,4 @@ -from openmc.mgxs.groups import EnergyGroups +from openmc.mgxs.groups import EnergyGroups, DelayedGroups from openmc.mgxs.library import Library from openmc.mgxs.mgxs import * +from openmc.mgxs.mdgxs import * diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index 068977d888..1b17cf7a84 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -11,6 +11,10 @@ import openmc.checkvalue as cv if sys.version_info[0] >= 3: basestring = str +# Maximum number of delayed groups +# TODO: Get value from OpenMC +MAX_DELAYED_GROUPS = 8 + class EnergyGroups(object): """An energy groups structure used for multi-group cross-sections. @@ -299,3 +303,129 @@ class EnergyGroups(object): # Assign merged edges to merged groups merged_groups.group_edges = list(merged_edges) return merged_groups + + +class DelayedGroups(object): + """A delayed groups structure used for multi-delayed-group parameters. + + Parameters + ---------- + groups : Iterable of Int + The delayed groups + + Attributes + ---------- + groups : Iterable of Int + The delayed groups + num_groups : int + The number of delayed groups + + """ + + def __init__(self, groups=None): + self._groups = None + + if groups is not None: + self.groups = groups + + def __deepcopy__(self, memo): + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy object, create copy + if existing is None: + clone = type(self).__new__(type(self)) + clone._groups = copy.deepcopy(self.groups, memo) + + memo[id(self)] = clone + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + + def __eq__(self, other): + if not isinstance(other, DelayedGroups): + return False + elif self.num_groups != other.num_groups: + return False + elif np.allclose(self.groups, other.groups): + return True + else: + return False + + def __ne__(self, other): + return not self == other + + def __hash__(self): + return hash(tuple(self.groups)) + + @property + def groups(self): + return self._groups + + @property + def num_groups(self): + return len(self.groups) + + @groups.setter + def groups(self, groups): + cv.check_type('groups', groups, Iterable, Int) + cv.check_greater_than('number of delayed groups', len(groups), 0) + + # Check that the groups are within [1, MAX_DELAYED_GROUPS] + for group in groups: + cv.check_greater_than('delayed group', group, 0) + cv.check_less_than('delayed group', group, MAX_DELAYED_GROUPS + 1) + + self._groups = np.array(groups, dtype=int) + + def can_merge(self, other): + """Determine if delayed groups can be merged with another. + + Parameters + ---------- + other : openmc.mgxs.DelayedGroups + DelayedGroups to compare with + + Returns + ------- + bool + Whether the delayed groups can be merged + + """ + + if not isinstance(other, DelayedGroups): + return False + else: + return True + + def merge(self, other): + """Merge this delayed groups with another. + + Parameters + ---------- + other : openmc.mgxs.DelayedGroups + DelayedGroups to merge with + + Returns + ------- + merged_groups : openmc.mgxs.DelayedGroups + DelayedGroups resulting from the merge + + """ + + if not self.can_merge(other): + raise ValueError('Unable to merge delayed groups') + + # Create deep copy to return as merged delayed groups + merged_groups = copy.deepcopy(self) + + # Merge unique filter bins + groups = np.concatenate((self.groups, other.groups)) + groups = np.unique(groups) + groups = sorted(groups) + + # Assign groups to merged groups + merged_groups.groups = list(groups) + return merged_groups diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py new file mode 100644 index 0000000000..202950ec32 --- /dev/null +++ b/openmc/mgxs/mdgxs.py @@ -0,0 +1,1432 @@ +from __future__ import division + +from collections import Iterable, OrderedDict +from numbers import Integral +import warnings +import os +import sys +import copy +import abc + +import numpy as np + +from mgxs import MGXS, MGXS_TYPES, DOMAIN_TYPES, _DOMAINS +from openmc.mgxs import EnergyGroups, DelayedGroups +from openmc import Mesh + +# Supported cross section types +MDGXS_TYPES = ['delayed-nu-fission', + 'chi-delayed', + 'beta'] + +class MDGXS(MGXS): + """An abstract multi-delayed-group cross section for some energy and delayed + group structures within some spatial domain. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group and multi-delayed-group cross sections for downstream + neutronics calculations. + + NOTE: Users should instantiate the subclasses of this abstract class. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + 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 + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + delayed_groups : openmc.mgxs.DelayedGroups + Delayed groups to filter out the xs + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'chi-delayed', 'beta', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + delayed_groups : openmc.mgxs.DelayedGroups + Delayed groups to filter out the xs + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section + 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 : 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 : int + The number of subdomains is unity for 'material', 'cell', and 'universe' + domain types. 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) and the number of mesh cells for + 'mesh' domain types. + 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' + 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 MDGXS' tallies use SciPy's LIL sparse matrix format + for compressed data storage + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MDGXS is merged from one or more other MDGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + # This is an abstract class which cannot be instantiated + __metaclass__ = abc.ABCMeta + + def __init__(self, domain=None, domain_type=None, energy_groups=None, + by_nuclide=False, name='', delayed_groups=None): + super(MDGXS, self).__init__(domain, domain_type, energy_groups, + by_nuclide, name) + self._delayed_groups = None + + if delayed_groups is not None: + self.delayed_groups = delayed_groups + + def __deepcopy__(self, memo): + super(MDGXS, self).__deepcopy__(memo) + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy this object, copy it + if existing is None: + clone._delayed_groups = copy.deepcopy(self.delayed_groups, memo) + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + + @property + def delayed_groups(self): + return self._delayed_groups + + @property + def num_delayed_groups(self): + return self.delayed_groups.num_groups + + @delayed_groups.setter + def delayed_groups(self, delayed_groups): + cv.check_type('delayed groups', delayed_groups, openmc.mgxs.DelayedGroups) + self._delayed_groups = delayed_groups + + @property + def filters(self): + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + if self.delayed_groups != None: + delayed_groups = self.delayed_groups.groups + delayed_filter = openmc.Filter('delayedgroup', delayed_groups) + return [[delayed_filter, energy_filter]] * len(self.scores) + else: + return [[energy]] * len(self.scores) + + @staticmethod + def get_mgxs(mdgxs_type, domain=None, domain_type=None, + energy_groups=None, by_nuclide=False, name='', + delayed_groups=None): + """Return a MDGXS subclass object for some energy group structure within + some spatial domain for some reaction type. + + This is a factory method which can be used to quickly create MDGXS + subclass objects for various reaction types. + + Parameters + ---------- + mdgxs_type : {'delayed-nu-fission', 'chi-prompt', 'chi-delayed', + 'beta'} + The type of multi-delayed-group cross section object to return + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + 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. + Defaults to False + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. Defaults to the empty string. + delayed_groups : openmc.mgxs.DelayedGroups + Delayed groups to filter out the xs + + Returns + ------- + openmc.mgxs.MDGXS + A subclass of the abstract MDGXS class for the multi-delayed-group + cross section type requested by the user + + """ + + cv.check_value('mdgxs_type', mdgxs_type, MDGXS_TYPES) + + if mdgxs_type == 'delayed-nu-fission': + mdgxs = DelayedNuFission(domain, domain_type, energy_groups) + elif mdgxs_type == 'chi-delayed': + mdgxs = ChiDelayed(domain, domain_type, energy_groups) + elif mdgxs_type == 'beta': + mdgxs = Beta(domain, domain_type, energy_groups) + + mdgxs.by_nuclide = by_nuclide + mdgxs.name = name + mdgxs.delayed_groups = delayed_groups + return mdgxs + + def get_xs(self, groups='all', subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', + value='mean', delayed_groups='all', **kwargs): + """Returns an array of multi-delayed-group cross sections. + + This method constructs a 2D NumPy array for the requested + multi-delayed-group cross section data data for one or more energy + groups, delayed groups, and subdomains. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. + delayed_groups : Iterable of Integral or 'all' + Delayed groups of interest. Defaults to 'all'. + + Returns + ------- + 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. + + Raises + ------ + ValueError + When this method is called before the multi-delayed-group cross + section is computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(groups, basestring): + cv.check_iterable_type('groups', groups, Integral) + for group in groups: + filters.append('energy') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of delayed group tuples for all requested groups + if not isinstance(delayed_groups, basestring): + cv.check_iterable_type('delayed_groups', delayed_groups, Integral) + for delayed_group in delayed_groups: + filters.append('delayedgroups') + filter_bins.append((delayed_group,)) + + # Construct a collection of the nuclides to retrieve from the xs tally + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides + else: + query_nuclides = ['total'] + + # If user requested the sum for all nuclides, use tally summation + if nuclides == 'sum' or nuclides == ['sum']: + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + xs = xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + else: + xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, + nuclides=query_nuclides, value=value) + + # Divide by atom number densities for microscopic cross sections + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = int(xs.shape[0] / num_groups) + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_1d(xs) + return xs + + def get_slice(self, nuclides=[], groups=[], delayed_groups=[]): + """Build a sliced MDGXS for the specified nuclides, energy groups, + and delayed groups. + + This method constructs a new MDGXS to encapsulate a subset of the data + represented by this MDGXS. The subset of data to include in the tally + slice is determined by the nuclides, energy groups, delayed 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 int + A list of energy group indices starting at 1 for the high energies + (e.g., [1, 2, 3]; default is []) + delayed_groups : list of int + A list of delayed group indices + (e.g., [1, 2, 3]; default is []) + + Returns + ------- + openmc.mgxs.MDGXS + A new MDGXS object which encapsulates the subset of data requested + for the nuclide(s) and/or energy group(s) and/or delayed group(s) + requested in the parameters. + + """ + + cv.check_iterable_type('nuclides', nuclides, basestring) + cv.check_iterable_type('energy_groups', groups, Integral) + cv.check_iterable_type('delayed_groups', delayed_groups, Integral) + + # Build lists of filters and filter bins to slice + filters = [] + filter_bins = [] + + if len(groups) != 0: + energy_bins = [] + for group in groups: + group_bounds = self.energy_groups.get_group_bounds(group) + energy_bins.append(group_bounds) + filter_bins.append(tuple(energy_bins)) + filters.append('energy') + + if len(delayed_groups) != 0: + filter_bins.append(tuple(delayed_groups)) + filters.append('delayedgroup') + + # 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] + if filters != []: + 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 MDGXS + if groups: + 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 delayed group structure to sliced MDGXS + if delayed_groups: + slice_xs.delayed_groups.groups = delayed_groups + + # Assign sliced nuclides to sliced MGXS + if nuclides: + slice_xs.nuclides = nuclides + + slice_xs.sparse = self.sparse + return slice_xs + + def can_merge(self, other): + """Determine if another MDGXS 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 : openmc.mgxs.MGXS + MGXS to check for merging + + """ + + can_merge = super(MDGXS, self).can_merge(other) + + # Compare delayed groups + if not self.delayed_groups.can_merge(other.delayed_groups): + can_merge = False + + # If all conditionals pass then MDGXS are mergeable + return can_merge + + def merge(self, other): + """Merge another MDGXS with this one + + MDGXS are only mergeable if their energy groups and nuclides are either + identical or mutually exclusive. If results have been loaded from a + statepoint, then MDGXS are only mergeable along one and only one of + energy groups or nuclides. + + Parameters + ---------- + other : openmc.mgxs.MDGXS + MDGXS to merge with this one + + Returns + ------- + merged_mdgxs : openmc.mgxs.MDGXS + Merged MDGXS + + """ + + + merged_mdgxs = super(MDGXS, self).merge(other) + + # Merge delayed groups + if self.delayed_groups != other.delayed_groups: + merged_delayed_groups = self.delayed_groups.merge(other.delayed_groups) + merged_mdgxs.delayed_groups = merged_delayed_groups + + return merged_mdgxs + + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): + """Print a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will report + the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + if self.delayed_groups != None: + super(MDGXS, self).print_xs(subdomains, nuclides, xs_type) + return + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + 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 == 'mesh': + subdomains = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains.append((x, y, 1)) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + elif nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Build header for string with type and domain info + string = 'Multi-Delayed-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if nuclide != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + if xs_type == 'macro': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') + else: + string += '{0: <16}\n'.format('\tCross Sections [barns]:') + + for delayed_group in self.delayed_groups.groups: + + template = '{0: <12}Delayed Group {1}:\t' + string += template.format('', delayed_group) + string += '\n' + + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + average = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='mean', + delayed_groups=[delayed_group]) + rel_err = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='rel_err', + delayed_groups=[delayed_group]) + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + + print(string) + + def export_xs_data(self, filename='mgxs', directory='mgxs', + format='csv', groups='all', xs_type='macro', + delayed_groups='all'): + """Export the multi-delayed-group cross section data to a file. + + This method leverages the functionality in the Pandas library to export + the multi-group cross section data in a variety of output file formats + for storage and/or post-processing. + + Parameters + ---------- + filename : str + Filename for the exported file. Defaults to 'mgxs'. + directory : str + Directory for the exported file. Defaults to 'mgxs'. + format : {'csv', 'excel', 'pickle', 'latex'} + The format for the exported data file. Defaults to 'csv'. + groups : Iterable of Integral or 'all' + Energy groups of interest. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Store the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + delayed_groups : Iterable of Integral or 'all' + Delayed groups of interest. Defaults to 'all'. + + """ + + cv.check_type('filename', filename, basestring) + cv.check_type('directory', directory, basestring) + cv.check_value('format', format, ['csv', 'excel', 'pickle', 'latex']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Make directory if it does not exist + if not os.path.exists(directory): + os.makedirs(directory) + + filename = os.path.join(directory, filename) + filename = filename.replace(' ', '-') + + # Get a Pandas DataFrame for the data + df = self.get_pandas_dataframe(groups=groups, xs_type=xs_type, + delayed_groups=delayed_groups) + + # Capitalize column label strings + #df.columns = df.columns.astype(str) + #df.columns = map(str.title, df.columns) + + # Export the data using Pandas IO API + if format == 'csv': + df.to_csv(filename + '.csv', index=False) + elif format == 'excel': + df.to_excel(filename + '.xls', index=False) + elif format == 'pickle': + df.to_pickle(filename + '.pkl') + elif format == 'latex': + if self.domain_type == 'distribcell': + msg = 'Unable to export distribcell multi-group cross section' \ + 'data to a LaTeX table' + raise NotImplementedError(msg) + + df.to_latex(filename + '.tex', bold_rows=True, + longtable=True, index=False) + + # Surround LaTeX table with code needed to run pdflatex + with open(filename + '.tex','r') as original: + data = original.read() + with open(filename + '.tex','w') as modified: + modified.write( + '\\documentclass[preview, 12pt, border=1mm]{standalone}\n') + modified.write('\\usepackage{caption}\n') + modified.write('\\usepackage{longtable}\n') + modified.write('\\usepackage{booktabs}\n') + modified.write('\\begin{document}\n\n') + modified.write(data) + modified.write('\n\\end{document}') + + def get_pandas_dataframe(self, groups='all', nuclides='all', + xs_type='macro', distribcell_paths=True, + delayed_groups='all'): + """Build a Pandas DataFrame for the MGXS data. + + This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but + renames the columns with terminology appropriate for cross section data. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the dataframe. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will include the cross sections for all + nuclides in the spatial domain. The special string 'sum' will + include the cross sections summed over all nuclides. Defaults + to 'all'. + xs_type: {'macro', 'micro'} + Return macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + distribcell_paths : bool, optional + Construct columns for distribcell tally filters (default is True). + The geometric information in the Summary object is embedded into + a Multi-index column with a geometric "path" to each distribcell + instance. + delayed_groups : Iterable of Integral or 'all' + Delayed groups of interest. Defaults to 'all'. + + Returns + ------- + pandas.DataFrame + A Pandas DataFrame for the cross section data. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + df = super(MDGXS, self).get_pandas_dataframe(groups, nuclides, xs_type, + distribcell_paths) + + if not isinstance(delayed_groups, basestring): + cv.check_iterable_type('delayed groups', delayed_groups, Integral) + + # Select out those delayed groups the user requested + if not isinstance(delayed_groups, basestring): + if 'delayedgroup' in df: + df = df[df['delayedgroup'].isin(delayed_groups)] + + return df + + +class ChiDelayed(MDGXS): + """The delayed fission spectrum. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`ChiDelayed.energy_groups` and + :attr:`ChiDelayed.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`ChiDelayed.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`ChiDelayed.xs_tally` property. + + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + fission spectrum is calculated as: + + .. math:: + + \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in V} dr + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) + \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \nu\sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, + E') \psi(r, E', \Omega') \\ + \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle + \nu\sigma_f \phi \rangle} + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + delayed_groups : openmc.mgxs.DelayedGroups + Delayed groups to filter out the xs + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + delayed_groups : openmc.mgxs.DelayedGroups + Delayed groups to filter out the xs + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`ChiDelayed.tally_keys` property and + values are instances of :class:`openmc.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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, energy_groups=None, + by_nuclide=False, name='', delayed_groups=None): + super(ChiDelayed, self).__init__(domain, domain_type, energy_groups, + by_nuclide, name, delayed_groups) + self._rxn_type = 'chi-delayed' + + @property + def scores(self): + return ['delayed-nu-fission', 'delayed-nu-fission'] + + @property + def filters(self): + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energyout = openmc.Filter('energyout', group_edges) + energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) + if self.delayed_groups != None: + delayed_groups = self.delayed_groups.groups + delayed_filter = openmc.Filter('delayedgroup', delayed_groups) + return [[delayed_filter, energyin], [delayed_filter, energyout]] + else: + return [[energyin], [energyout]] + + @property + def tally_keys(self): + return ['delayed-nu-fission-in', 'delayed-nu-fission-out'] + + @property + def estimator(self): + return 'analog' + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['delayed-nu-fission-out'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + @property + def xs_tally(self): + + if self._xs_tally is None: + delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] + + # Remove coarse energy filter to keep it out of tally arithmetic + energy_filter = delayed_nu_fission_in.find_filter('energy') + delayed_nu_fission_in.remove_filter(energy_filter) + + # Compute chi + self._xs_tally = self.rxn_rate_tally / delayed_nu_fission_in + super(ChiDelayed, self)._compute_xs() + + # Add the coarse energy filter back to the nu-fission tally + delayed_nu_fission_in.filters.append(energy_filter) + + return self._xs_tally + + def get_slice(self, nuclides=[], groups=[], delayed_groups=[]): + """Build a sliced ChiDelayed 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 []) + delayed_groups : list of int + A list of delayed group indices + (e.g., [1, 2, 3]; default is []) + + Returns + ------- + openmc.mgxs.MDGXS + A new MDGXS which encapsulates the subset of data requested + for the nuclide(s) and/or energy group(s) and/or delayed group(s) + requested in the parameters. + + """ + + # Temporarily remove energy filter from delayed-nu-fission-in since its + # group structure will work in super MGXS.get_slice(...) method + delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] + energy_filter = delayed_nu_fission_in.find_filter('energy') + delayed_nu_fission_in.remove_filter(energy_filter) + + # Call super class method and null out derived tallies + slice_xs = super(ChiDelayed, self).get_slice(nuclides, groups, + delayed_groups) + slice_xs._rxn_rate_tally = None + slice_xs._xs_tally = None + + # Slice energy groups if needed + filters = [] + filter_bins = [] + + if len(groups) != 0: + energy_bins = [] + for group in groups: + group_bounds = self.energy_groups.get_group_bounds(group) + energy_bins.append(group_bounds) + filter_bins.append(tuple(energy_bins)) + filters.append('energyout') + + if len(delayed_groups) != 0: + filter_bins.append(tuple(delayed_groups)) + filters.append('delayedgroup') + + if filters != []: + + # Slice nu-fission-out tally along energyout filter + delayed_nu_fission_out = slice_xs.tallies['delayed-nu-fission-out'] + tally_slice = delayed_nu_fission_out.get_slice(filters=filters, + filter_bins=filter_bins) + slice_xs._tallies['delayed-nu-fission-out'] = tally_slice + + # Add energy filter back to nu-fission-in tallies + self.tallies['delayed-nu-fission-in'].add_filter(energy_filter) + slice_xs._tallies['delayed-nu-fission-in'].add_filter(energy_filter) + + slice_xs.sparse = self.sparse + return slice_xs + + def merge(self, other): + """Merge another ChiDelayed with this one + + If results have been loaded from a statepoint, then ChiDelayed are only + mergeable along one and only one of energy groups or nuclides. + + Parameters + ---------- + other : openmc.mgxs.MGXS + MGXS to merge with this one + + Returns + ------- + merged_mgxs : openmc.mgxs.MGXS + Merged MGXS + """ + + if not self.can_merge(other): + raise ValueError('Unable to merge ChiDelayed') + + # 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 delayed groups + if self.delayed_groups != other.delayed_groups: + merged_delayed_groups = self.delayed_groups.merge(other.delayed_groups) + merged_mdgxs.delayed_groups = merged_delayed_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 Delayed 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', delayed_groups='all', **kwargs): + """Returns an array of the fission spectrum. + + This method constructs a 2D NumPy array for the requested multi-group + cross section data data for one or more energy groups and subdomains. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest. Defaults to 'all'. + delayed_groups : Iterable of Integral or 'all' + Delayed groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + This parameter is not relevant for chi but is included here to + mirror the parent MGXS.get_xs(...) class method + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. + + Returns + ------- + 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. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(groups, basestring): + cv.check_iterable_type('groups', groups, Integral) + for group in groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of delayed group tuples for all requested groups + if not isinstance(delayed_groups, basestring): + cv.check_iterable_type('delayed_groups', delayed_groups, Integral) + for delayed_group in delayed_groups: + filters.append('delayedgroups') + filter_bins.append((delayed_group,)) + + # If chi delayed was computed for each nuclide in the domain + if self.by_nuclide: + + # Get the sum as the fission source weighted average chi for all + # nuclides in the domain + if nuclides == 'sum' or nuclides == ['sum']: + + # Retrieve the fission production tallies + delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] + delayed_nu_fission_out = self.tallies['delayed-nu-fission-out'] + + # Sum out all nuclides + nuclides = self.get_all_nuclides() + delayed_nu_fission_in = delayed_nu_fission_in.summation(nuclides=nuclides) + delayed_nu_fission_out = delayed_nu_fission_out.summation(nuclides=nuclides) + + # Remove coarse energy filter to keep it out of tally arithmetic + energy_filter = delayed_nu_fission_in.find_filter('energy') + delayed_nu_fission_in.remove_filter(energy_filter) + + # Compute chi and store it as the xs_tally attribute so we can + # use the generic get_xs(...) method + xs_tally = delayed_nu_fission_out / delayed_nu_fission_in + + # Add the coarse energy filter back to the nu-fission tally + delayed_nu_fission_in.filters.append(energy_filter) + + xs = xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Get chi delayed for all nuclides in the domain + elif nuclides == 'all': + nuclides = self.get_all_nuclides() + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # Get chi delayed for user-specified nuclides in the domain + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # If chi delayed was computed as an average of nuclides in the domain + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + + # Reshape tally data array with separate axes for domain and energy + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + num_subdomains = int(xs.shape[0] / num_groups) + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_1d(xs) + + xs = np.nan_to_num(xs) + return xs + + +class DelayedNuFissionXS(MDGXS): + """A fission delayed neutron production multi-group cross section. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group fission neutron production cross sections for multi-group + neutronics calculations. At a minimum, one needs to set the + :attr:`DelayedNuFissionXS.energy_groups` and :attr:`DelayedNuFissionXS.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`DelayedNuFissionXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`DelayedNuFissionXS.xs_tally` property. + + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + fission neutron production cross section is calculated as: + + .. math:: + + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \nu\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. + + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + delayed_groups : openmc.mgxs.DelayedGroups + Delayed groups to filter out the xs + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + delayed_groups : openmc.mgxs.DelayedGroups + Delayed groups to filter out the xs + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuFissionXS.tally_keys` property and + values are instances of :class:`openmc.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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, energy_groups=None, + by_nuclide=False, name='', delayed_groups=None): + super(DelayedNuFissionXS, self).__init__(domain, domain_type, + energy_groups, by_nuclide, + name, delayed_groups) + self._rxn_type = 'delayed-nu-fission' + + +class Beta(MDGXS): + """The delayed neutron fraction. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`ChiDelayed.energy_groups` and + :attr:`ChiDelayed.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`ChiDelayed.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`ChiDelayed.xs_tally` property. + + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + fission spectrum is calculated as: + + .. math:: + + \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in V} dr + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) + \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \nu\sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, + E') \psi(r, E', \Omega') \\ + \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle + \nu\sigma_f \phi \rangle} + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + delayed_groups : openmc.mgxs.DelayedGroups + Delayed groups to filter out the xs + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + delayed_groups : openmc.mgxs.DelayedGroups + Delayed groups to filter out the xs + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`ChiDelayed.tally_keys` property and + values are instances of :class:`openmc.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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, energy_groups=None, + by_nuclide=False, name='', delayed_groups=None): + super(Beta, self).__init__(domain, domain_type, energy_groups, + by_nuclide, name, delayed_groups) + self._rxn_type = 'beta' + + @property + def scores(self): + return ['delayed-nu-fission', 'nu-fission'] + + @property + def filters(self): + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) + if self.delayed_groups != None: + delayed_groups = self.delayed_groups.groups + delayed_filter = openmc.Filter('delayedgroup', delayed_groups) + return [[delayed_filter, energy], [energy]] + else: + return [[energy], [energy]] + + @property + def tally_keys(self): + return ['delayed-nu-fission', 'nu-fission'] + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['delayed-nu-fission'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + @property + def xs_tally(self): + + if self._xs_tally is None: + nu_fission = self.tallies['nu-fission'] + + # Compute chi + self._xs_tally = self.rxn_rate_tally / nu_fission + super(Beta, self)._compute_xs() + + return self._xs_tally diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index acc240e045..6ed4f9f7b9 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -36,9 +36,9 @@ MGXS_TYPES = ['total', 'multiplicity matrix', 'nu-fission matrix', 'chi', - 'chi-delayed', 'chi-prompt', - 'inverse-velocity'] + 'inverse-velocity', + 'prompt-neutron-lifetime'] # Supported domain types # TODO: Implement Mesh domains @@ -496,12 +496,12 @@ class MGXS(object): mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'chi': mgxs = Chi(domain, domain_type, energy_groups) - elif mgxs_type == 'chi-delayed': - mgxs = ChiDelayed(domain, domain_type, energy_groups) elif mgxs_type == 'chi-prompt': mgxs = ChiPrompt(domain, domain_type, energy_groups) - elif mgxs_type == 'velocity': - mgxs = Velocity(domain, domain_type, energy_groups) + elif mgxs_type == 'inverse-velocity': + mgxs = InverseVelocity(domain, domain_type, energy_groups) + elif mgxs_type == 'prompt-neutron-lifetime': + mgxs = PromptNeutronLifetime(domain, domain_type, energy_groups) mgxs.by_nuclide = by_nuclide mgxs.name = name @@ -1010,16 +1010,16 @@ class MGXS(object): 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 = [] + filters = [] + filter_bins = [] + + if len(groups) != 0: + energy_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'] + energy_bins.append(group_bounds) + filter_bins.append(tuple(energy_bins)) + filters.append('energy') # Clone this MGXS to initialize the sliced version slice_xs = copy.deepcopy(self) @@ -2627,7 +2627,7 @@ class CaptureXS(MGXS): class FissionXS(MGXS): - r"""A fission multi-group cross section. + """A fission multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2846,7 +2846,6 @@ class NuFissionXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'nu-fission' - class KappaFissionXS(MGXS): """A recoverable fission energy production rate multi-group cross section. @@ -3989,7 +3988,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): class MultiplicityMatrixXS(MatrixMGXS): - r"""The scattering multiplicity matrix. + """The scattering multiplicity matrix. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -4143,7 +4142,7 @@ class MultiplicityMatrixXS(MatrixMGXS): class NuFissionMatrixXS(MatrixMGXS): - r"""A fission production matrix multi-group cross section. + """A fission production matrix multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -4716,583 +4715,6 @@ class Chi(MGXS): return df -class ChiDelayed(Chi): - """The delayed fission spectrum. - - This class can be used for both OpenMC input generation and tally data - post-processing to compute spatially-homogenized and energy-integrated - multi-group cross sections for multi-group neutronics calculations. At a - minimum, one needs to set the :attr:`ChiDelayed.energy_groups` and - :attr:`ChiDelayed.domain` properties. Tallies for the flux and appropriate - reaction rates over the specified domain are generated automatically via the - :attr:`ChiDelayed.tallies` property, which can then be appended to a - :class:`openmc.Tallies` instance. - - For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the - necessary data to compute multi-group cross sections from a - :class:`openmc.StatePoint` instance. The derived multi-group cross section - can then be obtained from the :attr:`ChiDelayed.xs_tally` property. - - For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the - fission spectrum is calculated as: - - .. math:: - - \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in V} dr - \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) - \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ - \langle \nu\sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} - d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, - E') \psi(r, E', \Omega') \\ - \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle - \nu\sigma_f \phi \rangle} - - Parameters - ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh - The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} - The domain type for spatial homogenization - groups : openmc.mgxs.EnergyGroups - The energy group structure for energy condensation - by_nuclide : bool - If true, computes cross sections for each nuclide in domain - name : str, optional - Name of the multi-group cross section. Used as a label to identify - tallies in OpenMC 'tallies.xml' file. - - Attributes - ---------- - name : str, optional - Name of the multi-group cross section - rxn_type : str - Reaction type (e.g., 'total', 'nu-fission', etc.) - by_nuclide : bool - If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe or Mesh - Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} - Domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups - Energy group structure for energy condensation - delayed_groups : list of int - Delayed groups to filter out the xs - tally_trigger : openmc.Trigger - An (optional) tally precision trigger given to each tally used to - compute the cross section - scores : list of str - The scores in each tally used to compute the multi-group cross section - filters : list of openmc.Filter - The filters in each tally used to compute the multi-group cross section - tally_keys : list of str - The keys into the tallies dictionary for each tally used to compute - the multi-group cross section - estimator : {'tracklength', 'analog'} - The tally estimator used to compute the multi-group cross section - tallies : collections.OrderedDict - OpenMC tallies needed to compute the multi-group cross section. The keys - are strings listed in the :attr:`ChiDelayed.tally_keys` property and - values are instances of :class:`openmc.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 : 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 : 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 : 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' - 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 - loaded_sp : bool - Whether or not a statepoint file has been loaded with tally data - derived : bool - Whether or not the MGXS is merged from one or more other MGXS - hdf5_key : str - The key used to index multi-group cross sections in an HDF5 data store - - """ - - def __init__(self, domain=None, domain_type=None, - groups=None, by_nuclide=False, name='', delayed_groups=None): - super(ChiDelayed, self).__init__(domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'chi-delayed' - self._delayed_groups = None - - if delayed_groups is not None: - self.delayed_groups = delayed_groups - - @property - def delayed_groups(self): - return self._delayed_groups - - @property - def num_delayed_groups(self): - if self._delayed_groups != None: - return len(self.delayed_groups) - else: - return 0 - - @delayed_groups.setter - def delayed_groups(self, delayed_groups): - cv.check_iterable_type('delayed groups', delayed_groups, int) - self._delayed_groups = delayed_groups - - @property - def filters(self): - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energyout = openmc.Filter('energyout', group_edges) - energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) - if self.delayed_groups != None: - delayed_group_filter = openmc.Filter('delayedgroup', self.delayed_groups) - return [[delayed_group_filter, energyin], [delayed_group_filter, energyout]] - else: - return [[energyin], [energyout]] - - @property - def scores(self): - return ['delayed-nu-fission', 'delayed-nu-fission'] - - @property - def tally_keys(self): - return ['delayed-nu-fission-in', 'delayed-nu-fission-out'] - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['delayed-nu-fission-out'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally - - @property - def xs_tally(self): - - if self._xs_tally is None: - delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] - - # Remove coarse energy filter to keep it out of tally arithmetic - energy_filter = delayed_nu_fission_in.find_filter('energy') - delayed_nu_fission_in.remove_filter(energy_filter) - - # Compute chi - self._xs_tally = self.rxn_rate_tally / delayed_nu_fission_in - super(ChiDelayed, self)._compute_xs() - - # Add the coarse energy filter back to the nu-fission tally - delayed_nu_fission_in.filters.append(energy_filter) - - return self._xs_tally - - def get_slice(self, nuclides=[], groups=[]): - """Build a sliced ChiDelayed 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 - ------- - openmc.mgxs.MGXS - A new MGXS 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 delayed-nu-fission-in since its - # group structure will work in super MGXS.get_slice(...) method - delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] - energy_filter = delayed_nu_fission_in.find_filter('energy') - delayed_nu_fission_in.remove_filter(energy_filter) - - # Call super class method and null out derived tallies - slice_xs = super(ChiDelayed, 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 - delayed_nu_fission_out = slice_xs.tallies['delayed-nu-fission-out'] - tally_slice = delayed_nu_fission_out.get_slice(filters=['energyout'], - filter_bins=filter_bins) - slice_xs._tallies['delayed-nu-fission-out'] = tally_slice - - # Add energy filter back to nu-fission-in tallies - self.tallies['delayed-nu-fission-in'].add_filter(energy_filter) - slice_xs._tallies['delayed-nu-fission-in'].add_filter(energy_filter) - - slice_xs.sparse = self.sparse - return slice_xs - - def merge(self, other): - """Merge another ChiDelayed with this one - - If results have been loaded from a statepoint, then ChiDelayed are only - mergeable along one and only one of energy groups or nuclides. - - Parameters - ---------- - other : openmc.mgxs.MGXS - MGXS to merge with this one - - Returns - ------- - merged_mgxs : openmc.mgxs.MGXS - Merged MGXS - """ - - if not self.can_merge(other): - raise ValueError('Unable to merge ChiDelayed') - - # 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 Delayed 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'): - """Prints a string representation for the multi-group cross section. - - Parameters - ---------- - subdomains : Iterable of Integral or 'all' - The subdomain IDs of the cross sections to include in the report. - Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). - The special string 'all' will report the cross sections for all - nuclides in the spatial domain. The special string 'sum' will - report the cross sections summed over all nuclides. Defaults to - 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. - - """ - - # Construct a collection of the subdomains to report - if not isinstance(subdomains, basestring): - 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 == 'mesh': - subdomains = [] - if (len(self.domain.dimension) == 3): - nx, ny, nz = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - for z in range(1,nz+1): - subdomains.append((x, y, z)) - else: - nx, ny = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - subdomains.append((x, y, 1)) - else: - subdomains = [self.domain.id] - - # Construct a collection of the nuclides to report - if self.by_nuclide: - if nuclides == 'all': - nuclides = self.get_all_nuclides() - if nuclides == 'sum': - nuclides = ['sum'] - else: - cv.check_iterable_type('nuclides', nuclides, basestring) - else: - nuclides = ['sum'] - - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - # Build header for string with type and domain info - string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) - - # If cross section data has not been computed, only print string header - if self.tallies is None: - print(string) - return - - string += '{0: <16}\n'.format('\tEnergy Groups:') - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' - - # Loop over energy groups ranges - for group in range(1, self.num_groups + 1): - bounds = self.energy_groups.get_group_bounds(group) - string += template.format('', group, bounds[0], bounds[1]) - - # Loop over all subdomains - for subdomain in subdomains: - - if self.domain_type == 'distribcell': - string += \ - '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - - # Loop over all Nuclides - for nuclide in nuclides: - - # Build header for nuclide type - if xs_type != 'sum': - string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) - - # Build header for cross section type - if xs_type == 'macro': - string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') - else: - string += '{0: <16}\n'.format('\tCross Sections [barns]:') - - if self.delayed_groups != None: - - for delayed_group in range(1, self.num_delayed_groups+1): - - template = '{0: <12}Delayed Group {1}:\t' - string += template.format('', delayed_group) - string += '\n' - - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' - - # Loop over energy groups ranges - for group in range(1, self.num_groups+1): - bounds = self.energy_groups.get_group_bounds(group) - string += template.format('', group, bounds[0], bounds[1]) - average = self.get_xs([group], [subdomain], [nuclide], - xs_type=xs_type, value='mean', - delayed_groups=[delayed_group]) - rel_err = self.get_xs([group], [subdomain], [nuclide], - xs_type=xs_type, value='rel_err', - delayed_groups=[delayed_group]) - average = average.flatten()[0] - rel_err = rel_err.flatten()[0] * 100. - string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) - string += '\n' - string += '\n' - string += '\n' - - else: - - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' - - # Loop over energy groups ranges - for group in range(1, self.num_groups+1): - bounds = self.energy_groups.get_group_bounds(group) - string += template.format('', group, bounds[0], bounds[1]) - average = self.get_xs([group], [subdomain], [nuclide], - xs_type=xs_type, value='mean') - rel_err = self.get_xs([group], [subdomain], [nuclide], - xs_type=xs_type, value='rel_err') - average = average.flatten()[0] - rel_err = rel_err.flatten()[0] * 100. - string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) - string += '\n' - string += '\n' - string += '\n' - - - print(string) - - def get_xs(self, groups='all', subdomains='all', nuclides='all', - xs_type='macro', order_groups='increasing', - value='mean', delayed_groups='all', **kwargs): - """Returns an array of the fission spectrum. - - This method constructs a 2D NumPy array for the requested multi-group - cross section data data for one or more energy groups and subdomains. - - Parameters - ---------- - groups : Iterable of Integral or 'all' - Energy groups of interest. Defaults to 'all'. - delayed_groups : Iterable of Integral or 'all' - Delayed groups of interest. Defaults to 'all'. - subdomains : Iterable of Integral or 'all' - Subdomain IDs of interest. Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The - special string 'all' will return the cross sections for all nuclides - in the spatial domain. The special string 'sum' will return the - cross section summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - This parameter is not relevant for chi but is included here to - mirror the parent MGXS.get_xs(...) class method - order_groups: {'increasing', 'decreasing'} - Return the cross section indexed according to increasing or - decreasing energy groups (decreasing or increasing energies). - Defaults to 'increasing'. - value : {'mean', 'std_dev', 'rel_err'} - A string for the type of value to return. Defaults to 'mean'. - - Returns - ------- - 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. - - Raises - ------ - ValueError - When this method is called before the multi-group cross section is - computed from tally data. - - """ - - cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - filters = [] - filter_bins = [] - - # Construct a collection of the domain filter bins - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) - for subdomain in subdomains: - filters.append(self.domain_type) - filter_bins.append((subdomain,)) - - # Construct list of energy group bounds tuples for all requested groups - if not isinstance(groups, basestring): - cv.check_iterable_type('groups', groups, Integral) - for group in groups: - filters.append('energyout') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) - - # Construct list of delayed group tuples for all requested groups - if not isinstance(delayed_groups, basestring): - cv.check_iterable_type('delayed_groups', delayed_groups, Integral) - for delayed_group in delayed_groups: - filters.append('delayedgroups') - filter_bins.append((delayed_group,)) - - # If chi delayed was computed for each nuclide in the domain - if self.by_nuclide: - - # Get the sum as the fission source weighted average chi for all - # nuclides in the domain - if nuclides == 'sum' or nuclides == ['sum']: - - # Retrieve the fission production tallies - delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] - delayed_nu_fission_out = self.tallies['delayed-nu-fission-out'] - - # Sum out all nuclides - nuclides = self.get_all_nuclides() - delayed_nu_fission_in = delayed_nu_fission_in.summation(nuclides=nuclides) - delayed_nu_fission_out = delayed_nu_fission_out.summation(nuclides=nuclides) - - # Remove coarse energy filter to keep it out of tally arithmetic - energy_filter = delayed_nu_fission_in.find_filter('energy') - delayed_nu_fission_in.remove_filter(energy_filter) - - # Compute chi and store it as the xs_tally attribute so we can - # use the generic get_xs(...) method - xs_tally = delayed_nu_fission_out / delayed_nu_fission_in - - # Add the coarse energy filter back to the nu-fission tally - delayed_nu_fission_in.filters.append(energy_filter) - - xs = xs_tally.get_values(filters=filters, - filter_bins=filter_bins, value=value) - - # Get chi delayed for all nuclides in the domain - elif nuclides == 'all': - nuclides = self.get_all_nuclides() - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, - nuclides=nuclides, value=value) - - # Get chi delayed for user-specified nuclides in the domain - else: - cv.check_iterable_type('nuclides', nuclides, basestring) - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, - nuclides=nuclides, value=value) - - # If chi delayed was computed as an average of nuclides in the domain - else: - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, value=value) - - # Reverse data if user requested increasing energy groups since - # tally data is stored in order of increasing energies - if order_groups == 'increasing': - - # Reshape tally data array with separate axes for domain and energy - if groups == 'all': - num_groups = self.num_groups - else: - num_groups = len(groups) - num_subdomains = int(xs.shape[0] / num_groups) - new_shape = (num_subdomains, num_groups) + xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Reverse energies to align with increasing energy groups - xs = xs[:, ::-1, :] - - # Eliminate trivial dimensions - xs = np.squeeze(xs) - xs = np.atleast_1d(xs) - - xs = np.nan_to_num(xs) - return xs - - class ChiPrompt(Chi): """The prompt fission spectrum. @@ -5813,3 +5235,244 @@ class InverseVelocity(MGXS): super(InverseVelocity, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'inverse-velocity' + + +class PromptNeutronLifetime(MGXS): + """The prompt neutron lifetime. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`PromptNeutronLifetime.energy_groups` + and :attr:`PromptNeutronLifetime.domain` properties. Tallies for the flux + and appropriate reaction rates over the specified domain are generated + automatically via the :attr:`PromptNeutronLifetime.tallies` property, which + can then be appended to a :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`PromptNeutronLifetime.xs_tally` + property. + + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + fission spectrum is calculated as: + + .. math:: + + \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in V} dr + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) + \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \nu\sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, + E') \psi(r, E', \Omega') \\ + \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle + \nu\sigma_f \phi \rangle} + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`ChiDelayed.tally_keys` property and + values are instances of :class:`openmc.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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(PromptNeutronLifetime, self).__init__(domain, domain_type, groups, by_nuclide, name) + self._rxn_type = 'prompt-neutron-lifetime' + + @property + def scores(self): + return ['nu-fission', 'inverse-velocity'] + + @property + def tally_keys(self): + return ['nu-fission', 'inverse-velocity'] + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['inverse-velocity'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + @property + def xs_tally(self): + + if self._xs_tally is None: + nu_fission = self.tallies['nu-fission'] + + # Compute the prompt neutron lifetime + self._xs_tally = self.rxn_rate_tally / 100.0 / nu_fission + super(PromptNeutronLifetime, self)._compute_xs() + + return self._xs_tally + + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): + """Print a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will report + the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + 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 == 'mesh': + subdomains = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains.append((x, y, 1)) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + elif nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if nuclide != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + string += '{0: <16}\n'.format('\tCross Sections [seconds]:') + + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + average = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + + print(string) From 710f8a75b854af8dccae784fdf96bb3b4e53f92c Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 4 Jul 2016 17:15:51 -0400 Subject: [PATCH 105/417] added chi-prompt, velocity, and prompt-neutron-lifetime mgxs --- openmc/checkvalue.py | 2 +- openmc/filter.py | 2 +- openmc/mgxs/mgxs.py | 880 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 865 insertions(+), 19 deletions(-) diff --git a/openmc/checkvalue.py b/openmc/checkvalue.py index cc0e1190df..6bb2be31b5 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -213,7 +213,7 @@ def check_less_than(name, value, maximum, equality=False): raise ValueError(msg) def check_greater_than(name, value, minimum, equality=False): - """Ensure that an object's value is less than a given value. + """Ensure that an object's value is greater than a given value. Parameters ---------- diff --git a/openmc/filter.py b/openmc/filter.py index 72fb3b14ed..4c742352d2 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -564,7 +564,7 @@ class Filter(object): # Initialize dictionary to build Pandas Multi-index column filter_dict = {} - # Append Mesh ID as outermost index of mult-index + # Append Mesh ID as outermost index of multi-index mesh_key = 'mesh {0}'.format(self.mesh.id) # Find mesh dimensions - use 3D indices for simplicity diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c12c61bdf4..557660946b 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -34,7 +34,10 @@ MGXS_TYPES = ['total', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', - 'chi'] + 'chi', + 'chi-prompt', + 'velocity', + 'prompt-neutron-lifetime'] # Supported domain types @@ -427,7 +430,11 @@ class MGXS(object): Parameters ---------- - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', + 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', + 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', + 'multiplicity matrix', 'nu-fission matrix', 'chi', 'chi-prompt', + 'velocity', 'prompt-neutron-lifetime'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization @@ -482,6 +489,12 @@ class MGXS(object): mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'chi': mgxs = Chi(domain, domain_type, energy_groups) + elif mgxs_type == 'chi-prompt': + mgxs = ChiPrompt(domain, domain_type, energy_groups) + elif mgxs_type == 'velocity': + mgxs = Velocity(domain, domain_type, energy_groups) + elif mgxs_type == 'prompt-neutron-lifetime': + mgxs = PromptNeutronLifetime(domain, domain_type, energy_groups) mgxs.by_nuclide = by_nuclide mgxs.name = name @@ -1935,7 +1948,7 @@ class MatrixMGXS(MGXS): class TotalXS(MGXS): - r"""A total multi-group cross section. + """A total multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2044,7 +2057,7 @@ class TotalXS(MGXS): class TransportXS(MGXS): - r"""A transport-corrected total multi-group cross section. + """A transport-corrected total multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2187,7 +2200,7 @@ class TransportXS(MGXS): class NuTransportXS(TransportXS): - r"""A transport-corrected total multi-group cross section which + """A transport-corrected total multi-group cross section which accounts for neutron multiplicity in scattering reactions. This class can be used for both OpenMC input generation and tally data @@ -2300,7 +2313,7 @@ class NuTransportXS(TransportXS): class AbsorptionXS(MGXS): - r"""An absorption multi-group cross section. + """An absorption multi-group cross section. Absorption is defined as all reactions that do not produce secondary neutrons (disappearance) plus fission reactions. @@ -2413,7 +2426,7 @@ class AbsorptionXS(MGXS): class CaptureXS(MGXS): - r"""A capture multi-group cross section. + """A capture multi-group cross section. The neutron capture reaction rate is defined as the difference between OpenMC's 'absorption' and 'fission' reaction rate score types. This includes @@ -2541,7 +2554,7 @@ class CaptureXS(MGXS): class FissionXS(MGXS): - r"""A fission multi-group cross section. + """A fission multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2651,7 +2664,7 @@ class FissionXS(MGXS): class NuFissionXS(MGXS): - r"""A fission neutron production multi-group cross section. + """A fission neutron production multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2762,7 +2775,7 @@ class NuFissionXS(MGXS): class KappaFissionXS(MGXS): - r"""A recoverable fission energy production rate multi-group cross section. + """A recoverable fission energy production rate multi-group cross section. The recoverable energy per fission, :math:`\kappa`, is defined as the fission product kinetic energy, prompt and delayed neutron kinetic energies, @@ -2878,7 +2891,7 @@ class KappaFissionXS(MGXS): class ScatterXS(MGXS): - r"""A scattering multi-group cross section. + """A scattering multi-group cross section. The scattering cross section is defined as the difference between the total and absorption cross sections. @@ -2991,7 +3004,7 @@ class ScatterXS(MGXS): class NuScatterXS(MGXS): - r"""A scattering neutron production multi-group cross section. + """A scattering neutron production multi-group cross section. The neutron production from scattering is defined as the average number of neutrons produced from all neutron-producing reactions except for fission. @@ -3110,7 +3123,7 @@ class NuScatterXS(MGXS): class ScatterMatrixXS(MatrixMGXS): - r"""A scattering matrix multi-group cross section for one or more Legendre + """A scattering matrix multi-group cross section for one or more Legendre moments. This class can be used for both OpenMC input generation and tally data @@ -3444,7 +3457,7 @@ class ScatterMatrixXS(MatrixMGXS): subdomains='all', nuclides='all', moment='all', xs_type='macro', order_groups='increasing', row_column='inout', value='mean', **kwargs): - r"""Returns an array of multi-group cross sections. + """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested scattering matrix data data for one or more energy groups and subdomains. @@ -3890,7 +3903,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): class MultiplicityMatrixXS(MatrixMGXS): - r"""The scattering multiplicity matrix. + """The scattering multiplicity matrix. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -4044,7 +4057,7 @@ class MultiplicityMatrixXS(MatrixMGXS): class NuFissionMatrixXS(MatrixMGXS): - r"""A fission production matrix multi-group cross section. + """A fission production matrix multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -4159,7 +4172,7 @@ class NuFissionMatrixXS(MatrixMGXS): class Chi(MGXS): - r"""The fission spectrum. + """The fission spectrum. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -4615,3 +4628,836 @@ class Chi(MGXS): df['std. dev.'] *= np.tile(densities, tile_factor) return df + + +class ChiPrompt(Chi): + """The prompt fission spectrum. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`ChiPrompt.energy_groups` and + :attr:`ChiPrompt.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`ChiPrompt.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`ChiPrompt.xs_tally` property. + + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + fission spectrum is calculated as: + + .. math:: + + \langle \nu\sigma_{f,\rightarrow g}^p \phi \rangle &= \int_{r \in V} dr + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) + \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \nu\sigma_f^p \phi \rangle &= \int_{r \in V} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f^p (r, + E') \psi(r, E', \Omega') \\ + \chi_g^p &= \frac{\langle \nu\sigma_{f,\rightarrow g}^p \phi \rangle}{\langle + \nu\sigma_f^p \phi \rangle} + + Parameters + ---------- + 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 + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`ChiPrompt.tally_keys` property and + values are instances of :class:`openmc.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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(ChiPrompt, self).__init__(domain, domain_type, groups, by_nuclide, name) + self._rxn_type = 'chi-prompt' + + @property + def scores(self): + return ['delayed-nu-fission', 'delayed-nu-fission', + 'nu-fission', 'nu-fission'] + + @property + def filters(self): + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energyout = openmc.Filter('energyout', group_edges) + energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) + return [[energyin], [energyout], [energyin], [energyout]] + + @property + def tally_keys(self): + return ['delayed-nu-fission-in', 'delayed-nu-fission-out', + 'nu-fission-in', 'nu-fission-out'] + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['nu-fission-out'] - \ + self.tallies['delayed-nu-fission-out'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + @property + def xs_tally(self): + + if self._xs_tally is None: + delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] + nu_fission_in = self.tallies['nu-fission-in'] + prompt_nu_fission_in = nu_fission_in - delayed_nu_fission_in + + # Remove coarse energy filter to keep it out of tally arithmetic + energy_filter = prompt_nu_fission_in.find_filter('energy') + prompt_nu_fission_in.remove_filter(energy_filter) + + # Compute chi + self._xs_tally = self.rxn_rate_tally / prompt_nu_fission_in + super(ChiPrompt, self)._compute_xs() + + # Add the coarse energy filter back to the nu-fission tally + prompt_nu_fission_in.filters.append(energy_filter) + + return self._xs_tally + + def get_slice(self, nuclides=[], groups=[]): + """Build a sliced ChiDelayed 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 + ------- + openmc.mgxs.MGXS + A new MGXS 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 delayed-nu-fission-in since its + # group structure will work in super MGXS.get_slice(...) method + delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] + nu_fission_in = self.tallies['nu-fission-in'] + prompt_nu_fission_in = nu_fission_in - delayed_nu_fission_in + energy_filter = prompt_nu_fission_in.find_filter('energy') + prompt_nu_fission_in.remove_filter(energy_filter) + + # Call super class method and null out derived tallies + slice_xs = super(ChiPrompt, 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 + prompt_nu_fission_out = slice_xs.tallies['nu-fission-out'] - \ + slice_xs.tallies['delayed-nu-fission-out'] + tally_slice = prompt_nu_fission_out\ + .get_slice(filters=['energyout'], + filter_bins=filter_bins) + slice_xs._tallies['prompt-nu-fission-out'] = tally_slice + + # Add energy filter back to nu-fission-in tallies + slice_xs._tallies['prompt-nu-fission-in'].add_filter(energy_filter) + + slice_xs.sparse = self.sparse + return slice_xs + + def merge(self, other): + """Merge another ChiPrompt with this one + + If results have been loaded from a statepoint, then ChiPrompt are only + mergeable along one and only one of energy groups or nuclides. + + Parameters + ---------- + other : openmc.mgxs.MGXS + MGXS to merge with this one + + Returns + ------- + merged_mgxs : openmc.mgxs.MGXS + Merged MGXS + """ + + if not self.can_merge(other): + raise ValueError('Unable to merge ChiPrompt') + + return super(ChiPrompt, self).merge(other) + + def get_xs(self, groups='all', subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', + value='mean', **kwargs): + """Returns an array of the fission spectrum. + + This method constructs a 2D NumPy array for the requested multi-group + cross section data data for one or more energy groups and subdomains. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + This parameter is not relevant for chi but is included here to + mirror the parent MGXS.get_xs(...) class method + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. + + Returns + ------- + 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. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(groups, basestring): + cv.check_iterable_type('groups', groups, Integral) + for group in groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # If chi delayed was computed for each nuclide in the domain + if self.by_nuclide: + + # Get the sum as the fission source weighted average chi for all + # nuclides in the domain + if nuclides == 'sum' or nuclides == ['sum']: + + # Retrieve the fission production tallies + prompt_nu_fission_in = self.tallies['nu-fission-in'] - \ + self.tallies['delayed-nu-fission-in'] + prompt_nu_fission_out = self.tallies['nu-fission-out'] - \ + self.tallies['delayed-nu-fission-out'] + + # Sum out all nuclides + nuclides = self.get_all_nuclides() + prompt_nu_fission_in = prompt_nu_fission_in.summation\ + (nuclides=nuclides) + prompt_nu_fission_out = prompt_nu_fission_out.summation\ + (nuclides=nuclides) + + # Remove coarse energy filter to keep it out of tally arithmetic + energy_filter = prompt_nu_fission_in.find_filter('energy') + prompt_nu_fission_in.remove_filter(energy_filter) + + # Compute chi and store it as the xs_tally attribute so we can + # use the generic get_xs(...) method + xs_tally = prompt_nu_fission_out / prompt_nu_fission_in + + # Add the coarse energy filter back to the nu-fission tally + prompt_nu_fission_in.filters.append(energy_filter) + + xs = xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Get chi delayed for all nuclides in the domain + elif nuclides == 'all': + nuclides = self.get_all_nuclides() + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # Get chi prompt for user-specified nuclides in the domain + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # If chi prompt was computed as an average of nuclides in the domain + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + + # Reshape tally data array with separate axes for domain and energy + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + num_subdomains = int(xs.shape[0] / num_groups) + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_1d(xs) + + xs = np.nan_to_num(xs) + return xs + + +class Velocity(MGXS): + """A velocity multi-group cross section. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group velocity cross sections for multi-group neutronics + calculations. At a minimum, one needs to set the + :attr:`Velocity.energy_groups` and :attr:`Velocity.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`Velocity.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`Velocity.xs_tally` property. + + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + velocity cross section is calculated as: + + .. math:: + + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \frac{\psi (r, E, \Omega)}{v (r, E)}}. + + Parameters + ---------- + 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 + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`AbsorptionXS.tally_keys` property and + values are instances of :class:`openmc.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 : 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 : int + The number of subdomains is unity for 'material', 'cell' and 'universe' + domain types. 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(Velocity, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'velocity' + + @property + def scores(self): + return ['inverse-velocity', 'flux'] + + @property + def tally_keys(self): + return ['inverse-velocity', 'flux'] + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['flux'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + @property + def xs_tally(self): + + if self._xs_tally is None: + inverse_velocity = self.tallies['inverse-velocity'] + + # Compute the velocity + self._xs_tally = self.rxn_rate_tally / inverse_velocity + super(Velocity, self)._compute_xs() + + return self._xs_tally + + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): + """Print a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will report + the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + elif nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if nuclide != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + string += '{0: <16}\n'.format\ + ('\tVelocity [cm/second]:') + + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + average = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + + print(string) + + +class PromptNeutronLifetime(MGXS): + """The prompt neutron lifetime. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`PromptNeutronLifetime.energy_groups` + and :attr:`PromptNeutronLifetime.domain` properties. Tallies for the flux + and appropriate reaction rates over the specified domain are generated + automatically via the :attr:`PromptNeutronLifetime.tallies` property, which + can then be appended to a :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`PromptNeutronLifetime.xs_tally` + property. + + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + fission spectrum is calculated as: + + .. math:: + + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \frac{\psi (r, E, \Omega)}{v (r, E)}}{\int_{r \in V} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \nu\sigma_f (r, E') \psi(r, E', \Omega')}. + + Parameters + ---------- + 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 + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`ChiDelayed.tally_keys` property and + values are instances of :class:`openmc.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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(PromptNeutronLifetime, self).__init__(domain, domain_type, groups, + by_nuclide, name) + self._rxn_type = 'prompt-neutron-lifetime' + + @property + def scores(self): + return ['nu-fission', 'inverse-velocity'] + + @property + def tally_keys(self): + return ['nu-fission', 'inverse-velocity'] + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['inverse-velocity'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + @property + def xs_tally(self): + + if self._xs_tally is None: + nu_fission = self.tallies['nu-fission'] + + # Compute the prompt neutron lifetime + self._xs_tally = self.rxn_rate_tally / nu_fission + super(PromptNeutronLifetime, self)._compute_xs() + + return self._xs_tally + + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): + """Print a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will report + the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + elif nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if nuclide != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + string += '{0: <16}\n'.format\ + ('\tPrompt Neutron Lifetime [seconds]:') + + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + average = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + + print(string) From c194d5abf560b51f8a582dfebbfd60fcc51fcf11 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Mon, 4 Jul 2016 21:33:33 +0000 Subject: [PATCH 106/417] updated mgxs tests --- .../inputs_true.dat | 2 +- .../results_true.dat | 18 +++++++++++++ .../inputs_true.dat | 2 +- .../results_true.dat | 6 +++++ tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 27 +++++++++++++++++++ .../inputs_true.dat | 2 +- .../results_true.dat | 27 +++++++++++++++++++ .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- 10 files changed, 84 insertions(+), 6 deletions(-) diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index 79ca0ec660..c1e6d24296 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ No newline at end of file +2230e48a03dd9b216bce126d26ded2e586d5d904004dd7333fa083dd20aa60b7b03918c31aa25aa66fdf273acdfbdec2f078d7f62bc8c24b0d956d1ffd28fbe5 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 13c277b15f..bcee2e33f3 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -34,6 +34,12 @@ 0 10000 1 1 total 0.085835 0.005592 material group out nuclide mean std. dev. 0 10000 1 total 1.0 0.046071 + material group out nuclide mean std. dev. +0 10000 1 total 1.0 0.047454 + material group in nuclide mean std. dev. +0 10000 1 total 2.001309e+06 146216.555365 + material group in nuclide mean std. dev. +0 10000 1 total 0.000006 5.069020e-07 material group in nuclide mean std. dev. 0 10001 1 total 0.311594 0.013793 material group in nuclide mean std. dev. @@ -70,6 +76,12 @@ 0 10001 1 1 total 0.0 0.0 material group out nuclide mean std. dev. 0 10001 1 total 0.0 0.0 + material group out nuclide mean std. dev. +0 10001 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10001 1 total 1.833261e+06 166355.17452 + material group in nuclide mean std. dev. +0 10001 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10002 1 total 0.904999 0.043964 material group in nuclide mean std. dev. @@ -106,3 +118,9 @@ 0 10002 1 1 total 0.0 0.0 material group out nuclide mean std. dev. 0 10002 1 total 0.0 0.0 + material group out nuclide mean std. dev. +0 10002 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10002 1 total 1.732200e+06 159691.42643 + material group in nuclide mean std. dev. +0 10002 1 total 0.0 0.0 diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index dc67b7c562..ff8a929586 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -88849ac150f9c389e67de96356dfceb0bde08643f68ca25699e67d263995b95893d7340a2b08b2f0f5075fc5020f73553c5287ec6c56ace2f35ce0214961e123 \ No newline at end of file +9a1efebdeb6fb16db4e5a5d8b5d7c8323308a41a423df89becfdcd5eb291a075a79b651e19115ec1230f26e59b654aa88ea21c1a5c85e9ff4944a36d537720da \ 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 5000d60c3b..cfbbbce3c5 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -34,3 +34,9 @@ 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.0 0.0 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 0.0 + 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 0.0 + 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 774245.714482 416397.691599 + 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 0.0 diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index 79ca0ec660..c1e6d24296 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ No newline at end of file +2230e48a03dd9b216bce126d26ded2e586d5d904004dd7333fa083dd20aa60b7b03918c31aa25aa66fdf273acdfbdec2f078d7f62bc8c24b0d956d1ffd28fbe5 \ 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 7391b2e427..9d6fdd7b0f 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -63,6 +63,15 @@ domain=10000 type=nu-fission matrix domain=10000 type=chi [ 1. 0.] [ 0.04607052 0. ] +domain=10000 type=chi-prompt +[ 1. 0.] +[ 0.04745364 0. ] +domain=10000 type=velocity +[ 17515210.62039676 350171.99519401] +[ 1438175.27389879 29945.93169673] +domain=10000 type=prompt-neutron-lifetime +[ 2.93814305e-06 6.07895452e-06] +[ 2.76620532e-07 6.43372639e-07] domain=10001 type=total [ 0.31373767 0.3008214 ] [ 0.0155819 0.02805245] @@ -128,6 +137,15 @@ domain=10001 type=nu-fission matrix domain=10001 type=chi [ 0. 0.] [ 0. 0.] +domain=10001 type=chi-prompt +[ 0. 0.] +[ 0. 0.] +domain=10001 type=velocity +[ 16677839.49736621 334953.36760125] +[ 1266444.30951813 38336.78162568] +domain=10001 type=prompt-neutron-lifetime +[ 0. 0.] +[ 0. 0.] domain=10002 type=total [ 0.66457226 2.05238401] [ 0.03121475 0.22434291] @@ -193,3 +211,12 @@ domain=10002 type=nu-fission matrix domain=10002 type=chi [ 0. 0.] [ 0. 0.] +domain=10002 type=chi-prompt +[ 0. 0.] +[ 0. 0.] +domain=10002 type=velocity +[ 16605562.87322708 328412.03865003] +[ 1042435.52374238 38828.43572983] +domain=10002 type=prompt-neutron-lifetime +[ 0. 0.] +[ 0. 0.] diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index 79ca0ec660..c1e6d24296 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ No newline at end of file +2230e48a03dd9b216bce126d26ded2e586d5d904004dd7333fa083dd20aa60b7b03918c31aa25aa66fdf273acdfbdec2f078d7f62bc8c24b0d956d1ffd28fbe5 \ 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 599cee6c49..0d4b81a1ca 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -75,6 +75,15 @@ material group out nuclide mean std. dev. 1 10000 1 total 1.0 0.046071 0 10000 2 total 0.0 0.000000 + material group out nuclide mean std. dev. +1 10000 1 total 1.0 0.047454 +0 10000 2 total 0.0 0.000000 + material group in nuclide mean std. dev. +1 10000 1 total 1.751521e+07 1.438175e+06 +0 10000 2 total 3.501720e+05 2.994593e+04 + material group in nuclide mean std. dev. +1 10000 1 total 0.000003 2.766205e-07 +0 10000 2 total 0.000006 6.433726e-07 material group in nuclide mean std. dev. 1 10001 1 total 0.313738 0.015582 0 10001 2 total 0.300821 0.028052 @@ -152,6 +161,15 @@ material group out nuclide mean std. dev. 1 10001 1 total 0.0 0.0 0 10001 2 total 0.0 0.0 + material group out nuclide mean std. dev. +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 10001 1 total 1.667784e+07 1.266444e+06 +0 10001 2 total 3.349534e+05 3.833678e+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10002 1 total 0.664572 0.031215 0 10002 2 total 2.052384 0.224343 @@ -229,3 +247,12 @@ material group out nuclide mean std. dev. 1 10002 1 total 0.0 0.0 0 10002 2 total 0.0 0.0 + material group out nuclide mean std. dev. +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 10002 1 total 1.660556e+07 1.042436e+06 +0 10002 2 total 3.284120e+05 3.882844e+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 8dbb564c65..f3775583e5 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -eebb1469278f470b5859ed83e9b6526e7c4e3fed503bd22e414c6dc13b19b8e4cb6a44e3c14269e6e173f43056eda78268f455662ae119280bc18ea6a071dac7 \ No newline at end of file +55e4b692a2b2fa09f3177448bdd23c3ff894451dfc597ccda409789f7f9cde12e9ed1517953b8677666345113c80517cf235ead482a3568fa841dca1aa6e8073 \ 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 4f47bd417f..fc3feeffbb 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -a631b8a347f344d822e6300ed2576caa7c05a74daedeb4aaaabfb89570942cff1bbd47ad7f81306e668e12266404f7abdcf680fdfeb5a4835579892e32bf57e8 \ No newline at end of file +f9c67e4156bdc4a97c51e4ebfb6024460b9dabb9aaadd4cd805c1afba24a759a36a0490de41211ff818cba5cf3da1f32ed891d23285c3e777f213ce534ea2c83 \ No newline at end of file From f336ac70d61c6289ed05580124ee797a20722406 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Mon, 4 Jul 2016 21:36:21 +0000 Subject: [PATCH 107/417] fixed typos in mgxs --- openmc/mgxs/mgxs.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 557660946b..728b8f4f9c 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -4790,7 +4790,7 @@ class ChiPrompt(Chi): return self._xs_tally def get_slice(self, nuclides=[], groups=[]): - """Build a sliced ChiDelayed for the specified nuclides and energy + """Build a sliced ChiPrompt for the specified nuclides and energy groups. This method constructs a new MGXS to encapsulate a subset of the data @@ -5082,7 +5082,7 @@ class Velocity(MGXS): The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys - are strings listed in the :attr:`AbsorptionXS.tally_keys` property and + are strings listed in the :attr:`Velocity.tally_keys` property and values are instances of :class:`openmc.Tally`. rxn_rate_tally : openmc.Tally Derived tally for the reaction rate tally used in the numerator to @@ -5307,8 +5307,8 @@ class PromptNeutronLifetime(MGXS): The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys - are strings listed in the :attr:`ChiDelayed.tally_keys` property and - values are instances of :class:`openmc.Tally`. + are strings listed in the :attr:`PromptNeutronLifetime.tally_keys` + property and values are instances of :class:`openmc.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 From 9b57761d8dc37cc0a161f8277ce6f66d25916eaf Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Mon, 4 Jul 2016 21:40:29 +0000 Subject: [PATCH 108/417] fixed more typos in mgxs --- openmc/mgxs/mgxs.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 728b8f4f9c..29e3791452 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -4936,7 +4936,7 @@ class ChiPrompt(Chi): filters.append('energyout') filter_bins.append((self.energy_groups.get_group_bounds(group),)) - # If chi delayed was computed for each nuclide in the domain + # If chi prompt was computed for each nuclide in the domain if self.by_nuclide: # Get the sum as the fission source weighted average chi for all @@ -4960,8 +4960,8 @@ class ChiPrompt(Chi): energy_filter = prompt_nu_fission_in.find_filter('energy') prompt_nu_fission_in.remove_filter(energy_filter) - # Compute chi and store it as the xs_tally attribute so we can - # use the generic get_xs(...) method + # Compute chi prompt and store it as the xs_tally attribute so + # we can use the generic get_xs(...) method xs_tally = prompt_nu_fission_out / prompt_nu_fission_in # Add the coarse energy filter back to the nu-fission tally @@ -4970,7 +4970,7 @@ class ChiPrompt(Chi): xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) - # Get chi delayed for all nuclides in the domain + # Get chi prompt for all nuclides in the domain elif nuclides == 'all': nuclides = self.get_all_nuclides() xs = self.xs_tally.get_values(filters=filters, From 224d42d4673777ebc99b50722173f31b6ae7ee54 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Mon, 4 Jul 2016 22:02:50 +0000 Subject: [PATCH 109/417] removed prompt-neutron-lifetime and add prompt-nu-fission --- openmc/mgxs/mgxs.py | 159 +++--------------- .../inputs_true.dat | 2 +- .../results_true.dat | 4 +- .../inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 10 +- .../inputs_true.dat | 2 +- .../results_true.dat | 6 +- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- 10 files changed, 44 insertions(+), 147 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 29e3791452..ca98c41095 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -37,7 +37,7 @@ MGXS_TYPES = ['total', 'chi', 'chi-prompt', 'velocity', - 'prompt-neutron-lifetime'] + 'prompt-nu-fission'] # Supported domain types @@ -434,7 +434,7 @@ class MGXS(object): 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', 'chi', 'chi-prompt', - 'velocity', 'prompt-neutron-lifetime'} + 'velocity', 'prompt-nu-fission'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization @@ -493,8 +493,8 @@ class MGXS(object): mgxs = ChiPrompt(domain, domain_type, energy_groups) elif mgxs_type == 'velocity': mgxs = Velocity(domain, domain_type, energy_groups) - elif mgxs_type == 'prompt-neutron-lifetime': - mgxs = PromptNeutronLifetime(domain, domain_type, energy_groups) + elif mgxs_type == 'prompt-nu-fission': + mgxs = PromptNuFissionXS(domain, domain_type, energy_groups) mgxs.by_nuclide = by_nuclide mgxs.name = name @@ -5126,10 +5126,6 @@ class Velocity(MGXS): def scores(self): return ['inverse-velocity', 'flux'] - @property - def tally_keys(self): - return ['inverse-velocity', 'flux'] - @property def rxn_rate_tally(self): if self._rxn_rate_tally is None: @@ -5238,32 +5234,36 @@ class Velocity(MGXS): print(string) -class PromptNeutronLifetime(MGXS): - """The prompt neutron lifetime. +class PromptNuFissionXS(MGXS): + """A prompt fission neutron production multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated multi-group cross sections for multi-group neutronics calculations. At a - minimum, one needs to set the :attr:`PromptNeutronLifetime.energy_groups` - and :attr:`PromptNeutronLifetime.domain` properties. Tallies for the flux - and appropriate reaction rates over the specified domain are generated - automatically via the :attr:`PromptNeutronLifetime.tallies` property, which - can then be appended to a :class:`openmc.Tallies` instance. + minimum, one needs to set the :attr:`PromptNuFissionXS.energy_groups` and + :attr:`PromptNuFissionXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`PromptNuFissionXS.tallies` property, which can + then be appended to a :class:`openmc.Tallies` instance. For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the necessary data to compute multi-group cross sections from a :class:`openmc.StatePoint` instance. The derived multi-group cross section - can then be obtained from the :attr:`PromptNeutronLifetime.xs_tally` - property. + can then be obtained from the :attr:`PromptNuFissionXS.xs_tally` property. For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the fission spectrum is calculated as: .. math:: - \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \frac{\psi (r, E, \Omega)}{v (r, E)}}{\int_{r \in V} dr \int_{4\pi} - d\Omega \int_{E_g}^{E_{g-1}} dE \; \nu\sigma_f (r, E') \psi(r, E', \Omega')}. + \langle \nu\sigma_{f,\rightarrow g}^p \phi \rangle &= \int_{r \in V} dr + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) + \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \nu\sigma_f^p \phi \rangle &= \int_{r \in V} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f^p (r, + E') \psi(r, E', \Omega') \\ + \chi_g^p &= \frac{\langle \nu\sigma_{f,\rightarrow g}^p \phi \rangle}{\langle + \nu\sigma_f^p \phi \rangle} Parameters ---------- @@ -5307,8 +5307,8 @@ class PromptNeutronLifetime(MGXS): The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys - are strings listed in the :attr:`PromptNeutronLifetime.tally_keys` - property and values are instances of :class:`openmc.Tally`. + are strings listed in the :attr:`PromptNuFissionXS.tally_keys` property + and values are instances of :class:`openmc.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 @@ -5343,121 +5343,18 @@ class PromptNeutronLifetime(MGXS): def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(PromptNeutronLifetime, self).__init__(domain, domain_type, groups, - by_nuclide, name) - self._rxn_type = 'prompt-neutron-lifetime' + super(PromptNuFissionXS, self).__init__(domain, domain_type, groups, + by_nuclide, name) + self._rxn_type = 'prompt-nu-fission' @property def scores(self): - return ['nu-fission', 'inverse-velocity'] - - @property - def tally_keys(self): - return ['nu-fission', 'inverse-velocity'] + return ['flux', 'nu-fission', 'delayed-nu-fission'] @property def rxn_rate_tally(self): if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['inverse-velocity'] + self._rxn_rate_tally = self.tallies['nu-fission'] - \ + self.tallies['delayed-nu-fission'] self._rxn_rate_tally.sparse = self.sparse return self._rxn_rate_tally - - @property - def xs_tally(self): - - if self._xs_tally is None: - nu_fission = self.tallies['nu-fission'] - - # Compute the prompt neutron lifetime - self._xs_tally = self.rxn_rate_tally / nu_fission - super(PromptNeutronLifetime, self)._compute_xs() - - return self._xs_tally - - def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): - """Print a string representation for the multi-group cross section. - - Parameters - ---------- - subdomains : Iterable of Integral or 'all' - The subdomain IDs of the cross sections to include in the report. - Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). - The special string 'all' will report the cross sections for all - nuclides in the spatial domain. The special string 'sum' will report - the cross sections summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. - - """ - - # Construct a collection of the subdomains to report - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral) - elif self.domain_type == 'distribcell': - subdomains = np.arange(self.num_subdomains, dtype=np.int) - else: - subdomains = [self.domain.id] - - # Construct a collection of the nuclides to report - if self.by_nuclide: - if nuclides == 'all': - nuclides = self.get_all_nuclides() - elif nuclides == 'sum': - nuclides = ['sum'] - else: - cv.check_iterable_type('nuclides', nuclides, basestring) - else: - nuclides = ['sum'] - - cv.check_value('xs_type', xs_type, ['macro']) - - # Build header for string with type and domain info - string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) - - # If cross section data has not been computed, only print string header - if self.tallies is None: - print(string) - return - - # Loop over all subdomains - for subdomain in subdomains: - - if self.domain_type == 'distribcell': - string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - - # Loop over all Nuclides - for nuclide in nuclides: - - # Build header for nuclide type - if nuclide != 'sum': - string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) - - # Build header for cross section type - string += '{0: <16}\n'.format\ - ('\tPrompt Neutron Lifetime [seconds]:') - - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' - - # Loop over energy groups ranges - for group in range(1, self.num_groups+1): - bounds = self.energy_groups.get_group_bounds(group) - string += template.format('', group, bounds[0], bounds[1]) - average = self.get_xs([group], [subdomain], [nuclide], - xs_type=xs_type, value='mean') - rel_err = self.get_xs([group], [subdomain], [nuclide], - xs_type=xs_type, value='rel_err') - average = average.flatten()[0] - rel_err = rel_err.flatten()[0] * 100. - string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) - string += '\n' - string += '\n' - string += '\n' - - print(string) diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index c1e6d24296..c187a5f507 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -2230e48a03dd9b216bce126d26ded2e586d5d904004dd7333fa083dd20aa60b7b03918c31aa25aa66fdf273acdfbdec2f078d7f62bc8c24b0d956d1ffd28fbe5 \ No newline at end of file +fa10bef56a0541a6484ed87ab0d94ae338ad9ff3ff69d917f33aa3a0bf8744f28c00fa23a2bccc1503f8815ac9d9305be7f739d1a7edcf296139b8a3ad5531c9 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index bcee2e33f3..bc820c5769 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -38,8 +38,8 @@ 0 10000 1 total 1.0 0.047454 material group in nuclide mean std. dev. 0 10000 1 total 2.001309e+06 146216.555365 - material group in nuclide mean std. dev. -0 10000 1 total 0.000006 5.069020e-07 + material group in nuclide mean std. dev. +0 10000 1 total 0.090004 0.006401 material group in nuclide mean std. dev. 0 10001 1 total 0.311594 0.013793 material group in nuclide mean std. dev. diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index ff8a929586..7e2a2e990f 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -9a1efebdeb6fb16db4e5a5d8b5d7c8323308a41a423df89becfdcd5eb291a075a79b651e19115ec1230f26e59b654aa88ea21c1a5c85e9ff4944a36d537720da \ No newline at end of file +3799e4a037364d2df56e440f005abe6a0a93817865fc046af99de59525ca468b88a8e591181bfeac851993ec2a91b767b909c262d89f2850dcbc81428a048e9d \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index c1e6d24296..c187a5f507 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -2230e48a03dd9b216bce126d26ded2e586d5d904004dd7333fa083dd20aa60b7b03918c31aa25aa66fdf273acdfbdec2f078d7f62bc8c24b0d956d1ffd28fbe5 \ No newline at end of file +fa10bef56a0541a6484ed87ab0d94ae338ad9ff3ff69d917f33aa3a0bf8744f28c00fa23a2bccc1503f8815ac9d9305be7f739d1a7edcf296139b8a3ad5531c9 \ 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 9d6fdd7b0f..1105f35d10 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -69,9 +69,9 @@ domain=10000 type=chi-prompt domain=10000 type=velocity [ 17515210.62039676 350171.99519401] [ 1438175.27389879 29945.93169673] -domain=10000 type=prompt-neutron-lifetime -[ 2.93814305e-06 6.07895452e-06] -[ 2.76620532e-07 6.43372639e-07] +domain=10000 type=prompt-nu-fission +[ 0.01923926 0.46671903] +[ 0.00131949 0.04161421] domain=10001 type=total [ 0.31373767 0.3008214 ] [ 0.0155819 0.02805245] @@ -143,7 +143,7 @@ domain=10001 type=chi-prompt domain=10001 type=velocity [ 16677839.49736621 334953.36760125] [ 1266444.30951813 38336.78162568] -domain=10001 type=prompt-neutron-lifetime +domain=10001 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] domain=10002 type=total @@ -217,6 +217,6 @@ domain=10002 type=chi-prompt domain=10002 type=velocity [ 16605562.87322708 328412.03865003] [ 1042435.52374238 38828.43572983] -domain=10002 type=prompt-neutron-lifetime +domain=10002 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index c1e6d24296..c187a5f507 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -2230e48a03dd9b216bce126d26ded2e586d5d904004dd7333fa083dd20aa60b7b03918c31aa25aa66fdf273acdfbdec2f078d7f62bc8c24b0d956d1ffd28fbe5 \ No newline at end of file +fa10bef56a0541a6484ed87ab0d94ae338ad9ff3ff69d917f33aa3a0bf8744f28c00fa23a2bccc1503f8815ac9d9305be7f739d1a7edcf296139b8a3ad5531c9 \ 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 0d4b81a1ca..71583d198e 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -81,9 +81,9 @@ material group in nuclide mean std. dev. 1 10000 1 total 1.751521e+07 1.438175e+06 0 10000 2 total 3.501720e+05 2.994593e+04 - material group in nuclide mean std. dev. -1 10000 1 total 0.000003 2.766205e-07 -0 10000 2 total 0.000006 6.433726e-07 + material group in nuclide mean std. dev. +1 10000 1 total 0.019239 0.001319 +0 10000 2 total 0.466719 0.041614 material group in nuclide mean std. dev. 1 10001 1 total 0.313738 0.015582 0 10001 2 total 0.300821 0.028052 diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index f3775583e5..7c73d5eb1b 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -55e4b692a2b2fa09f3177448bdd23c3ff894451dfc597ccda409789f7f9cde12e9ed1517953b8677666345113c80517cf235ead482a3568fa841dca1aa6e8073 \ No newline at end of file +c142d30bae2afb93e55fdeb7e364131b319f9d42523d999bb8b65cf70329b7356a1a878116d6848c4e27556b392bf76c7f49b6dbde79f4cda903738c4d3243c0 \ 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 fc3feeffbb..a9e3fa952e 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -f9c67e4156bdc4a97c51e4ebfb6024460b9dabb9aaadd4cd805c1afba24a759a36a0490de41211ff818cba5cf3da1f32ed891d23285c3e777f213ce534ea2c83 \ No newline at end of file +7e48c8cda041fcd77df98d128a2777ab8f411ac5b7dcba8cddd4ecfb22f5c92267ef0965dc0024ee8c31ae2d7afe9491d2b40589380167004b4bbbe7ada564ff \ No newline at end of file From d3550389c9b4736ba848cb4455145d2d6d009721 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Mon, 4 Jul 2016 22:07:25 +0000 Subject: [PATCH 110/417] updated equation for PromptNuFissionXS --- openmc/mgxs/mgxs.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index ca98c41095..acd6365298 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5256,14 +5256,9 @@ class PromptNuFissionXS(MGXS): .. math:: - \langle \nu\sigma_{f,\rightarrow g}^p \phi \rangle &= \int_{r \in V} dr - \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) - \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ - \langle \nu\sigma_f^p \phi \rangle &= \int_{r \in V} dr \int_{4\pi} - d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f^p (r, - E') \psi(r, E', \Omega') \\ - \chi_g^p &= \frac{\langle \nu\sigma_{f,\rightarrow g}^p \phi \rangle}{\langle - \nu\sigma_f^p \phi \rangle} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \nu\sigma_f^p (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- From 695cda64257d11e24eb0524eb3d97f5413f3102e Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 5 Jul 2016 08:42:56 -0400 Subject: [PATCH 111/417] fixed bug in tallies.py --- .../pythonapi/examples/mgxs-part-i.ipynb | 559 +++++------------- openmc/mgxs/mgxs.py | 2 + openmc/tallies.py | 5 + 3 files changed, 148 insertions(+), 418 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 5c51b11d38..5ffdeece1d 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -398,7 +398,7 @@ "# Instantiate a tally Mesh\n", "mesh = openmc.Mesh(name='mesh')\n", "mesh.type = 'regular'\n", - "mesh.dimension = [1, 1]\n", + "mesh.dimension = [2, 2]\n", "mesh.lower_left = [-0.63, -0.63]\n", "mesh.upper_right = [+0.63, +0.63]\n", "\n", @@ -406,9 +406,9 @@ "total = mgxs.TotalXS(domain=mesh, groups=groups)\n", "absorption = mgxs.AbsorptionXS(domain=mesh, groups=groups)\n", "scattering = mgxs.ScatterXS(domain=mesh, groups=groups)\n", - "#total = mgxs.TotalXS(domain=cell, groups=groups)\n", - "#absorption = mgxs.AbsorptionXS(domain=cell, groups=groups)\n", - "#scattering = mgxs.ScatterXS(domain=cell, groups=groups)" + "chi_prompt = mgxs.ChiPrompt(domain=mesh, groups=groups)\n", + "prompt_nu_fission = mgxs.PromptNuFissionXS(domain=mesh, groups=groups)\n", + "velocity = mgxs.Velocity(domain=mesh, groups=groups)" ] }, { @@ -428,22 +428,22 @@ { "data": { "text/plain": [ - "OrderedDict([('flux', Tally\n", + "OrderedDict([('inverse-velocity', Tally\n", " \tID =\t10000\n", " \tName =\t\n", " \tFilters =\t\n", " \t\tmesh\t[10000]\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", + " \tScores =\t['inverse-velocity']\n", + " \tEstimator =\ttracklength), ('flux', Tally\n", " \tID =\t10001\n", " \tName =\t\n", " \tFilters =\t\n", " \t\tmesh\t[10000]\n", " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", " \tNuclides =\ttotal \n", - " \tScores =\t['absorption']\n", + " \tScores =\t['flux']\n", " \tEstimator =\ttracklength)])" ] }, @@ -453,7 +453,7 @@ } ], "source": [ - "absorption.tallies" + "velocity.tallies" ] }, { @@ -483,6 +483,15 @@ "# Add scattering tallies to the tallies file\n", "tallies_file += scattering.tallies.values()\n", "\n", + "# Add scattering tallies to the tallies file\n", + "tallies_file += chi_prompt.tallies.values()\n", + "\n", + "# Add scattering tallies to the tallies file\n", + "tallies_file += prompt_nu_fission.tallies.values()\n", + "\n", + "# Add scattering tallies to the tallies file\n", + "tallies_file += velocity.tallies.values()\n", + "\n", "# Export to \"tallies.xml\"\n", "tallies_file.export_to_xml()" ] @@ -521,9 +530,9 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: d30d010aea2c1cba90c993a9c501be9d5d81921d\n", - " Date/Time: 2016-06-28 13:31:05\n", - " MPI Processes: 1\n", + " Git SHA1: edf2dd76c731a711cea7bbc28f0982292c19389f\n", + " Date/Time: 2016-07-05 08:40:11\n", + " MPI Processes: 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -578,20 +587,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 8.1200E-01 seconds\n", - " Reading cross sections = 2.4200E-01 seconds\n", - " Total time in simulation = 2.8910E+00 seconds\n", - " Time in transport only = 2.8710E+00 seconds\n", - " Time in inactive batches = 8.5700E-01 seconds\n", - " Time in active batches = 2.0340E+00 seconds\n", - " Time synchronizing fission bank = 0.0000E+00 seconds\n", - " Sampling source sites = 0.0000E+00 seconds\n", + " Total time for initialization = 1.3780E+00 seconds\n", + " Reading cross sections = 6.1400E-01 seconds\n", + " Total time in simulation = 1.9100E+00 seconds\n", + " Time in transport only = 1.7900E+00 seconds\n", + " Time in inactive batches = 3.6400E-01 seconds\n", + " Time in active batches = 1.5460E+00 seconds\n", + " Time synchronizing fission bank = 7.8000E-02 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 = 3.7090E+00 seconds\n", - " Calculation Rate (inactive) = 11668.6 neutrons/second\n", - " Calculation Rate (active) = 4916.42 neutrons/second\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 8.0000E-03 seconds\n", + " Total time elapsed = 3.2980E+00 seconds\n", + " Calculation Rate (inactive) = 27472.5 neutrons/second\n", + " Calculation Rate (active) = 6468.31 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -616,7 +625,7 @@ ], "source": [ "# Run OpenMC\n", - "openmc.run()" + "openmc.run(mpi_procs=4)" ] }, { @@ -665,12 +674,82 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n", + "['mesh']\n", + "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "[0]\n", + "[10000]\n" + ] + } + ], "source": [ "# Load the tallies from the statepoint into each MGXS object\n", "total.load_from_statepoint(sp)\n", "absorption.load_from_statepoint(sp)\n", - "scattering.load_from_statepoint(sp)" + "scattering.load_from_statepoint(sp)\n", + "chi_prompt.load_from_statepoint(sp)\n", + "prompt_nu_fission.load_from_statepoint(sp)\n", + "velocity.load_from_statepoint(sp)" ] }, { @@ -702,24 +781,22 @@ }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Multi-Group XS\n", - "\tReaction Type =\ttotal\n", - "\tDomain Type =\tmesh\n", - "\tDomain ID =\t10000\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.79e-01 +/- 7.64e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 1.79e+00%\n", - "\n", - "\n", - "\n" + "ename": "IndexError", + "evalue": "index 3 is out of bounds for axis 0 with size 2", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mvelocity\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_xs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mprint_xs\u001b[0;34m(self, subdomains, nuclides, xs_type)\u001b[0m\n\u001b[1;32m 5325\u001b[0m \u001b[0mstring\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0mtemplate\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m''\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgroup\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5326\u001b[0m average = self.get_xs([group], [subdomain], [nuclide],\n\u001b[0;32m-> 5327\u001b[0;31m xs_type=xs_type, value='mean')\n\u001b[0m\u001b[1;32m 5328\u001b[0m rel_err = self.get_xs([group], [subdomain], [nuclide],\n\u001b[1;32m 5329\u001b[0m xs_type=xs_type, value='rel_err')\n", + "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mget_xs\u001b[0;34m(self, groups, subdomains, nuclides, xs_type, order_groups, value, **kwargs)\u001b[0m\n\u001b[1;32m 819\u001b[0m \u001b[0mxs_tally\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxs_tally\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msummation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnuclides\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mquery_nuclides\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 820\u001b[0m xs = xs_tally.get_values(filters=filters,\n\u001b[0;32m--> 821\u001b[0;31m filter_bins=filter_bins, value=value)\n\u001b[0m\u001b[1;32m 822\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 823\u001b[0m xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins,\n", + "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/tallies.pyc\u001b[0m in \u001b[0;36mget_values\u001b[0;34m(self, scores, filters, filter_bins, nuclides, value)\u001b[0m\n\u001b[1;32m 1479\u001b[0m \u001b[0;31m# Return the desired result from Tally\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1480\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'mean'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1481\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1482\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'std_dev'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1483\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstd_dev\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: index 3 is out of bounds for axis 0 with size 2" ] } ], "source": [ - "total.print_xs()" + "velocity.print_xs()" ] }, { @@ -731,73 +808,11 @@ }, { "cell_type": "code", - "execution_count": 19, + "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", - "
mesh 10000group innuclidemeanstd. dev.
xyz
11111total0.6662610.005072
01112total1.2924510.022969
\n", - "
" - ], - "text/plain": [ - " mesh 10000 group in nuclide mean std. dev.\n", - " x y z \n", - "1 1 1 1 1 total 0.666261 0.005072\n", - "0 1 1 1 2 total 1.292451 0.022969" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df = scattering.get_pandas_dataframe()\n", "df.head(10)" @@ -812,13 +827,18 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ - "#absorption.export_xs_data(filename='absorption-xs', format='excel')" + "#total.export_xs_data(filename='total-xs', format='excel')\n", + "#absorption.export_xs_data(filename='absorption-xs', format='excel')\n", + "#scattering.export_xs_data(filename='scattering-xs', format='excel')\n", + "#chi_prompt.export_xs_data(filename='chi-prompt', format='excel')\n", + "#prompt_nu_fission.export_xs_data(filename='prompt-nu-fission', format='excel')\n", + "#velocity.export_xs_data(filename='velocity', format='excel')" ] }, { @@ -830,7 +850,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": false }, @@ -838,7 +858,10 @@ "source": [ "total.build_hdf5_store(filename='mgxs', append=True)\n", "absorption.build_hdf5_store(filename='mgxs', append=True)\n", - "scattering.build_hdf5_store(filename='mgxs', append=True)" + "scattering.build_hdf5_store(filename='mgxs', append=True)\n", + "chi_prompt.build_hdf5_store(filename='mgxs', append=True)\n", + "prompt_nu_fission.build_hdf5_store(filename='mgxs', append=True)\n", + "velocity.build_hdf5_store(filename='mgxs', append=True)" ] }, { @@ -857,86 +880,11 @@ }, { "cell_type": "code", - "execution_count": 22, + "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", - " \n", - "
mesh 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...-1.554312e-150.033991
11116.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...-2.886580e-150.007258
\n", - "
" - ], - "text/plain": [ - " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", - " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 total \n", - "1 1 1 1 6.25e-07 2.00e+01 total \n", - "\n", - " score mean std. dev. \n", - " \n", - "0 (((total / flux) - (absorption / flux)) - (sca... -1.55e-15 3.40e-02 \n", - "1 (((total / flux) - (absorption / flux)) - (sca... -2.89e-15 7.26e-03 " - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Use tally arithmetic to compute the difference between the total, absorption and scattering\n", "difference = total.xs_tally - absorption.xs_tally - scattering.xs_tally\n", @@ -954,86 +902,11 @@ }, { "cell_type": "code", - "execution_count": 23, + "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", - " \n", - "
mesh 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0761440.001984
11116.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0192240.000329
\n", - "
" - ], - "text/plain": [ - " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", - " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 total \n", - "1 1 1 1 6.25e-07 2.00e+01 total \n", - "\n", - " score mean std. dev. \n", - " \n", - "0 ((absorption / flux) / (total / flux)) 7.61e-02 1.98e-03 \n", - "1 ((absorption / flux) / (total / flux)) 1.92e-02 3.29e-04 " - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Use tally arithmetic to compute the absorption-to-total MGXS ratio\n", "absorption_to_total = absorption.xs_tally / total.xs_tally\n", @@ -1044,86 +917,11 @@ }, { "cell_type": "code", - "execution_count": 24, + "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", - " \n", - "
mesh 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9238560.023272
11116.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9807760.010576
\n", - "
" - ], - "text/plain": [ - " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", - " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 total \n", - "1 1 1 1 6.25e-07 2.00e+01 total \n", - "\n", - " score mean std. dev. \n", - " \n", - "0 ((scatter / flux) / (total / flux)) 9.24e-01 2.33e-02 \n", - "1 ((scatter / flux) / (total / flux)) 9.81e-01 1.06e-02 " - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Use tally arithmetic to compute the scattering-to-total MGXS ratio\n", "scattering_to_total = scattering.xs_tally / total.xs_tally\n", @@ -1141,86 +939,11 @@ }, { "cell_type": "code", - "execution_count": 25, + "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", - " \n", - "
mesh 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.023356
11116.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.010581
\n", - "
" - ], - "text/plain": [ - " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", - " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 total \n", - "1 1 1 1 6.25e-07 2.00e+01 total \n", - "\n", - " score mean std. dev. \n", - " \n", - "0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 2.34e-02 \n", - "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 1.06e-02 " - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Use tally arithmetic to ensure that the absorption- and scattering-to-total MGXS ratios sum to unity\n", "sum_ratio = absorption_to_total + scattering_to_total\n", diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f719cc5cbc..d79d322efd 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -733,6 +733,8 @@ class MGXS(object): sp_tally = statepoint.get_tally( tally.scores, tally.filters, tally.nuclides, estimator=tally.estimator, exact_filters=True) + print(filters) + print(filter_bins) sp_tally = sp_tally.get_slice( tally.scores, filters, filter_bins, tally.nuclides) sp_tally.sparse = self.sparse diff --git a/openmc/tallies.py b/openmc/tallies.py index af19549a7c..0531cf47fe 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2986,10 +2986,15 @@ class Tally(object): elif filter_type == 'distribcell': bin_indices = [0] num_bins = find_filter.num_bins + elif filter_type == 'mesh': + bin_indices = [0] + num_bins = find_filter.mesh.num_mesh_cells else: bin_indices.append(bin_index) num_bins += 1 + print(bin_indices) + print(find_filter.bins) find_filter.bins = np.unique(find_filter.bins[bin_indices]) find_filter.num_bins = num_bins From 092760d59fbac8d929ab33b5fdc48eab0c6cc8ac Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 5 Jul 2016 08:43:17 -0400 Subject: [PATCH 112/417] updated mgxs-part-i --- .../pythonapi/examples/mgxs-part-i.ipynb | 857 +++++++++++++++++- 1 file changed, 819 insertions(+), 38 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 5ffdeece1d..f3433b98c4 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -531,7 +531,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: edf2dd76c731a711cea7bbc28f0982292c19389f\n", - " Date/Time: 2016-07-05 08:40:11\n", + " Date/Time: 2016-07-05 08:42:21\n", " MPI Processes: 4\n", "\n", " ===========================================================================\n", @@ -587,20 +587,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.3780E+00 seconds\n", - " Reading cross sections = 6.1400E-01 seconds\n", - " Total time in simulation = 1.9100E+00 seconds\n", - " Time in transport only = 1.7900E+00 seconds\n", - " Time in inactive batches = 3.6400E-01 seconds\n", - " Time in active batches = 1.5460E+00 seconds\n", - " Time synchronizing fission bank = 7.8000E-02 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 = 8.0000E-03 seconds\n", - " Total time elapsed = 3.2980E+00 seconds\n", - " Calculation Rate (inactive) = 27472.5 neutrons/second\n", - " Calculation Rate (active) = 6468.31 neutrons/second\n", + " Total time for initialization = 9.5600E-01 seconds\n", + " Reading cross sections = 2.7100E-01 seconds\n", + " Total time in simulation = 1.7180E+00 seconds\n", + " Time in transport only = 1.6250E+00 seconds\n", + " Time in inactive batches = 2.7700E-01 seconds\n", + " Time in active batches = 1.4410E+00 seconds\n", + " Time synchronizing fission bank = 6.1000E-02 seconds\n", + " Sampling source sites = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", + " Total time for finalization = 5.0000E-03 seconds\n", + " Total time elapsed = 2.6810E+00 seconds\n", + " Calculation Rate (inactive) = 36101.1 neutrons/second\n", + " Calculation Rate (active) = 6939.63 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -781,17 +781,34 @@ }, "outputs": [ { - "ename": "IndexError", - "evalue": "index 3 is out of bounds for axis 0 with size 2", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mvelocity\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_xs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mprint_xs\u001b[0;34m(self, subdomains, nuclides, xs_type)\u001b[0m\n\u001b[1;32m 5325\u001b[0m \u001b[0mstring\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0mtemplate\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m''\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgroup\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5326\u001b[0m average = self.get_xs([group], [subdomain], [nuclide],\n\u001b[0;32m-> 5327\u001b[0;31m xs_type=xs_type, value='mean')\n\u001b[0m\u001b[1;32m 5328\u001b[0m rel_err = self.get_xs([group], [subdomain], [nuclide],\n\u001b[1;32m 5329\u001b[0m xs_type=xs_type, value='rel_err')\n", - "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mget_xs\u001b[0;34m(self, groups, subdomains, nuclides, xs_type, order_groups, value, **kwargs)\u001b[0m\n\u001b[1;32m 819\u001b[0m \u001b[0mxs_tally\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxs_tally\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msummation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnuclides\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mquery_nuclides\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 820\u001b[0m xs = xs_tally.get_values(filters=filters,\n\u001b[0;32m--> 821\u001b[0;31m filter_bins=filter_bins, value=value)\n\u001b[0m\u001b[1;32m 822\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 823\u001b[0m xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins,\n", - "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/tallies.pyc\u001b[0m in \u001b[0;36mget_values\u001b[0;34m(self, scores, filters, filter_bins, nuclides, value)\u001b[0m\n\u001b[1;32m 1479\u001b[0m \u001b[0;31m# Return the desired result from Tally\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1480\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'mean'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1481\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1482\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'std_dev'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1483\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstd_dev\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mIndexError\u001b[0m: index 3 is out of bounds for axis 0 with size 2" + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\tvelocity\n", + "\tDomain Type =\tmesh\n", + "\tDomain ID =\t10000\n", + "\tVelocity [cm/second]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t1.85e+07 +/- 1.57e+00%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t3.04e+05 +/- 2.55e+00%\n", + "\n", + "\n", + "\tVelocity [cm/second]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t1.85e+07 +/- 9.32e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t3.01e+05 +/- 2.62e+00%\n", + "\n", + "\n", + "\tVelocity [cm/second]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t1.82e+07 +/- 1.83e+00%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t3.04e+05 +/- 1.65e+00%\n", + "\n", + "\n", + "\tVelocity [cm/second]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t1.80e+07 +/- 1.41e+00%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t3.02e+05 +/- 2.18e+00%\n", + "\n", + "\n", + "\n" ] } ], @@ -808,11 +825,139 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "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", + "
mesh 10000group innuclidemeanstd. dev.
xyz
11111total0.6666460.007969
01112total1.2909900.030906
31211total0.6644910.004534
21212total1.2945300.031677
52111total0.6665240.006541
42112total1.2913780.020686
72211total0.6673860.005754
62212total1.2929080.027042
\n", + "
" + ], + "text/plain": [ + " mesh 10000 group in nuclide mean std. dev.\n", + " x y z \n", + "1 1 1 1 1 total 0.666646 0.007969\n", + "0 1 1 1 2 total 1.290990 0.030906\n", + "3 1 2 1 1 total 0.664491 0.004534\n", + "2 1 2 1 2 total 1.294530 0.031677\n", + "5 2 1 1 1 total 0.666524 0.006541\n", + "4 2 1 1 2 total 1.291378 0.020686\n", + "7 2 2 1 1 total 0.667386 0.005754\n", + "6 2 2 1 2 total 1.292908 0.027042" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df = scattering.get_pandas_dataframe()\n", "df.head(10)" @@ -827,7 +972,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": false }, @@ -850,7 +995,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -880,11 +1025,170 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mesh 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...-6.661338e-160.045734
11116.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...5.551115e-160.011425
21210.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...0.000000e+000.046921
31216.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...-1.110223e-160.006502
42110.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...4.440892e-160.030542
52116.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...3.330669e-160.009373
62210.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...-2.220446e-160.039990
72216.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...0.000000e+000.008229
\n", + "
" + ], + "text/plain": [ + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 1 1 6.25e-07 2.00e+01 total \n", + "2 1 2 1 0.00e+00 6.25e-07 total \n", + "3 1 2 1 6.25e-07 2.00e+01 total \n", + "4 2 1 1 0.00e+00 6.25e-07 total \n", + "5 2 1 1 6.25e-07 2.00e+01 total \n", + "6 2 2 1 0.00e+00 6.25e-07 total \n", + "7 2 2 1 6.25e-07 2.00e+01 total \n", + "\n", + " score mean std. dev. \n", + " \n", + "0 (((total / flux) - (absorption / flux)) - (sca... -6.66e-16 4.57e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... 5.55e-16 1.14e-02 \n", + "2 (((total / flux) - (absorption / flux)) - (sca... 0.00e+00 4.69e-02 \n", + "3 (((total / flux) - (absorption / flux)) - (sca... -1.11e-16 6.50e-03 \n", + "4 (((total / flux) - (absorption / flux)) - (sca... 4.44e-16 3.05e-02 \n", + "5 (((total / flux) - (absorption / flux)) - (sca... 3.33e-16 9.37e-03 \n", + "6 (((total / flux) - (absorption / flux)) - (sca... -2.22e-16 4.00e-02 \n", + "7 (((total / flux) - (absorption / flux)) - (sca... 0.00e+00 8.23e-03 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Use tally arithmetic to compute the difference between the total, absorption and scattering\n", "difference = total.xs_tally - absorption.xs_tally - scattering.xs_tally\n", @@ -902,11 +1206,170 @@ }, { "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0759700.002673
11116.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0198160.000597
21210.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0763800.002764
31216.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0183040.000376
42110.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0759890.001752
52116.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0190920.000579
62210.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0762360.002319
72216.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0196820.000472
\n", + "
" + ], + "text/plain": [ + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 1 1 6.25e-07 2.00e+01 total \n", + "2 1 2 1 0.00e+00 6.25e-07 total \n", + "3 1 2 1 6.25e-07 2.00e+01 total \n", + "4 2 1 1 0.00e+00 6.25e-07 total \n", + "5 2 1 1 6.25e-07 2.00e+01 total \n", + "6 2 2 1 0.00e+00 6.25e-07 total \n", + "7 2 2 1 6.25e-07 2.00e+01 total \n", + "\n", + " score mean std. dev. \n", + " \n", + "0 ((absorption / flux) / (total / flux)) 7.60e-02 2.67e-03 \n", + "1 ((absorption / flux) / (total / flux)) 1.98e-02 5.97e-04 \n", + "2 ((absorption / flux) / (total / flux)) 7.64e-02 2.76e-03 \n", + "3 ((absorption / flux) / (total / flux)) 1.83e-02 3.76e-04 \n", + "4 ((absorption / flux) / (total / flux)) 7.60e-02 1.75e-03 \n", + "5 ((absorption / flux) / (total / flux)) 1.91e-02 5.79e-04 \n", + "6 ((absorption / flux) / (total / flux)) 7.62e-02 2.32e-03 \n", + "7 ((absorption / flux) / (total / flux)) 1.97e-02 4.72e-04 " + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Use tally arithmetic to compute the absorption-to-total MGXS ratio\n", "absorption_to_total = absorption.xs_tally / total.xs_tally\n", @@ -917,11 +1380,170 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mesh 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9240300.031356
11116.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9801840.016619
21210.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9236200.032056
31216.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9816960.009510
42110.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9240110.020939
52116.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9809080.013650
62210.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9237640.027368
72216.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9803180.011958
\n", + "
" + ], + "text/plain": [ + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 1 1 6.25e-07 2.00e+01 total \n", + "2 1 2 1 0.00e+00 6.25e-07 total \n", + "3 1 2 1 6.25e-07 2.00e+01 total \n", + "4 2 1 1 0.00e+00 6.25e-07 total \n", + "5 2 1 1 6.25e-07 2.00e+01 total \n", + "6 2 2 1 0.00e+00 6.25e-07 total \n", + "7 2 2 1 6.25e-07 2.00e+01 total \n", + "\n", + " score mean std. dev. \n", + " \n", + "0 ((scatter / flux) / (total / flux)) 9.24e-01 3.14e-02 \n", + "1 ((scatter / flux) / (total / flux)) 9.80e-01 1.66e-02 \n", + "2 ((scatter / flux) / (total / flux)) 9.24e-01 3.21e-02 \n", + "3 ((scatter / flux) / (total / flux)) 9.82e-01 9.51e-03 \n", + "4 ((scatter / flux) / (total / flux)) 9.24e-01 2.09e-02 \n", + "5 ((scatter / flux) / (total / flux)) 9.81e-01 1.36e-02 \n", + "6 ((scatter / flux) / (total / flux)) 9.24e-01 2.74e-02 \n", + "7 ((scatter / flux) / (total / flux)) 9.80e-01 1.20e-02 " + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Use tally arithmetic to compute the scattering-to-total MGXS ratio\n", "scattering_to_total = scattering.xs_tally / total.xs_tally\n", @@ -939,11 +1561,170 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mesh 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.031469
11116.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.016630
21210.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.032175
31216.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.009517
42110.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.021012
52116.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.013662
62210.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.027466
72216.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.011967
\n", + "
" + ], + "text/plain": [ + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 1 1 6.25e-07 2.00e+01 total \n", + "2 1 2 1 0.00e+00 6.25e-07 total \n", + "3 1 2 1 6.25e-07 2.00e+01 total \n", + "4 2 1 1 0.00e+00 6.25e-07 total \n", + "5 2 1 1 6.25e-07 2.00e+01 total \n", + "6 2 2 1 0.00e+00 6.25e-07 total \n", + "7 2 2 1 6.25e-07 2.00e+01 total \n", + "\n", + " score mean std. dev. \n", + " \n", + "0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 3.15e-02 \n", + "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 1.66e-02 \n", + "2 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 3.22e-02 \n", + "3 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 9.52e-03 \n", + "4 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 2.10e-02 \n", + "5 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 1.37e-02 \n", + "6 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 2.75e-02 \n", + "7 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 1.20e-02 " + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Use tally arithmetic to ensure that the absorption- and scattering-to-total MGXS ratios sum to unity\n", "sum_ratio = absorption_to_total + scattering_to_total\n", From c66cb6ab66633b05712cc48b8b43d0cc841ace2c Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 5 Jul 2016 08:45:19 -0400 Subject: [PATCH 113/417] fixed bug in tally.get_slice() method for mesh filters --- openmc/tallies.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openmc/tallies.py b/openmc/tallies.py index af19549a7c..9ef5148966 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2986,6 +2986,9 @@ class Tally(object): elif filter_type == 'distribcell': bin_indices = [0] num_bins = find_filter.num_bins + elif filter_type == 'mesh': + bin_indices = [0] + num_bins = find_filter.mesh.num_mesh_cells else: bin_indices.append(bin_index) num_bins += 1 From eb553a75ddde66c6833d2b4b9f5793c13c332864 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Tue, 5 Jul 2016 12:55:54 +0000 Subject: [PATCH 114/417] changed way num_bins for mesh filter are set in tally.get_slice() method --- openmc/tallies.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 9ef5148966..4fc19f1e5d 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2983,12 +2983,9 @@ class Tally(object): bin_indices.extend([bin_index]) bin_indices.extend([bin_index, bin_index+1]) num_bins += 1 - elif filter_type == 'distribcell': + elif filter_type in ['distribcell', 'mesh']: bin_indices = [0] num_bins = find_filter.num_bins - elif filter_type == 'mesh': - bin_indices = [0] - num_bins = find_filter.mesh.num_mesh_cells else: bin_indices.append(bin_index) num_bins += 1 From d7b911645d6256a6cb3bf900d02031bf6601e121 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 5 Jul 2016 10:18:50 -0400 Subject: [PATCH 115/417] fixed issue in tally.get_slice() --- .../pythonapi/examples/mgxs-part-i.ipynb | 84 ++++++++++++++++--- openmc/tallies.py | 7 +- 2 files changed, 73 insertions(+), 18 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index f3433b98c4..0cfebedc34 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -530,8 +530,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: edf2dd76c731a711cea7bbc28f0982292c19389f\n", - " Date/Time: 2016-07-05 08:42:21\n", + " Git SHA1: 092760d59fbac8d929ab33b5fdc48eab0c6cc8ac\n", + " Date/Time: 2016-07-05 08:53:58\n", " MPI Processes: 4\n", "\n", " ===========================================================================\n", @@ -587,20 +587,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 9.5600E-01 seconds\n", - " Reading cross sections = 2.7100E-01 seconds\n", - " Total time in simulation = 1.7180E+00 seconds\n", - " Time in transport only = 1.6250E+00 seconds\n", - " Time in inactive batches = 2.7700E-01 seconds\n", - " Time in active batches = 1.4410E+00 seconds\n", + " Total time for initialization = 1.2080E+00 seconds\n", + " Reading cross sections = 2.6300E-01 seconds\n", + " Total time in simulation = 1.6120E+00 seconds\n", + " Time in transport only = 1.5200E+00 seconds\n", + " Time in inactive batches = 2.8400E-01 seconds\n", + " Time in active batches = 1.3280E+00 seconds\n", " Time synchronizing fission bank = 6.1000E-02 seconds\n", " Sampling source sites = 0.0000E+00 seconds\n", " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 5.0000E-03 seconds\n", - " Total time elapsed = 2.6810E+00 seconds\n", - " Calculation Rate (inactive) = 36101.1 neutrons/second\n", - " Calculation Rate (active) = 6939.63 neutrons/second\n", + " Total time elapsed = 2.8290E+00 seconds\n", + " Calculation Rate (inactive) = 35211.3 neutrons/second\n", + " Calculation Rate (active) = 7530.12 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -681,62 +681,122 @@ "text": [ "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n", "['mesh']\n", "[((1, 1, 1), (1, 2, 1), (2, 1, 1), (2, 2, 1))]\n", + "4\n", + "4\n", + "4\n", + "4\n", "[0]\n", "[10000]\n" ] diff --git a/openmc/tallies.py b/openmc/tallies.py index 0531cf47fe..4fc19f1e5d 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2983,18 +2983,13 @@ class Tally(object): bin_indices.extend([bin_index]) bin_indices.extend([bin_index, bin_index+1]) num_bins += 1 - elif filter_type == 'distribcell': + elif filter_type in ['distribcell', 'mesh']: bin_indices = [0] num_bins = find_filter.num_bins - elif filter_type == 'mesh': - bin_indices = [0] - num_bins = find_filter.mesh.num_mesh_cells else: bin_indices.append(bin_index) num_bins += 1 - print(bin_indices) - print(find_filter.bins) find_filter.bins = np.unique(find_filter.bins[bin_indices]) find_filter.num_bins = num_bins From 16dc3db6fa28ebd2b3600fbaf72bb60edbfab537 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 5 Jul 2016 14:43:40 -0400 Subject: [PATCH 116/417] added prompt-nu-fission tally and reduced size of new MGXS types --- .../pythonapi/examples/mgxs-part-i.ipynb | 5 +- .../pythonapi/examples/mgxs-part-iii.ipynb | 13 +- docs/source/usersguide/input.rst | 4 + openmc/mgxs/mgxs.py | 300 ++---------------- src/constants.F90 | 5 +- src/endf.F90 | 2 + src/input_xml.F90 | 6 + src/output.F90 | 1 + src/tally.F90 | 131 ++++++++ tests/test_tallies/test_tallies.py | 3 +- 10 files changed, 181 insertions(+), 289 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index ea75bec722..ded04e4790 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -383,6 +383,9 @@ "* `ScatterMatrixXS`\n", "* `NuScatterMatrixXS`\n", "* `Chi`\n", + "* `ChiPrompt`\n", + "* `Velocity`\n", + "* `PromptNuFissionXS`\n", "\n", "These classes provide us with an interface to generate the tally inputs as well as perform post-processing of OpenMC's tally data to compute the respective multi-group cross sections. In this case, let's create the multi-group total, absorption and scattering cross sections with our 2-group structure." ] @@ -1181,7 +1184,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 5f0acde3f1..c33aeeca1a 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -549,6 +549,9 @@ "* `ScatterMatrixXS` (`\"scatter matrix\"`)\n", "* `NuScatterMatrixXS` (`\"nu-scatter matrix\"`)\n", "* `Chi` (`\"chi\"`)\n", + "* `ChiPrompt` (`\"chi prompt\"`)\n", + "* `Velocity` (`\"velocity\"`)\n", + "* `PromptNuFissionXS` (`\"prompt-nu-fission\"`)\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\"`, `'\"fission\"`, `\"nu-scatter matrix\"` and `\"chi\"` cross sections for our `Library`.\n", "\n", @@ -1596,21 +1599,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.1" + "pygments_lexer": "ipython2", + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index d6802075e5..e530097ded 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1764,6 +1764,10 @@ The ```` element accepts the following sub-elements: | |fission. This score type is not used in the | | |multi-group :ref:`energy_mode`. | +----------------------+---------------------------------------------------+ + |prompt-nu-fission |Total production of prompt neutrons due to | + | |fission. This score type is not used in the | + | |multi-group :ref:`energy_mode`. | + +----------------------+---------------------------------------------------+ |nu-fission |Total production of neutrons due to fission. | +----------------------+---------------------------------------------------+ |nu-scatter, |These scores are similar in functionality to their | diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index acd6365298..aa97bc5984 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -430,11 +430,7 @@ class MGXS(object): Parameters ---------- - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', - 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', - 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', - 'multiplicity matrix', 'nu-fission matrix', 'chi', 'chi-prompt', - 'velocity', 'prompt-nu-fission'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', 'chi', 'chi-prompt', 'velocity', 'prompt-nu-fission'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization @@ -1948,7 +1944,7 @@ class MatrixMGXS(MGXS): class TotalXS(MGXS): - """A total multi-group cross section. + r"""A total multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2057,7 +2053,7 @@ class TotalXS(MGXS): class TransportXS(MGXS): - """A transport-corrected total multi-group cross section. + r"""A transport-corrected total multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2200,7 +2196,7 @@ class TransportXS(MGXS): class NuTransportXS(TransportXS): - """A transport-corrected total multi-group cross section which + r"""A transport-corrected total multi-group cross section which accounts for neutron multiplicity in scattering reactions. This class can be used for both OpenMC input generation and tally data @@ -2313,7 +2309,7 @@ class NuTransportXS(TransportXS): class AbsorptionXS(MGXS): - """An absorption multi-group cross section. + r"""An absorption multi-group cross section. Absorption is defined as all reactions that do not produce secondary neutrons (disappearance) plus fission reactions. @@ -2426,7 +2422,7 @@ class AbsorptionXS(MGXS): class CaptureXS(MGXS): - """A capture multi-group cross section. + r"""A capture multi-group cross section. The neutron capture reaction rate is defined as the difference between OpenMC's 'absorption' and 'fission' reaction rate score types. This includes @@ -2554,7 +2550,7 @@ class CaptureXS(MGXS): class FissionXS(MGXS): - """A fission multi-group cross section. + r"""A fission multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2664,7 +2660,7 @@ class FissionXS(MGXS): class NuFissionXS(MGXS): - """A fission neutron production multi-group cross section. + r"""A fission neutron production multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -2775,7 +2771,7 @@ class NuFissionXS(MGXS): class KappaFissionXS(MGXS): - """A recoverable fission energy production rate multi-group cross section. + r"""A recoverable fission energy production rate multi-group cross section. The recoverable energy per fission, :math:`\kappa`, is defined as the fission product kinetic energy, prompt and delayed neutron kinetic energies, @@ -2891,7 +2887,7 @@ class KappaFissionXS(MGXS): class ScatterXS(MGXS): - """A scattering multi-group cross section. + r"""A scattering multi-group cross section. The scattering cross section is defined as the difference between the total and absorption cross sections. @@ -3004,7 +3000,7 @@ class ScatterXS(MGXS): class NuScatterXS(MGXS): - """A scattering neutron production multi-group cross section. + r"""A scattering neutron production multi-group cross section. The neutron production from scattering is defined as the average number of neutrons produced from all neutron-producing reactions except for fission. @@ -3123,7 +3119,7 @@ class NuScatterXS(MGXS): class ScatterMatrixXS(MatrixMGXS): - """A scattering matrix multi-group cross section for one or more Legendre + r"""A scattering matrix multi-group cross section for one or more Legendre moments. This class can be used for both OpenMC input generation and tally data @@ -3793,7 +3789,7 @@ class ScatterMatrixXS(MatrixMGXS): class NuScatterMatrixXS(ScatterMatrixXS): - """A scattering production matrix multi-group cross section for one or + r"""A scattering production matrix multi-group cross section for one or more Legendre moments. This class can be used for both OpenMC input generation and tally data @@ -3903,7 +3899,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): class MultiplicityMatrixXS(MatrixMGXS): - """The scattering multiplicity matrix. + r"""The scattering multiplicity matrix. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -4057,7 +4053,7 @@ class MultiplicityMatrixXS(MatrixMGXS): class NuFissionMatrixXS(MatrixMGXS): - """A fission production matrix multi-group cross section. + r"""A fission production matrix multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -4172,7 +4168,7 @@ class NuFissionMatrixXS(MatrixMGXS): class Chi(MGXS): - """The fission spectrum. + r"""The fission spectrum. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -4631,7 +4627,7 @@ class Chi(MGXS): class ChiPrompt(Chi): - """The prompt fission spectrum. + r"""The prompt fission spectrum. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -4744,112 +4740,7 @@ class ChiPrompt(Chi): @property def scores(self): - return ['delayed-nu-fission', 'delayed-nu-fission', - 'nu-fission', 'nu-fission'] - - @property - def filters(self): - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energyout = openmc.Filter('energyout', group_edges) - energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) - return [[energyin], [energyout], [energyin], [energyout]] - - @property - def tally_keys(self): - return ['delayed-nu-fission-in', 'delayed-nu-fission-out', - 'nu-fission-in', 'nu-fission-out'] - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['nu-fission-out'] - \ - self.tallies['delayed-nu-fission-out'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally - - @property - def xs_tally(self): - - if self._xs_tally is None: - delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] - nu_fission_in = self.tallies['nu-fission-in'] - prompt_nu_fission_in = nu_fission_in - delayed_nu_fission_in - - # Remove coarse energy filter to keep it out of tally arithmetic - energy_filter = prompt_nu_fission_in.find_filter('energy') - prompt_nu_fission_in.remove_filter(energy_filter) - - # Compute chi - self._xs_tally = self.rxn_rate_tally / prompt_nu_fission_in - super(ChiPrompt, self)._compute_xs() - - # Add the coarse energy filter back to the nu-fission tally - prompt_nu_fission_in.filters.append(energy_filter) - - return self._xs_tally - - def get_slice(self, nuclides=[], groups=[]): - """Build a sliced ChiPrompt 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 - ------- - openmc.mgxs.MGXS - A new MGXS 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 delayed-nu-fission-in since its - # group structure will work in super MGXS.get_slice(...) method - delayed_nu_fission_in = self.tallies['delayed-nu-fission-in'] - nu_fission_in = self.tallies['nu-fission-in'] - prompt_nu_fission_in = nu_fission_in - delayed_nu_fission_in - energy_filter = prompt_nu_fission_in.find_filter('energy') - prompt_nu_fission_in.remove_filter(energy_filter) - - # Call super class method and null out derived tallies - slice_xs = super(ChiPrompt, 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 - prompt_nu_fission_out = slice_xs.tallies['nu-fission-out'] - \ - slice_xs.tallies['delayed-nu-fission-out'] - tally_slice = prompt_nu_fission_out\ - .get_slice(filters=['energyout'], - filter_bins=filter_bins) - slice_xs._tallies['prompt-nu-fission-out'] = tally_slice - - # Add energy filter back to nu-fission-in tallies - slice_xs._tallies['prompt-nu-fission-in'].add_filter(energy_filter) - - slice_xs.sparse = self.sparse - return slice_xs + return ['prompt-nu-fission', 'prompt-nu-fission'] def merge(self, other): """Merge another ChiPrompt with this one @@ -4873,148 +4764,9 @@ class ChiPrompt(Chi): return super(ChiPrompt, self).merge(other) - def get_xs(self, groups='all', subdomains='all', nuclides='all', - xs_type='macro', order_groups='increasing', - value='mean', **kwargs): - """Returns an array of the fission spectrum. - - This method constructs a 2D NumPy array for the requested multi-group - cross section data data for one or more energy groups and subdomains. - - Parameters - ---------- - groups : Iterable of Integral or 'all' - Energy groups of interest. Defaults to 'all'. - subdomains : Iterable of Integral or 'all' - Subdomain IDs of interest. Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The - special string 'all' will return the cross sections for all nuclides - in the spatial domain. The special string 'sum' will return the - cross section summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - This parameter is not relevant for chi but is included here to - mirror the parent MGXS.get_xs(...) class method - order_groups: {'increasing', 'decreasing'} - Return the cross section indexed according to increasing or - decreasing energy groups (decreasing or increasing energies). - Defaults to 'increasing'. - value : {'mean', 'std_dev', 'rel_err'} - A string for the type of value to return. Defaults to 'mean'. - - Returns - ------- - 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. - - Raises - ------ - ValueError - When this method is called before the multi-group cross section is - computed from tally data. - - """ - - cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - filters = [] - filter_bins = [] - - # Construct a collection of the domain filter bins - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) - for subdomain in subdomains: - filters.append(self.domain_type) - filter_bins.append((subdomain,)) - - # Construct list of energy group bounds tuples for all requested groups - if not isinstance(groups, basestring): - cv.check_iterable_type('groups', groups, Integral) - for group in groups: - filters.append('energyout') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) - - # If chi prompt was computed for each nuclide in the domain - if self.by_nuclide: - - # Get the sum as the fission source weighted average chi for all - # nuclides in the domain - if nuclides == 'sum' or nuclides == ['sum']: - - # Retrieve the fission production tallies - prompt_nu_fission_in = self.tallies['nu-fission-in'] - \ - self.tallies['delayed-nu-fission-in'] - prompt_nu_fission_out = self.tallies['nu-fission-out'] - \ - self.tallies['delayed-nu-fission-out'] - - # Sum out all nuclides - nuclides = self.get_all_nuclides() - prompt_nu_fission_in = prompt_nu_fission_in.summation\ - (nuclides=nuclides) - prompt_nu_fission_out = prompt_nu_fission_out.summation\ - (nuclides=nuclides) - - # Remove coarse energy filter to keep it out of tally arithmetic - energy_filter = prompt_nu_fission_in.find_filter('energy') - prompt_nu_fission_in.remove_filter(energy_filter) - - # Compute chi prompt and store it as the xs_tally attribute so - # we can use the generic get_xs(...) method - xs_tally = prompt_nu_fission_out / prompt_nu_fission_in - - # Add the coarse energy filter back to the nu-fission tally - prompt_nu_fission_in.filters.append(energy_filter) - - xs = xs_tally.get_values(filters=filters, - filter_bins=filter_bins, value=value) - - # Get chi prompt for all nuclides in the domain - elif nuclides == 'all': - nuclides = self.get_all_nuclides() - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, - nuclides=nuclides, value=value) - - # Get chi prompt for user-specified nuclides in the domain - else: - cv.check_iterable_type('nuclides', nuclides, basestring) - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, - nuclides=nuclides, value=value) - - # If chi prompt was computed as an average of nuclides in the domain - else: - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, value=value) - - # Reverse data if user requested increasing energy groups since - # tally data is stored in order of increasing energies - if order_groups == 'increasing': - - # Reshape tally data array with separate axes for domain and energy - if groups == 'all': - num_groups = self.num_groups - else: - num_groups = len(groups) - num_subdomains = int(xs.shape[0] / num_groups) - new_shape = (num_subdomains, num_groups) + xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Reverse energies to align with increasing energy groups - xs = xs[:, ::-1, :] - - # Eliminate trivial dimensions - xs = np.squeeze(xs) - xs = np.atleast_1d(xs) - - xs = np.nan_to_num(xs) - return xs - class Velocity(MGXS): - """A velocity multi-group cross section. + r"""A velocity multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -5235,7 +4987,7 @@ class Velocity(MGXS): class PromptNuFissionXS(MGXS): - """A prompt fission neutron production multi-group cross section. + r"""A prompt fission neutron production multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -5341,15 +5093,3 @@ class PromptNuFissionXS(MGXS): super(PromptNuFissionXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'prompt-nu-fission' - - @property - def scores(self): - return ['flux', 'nu-fission', 'delayed-nu-fission'] - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['nu-fission'] - \ - self.tallies['delayed-nu-fission'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally diff --git a/src/constants.F90 b/src/constants.F90 index b3e5ed89b1..06f7769bc0 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -282,7 +282,7 @@ module constants EVENT_ABSORB = 2 ! Tally score type - integer, parameter :: N_SCORE_TYPES = 20 + integer, parameter :: N_SCORE_TYPES = 21 integer, parameter :: & SCORE_FLUX = -1, & ! flux SCORE_TOTAL = -2, & ! total reaction rate @@ -303,7 +303,8 @@ module constants SCORE_NU_SCATTER_YN = -17, & ! angular flux-weighted nu-scattering moment (0:N) SCORE_EVENTS = -18, & ! number of events SCORE_DELAYED_NU_FISSION = -19, & ! delayed neutron production rate - SCORE_INVERSE_VELOCITY = -20 ! flux-weighted inverse velocity + SCORE_PROMPT_NU_FISSION = -20, & ! prompt neutron production rate + SCORE_INVERSE_VELOCITY = -21 ! flux-weighted inverse velocity ! Maximum scattering order supported integer, parameter :: MAX_ANG_ORDER = 10 diff --git a/src/endf.F90 b/src/endf.F90 index ad5e97a033..a836a54397 100644 --- a/src/endf.F90 +++ b/src/endf.F90 @@ -42,6 +42,8 @@ contains string = "nu-fission" case (SCORE_DELAYED_NU_FISSION) string = "delayed-nu-fission" + case (SCORE_PROMPT_NU_FISSION) + string = "prompt-nu-fission" case (SCORE_KAPPA_FISSION) string = "kappa-fission" case (SCORE_CURRENT) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 3c6143e5a0..b192be0e40 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3599,6 +3599,12 @@ contains ! Set tally estimator to analog t % estimator = ESTIMATOR_ANALOG end if + case ('prompt-nu-fission') + t % score_bins(j) = SCORE_PROMPT_NU_FISSION + if (t % find_filter(FILTER_ENERGYOUT) > 0) then + ! Set tally estimator to analog + t % estimator = ESTIMATOR_ANALOG + end if ! Disallow for MG mode since data not present if (.not. run_CE) then diff --git a/src/output.F90 b/src/output.F90 index d7dfe7e1c2..702c9e2647 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -791,6 +791,7 @@ contains score_names(abs(SCORE_NU_SCATTER_PN)) = "Scattering Prod. Rate Moment" score_names(abs(SCORE_NU_SCATTER_YN)) = "Scattering Prod. Rate Moment" score_names(abs(SCORE_DELAYED_NU_FISSION)) = "Delayed-Nu-Fission Rate" + score_names(abs(SCORE_PROMPT_NU_FISSION)) = "Prompt-Nu-Fission Rate" score_names(abs(SCORE_INVERSE_VELOCITY)) = "Flux-Weighted Inverse Velocity" ! Create filename for tally output diff --git a/src/tally.F90 b/src/tally.F90 index b40a39ce0c..b5f6bea7d9 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -441,6 +441,67 @@ contains end if + case (SCORE_PROMPT_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_prompt_eout(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 + ! prompt-nu-fission + if (micro_xs(p % event_nuclide) % absorption > ZERO) then + score = p % absorb_wgt * micro_xs(p % event_nuclide) % fission & + * nuclides(p % event_nuclide) % nu(E, EMISSION_PROMPT) & + / micro_xs(p % event_nuclide) % absorption + 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 as prompt neutrons. Since this was weighted by 1/keff, we + ! multiply by keff to get the proper score. + score = keff * p % wgt_bank * (1 - sum(p % n_delayed_bank) & + / p % n_bank) + end if + + else + if (i_nuclide > 0) then + score = micro_xs(i_nuclide) % fission * nuclides(i_nuclide) % & + nu(E, EMISSION_PROMPT) * atom_density * flux + else + + score = ZERO + + ! Loop over all nuclides in the current material + do l = 1, materials(p % material) % n_nuclides + + ! Get atom density + atom_density_ = materials(p % material) % atom_density(l) + + ! Get index in nuclides array + i_nuc = materials(p % material) % nuclide(l) + + ! Accumulate the contribution from each nuclide + score = score + micro_xs(i_nuc) % fission * nuclides(i_nuc) % & + nu(E, EMISSION_PROMPT) * atom_density_ * flux + end do + end if + end if + + case (SCORE_DELAYED_NU_FISSION) ! make sure the correct energy is used @@ -1647,6 +1708,76 @@ contains end subroutine score_fission_eout_mg +!=============================================================================== +! SCORE_FISSION_PROMPT_EOUT handles a special case where we need to store +! prompt neutron production rate with an outgoing energy filter (think of a +! fission matrix). In this case, we may need to score to multiple bins if there +! were multiple neutrons produced with different energies. +!=============================================================================== + + subroutine score_fission_prompt_eout(p, t, i_score) + + type(Particle), intent(in) :: p + type(TallyObject), intent(inout) :: t + integer, intent(in) :: i_score ! index for score + + integer :: i ! index of outgoing energy filter + integer :: g ! delayed group + 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 + real(8) :: E_out ! energy of fission bank site + + ! Save original outgoing energy bin + i = t % find_filter(FILTER_ENERGYOUT) + bin_energyout = matching_bins(i) + + ! Get number of energies on filter + 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 + ! score by keff to get the true delayed-nu-fission rate. + + ! loop over number of particles banked + do k = 1, p % n_bank + + ! get the delayed group + g = fission_bank(n_bank - p % n_bank + k) % delayed_group + + ! check if the particle was born prompt + if (g == 0) then + + ! 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 + 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) + + ! 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 if + end do + + ! reset outgoing energy bin + matching_bins(i) = bin_energyout + + end subroutine score_fission_prompt_eout + !=============================================================================== ! SCORE_FISSION_DELAYED_EOUT handles a special case where we need to store ! delayed neutron production rate with an outgoing energy filter (think of a diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index 9e40d4185d..4969e5680d 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -122,7 +122,8 @@ class TalliesTestHarness(PyAPITestHarness): 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'] + '(n,gamma)', 'nu-fission', 'scatter', 'elastic', 'total', + 'prompt-nu-fission'] score_tallies[0].estimator = 'tracklength' score_tallies[1].estimator = 'analog' score_tallies[2].estimator = 'collision' From 736d7aa5ba3bcd1a8a1614ce4b6769babcb1d8ca Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 5 Jul 2016 15:19:35 -0400 Subject: [PATCH 117/417] updated velocity docstring --- openmc/mgxs/mgxs.py | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index aa97bc5984..7485236087 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -713,7 +713,7 @@ class MGXS(object): def get_xs(self, groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', value='mean', **kwargs): - """Returns an array of multi-group cross sections. + r"""Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested multi-group cross section data data for one or more energy groups and subdomains. @@ -3789,7 +3789,7 @@ class ScatterMatrixXS(MatrixMGXS): class NuScatterMatrixXS(ScatterMatrixXS): - r"""A scattering production matrix multi-group cross section for one or + """A scattering production matrix multi-group cross section for one or more Legendre moments. This class can be used for both OpenMC input generation and tally data @@ -4650,7 +4650,7 @@ class ChiPrompt(Chi): \langle \nu\sigma_{f,\rightarrow g}^p \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) - \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \nu\sigma_f^p (r, E') \psi(r, E', \Omega')\\ \langle \nu\sigma_f^p \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f^p (r, E') \psi(r, E', \Omega') \\ @@ -4770,13 +4770,12 @@ class Velocity(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group velocity cross sections for multi-group neutronics - calculations. At a minimum, one needs to set the - :attr:`Velocity.energy_groups` and :attr:`Velocity.domain` - properties. Tallies for the flux and appropriate reaction rates over the - specified domain are generated automatically via the - :attr:`Velocity.tallies` property, which can then be appended to a - :class:`openmc.Tallies` instance. + multi-group neutron velocities for multi-group neutronics calculations. + The units of velocity are cm per second. At a minimum, one needs to set the + :attr:`Velocity.energy_groups` and :attr:`Velocity.domain` properties. + Tallies for the flux and appropriate reaction rates over the specified + domain are generated automatically via the :attr:`Velocity.tallies` + property, which can then be appended to a :class:`openmc.Tallies` instance. For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the necessary data to compute multi-group cross sections from a @@ -4784,7 +4783,10 @@ class Velocity(MGXS): can then be obtained from the :attr:`Velocity.xs_tally` property. For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the - velocity cross section is calculated as: + neutron velocities are calculated by tallying the flux-weighted inverse + velocity and the flux. The velocity is then the inverse of the flux-weighted + inverse velocity divided by the flux. This equates to dividing the + spatially-homogenized and energy-integrated flux by the inverse velocity: .. math:: @@ -4897,7 +4899,7 @@ class Velocity(MGXS): return self._xs_tally - def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): + def print_xs(self, subdomains='all', nuclides='all'): """Print a string representation for the multi-group cross section. Parameters @@ -4911,9 +4913,6 @@ class Velocity(MGXS): The special string 'all' will report the cross sections for all nuclides in the spatial domain. The special string 'sum' will report the cross sections summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. """ @@ -4936,8 +4935,6 @@ class Velocity(MGXS): else: nuclides = ['sum'] - cv.check_value('xs_type', xs_type, ['macro']) - # Build header for string with type and domain info string = 'Multi-Group XS\n' string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) @@ -4973,9 +4970,9 @@ class Velocity(MGXS): bounds = self.energy_groups.get_group_bounds(group) string += template.format('', group, bounds[0], bounds[1]) average = self.get_xs([group], [subdomain], [nuclide], - xs_type=xs_type, value='mean') + xs_type='macro', value='mean') rel_err = self.get_xs([group], [subdomain], [nuclide], - xs_type=xs_type, value='rel_err') + xs_type='macro', value='rel_err') average = average.flatten()[0] rel_err = rel_err.flatten()[0] * 100. string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) From 1ec7ac26afbbf9aee722cfac09f9f7bdbf4750bf Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Tue, 5 Jul 2016 19:30:21 +0000 Subject: [PATCH 118/417] updated mgxs and tallies test results --- tests/test_mgxs_library_condense/inputs_true.dat | 2 +- tests/test_mgxs_library_condense/results_true.dat | 6 +++--- tests/test_mgxs_library_distribcell/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 8 ++++---- tests/test_mgxs_library_no_nuclides/inputs_true.dat | 2 +- tests/test_mgxs_library_no_nuclides/results_true.dat | 10 +++++----- tests/test_mgxs_library_nuclides/inputs_true.dat | 2 +- tests/test_mgxs_library_nuclides/results_true.dat | 2 +- tests/test_tallies/inputs_true.dat | 2 +- tests/test_tallies/results_true.dat | 2 +- 11 files changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index c187a5f507..be692e46f5 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -fa10bef56a0541a6484ed87ab0d94ae338ad9ff3ff69d917f33aa3a0bf8744f28c00fa23a2bccc1503f8815ac9d9305be7f739d1a7edcf296139b8a3ad5531c9 \ No newline at end of file +d4ad3ef5f03913bcedf7dad7f9ace431e0701dac128d1f38f571898b2c79d6b207191fd1e726d9b3c14b2b994ea9d3ba5b10489be3af9c8fbb41868b85940d9f \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index bc820c5769..3dbb07d3c3 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -34,12 +34,12 @@ 0 10000 1 1 total 0.085835 0.005592 material group out nuclide mean std. dev. 0 10000 1 total 1.0 0.046071 - material group out nuclide mean std. dev. -0 10000 1 total 1.0 0.047454 + material group out nuclide mean std. dev. +0 10000 1 total 0.991442 0.050935 material group in nuclide mean std. dev. 0 10000 1 total 2.001309e+06 146216.555365 material group in nuclide mean std. dev. -0 10000 1 total 0.090004 0.006401 +0 10000 1 total 0.090004 0.006367 material group in nuclide mean std. dev. 0 10001 1 total 0.311594 0.013793 material group in nuclide mean std. dev. diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 7e2a2e990f..1d013ae9f5 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -3799e4a037364d2df56e440f005abe6a0a93817865fc046af99de59525ca468b88a8e591181bfeac851993ec2a91b767b909c262d89f2850dcbc81428a048e9d \ No newline at end of file +8387be0df212cc1b277f42e4b7946b7b1097b34a2d51733bbc0ce1fcc86b0ae97676770b0a4230735e8c11d769989a8c6f702d9f48eb1a145ab6517128443fb7 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index c187a5f507..be692e46f5 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -fa10bef56a0541a6484ed87ab0d94ae338ad9ff3ff69d917f33aa3a0bf8744f28c00fa23a2bccc1503f8815ac9d9305be7f739d1a7edcf296139b8a3ad5531c9 \ No newline at end of file +d4ad3ef5f03913bcedf7dad7f9ace431e0701dac128d1f38f571898b2c79d6b207191fd1e726d9b3c14b2b994ea9d3ba5b10489be3af9c8fbb41868b85940d9f \ 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 1105f35d10..d757944925 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -64,14 +64,14 @@ domain=10000 type=chi [ 1. 0.] [ 0.04607052 0. ] domain=10000 type=chi-prompt -[ 1. 0.] -[ 0.04745364 0. ] +[ 0.9914425 0. ] +[ 0.05093465 0. ] domain=10000 type=velocity [ 17515210.62039676 350171.99519401] [ 1438175.27389879 29945.93169673] domain=10000 type=prompt-nu-fission -[ 0.01923926 0.46671903] -[ 0.00131949 0.04161421] +[ 0.01923922 0.46671903] +[ 0.00130951 0.04141087] domain=10001 type=total [ 0.31373767 0.3008214 ] [ 0.0155819 0.02805245] diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index c187a5f507..be692e46f5 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -fa10bef56a0541a6484ed87ab0d94ae338ad9ff3ff69d917f33aa3a0bf8744f28c00fa23a2bccc1503f8815ac9d9305be7f739d1a7edcf296139b8a3ad5531c9 \ No newline at end of file +d4ad3ef5f03913bcedf7dad7f9ace431e0701dac128d1f38f571898b2c79d6b207191fd1e726d9b3c14b2b994ea9d3ba5b10489be3af9c8fbb41868b85940d9f \ 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 71583d198e..4d79dbbb3b 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -75,15 +75,15 @@ material group out nuclide mean std. dev. 1 10000 1 total 1.0 0.046071 0 10000 2 total 0.0 0.000000 - material group out nuclide mean std. dev. -1 10000 1 total 1.0 0.047454 -0 10000 2 total 0.0 0.000000 + material group out nuclide mean std. dev. +1 10000 1 total 0.991442 0.050935 +0 10000 2 total 0.000000 0.000000 material group in nuclide mean std. dev. 1 10000 1 total 1.751521e+07 1.438175e+06 0 10000 2 total 3.501720e+05 2.994593e+04 material group in nuclide mean std. dev. -1 10000 1 total 0.019239 0.001319 -0 10000 2 total 0.466719 0.041614 +1 10000 1 total 0.019239 0.001310 +0 10000 2 total 0.466719 0.041411 material group in nuclide mean std. dev. 1 10001 1 total 0.313738 0.015582 0 10001 2 total 0.300821 0.028052 diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 7c73d5eb1b..c9b85ca27c 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -c142d30bae2afb93e55fdeb7e364131b319f9d42523d999bb8b65cf70329b7356a1a878116d6848c4e27556b392bf76c7f49b6dbde79f4cda903738c4d3243c0 \ No newline at end of file +7e6a35ac723fc77db2865fe425832bd6c54aae0132b4543583fc6eb10f2ec5e3d53ea19aa23127a989f19cfe328a57d29f28bff43f779aff246d38f7cffdfd0c \ 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 a9e3fa952e..3a61638ad4 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -7e48c8cda041fcd77df98d128a2777ab8f411ac5b7dcba8cddd4ecfb22f5c92267ef0965dc0024ee8c31ae2d7afe9491d2b40589380167004b4bbbe7ada564ff \ No newline at end of file +30bee5191524167000108e833ae21547c0f6e416ec9367e24c1d1acd6aceead74aef0a0a2aa2968ddb55ef8c19cf7012fb6a4047ffa8b51aa2c2b2f08ccc0ea0 \ No newline at end of file diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index e3d37be300..fb836fb915 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -ea09926d8f5c6c96529bf5529f4deb3be78eda2da80adbbf3440147c337587358c2b1823bc72df9463676135573eb481dcd361b735f18365216645ee81092f1e \ No newline at end of file +5c0dbcb03265615cd2842b280dbd3e6c14f62ec7db9052657b98f03015cd1204295542f5affbb5948f4c5e57534746435065545a0fe533e3c8b062344bb854da \ No newline at end of file diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index ff3a828454..e8283cb679 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -a0c7d6ca246ecd7dd5fed06373af142390971401c4e97744f29e55810ab9c231c97c4d8947cdf0b3d2df0ae829a9ddf768e5b2d889bbea34f2b6db0e567db884 \ No newline at end of file +b1ef1648128580996df7ace74539e24d1183a0348f0fd9214f76ba495c00e0b54e22d16e4b146d02d152d67a19cd42fce2455384d39146f7fe8648d8f086e96d \ No newline at end of file From 9686543fa0890dd2a923fdc7ffa546afc54e9b6b Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 5 Jul 2016 18:38:56 -0400 Subject: [PATCH 119/417] implemented mesh domain in mgxs --- .../pythonapi/examples/mgxs-part-i.ipynb | 586 +++++++----------- openmc/__init__.py | 2 +- openmc/mgxs/mgxs.py | 348 +++++++---- openmc/tallies.py | 2 +- 4 files changed, 468 insertions(+), 470 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index ded04e4790..ff242885e6 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -326,7 +326,7 @@ "# OpenMC simulation parameters\n", "batches = 50\n", "inactive = 10\n", - "particles = 2500\n", + "particles = 1000\n", "\n", "# Instantiate a Settings object\n", "settings_file = openmc.Settings()\n", @@ -398,10 +398,17 @@ }, "outputs": [], "source": [ + "# Instantiate a tally Mesh\n", + "mesh = openmc.Mesh(name='mesh')\n", + "mesh.type = 'regular'\n", + "mesh.dimension = [2, 2]\n", + "mesh.lower_left = [-0.63, -0.63]\n", + "mesh.upper_right = [+0.63, +0.63]\n", + "\n", "# Instantiate a few different sections\n", - "total = mgxs.TotalXS(domain=cell, groups=groups)\n", - "absorption = mgxs.AbsorptionXS(domain=cell, groups=groups)\n", - "scattering = mgxs.ScatterXS(domain=cell, groups=groups)" + "total = mgxs.TotalXS(domain=mesh, groups=groups)\n", + "absorption = mgxs.AbsorptionXS(domain=mesh, groups=groups)\n", + "scattering = mgxs.ScatterXS(domain=mesh, groups=groups)" ] }, { @@ -422,24 +429,22 @@ "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\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", - ")])" + " \tID =\t10000\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tmesh\t[10000]\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\tmesh\t[10000]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + " \tNuclides =\ttotal \n", + " \tScores =\t['absorption']\n", + " \tEstimator =\ttracklength)])" ] }, "execution_count": 13, @@ -516,9 +521,9 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", - " Date/Time: 2016-05-13 10:19:16\n", - " MPI Processes: 1\n", + " Git SHA1: 736d7aa5ba3bcd1a8a1614ce4b6769babcb1d8ca\n", + " Date/Time: 2016-07-05 16:23:08\n", + " MPI Processes: 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -544,56 +549,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \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", + " 1/1 1.07993 \n", + " 2/1 1.23691 \n", + " 3/1 1.17407 \n", + " 4/1 1.08258 \n", + " 5/1 1.21012 \n", + " 6/1 1.23825 \n", + " 7/1 1.18016 \n", + " 8/1 1.20989 \n", + " 9/1 1.15475 \n", + " 10/1 1.13462 \n", + " 11/1 1.12749 \n", + " 12/1 1.09502 1.11125 +/- 0.01623\n", + " 13/1 1.24722 1.15657 +/- 0.04628\n", + " 14/1 1.14700 1.15418 +/- 0.03281\n", + " 15/1 1.13889 1.15112 +/- 0.02560\n", + " 16/1 1.19008 1.15762 +/- 0.02189\n", + " 17/1 1.11320 1.15127 +/- 0.01956\n", + " 18/1 1.12093 1.14748 +/- 0.01736\n", + " 19/1 1.13809 1.14643 +/- 0.01534\n", + " 20/1 1.09886 1.14168 +/- 0.01452\n", + " 21/1 1.15457 1.14285 +/- 0.01319\n", + " 22/1 1.19951 1.14757 +/- 0.01293\n", + " 23/1 1.13296 1.14645 +/- 0.01195\n", + " 24/1 1.15322 1.14693 +/- 0.01107\n", + " 25/1 1.26213 1.15461 +/- 0.01286\n", + " 26/1 1.11758 1.15230 +/- 0.01225\n", + " 27/1 1.19061 1.15455 +/- 0.01172\n", + " 28/1 1.17562 1.15572 +/- 0.01111\n", + " 29/1 1.15989 1.15594 +/- 0.01051\n", + " 30/1 1.19989 1.15814 +/- 0.01021\n", + " 31/1 1.14498 1.15751 +/- 0.00974\n", + " 32/1 1.11494 1.15558 +/- 0.00948\n", + " 33/1 1.13251 1.15457 +/- 0.00912\n", + " 34/1 1.17943 1.15561 +/- 0.00879\n", + " 35/1 1.21182 1.15786 +/- 0.00872\n", + " 36/1 1.16118 1.15798 +/- 0.00838\n", + " 37/1 1.13679 1.15720 +/- 0.00811\n", + " 38/1 1.15684 1.15719 +/- 0.00781\n", + " 39/1 1.12450 1.15606 +/- 0.00762\n", + " 40/1 1.30157 1.16091 +/- 0.00882\n", + " 41/1 1.04558 1.15719 +/- 0.00930\n", + " 42/1 1.16538 1.15745 +/- 0.00901\n", + " 43/1 1.17710 1.15804 +/- 0.00875\n", + " 44/1 1.13273 1.15730 +/- 0.00853\n", + " 45/1 1.19156 1.15828 +/- 0.00834\n", + " 46/1 1.19404 1.15927 +/- 0.00816\n", + " 47/1 1.19058 1.16012 +/- 0.00798\n", + " 48/1 1.12943 1.15931 +/- 0.00781\n", + " 49/1 1.22428 1.16097 +/- 0.00779\n", + " 50/1 1.07496 1.15882 +/- 0.00789\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -603,27 +608,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.2300E-01 seconds\n", - " Reading cross sections = 9.3000E-02 seconds\n", - " Total time in simulation = 1.6549E+01 seconds\n", - " Time in transport only = 1.6535E+01 seconds\n", - " Time in inactive batches = 2.3650E+00 seconds\n", - " Time in active batches = 1.4184E+01 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 8.6600E-01 seconds\n", + " Reading cross sections = 2.2400E-01 seconds\n", + " Total time in simulation = 3.0950E+00 seconds\n", + " Time in transport only = 2.9310E+00 seconds\n", + " Time in inactive batches = 2.8000E-01 seconds\n", + " Time in active batches = 2.8150E+00 seconds\n", + " Time synchronizing fission bank = 1.4200E-01 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 = 0.0000E+00 seconds\n", - " Total time elapsed = 1.6981E+01 seconds\n", - " Calculation Rate (inactive) = 10570.8 neutrons/second\n", - " Calculation Rate (active) = 7050.20 neutrons/second\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", + " Total time for finalization = 3.0000E-03 seconds\n", + " Total time elapsed = 3.9660E+00 seconds\n", + " Calculation Rate (inactive) = 35714.3 neutrons/second\n", + " Calculation Rate (active) = 14209.6 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\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", + " k-effective (Collision) = 1.15707 +/- 0.00744\n", + " k-effective (Track-length) = 1.15882 +/- 0.00789\n", + " k-effective (Absorption) = 1.16215 +/- 0.00476\n", + " Combined k-effective = 1.16131 +/- 0.00452\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -641,7 +646,7 @@ ], "source": [ "# Run OpenMC\n", - "openmc.run()" + "openmc.run(mpi_procs=4)" ] }, { @@ -732,11 +737,26 @@ "text": [ "Multi-Group XS\n", "\tReaction Type =\ttotal\n", - "\tDomain Type =\tcell\n", - "\tDomain ID =\t1\n", + "\tDomain Type =\tmesh\n", + "\tDomain ID =\t10000\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 2.69e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 5.93e-01%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.83e-01 +/- 4.53e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 1.16e+00%\n", + "\n", + "\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 3.23e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 1.30e+00%\n", + "\n", + "\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.83e-01 +/- 3.88e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 9.89e-01%\n", + "\n", + "\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.82e-01 +/- 4.92e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 1.20e+00%\n", "\n", "\n", "\n" @@ -767,40 +787,121 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
cellmesh 10000group innuclidemeanstd. dev.
xyz
11111total0.6677870.0018020.6690160.003015
01112total1.2920130.0076421.2931380.014971
31211total0.6679300.002132
21212total1.2927410.016747
52111total0.6695130.002584
42112total1.2944230.012750
72211total0.6687730.003314
62212total1.2925150.015479
\n", "
" ], "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "1 1 1 total 0.667787 0.001802\n", - "0 1 2 total 1.292013 0.007642" + " mesh 10000 group in nuclide mean std. dev.\n", + " x y z \n", + "1 1 1 1 1 total 0.669016 0.003015\n", + "0 1 1 1 2 total 1.293138 0.014971\n", + "3 1 2 1 1 total 0.667930 0.002132\n", + "2 1 2 1 2 total 1.292741 0.016747\n", + "5 2 1 1 1 total 0.669513 0.002584\n", + "4 2 1 1 2 total 1.294423 0.012750\n", + "7 2 2 1 1 total 0.668773 0.003314\n", + "6 2 2 1 2 total 1.292515 0.015479" ] }, "execution_count": 19, @@ -824,9 +925,23 @@ "cell_type": "code", "execution_count": 20, "metadata": { - "collapsed": true + "collapsed": false }, - "outputs": [], + "outputs": [ + { + "ename": "TypeError", + "evalue": "Setting dtype to anything other than object is not supported", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mabsorption\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexport_xs_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'absorption-xs'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'excel'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mexport_xs_data\u001b[0;34m(self, filename, directory, format, groups, xs_type)\u001b[0m\n\u001b[1;32m 1430\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1431\u001b[0m \u001b[0;31m# Capitalize column label strings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1432\u001b[0;31m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1433\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtitle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1434\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/index.pyc\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 5922\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mis_object_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5923\u001b[0m raise TypeError('Setting %s dtype to anything other than object '\n\u001b[0;32m-> 5924\u001b[0;31m 'is not supported' % self.__class__)\n\u001b[0m\u001b[1;32m 5925\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_shallow_copy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5926\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: Setting dtype to anything other than object is not supported" + ] + } + ], "source": [ "absorption.export_xs_data(filename='absorption-xs', format='excel')" ] @@ -840,7 +955,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": false }, @@ -867,68 +982,11 @@ }, { "cell_type": "code", - "execution_count": 22, + "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", - "
cellenergy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
010.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...-3.774758e-150.011292
116.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...1.443290e-150.002570
\n", - "
" - ], - "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", - "\n", - " score mean std. dev. \n", - "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": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Use tally arithmetic to compute the difference between the total, absorption and scattering\n", "difference = total.xs_tally - absorption.xs_tally - scattering.xs_tally\n", @@ -946,68 +1004,11 @@ }, { "cell_type": "code", - "execution_count": 23, + "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", - "
cellenergy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
010.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0761150.000649
116.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0192630.000095
\n", - "
" - ], - "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", - "\n", - " score mean std. dev. \n", - "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": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Use tally arithmetic to compute the absorption-to-total MGXS ratio\n", "absorption_to_total = absorption.xs_tally / total.xs_tally\n", @@ -1018,68 +1019,11 @@ }, { "cell_type": "code", - "execution_count": 24, + "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", - "
cellenergy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
010.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9238850.007736
116.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9807370.003737
\n", - "
" - ], - "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", - "\n", - " score mean std. dev. \n", - "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": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Use tally arithmetic to compute the scattering-to-total MGXS ratio\n", "scattering_to_total = scattering.xs_tally / total.xs_tally\n", @@ -1097,68 +1041,11 @@ }, { "cell_type": "code", - "execution_count": 25, + "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", - "
cellenergy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
010.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...1.00.007763
116.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...1.00.003739
\n", - "
" - ], - "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", - "\n", - " score mean std. dev. \n", - "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": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Use tally arithmetic to ensure that the absorption- and scattering-to-total MGXS ratios sum to unity\n", "sum_ratio = absorption_to_total + scattering_to_total\n", @@ -1166,6 +1053,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/openmc/__init__.py b/openmc/__init__.py index 0bde0f5843..557e13039f 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -9,8 +9,8 @@ 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.mgxs_library import * from openmc.filter import * from openmc.trigger import * from openmc.tallies import * diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 7485236087..cac5957fd6 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -13,7 +13,7 @@ import numpy as np import openmc import openmc.checkvalue as cv from openmc.mgxs import EnergyGroups - +from openmc import Mesh if sys.version_info[0] >= 3: basestring = str @@ -45,13 +45,15 @@ MGXS_TYPES = ['total', DOMAIN_TYPES = ['cell', 'distribcell', 'universe', - 'material'] + 'material', + 'mesh'] # Supported domain classes # TODO: Implement Mesh domains _DOMAINS = (openmc.Cell, openmc.Universe, - openmc.Material) + openmc.Material, + openmc.Mesh) class MGXS(object): @@ -66,9 +68,9 @@ class MGXS(object): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -86,9 +88,9 @@ class MGXS(object): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -115,9 +117,10 @@ class MGXS(object): is None unless the multi-group cross section has been computed. 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 + domain types. 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). + tally data from a statepoint file) and the number of mesh cells for + 'mesh' domain types. 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. @@ -263,6 +266,10 @@ class MGXS(object): # Create a domain Filter object domain_filter = openmc.Filter(self.domain_type, self.domain.id) + # If a mesh domain, give the mesh to the domain filter + if self.domain_type == 'mesh': + domain_filter.mesh = self.domain + # Create each Tally needed to compute the multi group cross section tally_metadata = zip(self.scores, self.tally_keys, self.filters) for score, key, filters in tally_metadata: @@ -378,6 +385,8 @@ class MGXS(object): self._domain_type = 'cell' elif isinstance(domain, openmc.Universe): self._domain_type = 'universe' + elif isinstance(domain, openmc.Mesh): + self._domain_type = 'mesh' @domain_type.setter def domain_type(self, domain_type): @@ -432,9 +441,10 @@ class MGXS(object): ---------- mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', 'chi', 'chi-prompt', 'velocity', 'prompt-nu-fission'} The type of multi-group cross section object to return - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or + openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -675,6 +685,8 @@ class MGXS(object): self.domain = statepoint.summary.get_universe_by_id(self.domain.id) elif self.domain_type == 'material': self.domain = statepoint.summary.get_material_by_id(self.domain.id) + elif self.domain_type == 'mesh': + self.domain = statepoint.meshes[self.domain.id] else: msg = 'Unable to load data from a statepoint for domain type {0} ' \ 'which is not yet supported'.format(self.domain_type) @@ -682,7 +694,23 @@ class MGXS(object): # Use tally "slicing" to ensure that tallies correspond to our domain # NOTE: This is important if tally merging was used - if self.domain_type != 'distribcell': + if self.domain_type == 'mesh': + filters = [self.domain_type] + bins = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + bins.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + bins.append((x, y, 1)) + + filter_bins = [tuple(bins)] + elif self.domain_type != 'distribcell': filters = [self.domain_type] filter_bins = [(self.domain.id,)] # Distribcell filters only accept single cell - neglect it when slicing @@ -761,7 +789,7 @@ class MGXS(object): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) filter_bins.append((subdomain,)) @@ -981,16 +1009,16 @@ class MGXS(object): 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 = [] + filters = [] + filter_bins = [] + + if len(groups) != 0: + energy_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'] + energy_bins.append(group_bounds) + filter_bins.append(tuple(energy_bins)) + filters.append('energy') # Clone this MGXS to initialize the sliced version slice_xs = copy.deepcopy(self) @@ -1134,6 +1162,19 @@ 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 == 'mesh': + subdomains = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains.append((x, y, 1)) else: subdomains = [self.domain.id] @@ -1270,6 +1311,19 @@ class MGXS(object): elif self.domain_type == 'avg(distribcell)': domain_filter = self.xs_tally.find_filter('avg(distribcell)') subdomains = domain_filter.bins + elif self.domain_type == 'mesh': + subdomains = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains.append((x, y, 1)) else: subdomains = [self.domain.id] @@ -1375,8 +1429,8 @@ class MGXS(object): df = self.get_pandas_dataframe(groups=groups, xs_type=xs_type) # Capitalize column label strings - df.columns = df.columns.astype(str) - df.columns = map(str.title, df.columns) + #df.columns = df.columns.astype(str) + #df.columns = map(str.title, df.columns) # Export the data using Pandas IO API if format == 'csv': @@ -1477,7 +1531,10 @@ class MGXS(object): distribcell_paths=distribcell_paths) # Remove the score column since it is homogeneous and redundant - df = df.drop('score', axis=1) + if self.domain_type == 'mesh': + df = df.drop('score', axis=1, level=0) + else: + df = df.drop('score', axis=1) # Override energy groups bounds with indices all_groups = np.arange(self.num_groups, 0, -1, dtype=np.int) @@ -1533,7 +1590,12 @@ 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_values(by=[self.domain_type] + columns, inplace=True) + if self.domain_type == 'mesh': + mesh_str = 'mesh {0}'.format(self.domain.id) + df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), \ + (mesh_str, 'z')] + columns, inplace=True) + else: + df.sort_values(by=[self.domain_type] + columns, inplace=True) return df @@ -1552,9 +1614,9 @@ class MatrixMGXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -1572,9 +1634,9 @@ class MatrixMGXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -1601,9 +1663,10 @@ class MatrixMGXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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). + tally data from a statepoint file) and the number of mesh cells for + 'mesh' domain types. 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. @@ -1700,7 +1763,7 @@ class MatrixMGXS(MGXS): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): cv.check_iterable_type('subdomains', subdomains, Integral, - max_depth=2) + max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) filter_bins.append((subdomain,)) @@ -1862,6 +1925,19 @@ class MatrixMGXS(MGXS): 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 == 'mesh': + subdomains = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains.append((x, y, 1)) else: subdomains = [self.domain.id] @@ -1971,9 +2047,9 @@ class TotalXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -1991,9 +2067,9 @@ class TotalXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2022,7 +2098,7 @@ class TotalXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -2089,9 +2165,9 @@ class TransportXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2109,9 +2185,9 @@ class TransportXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2140,7 +2216,7 @@ class TransportXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -2219,9 +2295,9 @@ class NuTransportXS(TransportXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2239,9 +2315,9 @@ class NuTransportXS(TransportXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2270,7 +2346,7 @@ class NuTransportXS(TransportXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -2340,9 +2416,9 @@ class AbsorptionXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2360,9 +2436,9 @@ class AbsorptionXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2391,7 +2467,7 @@ class AbsorptionXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -2456,9 +2532,9 @@ class CaptureXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2476,9 +2552,9 @@ class CaptureXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2507,7 +2583,7 @@ class CaptureXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -2578,9 +2654,9 @@ class FissionXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2598,9 +2674,9 @@ class FissionXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2629,7 +2705,7 @@ class FissionXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -2689,9 +2765,9 @@ class NuFissionXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2709,9 +2785,9 @@ class NuFissionXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2740,7 +2816,7 @@ class NuFissionXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -2805,9 +2881,9 @@ class KappaFissionXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2825,9 +2901,9 @@ class KappaFissionXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2856,7 +2932,7 @@ class KappaFissionXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -2918,9 +2994,9 @@ class ScatterXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -2938,9 +3014,9 @@ class ScatterXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -2969,7 +3045,7 @@ class ScatterXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -3033,9 +3109,9 @@ class NuScatterXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -3053,9 +3129,9 @@ class NuScatterXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -3084,7 +3160,7 @@ class NuScatterXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -3163,9 +3239,9 @@ class ScatterMatrixXS(MatrixMGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -3187,9 +3263,9 @@ class ScatterMatrixXS(MatrixMGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -3218,7 +3294,7 @@ class ScatterMatrixXS(MatrixMGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -3515,7 +3591,7 @@ class ScatterMatrixXS(MatrixMGXS): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) filter_bins.append((subdomain,)) @@ -3702,6 +3778,19 @@ class ScatterMatrixXS(MatrixMGXS): 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 == 'mesh': + subdomains = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains.append((x, y, 1)) else: subdomains = [self.domain.id] @@ -3812,9 +3901,9 @@ class NuScatterMatrixXS(ScatterMatrixXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -3836,9 +3925,9 @@ class NuScatterMatrixXS(ScatterMatrixXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -3867,7 +3956,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -3938,9 +4027,9 @@ class MultiplicityMatrixXS(MatrixMGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -3958,9 +4047,9 @@ class MultiplicityMatrixXS(MatrixMGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -3989,7 +4078,7 @@ class MultiplicityMatrixXS(MatrixMGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -4085,9 +4174,9 @@ class NuFissionMatrixXS(MatrixMGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -4105,9 +4194,9 @@ class NuFissionMatrixXS(MatrixMGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -4136,7 +4225,7 @@ class NuFissionMatrixXS(MatrixMGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -4200,9 +4289,9 @@ class Chi(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -4220,9 +4309,9 @@ class Chi(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -4251,7 +4340,7 @@ class Chi(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -4484,7 +4573,7 @@ class Chi(MGXS): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) filter_bins.append((subdomain,)) @@ -4659,9 +4748,9 @@ class ChiPrompt(Chi): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -4679,9 +4768,9 @@ class ChiPrompt(Chi): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -4710,7 +4799,7 @@ class ChiPrompt(Chi): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int @@ -4796,9 +4885,9 @@ class Velocity(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -4816,9 +4905,9 @@ class Velocity(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -4921,6 +5010,19 @@ class Velocity(MGXS): 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 == 'mesh': + subdomains = [] + if (len(self.domain.dimension) == 3): + nx, ny, nz = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + for z in range(1,nz+1): + subdomains.append((x, y, z)) + else: + nx, ny = self.domain.dimension + for x in range(1,nx+1): + for y in range(1,ny+1): + subdomains.append((x, y, 1)) else: subdomains = [self.domain.id] @@ -5011,9 +5113,9 @@ class PromptNuFissionXS(MGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -5031,9 +5133,9 @@ class PromptNuFissionXS(MGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe + domain : Material or Cell or Universe or Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -5062,7 +5164,7 @@ class PromptNuFissionXS(MGXS): is None unless the multi-group cross section has been computed. 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 + domain types. 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 : int diff --git a/openmc/tallies.py b/openmc/tallies.py index af19549a7c..4fc19f1e5d 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2983,7 +2983,7 @@ class Tally(object): bin_indices.extend([bin_index]) bin_indices.extend([bin_index, bin_index+1]) num_bins += 1 - elif filter_type == 'distribcell': + elif filter_type in ['distribcell', 'mesh']: bin_indices = [0] num_bins = find_filter.num_bins else: From 04dafa13663f58f5b7206caf78e41427e48a4286 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 5 Jul 2016 19:15:30 -0400 Subject: [PATCH 120/417] updated test_mgxs_library_hdf5 --- tests/test_mgxs_library_hdf5/results_true.dat | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index d757944925..ad25d4c81c 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -67,8 +67,8 @@ domain=10000 type=chi-prompt [ 0.9914425 0. ] [ 0.05093465 0. ] domain=10000 type=velocity -[ 17515210.62039676 350171.99519401] -[ 1438175.27389879 29945.93169673] +[ 17515210.62039744 350171.995194 ] +[ 1438175.27389862 29945.93169671] domain=10000 type=prompt-nu-fission [ 0.01923922 0.46671903] [ 0.00130951 0.04141087] @@ -141,8 +141,8 @@ domain=10001 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10001 type=velocity -[ 16677839.49736621 334953.36760125] -[ 1266444.30951813 38336.78162568] +[ 16677839.497365 334953.36760126] +[ 1266444.30951798 38336.7816257 ] domain=10001 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] @@ -215,8 +215,8 @@ domain=10002 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10002 type=velocity -[ 16605562.87322708 328412.03865003] -[ 1042435.52374238 38828.43572983] +[ 16605562.87322657 328412.03865004] +[ 1042435.52374247 38828.43572985] domain=10002 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] From 7459f8e335a2138193d4ccc777de2b8a2ed27887 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Wed, 6 Jul 2016 00:01:09 +0000 Subject: [PATCH 121/417] updated test_mgxs_library_hdf5 test results --- tests/test_mgxs_library_hdf5/results_true.dat | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index ad25d4c81c..d757944925 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -67,8 +67,8 @@ domain=10000 type=chi-prompt [ 0.9914425 0. ] [ 0.05093465 0. ] domain=10000 type=velocity -[ 17515210.62039744 350171.995194 ] -[ 1438175.27389862 29945.93169671] +[ 17515210.62039676 350171.99519401] +[ 1438175.27389879 29945.93169673] domain=10000 type=prompt-nu-fission [ 0.01923922 0.46671903] [ 0.00130951 0.04141087] @@ -141,8 +141,8 @@ domain=10001 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10001 type=velocity -[ 16677839.497365 334953.36760126] -[ 1266444.30951798 38336.7816257 ] +[ 16677839.49736621 334953.36760125] +[ 1266444.30951813 38336.78162568] domain=10001 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] @@ -215,8 +215,8 @@ domain=10002 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10002 type=velocity -[ 16605562.87322657 328412.03865004] -[ 1042435.52374247 38828.43572985] +[ 16605562.87322708 328412.03865003] +[ 1042435.52374238 38828.43572983] domain=10002 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] From e479f4472d4ef16202e8c7cf15ec0a01291c9ebd Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Wed, 6 Jul 2016 19:58:40 +0000 Subject: [PATCH 122/417] updated mgxs library hdf5 test --- tests/test_mgxs_library_hdf5/results_true.dat | 226 +++++++++--------- 1 file changed, 113 insertions(+), 113 deletions(-) diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index d757944925..f778fd1328 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,92 +1,92 @@ domain=10000 type=total -[ 0.41482549 0.66016992] -[ 0.02279291 0.04751893] +[ 0.41737699 0.65550537] +[ 0.01622049 0.04822293] domain=10000 type=transport -[ 0.35685964 0.64764766] -[ 0.0254936 0.02370374] +[ 0.36820197 0.65187559] +[ 0.01250772 0.04456647] domain=10000 type=nu-transport -[ 0.35685964 0.64764766] -[ 0.0254936 0.02370374] +[ 0.3682861 0.65187559] +[ 0.01255746 0.04456647] domain=10000 type=absorption -[ 0.02740784 0.26451074] -[ 0.0026925 0.02336708] +[ 0.02918941 0.25999786] +[ 0.00220701 0.0193732 ] domain=10000 type=capture -[ 0.01984455 0.07171935] -[ 0.0026433 0.02520786] +[ 0.02193339 0.07048146] +[ 0.00217411 0.01745302] domain=10000 type=fission -[ 0.00756329 0.19279139] -[ 0.00050848 0.01710592] +[ 0.00725602 0.1895164 ] +[ 0.00020162 0.01415226] domain=10000 type=nu-fission -[ 0.01943174 0.46977478] -[ 0.00132298 0.041682 ] +[ 0.01868423 0.46179461] +[ 0.00054368 0.0344848 ] domain=10000 type=kappa-fission -[ 1.47456982 37.28689641] -[ 0.09923532 3.30837772] +[ 1.41427101 36.65349559] +[ 0.03905455 2.73712278] domain=10000 type=scatter -[ 0.38741765 0.39565918] -[ 0.02062573 0.02512506] +[ 0.38818758 0.39550752] +[ 0.01463905 0.02930007] domain=10000 type=nu-scatter -[ 0.38518839 0.4123894 ] -[ 0.02694562 0.01542528] +[ 0.39227772 0.39485975] +[ 0.01143512 0.0378726 ] domain=10000 type=scatter matrix -[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] - [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] +[[[ 3.90674403e-01 5.07976644e-02 2.12276198e-02 1.00823506e-02] + [ 1.24702272e-03 -9.19812968e-04 5.15976662e-04 -2.88532411e-04]] - [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] - [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] -[[[ 0.02700101 0.00698255 0.0028465 0.00223352] - [ 0.00048242 0.00014901 0.00018432 0.00012817]] + [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [ 3.94859753e-01 1.12209557e-02 1.31165142e-02 9.25288210e-03]]] +[[[ 0.01161198 0.00415913 0.0039568 0.00300004] + [ 0.00035679 0.000272 0.00030608 0.00035952]] - [[ 0.00092488 0.00076791 0.00049392 0.00017154] - [ 0.01524494 0.00450173 0.01055075 0.01043819]]] + [[ 0. 0. 0. 0. ] + [ 0.0378726 0.01056496 0.0101966 0.00310401]]] domain=10000 type=nu-scatter matrix -[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] - [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] +[[[ 3.91030695e-01 5.07135280e-02 2.12493138e-02 9.99605867e-03] + [ 1.24702272e-03 -9.19812968e-04 5.15976662e-04 -2.88532411e-04]] - [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] - [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] -[[[ 0.02700101 0.00698255 0.0028465 0.00223352] - [ 0.00048242 0.00014901 0.00018432 0.00012817]] + [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [ 3.94859753e-01 1.12209557e-02 1.31165142e-02 9.25288210e-03]]] +[[[ 0.01150629 0.00430451 0.0038862 0.00296991] + [ 0.00035679 0.000272 0.00030608 0.00035952]] - [[ 0.00092488 0.00076791 0.00049392 0.00017154] - [ 0.01524494 0.00450173 0.01055075 0.01043819]]] + [[ 0. 0. 0. 0. ] + [ 0.0378726 0.01056496 0.0101966 0.00310401]]] domain=10000 type=multiplicity matrix -[[ 1. 1.] - [ 1. 1.]] -[[ 0.07851646 0.68718427] - [ 1.41421356 0.04113035]] +[[ 1.00091199 1. ] + [ 0. 1. ]] +[[ 0.03596231 0.40406102] + [ 0. 0.11556054]] domain=10000 type=nu-fission matrix -[[ 0.02014243 0. ] - [ 0.45436647 0. ]] -[[ 0.00314909 0. ] - [ 0.02742551 0. ]] +[[ 0.01768789 0. ] + [ 0.41868231 0. ]] +[[ 0.00118211 0. ] + [ 0.03684218 0. ]] domain=10000 type=chi -[ 1. 0.] -[ 0.04607052 0. ] +[ 0.95000711 0. ] +[ 0.07214945 0. ] domain=10000 type=chi-prompt -[ 0.9914425 0. ] -[ 0.05093465 0. ] +[ 0.94989853 0. ] +[ 0.07156216 0. ] domain=10000 type=velocity -[ 17515210.62039676 350171.99519401] -[ 1438175.27389879 29945.93169673] +[ 17726682.88576092 355801.95919094] +[ 912304.37589157 26699.39400479] domain=10000 type=prompt-nu-fission -[ 0.01923922 0.46671903] -[ 0.00130951 0.04141087] +[ 0.01850303 0.45879077] +[ 0.00053983 0.03426049] domain=10001 type=total -[ 0.31373767 0.3008214 ] -[ 0.0155819 0.02805245] +[ 0.31589603 0.30072552] +[ 0.01039063 0.0279948 ] domain=10001 type=transport -[ 0.27322787 0.31237484] -[ 0.03311537 0.04960583] +[ 0.27104783 0.32663403] +[ 0.01242444 0.06732111] domain=10001 type=nu-transport -[ 0.27322787 0.31237484] -[ 0.03311537 0.04960583] +[ 0.27104783 0.32663403] +[ 0.01242444 0.06732111] domain=10001 type=absorption -[ 0.00157499 0.00540038] -[ 0.00032255 0.00061814] +[ 0.00126653 0.00530484] +[ 0.00027329 0.00054437] domain=10001 type=capture -[ 0.00157499 0.00540038] -[ 0.00032255 0.00061814] +[ 0.00126653 0.00530484] +[ 0.00027329 0.00054437] domain=10001 type=fission [ 0. 0.] [ 0. 0.] @@ -97,38 +97,38 @@ domain=10001 type=kappa-fission [ 0. 0.] [ 0. 0.] domain=10001 type=scatter -[ 0.31216268 0.29542102] -[ 0.01532192 0.02744549] +[ 0.3146295 0.29542068] +[ 0.01028598 0.02745453] domain=10001 type=nu-scatter -[ 0.31012074 0.29626427] -[ 0.03378811 0.04379223] +[ 0.31011079 0.29015956] +[ 0.01217247 0.06236369] domain=10001 type=scatter matrix -[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] +[[[ 0.31011079 0.04197025 0.03385311 0.00735142] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] -[[[ 0.03378811 0.008484 0.00469561 0.00373162] + [ 0.29015956 -0.02638196 0.01221917 -0.01057754]]] +[[[ 0.01217247 0.00442067 0.00236562 0.0053074 ] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.04379223 0.01618037 0.01150396 0.00732885]]] + [ 0.06236369 0.00984106 0.0126671 0.009591 ]]] domain=10001 type=nu-scatter matrix -[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] +[[[ 0.31011079 0.04197025 0.03385311 0.00735142] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] -[[[ 0.03378811 0.008484 0.00469561 0.00373162] + [ 0.29015956 -0.02638196 0.01221917 -0.01057754]]] +[[[ 0.01217247 0.00442067 0.00236562 0.0053074 ] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.04379223 0.01618037 0.01150396 0.00732885]]] + [ 0.06236369 0.00984106 0.0126671 0.009591 ]]] domain=10001 type=multiplicity matrix [[ 1. 0.] [ 0. 1.]] -[[ 0.1087787 0. ] - [ 0. 0.14242717]] +[[ 0.03025768 0. ] + [ 0. 0.2173913 ]] domain=10001 type=nu-fission matrix [[ 0. 0.] [ 0. 0.]] @@ -141,26 +141,26 @@ domain=10001 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10001 type=velocity -[ 16677839.49736621 334953.36760125] -[ 1266444.30951813 38336.78162568] +[ 17612034.94932026 340983.9144147 ] +[ 659484.31513854 34989.69457459] domain=10001 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] domain=10002 type=total -[ 0.66457226 2.05238401] -[ 0.03121475 0.22434291] +[ 0.67620548 2.02125348] +[ 0.02134983 0.14050739] domain=10002 type=transport -[ 0.29056526 1.51643801] -[ 0.02385185 0.23519727] +[ 0.29203886 1.4739065 ] +[ 0.01113636 0.10290272] domain=10002 type=nu-transport -[ 0.29056526 1.51643801] -[ 0.02385185 0.23519727] +[ 0.29203886 1.4739065 ] +[ 0.01113636 0.10290272] domain=10002 type=absorption -[ 0.0006904 0.03168726] -[ 4.41475687e-05 3.74655858e-03] +[ 0.00068579 0.03074796] +[ 3.68158517e-05 2.25078842e-03] domain=10002 type=capture -[ 0.0006904 0.03168726] -[ 4.41475687e-05 3.74655858e-03] +[ 0.00068579 0.03074796] +[ 3.68158517e-05 2.25078842e-03] domain=10002 type=fission [ 0. 0.] [ 0. 0.] @@ -171,38 +171,38 @@ domain=10002 type=kappa-fission [ 0. 0.] [ 0. 0.] domain=10002 type=scatter -[ 0.66388186 2.02069676] -[ 0.03117268 0.22060445] +[ 0.67551968 1.99050553] +[ 0.02133857 0.13826068] domain=10002 type=nu-scatter -[ 0.6712692 2.03538833] -[ 0.02618637 0.25806033] +[ 0.67767343 1.99516952] +[ 0.01508282 0.10853715] domain=10002 type=scatter matrix -[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] - [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] +[[[ 0.6469338 0.38638204 0.15208191 0.00907726] + [ 0.03073963 0.00912198 -0.00378942 -0.00414448]] - [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] - [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] -[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] - [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] + [[ 0. 0. 0. 0. ] + [ 1.99516952 0.50320636 0.11400654 0.03222921]]] +[[[ 0.01490544 0.00783787 0.00444992 0.00269273] + [ 0.00071472 0.00043674 0.00068793 0.00030916]] - [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] - [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] + [[ 0. 0. 0. 0. ] + [ 0.10853715 0.03505779 0.009685 0.014426 ]]] domain=10002 type=nu-scatter matrix -[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] - [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] +[[[ 0.6469338 0.38638204 0.15208191 0.00907726] + [ 0.03073963 0.00912198 -0.00378942 -0.00414448]] - [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] - [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] -[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] - [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] + [[ 0. 0. 0. 0. ] + [ 1.99516952 0.50320636 0.11400654 0.03222921]]] +[[[ 0.01490544 0.00783787 0.00444992 0.00269273] + [ 0.00071472 0.00043674 0.00068793 0.00030916]] - [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] - [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] + [[ 0. 0. 0. 0. ] + [ 0.10853715 0.03505779 0.009685 0.014426 ]]] domain=10002 type=multiplicity matrix [[ 1. 1.] - [ 1. 1.]] -[[ 0.03860919 0.06766735] - [ 1.41421356 0.13592921]] + [ 0. 1.]] +[[ 0.02036446 0.02083786] + [ 0. 0.05943471]] domain=10002 type=nu-fission matrix [[ 0. 0.] [ 0. 0.]] @@ -215,8 +215,8 @@ domain=10002 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10002 type=velocity -[ 16605562.87322708 328412.03865003] -[ 1042435.52374238 38828.43572983] +[ 16974477.47368938 338442.26464518] +[ 850676.35712708 24773.82692619] domain=10002 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] From 4c1ba68f709bc6f63395133394a848b4c24d91bd Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Wed, 6 Jul 2016 20:01:00 +0000 Subject: [PATCH 123/417] updated mgxs velocity comment --- openmc/mgxs/mgxs.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e844842539..d6cd8c2550 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -4774,11 +4774,12 @@ class Velocity(MGXS): This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated multi-group neutron velocities for multi-group neutronics calculations. - The units of velocity are cm per second. At a minimum, one needs to set the - :attr:`Velocity.energy_groups` and :attr:`Velocity.domain` properties. - Tallies for the flux and appropriate reaction rates over the specified - domain are generated automatically via the :attr:`Velocity.tallies` - property, which can then be appended to a :class:`openmc.Tallies` instance. + The units of velocity are centimeters per second. At a minimum, one needs to + set the :attr:`Velocity.energy_groups` and :attr:`Velocity.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`Velocity.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the necessary data to compute multi-group cross sections from a From 4c790a4093338f9cac86d7f423583b41cf174a10 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Wed, 6 Jul 2016 20:02:37 +0000 Subject: [PATCH 124/417] updated tally.F90 --- src/tally.F90 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tally.F90 b/src/tally.F90 index b5f6bea7d9..6c4bb02bdd 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -463,7 +463,9 @@ contains * nuclides(p % event_nuclide) % nu(E, EMISSION_PROMPT) & / micro_xs(p % event_nuclide) % absorption else + score = ZERO + end if else ! Skip any non-fission events From fd56f09367299ace01810369156b49185fc230b6 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Wed, 6 Jul 2016 20:09:29 +0000 Subject: [PATCH 125/417] updated mgxs library hdf5 test --- tests/test_mgxs_library_hdf5/results_true.dat | 226 +++++++++--------- 1 file changed, 113 insertions(+), 113 deletions(-) diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index f778fd1328..af06a5a43f 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,92 +1,92 @@ domain=10000 type=total -[ 0.41737699 0.65550537] -[ 0.01622049 0.04822293] +[ 0.41482549 0.66016992] +[ 0.02279291 0.04751893] domain=10000 type=transport -[ 0.36820197 0.65187559] -[ 0.01250772 0.04456647] +[ 0.35685964 0.64764766] +[ 0.0254936 0.02370374] domain=10000 type=nu-transport -[ 0.3682861 0.65187559] -[ 0.01255746 0.04456647] +[ 0.35685964 0.64764766] +[ 0.0254936 0.02370374] domain=10000 type=absorption -[ 0.02918941 0.25999786] -[ 0.00220701 0.0193732 ] +[ 0.02740784 0.26451074] +[ 0.0026925 0.02336708] domain=10000 type=capture -[ 0.02193339 0.07048146] -[ 0.00217411 0.01745302] +[ 0.01984455 0.07171935] +[ 0.0026433 0.02520786] domain=10000 type=fission -[ 0.00725602 0.1895164 ] -[ 0.00020162 0.01415226] +[ 0.00756329 0.19279139] +[ 0.00050848 0.01710592] domain=10000 type=nu-fission -[ 0.01868423 0.46179461] -[ 0.00054368 0.0344848 ] +[ 0.01943174 0.46977478] +[ 0.00132298 0.041682 ] domain=10000 type=kappa-fission -[ 1.41427101 36.65349559] -[ 0.03905455 2.73712278] +[ 1.47456982 37.28689641] +[ 0.09923532 3.30837772] domain=10000 type=scatter -[ 0.38818758 0.39550752] -[ 0.01463905 0.02930007] +[ 0.38741765 0.39565918] +[ 0.02062573 0.02512506] domain=10000 type=nu-scatter -[ 0.39227772 0.39485975] -[ 0.01143512 0.0378726 ] +[ 0.38518839 0.4123894 ] +[ 0.02694562 0.01542528] domain=10000 type=scatter matrix -[[[ 3.90674403e-01 5.07976644e-02 2.12276198e-02 1.00823506e-02] - [ 1.24702272e-03 -9.19812968e-04 5.15976662e-04 -2.88532411e-04]] +[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] + [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 3.94859753e-01 1.12209557e-02 1.31165142e-02 9.25288210e-03]]] -[[[ 0.01161198 0.00415913 0.0039568 0.00300004] - [ 0.00035679 0.000272 0.00030608 0.00035952]] + [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] + [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] +[[[ 0.02700101 0.00698255 0.0028465 0.00223352] + [ 0.00048242 0.00014901 0.00018432 0.00012817]] - [[ 0. 0. 0. 0. ] - [ 0.0378726 0.01056496 0.0101966 0.00310401]]] + [[ 0.00092488 0.00076791 0.00049392 0.00017154] + [ 0.01524494 0.00450173 0.01055075 0.01043819]]] domain=10000 type=nu-scatter matrix -[[[ 3.91030695e-01 5.07135280e-02 2.12493138e-02 9.99605867e-03] - [ 1.24702272e-03 -9.19812968e-04 5.15976662e-04 -2.88532411e-04]] +[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] + [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 3.94859753e-01 1.12209557e-02 1.31165142e-02 9.25288210e-03]]] -[[[ 0.01150629 0.00430451 0.0038862 0.00296991] - [ 0.00035679 0.000272 0.00030608 0.00035952]] + [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] + [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] +[[[ 0.02700101 0.00698255 0.0028465 0.00223352] + [ 0.00048242 0.00014901 0.00018432 0.00012817]] - [[ 0. 0. 0. 0. ] - [ 0.0378726 0.01056496 0.0101966 0.00310401]]] + [[ 0.00092488 0.00076791 0.00049392 0.00017154] + [ 0.01524494 0.00450173 0.01055075 0.01043819]]] domain=10000 type=multiplicity matrix -[[ 1.00091199 1. ] - [ 0. 1. ]] -[[ 0.03596231 0.40406102] - [ 0. 0.11556054]] +[[ 1. 1.] + [ 1. 1.]] +[[ 0.07851646 0.68718427] + [ 1.41421356 0.04113035]] domain=10000 type=nu-fission matrix -[[ 0.01768789 0. ] - [ 0.41868231 0. ]] -[[ 0.00118211 0. ] - [ 0.03684218 0. ]] +[[ 0.02014243 0. ] + [ 0.45436647 0. ]] +[[ 0.00314909 0. ] + [ 0.02742551 0. ]] domain=10000 type=chi -[ 0.95000711 0. ] -[ 0.07214945 0. ] +[ 1. 0.] +[ 0.04607052 0. ] domain=10000 type=chi-prompt -[ 0.94989853 0. ] -[ 0.07156216 0. ] +[ 0.9914425 0. ] +[ 0.05093465 0. ] domain=10000 type=velocity -[ 17726682.88576092 355801.95919094] -[ 912304.37589157 26699.39400479] +[ 17515210.62039675 350171.99519401] +[ 1438175.27389879 29945.93169673] domain=10000 type=prompt-nu-fission -[ 0.01850303 0.45879077] -[ 0.00053983 0.03426049] +[ 0.01923922 0.46671903] +[ 0.00130951 0.04141087] domain=10001 type=total -[ 0.31589603 0.30072552] -[ 0.01039063 0.0279948 ] +[ 0.31373767 0.3008214 ] +[ 0.0155819 0.02805245] domain=10001 type=transport -[ 0.27104783 0.32663403] -[ 0.01242444 0.06732111] +[ 0.27322787 0.31237484] +[ 0.03311537 0.04960583] domain=10001 type=nu-transport -[ 0.27104783 0.32663403] -[ 0.01242444 0.06732111] +[ 0.27322787 0.31237484] +[ 0.03311537 0.04960583] domain=10001 type=absorption -[ 0.00126653 0.00530484] -[ 0.00027329 0.00054437] +[ 0.00157499 0.00540038] +[ 0.00032255 0.00061814] domain=10001 type=capture -[ 0.00126653 0.00530484] -[ 0.00027329 0.00054437] +[ 0.00157499 0.00540038] +[ 0.00032255 0.00061814] domain=10001 type=fission [ 0. 0.] [ 0. 0.] @@ -97,38 +97,38 @@ domain=10001 type=kappa-fission [ 0. 0.] [ 0. 0.] domain=10001 type=scatter -[ 0.3146295 0.29542068] -[ 0.01028598 0.02745453] +[ 0.31216268 0.29542102] +[ 0.01532192 0.02744549] domain=10001 type=nu-scatter -[ 0.31011079 0.29015956] -[ 0.01217247 0.06236369] +[ 0.31012074 0.29626427] +[ 0.03378811 0.04379223] domain=10001 type=scatter matrix -[[[ 0.31011079 0.04197025 0.03385311 0.00735142] +[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.29015956 -0.02638196 0.01221917 -0.01057754]]] -[[[ 0.01217247 0.00442067 0.00236562 0.0053074 ] + [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] +[[[ 0.03378811 0.008484 0.00469561 0.00373162] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.06236369 0.00984106 0.0126671 0.009591 ]]] + [ 0.04379223 0.01618037 0.01150396 0.00732885]]] domain=10001 type=nu-scatter matrix -[[[ 0.31011079 0.04197025 0.03385311 0.00735142] +[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.29015956 -0.02638196 0.01221917 -0.01057754]]] -[[[ 0.01217247 0.00442067 0.00236562 0.0053074 ] + [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] +[[[ 0.03378811 0.008484 0.00469561 0.00373162] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.06236369 0.00984106 0.0126671 0.009591 ]]] + [ 0.04379223 0.01618037 0.01150396 0.00732885]]] domain=10001 type=multiplicity matrix [[ 1. 0.] [ 0. 1.]] -[[ 0.03025768 0. ] - [ 0. 0.2173913 ]] +[[ 0.1087787 0. ] + [ 0. 0.14242717]] domain=10001 type=nu-fission matrix [[ 0. 0.] [ 0. 0.]] @@ -141,26 +141,26 @@ domain=10001 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10001 type=velocity -[ 17612034.94932026 340983.9144147 ] -[ 659484.31513854 34989.69457459] +[ 16677839.49736623 334953.36760125] +[ 1266444.30951813 38336.78162568] domain=10001 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] domain=10002 type=total -[ 0.67620548 2.02125348] -[ 0.02134983 0.14050739] +[ 0.66457226 2.05238401] +[ 0.03121475 0.22434291] domain=10002 type=transport -[ 0.29203886 1.4739065 ] -[ 0.01113636 0.10290272] +[ 0.29056526 1.51643801] +[ 0.02385185 0.23519727] domain=10002 type=nu-transport -[ 0.29203886 1.4739065 ] -[ 0.01113636 0.10290272] +[ 0.29056526 1.51643801] +[ 0.02385185 0.23519727] domain=10002 type=absorption -[ 0.00068579 0.03074796] -[ 3.68158517e-05 2.25078842e-03] +[ 0.0006904 0.03168726] +[ 4.41475687e-05 3.74655858e-03] domain=10002 type=capture -[ 0.00068579 0.03074796] -[ 3.68158517e-05 2.25078842e-03] +[ 0.0006904 0.03168726] +[ 4.41475687e-05 3.74655858e-03] domain=10002 type=fission [ 0. 0.] [ 0. 0.] @@ -171,38 +171,38 @@ domain=10002 type=kappa-fission [ 0. 0.] [ 0. 0.] domain=10002 type=scatter -[ 0.67551968 1.99050553] -[ 0.02133857 0.13826068] +[ 0.66388186 2.02069676] +[ 0.03117268 0.22060445] domain=10002 type=nu-scatter -[ 0.67767343 1.99516952] -[ 0.01508282 0.10853715] +[ 0.6712692 2.03538833] +[ 0.02618637 0.25806033] domain=10002 type=scatter matrix -[[[ 0.6469338 0.38638204 0.15208191 0.00907726] - [ 0.03073963 0.00912198 -0.00378942 -0.00414448]] +[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] + [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] - [[ 0. 0. 0. 0. ] - [ 1.99516952 0.50320636 0.11400654 0.03222921]]] -[[[ 0.01490544 0.00783787 0.00444992 0.00269273] - [ 0.00071472 0.00043674 0.00068793 0.00030916]] + [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] + [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] +[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] + [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] - [[ 0. 0. 0. 0. ] - [ 0.10853715 0.03505779 0.009685 0.014426 ]]] + [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] + [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] domain=10002 type=nu-scatter matrix -[[[ 0.6469338 0.38638204 0.15208191 0.00907726] - [ 0.03073963 0.00912198 -0.00378942 -0.00414448]] +[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] + [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] - [[ 0. 0. 0. 0. ] - [ 1.99516952 0.50320636 0.11400654 0.03222921]]] -[[[ 0.01490544 0.00783787 0.00444992 0.00269273] - [ 0.00071472 0.00043674 0.00068793 0.00030916]] + [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] + [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] +[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] + [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] - [[ 0. 0. 0. 0. ] - [ 0.10853715 0.03505779 0.009685 0.014426 ]]] + [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] + [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] domain=10002 type=multiplicity matrix [[ 1. 1.] - [ 0. 1.]] -[[ 0.02036446 0.02083786] - [ 0. 0.05943471]] + [ 1. 1.]] +[[ 0.03860919 0.06766735] + [ 1.41421356 0.13592921]] domain=10002 type=nu-fission matrix [[ 0. 0.] [ 0. 0.]] @@ -215,8 +215,8 @@ domain=10002 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10002 type=velocity -[ 16974477.47368938 338442.26464518] -[ 850676.35712708 24773.82692619] +[ 16605562.87322706 328412.03865003] +[ 1042435.52374236 38828.43572983] domain=10002 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] From f2b7709981892451db63b5ffedc08446849cba74 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 7 Jul 2016 11:24:02 -0400 Subject: [PATCH 126/417] updated mgxs library hdf5 test results --- tests/test_mgxs_library_hdf5/results_true.dat | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index af06a5a43f..ad25d4c81c 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -67,8 +67,8 @@ domain=10000 type=chi-prompt [ 0.9914425 0. ] [ 0.05093465 0. ] domain=10000 type=velocity -[ 17515210.62039675 350171.99519401] -[ 1438175.27389879 29945.93169673] +[ 17515210.62039744 350171.995194 ] +[ 1438175.27389862 29945.93169671] domain=10000 type=prompt-nu-fission [ 0.01923922 0.46671903] [ 0.00130951 0.04141087] @@ -141,8 +141,8 @@ domain=10001 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10001 type=velocity -[ 16677839.49736623 334953.36760125] -[ 1266444.30951813 38336.78162568] +[ 16677839.497365 334953.36760126] +[ 1266444.30951798 38336.7816257 ] domain=10001 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] @@ -215,8 +215,8 @@ domain=10002 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10002 type=velocity -[ 16605562.87322706 328412.03865003] -[ 1042435.52374236 38828.43572983] +[ 16605562.87322657 328412.03865004] +[ 1042435.52374247 38828.43572985] domain=10002 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] From e890b4855b47f1e3a974d90700e534654fb3c012 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 7 Jul 2016 11:28:09 -0400 Subject: [PATCH 127/417] removed extra spaces in tally.F90 --- src/tally.F90 | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index 6c4bb02bdd..b5f6bea7d9 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -463,9 +463,7 @@ contains * nuclides(p % event_nuclide) % nu(E, EMISSION_PROMPT) & / micro_xs(p % event_nuclide) % absorption else - score = ZERO - end if else ! Skip any non-fission events From b66b381defc36b9348baf861cf11f8271a4f2a8c Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Thu, 7 Jul 2016 16:03:00 +0000 Subject: [PATCH 128/417] updated mgxs library hdf5 test results --- tests/test_mgxs_library_hdf5/results_true.dat | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index ad25d4c81c..d757944925 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -67,8 +67,8 @@ domain=10000 type=chi-prompt [ 0.9914425 0. ] [ 0.05093465 0. ] domain=10000 type=velocity -[ 17515210.62039744 350171.995194 ] -[ 1438175.27389862 29945.93169671] +[ 17515210.62039676 350171.99519401] +[ 1438175.27389879 29945.93169673] domain=10000 type=prompt-nu-fission [ 0.01923922 0.46671903] [ 0.00130951 0.04141087] @@ -141,8 +141,8 @@ domain=10001 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10001 type=velocity -[ 16677839.497365 334953.36760126] -[ 1266444.30951798 38336.7816257 ] +[ 16677839.49736621 334953.36760125] +[ 1266444.30951813 38336.78162568] domain=10001 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] @@ -215,8 +215,8 @@ domain=10002 type=chi-prompt [ 0. 0.] [ 0. 0.] domain=10002 type=velocity -[ 16605562.87322657 328412.03865004] -[ 1042435.52374247 38828.43572985] +[ 16605562.87322708 328412.03865003] +[ 1042435.52374238 38828.43572983] domain=10002 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] From 864156c28243321a4b48de24e955c1141a294450 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 7 Jul 2016 12:39:05 -0400 Subject: [PATCH 129/417] simplified helper functions for tallying neutron production with energy out filter --- src/tally.F90 | 235 +++++++++++++------------------------------------- 1 file changed, 59 insertions(+), 176 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index b5f6bea7d9..aa4da6b18a 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -407,7 +407,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_ce(p, t, score_index) + call score_fission_eout_ce(p, t, score_index, score_bin) cycle SCORE_LOOP end if end if @@ -450,7 +450,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_prompt_eout(p, t, score_index) + call score_fission_eout_ce(p, t, score_index, score_bin) cycle SCORE_LOOP end if end if @@ -522,7 +522,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_delayed_eout(p, t, score_index) + call score_fission_eout_ce(p, t, score_index, score_bin) cycle SCORE_LOOP end if end if @@ -1576,12 +1576,18 @@ contains ! neutrons produced with different energies. !=============================================================================== - subroutine score_fission_eout_ce(p, t, i_score) - type(Particle), intent(in) :: p + subroutine score_fission_eout_ce(p, t, i_score, score_bin) + + type(Particle), intent(in) :: p type(TallyObject), intent(inout) :: t - integer, intent(in) :: i_score ! index for score + integer, intent(in) :: i_score ! index for score + integer, intent(in) :: score_bin integer :: i ! index of outgoing energy filter + integer :: j ! index of delayedgroup filter + integer :: d ! delayed group + integer :: g ! another delayed group + integer :: d_bin ! delayed group bin index integer :: n ! number of energies on filter integer :: k ! loop index for bank sites integer :: bin_energyout ! original outgoing energy bin @@ -1603,6 +1609,10 @@ contains ! loop over number of particles banked do k = 1, p % n_bank + + ! get the delayed group + g = fission_bank(n_bank - p % n_bank + k) % delayed_group + ! determine score based on bank site weight and keff score = keff * fission_bank(n_bank - p % n_bank + k) % wgt @@ -1616,13 +1626,51 @@ contains ! change outgoing energy bin matching_bins(i) = binary_search(t % filters(i) % real_bins, n, E_out) - ! determine scoring index - i_filter = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + ! Case for tallying prompt neutrons + if (score_bin == SCORE_NU_FISSION .OR. \ + (score_bin == SCORE_PROMPT_NU_FISSION .AND. g == 0)) then - ! Add score to tally + ! 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 + + ! Case for tallying delayed emissions + else if (score_bin == SCORE_DELAYED_NU_FISSION .AND. g /= 0) then + + ! Get the index of delayed group filter + j = t % find_filter(FILTER_DELAYEDGROUP) + + ! if the delayed group filter is present, tally to corresponding + ! delayed group bin if it exists + if (j > 0) then + + ! loop over delayed group bins until the corresponding bin is found + do d_bin = 1, t % filters(j) % n_bins + d = t % filters(j) % int_bins(d_bin) + + ! check whether the delayed group of the particle is equal to the + ! delayed group of this bin + if (d == g) then + call score_fission_delayed_dg(t, d_bin, score, i_score) + end if + end do + + ! if the delayed group filter is not present, add score to tally + else + + ! 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 + t % results(i_score, i_filter) % value = & + t % results(i_score, i_filter) % value + score + end if + end if end do ! reset outgoing energy bin and score index @@ -1708,171 +1756,6 @@ contains end subroutine score_fission_eout_mg -!=============================================================================== -! SCORE_FISSION_PROMPT_EOUT handles a special case where we need to store -! prompt neutron production rate with an outgoing energy filter (think of a -! fission matrix). In this case, we may need to score to multiple bins if there -! were multiple neutrons produced with different energies. -!=============================================================================== - - subroutine score_fission_prompt_eout(p, t, i_score) - - type(Particle), intent(in) :: p - type(TallyObject), intent(inout) :: t - integer, intent(in) :: i_score ! index for score - - integer :: i ! index of outgoing energy filter - integer :: g ! delayed group - 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 - real(8) :: E_out ! energy of fission bank site - - ! Save original outgoing energy bin - i = t % find_filter(FILTER_ENERGYOUT) - bin_energyout = matching_bins(i) - - ! Get number of energies on filter - 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 - ! score by keff to get the true delayed-nu-fission rate. - - ! loop over number of particles banked - do k = 1, p % n_bank - - ! get the delayed group - g = fission_bank(n_bank - p % n_bank + k) % delayed_group - - ! check if the particle was born prompt - if (g == 0) then - - ! 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 - 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) - - ! 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 if - end do - - ! reset outgoing energy bin - matching_bins(i) = bin_energyout - - end subroutine score_fission_prompt_eout - -!=============================================================================== -! SCORE_FISSION_DELAYED_EOUT handles a special case where we need to store -! delayed neutron production rate with an outgoing energy filter (think of a -! fission matrix). In this case, we may need to score to multiple bins if there -! were multiple neutrons produced with different energies. -!=============================================================================== - - subroutine score_fission_delayed_eout(p, t, i_score) - - type(Particle), intent(in) :: p - type(TallyObject), intent(inout) :: t - integer, intent(in) :: i_score ! index for score - - integer :: i ! index of outgoing energy filter - integer :: j ! index of delayedgroup filter - integer :: d ! delayed group - integer :: g ! another delayed group - integer :: d_bin ! delayed group bin index - 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 - real(8) :: E_out ! energy of fission bank site - - ! Save original outgoing energy bin - i = t % find_filter(FILTER_ENERGYOUT) - bin_energyout = matching_bins(i) - - ! Get the index of delayed group filter - j = t % find_filter(FILTER_DELAYEDGROUP) - - ! Get number of energies on filter - 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 - ! score by keff to get the true delayed-nu-fission rate. - - ! loop over number of particles banked - do k = 1, p % n_bank - - ! get the delayed group - g = fission_bank(n_bank - p % n_bank + k) % delayed_group - - ! check if the particle was born delayed - if (g /= 0) then - - ! 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 - 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) - - ! if the delayed group filter is present, tally to corresponding - ! delayed group bin if it exists - if (j > 0) then - - ! loop over delayed group bins until the corresponding bin is found - do d_bin = 1, t % filters(j) % n_bins - d = t % filters(j) % int_bins(d_bin) - - ! check whether the delayed group of the particle is equal to the - ! delayed group of this bin - if (d == g) then - call score_fission_delayed_dg(t, d_bin, score, i_score) - end if - end do - - ! if the delayed group filter is not present, add score to tally - else - - ! 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 if - end if - end do - - ! reset outgoing energy bin - matching_bins(i) = bin_energyout - - end subroutine score_fission_delayed_eout - !=============================================================================== ! SCORE_FISSION_DELAYED_DG helper function used to increment the tally when a ! delayed group filter is present. From 2815f1c97794939cd040c8b8e2fb56d18270caf0 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 7 Jul 2016 14:03:39 -0400 Subject: [PATCH 130/417] forced numpy to print output in scientific notation --- openmc/mgxs/mgxs.py | 1 + tests/test_mgxs_library_hdf5/results_true.dat | 312 +++++++++--------- 2 files changed, 157 insertions(+), 156 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d6cd8c2550..de5ae05dc9 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -9,6 +9,7 @@ import copy import abc import numpy as np +np.set_printoptions(formatter={'float': lambda x: format(x, '8.6E')}) import openmc import openmc.checkvalue as cv diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index d757944925..0f83221597 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,222 @@ domain=10000 type=total -[ 0.41482549 0.66016992] -[ 0.02279291 0.04751893] +[4.148255E-01 6.601699E-01] +[2.279291E-02 4.751893E-02] domain=10000 type=transport -[ 0.35685964 0.64764766] -[ 0.0254936 0.02370374] +[3.568596E-01 6.476477E-01] +[2.549360E-02 2.370374E-02] domain=10000 type=nu-transport -[ 0.35685964 0.64764766] -[ 0.0254936 0.02370374] +[3.568596E-01 6.476477E-01] +[2.549360E-02 2.370374E-02] domain=10000 type=absorption -[ 0.02740784 0.26451074] -[ 0.0026925 0.02336708] +[2.740784E-02 2.645107E-01] +[2.692497E-03 2.336708E-02] domain=10000 type=capture -[ 0.01984455 0.07171935] -[ 0.0026433 0.02520786] +[1.984455E-02 7.171935E-02] +[2.643304E-03 2.520786E-02] domain=10000 type=fission -[ 0.00756329 0.19279139] -[ 0.00050848 0.01710592] +[7.563295E-03 1.927914E-01] +[5.084837E-04 1.710592E-02] domain=10000 type=nu-fission -[ 0.01943174 0.46977478] -[ 0.00132298 0.041682 ] +[1.943174E-02 4.697748E-01] +[1.322976E-03 4.168200E-02] domain=10000 type=kappa-fission -[ 1.47456982 37.28689641] -[ 0.09923532 3.30837772] +[1.474570E+00 3.728690E+01] +[9.923532E-02 3.308378E+00] domain=10000 type=scatter -[ 0.38741765 0.39565918] -[ 0.02062573 0.02512506] +[3.874176E-01 3.956592E-01] +[2.062573E-02 2.512506E-02] domain=10000 type=nu-scatter -[ 0.38518839 0.4123894 ] -[ 0.02694562 0.01542528] +[3.851884E-01 4.123894E-01] +[2.694562E-02 1.542528E-02] domain=10000 type=scatter matrix -[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] - [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] +[[[3.841995E-01 5.187028E-02 2.006885E-02 9.477716E-03] + [9.889304E-04 -2.072346E-04 -1.033662E-04 2.342906E-04]] - [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] - [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] -[[[ 0.02700101 0.00698255 0.0028465 0.00223352] - [ 0.00048242 0.00014901 0.00018432 0.00012817]] + [[9.246399E-04 -7.677050E-04 4.937889E-04 -1.714972E-04] + [4.114648E-01 1.648173E-02 6.371490E-03 -1.049912E-02]]] +[[[2.700101E-02 6.982549E-03 2.846495E-03 2.233520E-03] + [4.824194E-04 1.490108E-04 1.843163E-04 1.281731E-04]] - [[ 0.00092488 0.00076791 0.00049392 0.00017154] - [ 0.01524494 0.00450173 0.01055075 0.01043819]]] + [[9.248835E-04 7.679072E-04 4.939189E-04 1.715424E-04] + [1.524494E-02 4.501728E-03 1.055075E-02 1.043819E-02]]] domain=10000 type=nu-scatter matrix -[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] - [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] +[[[3.841995E-01 5.187028E-02 2.006885E-02 9.477716E-03] + [9.889304E-04 -2.072346E-04 -1.033662E-04 2.342906E-04]] - [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] - [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] -[[[ 0.02700101 0.00698255 0.0028465 0.00223352] - [ 0.00048242 0.00014901 0.00018432 0.00012817]] + [[9.246399E-04 -7.677050E-04 4.937889E-04 -1.714972E-04] + [4.114648E-01 1.648173E-02 6.371490E-03 -1.049912E-02]]] +[[[2.700101E-02 6.982549E-03 2.846495E-03 2.233520E-03] + [4.824194E-04 1.490108E-04 1.843163E-04 1.281731E-04]] - [[ 0.00092488 0.00076791 0.00049392 0.00017154] - [ 0.01524494 0.00450173 0.01055075 0.01043819]]] + [[9.248835E-04 7.679072E-04 4.939189E-04 1.715424E-04] + [1.524494E-02 4.501728E-03 1.055075E-02 1.043819E-02]]] domain=10000 type=multiplicity matrix -[[ 1. 1.] - [ 1. 1.]] -[[ 0.07851646 0.68718427] - [ 1.41421356 0.04113035]] +[[1.000000E+00 1.000000E+00] + [1.000000E+00 1.000000E+00]] +[[7.851646E-02 6.871843E-01] + [1.414214E+00 4.113035E-02]] domain=10000 type=nu-fission matrix -[[ 0.02014243 0. ] - [ 0.45436647 0. ]] -[[ 0.00314909 0. ] - [ 0.02742551 0. ]] +[[2.014243E-02 0.000000E+00] + [4.543665E-01 0.000000E+00]] +[[3.149092E-03 0.000000E+00] + [2.742551E-02 0.000000E+00]] domain=10000 type=chi -[ 1. 0.] -[ 0.04607052 0. ] +[1.000000E+00 0.000000E+00] +[4.607052E-02 0.000000E+00] domain=10000 type=chi-prompt -[ 0.9914425 0. ] -[ 0.05093465 0. ] +[9.914425E-01 0.000000E+00] +[5.093465E-02 0.000000E+00] domain=10000 type=velocity -[ 17515210.62039676 350171.99519401] -[ 1438175.27389879 29945.93169673] +[1.751521E+07 3.501720E+05] +[1.438175E+06 2.994593E+04] domain=10000 type=prompt-nu-fission -[ 0.01923922 0.46671903] -[ 0.00130951 0.04141087] +[1.923922E-02 4.667190E-01] +[1.309506E-03 4.141087E-02] domain=10001 type=total -[ 0.31373767 0.3008214 ] -[ 0.0155819 0.02805245] +[3.137377E-01 3.008214E-01] +[1.558190E-02 2.805245E-02] domain=10001 type=transport -[ 0.27322787 0.31237484] -[ 0.03311537 0.04960583] +[2.732279E-01 3.123748E-01] +[3.311537E-02 4.960583E-02] domain=10001 type=nu-transport -[ 0.27322787 0.31237484] -[ 0.03311537 0.04960583] +[2.732279E-01 3.123748E-01] +[3.311537E-02 4.960583E-02] domain=10001 type=absorption -[ 0.00157499 0.00540038] -[ 0.00032255 0.00061814] +[1.574991E-03 5.400379E-03] +[3.225479E-04 6.181383E-04] domain=10001 type=capture -[ 0.00157499 0.00540038] -[ 0.00032255 0.00061814] +[1.574991E-03 5.400379E-03] +[3.225479E-04 6.181383E-04] domain=10001 type=fission -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10001 type=nu-fission -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10001 type=kappa-fission -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10001 type=scatter -[ 0.31216268 0.29542102] -[ 0.01532192 0.02744549] +[3.121627E-01 2.954210E-01] +[1.532192E-02 2.744549E-02] domain=10001 type=nu-scatter -[ 0.31012074 0.29626427] -[ 0.03378811 0.04379223] +[3.101207E-01 2.962643E-01] +[3.378811E-02 4.379223E-02] domain=10001 type=scatter matrix -[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] - [ 0. 0. 0. 0. ]] +[[[3.101207E-01 3.822959E-02 2.074494E-02 7.964297E-03] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0. ] - [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] -[[[ 0.03378811 0.008484 0.00469561 0.00373162] - [ 0. 0. 0. 0. ]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [2.962643E-01 -1.121364E-02 8.836566E-03 -3.270067E-03]]] +[[[3.378811E-02 8.483997E-03 4.695611E-03 3.731623E-03] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0. ] - [ 0.04379223 0.01618037 0.01150396 0.00732885]]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [4.379223E-02 1.618037E-02 1.150396E-02 7.328846E-03]]] domain=10001 type=nu-scatter matrix -[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] - [ 0. 0. 0. 0. ]] +[[[3.101207E-01 3.822959E-02 2.074494E-02 7.964297E-03] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0. ] - [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] -[[[ 0.03378811 0.008484 0.00469561 0.00373162] - [ 0. 0. 0. 0. ]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [2.962643E-01 -1.121364E-02 8.836566E-03 -3.270067E-03]]] +[[[3.378811E-02 8.483997E-03 4.695611E-03 3.731623E-03] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0. ] - [ 0.04379223 0.01618037 0.01150396 0.00732885]]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [4.379223E-02 1.618037E-02 1.150396E-02 7.328846E-03]]] domain=10001 type=multiplicity matrix -[[ 1. 0.] - [ 0. 1.]] -[[ 0.1087787 0. ] - [ 0. 0.14242717]] +[[1.000000E+00 0.000000E+00] + [0.000000E+00 1.000000E+00]] +[[1.087787E-01 0.000000E+00] + [0.000000E+00 1.424272E-01]] domain=10001 type=nu-fission matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00]] +[[0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00]] domain=10001 type=chi -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10001 type=chi-prompt -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10001 type=velocity -[ 16677839.49736621 334953.36760125] -[ 1266444.30951813 38336.78162568] +[1.667784E+07 3.349534E+05] +[1.266444E+06 3.833678E+04] domain=10001 type=prompt-nu-fission -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10002 type=total -[ 0.66457226 2.05238401] -[ 0.03121475 0.22434291] +[6.645723E-01 2.052384E+00] +[3.121475E-02 2.243429E-01] domain=10002 type=transport -[ 0.29056526 1.51643801] -[ 0.02385185 0.23519727] +[2.905653E-01 1.516438E+00] +[2.385185E-02 2.351973E-01] domain=10002 type=nu-transport -[ 0.29056526 1.51643801] -[ 0.02385185 0.23519727] +[2.905653E-01 1.516438E+00] +[2.385185E-02 2.351973E-01] domain=10002 type=absorption -[ 0.0006904 0.03168726] -[ 4.41475687e-05 3.74655858e-03] +[6.903995E-04 3.168726E-02] +[4.414757E-05 3.746559E-03] domain=10002 type=capture -[ 0.0006904 0.03168726] -[ 4.41475687e-05 3.74655858e-03] +[6.903995E-04 3.168726E-02] +[4.414757E-05 3.746559E-03] domain=10002 type=fission -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10002 type=nu-fission -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10002 type=kappa-fission -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10002 type=scatter -[ 0.66388186 2.02069676] -[ 0.03117268 0.22060445] +[6.638819E-01 2.020697E+00] +[3.117268E-02 2.206045E-01] domain=10002 type=nu-scatter -[ 0.6712692 2.03538833] -[ 0.02618637 0.25806033] +[6.712692E-01 2.035388E+00] +[2.618637E-02 2.580603E-01] domain=10002 type=scatter matrix -[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] - [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] +[[[6.399015E-01 3.811674E-01 1.523919E-01 9.148022E-03] + [3.136772E-02 8.757723E-03 -2.567901E-03 -3.784803E-03]] - [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] - [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] -[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] - [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] + [[4.433431E-04 3.999604E-04 3.195627E-04 2.138470E-04] + [2.034945E+00 5.099405E-01 1.111746E-01 2.498844E-02]]] +[[[2.470912E-02 1.624326E-02 8.156278E-03 3.888562E-03] + [1.728113E-03 9.256705E-04 1.013985E-03 8.170756E-04]] - [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] - [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] + [[4.448504E-04 4.013202E-04 3.206491E-04 2.145740E-04] + [2.577999E-01 5.123591E-02 1.301982E-02 8.312353E-03]]] domain=10002 type=nu-scatter matrix -[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] - [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] +[[[6.399015E-01 3.811674E-01 1.523919E-01 9.148022E-03] + [3.136772E-02 8.757723E-03 -2.567901E-03 -3.784803E-03]] - [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] - [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] -[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] - [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] + [[4.433431E-04 3.999604E-04 3.195627E-04 2.138470E-04] + [2.034945E+00 5.099405E-01 1.111746E-01 2.498844E-02]]] +[[[2.470912E-02 1.624326E-02 8.156278E-03 3.888562E-03] + [1.728113E-03 9.256705E-04 1.013985E-03 8.170756E-04]] - [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] - [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] + [[4.448504E-04 4.013202E-04 3.206491E-04 2.145740E-04] + [2.577999E-01 5.123591E-02 1.301982E-02 8.312353E-03]]] domain=10002 type=multiplicity matrix -[[ 1. 1.] - [ 1. 1.]] -[[ 0.03860919 0.06766735] - [ 1.41421356 0.13592921]] +[[1.000000E+00 1.000000E+00] + [1.000000E+00 1.000000E+00]] +[[3.860919E-02 6.766735E-02] + [1.414214E+00 1.359292E-01]] domain=10002 type=nu-fission matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00]] +[[0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00]] domain=10002 type=chi -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10002 type=chi-prompt -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] domain=10002 type=velocity -[ 16605562.87322708 328412.03865003] -[ 1042435.52374238 38828.43572983] +[1.660556E+07 3.284120E+05] +[1.042436E+06 3.882844E+04] domain=10002 type=prompt-nu-fission -[ 0. 0.] -[ 0. 0.] +[0.000000E+00 0.000000E+00] +[0.000000E+00 0.000000E+00] From 3b7026dcabbf9b3da3888731a9b8f9690dbd83d7 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 7 Jul 2016 14:30:45 -0400 Subject: [PATCH 131/417] updated failing tests due to change in the way mgxs values are printed --- openmc/mgxs/mgxs.py | 4 + tests/test_multipole/results_true.dat | 4 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++++++++--------- 4 files changed, 111 insertions(+), 107 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index de5ae05dc9..ee5848c7c7 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -9,6 +9,10 @@ import copy import abc import numpy as np + +# Require numpy to print output in scientific notation to 6 decimal places. +# This is needed to avoid round off error when large numbers are printed, +# which can cause tests to fail for different build configurations. np.set_printoptions(formatter={'float': lambda x: format(x, '8.6E')}) import openmc diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index d138fa16a9..84666915fc 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -1,12 +1,12 @@ k-combined: -1.457760E+00 1.119659E-02 +1.434998E+00 9.402333E-03 Cell ID = 11 Name = Fill = Material 2 Region = -10000 Rotation = None - Temperature = [ 500. 0. 700. 800.] + Temperature = [5.000000E+02 0.000000E+00 7.000000E+02 8.000000E+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 6c2d7a5193..0f40c54d10 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -840d2648f9ba782926c71baa84e5a2ad31331e156740a3d1e9d86af8f1f0d301ef8c0f69474975d365dbcf8d229a68c62d3e60286d18045e5254373f4e1010bf \ No newline at end of file +d7878520296fade8e96498f53209bfc9185b4e518aba5ed598008b1078e4590a7474dfbc60f7efac360350765e37d99b9ea0f90bc47021872ff9888f2315eda9 \ 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 ef2741cc12..0f72dafa3c 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] +[[[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] ..., - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+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.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]]][[[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] ..., - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+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.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]]][[[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] ..., - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+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.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]]][[[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]] ..., - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]]][[[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]]][[[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]] ..., - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] + [[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]] - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]]] \ No newline at end of file + [[0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00] + [0.000000E+00 0.000000E+00 0.000000E+00]]] \ No newline at end of file From a0806be6f7ee715ecb86f2b8a5dbf97a89fda95d Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Thu, 7 Jul 2016 19:21:41 +0000 Subject: [PATCH 132/417] updated multipole test results --- tests/test_multipole/results_true.dat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 84666915fc..133140999c 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.434998E+00 9.402333E-03 +1.457760E+00 1.119659E-02 Cell ID = 11 Name = From 9757d0adf4198665680e431a4653f6cc3ec7ba9f Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Thu, 7 Jul 2016 19:22:56 +0000 Subject: [PATCH 133/417] updated tally aggregation test results --- tests/test_tally_aggregation/results_true.dat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 0f40c54d10..365f1d775e 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -d7878520296fade8e96498f53209bfc9185b4e518aba5ed598008b1078e4590a7474dfbc60f7efac360350765e37d99b9ea0f90bc47021872ff9888f2315eda9 \ No newline at end of file +d5c21b44afd44a6e2be483090db0e2525d7d7cdbee1c02bee43621f1889193cc4712d74e28b3961a9ea9be093b33b56633046749a70f40c68982d6ca653d4cc1 \ No newline at end of file From a73e7529ab1e01e81a6ac07ee418667fd47ee3d4 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 7 Jul 2016 16:17:50 -0400 Subject: [PATCH 134/417] modified tally slice merge test to get slice of a mesh --- tests/test_tally_slice_merge/inputs_true.dat | 2 +- tests/test_tally_slice_merge/results_true.dat | 86 +++++++++++-------- .../test_tally_slice_merge.py | 45 ++++++++-- 3 files changed, 93 insertions(+), 40 deletions(-) diff --git a/tests/test_tally_slice_merge/inputs_true.dat b/tests/test_tally_slice_merge/inputs_true.dat index be2ec63dc5..771a1de8e8 100644 --- a/tests/test_tally_slice_merge/inputs_true.dat +++ b/tests/test_tally_slice_merge/inputs_true.dat @@ -1 +1 @@ -bb4ae3b75445846bd5db05a06cc20e7589990154ccef8302f276cd8356630d585c513ebb6bfa99f9fc93dd2d30c42bfbb67dd3454134f4c9fcb3bac128d1f1c5 \ No newline at end of file +8e54df241233bf8d5424afa0a22cc23c614a3541e5d7cc64036b5284edd28fe2353905ffdfebb446a4dd0202dda6a7da6d0110af00b4ca79117ec1dbe0584ba7 \ 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 index ed04152d48..f986a91def 100644 --- a/tests/test_tally_slice_merge/results_true.dat +++ b/tests/test_tally_slice_merge/results_true.dat @@ -1,36 +1,37 @@ - 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 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. + cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 0.00e+00 6.25e-07 U-235 fission 1.08e-01 7.94e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 0.00e+00 6.25e-07 U-235 nu-fission 2.64e-01 1.94e-02 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 0.00e+00 6.25e-07 U-238 fission 1.51e-07 1.00e-08 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 0.00e+00 6.25e-07 U-238 nu-fission 3.76e-07 2.50e-08 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 6.25e-07 2.00e+01 U-235 fission 3.12e-02 2.56e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 6.25e-07 2.00e+01 U-235 nu-fission 7.65e-02 6.24e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 6.25e-07 2.00e+01 U-238 fission 2.00e-02 1.30e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 6.25e-07 2.00e+01 U-238 nu-fission 5.56e-02 3.78e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 0.00e+00 6.25e-07 U-235 fission 4.43e-02 7.21e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 0.00e+00 6.25e-07 U-235 nu-fission 1.08e-01 1.76e-02 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 0.00e+00 6.25e-07 U-238 fission 6.14e-08 9.64e-09 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 0.00e+00 6.25e-07 U-238 nu-fission 1.53e-07 2.40e-08 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 6.25e-07 2.00e+01 U-235 fission 1.39e-02 1.06e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 6.25e-07 2.00e+01 U-235 nu-fission 3.40e-02 2.61e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 6.25e-07 2.00e+01 U-238 fission 9.72e-03 1.21e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 6.25e-07 2.00e+01 U-238 nu-fission 2.71e-02 3.80e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 0.00e+00 6.25e-07 U-235 fission 1.08e-01 7.94e-03 +1 21 0.00e+00 6.25e-07 U-235 nu-fission 2.64e-01 1.94e-02 +2 21 0.00e+00 6.25e-07 U-238 fission 1.51e-07 1.00e-08 +3 21 0.00e+00 6.25e-07 U-238 nu-fission 3.76e-07 2.50e-08 +4 21 6.25e-07 2.00e+01 U-235 fission 3.12e-02 2.56e-03 +5 21 6.25e-07 2.00e+01 U-235 nu-fission 7.65e-02 6.24e-03 +6 21 6.25e-07 2.00e+01 U-238 fission 2.00e-02 1.30e-03 +7 21 6.25e-07 2.00e+01 U-238 nu-fission 5.56e-02 3.78e-03 +8 27 0.00e+00 6.25e-07 U-235 fission 4.43e-02 7.21e-03 +9 27 0.00e+00 6.25e-07 U-235 nu-fission 1.08e-01 1.76e-02 +10 27 0.00e+00 6.25e-07 U-238 fission 6.14e-08 9.64e-09 +11 27 0.00e+00 6.25e-07 U-238 nu-fission 1.53e-07 2.40e-08 +12 27 6.25e-07 2.00e+01 U-235 fission 1.39e-02 1.06e-03 +13 27 6.25e-07 2.00e+01 U-235 nu-fission 3.40e-02 2.61e-03 +14 27 6.25e-07 2.00e+01 U-238 fission 9.72e-03 1.21e-03 +15 27 6.25e-07 2.00e+01 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 @@ -46,4 +47,21 @@ 12 (500, 5000, 50000) 6.25e-07 2.00e+01 U-235 fission 0.00e+00 0.00e+00 13 (500, 5000, 50000) 6.25e-07 2.00e+01 U-235 nu-fission 0.00e+00 0.00e+00 14 (500, 5000, 50000) 6.25e-07 2.00e+01 U-238 fission 0.00e+00 0.00e+00 -15 (500, 5000, 50000) 6.25e-07 2.00e+01 U-238 nu-fission 0.00e+00 0.00e+00 \ No newline at end of file +15 (500, 5000, 50000) 6.25e-07 2.00e+01 U-238 nu-fission 0.00e+00 0.00e+00 + sum(mesh) energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U-235 fission 9.18e-03 1.62e-03 +1 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U-235 nu-fission 2.24e-02 3.94e-03 +2 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U-238 fission 1.31e-08 2.08e-09 +3 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U-238 nu-fission 3.26e-08 5.19e-09 +4 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U-235 fission 8.40e-04 2.13e-04 +5 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U-235 nu-fission 2.06e-03 5.17e-04 +6 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U-238 fission 7.05e-04 3.42e-04 +7 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U-238 nu-fission 1.99e-03 1.01e-03 +8 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U-235 fission 8.77e-03 1.30e-03 +9 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U-235 nu-fission 2.14e-02 3.18e-03 +10 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U-238 fission 1.24e-08 1.74e-09 +11 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U-238 nu-fission 3.08e-08 4.33e-09 +12 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U-235 fission 2.30e-03 6.20e-04 +13 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U-235 nu-fission 5.63e-03 1.52e-03 +14 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U-238 fission 1.45e-03 7.19e-04 +15 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U-238 nu-fission 3.97e-03 1.98e-03 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 4dbb993d59..0b05c088df 100644 --- a/tests/test_tally_slice_merge/test_tally_slice_merge.py +++ b/tests/test_tally_slice_merge/test_tally_slice_merge.py @@ -33,13 +33,21 @@ class TallySliceMergeTestHarness(PyAPITestHarness): cell_27 = openmc.Filter(type='cell', bins=[27]) distribcell_filter = openmc.Filter(type='distribcell', bins=[21]) + mesh = openmc.Mesh(name='mesh') + mesh.type = 'regular' + mesh.dimension = [2, 2] + mesh.lower_left = [-50., -50.] + mesh.upper_right = [+50., +50.] + mesh_filter = openmc.Filter(type='mesh', bins=[mesh.id]) + mesh_filter.mesh = mesh + 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 energy_filter in self.energy_filters: + for cell_filter in self.cell_filters: for nuclide in self.nuclides: for score in self.scores: tally = openmc.Tally() @@ -69,8 +77,18 @@ class TallySliceMergeTestHarness(PyAPITestHarness): for nuclide in self.nuclides: distribcell_tally.add_nuclide(nuclide) + mesh_tally = openmc.Tally(name='mesh tally') + mesh_tally.estimator = 'tracklength' + mesh_tally.add_filter(mesh_filter) + mesh_tally.add_filter(merged_energies) + for score in self.scores: + mesh_tally.add_score(score) + for nuclide in self.nuclides: + mesh_tally.add_nuclide(nuclide) + # Add tallies to a Tallies object - tallies_file = openmc.Tallies((tallies[0], distribcell_tally)) + tallies_file = openmc.Tallies((tallies[0], distribcell_tally, + mesh_tally)) # Export tallies to file self._input_set.tallies = tallies_file @@ -121,7 +139,7 @@ class TallySliceMergeTestHarness(PyAPITestHarness): # Append merged Tally Pandas DataFrame to output string df = tallies[0].get_pandas_dataframe() - outstr += df.to_string() + outstr += df.to_string() + '\n' # Extract the distribcell tally distribcell_tally = sp.get_tally(name='distribcell tally') @@ -138,7 +156,24 @@ class TallySliceMergeTestHarness(PyAPITestHarness): # Append merged Tally Pandas DataFrame to output string df = merge_tally.get_pandas_dataframe() - outstr += df.to_string() + outstr += df.to_string() + '\n' + + # Extract the mesh tally + mesh_tally = sp.get_tally(name='mesh tally') + + # Sum up a few subdomains from the mesh tally + sum1 = mesh_tally.summation(filter_type='mesh', + filter_bins=[(1,1,1), (1,2,1)]) + # Sum up a few subdomains from the mesh tally + sum2 = mesh_tally.summation(filter_type='mesh', + filter_bins=[(2,1,1), (2,2,1)]) + + # 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() + '\n' # Hash the results if necessary if hash_output: From 9d55caf5c0caf3d157ffd8e6070c28a87e877a96 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 7 Jul 2016 16:19:30 -0400 Subject: [PATCH 135/417] fixed typo in tally slice merge test comment --- tests/test_tally_slice_merge/test_tally_slice_merge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 0b05c088df..1472cc75a2 100644 --- a/tests/test_tally_slice_merge/test_tally_slice_merge.py +++ b/tests/test_tally_slice_merge/test_tally_slice_merge.py @@ -168,7 +168,7 @@ class TallySliceMergeTestHarness(PyAPITestHarness): sum2 = mesh_tally.summation(filter_type='mesh', filter_bins=[(2,1,1), (2,2,1)]) - # Merge the distribcell tally slices + # Merge the mesh tally slices merge_tally = sum1.merge(sum2) # Append merged Tally Pandas DataFrame to output string From b56c528bdb0ce3efaefe66af4da77cedfef69d8f Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 7 Jul 2016 16:46:24 -0400 Subject: [PATCH 136/417] used condensed methods to generate mesh domain bins --- .../pythonapi/examples/mgxs-part-i.ipynb | 900 +++++++++++++++--- openmc/mgxs/mgxs.py | 87 +- 2 files changed, 765 insertions(+), 222 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index ff242885e6..7c5838b2d9 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -91,7 +91,7 @@ "\n", "$$\\sigma_{n,x,k,g} = \\frac{\\int_{E_{g}}^{E_{g-1}}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r}\\sigma_{n,x}(\\mathbf{r},E')\\Phi(\\mathbf{r},E')}{\\int_{E_{g}}^{E_{g-1}}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r}\\Phi(\\mathbf{r},E')}$$\n", "\n", - "This scalar flux-weighted average microscopic cross section is computed by `openmc.mgxs` for most multi-group cross sections, including total, absorption, and fission reaction types. These double integrals are stochastically computed with OpenMC's tally system - in particular, [filters](https://mit-crpg.github.io/openmc/pythonapi/filter.html) on the energy range and spatial zone (material, cell or universe) define the bounds of integration for both numerator and denominator." + "This scalar flux-weighted average microscopic cross section is computed by `openmc.mgxs` for most multi-group cross sections, including total, absorption, and fission reaction types. These double integrals are stochastically computed with OpenMC's tally system - in particular, [filters](https://mit-crpg.github.io/openmc/pythonapi/filter.html) on the energy range and spatial zone (material, cell, universe, or mesh) define the bounds of integration for both numerator and denominator." ] }, { @@ -326,7 +326,7 @@ "# OpenMC simulation parameters\n", "batches = 50\n", "inactive = 10\n", - "particles = 1000\n", + "particles = 2500\n", "\n", "# Instantiate a Settings object\n", "settings_file = openmc.Settings()\n", @@ -433,7 +433,7 @@ " \tName =\t\n", " \tFilters =\t\n", " \t\tmesh\t[10000]\n", - " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + " \t\tenergy\t[0.000000E+00 6.250000E-07 2.000000E+01]\n", " \tNuclides =\ttotal \n", " \tScores =\t['flux']\n", " \tEstimator =\ttracklength), ('absorption', Tally\n", @@ -441,7 +441,7 @@ " \tName =\t\n", " \tFilters =\t\n", " \t\tmesh\t[10000]\n", - " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + " \t\tenergy\t[0.000000E+00 6.250000E-07 2.000000E+01]\n", " \tNuclides =\ttotal \n", " \tScores =\t['absorption']\n", " \tEstimator =\ttracklength)])" @@ -521,9 +521,9 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 736d7aa5ba3bcd1a8a1614ce4b6769babcb1d8ca\n", - " Date/Time: 2016-07-05 16:23:08\n", - " MPI Processes: 4\n", + " Git SHA1: 6a66fb9af7372435dc7da987c8fc3d6acff6549a\n", + " Date/Time: 2016-07-07 16:43:21\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -549,56 +549,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.07993 \n", - " 2/1 1.23691 \n", - " 3/1 1.17407 \n", - " 4/1 1.08258 \n", - " 5/1 1.21012 \n", - " 6/1 1.23825 \n", - " 7/1 1.18016 \n", - " 8/1 1.20989 \n", - " 9/1 1.15475 \n", - " 10/1 1.13462 \n", - " 11/1 1.12749 \n", - " 12/1 1.09502 1.11125 +/- 0.01623\n", - " 13/1 1.24722 1.15657 +/- 0.04628\n", - " 14/1 1.14700 1.15418 +/- 0.03281\n", - " 15/1 1.13889 1.15112 +/- 0.02560\n", - " 16/1 1.19008 1.15762 +/- 0.02189\n", - " 17/1 1.11320 1.15127 +/- 0.01956\n", - " 18/1 1.12093 1.14748 +/- 0.01736\n", - " 19/1 1.13809 1.14643 +/- 0.01534\n", - " 20/1 1.09886 1.14168 +/- 0.01452\n", - " 21/1 1.15457 1.14285 +/- 0.01319\n", - " 22/1 1.19951 1.14757 +/- 0.01293\n", - " 23/1 1.13296 1.14645 +/- 0.01195\n", - " 24/1 1.15322 1.14693 +/- 0.01107\n", - " 25/1 1.26213 1.15461 +/- 0.01286\n", - " 26/1 1.11758 1.15230 +/- 0.01225\n", - " 27/1 1.19061 1.15455 +/- 0.01172\n", - " 28/1 1.17562 1.15572 +/- 0.01111\n", - " 29/1 1.15989 1.15594 +/- 0.01051\n", - " 30/1 1.19989 1.15814 +/- 0.01021\n", - " 31/1 1.14498 1.15751 +/- 0.00974\n", - " 32/1 1.11494 1.15558 +/- 0.00948\n", - " 33/1 1.13251 1.15457 +/- 0.00912\n", - " 34/1 1.17943 1.15561 +/- 0.00879\n", - " 35/1 1.21182 1.15786 +/- 0.00872\n", - " 36/1 1.16118 1.15798 +/- 0.00838\n", - " 37/1 1.13679 1.15720 +/- 0.00811\n", - " 38/1 1.15684 1.15719 +/- 0.00781\n", - " 39/1 1.12450 1.15606 +/- 0.00762\n", - " 40/1 1.30157 1.16091 +/- 0.00882\n", - " 41/1 1.04558 1.15719 +/- 0.00930\n", - " 42/1 1.16538 1.15745 +/- 0.00901\n", - " 43/1 1.17710 1.15804 +/- 0.00875\n", - " 44/1 1.13273 1.15730 +/- 0.00853\n", - " 45/1 1.19156 1.15828 +/- 0.00834\n", - " 46/1 1.19404 1.15927 +/- 0.00816\n", - " 47/1 1.19058 1.16012 +/- 0.00798\n", - " 48/1 1.12943 1.15931 +/- 0.00781\n", - " 49/1 1.22428 1.16097 +/- 0.00779\n", - " 50/1 1.07496 1.15882 +/- 0.00789\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", @@ -608,27 +608,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 8.6600E-01 seconds\n", - " Reading cross sections = 2.2400E-01 seconds\n", - " Total time in simulation = 3.0950E+00 seconds\n", - " Time in transport only = 2.9310E+00 seconds\n", - " Time in inactive batches = 2.8000E-01 seconds\n", - " Time in active batches = 2.8150E+00 seconds\n", - " Time synchronizing fission bank = 1.4200E-01 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 7.1900E-01 seconds\n", + " Reading cross sections = 2.0400E-01 seconds\n", + " Total time in simulation = 2.4932E+01 seconds\n", + " Time in transport only = 2.4916E+01 seconds\n", + " Time in inactive batches = 2.1830E+00 seconds\n", + " Time in active batches = 2.2749E+01 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 4.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 = 3.0000E-03 seconds\n", - " Total time elapsed = 3.9660E+00 seconds\n", - " Calculation Rate (inactive) = 35714.3 neutrons/second\n", - " Calculation Rate (active) = 14209.6 neutrons/second\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 2.0000E-03 seconds\n", + " Total time elapsed = 2.5667E+01 seconds\n", + " Calculation Rate (inactive) = 11452.1 neutrons/second\n", + " Calculation Rate (active) = 4395.80 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.15707 +/- 0.00744\n", - " k-effective (Track-length) = 1.15882 +/- 0.00789\n", - " k-effective (Absorption) = 1.16215 +/- 0.00476\n", - " Combined k-effective = 1.16131 +/- 0.00452\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" ] @@ -646,7 +646,7 @@ ], "source": [ "# Run OpenMC\n", - "openmc.run(mpi_procs=4)" + "openmc.run()" ] }, { @@ -740,23 +740,23 @@ "\tDomain Type =\tmesh\n", "\tDomain ID =\t10000\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.83e-01 +/- 4.53e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 1.16e+00%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 3.06e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 6.94e-01%\n", "\n", "\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 3.23e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 1.30e+00%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 3.19e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 7.34e-01%\n", "\n", "\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.83e-01 +/- 3.88e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 9.89e-01%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.82e-01 +/- 3.01e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 7.23e-01%\n", "\n", "\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.82e-01 +/- 4.92e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 1.20e+00%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.80e-01 +/- 3.34e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 5.92e-01%\n", "\n", "\n", "\n" @@ -814,8 +814,8 @@ " 1\n", " 1\n", " total\n", - " 0.669016\n", - " 0.003015\n", + " 0.667691\n", + " 0.002046\n", " \n", " \n", " 0\n", @@ -824,8 +824,8 @@ " 1\n", " 2\n", " total\n", - " 1.293138\n", - " 0.014971\n", + " 1.291709\n", + " 0.008941\n", " \n", " \n", " 3\n", @@ -834,8 +834,8 @@ " 1\n", " 1\n", " total\n", - " 0.667930\n", - " 0.002132\n", + " 0.667474\n", + " 0.002119\n", " \n", " \n", " 2\n", @@ -844,8 +844,8 @@ " 1\n", " 2\n", " total\n", - " 1.292741\n", - " 0.016747\n", + " 1.292677\n", + " 0.009479\n", " \n", " \n", " 5\n", @@ -854,8 +854,8 @@ " 1\n", " 1\n", " total\n", - " 0.669513\n", - " 0.002584\n", + " 0.668766\n", + " 0.002021\n", " \n", " \n", " 4\n", @@ -864,8 +864,8 @@ " 1\n", " 2\n", " total\n", - " 1.294423\n", - " 0.012750\n", + " 1.292504\n", + " 0.009323\n", " \n", " \n", " 7\n", @@ -874,8 +874,8 @@ " 1\n", " 1\n", " total\n", - " 0.668773\n", - " 0.003314\n", + " 0.667218\n", + " 0.002220\n", " \n", " \n", " 6\n", @@ -884,8 +884,8 @@ " 1\n", " 2\n", " total\n", - " 1.292515\n", - " 0.015479\n", + " 1.291160\n", + " 0.007613\n", " \n", " \n", "\n", @@ -894,14 +894,14 @@ "text/plain": [ " mesh 10000 group in nuclide mean std. dev.\n", " x y z \n", - "1 1 1 1 1 total 0.669016 0.003015\n", - "0 1 1 1 2 total 1.293138 0.014971\n", - "3 1 2 1 1 total 0.667930 0.002132\n", - "2 1 2 1 2 total 1.292741 0.016747\n", - "5 2 1 1 1 total 0.669513 0.002584\n", - "4 2 1 1 2 total 1.294423 0.012750\n", - "7 2 2 1 1 total 0.668773 0.003314\n", - "6 2 2 1 2 total 1.292515 0.015479" + "1 1 1 1 1 total 0.667691 0.002046\n", + "0 1 1 1 2 total 1.291709 0.008941\n", + "3 1 2 1 1 total 0.667474 0.002119\n", + "2 1 2 1 2 total 1.292677 0.009479\n", + "5 2 1 1 1 total 0.668766 0.002021\n", + "4 2 1 1 2 total 1.292504 0.009323\n", + "7 2 2 1 1 total 0.667218 0.002220\n", + "6 2 2 1 2 total 1.291160 0.007613" ] }, "execution_count": 19, @@ -914,38 +914,6 @@ "df.head(10)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Each multi-group cross section object can be easily exported to a variety of file formats, including CSV, Excel, and LaTeX for storage or data processing." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "Setting dtype to anything other than object is not supported", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mabsorption\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexport_xs_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'absorption-xs'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'excel'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m/Users/sam/.local/lib/python2.7/site-packages/openmc-0.7.1-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mexport_xs_data\u001b[0;34m(self, filename, directory, format, groups, xs_type)\u001b[0m\n\u001b[1;32m 1430\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1431\u001b[0m \u001b[0;31m# Capitalize column label strings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1432\u001b[0;31m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1433\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtitle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1434\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/index.pyc\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 5922\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mis_object_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5923\u001b[0m raise TypeError('Setting %s dtype to anything other than object '\n\u001b[0;32m-> 5924\u001b[0;31m 'is not supported' % self.__class__)\n\u001b[0m\u001b[1;32m 5925\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_shallow_copy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5926\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mTypeError\u001b[0m: Setting dtype to anything other than object is not supported" - ] - } - ], - "source": [ - "absorption.export_xs_data(filename='absorption-xs', format='excel')" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -955,7 +923,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": false }, @@ -982,11 +950,170 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mesh 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...-1.332268e-150.013214
11116.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...-2.220446e-160.002922
21210.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...4.440892e-160.014000
31216.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...2.331468e-150.003034
42110.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...-6.661338e-160.013782
52116.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...-9.992007e-160.002880
62210.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...4.440892e-160.011257
72216.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...7.771561e-160.003177
\n", + "
" + ], + "text/plain": [ + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 1 1 6.25e-07 2.00e+01 total \n", + "2 1 2 1 0.00e+00 6.25e-07 total \n", + "3 1 2 1 6.25e-07 2.00e+01 total \n", + "4 2 1 1 0.00e+00 6.25e-07 total \n", + "5 2 1 1 6.25e-07 2.00e+01 total \n", + "6 2 2 1 0.00e+00 6.25e-07 total \n", + "7 2 2 1 6.25e-07 2.00e+01 total \n", + "\n", + " score mean std. dev. \n", + " \n", + "0 (((total / flux) - (absorption / flux)) - (sca... -1.33e-15 1.32e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... -2.22e-16 2.92e-03 \n", + "2 (((total / flux) - (absorption / flux)) - (sca... 4.44e-16 1.40e-02 \n", + "3 (((total / flux) - (absorption / flux)) - (sca... 2.33e-15 3.03e-03 \n", + "4 (((total / flux) - (absorption / flux)) - (sca... -6.66e-16 1.38e-02 \n", + "5 (((total / flux) - (absorption / flux)) - (sca... -9.99e-16 2.88e-03 \n", + "6 (((total / flux) - (absorption / flux)) - (sca... 4.44e-16 1.13e-02 \n", + "7 (((total / flux) - (absorption / flux)) - (sca... 7.77e-16 3.18e-03 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Use tally arithmetic to compute the difference between the total, absorption and scattering\n", "difference = total.xs_tally - absorption.xs_tally - scattering.xs_tally\n", @@ -1004,11 +1131,170 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mesh 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0760770.000762
11116.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0192420.000160
21210.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0761730.000800
31216.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0193720.000136
42110.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0761830.000796
52116.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0193640.000154
62210.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0760270.000654
72216.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0190740.000153
\n", + "
" + ], + "text/plain": [ + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 1 1 6.25e-07 2.00e+01 total \n", + "2 1 2 1 0.00e+00 6.25e-07 total \n", + "3 1 2 1 6.25e-07 2.00e+01 total \n", + "4 2 1 1 0.00e+00 6.25e-07 total \n", + "5 2 1 1 6.25e-07 2.00e+01 total \n", + "6 2 2 1 0.00e+00 6.25e-07 total \n", + "7 2 2 1 6.25e-07 2.00e+01 total \n", + "\n", + " score mean std. dev. \n", + " \n", + "0 ((absorption / flux) / (total / flux)) 7.61e-02 7.62e-04 \n", + "1 ((absorption / flux) / (total / flux)) 1.92e-02 1.60e-04 \n", + "2 ((absorption / flux) / (total / flux)) 7.62e-02 8.00e-04 \n", + "3 ((absorption / flux) / (total / flux)) 1.94e-02 1.36e-04 \n", + "4 ((absorption / flux) / (total / flux)) 7.62e-02 7.96e-04 \n", + "5 ((absorption / flux) / (total / flux)) 1.94e-02 1.54e-04 \n", + "6 ((absorption / flux) / (total / flux)) 7.60e-02 6.54e-04 \n", + "7 ((absorption / flux) / (total / flux)) 1.91e-02 1.53e-04 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Use tally arithmetic to compute the absorption-to-total MGXS ratio\n", "absorption_to_total = absorption.xs_tally / total.xs_tally\n", @@ -1019,11 +1305,170 @@ }, { "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9239230.009054
11116.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9807580.004247
21210.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9238270.009586
31216.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9806280.004411
42110.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9238170.009436
52116.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9806360.004180
62210.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9239730.007717
72216.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9809260.004623
\n", + "
" + ], + "text/plain": [ + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 1 1 6.25e-07 2.00e+01 total \n", + "2 1 2 1 0.00e+00 6.25e-07 total \n", + "3 1 2 1 6.25e-07 2.00e+01 total \n", + "4 2 1 1 0.00e+00 6.25e-07 total \n", + "5 2 1 1 6.25e-07 2.00e+01 total \n", + "6 2 2 1 0.00e+00 6.25e-07 total \n", + "7 2 2 1 6.25e-07 2.00e+01 total \n", + "\n", + " score mean std. dev. \n", + " \n", + "0 ((scatter / flux) / (total / flux)) 9.24e-01 9.05e-03 \n", + "1 ((scatter / flux) / (total / flux)) 9.81e-01 4.25e-03 \n", + "2 ((scatter / flux) / (total / flux)) 9.24e-01 9.59e-03 \n", + "3 ((scatter / flux) / (total / flux)) 9.81e-01 4.41e-03 \n", + "4 ((scatter / flux) / (total / flux)) 9.24e-01 9.44e-03 \n", + "5 ((scatter / flux) / (total / flux)) 9.81e-01 4.18e-03 \n", + "6 ((scatter / flux) / (total / flux)) 9.24e-01 7.72e-03 \n", + "7 ((scatter / flux) / (total / flux)) 9.81e-01 4.62e-03 " + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Use tally arithmetic to compute the scattering-to-total MGXS ratio\n", "scattering_to_total = scattering.xs_tally / total.xs_tally\n", @@ -1041,11 +1486,170 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mesh 10000energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
xyz
01110.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.009086
11116.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.004250
21210.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.009619
31216.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.004413
42110.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.009470
52116.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.004183
62210.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.007745
72216.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.004626
\n", + "
" + ], + "text/plain": [ + " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 total \n", + "1 1 1 1 6.25e-07 2.00e+01 total \n", + "2 1 2 1 0.00e+00 6.25e-07 total \n", + "3 1 2 1 6.25e-07 2.00e+01 total \n", + "4 2 1 1 0.00e+00 6.25e-07 total \n", + "5 2 1 1 6.25e-07 2.00e+01 total \n", + "6 2 2 1 0.00e+00 6.25e-07 total \n", + "7 2 2 1 6.25e-07 2.00e+01 total \n", + "\n", + " score mean std. dev. \n", + " \n", + "0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 9.09e-03 \n", + "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 4.25e-03 \n", + "2 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 9.62e-03 \n", + "3 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 4.41e-03 \n", + "4 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 9.47e-03 \n", + "5 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 4.18e-03 \n", + "6 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 7.74e-03 \n", + "7 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 4.63e-03 " + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Use tally arithmetic to ensure that the absorption- and scattering-to-total MGXS ratios sum to unity\n", "sum_ratio = absorption_to_total + scattering_to_total\n", diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index ab65f7a5ac..1d2536678c 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -7,6 +7,7 @@ import os import sys import copy import abc +import itertools import numpy as np @@ -701,20 +702,8 @@ class MGXS(object): # NOTE: This is important if tally merging was used if self.domain_type == 'mesh': filters = [self.domain_type] - bins = [] - if (len(self.domain.dimension) == 3): - nx, ny, nz = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - for z in range(1,nz+1): - bins.append((x, y, z)) - else: - nx, ny = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - bins.append((x, y, 1)) - - filter_bins = [tuple(bins)] + xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + filter_bins = [tuple(itertools.product(*xyz))] elif self.domain_type != 'distribcell': filters = [self.domain_type] filter_bins = [(self.domain.id,)] @@ -1169,18 +1158,8 @@ class MGXS(object): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - subdomains = [] - if (len(self.domain.dimension) == 3): - nx, ny, nz = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - for z in range(1,nz+1): - subdomains.append((x, y, z)) - else: - nx, ny = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - subdomains.append((x, y, 1)) + xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] @@ -1318,18 +1297,8 @@ class MGXS(object): domain_filter = self.xs_tally.find_filter('avg(distribcell)') subdomains = domain_filter.bins elif self.domain_type == 'mesh': - subdomains = [] - if (len(self.domain.dimension) == 3): - nx, ny, nz = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - for z in range(1,nz+1): - subdomains.append((x, y, z)) - else: - nx, ny = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - subdomains.append((x, y, 1)) + xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] @@ -1934,18 +1903,8 @@ class MatrixMGXS(MGXS): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - subdomains = [] - if (len(self.domain.dimension) == 3): - nx, ny, nz = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - for z in range(1,nz+1): - subdomains.append((x, y, z)) - else: - nx, ny = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - subdomains.append((x, y, 1)) + xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] @@ -3787,18 +3746,8 @@ class ScatterMatrixXS(MatrixMGXS): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - subdomains = [] - if (len(self.domain.dimension) == 3): - nx, ny, nz = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - for z in range(1,nz+1): - subdomains.append((x, y, z)) - else: - nx, ny = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - subdomains.append((x, y, 1)) + xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] @@ -5020,18 +4969,8 @@ class Velocity(MGXS): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - subdomains = [] - if (len(self.domain.dimension) == 3): - nx, ny, nz = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - for z in range(1,nz+1): - subdomains.append((x, y, z)) - else: - nx, ny = self.domain.dimension - for x in range(1,nx+1): - for y in range(1,ny+1): - subdomains.append((x, y, 1)) + xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] From b1d05ee64ac54a08d1d55ae3d09de01f6da38bec Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Sun, 10 Jul 2016 14:50:56 -0600 Subject: [PATCH 137/417] moved numpy scientific notation print requirements to testing harness --- openmc/mgxs/library.py | 2 +- openmc/mgxs/mgxs.py | 200 +++---- src/tally.F90 | 4 +- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 4 +- .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/testing_harness.py | 7 + 9 files changed, 520 insertions(+), 551 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 9df9d150dd..f1e839fdee 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -452,7 +452,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', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi', 'chi-prompt', 'velocity', 'prompt-nu-fission'} The type of multi-group cross section object to return Returns diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index ee5848c7c7..1933394048 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -10,11 +10,6 @@ import abc import numpy as np -# Require numpy to print output in scientific notation to 6 decimal places. -# This is needed to avoid round off error when large numbers are printed, -# which can cause tests to fail for different build configurations. -np.set_printoptions(formatter={'float': lambda x: format(x, '8.6E')}) - import openmc import openmc.checkvalue as cv from openmc.mgxs import EnergyGroups @@ -1162,6 +1157,9 @@ class MGXS(object): string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + # Generate the header for an individual XS + xs_header = '\tCross Sections [{0}]:'.format(self.get_units(xs_type)) + # If cross section data has not been computed, only print string header if self.tallies is None: print(string) @@ -1181,11 +1179,7 @@ class MGXS(object): string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) # Build header for cross section type - if xs_type == 'macro': - string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') - else: - string += '{0: <16}\n'.format('\tCross Sections [barns]:') - + string += '{0: <16}\n'.format(xs_header) template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' # Loop over energy groups ranges @@ -1544,6 +1538,31 @@ class MGXS(object): df.sort_values(by=[self.domain_type] + columns, inplace=True) return df + def get_units(self, xs_type='macro'): + r"""Returns the units of a MGXS. + + This method returns the units of a MGXS based on a desired xs_type. + + Parameters + ---------- + xs_type: {'macro', 'micro'} + Return the macro or micro cross section units. + Defaults to 'macro'. + + Returns + ------- + str + A string representing the units of the MGXS. + + """ + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + if xs_type == 'macro': + return 'cm^-1' + else: + return 'barns' + class MatrixMGXS(MGXS): """An abstract multi-group cross section for some energy group structure @@ -1892,6 +1911,9 @@ class MatrixMGXS(MGXS): string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + # Generate the header for an individual XS + xs_header = '\tCross Sections [{0}]:'.format(self.get_units(xs_type)) + # If cross section data has not been computed, only print string header if self.tallies is None: print(string) @@ -1920,11 +1942,7 @@ class MatrixMGXS(MGXS): string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) # Build header for cross section type - if xs_type == 'macro': - string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') - else: - string += '{0: <16}\n'.format('\tCross Sections [barns]:') - + string += '{0: <16}\n'.format(xs_header) template = '{0: <12}Group {1} -> Group {2}:\t\t' # Loop over incoming/outgoing energy groups ranges @@ -3737,6 +3755,9 @@ class ScatterMatrixXS(MatrixMGXS): string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + # Generate the header for an individual XS + xs_header = '\tCross Sections [{0}]:'.format(self.get_units(xs_type)) + # If cross section data has not been computed, only print string header if self.tallies is None: print(string) @@ -3765,11 +3786,7 @@ class ScatterMatrixXS(MatrixMGXS): string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) # Build header for cross section type - if xs_type == 'macro': - string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') - else: - string += '{0: <16}\n'.format('\tCross Sections [barns]:') - + string += '{0: <16}\n'.format(xs_header) template = '{0: <12}Group {1} -> Group {2}:\t\t' # Loop over incoming/outgoing energy groups ranges @@ -4409,7 +4426,7 @@ class Chi(MGXS): """ if not self.can_merge(other): - raise ValueError('Unable to merge Chi') + raise ValueError('Unable to merge a Chi MGXS') # Create deep copy of tally to return as merged tally merged_mgxs = copy.deepcopy(self) @@ -4428,7 +4445,7 @@ class Chi(MGXS): # The nuclides must be mutually exclusive for nuclide in self.nuclides: if nuclide in other.nuclides: - msg = 'Unable to merge Chi with shared nuclides' + msg = 'Unable to merge a Chi MGXS with shared nuclides' raise ValueError(msg) # Concatenate lists of nuclides for the merged MGXS @@ -4633,6 +4650,30 @@ class Chi(MGXS): return df + def get_units(self, xs_type='macro'): + r"""Returns the units of Chi. + + This method returns the units of Chi, which is "%" for both macro + and micro xs types. + + Parameters + ---------- + xs_type: {'macro', 'micro'} + Return the macro or micro cross section units. + Defaults to 'macro'. + + Returns + ------- + str + A string representing the units of Chi. + + """ + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Chi has the same units (%) for both macro and micro + return '%' + class ChiPrompt(Chi): r"""The prompt fission spectrum. @@ -4750,28 +4791,6 @@ class ChiPrompt(Chi): def scores(self): return ['prompt-nu-fission', 'prompt-nu-fission'] - def merge(self, other): - """Merge another ChiPrompt with this one - - If results have been loaded from a statepoint, then ChiPrompt are only - mergeable along one and only one of energy groups or nuclides. - - Parameters - ---------- - other : openmc.mgxs.MGXS - MGXS to merge with this one - - Returns - ------- - merged_mgxs : openmc.mgxs.MGXS - Merged MGXS - """ - - if not self.can_merge(other): - raise ValueError('Unable to merge ChiPrompt') - - return super(ChiPrompt, self).merge(other) - class Velocity(MGXS): r"""A velocity multi-group cross section. @@ -4908,88 +4927,31 @@ class Velocity(MGXS): return self._xs_tally - def print_xs(self, subdomains='all', nuclides='all'): - """Print a string representation for the multi-group cross section. + def get_units(self, xs_type='macro'): + r"""Returns the units of Velocity. + + This method returns the units of a Velocity based on a desired xs_type. Parameters ---------- - subdomains : Iterable of Integral or 'all' - The subdomain IDs of the cross sections to include in the report. - Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). - The special string 'all' will report the cross sections for all - nuclides in the spatial domain. The special string 'sum' will report - the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section units. + Defaults to 'macro'. + + Returns + ------- + str + A string representing the units of the Velocity. """ - # Construct a collection of the subdomains to report - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral) - elif self.domain_type == 'distribcell': - subdomains = np.arange(self.num_subdomains, dtype=np.int) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + if xs_type == 'macro': + return 'cm/second' else: - subdomains = [self.domain.id] - - # Construct a collection of the nuclides to report - if self.by_nuclide: - if nuclides == 'all': - nuclides = self.get_all_nuclides() - elif nuclides == 'sum': - nuclides = ['sum'] - else: - cv.check_iterable_type('nuclides', nuclides, basestring) - else: - nuclides = ['sum'] - - # Build header for string with type and domain info - string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) - - # If cross section data has not been computed, only print string header - if self.tallies is None: - print(string) - return - - # Loop over all subdomains - for subdomain in subdomains: - - if self.domain_type == 'distribcell': - string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - - # Loop over all Nuclides - for nuclide in nuclides: - - # Build header for nuclide type - if nuclide != 'sum': - string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) - - # Build header for cross section type - string += '{0: <16}\n'.format\ - ('\tVelocity [cm/second]:') - - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' - - # Loop over energy groups ranges - for group in range(1, self.num_groups+1): - bounds = self.energy_groups.get_group_bounds(group) - string += template.format('', group, bounds[0], bounds[1]) - average = self.get_xs([group], [subdomain], [nuclide], - xs_type='macro', value='mean') - rel_err = self.get_xs([group], [subdomain], [nuclide], - xs_type='macro', value='rel_err') - average = average.flatten()[0] - rel_err = rel_err.flatten()[0] * 100. - string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) - string += '\n' - string += '\n' - string += '\n' - - print(string) + raise ValueError('Unable to return the units of Velocity for ' + + 'xs_type other than "macro"') class PromptNuFissionXS(MGXS): diff --git a/src/tally.F90 b/src/tally.F90 index aa4da6b18a..d1aa36d46b 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -473,8 +473,8 @@ contains ! score the number of particles that were banked in the fission ! bank as prompt neutrons. Since this was weighted by 1/keff, we ! multiply by keff to get the proper score. - score = keff * p % wgt_bank * (1 - sum(p % n_delayed_bank) & - / p % n_bank) + score = keff * p % wgt_bank * (1.0 - sum(p % n_delayed_bank) & + / real(p % n_bank)) end if else diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 3dbb07d3c3..dc2a21f903 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 0.453624 0.021053 - material group in nuclide mean std. dev. -0 10000 1 total 0.400852 0.022858 - material group in nuclide mean std. dev. -0 10000 1 total 0.400852 0.022858 - material group in nuclide mean std. dev. -0 10000 1 total 0.064903 0.004313 - material group in nuclide mean std. dev. -0 10000 1 total 0.028048 0.00458 - material group in nuclide mean std. dev. -0 10000 1 total 0.036855 0.002622 - material group in nuclide mean std. dev. -0 10000 1 total 0.090649 0.00641 - material group in nuclide mean std. dev. -0 10000 1 total 7.137955 0.507364 - material group in nuclide mean std. dev. -0 10000 1 total 0.388721 0.01783 - material group in nuclide mean std. dev. -0 10000 1 total 0.389304 0.023076 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 0.389304 0.023146 -1 10000 1 1 total P1 0.046224 0.005907 -2 10000 1 1 total P2 0.017984 0.002883 -3 10000 1 1 total P3 0.006628 0.002457 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 0.389304 0.023146 -1 10000 1 1 total P1 0.046224 0.005907 -2 10000 1 1 total P2 0.017984 0.002883 -3 10000 1 1 total P3 0.006628 0.002457 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.0 0.066111 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 0.085835 0.005592 - material group out nuclide mean std. dev. -0 10000 1 total 1.0 0.046071 - material group out nuclide mean std. dev. -0 10000 1 total 0.991442 0.050935 - material group in nuclide mean std. dev. -0 10000 1 total 2.001309e+06 146216.555365 - material group in nuclide mean std. dev. -0 10000 1 total 0.090004 0.006367 - material group in nuclide mean std. dev. -0 10001 1 total 0.311594 0.013793 - material group in nuclide mean std. dev. -0 10001 1 total 0.279255 0.02919 - material group in nuclide mean std. dev. -0 10001 1 total 0.279255 0.02919 - material group in nuclide mean std. dev. -0 10001 1 total 0.00221 0.000286 - material group in nuclide mean std. dev. -0 10001 1 total 0.00221 0.000286 - material group in nuclide mean std. dev. -0 10001 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 10001 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 10001 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 10001 1 total 0.309384 0.013551 - material group in nuclide mean std. dev. -0 10001 1 total 0.307987 0.029308 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 0.307987 0.029308 -1 10001 1 1 total P1 0.030617 0.007464 -2 10001 1 1 total P2 0.018911 0.004323 -3 10001 1 1 total P3 0.006235 0.003338 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 0.307987 0.029308 -1 10001 1 1 total P1 0.030617 0.007464 -2 10001 1 1 total P2 0.018911 0.004323 -3 10001 1 1 total P3 0.006235 0.003338 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.0 0.095039 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.0 0.0 - material group out nuclide mean std. dev. -0 10001 1 total 0.0 0.0 - material group out nuclide mean std. dev. -0 10001 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 10001 1 total 1.833261e+06 166355.17452 - material group in nuclide mean std. dev. -0 10001 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 10002 1 total 0.904999 0.043964 - material group in nuclide mean std. dev. -0 10002 1 total 0.499184 0.040914 - material group in nuclide mean std. dev. -0 10002 1 total 0.499184 0.040914 - material group in nuclide mean std. dev. -0 10002 1 total 0.00606 0.000555 - material group in nuclide mean std. dev. -0 10002 1 total 0.00606 0.000555 - material group in nuclide mean std. dev. -0 10002 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 10002 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 10002 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 10002 1 total 0.898938 0.043493 - material group in nuclide mean std. dev. -0 10002 1 total 0.903415 0.043959 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 0.903415 0.043586 -1 10002 1 1 total P1 0.410417 0.015877 -2 10002 1 1 total P2 0.143301 0.007187 -3 10002 1 1 total P3 0.008739 0.003571 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 0.903415 0.043586 -1 10002 1 1 total P1 0.410417 0.015877 -2 10002 1 1 total P2 0.143301 0.007187 -3 10002 1 1 total P3 0.008739 0.003571 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.0 0.056867 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.0 0.0 - material group out nuclide mean std. dev. -0 10002 1 total 0.0 0.0 - material group out nuclide mean std. dev. -0 10002 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 10002 1 total 1.732200e+06 159691.42643 - material group in nuclide mean std. dev. -0 10002 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10000 1 total 4.536244E-01 2.105270E-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008522E-01 2.285755E-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008522E-01 2.285755E-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.490346E-02 4.312761E-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.804807E-02 4.579964E-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.685539E-02 2.622160E-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.064929E-02 6.409875E-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.137955E+00 5.073638E-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.887210E-01 1.783043E-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.893036E-01 2.307554E-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893036E-01 2.314560E-02 +1 10000 1 1 total P1 4.622442E-02 5.907170E-03 +2 10000 1 1 total P2 1.798359E-02 2.882972E-03 +3 10000 1 1 total P3 6.628374E-03 2.457109E-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893036E-01 2.314560E-02 +1 10000 1 1 total P1 4.622442E-02 5.907170E-03 +2 10000 1 1 total P2 1.798359E-02 2.882972E-03 +3 10000 1 1 total P3 6.628374E-03 2.457109E-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.000000E+00 6.611082E-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.583502E-02 5.591825E-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000E+00 4.607052E-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000E+00 5.147146E-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.001309E+06 1.462166E+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.000398E-02 6.366908E-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.115941E-01 1.379317E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792551E-01 2.918950E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792551E-01 2.918950E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846E-03 2.863341E-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846E-03 2.863341E-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.093843E-01 1.355127E-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.079873E-01 2.930809E-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873E-01 2.930809E-02 +1 10001 1 1 total P1 3.061715E-02 7.464456E-03 +2 10001 1 1 total P2 1.891149E-02 4.322828E-03 +3 10001 1 1 total P3 6.234618E-03 3.338202E-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873E-01 2.930809E-02 +1 10001 1 1 total P1 3.061715E-02 7.464456E-03 +2 10001 1 1 total P2 1.891149E-02 4.322828E-03 +3 10001 1 1 total P3 6.234618E-03 3.338202E-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.000000E+00 9.503872E-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.000000E+00 0.000000E+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000E+00 0.000000E+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.833261E+06 1.663552E+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.049988E-01 4.396449E-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991840E-01 4.091412E-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991840E-01 4.091412E-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341E-03 5.545244E-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341E-03 5.545244E-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.989385E-01 4.349298E-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.034147E-01 4.395874E-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034147E-01 4.358599E-02 +1 10002 1 1 total P1 4.104174E-01 1.587722E-02 +2 10002 1 1 total P2 1.433010E-01 7.187378E-03 +3 10002 1 1 total P3 8.739426E-03 3.571441E-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034147E-01 4.358599E-02 +1 10002 1 1 total P1 4.104174E-01 1.587722E-02 +2 10002 1 1 total P2 1.433010E-01 7.187378E-03 +3 10002 1 1 total P3 8.739426E-03 3.571441E-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.000000E+00 5.686673E-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.000000E+00 0.000000E+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000E+00 0.000000E+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.732200E+06 1.596914E+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000E+00 0.000000E+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index cfbbbce3c5..21525ea8f4 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.145934 0.553822 - 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.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.019762 0.010629 - 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.019762 0.010629 - 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 0.0 - 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 0.0 - 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 0.0 - 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 1.126172 0.54344 - 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 1.142547 0.570131 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 - 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 1.0 0.529717 - 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.0 0.0 - 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 0.0 - 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 0.0 - 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 774245.714482 416397.691599 - 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 0.0 + 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 1.145934E+00 5.538217E-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192E-01 5.206443E-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192E-01 5.206443E-01 + 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 1.976221E-02 1.062876E-02 + 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 1.976221E-02 1.062876E-02 + 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.000000E+00 0.000000E+00 + 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.000000E+00 0.000000E+00 + 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.000000E+00 0.000000E+00 + 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 1.126172E+00 5.434400E-01 + 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 1.142547E+00 5.701314E-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547E+00 5.701314E-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813E-01 2.163222E-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018E-01 6.650377E-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827E-02 2.462083E-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547E+00 5.701314E-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813E-01 2.163222E-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018E-01 6.650377E-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827E-02 2.462083E-02 + 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 1.000000E+00 5.297173E-01 + 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.000000E+00 0.000000E+00 + 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.000000E+00 0.000000E+00 + 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.000000E+00 0.000000E+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457E+05 4.163977E+05 + 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.000000E+00 0.000000E+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 0f83221597..59f3a2f348 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -64,8 +64,8 @@ domain=10000 type=chi [1.000000E+00 0.000000E+00] [4.607052E-02 0.000000E+00] domain=10000 type=chi-prompt -[9.914425E-01 0.000000E+00] -[5.093465E-02 0.000000E+00] +[1.000000E+00 0.000000E+00] +[5.147146E-02 0.000000E+00] domain=10000 type=velocity [1.751521E+07 3.501720E+05] [1.438175E+06 2.994593E+04] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 4d79dbbb3b..c375da69d9 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 0.414825 0.022793 -0 10000 2 total 0.660170 0.047519 - material group in nuclide mean std. dev. -1 10000 1 total 0.356860 0.025494 -0 10000 2 total 0.647648 0.023704 - material group in nuclide mean std. dev. -1 10000 1 total 0.356860 0.025494 -0 10000 2 total 0.647648 0.023704 - material group in nuclide mean std. dev. -1 10000 1 total 0.027408 0.002692 -0 10000 2 total 0.264511 0.023367 - material group in nuclide mean std. dev. -1 10000 1 total 0.019845 0.002643 -0 10000 2 total 0.071719 0.025208 - material group in nuclide mean std. dev. -1 10000 1 total 0.007563 0.000508 -0 10000 2 total 0.192791 0.017106 - material group in nuclide mean std. dev. -1 10000 1 total 0.019432 0.001323 -0 10000 2 total 0.469775 0.041682 - material group in nuclide mean std. dev. -1 10000 1 total 1.474570 0.099235 -0 10000 2 total 37.286896 3.308378 - material group in nuclide mean std. dev. -1 10000 1 total 0.387418 0.020626 -0 10000 2 total 0.395659 0.025125 - material group in nuclide mean std. dev. -1 10000 1 total 0.385188 0.026946 -0 10000 2 total 0.412389 0.015425 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 0.384199 0.027001 -13 10000 1 1 total P1 0.051870 0.006983 -14 10000 1 1 total P2 0.020069 0.002846 -15 10000 1 1 total P3 0.009478 0.002234 -8 10000 1 2 total P0 0.000989 0.000482 -9 10000 1 2 total P1 -0.000207 0.000149 -10 10000 1 2 total P2 -0.000103 0.000184 -11 10000 1 2 total P3 0.000234 0.000128 -4 10000 2 1 total P0 0.000925 0.000925 -5 10000 2 1 total P1 -0.000768 0.000768 -6 10000 2 1 total P2 0.000494 0.000494 -7 10000 2 1 total P3 -0.000171 0.000172 -0 10000 2 2 total P0 0.411465 0.015245 -1 10000 2 2 total P1 0.016482 0.004502 -2 10000 2 2 total P2 0.006371 0.010551 -3 10000 2 2 total P3 -0.010499 0.010438 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 0.384199 0.027001 -13 10000 1 1 total P1 0.051870 0.006983 -14 10000 1 1 total P2 0.020069 0.002846 -15 10000 1 1 total P3 0.009478 0.002234 -8 10000 1 2 total P0 0.000989 0.000482 -9 10000 1 2 total P1 -0.000207 0.000149 -10 10000 1 2 total P2 -0.000103 0.000184 -11 10000 1 2 total P3 0.000234 0.000128 -4 10000 2 1 total P0 0.000925 0.000925 -5 10000 2 1 total P1 -0.000768 0.000768 -6 10000 2 1 total P2 0.000494 0.000494 -7 10000 2 1 total P3 -0.000171 0.000172 -0 10000 2 2 total P0 0.411465 0.015245 -1 10000 2 2 total P1 0.016482 0.004502 -2 10000 2 2 total P2 0.006371 0.010551 -3 10000 2 2 total P3 -0.010499 0.010438 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.0 0.078516 -2 10000 1 2 total 1.0 0.687184 -1 10000 2 1 total 1.0 1.414214 -0 10000 2 2 total 1.0 0.041130 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 0.020142 0.003149 -2 10000 1 2 total 0.000000 0.000000 -1 10000 2 1 total 0.454366 0.027426 -0 10000 2 2 total 0.000000 0.000000 - material group out nuclide mean std. dev. -1 10000 1 total 1.0 0.046071 -0 10000 2 total 0.0 0.000000 - material group out nuclide mean std. dev. -1 10000 1 total 0.991442 0.050935 -0 10000 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10000 1 total 1.751521e+07 1.438175e+06 -0 10000 2 total 3.501720e+05 2.994593e+04 - material group in nuclide mean std. dev. -1 10000 1 total 0.019239 0.001310 -0 10000 2 total 0.466719 0.041411 - material group in nuclide mean std. dev. -1 10001 1 total 0.313738 0.015582 -0 10001 2 total 0.300821 0.028052 - material group in nuclide mean std. dev. -1 10001 1 total 0.273228 0.033115 -0 10001 2 total 0.312375 0.049606 - material group in nuclide mean std. dev. -1 10001 1 total 0.273228 0.033115 -0 10001 2 total 0.312375 0.049606 - material group in nuclide mean std. dev. -1 10001 1 total 0.001575 0.000323 -0 10001 2 total 0.005400 0.000618 - material group in nuclide mean std. dev. -1 10001 1 total 0.001575 0.000323 -0 10001 2 total 0.005400 0.000618 - material group in nuclide mean std. dev. -1 10001 1 total 0.0 0.0 -0 10001 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10001 1 total 0.0 0.0 -0 10001 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10001 1 total 0.0 0.0 -0 10001 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10001 1 total 0.312163 0.015322 -0 10001 2 total 0.295421 0.027445 - material group in nuclide mean std. dev. -1 10001 1 total 0.310121 0.033788 -0 10001 2 total 0.296264 0.043792 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 0.310121 0.033788 -13 10001 1 1 total P1 0.038230 0.008484 -14 10001 1 1 total P2 0.020745 0.004696 -15 10001 1 1 total P3 0.007964 0.003732 -8 10001 1 2 total P0 0.000000 0.000000 -9 10001 1 2 total P1 0.000000 0.000000 -10 10001 1 2 total P2 0.000000 0.000000 -11 10001 1 2 total P3 0.000000 0.000000 -4 10001 2 1 total P0 0.000000 0.000000 -5 10001 2 1 total P1 0.000000 0.000000 -6 10001 2 1 total P2 0.000000 0.000000 -7 10001 2 1 total P3 0.000000 0.000000 -0 10001 2 2 total P0 0.296264 0.043792 -1 10001 2 2 total P1 -0.011214 0.016180 -2 10001 2 2 total P2 0.008837 0.011504 -3 10001 2 2 total P3 -0.003270 0.007329 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 0.310121 0.033788 -13 10001 1 1 total P1 0.038230 0.008484 -14 10001 1 1 total P2 0.020745 0.004696 -15 10001 1 1 total P3 0.007964 0.003732 -8 10001 1 2 total P0 0.000000 0.000000 -9 10001 1 2 total P1 0.000000 0.000000 -10 10001 1 2 total P2 0.000000 0.000000 -11 10001 1 2 total P3 0.000000 0.000000 -4 10001 2 1 total P0 0.000000 0.000000 -5 10001 2 1 total P1 0.000000 0.000000 -6 10001 2 1 total P2 0.000000 0.000000 -7 10001 2 1 total P3 0.000000 0.000000 -0 10001 2 2 total P0 0.296264 0.043792 -1 10001 2 2 total P1 -0.011214 0.016180 -2 10001 2 2 total P2 0.008837 0.011504 -3 10001 2 2 total P3 -0.003270 0.007329 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.0 0.108779 -2 10001 1 2 total 0.0 0.000000 -1 10001 2 1 total 0.0 0.000000 -0 10001 2 2 total 1.0 0.142427 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.0 0.0 -2 10001 1 2 total 0.0 0.0 -1 10001 2 1 total 0.0 0.0 -0 10001 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 10001 1 total 0.0 0.0 -0 10001 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 10001 1 total 0.0 0.0 -0 10001 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10001 1 total 1.667784e+07 1.266444e+06 -0 10001 2 total 3.349534e+05 3.833678e+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.0 0.0 -0 10001 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10002 1 total 0.664572 0.031215 -0 10002 2 total 2.052384 0.224343 - material group in nuclide mean std. dev. -1 10002 1 total 0.290565 0.023852 -0 10002 2 total 1.516438 0.235197 - material group in nuclide mean std. dev. -1 10002 1 total 0.290565 0.023852 -0 10002 2 total 1.516438 0.235197 - material group in nuclide mean std. dev. -1 10002 1 total 0.000690 0.000044 -0 10002 2 total 0.031687 0.003747 - material group in nuclide mean std. dev. -1 10002 1 total 0.000690 0.000044 -0 10002 2 total 0.031687 0.003747 - material group in nuclide mean std. dev. -1 10002 1 total 0.0 0.0 -0 10002 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10002 1 total 0.0 0.0 -0 10002 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10002 1 total 0.0 0.0 -0 10002 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10002 1 total 0.663882 0.031173 -0 10002 2 total 2.020697 0.220604 - material group in nuclide mean std. dev. -1 10002 1 total 0.671269 0.026186 -0 10002 2 total 2.035388 0.258060 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 0.639901 0.024709 -13 10002 1 1 total P1 0.381167 0.016243 -14 10002 1 1 total P2 0.152392 0.008156 -15 10002 1 1 total P3 0.009148 0.003889 -8 10002 1 2 total P0 0.031368 0.001728 -9 10002 1 2 total P1 0.008758 0.000926 -10 10002 1 2 total P2 -0.002568 0.001014 -11 10002 1 2 total P3 -0.003785 0.000817 -4 10002 2 1 total P0 0.000443 0.000445 -5 10002 2 1 total P1 0.000400 0.000401 -6 10002 2 1 total P2 0.000320 0.000321 -7 10002 2 1 total P3 0.000214 0.000215 -0 10002 2 2 total P0 2.034945 0.257800 -1 10002 2 2 total P1 0.509941 0.051236 -2 10002 2 2 total P2 0.111175 0.013020 -3 10002 2 2 total P3 0.024988 0.008312 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 0.639901 0.024709 -13 10002 1 1 total P1 0.381167 0.016243 -14 10002 1 1 total P2 0.152392 0.008156 -15 10002 1 1 total P3 0.009148 0.003889 -8 10002 1 2 total P0 0.031368 0.001728 -9 10002 1 2 total P1 0.008758 0.000926 -10 10002 1 2 total P2 -0.002568 0.001014 -11 10002 1 2 total P3 -0.003785 0.000817 -4 10002 2 1 total P0 0.000443 0.000445 -5 10002 2 1 total P1 0.000400 0.000401 -6 10002 2 1 total P2 0.000320 0.000321 -7 10002 2 1 total P3 0.000214 0.000215 -0 10002 2 2 total P0 2.034945 0.257800 -1 10002 2 2 total P1 0.509941 0.051236 -2 10002 2 2 total P2 0.111175 0.013020 -3 10002 2 2 total P3 0.024988 0.008312 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.0 0.038609 -2 10002 1 2 total 1.0 0.067667 -1 10002 2 1 total 1.0 1.414214 -0 10002 2 2 total 1.0 0.135929 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.0 0.0 -2 10002 1 2 total 0.0 0.0 -1 10002 2 1 total 0.0 0.0 -0 10002 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 10002 1 total 0.0 0.0 -0 10002 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 10002 1 total 0.0 0.0 -0 10002 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10002 1 total 1.660556e+07 1.042436e+06 -0 10002 2 total 3.284120e+05 3.882844e+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.0 0.0 -0 10002 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 10000 1 total 4.148255E-01 2.279291E-02 +0 10000 2 total 6.601699E-01 4.751893E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596E-01 2.549360E-02 +0 10000 2 total 6.476477E-01 2.370374E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596E-01 2.549360E-02 +0 10000 2 total 6.476477E-01 2.370374E-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.740784E-02 2.692497E-03 +0 10000 2 total 2.645107E-01 2.336708E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.984455E-02 2.643304E-03 +0 10000 2 total 7.171935E-02 2.520786E-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.563295E-03 5.084837E-04 +0 10000 2 total 1.927914E-01 1.710592E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.943174E-02 1.322976E-03 +0 10000 2 total 4.697748E-01 4.168200E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.474570E+00 9.923532E-02 +0 10000 2 total 3.728690E+01 3.308378E+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.874176E-01 2.062573E-02 +0 10000 2 total 3.956592E-01 2.512506E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.851884E-01 2.694562E-02 +0 10000 2 total 4.123894E-01 1.542528E-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841995E-01 2.700101E-02 +13 10000 1 1 total P1 5.187028E-02 6.982549E-03 +14 10000 1 1 total P2 2.006885E-02 2.846495E-03 +15 10000 1 1 total P3 9.477716E-03 2.233520E-03 +8 10000 1 2 total P0 9.889304E-04 4.824194E-04 +9 10000 1 2 total P1 -2.072346E-04 1.490108E-04 +10 10000 1 2 total P2 -1.033662E-04 1.843163E-04 +11 10000 1 2 total P3 2.342906E-04 1.281731E-04 +4 10000 2 1 total P0 9.246399E-04 9.248835E-04 +5 10000 2 1 total P1 -7.677050E-04 7.679072E-04 +6 10000 2 1 total P2 4.937889E-04 4.939189E-04 +7 10000 2 1 total P3 -1.714972E-04 1.715424E-04 +0 10000 2 2 total P0 4.114648E-01 1.524494E-02 +1 10000 2 2 total P1 1.648173E-02 4.501728E-03 +2 10000 2 2 total P2 6.371490E-03 1.055075E-02 +3 10000 2 2 total P3 -1.049912E-02 1.043819E-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841995E-01 2.700101E-02 +13 10000 1 1 total P1 5.187028E-02 6.982549E-03 +14 10000 1 1 total P2 2.006885E-02 2.846495E-03 +15 10000 1 1 total P3 9.477716E-03 2.233520E-03 +8 10000 1 2 total P0 9.889304E-04 4.824194E-04 +9 10000 1 2 total P1 -2.072346E-04 1.490108E-04 +10 10000 1 2 total P2 -1.033662E-04 1.843163E-04 +11 10000 1 2 total P3 2.342906E-04 1.281731E-04 +4 10000 2 1 total P0 9.246399E-04 9.248835E-04 +5 10000 2 1 total P1 -7.677050E-04 7.679072E-04 +6 10000 2 1 total P2 4.937889E-04 4.939189E-04 +7 10000 2 1 total P3 -1.714972E-04 1.715424E-04 +0 10000 2 2 total P0 4.114648E-01 1.524494E-02 +1 10000 2 2 total P1 1.648173E-02 4.501728E-03 +2 10000 2 2 total P2 6.371490E-03 1.055075E-02 +3 10000 2 2 total P3 -1.049912E-02 1.043819E-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.000000E+00 7.851646E-02 +2 10000 1 2 total 1.000000E+00 6.871843E-01 +1 10000 2 1 total 1.000000E+00 1.414214E+00 +0 10000 2 2 total 1.000000E+00 4.113035E-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.014243E-02 3.149092E-03 +2 10000 1 2 total 0.000000E+00 0.000000E+00 +1 10000 2 1 total 4.543665E-01 2.742551E-02 +0 10000 2 2 total 0.000000E+00 0.000000E+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000E+00 4.607052E-02 +0 10000 2 total 0.000000E+00 0.000000E+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000E+00 5.147146E-02 +0 10000 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.751521E+07 1.438175E+06 +0 10000 2 total 3.501720E+05 2.994593E+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.923922E-02 1.309506E-03 +0 10000 2 total 4.667190E-01 4.141087E-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.137377E-01 1.558190E-02 +0 10001 2 total 3.008214E-01 2.805245E-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732279E-01 3.311537E-02 +0 10001 2 total 3.123748E-01 4.960583E-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732279E-01 3.311537E-02 +0 10001 2 total 3.123748E-01 4.960583E-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991E-03 3.225479E-04 +0 10001 2 total 5.400379E-03 6.181383E-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991E-03 3.225479E-04 +0 10001 2 total 5.400379E-03 6.181383E-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000E+00 0.000000E+00 +0 10001 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000E+00 0.000000E+00 +0 10001 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000E+00 0.000000E+00 +0 10001 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.121627E-01 1.532192E-02 +0 10001 2 total 2.954210E-01 2.744549E-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.101207E-01 3.378811E-02 +0 10001 2 total 2.962643E-01 4.379223E-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207E-01 3.378811E-02 +13 10001 1 1 total P1 3.822959E-02 8.483997E-03 +14 10001 1 1 total P2 2.074494E-02 4.695611E-03 +15 10001 1 1 total P3 7.964297E-03 3.731623E-03 +8 10001 1 2 total P0 0.000000E+00 0.000000E+00 +9 10001 1 2 total P1 0.000000E+00 0.000000E+00 +10 10001 1 2 total P2 0.000000E+00 0.000000E+00 +11 10001 1 2 total P3 0.000000E+00 0.000000E+00 +4 10001 2 1 total P0 0.000000E+00 0.000000E+00 +5 10001 2 1 total P1 0.000000E+00 0.000000E+00 +6 10001 2 1 total P2 0.000000E+00 0.000000E+00 +7 10001 2 1 total P3 0.000000E+00 0.000000E+00 +0 10001 2 2 total P0 2.962643E-01 4.379223E-02 +1 10001 2 2 total P1 -1.121364E-02 1.618037E-02 +2 10001 2 2 total P2 8.836566E-03 1.150396E-02 +3 10001 2 2 total P3 -3.270067E-03 7.328846E-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207E-01 3.378811E-02 +13 10001 1 1 total P1 3.822959E-02 8.483997E-03 +14 10001 1 1 total P2 2.074494E-02 4.695611E-03 +15 10001 1 1 total P3 7.964297E-03 3.731623E-03 +8 10001 1 2 total P0 0.000000E+00 0.000000E+00 +9 10001 1 2 total P1 0.000000E+00 0.000000E+00 +10 10001 1 2 total P2 0.000000E+00 0.000000E+00 +11 10001 1 2 total P3 0.000000E+00 0.000000E+00 +4 10001 2 1 total P0 0.000000E+00 0.000000E+00 +5 10001 2 1 total P1 0.000000E+00 0.000000E+00 +6 10001 2 1 total P2 0.000000E+00 0.000000E+00 +7 10001 2 1 total P3 0.000000E+00 0.000000E+00 +0 10001 2 2 total P0 2.962643E-01 4.379223E-02 +1 10001 2 2 total P1 -1.121364E-02 1.618037E-02 +2 10001 2 2 total P2 8.836566E-03 1.150396E-02 +3 10001 2 2 total P3 -3.270067E-03 7.328846E-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.000000E+00 1.087787E-01 +2 10001 1 2 total 0.000000E+00 0.000000E+00 +1 10001 2 1 total 0.000000E+00 0.000000E+00 +0 10001 2 2 total 1.000000E+00 1.424272E-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.000000E+00 0.000000E+00 +2 10001 1 2 total 0.000000E+00 0.000000E+00 +1 10001 2 1 total 0.000000E+00 0.000000E+00 +0 10001 2 2 total 0.000000E+00 0.000000E+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000E+00 0.000000E+00 +0 10001 2 total 0.000000E+00 0.000000E+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000E+00 0.000000E+00 +0 10001 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.667784E+07 1.266444E+06 +0 10001 2 total 3.349534E+05 3.833678E+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000E+00 0.000000E+00 +0 10001 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.645723E-01 3.121475E-02 +0 10002 2 total 2.052384E+00 2.243429E-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905653E-01 2.385185E-02 +0 10002 2 total 1.516438E+00 2.351973E-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905653E-01 2.385185E-02 +0 10002 2 total 1.516438E+00 2.351973E-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995E-04 4.414757E-05 +0 10002 2 total 3.168726E-02 3.746559E-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995E-04 4.414757E-05 +0 10002 2 total 3.168726E-02 3.746559E-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000E+00 0.000000E+00 +0 10002 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000E+00 0.000000E+00 +0 10002 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000E+00 0.000000E+00 +0 10002 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.638819E-01 3.117268E-02 +0 10002 2 total 2.020697E+00 2.206045E-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.712692E-01 2.618637E-02 +0 10002 2 total 2.035388E+00 2.580603E-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399015E-01 2.470912E-02 +13 10002 1 1 total P1 3.811674E-01 1.624326E-02 +14 10002 1 1 total P2 1.523919E-01 8.156278E-03 +15 10002 1 1 total P3 9.148022E-03 3.888562E-03 +8 10002 1 2 total P0 3.136772E-02 1.728113E-03 +9 10002 1 2 total P1 8.757723E-03 9.256705E-04 +10 10002 1 2 total P2 -2.567901E-03 1.013985E-03 +11 10002 1 2 total P3 -3.784803E-03 8.170756E-04 +4 10002 2 1 total P0 4.433431E-04 4.448504E-04 +5 10002 2 1 total P1 3.999604E-04 4.013202E-04 +6 10002 2 1 total P2 3.195627E-04 3.206491E-04 +7 10002 2 1 total P3 2.138470E-04 2.145740E-04 +0 10002 2 2 total P0 2.034945E+00 2.577999E-01 +1 10002 2 2 total P1 5.099405E-01 5.123591E-02 +2 10002 2 2 total P2 1.111746E-01 1.301982E-02 +3 10002 2 2 total P3 2.498844E-02 8.312353E-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399015E-01 2.470912E-02 +13 10002 1 1 total P1 3.811674E-01 1.624326E-02 +14 10002 1 1 total P2 1.523919E-01 8.156278E-03 +15 10002 1 1 total P3 9.148022E-03 3.888562E-03 +8 10002 1 2 total P0 3.136772E-02 1.728113E-03 +9 10002 1 2 total P1 8.757723E-03 9.256705E-04 +10 10002 1 2 total P2 -2.567901E-03 1.013985E-03 +11 10002 1 2 total P3 -3.784803E-03 8.170756E-04 +4 10002 2 1 total P0 4.433431E-04 4.448504E-04 +5 10002 2 1 total P1 3.999604E-04 4.013202E-04 +6 10002 2 1 total P2 3.195627E-04 3.206491E-04 +7 10002 2 1 total P3 2.138470E-04 2.145740E-04 +0 10002 2 2 total P0 2.034945E+00 2.577999E-01 +1 10002 2 2 total P1 5.099405E-01 5.123591E-02 +2 10002 2 2 total P2 1.111746E-01 1.301982E-02 +3 10002 2 2 total P3 2.498844E-02 8.312353E-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.000000E+00 3.860919E-02 +2 10002 1 2 total 1.000000E+00 6.766735E-02 +1 10002 2 1 total 1.000000E+00 1.414214E+00 +0 10002 2 2 total 1.000000E+00 1.359292E-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.000000E+00 0.000000E+00 +2 10002 1 2 total 0.000000E+00 0.000000E+00 +1 10002 2 1 total 0.000000E+00 0.000000E+00 +0 10002 2 2 total 0.000000E+00 0.000000E+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000E+00 0.000000E+00 +0 10002 2 total 0.000000E+00 0.000000E+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000E+00 0.000000E+00 +0 10002 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.660556E+07 1.042436E+06 +0 10002 2 total 3.284120E+05 3.882844E+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000E+00 0.000000E+00 +0 10002 2 total 0.000000E+00 0.000000E+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 3a61638ad4..12ffe40ee8 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -30bee5191524167000108e833ae21547c0f6e416ec9367e24c1d1acd6aceead74aef0a0a2aa2968ddb55ef8c19cf7012fb6a4047ffa8b51aa2c2b2f08ccc0ea0 \ No newline at end of file +07e9e894c9896879ff083e148a4a552b496802f7d88965e01eeb8b91d828bf740c17d2926d0fd0dcd457049b362ff10bec6cbe345ddcdf7d4695c0dc75fa7a78 \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index d360184045..a76260cbfd 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -9,6 +9,13 @@ import shutil import sys import numpy as np +import pandas as pd + +# Require numpy and pandas to print output in scientific notation to 6 decimal +# places. This is needed to avoid round off error when large numbers are +# printed, which can cause tests to fail for different build configurations. +np.set_printoptions(formatter={'float': lambda x: format(x, '8.6E')}) +pd.set_option('display.float_format', lambda x: '%8.6E' % x) sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From bc5efa71c77caafdd7ac0fb974dc20f6084549a7 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Sun, 10 Jul 2016 15:01:24 -0600 Subject: [PATCH 138/417] updated formatting for tally slice merge test --- tests/test_tally_slice_merge/test_tally_slice_merge.py | 9 +++------ 1 file changed, 3 insertions(+), 6 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 1472cc75a2..78ea4fe9d5 100644 --- a/tests/test_tally_slice_merge/test_tally_slice_merge.py +++ b/tests/test_tally_slice_merge/test_tally_slice_merge.py @@ -79,12 +79,9 @@ class TallySliceMergeTestHarness(PyAPITestHarness): mesh_tally = openmc.Tally(name='mesh tally') mesh_tally.estimator = 'tracklength' - mesh_tally.add_filter(mesh_filter) - mesh_tally.add_filter(merged_energies) - for score in self.scores: - mesh_tally.add_score(score) - for nuclide in self.nuclides: - mesh_tally.add_nuclide(nuclide) + mesh_tally.filters = [mesh_filter, merged_energies] + mesh_tally.scores = self.scores + mesh_tally.nuclides = self.nuclides # Add tallies to a Tallies object tallies_file = openmc.Tallies((tallies[0], distribcell_tally, From aa401eb9e342f25738d092493472a08a45e4a41f Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Sun, 10 Jul 2016 15:04:40 -0600 Subject: [PATCH 139/417] updated results for tallies test --- tests/test_tallies/results_true.dat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index e8283cb679..76ad489ca1 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -b1ef1648128580996df7ace74539e24d1183a0348f0fd9214f76ba495c00e0b54e22d16e4b146d02d152d67a19cd42fce2455384d39146f7fe8648d8f086e96d \ No newline at end of file +7d085e38f331083a8c3f7814eb6025f9457a1a8e3899e7d9a65af1ba92ea75c0182fcc605d4eadd3eb7edfc0949df688d39a3f45683e10cbdcfb6d7954f34129 \ No newline at end of file From 0c48aa18591d98cd7f058cd02064e197710db3f0 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 07:15:36 -0600 Subject: [PATCH 140/417] addressed PR comments --- openmc/mgxs/mgxs.py | 15 +++++---------- src/tally.F90 | 16 +++++++--------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 1933394048..e5be67fa54 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1539,9 +1539,7 @@ class MGXS(object): return df def get_units(self, xs_type='macro'): - r"""Returns the units of a MGXS. - - This method returns the units of a MGXS based on a desired xs_type. + """This method returns the units of a MGXS based on a desired xs_type. Parameters ---------- @@ -1558,10 +1556,7 @@ class MGXS(object): cv.check_value('xs_type', xs_type, ['macro', 'micro']) - if xs_type == 'macro': - return 'cm^-1' - else: - return 'barns' + return 'cm^-1' if xs_type == 'macro' else 'barns' class MatrixMGXS(MGXS): @@ -4651,7 +4646,7 @@ class Chi(MGXS): return df def get_units(self, xs_type='macro'): - r"""Returns the units of Chi. + """Returns the units of Chi. This method returns the units of Chi, which is "%" for both macro and micro xs types. @@ -4928,7 +4923,7 @@ class Velocity(MGXS): return self._xs_tally def get_units(self, xs_type='macro'): - r"""Returns the units of Velocity. + """Returns the units of Velocity. This method returns the units of a Velocity based on a desired xs_type. @@ -4950,7 +4945,7 @@ class Velocity(MGXS): if xs_type == 'macro': return 'cm/second' else: - raise ValueError('Unable to return the units of Velocity for ' + + raise ValueError('Unable to return the units of Velocity for ' 'xs_type other than "macro"') diff --git a/src/tally.F90 b/src/tally.F90 index d1aa36d46b..94143184ae 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -473,8 +473,8 @@ contains ! score the number of particles that were banked in the fission ! bank as prompt neutrons. Since this was weighted by 1/keff, we ! multiply by keff to get the proper score. - score = keff * p % wgt_bank * (1.0 - sum(p % n_delayed_bank) & - / real(p % n_bank)) + score = keff * p % wgt_bank * (ONE - sum(p % n_delayed_bank) & + / real(p % n_bank, 8)) end if else @@ -1627,19 +1627,19 @@ contains matching_bins(i) = binary_search(t % filters(i) % real_bins, n, E_out) ! Case for tallying prompt neutrons - if (score_bin == SCORE_NU_FISSION .OR. \ - (score_bin == SCORE_PROMPT_NU_FISSION .AND. g == 0)) then + if (score_bin == SCORE_NU_FISSION .or. & + (score_bin == SCORE_PROMPT_NU_FISSION .and. g == 0)) then ! determine scoring index i_filter = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! Add score to tally - !$omp atomic +!$omp atomic t % results(i_score, i_filter) % value = & t % results(i_score, i_filter) % value + score ! Case for tallying delayed emissions - else if (score_bin == SCORE_DELAYED_NU_FISSION .AND. g /= 0) then + else if (score_bin == SCORE_DELAYED_NU_FISSION .and. g /= 0) then ! Get the index of delayed group filter j = t % find_filter(FILTER_DELAYEDGROUP) @@ -1654,9 +1654,7 @@ contains ! check whether the delayed group of the particle is equal to the ! delayed group of this bin - if (d == g) then - call score_fission_delayed_dg(t, d_bin, score, i_score) - end if + if (d == g) call score_fission_delayed_dg(t, d_bin, score, i_score) end do ! if the delayed group filter is not present, add score to tally From 348503b55a4d83b09e21c138bb3553c5827eefe5 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 07:33:04 -0600 Subject: [PATCH 141/417] changed precision of test results from 6 to 12 digits --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 360 ++++++------ .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 3 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 274 ++++++---- tests/testing_harness.py | 4 +- 9 files changed, 806 insertions(+), 691 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index dc2a21f903..4056ff2b9e 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.536244E-01 2.105270E-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008522E-01 2.285755E-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008522E-01 2.285755E-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.490346E-02 4.312761E-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.804807E-02 4.579964E-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.685539E-02 2.622160E-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.064929E-02 6.409875E-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.137955E+00 5.073638E-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.887210E-01 1.783043E-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.893036E-01 2.307554E-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893036E-01 2.314560E-02 -1 10000 1 1 total P1 4.622442E-02 5.907170E-03 -2 10000 1 1 total P2 1.798359E-02 2.882972E-03 -3 10000 1 1 total P3 6.628374E-03 2.457109E-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893036E-01 2.314560E-02 -1 10000 1 1 total P1 4.622442E-02 5.907170E-03 -2 10000 1 1 total P2 1.798359E-02 2.882972E-03 -3 10000 1 1 total P3 6.628374E-03 2.457109E-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.000000E+00 6.611082E-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.583502E-02 5.591825E-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000E+00 4.607052E-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000E+00 5.147146E-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.001309E+06 1.462166E+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.000398E-02 6.366908E-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.115941E-01 1.379317E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792551E-01 2.918950E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792551E-01 2.918950E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846E-03 2.863341E-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846E-03 2.863341E-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.093843E-01 1.355127E-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.079873E-01 2.930809E-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873E-01 2.930809E-02 -1 10001 1 1 total P1 3.061715E-02 7.464456E-03 -2 10001 1 1 total P2 1.891149E-02 4.322828E-03 -3 10001 1 1 total P3 6.234618E-03 3.338202E-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873E-01 2.930809E-02 -1 10001 1 1 total P1 3.061715E-02 7.464456E-03 -2 10001 1 1 total P2 1.891149E-02 4.322828E-03 -3 10001 1 1 total P3 6.234618E-03 3.338202E-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.000000E+00 9.503872E-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.000000E+00 0.000000E+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000E+00 0.000000E+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.833261E+06 1.663552E+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.049988E-01 4.396449E-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991840E-01 4.091412E-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991840E-01 4.091412E-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341E-03 5.545244E-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341E-03 5.545244E-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.989385E-01 4.349298E-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.034147E-01 4.395874E-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034147E-01 4.358599E-02 -1 10002 1 1 total P1 4.104174E-01 1.587722E-02 -2 10002 1 1 total P2 1.433010E-01 7.187378E-03 -3 10002 1 1 total P3 8.739426E-03 3.571441E-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034147E-01 4.358599E-02 -1 10002 1 1 total P1 4.104174E-01 1.587722E-02 -2 10002 1 1 total P2 1.433010E-01 7.187378E-03 -3 10002 1 1 total P3 8.739426E-03 3.571441E-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.000000E+00 5.686673E-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.000000E+00 0.000000E+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000E+00 0.000000E+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.732200E+06 1.596914E+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.536244224711E-01 2.105269632534E-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008521778843E-01 2.285755400331E-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008521778843E-01 2.285755400331E-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.490345583241E-02 4.312761199548E-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.804806603393E-02 4.579963688736E-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.685538979848E-02 2.622159776243E-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.064928985756E-02 6.409874517029E-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.137955138087E+00 5.073638145538E-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.887209666387E-01 1.783042859910E-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.893035562819E-01 2.307553857261E-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893035562819E-01 2.314560462423E-02 +1 10000 1 1 total P1 4.622441783140E-02 5.907169556819E-03 +2 10000 1 1 total P2 1.798358502027E-02 2.882971981671E-03 +3 10000 1 1 total P3 6.628373513945E-03 2.457108983778E-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893035562819E-01 2.314560462423E-02 +1 10000 1 1 total P1 4.622441783140E-02 5.907169556819E-03 +2 10000 1 1 total P2 1.798358502027E-02 2.882971981671E-03 +3 10000 1 1 total P3 6.628373513945E-03 2.457108983778E-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.000000000000E+00 6.611082017312E-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.583501933699E-02 5.591824860711E-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000000000E+00 4.607052347202E-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000000000E+00 5.147145673440E-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.001308739748E+06 1.462165553647E+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.000397778775E-02 6.366907874267E-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.115941081024E-01 1.379316812822E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792550636912E-01 2.918950098026E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792550636912E-01 2.918950098026E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846401628E-03 2.863341266047E-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846401628E-03 2.863341266047E-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.093842617007E-01 1.355126749065E-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.079873494451E-01 2.930808850442E-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873494451E-01 2.930808850442E-02 +1 10001 1 1 total P1 3.061715325350E-02 7.464456011864E-03 +2 10001 1 1 total P2 1.891149040728E-02 4.322827732396E-03 +3 10001 1 1 total P3 6.234618187211E-03 3.338202280537E-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873494451E-01 2.930808850442E-02 +1 10001 1 1 total P1 3.061715325350E-02 7.464456011864E-03 +2 10001 1 1 total P2 1.891149040728E-02 4.322827732396E-03 +3 10001 1 1 total P3 6.234618187211E-03 3.338202280537E-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.000000000000E+00 9.503872150700E-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.000000000000E+00 0.000000000000E+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000000000E+00 0.000000000000E+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.833261152573E+06 1.663551745201E+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.049988333172E-01 4.396448759472E-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991839826996E-01 4.091411960472E-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991839826996E-01 4.091411960472E-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341157258E-03 5.545244242761E-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341157258E-03 5.545244242761E-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.989384921599E-01 4.349298417271E-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.034146631586E-01 4.395873707643E-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034146631586E-01 4.358599380352E-02 +1 10002 1 1 total P1 4.104174185899E-01 1.587722019436E-02 +2 10002 1 1 total P2 1.433010364745E-01 7.187377663475E-03 +3 10002 1 1 total P3 8.739426340561E-03 3.571441345040E-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034146631586E-01 4.358599380352E-02 +1 10002 1 1 total P1 4.104174185899E-01 1.587722019436E-02 +2 10002 1 1 total P2 1.433010364745E-01 7.187377663475E-03 +3 10002 1 1 total P3 8.739426340561E-03 3.571441345040E-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.000000000000E+00 5.686672530708E-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.000000000000E+00 0.000000000000E+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000000000E+00 0.000000000000E+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.732199699466E+06 1.596914264298E+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000000E+00 0.000000000000E+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 21525ea8f4..e7493f4d72 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.145934E+00 5.538217E-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192E-01 5.206443E-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192E-01 5.206443E-01 - 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 1.976221E-02 1.062876E-02 - 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 1.976221E-02 1.062876E-02 - 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.000000E+00 0.000000E+00 - 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.000000E+00 0.000000E+00 - 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.000000E+00 0.000000E+00 - 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 1.126172E+00 5.434400E-01 - 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 1.142547E+00 5.701314E-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547E+00 5.701314E-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813E-01 2.163222E-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018E-01 6.650377E-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827E-02 2.462083E-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547E+00 5.701314E-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813E-01 2.163222E-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018E-01 6.650377E-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827E-02 2.462083E-02 - 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 1.000000E+00 5.297173E-01 - 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.000000E+00 0.000000E+00 - 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.000000E+00 0.000000E+00 - 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.000000E+00 0.000000E+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457E+05 4.163977E+05 - 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.000000E+00 0.000000E+00 + 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 1.145934000527E+00 5.538216946848E-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191989776E-01 5.206442559331E-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191989776E-01 5.206442559331E-01 + 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 1.976220611460E-02 1.062876409255E-02 + 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 1.976220611460E-02 1.062876409255E-02 + 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.000000000000E+00 0.000000000000E+00 + 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.000000000000E+00 0.000000000000E+00 + 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.000000000000E+00 0.000000000000E+00 + 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 1.126171794412E+00 5.434400083985E-01 + 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 1.142546919110E+00 5.701313898558E-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919110E+00 5.701313898558E-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943346E-01 2.163221683070E-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934151E-01 6.650377258083E-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827041877E-02 2.462083232034E-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919110E+00 5.701313898558E-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943346E-01 2.163221683070E-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934151E-01 6.650377258083E-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827041877E-02 2.462083232034E-02 + 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 1.000000000000E+00 5.297173273743E-01 + 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.000000000000E+00 0.000000000000E+00 + 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.000000000000E+00 0.000000000000E+00 + 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.000000000000E+00 0.000000000000E+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457144820E+05 4.163976915995E+05 + 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.000000000000E+00 0.000000000000E+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 59f3a2f348..05ceb00eb0 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,270 @@ domain=10000 type=total -[4.148255E-01 6.601699E-01] -[2.279291E-02 4.751893E-02] +[4.148254902141E-01 6.601699186276E-01] +[2.279290909378E-02 4.751892790820E-02] domain=10000 type=transport -[3.568596E-01 6.476477E-01] -[2.549360E-02 2.370374E-02] +[3.568596371187E-01 6.476476600786E-01] +[2.549359557809E-02 2.370373520469E-02] domain=10000 type=nu-transport -[3.568596E-01 6.476477E-01] -[2.549360E-02 2.370374E-02] +[3.568596371187E-01 6.476476600786E-01] +[2.549359557809E-02 2.370373520469E-02] domain=10000 type=absorption -[2.740784E-02 2.645107E-01] -[2.692497E-03 2.336708E-02] +[2.740784492005E-02 2.645107416278E-01] +[2.692497109349E-03 2.336707739154E-02] domain=10000 type=capture -[1.984455E-02 7.171935E-02] -[2.643304E-03 2.520786E-02] +[1.984454994118E-02 7.171935292349E-02] +[2.643304328661E-03 2.520785935116E-02] domain=10000 type=fission -[7.563295E-03 1.927914E-01] -[5.084837E-04 1.710592E-02] +[7.563294978869E-03 1.927913887043E-01] +[5.084836779085E-04 1.710592186667E-02] domain=10000 type=nu-fission -[1.943174E-02 4.697748E-01] -[1.322976E-03 4.168200E-02] +[1.943174037197E-02 4.697747770257E-01] +[1.322975612220E-03 4.168199978316E-02] domain=10000 type=kappa-fission -[1.474570E+00 3.728690E+01] -[9.923532E-02 3.308378E+00] +[1.474569822554E+00 3.728689640721E+01] +[9.923532109630E-02 3.308377724530E+00] domain=10000 type=scatter -[3.874176E-01 3.956592E-01] -[2.062573E-02 2.512506E-02] +[3.874176452940E-01 3.956591769999E-01] +[2.062573210211E-02 2.512505678941E-02] domain=10000 type=nu-scatter -[3.851884E-01 4.123894E-01] -[2.694562E-02 1.542528E-02] +[3.851883882025E-01 4.123893993086E-01] +[2.694562106470E-02 1.542527695832E-02] domain=10000 type=scatter matrix -[[[3.841995E-01 5.187028E-02 2.006885E-02 9.477716E-03] - [9.889304E-04 -2.072346E-04 -1.033662E-04 2.342906E-04]] +[[[3.841994578091E-01 5.187028434601E-02 2.006884531999E-02 + 9.477715705594E-03] + [9.889303933311E-04 -2.072345964750E-04 -1.033661805408E-04 + 2.342906230372E-04]] - [[9.246399E-04 -7.677050E-04 4.937889E-04 -1.714972E-04] - [4.114648E-01 1.648173E-02 6.371490E-03 -1.049912E-02]]] -[[[2.700101E-02 6.982549E-03 2.846495E-03 2.233520E-03] - [4.824194E-04 1.490108E-04 1.843163E-04 1.281731E-04]] + [[9.246399087638E-04 -7.677049684393E-04 4.937888718438E-04 + -1.714972293226E-04] + [4.114647593999E-01 1.648172800670E-02 6.371490492824E-03 + -1.049912208975E-02]]] +[[[2.700101356101E-02 6.982548876132E-03 2.846495183290E-03 + 2.233519771809E-03] + [4.824194451197E-04 1.490107753617E-04 1.843163119237E-04 + 1.281731108336E-04]] - [[9.248835E-04 7.679072E-04 4.939189E-04 1.715424E-04] - [1.524494E-02 4.501728E-03 1.055075E-02 1.043819E-02]]] + [[9.248834636439E-04 7.679071858536E-04 4.939189383576E-04 + 1.715424025697E-04] + [1.524493539575E-02 4.501727960784E-03 1.055074934137E-02 + 1.043818771941E-02]]] domain=10000 type=nu-scatter matrix -[[[3.841995E-01 5.187028E-02 2.006885E-02 9.477716E-03] - [9.889304E-04 -2.072346E-04 -1.033662E-04 2.342906E-04]] +[[[3.841994578091E-01 5.187028434601E-02 2.006884531999E-02 + 9.477715705594E-03] + [9.889303933311E-04 -2.072345964750E-04 -1.033661805408E-04 + 2.342906230372E-04]] - [[9.246399E-04 -7.677050E-04 4.937889E-04 -1.714972E-04] - [4.114648E-01 1.648173E-02 6.371490E-03 -1.049912E-02]]] -[[[2.700101E-02 6.982549E-03 2.846495E-03 2.233520E-03] - [4.824194E-04 1.490108E-04 1.843163E-04 1.281731E-04]] + [[9.246399087638E-04 -7.677049684393E-04 4.937888718438E-04 + -1.714972293226E-04] + [4.114647593999E-01 1.648172800670E-02 6.371490492824E-03 + -1.049912208975E-02]]] +[[[2.700101356101E-02 6.982548876132E-03 2.846495183290E-03 + 2.233519771809E-03] + [4.824194451197E-04 1.490107753617E-04 1.843163119237E-04 + 1.281731108336E-04]] - [[9.248835E-04 7.679072E-04 4.939189E-04 1.715424E-04] - [1.524494E-02 4.501728E-03 1.055075E-02 1.043819E-02]]] + [[9.248834636439E-04 7.679071858536E-04 4.939189383576E-04 + 1.715424025697E-04] + [1.524493539575E-02 4.501727960784E-03 1.055074934137E-02 + 1.043818771941E-02]]] domain=10000 type=multiplicity matrix -[[1.000000E+00 1.000000E+00] - [1.000000E+00 1.000000E+00]] -[[7.851646E-02 6.871843E-01] - [1.414214E+00 4.113035E-02]] +[[1.000000000000E+00 1.000000000000E+00] + [1.000000000000E+00 1.000000000000E+00]] +[[7.851645500569E-02 6.871842709363E-01] + [1.414213562373E+00 4.113034880387E-02]] domain=10000 type=nu-fission matrix -[[2.014243E-02 0.000000E+00] - [4.543665E-01 0.000000E+00]] -[[3.149092E-03 0.000000E+00] - [2.742551E-02 0.000000E+00]] +[[2.014242816319E-02 0.000000000000E+00] + [4.543664665592E-01 0.000000000000E+00]] +[[3.149091676274E-03 0.000000000000E+00] + [2.742550692485E-02 0.000000000000E+00]] domain=10000 type=chi -[1.000000E+00 0.000000E+00] -[4.607052E-02 0.000000E+00] +[1.000000000000E+00 0.000000000000E+00] +[4.607052347202E-02 0.000000000000E+00] domain=10000 type=chi-prompt -[1.000000E+00 0.000000E+00] -[5.147146E-02 0.000000E+00] +[1.000000000000E+00 0.000000000000E+00] +[5.147145673440E-02 0.000000000000E+00] domain=10000 type=velocity -[1.751521E+07 3.501720E+05] -[1.438175E+06 2.994593E+04] +[1.751521062040E+07 3.501719951940E+05] +[1.438175273899E+06 2.994593169671E+04] domain=10000 type=prompt-nu-fission -[1.923922E-02 4.667190E-01] -[1.309506E-03 4.141087E-02] +[1.923922154603E-02 4.667190273544E-01] +[1.309505950104E-03 4.141087039944E-02] domain=10001 type=total -[3.137377E-01 3.008214E-01] -[1.558190E-02 2.805245E-02] +[3.137376709068E-01 3.008214016985E-01] +[1.558190235534E-02 2.805244843117E-02] domain=10001 type=transport -[2.732279E-01 3.123748E-01] -[3.311537E-02 4.960583E-02] +[2.732278720196E-01 3.123748362176E-01] +[3.311536644329E-02 4.960583170525E-02] domain=10001 type=nu-transport -[2.732279E-01 3.123748E-01] -[3.311537E-02 4.960583E-02] +[2.732278720196E-01 3.123748362176E-01] +[3.311536644329E-02 4.960583170525E-02] domain=10001 type=absorption -[1.574991E-03 5.400379E-03] -[3.225479E-04 6.181383E-04] +[1.574991390450E-03 5.400378832161E-03] +[3.225478906976E-04 6.181383082294E-04] domain=10001 type=capture -[1.574991E-03 5.400379E-03] -[3.225479E-04 6.181383E-04] +[1.574991390450E-03 5.400378832161E-03] +[3.225478906976E-04 6.181383082294E-04] domain=10001 type=fission -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10001 type=nu-fission -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10001 type=kappa-fission -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10001 type=scatter -[3.121627E-01 2.954210E-01] -[1.532192E-02 2.744549E-02] +[3.121626795163E-01 2.954210228664E-01] +[1.532192309182E-02 2.744548888604E-02] domain=10001 type=nu-scatter -[3.101207E-01 2.962643E-01] -[3.378811E-02 4.379223E-02] +[3.101207350756E-01 2.962642700008E-01] +[3.378810612250E-02 4.379222573274E-02] domain=10001 type=scatter matrix -[[[3.101207E-01 3.822959E-02 2.074494E-02 7.964297E-03] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] +[[[3.101207350756E-01 3.822959036236E-02 2.074494196965E-02 + 7.964296771745E-03] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [2.962643E-01 -1.121364E-02 8.836566E-03 -3.270067E-03]]] -[[[3.378811E-02 8.483997E-03 4.695611E-03 3.731623E-03] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [2.962642700008E-01 -1.121363613411E-02 8.836566298044E-03 + -3.270067308815E-03]]] +[[[3.378810612250E-02 8.483997103450E-03 4.695610677417E-03 + 3.731622609987E-03] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [4.379223E-02 1.618037E-02 1.150396E-02 7.328846E-03]]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [4.379222573274E-02 1.618036648860E-02 1.150396445878E-02 + 7.328845801518E-03]]] domain=10001 type=nu-scatter matrix -[[[3.101207E-01 3.822959E-02 2.074494E-02 7.964297E-03] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] +[[[3.101207350756E-01 3.822959036236E-02 2.074494196965E-02 + 7.964296771745E-03] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [2.962643E-01 -1.121364E-02 8.836566E-03 -3.270067E-03]]] -[[[3.378811E-02 8.483997E-03 4.695611E-03 3.731623E-03] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [2.962642700008E-01 -1.121363613411E-02 8.836566298044E-03 + -3.270067308815E-03]]] +[[[3.378810612250E-02 8.483997103450E-03 4.695610677417E-03 + 3.731622609987E-03] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [4.379223E-02 1.618037E-02 1.150396E-02 7.328846E-03]]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [4.379222573274E-02 1.618036648860E-02 1.150396445878E-02 + 7.328845801518E-03]]] domain=10001 type=multiplicity matrix -[[1.000000E+00 0.000000E+00] - [0.000000E+00 1.000000E+00]] -[[1.087787E-01 0.000000E+00] - [0.000000E+00 1.424272E-01]] +[[1.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 1.000000000000E+00]] +[[1.087786967284E-01 0.000000000000E+00] + [0.000000000000E+00 1.424271730547E-01]] domain=10001 type=nu-fission matrix -[[0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00]] -[[0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00]] +[[0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00]] +[[0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00]] domain=10001 type=chi -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10001 type=chi-prompt -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10001 type=velocity -[1.667784E+07 3.349534E+05] -[1.266444E+06 3.833678E+04] +[1.667783949737E+07 3.349533676013E+05] +[1.266444309518E+06 3.833678162570E+04] domain=10001 type=prompt-nu-fission -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10002 type=total -[6.645723E-01 2.052384E+00] -[3.121475E-02 2.243429E-01] +[6.645722606166E-01 2.052384013809E+00] +[3.121475191267E-02 2.243429067056E-01] domain=10002 type=transport -[2.905653E-01 1.516438E+00] -[2.385185E-02 2.351973E-01] +[2.905652574249E-01 1.516438012755E+00] +[2.385185464365E-02 2.351972685044E-01] domain=10002 type=nu-transport -[2.905653E-01 1.516438E+00] -[2.385185E-02 2.351973E-01] +[2.905652574249E-01 1.516438012755E+00] +[2.385185464365E-02 2.351972685044E-01] domain=10002 type=absorption -[6.903995E-04 3.168726E-02] -[4.414757E-05 3.746559E-03] +[6.903995221868E-04 3.168725661415E-02] +[4.414756870586E-05 3.746558582378E-03] domain=10002 type=capture -[6.903995E-04 3.168726E-02] -[4.414757E-05 3.746559E-03] +[6.903995221868E-04 3.168725661415E-02] +[4.414756870586E-05 3.746558582378E-03] domain=10002 type=fission -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10002 type=nu-fission -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10002 type=kappa-fission -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10002 type=scatter -[6.638819E-01 2.020697E+00] -[3.117268E-02 2.206045E-01] +[6.638818610944E-01 2.020696757195E+00] +[3.117268400461E-02 2.206044538568E-01] domain=10002 type=nu-scatter -[6.712692E-01 2.035388E+00] -[2.618637E-02 2.580603E-01] +[6.712692047144E-01 2.035388328756E+00] +[2.618637116860E-02 2.580603285630E-01] domain=10002 type=scatter matrix -[[[6.399015E-01 3.811674E-01 1.523919E-01 9.148022E-03] - [3.136772E-02 8.757723E-03 -2.567901E-03 -3.784803E-03]] +[[[6.399014848679E-01 3.811674488646E-01 1.523918978052E-01 + 9.148022288467E-03] + [3.136771984647E-02 8.757723206121E-03 -2.567901059674E-03 + -3.784802881872E-03]] - [[4.433431E-04 3.999604E-04 3.195627E-04 2.138470E-04] - [2.034945E+00 5.099405E-01 1.111746E-01 2.498844E-02]]] -[[[2.470912E-02 1.624326E-02 8.156278E-03 3.888562E-03] - [1.728113E-03 9.256705E-04 1.013985E-03 8.170756E-04]] + [[4.433431341224E-04 3.999604142604E-04 3.195627072398E-04 + 2.138469692300E-04] + [2.034944985622E+00 5.099405131606E-01 1.111746088043E-01 + 2.498843573936E-02]]] +[[[2.470912279767E-02 1.624326492127E-02 8.156277703362E-03 + 3.888562141639E-03] + [1.728112903279E-03 9.256705011983E-04 1.013984752076E-03 + 8.170755708523E-04]] - [[4.448504E-04 4.013202E-04 3.206491E-04 2.145740E-04] - [2.577999E-01 5.123591E-02 1.301982E-02 8.312353E-03]]] + [[4.448503933306E-04 4.013201827353E-04 3.206491429959E-04 + 2.145739970978E-04] + [2.577998889237E-01 5.123590629710E-02 1.301981703882E-02 + 8.312352562357E-03]]] domain=10002 type=nu-scatter matrix -[[[6.399015E-01 3.811674E-01 1.523919E-01 9.148022E-03] - [3.136772E-02 8.757723E-03 -2.567901E-03 -3.784803E-03]] +[[[6.399014848679E-01 3.811674488646E-01 1.523918978052E-01 + 9.148022288467E-03] + [3.136771984647E-02 8.757723206121E-03 -2.567901059674E-03 + -3.784802881872E-03]] - [[4.433431E-04 3.999604E-04 3.195627E-04 2.138470E-04] - [2.034945E+00 5.099405E-01 1.111746E-01 2.498844E-02]]] -[[[2.470912E-02 1.624326E-02 8.156278E-03 3.888562E-03] - [1.728113E-03 9.256705E-04 1.013985E-03 8.170756E-04]] + [[4.433431341224E-04 3.999604142604E-04 3.195627072398E-04 + 2.138469692300E-04] + [2.034944985622E+00 5.099405131606E-01 1.111746088043E-01 + 2.498843573936E-02]]] +[[[2.470912279767E-02 1.624326492127E-02 8.156277703362E-03 + 3.888562141639E-03] + [1.728112903279E-03 9.256705011983E-04 1.013984752076E-03 + 8.170755708523E-04]] - [[4.448504E-04 4.013202E-04 3.206491E-04 2.145740E-04] - [2.577999E-01 5.123591E-02 1.301982E-02 8.312353E-03]]] + [[4.448503933306E-04 4.013201827353E-04 3.206491429959E-04 + 2.145739970978E-04] + [2.577998889237E-01 5.123590629710E-02 1.301981703882E-02 + 8.312352562357E-03]]] domain=10002 type=multiplicity matrix -[[1.000000E+00 1.000000E+00] - [1.000000E+00 1.000000E+00]] -[[3.860919E-02 6.766735E-02] - [1.414214E+00 1.359292E-01]] +[[1.000000000000E+00 1.000000000000E+00] + [1.000000000000E+00 1.000000000000E+00]] +[[3.860919083686E-02 6.766734799959E-02] + [1.414213562373E+00 1.359292066059E-01]] domain=10002 type=nu-fission matrix -[[0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00]] -[[0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00]] +[[0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00]] +[[0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00]] domain=10002 type=chi -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10002 type=chi-prompt -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] domain=10002 type=velocity -[1.660556E+07 3.284120E+05] -[1.042436E+06 3.882844E+04] +[1.660556287323E+07 3.284120386500E+05] +[1.042435523742E+06 3.882843572985E+04] domain=10002 type=prompt-nu-fission -[0.000000E+00 0.000000E+00] -[0.000000E+00 0.000000E+00] +[0.000000000000E+00 0.000000000000E+00] +[0.000000000000E+00 0.000000000000E+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index c375da69d9..453219e04b 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.148255E-01 2.279291E-02 -0 10000 2 total 6.601699E-01 4.751893E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596E-01 2.549360E-02 -0 10000 2 total 6.476477E-01 2.370374E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596E-01 2.549360E-02 -0 10000 2 total 6.476477E-01 2.370374E-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.740784E-02 2.692497E-03 -0 10000 2 total 2.645107E-01 2.336708E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.984455E-02 2.643304E-03 -0 10000 2 total 7.171935E-02 2.520786E-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.563295E-03 5.084837E-04 -0 10000 2 total 1.927914E-01 1.710592E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.943174E-02 1.322976E-03 -0 10000 2 total 4.697748E-01 4.168200E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.474570E+00 9.923532E-02 -0 10000 2 total 3.728690E+01 3.308378E+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.874176E-01 2.062573E-02 -0 10000 2 total 3.956592E-01 2.512506E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.851884E-01 2.694562E-02 -0 10000 2 total 4.123894E-01 1.542528E-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841995E-01 2.700101E-02 -13 10000 1 1 total P1 5.187028E-02 6.982549E-03 -14 10000 1 1 total P2 2.006885E-02 2.846495E-03 -15 10000 1 1 total P3 9.477716E-03 2.233520E-03 -8 10000 1 2 total P0 9.889304E-04 4.824194E-04 -9 10000 1 2 total P1 -2.072346E-04 1.490108E-04 -10 10000 1 2 total P2 -1.033662E-04 1.843163E-04 -11 10000 1 2 total P3 2.342906E-04 1.281731E-04 -4 10000 2 1 total P0 9.246399E-04 9.248835E-04 -5 10000 2 1 total P1 -7.677050E-04 7.679072E-04 -6 10000 2 1 total P2 4.937889E-04 4.939189E-04 -7 10000 2 1 total P3 -1.714972E-04 1.715424E-04 -0 10000 2 2 total P0 4.114648E-01 1.524494E-02 -1 10000 2 2 total P1 1.648173E-02 4.501728E-03 -2 10000 2 2 total P2 6.371490E-03 1.055075E-02 -3 10000 2 2 total P3 -1.049912E-02 1.043819E-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841995E-01 2.700101E-02 -13 10000 1 1 total P1 5.187028E-02 6.982549E-03 -14 10000 1 1 total P2 2.006885E-02 2.846495E-03 -15 10000 1 1 total P3 9.477716E-03 2.233520E-03 -8 10000 1 2 total P0 9.889304E-04 4.824194E-04 -9 10000 1 2 total P1 -2.072346E-04 1.490108E-04 -10 10000 1 2 total P2 -1.033662E-04 1.843163E-04 -11 10000 1 2 total P3 2.342906E-04 1.281731E-04 -4 10000 2 1 total P0 9.246399E-04 9.248835E-04 -5 10000 2 1 total P1 -7.677050E-04 7.679072E-04 -6 10000 2 1 total P2 4.937889E-04 4.939189E-04 -7 10000 2 1 total P3 -1.714972E-04 1.715424E-04 -0 10000 2 2 total P0 4.114648E-01 1.524494E-02 -1 10000 2 2 total P1 1.648173E-02 4.501728E-03 -2 10000 2 2 total P2 6.371490E-03 1.055075E-02 -3 10000 2 2 total P3 -1.049912E-02 1.043819E-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.000000E+00 7.851646E-02 -2 10000 1 2 total 1.000000E+00 6.871843E-01 -1 10000 2 1 total 1.000000E+00 1.414214E+00 -0 10000 2 2 total 1.000000E+00 4.113035E-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.014243E-02 3.149092E-03 -2 10000 1 2 total 0.000000E+00 0.000000E+00 -1 10000 2 1 total 4.543665E-01 2.742551E-02 -0 10000 2 2 total 0.000000E+00 0.000000E+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000E+00 4.607052E-02 -0 10000 2 total 0.000000E+00 0.000000E+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000E+00 5.147146E-02 -0 10000 2 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.751521E+07 1.438175E+06 -0 10000 2 total 3.501720E+05 2.994593E+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.923922E-02 1.309506E-03 -0 10000 2 total 4.667190E-01 4.141087E-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.137377E-01 1.558190E-02 -0 10001 2 total 3.008214E-01 2.805245E-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732279E-01 3.311537E-02 -0 10001 2 total 3.123748E-01 4.960583E-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732279E-01 3.311537E-02 -0 10001 2 total 3.123748E-01 4.960583E-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991E-03 3.225479E-04 -0 10001 2 total 5.400379E-03 6.181383E-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991E-03 3.225479E-04 -0 10001 2 total 5.400379E-03 6.181383E-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000E+00 0.000000E+00 -0 10001 2 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000E+00 0.000000E+00 -0 10001 2 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000E+00 0.000000E+00 -0 10001 2 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.121627E-01 1.532192E-02 -0 10001 2 total 2.954210E-01 2.744549E-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.101207E-01 3.378811E-02 -0 10001 2 total 2.962643E-01 4.379223E-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207E-01 3.378811E-02 -13 10001 1 1 total P1 3.822959E-02 8.483997E-03 -14 10001 1 1 total P2 2.074494E-02 4.695611E-03 -15 10001 1 1 total P3 7.964297E-03 3.731623E-03 -8 10001 1 2 total P0 0.000000E+00 0.000000E+00 -9 10001 1 2 total P1 0.000000E+00 0.000000E+00 -10 10001 1 2 total P2 0.000000E+00 0.000000E+00 -11 10001 1 2 total P3 0.000000E+00 0.000000E+00 -4 10001 2 1 total P0 0.000000E+00 0.000000E+00 -5 10001 2 1 total P1 0.000000E+00 0.000000E+00 -6 10001 2 1 total P2 0.000000E+00 0.000000E+00 -7 10001 2 1 total P3 0.000000E+00 0.000000E+00 -0 10001 2 2 total P0 2.962643E-01 4.379223E-02 -1 10001 2 2 total P1 -1.121364E-02 1.618037E-02 -2 10001 2 2 total P2 8.836566E-03 1.150396E-02 -3 10001 2 2 total P3 -3.270067E-03 7.328846E-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207E-01 3.378811E-02 -13 10001 1 1 total P1 3.822959E-02 8.483997E-03 -14 10001 1 1 total P2 2.074494E-02 4.695611E-03 -15 10001 1 1 total P3 7.964297E-03 3.731623E-03 -8 10001 1 2 total P0 0.000000E+00 0.000000E+00 -9 10001 1 2 total P1 0.000000E+00 0.000000E+00 -10 10001 1 2 total P2 0.000000E+00 0.000000E+00 -11 10001 1 2 total P3 0.000000E+00 0.000000E+00 -4 10001 2 1 total P0 0.000000E+00 0.000000E+00 -5 10001 2 1 total P1 0.000000E+00 0.000000E+00 -6 10001 2 1 total P2 0.000000E+00 0.000000E+00 -7 10001 2 1 total P3 0.000000E+00 0.000000E+00 -0 10001 2 2 total P0 2.962643E-01 4.379223E-02 -1 10001 2 2 total P1 -1.121364E-02 1.618037E-02 -2 10001 2 2 total P2 8.836566E-03 1.150396E-02 -3 10001 2 2 total P3 -3.270067E-03 7.328846E-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.000000E+00 1.087787E-01 -2 10001 1 2 total 0.000000E+00 0.000000E+00 -1 10001 2 1 total 0.000000E+00 0.000000E+00 -0 10001 2 2 total 1.000000E+00 1.424272E-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.000000E+00 0.000000E+00 -2 10001 1 2 total 0.000000E+00 0.000000E+00 -1 10001 2 1 total 0.000000E+00 0.000000E+00 -0 10001 2 2 total 0.000000E+00 0.000000E+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000E+00 0.000000E+00 -0 10001 2 total 0.000000E+00 0.000000E+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000E+00 0.000000E+00 -0 10001 2 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.667784E+07 1.266444E+06 -0 10001 2 total 3.349534E+05 3.833678E+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000E+00 0.000000E+00 -0 10001 2 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.645723E-01 3.121475E-02 -0 10002 2 total 2.052384E+00 2.243429E-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905653E-01 2.385185E-02 -0 10002 2 total 1.516438E+00 2.351973E-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905653E-01 2.385185E-02 -0 10002 2 total 1.516438E+00 2.351973E-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995E-04 4.414757E-05 -0 10002 2 total 3.168726E-02 3.746559E-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995E-04 4.414757E-05 -0 10002 2 total 3.168726E-02 3.746559E-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000E+00 0.000000E+00 -0 10002 2 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000E+00 0.000000E+00 -0 10002 2 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000E+00 0.000000E+00 -0 10002 2 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.638819E-01 3.117268E-02 -0 10002 2 total 2.020697E+00 2.206045E-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.712692E-01 2.618637E-02 -0 10002 2 total 2.035388E+00 2.580603E-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399015E-01 2.470912E-02 -13 10002 1 1 total P1 3.811674E-01 1.624326E-02 -14 10002 1 1 total P2 1.523919E-01 8.156278E-03 -15 10002 1 1 total P3 9.148022E-03 3.888562E-03 -8 10002 1 2 total P0 3.136772E-02 1.728113E-03 -9 10002 1 2 total P1 8.757723E-03 9.256705E-04 -10 10002 1 2 total P2 -2.567901E-03 1.013985E-03 -11 10002 1 2 total P3 -3.784803E-03 8.170756E-04 -4 10002 2 1 total P0 4.433431E-04 4.448504E-04 -5 10002 2 1 total P1 3.999604E-04 4.013202E-04 -6 10002 2 1 total P2 3.195627E-04 3.206491E-04 -7 10002 2 1 total P3 2.138470E-04 2.145740E-04 -0 10002 2 2 total P0 2.034945E+00 2.577999E-01 -1 10002 2 2 total P1 5.099405E-01 5.123591E-02 -2 10002 2 2 total P2 1.111746E-01 1.301982E-02 -3 10002 2 2 total P3 2.498844E-02 8.312353E-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399015E-01 2.470912E-02 -13 10002 1 1 total P1 3.811674E-01 1.624326E-02 -14 10002 1 1 total P2 1.523919E-01 8.156278E-03 -15 10002 1 1 total P3 9.148022E-03 3.888562E-03 -8 10002 1 2 total P0 3.136772E-02 1.728113E-03 -9 10002 1 2 total P1 8.757723E-03 9.256705E-04 -10 10002 1 2 total P2 -2.567901E-03 1.013985E-03 -11 10002 1 2 total P3 -3.784803E-03 8.170756E-04 -4 10002 2 1 total P0 4.433431E-04 4.448504E-04 -5 10002 2 1 total P1 3.999604E-04 4.013202E-04 -6 10002 2 1 total P2 3.195627E-04 3.206491E-04 -7 10002 2 1 total P3 2.138470E-04 2.145740E-04 -0 10002 2 2 total P0 2.034945E+00 2.577999E-01 -1 10002 2 2 total P1 5.099405E-01 5.123591E-02 -2 10002 2 2 total P2 1.111746E-01 1.301982E-02 -3 10002 2 2 total P3 2.498844E-02 8.312353E-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.000000E+00 3.860919E-02 -2 10002 1 2 total 1.000000E+00 6.766735E-02 -1 10002 2 1 total 1.000000E+00 1.414214E+00 -0 10002 2 2 total 1.000000E+00 1.359292E-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.000000E+00 0.000000E+00 -2 10002 1 2 total 0.000000E+00 0.000000E+00 -1 10002 2 1 total 0.000000E+00 0.000000E+00 -0 10002 2 2 total 0.000000E+00 0.000000E+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000E+00 0.000000E+00 -0 10002 2 total 0.000000E+00 0.000000E+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000E+00 0.000000E+00 -0 10002 2 total 0.000000E+00 0.000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.660556E+07 1.042436E+06 -0 10002 2 total 3.284120E+05 3.882844E+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000E+00 0.000000E+00 -0 10002 2 total 0.000000E+00 0.000000E+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.148254902141E-01 2.279290909378E-02 +0 10000 2 total 6.601699186276E-01 4.751892790820E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596371187E-01 2.549359557809E-02 +0 10000 2 total 6.476476600786E-01 2.370373520469E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596371187E-01 2.549359557809E-02 +0 10000 2 total 6.476476600786E-01 2.370373520469E-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.740784492005E-02 2.692497109349E-03 +0 10000 2 total 2.645107416278E-01 2.336707739154E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.984454994118E-02 2.643304328661E-03 +0 10000 2 total 7.171935292349E-02 2.520785935116E-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.563294978869E-03 5.084836779085E-04 +0 10000 2 total 1.927913887043E-01 1.710592186667E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.943174037197E-02 1.322975612220E-03 +0 10000 2 total 4.697747770257E-01 4.168199978316E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.474569822554E+00 9.923532109630E-02 +0 10000 2 total 3.728689640721E+01 3.308377724530E+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.874176452940E-01 2.062573210211E-02 +0 10000 2 total 3.956591769999E-01 2.512505678941E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.851883882025E-01 2.694562106470E-02 +0 10000 2 total 4.123893993086E-01 1.542527695832E-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841994578091E-01 2.700101356101E-02 +13 10000 1 1 total P1 5.187028434601E-02 6.982548876132E-03 +14 10000 1 1 total P2 2.006884531999E-02 2.846495183290E-03 +15 10000 1 1 total P3 9.477715705594E-03 2.233519771809E-03 +8 10000 1 2 total P0 9.889303933311E-04 4.824194451197E-04 +9 10000 1 2 total P1 -2.072345964750E-04 1.490107753617E-04 +10 10000 1 2 total P2 -1.033661805408E-04 1.843163119237E-04 +11 10000 1 2 total P3 2.342906230372E-04 1.281731108336E-04 +4 10000 2 1 total P0 9.246399087638E-04 9.248834636439E-04 +5 10000 2 1 total P1 -7.677049684393E-04 7.679071858536E-04 +6 10000 2 1 total P2 4.937888718438E-04 4.939189383576E-04 +7 10000 2 1 total P3 -1.714972293226E-04 1.715424025697E-04 +0 10000 2 2 total P0 4.114647593999E-01 1.524493539575E-02 +1 10000 2 2 total P1 1.648172800670E-02 4.501727960784E-03 +2 10000 2 2 total P2 6.371490492824E-03 1.055074934137E-02 +3 10000 2 2 total P3 -1.049912208975E-02 1.043818771941E-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841994578091E-01 2.700101356101E-02 +13 10000 1 1 total P1 5.187028434601E-02 6.982548876132E-03 +14 10000 1 1 total P2 2.006884531999E-02 2.846495183290E-03 +15 10000 1 1 total P3 9.477715705594E-03 2.233519771809E-03 +8 10000 1 2 total P0 9.889303933311E-04 4.824194451197E-04 +9 10000 1 2 total P1 -2.072345964750E-04 1.490107753617E-04 +10 10000 1 2 total P2 -1.033661805408E-04 1.843163119237E-04 +11 10000 1 2 total P3 2.342906230372E-04 1.281731108336E-04 +4 10000 2 1 total P0 9.246399087638E-04 9.248834636439E-04 +5 10000 2 1 total P1 -7.677049684393E-04 7.679071858536E-04 +6 10000 2 1 total P2 4.937888718438E-04 4.939189383576E-04 +7 10000 2 1 total P3 -1.714972293226E-04 1.715424025697E-04 +0 10000 2 2 total P0 4.114647593999E-01 1.524493539575E-02 +1 10000 2 2 total P1 1.648172800670E-02 4.501727960784E-03 +2 10000 2 2 total P2 6.371490492824E-03 1.055074934137E-02 +3 10000 2 2 total P3 -1.049912208975E-02 1.043818771941E-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.000000000000E+00 7.851645500569E-02 +2 10000 1 2 total 1.000000000000E+00 6.871842709363E-01 +1 10000 2 1 total 1.000000000000E+00 1.414213562373E+00 +0 10000 2 2 total 1.000000000000E+00 4.113034880387E-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.014242816319E-02 3.149091676274E-03 +2 10000 1 2 total 0.000000000000E+00 0.000000000000E+00 +1 10000 2 1 total 4.543664665592E-01 2.742550692485E-02 +0 10000 2 2 total 0.000000000000E+00 0.000000000000E+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000000000E+00 4.607052347202E-02 +0 10000 2 total 0.000000000000E+00 0.000000000000E+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000000000E+00 5.147145673440E-02 +0 10000 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.751521062040E+07 1.438175273899E+06 +0 10000 2 total 3.501719951940E+05 2.994593169671E+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.923922154603E-02 1.309505950104E-03 +0 10000 2 total 4.667190273544E-01 4.141087039944E-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.137376709068E-01 1.558190235534E-02 +0 10001 2 total 3.008214016985E-01 2.805244843117E-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732278720196E-01 3.311536644329E-02 +0 10001 2 total 3.123748362176E-01 4.960583170525E-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732278720196E-01 3.311536644329E-02 +0 10001 2 total 3.123748362176E-01 4.960583170525E-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991390450E-03 3.225478906976E-04 +0 10001 2 total 5.400378832161E-03 6.181383082294E-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991390450E-03 3.225478906976E-04 +0 10001 2 total 5.400378832161E-03 6.181383082294E-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000000E+00 0.000000000000E+00 +0 10001 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000000E+00 0.000000000000E+00 +0 10001 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000000E+00 0.000000000000E+00 +0 10001 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.121626795163E-01 1.532192309182E-02 +0 10001 2 total 2.954210228664E-01 2.744548888604E-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.101207350756E-01 3.378810612250E-02 +0 10001 2 total 2.962642700008E-01 4.379222573274E-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207350756E-01 3.378810612250E-02 +13 10001 1 1 total P1 3.822959036236E-02 8.483997103450E-03 +14 10001 1 1 total P2 2.074494196965E-02 4.695610677417E-03 +15 10001 1 1 total P3 7.964296771745E-03 3.731622609987E-03 +8 10001 1 2 total P0 0.000000000000E+00 0.000000000000E+00 +9 10001 1 2 total P1 0.000000000000E+00 0.000000000000E+00 +10 10001 1 2 total P2 0.000000000000E+00 0.000000000000E+00 +11 10001 1 2 total P3 0.000000000000E+00 0.000000000000E+00 +4 10001 2 1 total P0 0.000000000000E+00 0.000000000000E+00 +5 10001 2 1 total P1 0.000000000000E+00 0.000000000000E+00 +6 10001 2 1 total P2 0.000000000000E+00 0.000000000000E+00 +7 10001 2 1 total P3 0.000000000000E+00 0.000000000000E+00 +0 10001 2 2 total P0 2.962642700008E-01 4.379222573274E-02 +1 10001 2 2 total P1 -1.121363613411E-02 1.618036648860E-02 +2 10001 2 2 total P2 8.836566298044E-03 1.150396445878E-02 +3 10001 2 2 total P3 -3.270067308815E-03 7.328845801518E-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207350756E-01 3.378810612250E-02 +13 10001 1 1 total P1 3.822959036236E-02 8.483997103450E-03 +14 10001 1 1 total P2 2.074494196965E-02 4.695610677417E-03 +15 10001 1 1 total P3 7.964296771745E-03 3.731622609987E-03 +8 10001 1 2 total P0 0.000000000000E+00 0.000000000000E+00 +9 10001 1 2 total P1 0.000000000000E+00 0.000000000000E+00 +10 10001 1 2 total P2 0.000000000000E+00 0.000000000000E+00 +11 10001 1 2 total P3 0.000000000000E+00 0.000000000000E+00 +4 10001 2 1 total P0 0.000000000000E+00 0.000000000000E+00 +5 10001 2 1 total P1 0.000000000000E+00 0.000000000000E+00 +6 10001 2 1 total P2 0.000000000000E+00 0.000000000000E+00 +7 10001 2 1 total P3 0.000000000000E+00 0.000000000000E+00 +0 10001 2 2 total P0 2.962642700008E-01 4.379222573274E-02 +1 10001 2 2 total P1 -1.121363613411E-02 1.618036648860E-02 +2 10001 2 2 total P2 8.836566298044E-03 1.150396445878E-02 +3 10001 2 2 total P3 -3.270067308815E-03 7.328845801518E-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.000000000000E+00 1.087786967284E-01 +2 10001 1 2 total 0.000000000000E+00 0.000000000000E+00 +1 10001 2 1 total 0.000000000000E+00 0.000000000000E+00 +0 10001 2 2 total 1.000000000000E+00 1.424271730547E-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.000000000000E+00 0.000000000000E+00 +2 10001 1 2 total 0.000000000000E+00 0.000000000000E+00 +1 10001 2 1 total 0.000000000000E+00 0.000000000000E+00 +0 10001 2 2 total 0.000000000000E+00 0.000000000000E+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000000000E+00 0.000000000000E+00 +0 10001 2 total 0.000000000000E+00 0.000000000000E+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000000000E+00 0.000000000000E+00 +0 10001 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.667783949737E+07 1.266444309518E+06 +0 10001 2 total 3.349533676013E+05 3.833678162570E+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000000E+00 0.000000000000E+00 +0 10001 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.645722606166E-01 3.121475191267E-02 +0 10002 2 total 2.052384013809E+00 2.243429067056E-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905652574249E-01 2.385185464365E-02 +0 10002 2 total 1.516438012755E+00 2.351972685044E-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905652574249E-01 2.385185464365E-02 +0 10002 2 total 1.516438012755E+00 2.351972685044E-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995221868E-04 4.414756870586E-05 +0 10002 2 total 3.168725661415E-02 3.746558582378E-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995221868E-04 4.414756870586E-05 +0 10002 2 total 3.168725661415E-02 3.746558582378E-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000000E+00 0.000000000000E+00 +0 10002 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000000E+00 0.000000000000E+00 +0 10002 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000000E+00 0.000000000000E+00 +0 10002 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.638818610944E-01 3.117268400461E-02 +0 10002 2 total 2.020696757195E+00 2.206044538568E-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.712692047144E-01 2.618637116860E-02 +0 10002 2 total 2.035388328756E+00 2.580603285630E-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399014848679E-01 2.470912279767E-02 +13 10002 1 1 total P1 3.811674488646E-01 1.624326492127E-02 +14 10002 1 1 total P2 1.523918978052E-01 8.156277703362E-03 +15 10002 1 1 total P3 9.148022288467E-03 3.888562141639E-03 +8 10002 1 2 total P0 3.136771984647E-02 1.728112903279E-03 +9 10002 1 2 total P1 8.757723206121E-03 9.256705011983E-04 +10 10002 1 2 total P2 -2.567901059674E-03 1.013984752076E-03 +11 10002 1 2 total P3 -3.784802881872E-03 8.170755708523E-04 +4 10002 2 1 total P0 4.433431341224E-04 4.448503933306E-04 +5 10002 2 1 total P1 3.999604142604E-04 4.013201827353E-04 +6 10002 2 1 total P2 3.195627072398E-04 3.206491429959E-04 +7 10002 2 1 total P3 2.138469692300E-04 2.145739970978E-04 +0 10002 2 2 total P0 2.034944985622E+00 2.577998889237E-01 +1 10002 2 2 total P1 5.099405131606E-01 5.123590629710E-02 +2 10002 2 2 total P2 1.111746088043E-01 1.301981703882E-02 +3 10002 2 2 total P3 2.498843573936E-02 8.312352562357E-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399014848679E-01 2.470912279767E-02 +13 10002 1 1 total P1 3.811674488646E-01 1.624326492127E-02 +14 10002 1 1 total P2 1.523918978052E-01 8.156277703362E-03 +15 10002 1 1 total P3 9.148022288467E-03 3.888562141639E-03 +8 10002 1 2 total P0 3.136771984647E-02 1.728112903279E-03 +9 10002 1 2 total P1 8.757723206121E-03 9.256705011983E-04 +10 10002 1 2 total P2 -2.567901059674E-03 1.013984752076E-03 +11 10002 1 2 total P3 -3.784802881872E-03 8.170755708523E-04 +4 10002 2 1 total P0 4.433431341224E-04 4.448503933306E-04 +5 10002 2 1 total P1 3.999604142604E-04 4.013201827353E-04 +6 10002 2 1 total P2 3.195627072398E-04 3.206491429959E-04 +7 10002 2 1 total P3 2.138469692300E-04 2.145739970978E-04 +0 10002 2 2 total P0 2.034944985622E+00 2.577998889237E-01 +1 10002 2 2 total P1 5.099405131606E-01 5.123590629710E-02 +2 10002 2 2 total P2 1.111746088043E-01 1.301981703882E-02 +3 10002 2 2 total P3 2.498843573936E-02 8.312352562357E-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.000000000000E+00 3.860919083686E-02 +2 10002 1 2 total 1.000000000000E+00 6.766734799959E-02 +1 10002 2 1 total 1.000000000000E+00 1.414213562373E+00 +0 10002 2 2 total 1.000000000000E+00 1.359292066059E-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.000000000000E+00 0.000000000000E+00 +2 10002 1 2 total 0.000000000000E+00 0.000000000000E+00 +1 10002 2 1 total 0.000000000000E+00 0.000000000000E+00 +0 10002 2 2 total 0.000000000000E+00 0.000000000000E+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000000000E+00 0.000000000000E+00 +0 10002 2 total 0.000000000000E+00 0.000000000000E+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000000000E+00 0.000000000000E+00 +0 10002 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.660556287323E+07 1.042435523742E+06 +0 10002 2 total 3.284120386500E+05 3.882843572985E+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000000E+00 0.000000000000E+00 +0 10002 2 total 0.000000000000E+00 0.000000000000E+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 12ffe40ee8..9df9332537 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -07e9e894c9896879ff083e148a4a552b496802f7d88965e01eeb8b91d828bf740c17d2926d0fd0dcd457049b362ff10bec6cbe345ddcdf7d4695c0dc75fa7a78 \ No newline at end of file +77126dd5397ab86f69cbcd5d34949f5f4c1c3e270a7443b86655ec1dfc2db66056f731e4cc09a59bb01d74e17881165005c5ec0bf7b2ce953e39ef9aa336e0e8 \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 133140999c..acdfcbc628 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,8 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.000000E+02 0.000000E+00 7.000000E+02 8.000000E+02] + Temperature = [5.000000000000E+02 0.000000000000E+00 7.000000000000E+02 + 8.000000000000E+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 365f1d775e..c42584db17 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -d5c21b44afd44a6e2be483090db0e2525d7d7cdbee1c02bee43621f1889193cc4712d74e28b3961a9ea9be093b33b56633046749a70f40c68982d6ca653d4cc1 \ No newline at end of file +dd7f3e79b255e4bdb9112cb06bb222d8489c597d48dbb310dd05a9f28ed451ade5d4ab65fe6b2ef5b1212d31b3e1942582cd32a3027a05515cc7317a496476bd \ 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 0f72dafa3c..67da96b247 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,200 @@ -[[[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] +[[[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] ..., - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]]][[[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]]][[[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] ..., - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]]][[[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]]][[[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] ..., - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00]]][[[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + 0.000000000000E+00]]][[[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] ..., - [[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]]][[[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]]][[[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] ..., - [[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]] + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] - [[0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00] - [0.000000E+00 0.000000E+00 0.000000E+00]]] \ No newline at end of file + [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] + [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index a76260cbfd..097b2e01f7 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -14,8 +14,8 @@ import pandas as pd # Require numpy and pandas to print output in scientific notation to 6 decimal # places. This is needed to avoid round off error when large numbers are # printed, which can cause tests to fail for different build configurations. -np.set_printoptions(formatter={'float': lambda x: format(x, '8.6E')}) -pd.set_option('display.float_format', lambda x: '%8.6E' % x) +np.set_printoptions(formatter={'float': lambda x: format(x, '14.12E')}) +pd.set_option('display.float_format', lambda x: '%14.12E' % x) sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From 7e3a8ba44ebb3938d03faad87848c71123f73f59 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 08:10:11 -0600 Subject: [PATCH 142/417] simplified testing_harness.py lines on setting output precision and updated tests --- .../results_true.dat | 252 ++++----- tests/test_mgxs_library_hdf5/results_true.dat | 368 ++++++------- .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 3 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 274 ++++------ tests/testing_harness.py | 11 +- 8 files changed, 661 insertions(+), 767 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 4056ff2b9e..4f40b6b593 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.536244224711E-01 2.105269632534E-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008521778843E-01 2.285755400331E-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008521778843E-01 2.285755400331E-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.490345583241E-02 4.312761199548E-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.804806603393E-02 4.579963688736E-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.685538979848E-02 2.622159776243E-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.064928985756E-02 6.409874517029E-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.137955138087E+00 5.073638145538E-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.887209666387E-01 1.783042859910E-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.893035562819E-01 2.307553857261E-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893035562819E-01 2.314560462423E-02 -1 10000 1 1 total P1 4.622441783140E-02 5.907169556819E-03 -2 10000 1 1 total P2 1.798358502027E-02 2.882971981671E-03 -3 10000 1 1 total P3 6.628373513945E-03 2.457108983778E-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893035562819E-01 2.314560462423E-02 -1 10000 1 1 total P1 4.622441783140E-02 5.907169556819E-03 -2 10000 1 1 total P2 1.798358502027E-02 2.882971981671E-03 -3 10000 1 1 total P3 6.628373513945E-03 2.457108983778E-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.000000000000E+00 6.611082017312E-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.583501933699E-02 5.591824860711E-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000000000E+00 4.607052347202E-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000000000E+00 5.147145673440E-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.001308739748E+06 1.462165553647E+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.000397778775E-02 6.366907874267E-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.115941081024E-01 1.379316812822E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792550636912E-01 2.918950098026E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792550636912E-01 2.918950098026E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846401628E-03 2.863341266047E-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846401628E-03 2.863341266047E-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.093842617007E-01 1.355126749065E-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.079873494451E-01 2.930808850442E-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873494451E-01 2.930808850442E-02 -1 10001 1 1 total P1 3.061715325350E-02 7.464456011864E-03 -2 10001 1 1 total P2 1.891149040728E-02 4.322827732396E-03 -3 10001 1 1 total P3 6.234618187211E-03 3.338202280537E-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873494451E-01 2.930808850442E-02 -1 10001 1 1 total P1 3.061715325350E-02 7.464456011864E-03 -2 10001 1 1 total P2 1.891149040728E-02 4.322827732396E-03 -3 10001 1 1 total P3 6.234618187211E-03 3.338202280537E-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.000000000000E+00 9.503872150700E-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.000000000000E+00 0.000000000000E+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000000000E+00 0.000000000000E+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.833261152573E+06 1.663551745201E+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.049988333172E-01 4.396448759472E-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991839826996E-01 4.091411960472E-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991839826996E-01 4.091411960472E-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341157258E-03 5.545244242761E-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341157258E-03 5.545244242761E-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.989384921599E-01 4.349298417271E-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.034146631586E-01 4.395873707643E-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034146631586E-01 4.358599380352E-02 -1 10002 1 1 total P1 4.104174185899E-01 1.587722019436E-02 -2 10002 1 1 total P2 1.433010364745E-01 7.187377663475E-03 -3 10002 1 1 total P3 8.739426340561E-03 3.571441345040E-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034146631586E-01 4.358599380352E-02 -1 10002 1 1 total P1 4.104174185899E-01 1.587722019436E-02 -2 10002 1 1 total P2 1.433010364745E-01 7.187377663475E-03 -3 10002 1 1 total P3 8.739426340561E-03 3.571441345040E-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.000000000000E+00 5.686672530708E-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.000000000000E+00 0.000000000000E+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000000000E+00 0.000000000000E+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.732199699466E+06 1.596914264298E+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.53624422471e-01 2.10526963253e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.00852177884e-01 2.28575540033e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.00852177884e-01 2.28575540033e-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.49034558324e-02 4.31276119955e-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.80480660339e-02 4.57996368874e-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.68553897985e-02 2.62215977624e-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.06492898576e-02 6.40987451703e-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.13795513809e+00 5.07363814554e-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.88720966639e-01 1.78304285991e-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.89303556282e-01 2.30755385726e-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.89303556282e-01 2.31456046242e-02 +1 10000 1 1 total P1 4.62244178314e-02 5.90716955682e-03 +2 10000 1 1 total P2 1.79835850203e-02 2.88297198167e-03 +3 10000 1 1 total P3 6.62837351395e-03 2.45710898378e-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.89303556282e-01 2.31456046242e-02 +1 10000 1 1 total P1 4.62244178314e-02 5.90716955682e-03 +2 10000 1 1 total P2 1.79835850203e-02 2.88297198167e-03 +3 10000 1 1 total P3 6.62837351395e-03 2.45710898378e-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.00000000000e+00 6.61108201731e-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.58350193370e-02 5.59182486071e-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.00000000000e+00 4.60705234720e-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.00000000000e+00 5.14714567344e-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.00130873975e+06 1.46216555365e+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.00039777878e-02 6.36690787427e-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.11594108102e-01 1.37931681282e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.79255063691e-01 2.91895009803e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.79255063691e-01 2.91895009803e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.20984640163e-03 2.86334126605e-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.20984640163e-03 2.86334126605e-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.09384261701e-01 1.35512674907e-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.07987349445e-01 2.93080885044e-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.07987349445e-01 2.93080885044e-02 +1 10001 1 1 total P1 3.06171532535e-02 7.46445601186e-03 +2 10001 1 1 total P2 1.89114904073e-02 4.32282773240e-03 +3 10001 1 1 total P3 6.23461818721e-03 3.33820228054e-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.07987349445e-01 2.93080885044e-02 +1 10001 1 1 total P1 3.06171532535e-02 7.46445601186e-03 +2 10001 1 1 total P2 1.89114904073e-02 4.32282773240e-03 +3 10001 1 1 total P3 6.23461818721e-03 3.33820228054e-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.00000000000e+00 9.50387215070e-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.83326115257e+06 1.66355174520e+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.04998833317e-01 4.39644875947e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.99183982700e-01 4.09141196047e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.99183982700e-01 4.09141196047e-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.06034115726e-03 5.54524424276e-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.06034115726e-03 5.54524424276e-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.98938492160e-01 4.34929841727e-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.03414663159e-01 4.39587370764e-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.03414663159e-01 4.35859938035e-02 +1 10002 1 1 total P1 4.10417418590e-01 1.58772201944e-02 +2 10002 1 1 total P2 1.43301036475e-01 7.18737766348e-03 +3 10002 1 1 total P3 8.73942634056e-03 3.57144134504e-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.03414663159e-01 4.35859938035e-02 +1 10002 1 1 total P1 4.10417418590e-01 1.58772201944e-02 +2 10002 1 1 total P2 1.43301036475e-01 7.18737766348e-03 +3 10002 1 1 total P3 8.73942634056e-03 3.57144134504e-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.00000000000e+00 5.68667253071e-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.73219969947e+06 1.59691426430e+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 05ceb00eb0..8c98999bd1 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,270 +1,230 @@ domain=10000 type=total -[4.148254902141E-01 6.601699186276E-01] -[2.279290909378E-02 4.751892790820E-02] +[4.14825490214e-01 6.60169918628e-01] +[2.27929090938e-02 4.75189279082e-02] domain=10000 type=transport -[3.568596371187E-01 6.476476600786E-01] -[2.549359557809E-02 2.370373520469E-02] +[3.56859637119e-01 6.47647660079e-01] +[2.54935955781e-02 2.37037352047e-02] domain=10000 type=nu-transport -[3.568596371187E-01 6.476476600786E-01] -[2.549359557809E-02 2.370373520469E-02] +[3.56859637119e-01 6.47647660079e-01] +[2.54935955781e-02 2.37037352047e-02] domain=10000 type=absorption -[2.740784492005E-02 2.645107416278E-01] -[2.692497109349E-03 2.336707739154E-02] +[2.74078449200e-02 2.64510741628e-01] +[2.69249710935e-03 2.33670773915e-02] domain=10000 type=capture -[1.984454994118E-02 7.171935292349E-02] -[2.643304328661E-03 2.520785935116E-02] +[1.98445499412e-02 7.17193529235e-02] +[2.64330432866e-03 2.52078593512e-02] domain=10000 type=fission -[7.563294978869E-03 1.927913887043E-01] -[5.084836779085E-04 1.710592186667E-02] +[7.56329497887e-03 1.92791388704e-01] +[5.08483677908e-04 1.71059218667e-02] domain=10000 type=nu-fission -[1.943174037197E-02 4.697747770257E-01] -[1.322975612220E-03 4.168199978316E-02] +[1.94317403720e-02 4.69774777026e-01] +[1.32297561222e-03 4.16819997832e-02] domain=10000 type=kappa-fission -[1.474569822554E+00 3.728689640721E+01] -[9.923532109630E-02 3.308377724530E+00] +[1.47456982255e+00 3.72868964072e+01] +[9.92353210963e-02 3.30837772453e+00] domain=10000 type=scatter -[3.874176452940E-01 3.956591769999E-01] -[2.062573210211E-02 2.512505678941E-02] +[3.87417645294e-01 3.95659177000e-01] +[2.06257321021e-02 2.51250567894e-02] domain=10000 type=nu-scatter -[3.851883882025E-01 4.123893993086E-01] -[2.694562106470E-02 1.542527695832E-02] +[3.85188388202e-01 4.12389399309e-01] +[2.69456210647e-02 1.54252769583e-02] domain=10000 type=scatter matrix -[[[3.841994578091E-01 5.187028434601E-02 2.006884531999E-02 - 9.477715705594E-03] - [9.889303933311E-04 -2.072345964750E-04 -1.033661805408E-04 - 2.342906230372E-04]] +[[[3.84199457809e-01 5.18702843460e-02 2.00688453200e-02 9.47771570559e-03] + [9.88930393331e-04 -2.07234596475e-04 -1.03366180541e-04 + 2.34290623037e-04]] - [[9.246399087638E-04 -7.677049684393E-04 4.937888718438E-04 - -1.714972293226E-04] - [4.114647593999E-01 1.648172800670E-02 6.371490492824E-03 - -1.049912208975E-02]]] -[[[2.700101356101E-02 6.982548876132E-03 2.846495183290E-03 - 2.233519771809E-03] - [4.824194451197E-04 1.490107753617E-04 1.843163119237E-04 - 1.281731108336E-04]] + [[9.24639908764e-04 -7.67704968439e-04 4.93788871844e-04 + -1.71497229323e-04] + [4.11464759400e-01 1.64817280067e-02 6.37149049282e-03 -1.04991220898e-02]]] +[[[2.70010135610e-02 6.98254887613e-03 2.84649518329e-03 2.23351977181e-03] + [4.82419445120e-04 1.49010775362e-04 1.84316311924e-04 1.28173110834e-04]] - [[9.248834636439E-04 7.679071858536E-04 4.939189383576E-04 - 1.715424025697E-04] - [1.524493539575E-02 4.501727960784E-03 1.055074934137E-02 - 1.043818771941E-02]]] + [[9.24883463644e-04 7.67907185854e-04 4.93918938358e-04 1.71542402570e-04] + [1.52449353958e-02 4.50172796078e-03 1.05507493414e-02 1.04381877194e-02]]] domain=10000 type=nu-scatter matrix -[[[3.841994578091E-01 5.187028434601E-02 2.006884531999E-02 - 9.477715705594E-03] - [9.889303933311E-04 -2.072345964750E-04 -1.033661805408E-04 - 2.342906230372E-04]] +[[[3.84199457809e-01 5.18702843460e-02 2.00688453200e-02 9.47771570559e-03] + [9.88930393331e-04 -2.07234596475e-04 -1.03366180541e-04 + 2.34290623037e-04]] - [[9.246399087638E-04 -7.677049684393E-04 4.937888718438E-04 - -1.714972293226E-04] - [4.114647593999E-01 1.648172800670E-02 6.371490492824E-03 - -1.049912208975E-02]]] -[[[2.700101356101E-02 6.982548876132E-03 2.846495183290E-03 - 2.233519771809E-03] - [4.824194451197E-04 1.490107753617E-04 1.843163119237E-04 - 1.281731108336E-04]] + [[9.24639908764e-04 -7.67704968439e-04 4.93788871844e-04 + -1.71497229323e-04] + [4.11464759400e-01 1.64817280067e-02 6.37149049282e-03 -1.04991220898e-02]]] +[[[2.70010135610e-02 6.98254887613e-03 2.84649518329e-03 2.23351977181e-03] + [4.82419445120e-04 1.49010775362e-04 1.84316311924e-04 1.28173110834e-04]] - [[9.248834636439E-04 7.679071858536E-04 4.939189383576E-04 - 1.715424025697E-04] - [1.524493539575E-02 4.501727960784E-03 1.055074934137E-02 - 1.043818771941E-02]]] + [[9.24883463644e-04 7.67907185854e-04 4.93918938358e-04 1.71542402570e-04] + [1.52449353958e-02 4.50172796078e-03 1.05507493414e-02 1.04381877194e-02]]] domain=10000 type=multiplicity matrix -[[1.000000000000E+00 1.000000000000E+00] - [1.000000000000E+00 1.000000000000E+00]] -[[7.851645500569E-02 6.871842709363E-01] - [1.414213562373E+00 4.113034880387E-02]] +[[1.00000000000e+00 1.00000000000e+00] + [1.00000000000e+00 1.00000000000e+00]] +[[7.85164550057e-02 6.87184270936e-01] + [1.41421356237e+00 4.11303488039e-02]] domain=10000 type=nu-fission matrix -[[2.014242816319E-02 0.000000000000E+00] - [4.543664665592E-01 0.000000000000E+00]] -[[3.149091676274E-03 0.000000000000E+00] - [2.742550692485E-02 0.000000000000E+00]] +[[2.01424281632e-02 0.00000000000e+00] + [4.54366466559e-01 0.00000000000e+00]] +[[3.14909167627e-03 0.00000000000e+00] + [2.74255069248e-02 0.00000000000e+00]] domain=10000 type=chi -[1.000000000000E+00 0.000000000000E+00] -[4.607052347202E-02 0.000000000000E+00] +[1.00000000000e+00 0.00000000000e+00] +[4.60705234720e-02 0.00000000000e+00] domain=10000 type=chi-prompt -[1.000000000000E+00 0.000000000000E+00] -[5.147145673440E-02 0.000000000000E+00] +[1.00000000000e+00 0.00000000000e+00] +[5.14714567344e-02 0.00000000000e+00] domain=10000 type=velocity -[1.751521062040E+07 3.501719951940E+05] -[1.438175273899E+06 2.994593169671E+04] +[1.75152106204e+07 3.50171995194e+05] +[1.43817527390e+06 2.99459316967e+04] domain=10000 type=prompt-nu-fission -[1.923922154603E-02 4.667190273544E-01] -[1.309505950104E-03 4.141087039944E-02] +[1.92392215460e-02 4.66719027354e-01] +[1.30950595010e-03 4.14108703994e-02] domain=10001 type=total -[3.137376709068E-01 3.008214016985E-01] -[1.558190235534E-02 2.805244843117E-02] +[3.13737670907e-01 3.00821401699e-01] +[1.55819023553e-02 2.80524484312e-02] domain=10001 type=transport -[2.732278720196E-01 3.123748362176E-01] -[3.311536644329E-02 4.960583170525E-02] +[2.73227872020e-01 3.12374836218e-01] +[3.31153664433e-02 4.96058317053e-02] domain=10001 type=nu-transport -[2.732278720196E-01 3.123748362176E-01] -[3.311536644329E-02 4.960583170525E-02] +[2.73227872020e-01 3.12374836218e-01] +[3.31153664433e-02 4.96058317053e-02] domain=10001 type=absorption -[1.574991390450E-03 5.400378832161E-03] -[3.225478906976E-04 6.181383082294E-04] +[1.57499139045e-03 5.40037883216e-03] +[3.22547890698e-04 6.18138308229e-04] domain=10001 type=capture -[1.574991390450E-03 5.400378832161E-03] -[3.225478906976E-04 6.181383082294E-04] +[1.57499139045e-03 5.40037883216e-03] +[3.22547890698e-04 6.18138308229e-04] domain=10001 type=fission -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10001 type=nu-fission -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10001 type=kappa-fission -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10001 type=scatter -[3.121626795163E-01 2.954210228664E-01] -[1.532192309182E-02 2.744548888604E-02] +[3.12162679516e-01 2.95421022866e-01] +[1.53219230918e-02 2.74454888860e-02] domain=10001 type=nu-scatter -[3.101207350756E-01 2.962642700008E-01] -[3.378810612250E-02 4.379222573274E-02] +[3.10120735076e-01 2.96264270001e-01] +[3.37881061225e-02 4.37922257327e-02] domain=10001 type=scatter matrix -[[[3.101207350756E-01 3.822959036236E-02 2.074494196965E-02 - 7.964296771745E-03] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] +[[[3.10120735076e-01 3.82295903624e-02 2.07449419697e-02 7.96429677175e-03] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [2.962642700008E-01 -1.121363613411E-02 8.836566298044E-03 - -3.270067308815E-03]]] -[[[3.378810612250E-02 8.483997103450E-03 4.695610677417E-03 - 3.731622609987E-03] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [2.96264270001e-01 -1.12136361341e-02 8.83656629804e-03 + -3.27006730881e-03]]] +[[[3.37881061225e-02 8.48399710345e-03 4.69561067742e-03 3.73162260999e-03] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [4.379222573274E-02 1.618036648860E-02 1.150396445878E-02 - 7.328845801518E-03]]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [4.37922257327e-02 1.61803664886e-02 1.15039644588e-02 7.32884580152e-03]]] domain=10001 type=nu-scatter matrix -[[[3.101207350756E-01 3.822959036236E-02 2.074494196965E-02 - 7.964296771745E-03] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] +[[[3.10120735076e-01 3.82295903624e-02 2.07449419697e-02 7.96429677175e-03] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [2.962642700008E-01 -1.121363613411E-02 8.836566298044E-03 - -3.270067308815E-03]]] -[[[3.378810612250E-02 8.483997103450E-03 4.695610677417E-03 - 3.731622609987E-03] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [2.96264270001e-01 -1.12136361341e-02 8.83656629804e-03 + -3.27006730881e-03]]] +[[[3.37881061225e-02 8.48399710345e-03 4.69561067742e-03 3.73162260999e-03] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [4.379222573274E-02 1.618036648860E-02 1.150396445878E-02 - 7.328845801518E-03]]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [4.37922257327e-02 1.61803664886e-02 1.15039644588e-02 7.32884580152e-03]]] domain=10001 type=multiplicity matrix -[[1.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 1.000000000000E+00]] -[[1.087786967284E-01 0.000000000000E+00] - [0.000000000000E+00 1.424271730547E-01]] +[[1.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 1.00000000000e+00]] +[[1.08778696728e-01 0.00000000000e+00] + [0.00000000000e+00 1.42427173055e-01]] domain=10001 type=nu-fission matrix -[[0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00]] -[[0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00]] +[[0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00]] +[[0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00]] domain=10001 type=chi -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10001 type=chi-prompt -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10001 type=velocity -[1.667783949737E+07 3.349533676013E+05] -[1.266444309518E+06 3.833678162570E+04] +[1.66778394974e+07 3.34953367601e+05] +[1.26644430952e+06 3.83367816257e+04] domain=10001 type=prompt-nu-fission -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=total -[6.645722606166E-01 2.052384013809E+00] -[3.121475191267E-02 2.243429067056E-01] +[6.64572260617e-01 2.05238401381e+00] +[3.12147519127e-02 2.24342906706e-01] domain=10002 type=transport -[2.905652574249E-01 1.516438012755E+00] -[2.385185464365E-02 2.351972685044E-01] +[2.90565257425e-01 1.51643801275e+00] +[2.38518546437e-02 2.35197268504e-01] domain=10002 type=nu-transport -[2.905652574249E-01 1.516438012755E+00] -[2.385185464365E-02 2.351972685044E-01] +[2.90565257425e-01 1.51643801275e+00] +[2.38518546437e-02 2.35197268504e-01] domain=10002 type=absorption -[6.903995221868E-04 3.168725661415E-02] -[4.414756870586E-05 3.746558582378E-03] +[6.90399522187e-04 3.16872566141e-02] +[4.41475687059e-05 3.74655858238e-03] domain=10002 type=capture -[6.903995221868E-04 3.168725661415E-02] -[4.414756870586E-05 3.746558582378E-03] +[6.90399522187e-04 3.16872566141e-02] +[4.41475687059e-05 3.74655858238e-03] domain=10002 type=fission -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=nu-fission -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=kappa-fission -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=scatter -[6.638818610944E-01 2.020696757195E+00] -[3.117268400461E-02 2.206044538568E-01] +[6.63881861094e-01 2.02069675720e+00] +[3.11726840046e-02 2.20604453857e-01] domain=10002 type=nu-scatter -[6.712692047144E-01 2.035388328756E+00] -[2.618637116860E-02 2.580603285630E-01] +[6.71269204714e-01 2.03538832876e+00] +[2.61863711686e-02 2.58060328563e-01] domain=10002 type=scatter matrix -[[[6.399014848679E-01 3.811674488646E-01 1.523918978052E-01 - 9.148022288467E-03] - [3.136771984647E-02 8.757723206121E-03 -2.567901059674E-03 - -3.784802881872E-03]] +[[[6.39901484868e-01 3.81167448865e-01 1.52391897805e-01 9.14802228847e-03] + [3.13677198465e-02 8.75772320612e-03 -2.56790105967e-03 + -3.78480288187e-03]] - [[4.433431341224E-04 3.999604142604E-04 3.195627072398E-04 - 2.138469692300E-04] - [2.034944985622E+00 5.099405131606E-01 1.111746088043E-01 - 2.498843573936E-02]]] -[[[2.470912279767E-02 1.624326492127E-02 8.156277703362E-03 - 3.888562141639E-03] - [1.728112903279E-03 9.256705011983E-04 1.013984752076E-03 - 8.170755708523E-04]] + [[4.43343134122e-04 3.99960414260e-04 3.19562707240e-04 2.13846969230e-04] + [2.03494498562e+00 5.09940513161e-01 1.11174608804e-01 2.49884357394e-02]]] +[[[2.47091227977e-02 1.62432649213e-02 8.15627770336e-03 3.88856214164e-03] + [1.72811290328e-03 9.25670501198e-04 1.01398475208e-03 8.17075570852e-04]] - [[4.448503933306E-04 4.013201827353E-04 3.206491429959E-04 - 2.145739970978E-04] - [2.577998889237E-01 5.123590629710E-02 1.301981703882E-02 - 8.312352562357E-03]]] + [[4.44850393331e-04 4.01320182735e-04 3.20649142996e-04 2.14573997098e-04] + [2.57799888924e-01 5.12359062971e-02 1.30198170388e-02 8.31235256236e-03]]] domain=10002 type=nu-scatter matrix -[[[6.399014848679E-01 3.811674488646E-01 1.523918978052E-01 - 9.148022288467E-03] - [3.136771984647E-02 8.757723206121E-03 -2.567901059674E-03 - -3.784802881872E-03]] +[[[6.39901484868e-01 3.81167448865e-01 1.52391897805e-01 9.14802228847e-03] + [3.13677198465e-02 8.75772320612e-03 -2.56790105967e-03 + -3.78480288187e-03]] - [[4.433431341224E-04 3.999604142604E-04 3.195627072398E-04 - 2.138469692300E-04] - [2.034944985622E+00 5.099405131606E-01 1.111746088043E-01 - 2.498843573936E-02]]] -[[[2.470912279767E-02 1.624326492127E-02 8.156277703362E-03 - 3.888562141639E-03] - [1.728112903279E-03 9.256705011983E-04 1.013984752076E-03 - 8.170755708523E-04]] + [[4.43343134122e-04 3.99960414260e-04 3.19562707240e-04 2.13846969230e-04] + [2.03494498562e+00 5.09940513161e-01 1.11174608804e-01 2.49884357394e-02]]] +[[[2.47091227977e-02 1.62432649213e-02 8.15627770336e-03 3.88856214164e-03] + [1.72811290328e-03 9.25670501198e-04 1.01398475208e-03 8.17075570852e-04]] - [[4.448503933306E-04 4.013201827353E-04 3.206491429959E-04 - 2.145739970978E-04] - [2.577998889237E-01 5.123590629710E-02 1.301981703882E-02 - 8.312352562357E-03]]] + [[4.44850393331e-04 4.01320182735e-04 3.20649142996e-04 2.14573997098e-04] + [2.57799888924e-01 5.12359062971e-02 1.30198170388e-02 8.31235256236e-03]]] domain=10002 type=multiplicity matrix -[[1.000000000000E+00 1.000000000000E+00] - [1.000000000000E+00 1.000000000000E+00]] -[[3.860919083686E-02 6.766734799959E-02] - [1.414213562373E+00 1.359292066059E-01]] +[[1.00000000000e+00 1.00000000000e+00] + [1.00000000000e+00 1.00000000000e+00]] +[[3.86091908369e-02 6.76673479996e-02] + [1.41421356237e+00 1.35929206606e-01]] domain=10002 type=nu-fission matrix -[[0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00]] -[[0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00]] +[[0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00]] +[[0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00]] domain=10002 type=chi -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=chi-prompt -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=velocity -[1.660556287323E+07 3.284120386500E+05] -[1.042435523742E+06 3.882843572985E+04] +[1.66055628732e+07 3.28412038650e+05] +[1.04243552374e+06 3.88284357298e+04] domain=10002 type=prompt-nu-fission -[0.000000000000E+00 0.000000000000E+00] -[0.000000000000E+00 0.000000000000E+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 453219e04b..d3b0cc0810 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.148254902141E-01 2.279290909378E-02 -0 10000 2 total 6.601699186276E-01 4.751892790820E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596371187E-01 2.549359557809E-02 -0 10000 2 total 6.476476600786E-01 2.370373520469E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596371187E-01 2.549359557809E-02 -0 10000 2 total 6.476476600786E-01 2.370373520469E-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.740784492005E-02 2.692497109349E-03 -0 10000 2 total 2.645107416278E-01 2.336707739154E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.984454994118E-02 2.643304328661E-03 -0 10000 2 total 7.171935292349E-02 2.520785935116E-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.563294978869E-03 5.084836779085E-04 -0 10000 2 total 1.927913887043E-01 1.710592186667E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.943174037197E-02 1.322975612220E-03 -0 10000 2 total 4.697747770257E-01 4.168199978316E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.474569822554E+00 9.923532109630E-02 -0 10000 2 total 3.728689640721E+01 3.308377724530E+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.874176452940E-01 2.062573210211E-02 -0 10000 2 total 3.956591769999E-01 2.512505678941E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.851883882025E-01 2.694562106470E-02 -0 10000 2 total 4.123893993086E-01 1.542527695832E-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841994578091E-01 2.700101356101E-02 -13 10000 1 1 total P1 5.187028434601E-02 6.982548876132E-03 -14 10000 1 1 total P2 2.006884531999E-02 2.846495183290E-03 -15 10000 1 1 total P3 9.477715705594E-03 2.233519771809E-03 -8 10000 1 2 total P0 9.889303933311E-04 4.824194451197E-04 -9 10000 1 2 total P1 -2.072345964750E-04 1.490107753617E-04 -10 10000 1 2 total P2 -1.033661805408E-04 1.843163119237E-04 -11 10000 1 2 total P3 2.342906230372E-04 1.281731108336E-04 -4 10000 2 1 total P0 9.246399087638E-04 9.248834636439E-04 -5 10000 2 1 total P1 -7.677049684393E-04 7.679071858536E-04 -6 10000 2 1 total P2 4.937888718438E-04 4.939189383576E-04 -7 10000 2 1 total P3 -1.714972293226E-04 1.715424025697E-04 -0 10000 2 2 total P0 4.114647593999E-01 1.524493539575E-02 -1 10000 2 2 total P1 1.648172800670E-02 4.501727960784E-03 -2 10000 2 2 total P2 6.371490492824E-03 1.055074934137E-02 -3 10000 2 2 total P3 -1.049912208975E-02 1.043818771941E-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841994578091E-01 2.700101356101E-02 -13 10000 1 1 total P1 5.187028434601E-02 6.982548876132E-03 -14 10000 1 1 total P2 2.006884531999E-02 2.846495183290E-03 -15 10000 1 1 total P3 9.477715705594E-03 2.233519771809E-03 -8 10000 1 2 total P0 9.889303933311E-04 4.824194451197E-04 -9 10000 1 2 total P1 -2.072345964750E-04 1.490107753617E-04 -10 10000 1 2 total P2 -1.033661805408E-04 1.843163119237E-04 -11 10000 1 2 total P3 2.342906230372E-04 1.281731108336E-04 -4 10000 2 1 total P0 9.246399087638E-04 9.248834636439E-04 -5 10000 2 1 total P1 -7.677049684393E-04 7.679071858536E-04 -6 10000 2 1 total P2 4.937888718438E-04 4.939189383576E-04 -7 10000 2 1 total P3 -1.714972293226E-04 1.715424025697E-04 -0 10000 2 2 total P0 4.114647593999E-01 1.524493539575E-02 -1 10000 2 2 total P1 1.648172800670E-02 4.501727960784E-03 -2 10000 2 2 total P2 6.371490492824E-03 1.055074934137E-02 -3 10000 2 2 total P3 -1.049912208975E-02 1.043818771941E-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.000000000000E+00 7.851645500569E-02 -2 10000 1 2 total 1.000000000000E+00 6.871842709363E-01 -1 10000 2 1 total 1.000000000000E+00 1.414213562373E+00 -0 10000 2 2 total 1.000000000000E+00 4.113034880387E-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.014242816319E-02 3.149091676274E-03 -2 10000 1 2 total 0.000000000000E+00 0.000000000000E+00 -1 10000 2 1 total 4.543664665592E-01 2.742550692485E-02 -0 10000 2 2 total 0.000000000000E+00 0.000000000000E+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000000000E+00 4.607052347202E-02 -0 10000 2 total 0.000000000000E+00 0.000000000000E+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000000000E+00 5.147145673440E-02 -0 10000 2 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.751521062040E+07 1.438175273899E+06 -0 10000 2 total 3.501719951940E+05 2.994593169671E+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.923922154603E-02 1.309505950104E-03 -0 10000 2 total 4.667190273544E-01 4.141087039944E-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.137376709068E-01 1.558190235534E-02 -0 10001 2 total 3.008214016985E-01 2.805244843117E-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732278720196E-01 3.311536644329E-02 -0 10001 2 total 3.123748362176E-01 4.960583170525E-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732278720196E-01 3.311536644329E-02 -0 10001 2 total 3.123748362176E-01 4.960583170525E-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991390450E-03 3.225478906976E-04 -0 10001 2 total 5.400378832161E-03 6.181383082294E-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991390450E-03 3.225478906976E-04 -0 10001 2 total 5.400378832161E-03 6.181383082294E-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000000E+00 0.000000000000E+00 -0 10001 2 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000000E+00 0.000000000000E+00 -0 10001 2 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000000E+00 0.000000000000E+00 -0 10001 2 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.121626795163E-01 1.532192309182E-02 -0 10001 2 total 2.954210228664E-01 2.744548888604E-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.101207350756E-01 3.378810612250E-02 -0 10001 2 total 2.962642700008E-01 4.379222573274E-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207350756E-01 3.378810612250E-02 -13 10001 1 1 total P1 3.822959036236E-02 8.483997103450E-03 -14 10001 1 1 total P2 2.074494196965E-02 4.695610677417E-03 -15 10001 1 1 total P3 7.964296771745E-03 3.731622609987E-03 -8 10001 1 2 total P0 0.000000000000E+00 0.000000000000E+00 -9 10001 1 2 total P1 0.000000000000E+00 0.000000000000E+00 -10 10001 1 2 total P2 0.000000000000E+00 0.000000000000E+00 -11 10001 1 2 total P3 0.000000000000E+00 0.000000000000E+00 -4 10001 2 1 total P0 0.000000000000E+00 0.000000000000E+00 -5 10001 2 1 total P1 0.000000000000E+00 0.000000000000E+00 -6 10001 2 1 total P2 0.000000000000E+00 0.000000000000E+00 -7 10001 2 1 total P3 0.000000000000E+00 0.000000000000E+00 -0 10001 2 2 total P0 2.962642700008E-01 4.379222573274E-02 -1 10001 2 2 total P1 -1.121363613411E-02 1.618036648860E-02 -2 10001 2 2 total P2 8.836566298044E-03 1.150396445878E-02 -3 10001 2 2 total P3 -3.270067308815E-03 7.328845801518E-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207350756E-01 3.378810612250E-02 -13 10001 1 1 total P1 3.822959036236E-02 8.483997103450E-03 -14 10001 1 1 total P2 2.074494196965E-02 4.695610677417E-03 -15 10001 1 1 total P3 7.964296771745E-03 3.731622609987E-03 -8 10001 1 2 total P0 0.000000000000E+00 0.000000000000E+00 -9 10001 1 2 total P1 0.000000000000E+00 0.000000000000E+00 -10 10001 1 2 total P2 0.000000000000E+00 0.000000000000E+00 -11 10001 1 2 total P3 0.000000000000E+00 0.000000000000E+00 -4 10001 2 1 total P0 0.000000000000E+00 0.000000000000E+00 -5 10001 2 1 total P1 0.000000000000E+00 0.000000000000E+00 -6 10001 2 1 total P2 0.000000000000E+00 0.000000000000E+00 -7 10001 2 1 total P3 0.000000000000E+00 0.000000000000E+00 -0 10001 2 2 total P0 2.962642700008E-01 4.379222573274E-02 -1 10001 2 2 total P1 -1.121363613411E-02 1.618036648860E-02 -2 10001 2 2 total P2 8.836566298044E-03 1.150396445878E-02 -3 10001 2 2 total P3 -3.270067308815E-03 7.328845801518E-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.000000000000E+00 1.087786967284E-01 -2 10001 1 2 total 0.000000000000E+00 0.000000000000E+00 -1 10001 2 1 total 0.000000000000E+00 0.000000000000E+00 -0 10001 2 2 total 1.000000000000E+00 1.424271730547E-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.000000000000E+00 0.000000000000E+00 -2 10001 1 2 total 0.000000000000E+00 0.000000000000E+00 -1 10001 2 1 total 0.000000000000E+00 0.000000000000E+00 -0 10001 2 2 total 0.000000000000E+00 0.000000000000E+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000000000E+00 0.000000000000E+00 -0 10001 2 total 0.000000000000E+00 0.000000000000E+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000000000E+00 0.000000000000E+00 -0 10001 2 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.667783949737E+07 1.266444309518E+06 -0 10001 2 total 3.349533676013E+05 3.833678162570E+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000000E+00 0.000000000000E+00 -0 10001 2 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.645722606166E-01 3.121475191267E-02 -0 10002 2 total 2.052384013809E+00 2.243429067056E-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905652574249E-01 2.385185464365E-02 -0 10002 2 total 1.516438012755E+00 2.351972685044E-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905652574249E-01 2.385185464365E-02 -0 10002 2 total 1.516438012755E+00 2.351972685044E-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995221868E-04 4.414756870586E-05 -0 10002 2 total 3.168725661415E-02 3.746558582378E-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995221868E-04 4.414756870586E-05 -0 10002 2 total 3.168725661415E-02 3.746558582378E-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000000E+00 0.000000000000E+00 -0 10002 2 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000000E+00 0.000000000000E+00 -0 10002 2 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000000E+00 0.000000000000E+00 -0 10002 2 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.638818610944E-01 3.117268400461E-02 -0 10002 2 total 2.020696757195E+00 2.206044538568E-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.712692047144E-01 2.618637116860E-02 -0 10002 2 total 2.035388328756E+00 2.580603285630E-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399014848679E-01 2.470912279767E-02 -13 10002 1 1 total P1 3.811674488646E-01 1.624326492127E-02 -14 10002 1 1 total P2 1.523918978052E-01 8.156277703362E-03 -15 10002 1 1 total P3 9.148022288467E-03 3.888562141639E-03 -8 10002 1 2 total P0 3.136771984647E-02 1.728112903279E-03 -9 10002 1 2 total P1 8.757723206121E-03 9.256705011983E-04 -10 10002 1 2 total P2 -2.567901059674E-03 1.013984752076E-03 -11 10002 1 2 total P3 -3.784802881872E-03 8.170755708523E-04 -4 10002 2 1 total P0 4.433431341224E-04 4.448503933306E-04 -5 10002 2 1 total P1 3.999604142604E-04 4.013201827353E-04 -6 10002 2 1 total P2 3.195627072398E-04 3.206491429959E-04 -7 10002 2 1 total P3 2.138469692300E-04 2.145739970978E-04 -0 10002 2 2 total P0 2.034944985622E+00 2.577998889237E-01 -1 10002 2 2 total P1 5.099405131606E-01 5.123590629710E-02 -2 10002 2 2 total P2 1.111746088043E-01 1.301981703882E-02 -3 10002 2 2 total P3 2.498843573936E-02 8.312352562357E-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399014848679E-01 2.470912279767E-02 -13 10002 1 1 total P1 3.811674488646E-01 1.624326492127E-02 -14 10002 1 1 total P2 1.523918978052E-01 8.156277703362E-03 -15 10002 1 1 total P3 9.148022288467E-03 3.888562141639E-03 -8 10002 1 2 total P0 3.136771984647E-02 1.728112903279E-03 -9 10002 1 2 total P1 8.757723206121E-03 9.256705011983E-04 -10 10002 1 2 total P2 -2.567901059674E-03 1.013984752076E-03 -11 10002 1 2 total P3 -3.784802881872E-03 8.170755708523E-04 -4 10002 2 1 total P0 4.433431341224E-04 4.448503933306E-04 -5 10002 2 1 total P1 3.999604142604E-04 4.013201827353E-04 -6 10002 2 1 total P2 3.195627072398E-04 3.206491429959E-04 -7 10002 2 1 total P3 2.138469692300E-04 2.145739970978E-04 -0 10002 2 2 total P0 2.034944985622E+00 2.577998889237E-01 -1 10002 2 2 total P1 5.099405131606E-01 5.123590629710E-02 -2 10002 2 2 total P2 1.111746088043E-01 1.301981703882E-02 -3 10002 2 2 total P3 2.498843573936E-02 8.312352562357E-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.000000000000E+00 3.860919083686E-02 -2 10002 1 2 total 1.000000000000E+00 6.766734799959E-02 -1 10002 2 1 total 1.000000000000E+00 1.414213562373E+00 -0 10002 2 2 total 1.000000000000E+00 1.359292066059E-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.000000000000E+00 0.000000000000E+00 -2 10002 1 2 total 0.000000000000E+00 0.000000000000E+00 -1 10002 2 1 total 0.000000000000E+00 0.000000000000E+00 -0 10002 2 2 total 0.000000000000E+00 0.000000000000E+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000000000E+00 0.000000000000E+00 -0 10002 2 total 0.000000000000E+00 0.000000000000E+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000000000E+00 0.000000000000E+00 -0 10002 2 total 0.000000000000E+00 0.000000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.660556287323E+07 1.042435523742E+06 -0 10002 2 total 3.284120386500E+05 3.882843572985E+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000000E+00 0.000000000000E+00 -0 10002 2 total 0.000000000000E+00 0.000000000000E+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.14825490214e-01 2.27929090938e-02 +0 10000 2 total 6.60169918628e-01 4.75189279082e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.56859637119e-01 2.54935955781e-02 +0 10000 2 total 6.47647660079e-01 2.37037352047e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.56859637119e-01 2.54935955781e-02 +0 10000 2 total 6.47647660079e-01 2.37037352047e-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.74078449200e-02 2.69249710935e-03 +0 10000 2 total 2.64510741628e-01 2.33670773915e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.98445499412e-02 2.64330432866e-03 +0 10000 2 total 7.17193529235e-02 2.52078593512e-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.56329497887e-03 5.08483677908e-04 +0 10000 2 total 1.92791388704e-01 1.71059218667e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.94317403720e-02 1.32297561222e-03 +0 10000 2 total 4.69774777026e-01 4.16819997832e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.47456982255e+00 9.92353210963e-02 +0 10000 2 total 3.72868964072e+01 3.30837772453e+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.87417645294e-01 2.06257321021e-02 +0 10000 2 total 3.95659177000e-01 2.51250567894e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.85188388202e-01 2.69456210647e-02 +0 10000 2 total 4.12389399309e-01 1.54252769583e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.84199457809e-01 2.70010135610e-02 +13 10000 1 1 total P1 5.18702843460e-02 6.98254887613e-03 +14 10000 1 1 total P2 2.00688453200e-02 2.84649518329e-03 +15 10000 1 1 total P3 9.47771570559e-03 2.23351977181e-03 +8 10000 1 2 total P0 9.88930393331e-04 4.82419445120e-04 +9 10000 1 2 total P1 -2.07234596475e-04 1.49010775362e-04 +10 10000 1 2 total P2 -1.03366180541e-04 1.84316311924e-04 +11 10000 1 2 total P3 2.34290623037e-04 1.28173110834e-04 +4 10000 2 1 total P0 9.24639908764e-04 9.24883463644e-04 +5 10000 2 1 total P1 -7.67704968439e-04 7.67907185854e-04 +6 10000 2 1 total P2 4.93788871844e-04 4.93918938358e-04 +7 10000 2 1 total P3 -1.71497229323e-04 1.71542402570e-04 +0 10000 2 2 total P0 4.11464759400e-01 1.52449353958e-02 +1 10000 2 2 total P1 1.64817280067e-02 4.50172796078e-03 +2 10000 2 2 total P2 6.37149049282e-03 1.05507493414e-02 +3 10000 2 2 total P3 -1.04991220898e-02 1.04381877194e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.84199457809e-01 2.70010135610e-02 +13 10000 1 1 total P1 5.18702843460e-02 6.98254887613e-03 +14 10000 1 1 total P2 2.00688453200e-02 2.84649518329e-03 +15 10000 1 1 total P3 9.47771570559e-03 2.23351977181e-03 +8 10000 1 2 total P0 9.88930393331e-04 4.82419445120e-04 +9 10000 1 2 total P1 -2.07234596475e-04 1.49010775362e-04 +10 10000 1 2 total P2 -1.03366180541e-04 1.84316311924e-04 +11 10000 1 2 total P3 2.34290623037e-04 1.28173110834e-04 +4 10000 2 1 total P0 9.24639908764e-04 9.24883463644e-04 +5 10000 2 1 total P1 -7.67704968439e-04 7.67907185854e-04 +6 10000 2 1 total P2 4.93788871844e-04 4.93918938358e-04 +7 10000 2 1 total P3 -1.71497229323e-04 1.71542402570e-04 +0 10000 2 2 total P0 4.11464759400e-01 1.52449353958e-02 +1 10000 2 2 total P1 1.64817280067e-02 4.50172796078e-03 +2 10000 2 2 total P2 6.37149049282e-03 1.05507493414e-02 +3 10000 2 2 total P3 -1.04991220898e-02 1.04381877194e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.00000000000e+00 7.85164550057e-02 +2 10000 1 2 total 1.00000000000e+00 6.87184270936e-01 +1 10000 2 1 total 1.00000000000e+00 1.41421356237e+00 +0 10000 2 2 total 1.00000000000e+00 4.11303488039e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.01424281632e-02 3.14909167627e-03 +2 10000 1 2 total 0.00000000000e+00 0.00000000000e+00 +1 10000 2 1 total 4.54366466559e-01 2.74255069248e-02 +0 10000 2 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.00000000000e+00 4.60705234720e-02 +0 10000 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.00000000000e+00 5.14714567344e-02 +0 10000 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.75152106204e+07 1.43817527390e+06 +0 10000 2 total 3.50171995194e+05 2.99459316967e+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.92392215460e-02 1.30950595010e-03 +0 10000 2 total 4.66719027354e-01 4.14108703994e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.13737670907e-01 1.55819023553e-02 +0 10001 2 total 3.00821401699e-01 2.80524484312e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.73227872020e-01 3.31153664433e-02 +0 10001 2 total 3.12374836218e-01 4.96058317053e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.73227872020e-01 3.31153664433e-02 +0 10001 2 total 3.12374836218e-01 4.96058317053e-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.57499139045e-03 3.22547890698e-04 +0 10001 2 total 5.40037883216e-03 6.18138308229e-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.57499139045e-03 3.22547890698e-04 +0 10001 2 total 5.40037883216e-03 6.18138308229e-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.12162679516e-01 1.53219230918e-02 +0 10001 2 total 2.95421022866e-01 2.74454888860e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.10120735076e-01 3.37881061225e-02 +0 10001 2 total 2.96264270001e-01 4.37922257327e-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.10120735076e-01 3.37881061225e-02 +13 10001 1 1 total P1 3.82295903624e-02 8.48399710345e-03 +14 10001 1 1 total P2 2.07449419697e-02 4.69561067742e-03 +15 10001 1 1 total P3 7.96429677175e-03 3.73162260999e-03 +8 10001 1 2 total P0 0.00000000000e+00 0.00000000000e+00 +9 10001 1 2 total P1 0.00000000000e+00 0.00000000000e+00 +10 10001 1 2 total P2 0.00000000000e+00 0.00000000000e+00 +11 10001 1 2 total P3 0.00000000000e+00 0.00000000000e+00 +4 10001 2 1 total P0 0.00000000000e+00 0.00000000000e+00 +5 10001 2 1 total P1 0.00000000000e+00 0.00000000000e+00 +6 10001 2 1 total P2 0.00000000000e+00 0.00000000000e+00 +7 10001 2 1 total P3 0.00000000000e+00 0.00000000000e+00 +0 10001 2 2 total P0 2.96264270001e-01 4.37922257327e-02 +1 10001 2 2 total P1 -1.12136361341e-02 1.61803664886e-02 +2 10001 2 2 total P2 8.83656629804e-03 1.15039644588e-02 +3 10001 2 2 total P3 -3.27006730881e-03 7.32884580152e-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.10120735076e-01 3.37881061225e-02 +13 10001 1 1 total P1 3.82295903624e-02 8.48399710345e-03 +14 10001 1 1 total P2 2.07449419697e-02 4.69561067742e-03 +15 10001 1 1 total P3 7.96429677175e-03 3.73162260999e-03 +8 10001 1 2 total P0 0.00000000000e+00 0.00000000000e+00 +9 10001 1 2 total P1 0.00000000000e+00 0.00000000000e+00 +10 10001 1 2 total P2 0.00000000000e+00 0.00000000000e+00 +11 10001 1 2 total P3 0.00000000000e+00 0.00000000000e+00 +4 10001 2 1 total P0 0.00000000000e+00 0.00000000000e+00 +5 10001 2 1 total P1 0.00000000000e+00 0.00000000000e+00 +6 10001 2 1 total P2 0.00000000000e+00 0.00000000000e+00 +7 10001 2 1 total P3 0.00000000000e+00 0.00000000000e+00 +0 10001 2 2 total P0 2.96264270001e-01 4.37922257327e-02 +1 10001 2 2 total P1 -1.12136361341e-02 1.61803664886e-02 +2 10001 2 2 total P2 8.83656629804e-03 1.15039644588e-02 +3 10001 2 2 total P3 -3.27006730881e-03 7.32884580152e-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.00000000000e+00 1.08778696728e-01 +2 10001 1 2 total 0.00000000000e+00 0.00000000000e+00 +1 10001 2 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 2 total 1.00000000000e+00 1.42427173055e-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.00000000000e+00 0.00000000000e+00 +2 10001 1 2 total 0.00000000000e+00 0.00000000000e+00 +1 10001 2 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.66778394974e+07 1.26644430952e+06 +0 10001 2 total 3.34953367601e+05 3.83367816257e+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.64572260617e-01 3.12147519127e-02 +0 10002 2 total 2.05238401381e+00 2.24342906706e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.90565257425e-01 2.38518546437e-02 +0 10002 2 total 1.51643801275e+00 2.35197268504e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.90565257425e-01 2.38518546437e-02 +0 10002 2 total 1.51643801275e+00 2.35197268504e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.90399522187e-04 4.41475687059e-05 +0 10002 2 total 3.16872566141e-02 3.74655858238e-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.90399522187e-04 4.41475687059e-05 +0 10002 2 total 3.16872566141e-02 3.74655858238e-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.63881861094e-01 3.11726840046e-02 +0 10002 2 total 2.02069675720e+00 2.20604453857e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.71269204714e-01 2.61863711686e-02 +0 10002 2 total 2.03538832876e+00 2.58060328563e-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.39901484868e-01 2.47091227977e-02 +13 10002 1 1 total P1 3.81167448865e-01 1.62432649213e-02 +14 10002 1 1 total P2 1.52391897805e-01 8.15627770336e-03 +15 10002 1 1 total P3 9.14802228847e-03 3.88856214164e-03 +8 10002 1 2 total P0 3.13677198465e-02 1.72811290328e-03 +9 10002 1 2 total P1 8.75772320612e-03 9.25670501198e-04 +10 10002 1 2 total P2 -2.56790105967e-03 1.01398475208e-03 +11 10002 1 2 total P3 -3.78480288187e-03 8.17075570852e-04 +4 10002 2 1 total P0 4.43343134122e-04 4.44850393331e-04 +5 10002 2 1 total P1 3.99960414260e-04 4.01320182735e-04 +6 10002 2 1 total P2 3.19562707240e-04 3.20649142996e-04 +7 10002 2 1 total P3 2.13846969230e-04 2.14573997098e-04 +0 10002 2 2 total P0 2.03494498562e+00 2.57799888924e-01 +1 10002 2 2 total P1 5.09940513161e-01 5.12359062971e-02 +2 10002 2 2 total P2 1.11174608804e-01 1.30198170388e-02 +3 10002 2 2 total P3 2.49884357394e-02 8.31235256236e-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.39901484868e-01 2.47091227977e-02 +13 10002 1 1 total P1 3.81167448865e-01 1.62432649213e-02 +14 10002 1 1 total P2 1.52391897805e-01 8.15627770336e-03 +15 10002 1 1 total P3 9.14802228847e-03 3.88856214164e-03 +8 10002 1 2 total P0 3.13677198465e-02 1.72811290328e-03 +9 10002 1 2 total P1 8.75772320612e-03 9.25670501198e-04 +10 10002 1 2 total P2 -2.56790105967e-03 1.01398475208e-03 +11 10002 1 2 total P3 -3.78480288187e-03 8.17075570852e-04 +4 10002 2 1 total P0 4.43343134122e-04 4.44850393331e-04 +5 10002 2 1 total P1 3.99960414260e-04 4.01320182735e-04 +6 10002 2 1 total P2 3.19562707240e-04 3.20649142996e-04 +7 10002 2 1 total P3 2.13846969230e-04 2.14573997098e-04 +0 10002 2 2 total P0 2.03494498562e+00 2.57799888924e-01 +1 10002 2 2 total P1 5.09940513161e-01 5.12359062971e-02 +2 10002 2 2 total P2 1.11174608804e-01 1.30198170388e-02 +3 10002 2 2 total P3 2.49884357394e-02 8.31235256236e-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.00000000000e+00 3.86091908369e-02 +2 10002 1 2 total 1.00000000000e+00 6.76673479996e-02 +1 10002 2 1 total 1.00000000000e+00 1.41421356237e+00 +0 10002 2 2 total 1.00000000000e+00 1.35929206606e-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.00000000000e+00 0.00000000000e+00 +2 10002 1 2 total 0.00000000000e+00 0.00000000000e+00 +1 10002 2 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.66055628732e+07 1.04243552374e+06 +0 10002 2 total 3.28412038650e+05 3.88284357298e+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 9df9332537..bb7af4b914 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -77126dd5397ab86f69cbcd5d34949f5f4c1c3e270a7443b86655ec1dfc2db66056f731e4cc09a59bb01d74e17881165005c5ec0bf7b2ce953e39ef9aa336e0e8 \ No newline at end of file +22b9df6898dbc9b229e25613a082c6efafa9bd64927788b3f2600ad5c900c91cf2367eb80bf58573306a4fcda21aad04c2705cb7e35a444e306bbb2b88d3f823 \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index acdfcbc628..cbb1a86543 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,8 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.000000000000E+02 0.000000000000E+00 7.000000000000E+02 - 8.000000000000E+02] + Temperature = [5.00000000000e+02 0.00000000000e+00 7.00000000000e+02 8.00000000000e+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index c42584db17..e012e108ab 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -dd7f3e79b255e4bdb9112cb06bb222d8489c597d48dbb310dd05a9f28ed451ade5d4ab65fe6b2ef5b1212d31b3e1942582cd32a3027a05515cc7317a496476bd \ No newline at end of file +baf9c5d2cea02655d4810cbe345b43ef7bd91aa5760d82561396eac4ca2b5e71d1505a2e3f0f741e50fd621c479b0b2c059bb837b11841abb972a2554fc5020d \ 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 67da96b247..369c061d41 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,200 +1,134 @@ -[[[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] +[[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] ..., - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]]][[[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] ..., - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]]][[[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] ..., - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - 0.000000000000E+00]]][[[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] ..., - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]]][[[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] ..., - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00] - [0.000000000000E+00 0.000000000000E+00 0.000000000000E+00]]] \ No newline at end of file + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 097b2e01f7..e0add432af 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -11,11 +11,12 @@ import sys import numpy as np import pandas as pd -# Require numpy and pandas to print output in scientific notation to 6 decimal -# places. This is needed to avoid round off error when large numbers are -# printed, which can cause tests to fail for different build configurations. -np.set_printoptions(formatter={'float': lambda x: format(x, '14.12E')}) -pd.set_option('display.float_format', lambda x: '%14.12E' % x) +# Require numpy and pandas to print output in scientific notation with 12 +# significant figures. This is needed to avoid round off error when large +# numbers are printed, which can cause tests to fail for different build +# configurations. +np.set_printoptions(formatter={'float': '{:.11e}'.format}) +pd.options.display.float_format = '{:.11e}'.format sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From 4ca1b7de81a6d56cce6be8bd4cd6a178922d7953 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 08:37:33 -0600 Subject: [PATCH 143/417] changed number of sig figs in testing harness from 12 to 10 --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 320 ++++++----- .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 6 +- 8 files changed, 691 insertions(+), 699 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 4f40b6b593..c15db2fdaa 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.53624422471e-01 2.10526963253e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.00852177884e-01 2.28575540033e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.00852177884e-01 2.28575540033e-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.49034558324e-02 4.31276119955e-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.80480660339e-02 4.57996368874e-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.68553897985e-02 2.62215977624e-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.06492898576e-02 6.40987451703e-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.13795513809e+00 5.07363814554e-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.88720966639e-01 1.78304285991e-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.89303556282e-01 2.30755385726e-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.89303556282e-01 2.31456046242e-02 -1 10000 1 1 total P1 4.62244178314e-02 5.90716955682e-03 -2 10000 1 1 total P2 1.79835850203e-02 2.88297198167e-03 -3 10000 1 1 total P3 6.62837351395e-03 2.45710898378e-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.89303556282e-01 2.31456046242e-02 -1 10000 1 1 total P1 4.62244178314e-02 5.90716955682e-03 -2 10000 1 1 total P2 1.79835850203e-02 2.88297198167e-03 -3 10000 1 1 total P3 6.62837351395e-03 2.45710898378e-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.00000000000e+00 6.61108201731e-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.58350193370e-02 5.59182486071e-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.00000000000e+00 4.60705234720e-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.00000000000e+00 5.14714567344e-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.00130873975e+06 1.46216555365e+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.00039777878e-02 6.36690787427e-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.11594108102e-01 1.37931681282e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.79255063691e-01 2.91895009803e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.79255063691e-01 2.91895009803e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.20984640163e-03 2.86334126605e-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.20984640163e-03 2.86334126605e-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.09384261701e-01 1.35512674907e-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.07987349445e-01 2.93080885044e-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.07987349445e-01 2.93080885044e-02 -1 10001 1 1 total P1 3.06171532535e-02 7.46445601186e-03 -2 10001 1 1 total P2 1.89114904073e-02 4.32282773240e-03 -3 10001 1 1 total P3 6.23461818721e-03 3.33820228054e-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.07987349445e-01 2.93080885044e-02 -1 10001 1 1 total P1 3.06171532535e-02 7.46445601186e-03 -2 10001 1 1 total P2 1.89114904073e-02 4.32282773240e-03 -3 10001 1 1 total P3 6.23461818721e-03 3.33820228054e-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.00000000000e+00 9.50387215070e-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.83326115257e+06 1.66355174520e+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.04998833317e-01 4.39644875947e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.99183982700e-01 4.09141196047e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.99183982700e-01 4.09141196047e-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.06034115726e-03 5.54524424276e-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.06034115726e-03 5.54524424276e-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.98938492160e-01 4.34929841727e-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.03414663159e-01 4.39587370764e-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.03414663159e-01 4.35859938035e-02 -1 10002 1 1 total P1 4.10417418590e-01 1.58772201944e-02 -2 10002 1 1 total P2 1.43301036475e-01 7.18737766348e-03 -3 10002 1 1 total P3 8.73942634056e-03 3.57144134504e-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.03414663159e-01 4.35859938035e-02 -1 10002 1 1 total P1 4.10417418590e-01 1.58772201944e-02 -2 10002 1 1 total P2 1.43301036475e-01 7.18737766348e-03 -3 10002 1 1 total P3 8.73942634056e-03 3.57144134504e-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.00000000000e+00 5.68667253071e-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.73219969947e+06 1.59691426430e+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.536244225e-01 2.105269633e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008521779e-01 2.285755400e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008521779e-01 2.285755400e-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.490345583e-02 4.312761200e-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.804806603e-02 4.579963689e-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.685538980e-02 2.622159776e-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.064928986e-02 6.409874517e-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.137955138e+00 5.073638146e-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.887209666e-01 1.783042860e-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.893035563e-01 2.307553857e-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893035563e-01 2.314560462e-02 +1 10000 1 1 total P1 4.622441783e-02 5.907169557e-03 +2 10000 1 1 total P2 1.798358502e-02 2.882971982e-03 +3 10000 1 1 total P3 6.628373514e-03 2.457108984e-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893035563e-01 2.314560462e-02 +1 10000 1 1 total P1 4.622441783e-02 5.907169557e-03 +2 10000 1 1 total P2 1.798358502e-02 2.882971982e-03 +3 10000 1 1 total P3 6.628373514e-03 2.457108984e-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.000000000e+00 6.611082017e-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.583501934e-02 5.591824861e-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000000e+00 4.607052347e-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000000e+00 5.147145673e-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.001308740e+06 1.462165554e+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.000397779e-02 6.366907874e-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.115941081e-01 1.379316813e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792550637e-01 2.918950098e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792550637e-01 2.918950098e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846402e-03 2.863341266e-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846402e-03 2.863341266e-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.093842617e-01 1.355126749e-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.079873494e-01 2.930808850e-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873494e-01 2.930808850e-02 +1 10001 1 1 total P1 3.061715325e-02 7.464456012e-03 +2 10001 1 1 total P2 1.891149041e-02 4.322827732e-03 +3 10001 1 1 total P3 6.234618187e-03 3.338202281e-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873494e-01 2.930808850e-02 +1 10001 1 1 total P1 3.061715325e-02 7.464456012e-03 +2 10001 1 1 total P2 1.891149041e-02 4.322827732e-03 +3 10001 1 1 total P3 6.234618187e-03 3.338202281e-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.000000000e+00 9.503872151e-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.000000000e+00 0.000000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000000e+00 0.000000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.833261153e+06 1.663551745e+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.049988333e-01 4.396448759e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991839827e-01 4.091411960e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991839827e-01 4.091411960e-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341157e-03 5.545244243e-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341157e-03 5.545244243e-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.989384922e-01 4.349298417e-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.034146632e-01 4.395873708e-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034146632e-01 4.358599380e-02 +1 10002 1 1 total P1 4.104174186e-01 1.587722019e-02 +2 10002 1 1 total P2 1.433010365e-01 7.187377663e-03 +3 10002 1 1 total P3 8.739426341e-03 3.571441345e-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034146632e-01 4.358599380e-02 +1 10002 1 1 total P1 4.104174186e-01 1.587722019e-02 +2 10002 1 1 total P2 1.433010365e-01 7.187377663e-03 +3 10002 1 1 total P3 8.739426341e-03 3.571441345e-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.000000000e+00 5.686672531e-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.000000000e+00 0.000000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000000e+00 0.000000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.732199699e+06 1.596914264e+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000e+00 0.000000000e+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index e7493f4d72..9908bb1a00 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.145934000527E+00 5.538216946848E-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191989776E-01 5.206442559331E-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191989776E-01 5.206442559331E-01 - 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 1.976220611460E-02 1.062876409255E-02 - 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 1.976220611460E-02 1.062876409255E-02 - 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.000000000000E+00 0.000000000000E+00 - 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.000000000000E+00 0.000000000000E+00 - 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.000000000000E+00 0.000000000000E+00 - 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 1.126171794412E+00 5.434400083985E-01 - 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 1.142546919110E+00 5.701313898558E-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919110E+00 5.701313898558E-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943346E-01 2.163221683070E-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934151E-01 6.650377258083E-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827041877E-02 2.462083232034E-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919110E+00 5.701313898558E-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943346E-01 2.163221683070E-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934151E-01 6.650377258083E-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827041877E-02 2.462083232034E-02 - 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 1.000000000000E+00 5.297173273743E-01 - 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.000000000000E+00 0.000000000000E+00 - 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.000000000000E+00 0.000000000000E+00 - 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.000000000000E+00 0.000000000000E+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457144820E+05 4.163976915995E+05 - 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.000000000000E+00 0.000000000000E+00 + 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 1.145934001e+00 5.538216947e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191990e-01 5.206442559e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191990e-01 5.206442559e-01 + 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 1.976220611e-02 1.062876409e-02 + 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 1.976220611e-02 1.062876409e-02 + 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.000000000e+00 0.000000000e+00 + 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.000000000e+00 0.000000000e+00 + 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.000000000e+00 0.000000000e+00 + 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 1.126171794e+00 5.434400084e-01 + 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 1.142546919e+00 5.701313899e-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919e+00 5.701313899e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943e-01 2.163221683e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934e-01 6.650377258e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827042e-02 2.462083232e-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919e+00 5.701313899e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943e-01 2.163221683e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934e-01 6.650377258e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827042e-02 2.462083232e-02 + 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 1.000000000e+00 5.297173274e-01 + 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.000000000e+00 0.000000000e+00 + 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.000000000e+00 0.000000000e+00 + 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.000000000e+00 0.000000000e+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457145e+05 4.163976916e+05 + 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.000000000e+00 0.000000000e+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 8c98999bd1..fa0f37f4c5 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,230 +1,222 @@ domain=10000 type=total -[4.14825490214e-01 6.60169918628e-01] -[2.27929090938e-02 4.75189279082e-02] +[4.148254902e-01 6.601699186e-01] +[2.279290909e-02 4.751892791e-02] domain=10000 type=transport -[3.56859637119e-01 6.47647660079e-01] -[2.54935955781e-02 2.37037352047e-02] +[3.568596371e-01 6.476476601e-01] +[2.549359558e-02 2.370373520e-02] domain=10000 type=nu-transport -[3.56859637119e-01 6.47647660079e-01] -[2.54935955781e-02 2.37037352047e-02] +[3.568596371e-01 6.476476601e-01] +[2.549359558e-02 2.370373520e-02] domain=10000 type=absorption -[2.74078449200e-02 2.64510741628e-01] -[2.69249710935e-03 2.33670773915e-02] +[2.740784492e-02 2.645107416e-01] +[2.692497109e-03 2.336707739e-02] domain=10000 type=capture -[1.98445499412e-02 7.17193529235e-02] -[2.64330432866e-03 2.52078593512e-02] +[1.984454994e-02 7.171935292e-02] +[2.643304329e-03 2.520785935e-02] domain=10000 type=fission -[7.56329497887e-03 1.92791388704e-01] -[5.08483677908e-04 1.71059218667e-02] +[7.563294979e-03 1.927913887e-01] +[5.084836779e-04 1.710592187e-02] domain=10000 type=nu-fission -[1.94317403720e-02 4.69774777026e-01] -[1.32297561222e-03 4.16819997832e-02] +[1.943174037e-02 4.697747770e-01] +[1.322975612e-03 4.168199978e-02] domain=10000 type=kappa-fission -[1.47456982255e+00 3.72868964072e+01] -[9.92353210963e-02 3.30837772453e+00] +[1.474569823e+00 3.728689641e+01] +[9.923532110e-02 3.308377725e+00] domain=10000 type=scatter -[3.87417645294e-01 3.95659177000e-01] -[2.06257321021e-02 2.51250567894e-02] +[3.874176453e-01 3.956591770e-01] +[2.062573210e-02 2.512505679e-02] domain=10000 type=nu-scatter -[3.85188388202e-01 4.12389399309e-01] -[2.69456210647e-02 1.54252769583e-02] +[3.851883882e-01 4.123893993e-01] +[2.694562106e-02 1.542527696e-02] domain=10000 type=scatter matrix -[[[3.84199457809e-01 5.18702843460e-02 2.00688453200e-02 9.47771570559e-03] - [9.88930393331e-04 -2.07234596475e-04 -1.03366180541e-04 - 2.34290623037e-04]] +[[[3.841994578e-01 5.187028435e-02 2.006884532e-02 9.477715706e-03] + [9.889303933e-04 -2.072345965e-04 -1.033661805e-04 2.342906230e-04]] - [[9.24639908764e-04 -7.67704968439e-04 4.93788871844e-04 - -1.71497229323e-04] - [4.11464759400e-01 1.64817280067e-02 6.37149049282e-03 -1.04991220898e-02]]] -[[[2.70010135610e-02 6.98254887613e-03 2.84649518329e-03 2.23351977181e-03] - [4.82419445120e-04 1.49010775362e-04 1.84316311924e-04 1.28173110834e-04]] + [[9.246399088e-04 -7.677049684e-04 4.937888718e-04 -1.714972293e-04] + [4.114647594e-01 1.648172801e-02 6.371490493e-03 -1.049912209e-02]]] +[[[2.700101356e-02 6.982548876e-03 2.846495183e-03 2.233519772e-03] + [4.824194451e-04 1.490107754e-04 1.843163119e-04 1.281731108e-04]] - [[9.24883463644e-04 7.67907185854e-04 4.93918938358e-04 1.71542402570e-04] - [1.52449353958e-02 4.50172796078e-03 1.05507493414e-02 1.04381877194e-02]]] + [[9.248834636e-04 7.679071859e-04 4.939189384e-04 1.715424026e-04] + [1.524493540e-02 4.501727961e-03 1.055074934e-02 1.043818772e-02]]] domain=10000 type=nu-scatter matrix -[[[3.84199457809e-01 5.18702843460e-02 2.00688453200e-02 9.47771570559e-03] - [9.88930393331e-04 -2.07234596475e-04 -1.03366180541e-04 - 2.34290623037e-04]] +[[[3.841994578e-01 5.187028435e-02 2.006884532e-02 9.477715706e-03] + [9.889303933e-04 -2.072345965e-04 -1.033661805e-04 2.342906230e-04]] - [[9.24639908764e-04 -7.67704968439e-04 4.93788871844e-04 - -1.71497229323e-04] - [4.11464759400e-01 1.64817280067e-02 6.37149049282e-03 -1.04991220898e-02]]] -[[[2.70010135610e-02 6.98254887613e-03 2.84649518329e-03 2.23351977181e-03] - [4.82419445120e-04 1.49010775362e-04 1.84316311924e-04 1.28173110834e-04]] + [[9.246399088e-04 -7.677049684e-04 4.937888718e-04 -1.714972293e-04] + [4.114647594e-01 1.648172801e-02 6.371490493e-03 -1.049912209e-02]]] +[[[2.700101356e-02 6.982548876e-03 2.846495183e-03 2.233519772e-03] + [4.824194451e-04 1.490107754e-04 1.843163119e-04 1.281731108e-04]] - [[9.24883463644e-04 7.67907185854e-04 4.93918938358e-04 1.71542402570e-04] - [1.52449353958e-02 4.50172796078e-03 1.05507493414e-02 1.04381877194e-02]]] + [[9.248834636e-04 7.679071859e-04 4.939189384e-04 1.715424026e-04] + [1.524493540e-02 4.501727961e-03 1.055074934e-02 1.043818772e-02]]] domain=10000 type=multiplicity matrix -[[1.00000000000e+00 1.00000000000e+00] - [1.00000000000e+00 1.00000000000e+00]] -[[7.85164550057e-02 6.87184270936e-01] - [1.41421356237e+00 4.11303488039e-02]] +[[1.000000000e+00 1.000000000e+00] + [1.000000000e+00 1.000000000e+00]] +[[7.851645501e-02 6.871842709e-01] + [1.414213562e+00 4.113034880e-02]] domain=10000 type=nu-fission matrix -[[2.01424281632e-02 0.00000000000e+00] - [4.54366466559e-01 0.00000000000e+00]] -[[3.14909167627e-03 0.00000000000e+00] - [2.74255069248e-02 0.00000000000e+00]] +[[2.014242816e-02 0.000000000e+00] + [4.543664666e-01 0.000000000e+00]] +[[3.149091676e-03 0.000000000e+00] + [2.742550692e-02 0.000000000e+00]] domain=10000 type=chi -[1.00000000000e+00 0.00000000000e+00] -[4.60705234720e-02 0.00000000000e+00] +[1.000000000e+00 0.000000000e+00] +[4.607052347e-02 0.000000000e+00] domain=10000 type=chi-prompt -[1.00000000000e+00 0.00000000000e+00] -[5.14714567344e-02 0.00000000000e+00] +[1.000000000e+00 0.000000000e+00] +[5.147145673e-02 0.000000000e+00] domain=10000 type=velocity -[1.75152106204e+07 3.50171995194e+05] -[1.43817527390e+06 2.99459316967e+04] +[1.751521062e+07 3.501719952e+05] +[1.438175274e+06 2.994593170e+04] domain=10000 type=prompt-nu-fission -[1.92392215460e-02 4.66719027354e-01] -[1.30950595010e-03 4.14108703994e-02] +[1.923922155e-02 4.667190274e-01] +[1.309505950e-03 4.141087040e-02] domain=10001 type=total -[3.13737670907e-01 3.00821401699e-01] -[1.55819023553e-02 2.80524484312e-02] +[3.137376709e-01 3.008214017e-01] +[1.558190236e-02 2.805244843e-02] domain=10001 type=transport -[2.73227872020e-01 3.12374836218e-01] -[3.31153664433e-02 4.96058317053e-02] +[2.732278720e-01 3.123748362e-01] +[3.311536644e-02 4.960583171e-02] domain=10001 type=nu-transport -[2.73227872020e-01 3.12374836218e-01] -[3.31153664433e-02 4.96058317053e-02] +[2.732278720e-01 3.123748362e-01] +[3.311536644e-02 4.960583171e-02] domain=10001 type=absorption -[1.57499139045e-03 5.40037883216e-03] -[3.22547890698e-04 6.18138308229e-04] +[1.574991390e-03 5.400378832e-03] +[3.225478907e-04 6.181383082e-04] domain=10001 type=capture -[1.57499139045e-03 5.40037883216e-03] -[3.22547890698e-04 6.18138308229e-04] +[1.574991390e-03 5.400378832e-03] +[3.225478907e-04 6.181383082e-04] domain=10001 type=fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10001 type=nu-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10001 type=kappa-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10001 type=scatter -[3.12162679516e-01 2.95421022866e-01] -[1.53219230918e-02 2.74454888860e-02] +[3.121626795e-01 2.954210229e-01] +[1.532192309e-02 2.744548889e-02] domain=10001 type=nu-scatter -[3.10120735076e-01 2.96264270001e-01] -[3.37881061225e-02 4.37922257327e-02] +[3.101207351e-01 2.962642700e-01] +[3.378810612e-02 4.379222573e-02] domain=10001 type=scatter matrix -[[[3.10120735076e-01 3.82295903624e-02 2.07449419697e-02 7.96429677175e-03] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] +[[[3.101207351e-01 3.822959036e-02 2.074494197e-02 7.964296772e-03] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [2.96264270001e-01 -1.12136361341e-02 8.83656629804e-03 - -3.27006730881e-03]]] -[[[3.37881061225e-02 8.48399710345e-03 4.69561067742e-03 3.73162260999e-03] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [2.962642700e-01 -1.121363613e-02 8.836566298e-03 -3.270067309e-03]]] +[[[3.378810612e-02 8.483997103e-03 4.695610677e-03 3.731622610e-03] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [4.37922257327e-02 1.61803664886e-02 1.15039644588e-02 7.32884580152e-03]]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [4.379222573e-02 1.618036649e-02 1.150396446e-02 7.328845802e-03]]] domain=10001 type=nu-scatter matrix -[[[3.10120735076e-01 3.82295903624e-02 2.07449419697e-02 7.96429677175e-03] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] +[[[3.101207351e-01 3.822959036e-02 2.074494197e-02 7.964296772e-03] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [2.96264270001e-01 -1.12136361341e-02 8.83656629804e-03 - -3.27006730881e-03]]] -[[[3.37881061225e-02 8.48399710345e-03 4.69561067742e-03 3.73162260999e-03] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [2.962642700e-01 -1.121363613e-02 8.836566298e-03 -3.270067309e-03]]] +[[[3.378810612e-02 8.483997103e-03 4.695610677e-03 3.731622610e-03] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [4.37922257327e-02 1.61803664886e-02 1.15039644588e-02 7.32884580152e-03]]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [4.379222573e-02 1.618036649e-02 1.150396446e-02 7.328845802e-03]]] domain=10001 type=multiplicity matrix -[[1.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 1.00000000000e+00]] -[[1.08778696728e-01 0.00000000000e+00] - [0.00000000000e+00 1.42427173055e-01]] +[[1.000000000e+00 0.000000000e+00] + [0.000000000e+00 1.000000000e+00]] +[[1.087786967e-01 0.000000000e+00] + [0.000000000e+00 1.424271731e-01]] domain=10001 type=nu-fission matrix -[[0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00]] -[[0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00]] +[[0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00]] +[[0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00]] domain=10001 type=chi -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10001 type=chi-prompt -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10001 type=velocity -[1.66778394974e+07 3.34953367601e+05] -[1.26644430952e+06 3.83367816257e+04] +[1.667783950e+07 3.349533676e+05] +[1.266444310e+06 3.833678163e+04] domain=10001 type=prompt-nu-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10002 type=total -[6.64572260617e-01 2.05238401381e+00] -[3.12147519127e-02 2.24342906706e-01] +[6.645722606e-01 2.052384014e+00] +[3.121475191e-02 2.243429067e-01] domain=10002 type=transport -[2.90565257425e-01 1.51643801275e+00] -[2.38518546437e-02 2.35197268504e-01] +[2.905652574e-01 1.516438013e+00] +[2.385185464e-02 2.351972685e-01] domain=10002 type=nu-transport -[2.90565257425e-01 1.51643801275e+00] -[2.38518546437e-02 2.35197268504e-01] +[2.905652574e-01 1.516438013e+00] +[2.385185464e-02 2.351972685e-01] domain=10002 type=absorption -[6.90399522187e-04 3.16872566141e-02] -[4.41475687059e-05 3.74655858238e-03] +[6.903995222e-04 3.168725661e-02] +[4.414756871e-05 3.746558582e-03] domain=10002 type=capture -[6.90399522187e-04 3.16872566141e-02] -[4.41475687059e-05 3.74655858238e-03] +[6.903995222e-04 3.168725661e-02] +[4.414756871e-05 3.746558582e-03] domain=10002 type=fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10002 type=nu-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10002 type=kappa-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10002 type=scatter -[6.63881861094e-01 2.02069675720e+00] -[3.11726840046e-02 2.20604453857e-01] +[6.638818611e-01 2.020696757e+00] +[3.117268400e-02 2.206044539e-01] domain=10002 type=nu-scatter -[6.71269204714e-01 2.03538832876e+00] -[2.61863711686e-02 2.58060328563e-01] +[6.712692047e-01 2.035388329e+00] +[2.618637117e-02 2.580603286e-01] domain=10002 type=scatter matrix -[[[6.39901484868e-01 3.81167448865e-01 1.52391897805e-01 9.14802228847e-03] - [3.13677198465e-02 8.75772320612e-03 -2.56790105967e-03 - -3.78480288187e-03]] +[[[6.399014849e-01 3.811674489e-01 1.523918978e-01 9.148022288e-03] + [3.136771985e-02 8.757723206e-03 -2.567901060e-03 -3.784802882e-03]] - [[4.43343134122e-04 3.99960414260e-04 3.19562707240e-04 2.13846969230e-04] - [2.03494498562e+00 5.09940513161e-01 1.11174608804e-01 2.49884357394e-02]]] -[[[2.47091227977e-02 1.62432649213e-02 8.15627770336e-03 3.88856214164e-03] - [1.72811290328e-03 9.25670501198e-04 1.01398475208e-03 8.17075570852e-04]] + [[4.433431341e-04 3.999604143e-04 3.195627072e-04 2.138469692e-04] + [2.034944986e+00 5.099405132e-01 1.111746088e-01 2.498843574e-02]]] +[[[2.470912280e-02 1.624326492e-02 8.156277703e-03 3.888562142e-03] + [1.728112903e-03 9.256705012e-04 1.013984752e-03 8.170755709e-04]] - [[4.44850393331e-04 4.01320182735e-04 3.20649142996e-04 2.14573997098e-04] - [2.57799888924e-01 5.12359062971e-02 1.30198170388e-02 8.31235256236e-03]]] + [[4.448503933e-04 4.013201827e-04 3.206491430e-04 2.145739971e-04] + [2.577998889e-01 5.123590630e-02 1.301981704e-02 8.312352562e-03]]] domain=10002 type=nu-scatter matrix -[[[6.39901484868e-01 3.81167448865e-01 1.52391897805e-01 9.14802228847e-03] - [3.13677198465e-02 8.75772320612e-03 -2.56790105967e-03 - -3.78480288187e-03]] +[[[6.399014849e-01 3.811674489e-01 1.523918978e-01 9.148022288e-03] + [3.136771985e-02 8.757723206e-03 -2.567901060e-03 -3.784802882e-03]] - [[4.43343134122e-04 3.99960414260e-04 3.19562707240e-04 2.13846969230e-04] - [2.03494498562e+00 5.09940513161e-01 1.11174608804e-01 2.49884357394e-02]]] -[[[2.47091227977e-02 1.62432649213e-02 8.15627770336e-03 3.88856214164e-03] - [1.72811290328e-03 9.25670501198e-04 1.01398475208e-03 8.17075570852e-04]] + [[4.433431341e-04 3.999604143e-04 3.195627072e-04 2.138469692e-04] + [2.034944986e+00 5.099405132e-01 1.111746088e-01 2.498843574e-02]]] +[[[2.470912280e-02 1.624326492e-02 8.156277703e-03 3.888562142e-03] + [1.728112903e-03 9.256705012e-04 1.013984752e-03 8.170755709e-04]] - [[4.44850393331e-04 4.01320182735e-04 3.20649142996e-04 2.14573997098e-04] - [2.57799888924e-01 5.12359062971e-02 1.30198170388e-02 8.31235256236e-03]]] + [[4.448503933e-04 4.013201827e-04 3.206491430e-04 2.145739971e-04] + [2.577998889e-01 5.123590630e-02 1.301981704e-02 8.312352562e-03]]] domain=10002 type=multiplicity matrix -[[1.00000000000e+00 1.00000000000e+00] - [1.00000000000e+00 1.00000000000e+00]] -[[3.86091908369e-02 6.76673479996e-02] - [1.41421356237e+00 1.35929206606e-01]] +[[1.000000000e+00 1.000000000e+00] + [1.000000000e+00 1.000000000e+00]] +[[3.860919084e-02 6.766734800e-02] + [1.414213562e+00 1.359292066e-01]] domain=10002 type=nu-fission matrix -[[0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00]] -[[0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00]] +[[0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00]] +[[0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00]] domain=10002 type=chi -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10002 type=chi-prompt -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] domain=10002 type=velocity -[1.66055628732e+07 3.28412038650e+05] -[1.04243552374e+06 3.88284357298e+04] +[1.660556287e+07 3.284120387e+05] +[1.042435524e+06 3.882843573e+04] domain=10002 type=prompt-nu-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000000e+00 0.000000000e+00] +[0.000000000e+00 0.000000000e+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index d3b0cc0810..298ded20f8 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.14825490214e-01 2.27929090938e-02 -0 10000 2 total 6.60169918628e-01 4.75189279082e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.56859637119e-01 2.54935955781e-02 -0 10000 2 total 6.47647660079e-01 2.37037352047e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.56859637119e-01 2.54935955781e-02 -0 10000 2 total 6.47647660079e-01 2.37037352047e-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.74078449200e-02 2.69249710935e-03 -0 10000 2 total 2.64510741628e-01 2.33670773915e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.98445499412e-02 2.64330432866e-03 -0 10000 2 total 7.17193529235e-02 2.52078593512e-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.56329497887e-03 5.08483677908e-04 -0 10000 2 total 1.92791388704e-01 1.71059218667e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.94317403720e-02 1.32297561222e-03 -0 10000 2 total 4.69774777026e-01 4.16819997832e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.47456982255e+00 9.92353210963e-02 -0 10000 2 total 3.72868964072e+01 3.30837772453e+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.87417645294e-01 2.06257321021e-02 -0 10000 2 total 3.95659177000e-01 2.51250567894e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.85188388202e-01 2.69456210647e-02 -0 10000 2 total 4.12389399309e-01 1.54252769583e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.84199457809e-01 2.70010135610e-02 -13 10000 1 1 total P1 5.18702843460e-02 6.98254887613e-03 -14 10000 1 1 total P2 2.00688453200e-02 2.84649518329e-03 -15 10000 1 1 total P3 9.47771570559e-03 2.23351977181e-03 -8 10000 1 2 total P0 9.88930393331e-04 4.82419445120e-04 -9 10000 1 2 total P1 -2.07234596475e-04 1.49010775362e-04 -10 10000 1 2 total P2 -1.03366180541e-04 1.84316311924e-04 -11 10000 1 2 total P3 2.34290623037e-04 1.28173110834e-04 -4 10000 2 1 total P0 9.24639908764e-04 9.24883463644e-04 -5 10000 2 1 total P1 -7.67704968439e-04 7.67907185854e-04 -6 10000 2 1 total P2 4.93788871844e-04 4.93918938358e-04 -7 10000 2 1 total P3 -1.71497229323e-04 1.71542402570e-04 -0 10000 2 2 total P0 4.11464759400e-01 1.52449353958e-02 -1 10000 2 2 total P1 1.64817280067e-02 4.50172796078e-03 -2 10000 2 2 total P2 6.37149049282e-03 1.05507493414e-02 -3 10000 2 2 total P3 -1.04991220898e-02 1.04381877194e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.84199457809e-01 2.70010135610e-02 -13 10000 1 1 total P1 5.18702843460e-02 6.98254887613e-03 -14 10000 1 1 total P2 2.00688453200e-02 2.84649518329e-03 -15 10000 1 1 total P3 9.47771570559e-03 2.23351977181e-03 -8 10000 1 2 total P0 9.88930393331e-04 4.82419445120e-04 -9 10000 1 2 total P1 -2.07234596475e-04 1.49010775362e-04 -10 10000 1 2 total P2 -1.03366180541e-04 1.84316311924e-04 -11 10000 1 2 total P3 2.34290623037e-04 1.28173110834e-04 -4 10000 2 1 total P0 9.24639908764e-04 9.24883463644e-04 -5 10000 2 1 total P1 -7.67704968439e-04 7.67907185854e-04 -6 10000 2 1 total P2 4.93788871844e-04 4.93918938358e-04 -7 10000 2 1 total P3 -1.71497229323e-04 1.71542402570e-04 -0 10000 2 2 total P0 4.11464759400e-01 1.52449353958e-02 -1 10000 2 2 total P1 1.64817280067e-02 4.50172796078e-03 -2 10000 2 2 total P2 6.37149049282e-03 1.05507493414e-02 -3 10000 2 2 total P3 -1.04991220898e-02 1.04381877194e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.00000000000e+00 7.85164550057e-02 -2 10000 1 2 total 1.00000000000e+00 6.87184270936e-01 -1 10000 2 1 total 1.00000000000e+00 1.41421356237e+00 -0 10000 2 2 total 1.00000000000e+00 4.11303488039e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.01424281632e-02 3.14909167627e-03 -2 10000 1 2 total 0.00000000000e+00 0.00000000000e+00 -1 10000 2 1 total 4.54366466559e-01 2.74255069248e-02 -0 10000 2 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.00000000000e+00 4.60705234720e-02 -0 10000 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.00000000000e+00 5.14714567344e-02 -0 10000 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.75152106204e+07 1.43817527390e+06 -0 10000 2 total 3.50171995194e+05 2.99459316967e+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.92392215460e-02 1.30950595010e-03 -0 10000 2 total 4.66719027354e-01 4.14108703994e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.13737670907e-01 1.55819023553e-02 -0 10001 2 total 3.00821401699e-01 2.80524484312e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.73227872020e-01 3.31153664433e-02 -0 10001 2 total 3.12374836218e-01 4.96058317053e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.73227872020e-01 3.31153664433e-02 -0 10001 2 total 3.12374836218e-01 4.96058317053e-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.57499139045e-03 3.22547890698e-04 -0 10001 2 total 5.40037883216e-03 6.18138308229e-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.57499139045e-03 3.22547890698e-04 -0 10001 2 total 5.40037883216e-03 6.18138308229e-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.12162679516e-01 1.53219230918e-02 -0 10001 2 total 2.95421022866e-01 2.74454888860e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.10120735076e-01 3.37881061225e-02 -0 10001 2 total 2.96264270001e-01 4.37922257327e-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.10120735076e-01 3.37881061225e-02 -13 10001 1 1 total P1 3.82295903624e-02 8.48399710345e-03 -14 10001 1 1 total P2 2.07449419697e-02 4.69561067742e-03 -15 10001 1 1 total P3 7.96429677175e-03 3.73162260999e-03 -8 10001 1 2 total P0 0.00000000000e+00 0.00000000000e+00 -9 10001 1 2 total P1 0.00000000000e+00 0.00000000000e+00 -10 10001 1 2 total P2 0.00000000000e+00 0.00000000000e+00 -11 10001 1 2 total P3 0.00000000000e+00 0.00000000000e+00 -4 10001 2 1 total P0 0.00000000000e+00 0.00000000000e+00 -5 10001 2 1 total P1 0.00000000000e+00 0.00000000000e+00 -6 10001 2 1 total P2 0.00000000000e+00 0.00000000000e+00 -7 10001 2 1 total P3 0.00000000000e+00 0.00000000000e+00 -0 10001 2 2 total P0 2.96264270001e-01 4.37922257327e-02 -1 10001 2 2 total P1 -1.12136361341e-02 1.61803664886e-02 -2 10001 2 2 total P2 8.83656629804e-03 1.15039644588e-02 -3 10001 2 2 total P3 -3.27006730881e-03 7.32884580152e-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.10120735076e-01 3.37881061225e-02 -13 10001 1 1 total P1 3.82295903624e-02 8.48399710345e-03 -14 10001 1 1 total P2 2.07449419697e-02 4.69561067742e-03 -15 10001 1 1 total P3 7.96429677175e-03 3.73162260999e-03 -8 10001 1 2 total P0 0.00000000000e+00 0.00000000000e+00 -9 10001 1 2 total P1 0.00000000000e+00 0.00000000000e+00 -10 10001 1 2 total P2 0.00000000000e+00 0.00000000000e+00 -11 10001 1 2 total P3 0.00000000000e+00 0.00000000000e+00 -4 10001 2 1 total P0 0.00000000000e+00 0.00000000000e+00 -5 10001 2 1 total P1 0.00000000000e+00 0.00000000000e+00 -6 10001 2 1 total P2 0.00000000000e+00 0.00000000000e+00 -7 10001 2 1 total P3 0.00000000000e+00 0.00000000000e+00 -0 10001 2 2 total P0 2.96264270001e-01 4.37922257327e-02 -1 10001 2 2 total P1 -1.12136361341e-02 1.61803664886e-02 -2 10001 2 2 total P2 8.83656629804e-03 1.15039644588e-02 -3 10001 2 2 total P3 -3.27006730881e-03 7.32884580152e-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.00000000000e+00 1.08778696728e-01 -2 10001 1 2 total 0.00000000000e+00 0.00000000000e+00 -1 10001 2 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 2 total 1.00000000000e+00 1.42427173055e-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.00000000000e+00 0.00000000000e+00 -2 10001 1 2 total 0.00000000000e+00 0.00000000000e+00 -1 10001 2 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.66778394974e+07 1.26644430952e+06 -0 10001 2 total 3.34953367601e+05 3.83367816257e+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.64572260617e-01 3.12147519127e-02 -0 10002 2 total 2.05238401381e+00 2.24342906706e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.90565257425e-01 2.38518546437e-02 -0 10002 2 total 1.51643801275e+00 2.35197268504e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.90565257425e-01 2.38518546437e-02 -0 10002 2 total 1.51643801275e+00 2.35197268504e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.90399522187e-04 4.41475687059e-05 -0 10002 2 total 3.16872566141e-02 3.74655858238e-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.90399522187e-04 4.41475687059e-05 -0 10002 2 total 3.16872566141e-02 3.74655858238e-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.63881861094e-01 3.11726840046e-02 -0 10002 2 total 2.02069675720e+00 2.20604453857e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.71269204714e-01 2.61863711686e-02 -0 10002 2 total 2.03538832876e+00 2.58060328563e-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.39901484868e-01 2.47091227977e-02 -13 10002 1 1 total P1 3.81167448865e-01 1.62432649213e-02 -14 10002 1 1 total P2 1.52391897805e-01 8.15627770336e-03 -15 10002 1 1 total P3 9.14802228847e-03 3.88856214164e-03 -8 10002 1 2 total P0 3.13677198465e-02 1.72811290328e-03 -9 10002 1 2 total P1 8.75772320612e-03 9.25670501198e-04 -10 10002 1 2 total P2 -2.56790105967e-03 1.01398475208e-03 -11 10002 1 2 total P3 -3.78480288187e-03 8.17075570852e-04 -4 10002 2 1 total P0 4.43343134122e-04 4.44850393331e-04 -5 10002 2 1 total P1 3.99960414260e-04 4.01320182735e-04 -6 10002 2 1 total P2 3.19562707240e-04 3.20649142996e-04 -7 10002 2 1 total P3 2.13846969230e-04 2.14573997098e-04 -0 10002 2 2 total P0 2.03494498562e+00 2.57799888924e-01 -1 10002 2 2 total P1 5.09940513161e-01 5.12359062971e-02 -2 10002 2 2 total P2 1.11174608804e-01 1.30198170388e-02 -3 10002 2 2 total P3 2.49884357394e-02 8.31235256236e-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.39901484868e-01 2.47091227977e-02 -13 10002 1 1 total P1 3.81167448865e-01 1.62432649213e-02 -14 10002 1 1 total P2 1.52391897805e-01 8.15627770336e-03 -15 10002 1 1 total P3 9.14802228847e-03 3.88856214164e-03 -8 10002 1 2 total P0 3.13677198465e-02 1.72811290328e-03 -9 10002 1 2 total P1 8.75772320612e-03 9.25670501198e-04 -10 10002 1 2 total P2 -2.56790105967e-03 1.01398475208e-03 -11 10002 1 2 total P3 -3.78480288187e-03 8.17075570852e-04 -4 10002 2 1 total P0 4.43343134122e-04 4.44850393331e-04 -5 10002 2 1 total P1 3.99960414260e-04 4.01320182735e-04 -6 10002 2 1 total P2 3.19562707240e-04 3.20649142996e-04 -7 10002 2 1 total P3 2.13846969230e-04 2.14573997098e-04 -0 10002 2 2 total P0 2.03494498562e+00 2.57799888924e-01 -1 10002 2 2 total P1 5.09940513161e-01 5.12359062971e-02 -2 10002 2 2 total P2 1.11174608804e-01 1.30198170388e-02 -3 10002 2 2 total P3 2.49884357394e-02 8.31235256236e-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.00000000000e+00 3.86091908369e-02 -2 10002 1 2 total 1.00000000000e+00 6.76673479996e-02 -1 10002 2 1 total 1.00000000000e+00 1.41421356237e+00 -0 10002 2 2 total 1.00000000000e+00 1.35929206606e-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.00000000000e+00 0.00000000000e+00 -2 10002 1 2 total 0.00000000000e+00 0.00000000000e+00 -1 10002 2 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.66055628732e+07 1.04243552374e+06 -0 10002 2 total 3.28412038650e+05 3.88284357298e+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.148254902e-01 2.279290909e-02 +0 10000 2 total 6.601699186e-01 4.751892791e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596371e-01 2.549359558e-02 +0 10000 2 total 6.476476601e-01 2.370373520e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596371e-01 2.549359558e-02 +0 10000 2 total 6.476476601e-01 2.370373520e-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.740784492e-02 2.692497109e-03 +0 10000 2 total 2.645107416e-01 2.336707739e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.984454994e-02 2.643304329e-03 +0 10000 2 total 7.171935292e-02 2.520785935e-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.563294979e-03 5.084836779e-04 +0 10000 2 total 1.927913887e-01 1.710592187e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.943174037e-02 1.322975612e-03 +0 10000 2 total 4.697747770e-01 4.168199978e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.474569823e+00 9.923532110e-02 +0 10000 2 total 3.728689641e+01 3.308377725e+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.874176453e-01 2.062573210e-02 +0 10000 2 total 3.956591770e-01 2.512505679e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.851883882e-01 2.694562106e-02 +0 10000 2 total 4.123893993e-01 1.542527696e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841994578e-01 2.700101356e-02 +13 10000 1 1 total P1 5.187028435e-02 6.982548876e-03 +14 10000 1 1 total P2 2.006884532e-02 2.846495183e-03 +15 10000 1 1 total P3 9.477715706e-03 2.233519772e-03 +8 10000 1 2 total P0 9.889303933e-04 4.824194451e-04 +9 10000 1 2 total P1 -2.072345965e-04 1.490107754e-04 +10 10000 1 2 total P2 -1.033661805e-04 1.843163119e-04 +11 10000 1 2 total P3 2.342906230e-04 1.281731108e-04 +4 10000 2 1 total P0 9.246399088e-04 9.248834636e-04 +5 10000 2 1 total P1 -7.677049684e-04 7.679071859e-04 +6 10000 2 1 total P2 4.937888718e-04 4.939189384e-04 +7 10000 2 1 total P3 -1.714972293e-04 1.715424026e-04 +0 10000 2 2 total P0 4.114647594e-01 1.524493540e-02 +1 10000 2 2 total P1 1.648172801e-02 4.501727961e-03 +2 10000 2 2 total P2 6.371490493e-03 1.055074934e-02 +3 10000 2 2 total P3 -1.049912209e-02 1.043818772e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841994578e-01 2.700101356e-02 +13 10000 1 1 total P1 5.187028435e-02 6.982548876e-03 +14 10000 1 1 total P2 2.006884532e-02 2.846495183e-03 +15 10000 1 1 total P3 9.477715706e-03 2.233519772e-03 +8 10000 1 2 total P0 9.889303933e-04 4.824194451e-04 +9 10000 1 2 total P1 -2.072345965e-04 1.490107754e-04 +10 10000 1 2 total P2 -1.033661805e-04 1.843163119e-04 +11 10000 1 2 total P3 2.342906230e-04 1.281731108e-04 +4 10000 2 1 total P0 9.246399088e-04 9.248834636e-04 +5 10000 2 1 total P1 -7.677049684e-04 7.679071859e-04 +6 10000 2 1 total P2 4.937888718e-04 4.939189384e-04 +7 10000 2 1 total P3 -1.714972293e-04 1.715424026e-04 +0 10000 2 2 total P0 4.114647594e-01 1.524493540e-02 +1 10000 2 2 total P1 1.648172801e-02 4.501727961e-03 +2 10000 2 2 total P2 6.371490493e-03 1.055074934e-02 +3 10000 2 2 total P3 -1.049912209e-02 1.043818772e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.000000000e+00 7.851645501e-02 +2 10000 1 2 total 1.000000000e+00 6.871842709e-01 +1 10000 2 1 total 1.000000000e+00 1.414213562e+00 +0 10000 2 2 total 1.000000000e+00 4.113034880e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.014242816e-02 3.149091676e-03 +2 10000 1 2 total 0.000000000e+00 0.000000000e+00 +1 10000 2 1 total 4.543664666e-01 2.742550692e-02 +0 10000 2 2 total 0.000000000e+00 0.000000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000000e+00 4.607052347e-02 +0 10000 2 total 0.000000000e+00 0.000000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000000e+00 5.147145673e-02 +0 10000 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.751521062e+07 1.438175274e+06 +0 10000 2 total 3.501719952e+05 2.994593170e+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.923922155e-02 1.309505950e-03 +0 10000 2 total 4.667190274e-01 4.141087040e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.137376709e-01 1.558190236e-02 +0 10001 2 total 3.008214017e-01 2.805244843e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732278720e-01 3.311536644e-02 +0 10001 2 total 3.123748362e-01 4.960583171e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732278720e-01 3.311536644e-02 +0 10001 2 total 3.123748362e-01 4.960583171e-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991390e-03 3.225478907e-04 +0 10001 2 total 5.400378832e-03 6.181383082e-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991390e-03 3.225478907e-04 +0 10001 2 total 5.400378832e-03 6.181383082e-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000e+00 0.000000000e+00 +0 10001 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000e+00 0.000000000e+00 +0 10001 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000e+00 0.000000000e+00 +0 10001 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.121626795e-01 1.532192309e-02 +0 10001 2 total 2.954210229e-01 2.744548889e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.101207351e-01 3.378810612e-02 +0 10001 2 total 2.962642700e-01 4.379222573e-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207351e-01 3.378810612e-02 +13 10001 1 1 total P1 3.822959036e-02 8.483997103e-03 +14 10001 1 1 total P2 2.074494197e-02 4.695610677e-03 +15 10001 1 1 total P3 7.964296772e-03 3.731622610e-03 +8 10001 1 2 total P0 0.000000000e+00 0.000000000e+00 +9 10001 1 2 total P1 0.000000000e+00 0.000000000e+00 +10 10001 1 2 total P2 0.000000000e+00 0.000000000e+00 +11 10001 1 2 total P3 0.000000000e+00 0.000000000e+00 +4 10001 2 1 total P0 0.000000000e+00 0.000000000e+00 +5 10001 2 1 total P1 0.000000000e+00 0.000000000e+00 +6 10001 2 1 total P2 0.000000000e+00 0.000000000e+00 +7 10001 2 1 total P3 0.000000000e+00 0.000000000e+00 +0 10001 2 2 total P0 2.962642700e-01 4.379222573e-02 +1 10001 2 2 total P1 -1.121363613e-02 1.618036649e-02 +2 10001 2 2 total P2 8.836566298e-03 1.150396446e-02 +3 10001 2 2 total P3 -3.270067309e-03 7.328845802e-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207351e-01 3.378810612e-02 +13 10001 1 1 total P1 3.822959036e-02 8.483997103e-03 +14 10001 1 1 total P2 2.074494197e-02 4.695610677e-03 +15 10001 1 1 total P3 7.964296772e-03 3.731622610e-03 +8 10001 1 2 total P0 0.000000000e+00 0.000000000e+00 +9 10001 1 2 total P1 0.000000000e+00 0.000000000e+00 +10 10001 1 2 total P2 0.000000000e+00 0.000000000e+00 +11 10001 1 2 total P3 0.000000000e+00 0.000000000e+00 +4 10001 2 1 total P0 0.000000000e+00 0.000000000e+00 +5 10001 2 1 total P1 0.000000000e+00 0.000000000e+00 +6 10001 2 1 total P2 0.000000000e+00 0.000000000e+00 +7 10001 2 1 total P3 0.000000000e+00 0.000000000e+00 +0 10001 2 2 total P0 2.962642700e-01 4.379222573e-02 +1 10001 2 2 total P1 -1.121363613e-02 1.618036649e-02 +2 10001 2 2 total P2 8.836566298e-03 1.150396446e-02 +3 10001 2 2 total P3 -3.270067309e-03 7.328845802e-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.000000000e+00 1.087786967e-01 +2 10001 1 2 total 0.000000000e+00 0.000000000e+00 +1 10001 2 1 total 0.000000000e+00 0.000000000e+00 +0 10001 2 2 total 1.000000000e+00 1.424271731e-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.000000000e+00 0.000000000e+00 +2 10001 1 2 total 0.000000000e+00 0.000000000e+00 +1 10001 2 1 total 0.000000000e+00 0.000000000e+00 +0 10001 2 2 total 0.000000000e+00 0.000000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000000e+00 0.000000000e+00 +0 10001 2 total 0.000000000e+00 0.000000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000000e+00 0.000000000e+00 +0 10001 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.667783950e+07 1.266444310e+06 +0 10001 2 total 3.349533676e+05 3.833678163e+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000e+00 0.000000000e+00 +0 10001 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.645722606e-01 3.121475191e-02 +0 10002 2 total 2.052384014e+00 2.243429067e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905652574e-01 2.385185464e-02 +0 10002 2 total 1.516438013e+00 2.351972685e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905652574e-01 2.385185464e-02 +0 10002 2 total 1.516438013e+00 2.351972685e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995222e-04 4.414756871e-05 +0 10002 2 total 3.168725661e-02 3.746558582e-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995222e-04 4.414756871e-05 +0 10002 2 total 3.168725661e-02 3.746558582e-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000e+00 0.000000000e+00 +0 10002 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000e+00 0.000000000e+00 +0 10002 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000e+00 0.000000000e+00 +0 10002 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.638818611e-01 3.117268400e-02 +0 10002 2 total 2.020696757e+00 2.206044539e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.712692047e-01 2.618637117e-02 +0 10002 2 total 2.035388329e+00 2.580603286e-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399014849e-01 2.470912280e-02 +13 10002 1 1 total P1 3.811674489e-01 1.624326492e-02 +14 10002 1 1 total P2 1.523918978e-01 8.156277703e-03 +15 10002 1 1 total P3 9.148022288e-03 3.888562142e-03 +8 10002 1 2 total P0 3.136771985e-02 1.728112903e-03 +9 10002 1 2 total P1 8.757723206e-03 9.256705012e-04 +10 10002 1 2 total P2 -2.567901060e-03 1.013984752e-03 +11 10002 1 2 total P3 -3.784802882e-03 8.170755709e-04 +4 10002 2 1 total P0 4.433431341e-04 4.448503933e-04 +5 10002 2 1 total P1 3.999604143e-04 4.013201827e-04 +6 10002 2 1 total P2 3.195627072e-04 3.206491430e-04 +7 10002 2 1 total P3 2.138469692e-04 2.145739971e-04 +0 10002 2 2 total P0 2.034944986e+00 2.577998889e-01 +1 10002 2 2 total P1 5.099405132e-01 5.123590630e-02 +2 10002 2 2 total P2 1.111746088e-01 1.301981704e-02 +3 10002 2 2 total P3 2.498843574e-02 8.312352562e-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399014849e-01 2.470912280e-02 +13 10002 1 1 total P1 3.811674489e-01 1.624326492e-02 +14 10002 1 1 total P2 1.523918978e-01 8.156277703e-03 +15 10002 1 1 total P3 9.148022288e-03 3.888562142e-03 +8 10002 1 2 total P0 3.136771985e-02 1.728112903e-03 +9 10002 1 2 total P1 8.757723206e-03 9.256705012e-04 +10 10002 1 2 total P2 -2.567901060e-03 1.013984752e-03 +11 10002 1 2 total P3 -3.784802882e-03 8.170755709e-04 +4 10002 2 1 total P0 4.433431341e-04 4.448503933e-04 +5 10002 2 1 total P1 3.999604143e-04 4.013201827e-04 +6 10002 2 1 total P2 3.195627072e-04 3.206491430e-04 +7 10002 2 1 total P3 2.138469692e-04 2.145739971e-04 +0 10002 2 2 total P0 2.034944986e+00 2.577998889e-01 +1 10002 2 2 total P1 5.099405132e-01 5.123590630e-02 +2 10002 2 2 total P2 1.111746088e-01 1.301981704e-02 +3 10002 2 2 total P3 2.498843574e-02 8.312352562e-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.000000000e+00 3.860919084e-02 +2 10002 1 2 total 1.000000000e+00 6.766734800e-02 +1 10002 2 1 total 1.000000000e+00 1.414213562e+00 +0 10002 2 2 total 1.000000000e+00 1.359292066e-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.000000000e+00 0.000000000e+00 +2 10002 1 2 total 0.000000000e+00 0.000000000e+00 +1 10002 2 1 total 0.000000000e+00 0.000000000e+00 +0 10002 2 2 total 0.000000000e+00 0.000000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000000e+00 0.000000000e+00 +0 10002 2 total 0.000000000e+00 0.000000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000000e+00 0.000000000e+00 +0 10002 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.660556287e+07 1.042435524e+06 +0 10002 2 total 3.284120387e+05 3.882843573e+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000e+00 0.000000000e+00 +0 10002 2 total 0.000000000e+00 0.000000000e+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index bb7af4b914..907c223bfc 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -22b9df6898dbc9b229e25613a082c6efafa9bd64927788b3f2600ad5c900c91cf2367eb80bf58573306a4fcda21aad04c2705cb7e35a444e306bbb2b88d3f823 \ No newline at end of file +0acca7db0372f24bfa984e055c4dc706ce2b069dffd7124bc0c45cdf6f151d56435cc92aad67fa068c88ae14afe44aadf13d76b32a18eee17affc92ae3498b8d \ 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 e012e108ab..fce4790688 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -baf9c5d2cea02655d4810cbe345b43ef7bd91aa5760d82561396eac4ca2b5e71d1505a2e3f0f741e50fd621c479b0b2c059bb837b11841abb972a2554fc5020d \ No newline at end of file +3fb1940a428b77249d1df7dbe44f8edb6b34b9ef7002343b423416def12ccdb8dac35b154a9f1d603f54587492320211613959ed5c1b6bea91cd095b7d98e56c \ 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 369c061d41..0d0a8f2171 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] +[[[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] ..., - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]]][[[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] ..., - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]]][[[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] ..., - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]]][[[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]] ..., - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]]][[[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]] ..., - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]] \ No newline at end of file + [[0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00] + [0.000000000e+00 0.000000000e+00 0.000000000e+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index e0add432af..7ad20ad843 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -11,12 +11,12 @@ import sys import numpy as np import pandas as pd -# Require numpy and pandas to print output in scientific notation with 12 +# Require numpy and pandas to print output in scientific notation with 10 # significant figures. This is needed to avoid round off error when large # numbers are printed, which can cause tests to fail for different build # configurations. -np.set_printoptions(formatter={'float': '{:.11e}'.format}) -pd.options.display.float_format = '{:.11e}'.format +np.set_printoptions(formatter={'float': '{:.9e}'.format}) +pd.options.display.float_format = '{:.9e}'.format sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From a63203ab6050e4e5a4e6803e125181de9285805d Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 09:19:19 -0600 Subject: [PATCH 144/417] updated results for multipole test --- tests/test_multipole/results_true.dat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index cbb1a86543..76de7e3f25 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.00000000000e+02 0.00000000000e+00 7.00000000000e+02 8.00000000000e+02] + Temperature = [5.000000000e+02 0.000000000e+00 7.000000000e+02 8.000000000e+02] Translation = None Offset = None Distribcell index= 1 From acce64ce40ce839f5350290af97e3d5b83f0dd56 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 09:49:37 -0600 Subject: [PATCH 145/417] changed testing harness to round to 12 decimal places before converting to scientific notation --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 320 +++++------ .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- .../test_tally_aggregation.py | 2 + tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 12 +- 10 files changed, 705 insertions(+), 695 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index c15db2fdaa..06dbe0c143 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.536244225e-01 2.105269633e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008521779e-01 2.285755400e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008521779e-01 2.285755400e-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.490345583e-02 4.312761200e-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.804806603e-02 4.579963689e-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.685538980e-02 2.622159776e-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.064928986e-02 6.409874517e-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.137955138e+00 5.073638146e-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.887209666e-01 1.783042860e-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.893035563e-01 2.307553857e-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893035563e-01 2.314560462e-02 -1 10000 1 1 total P1 4.622441783e-02 5.907169557e-03 -2 10000 1 1 total P2 1.798358502e-02 2.882971982e-03 -3 10000 1 1 total P3 6.628373514e-03 2.457108984e-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893035563e-01 2.314560462e-02 -1 10000 1 1 total P1 4.622441783e-02 5.907169557e-03 -2 10000 1 1 total P2 1.798358502e-02 2.882971982e-03 -3 10000 1 1 total P3 6.628373514e-03 2.457108984e-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.000000000e+00 6.611082017e-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.583501934e-02 5.591824861e-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000000e+00 4.607052347e-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000000e+00 5.147145673e-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.001308740e+06 1.462165554e+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.000397779e-02 6.366907874e-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.115941081e-01 1.379316813e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792550637e-01 2.918950098e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792550637e-01 2.918950098e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846402e-03 2.863341266e-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846402e-03 2.863341266e-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.093842617e-01 1.355126749e-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.079873494e-01 2.930808850e-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873494e-01 2.930808850e-02 -1 10001 1 1 total P1 3.061715325e-02 7.464456012e-03 -2 10001 1 1 total P2 1.891149041e-02 4.322827732e-03 -3 10001 1 1 total P3 6.234618187e-03 3.338202281e-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873494e-01 2.930808850e-02 -1 10001 1 1 total P1 3.061715325e-02 7.464456012e-03 -2 10001 1 1 total P2 1.891149041e-02 4.322827732e-03 -3 10001 1 1 total P3 6.234618187e-03 3.338202281e-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.000000000e+00 9.503872151e-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.000000000e+00 0.000000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000000e+00 0.000000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.833261153e+06 1.663551745e+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.049988333e-01 4.396448759e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991839827e-01 4.091411960e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991839827e-01 4.091411960e-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341157e-03 5.545244243e-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341157e-03 5.545244243e-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.989384922e-01 4.349298417e-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.034146632e-01 4.395873708e-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034146632e-01 4.358599380e-02 -1 10002 1 1 total P1 4.104174186e-01 1.587722019e-02 -2 10002 1 1 total P2 1.433010365e-01 7.187377663e-03 -3 10002 1 1 total P3 8.739426341e-03 3.571441345e-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034146632e-01 4.358599380e-02 -1 10002 1 1 total P1 4.104174186e-01 1.587722019e-02 -2 10002 1 1 total P2 1.433010365e-01 7.187377663e-03 -3 10002 1 1 total P3 8.739426341e-03 3.571441345e-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.000000000e+00 5.686672531e-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.000000000e+00 0.000000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000000e+00 0.000000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.732199699e+06 1.596914264e+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.53624422471E-01 2.10526963250E-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.00852177884E-01 2.28575540030E-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.00852177884E-01 2.28575540030E-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.49034558320E-02 4.31276120000E-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.80480660340E-02 4.57996368900E-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.68553897980E-02 2.62215977600E-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.06492898580E-02 6.40987451700E-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.13795513809E+00 5.07363814554E-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.88720966639E-01 1.78304285990E-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.89303556282E-01 2.30755385730E-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.89303556282E-01 2.31456046240E-02 +1 10000 1 1 total P1 4.62244178310E-02 5.90716955700E-03 +2 10000 1 1 total P2 1.79835850200E-02 2.88297198200E-03 +3 10000 1 1 total P3 6.62837351400E-03 2.45710898400E-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.89303556282E-01 2.31456046240E-02 +1 10000 1 1 total P1 4.62244178310E-02 5.90716955700E-03 +2 10000 1 1 total P2 1.79835850200E-02 2.88297198200E-03 +3 10000 1 1 total P3 6.62837351400E-03 2.45710898400E-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.00000000000E+00 6.61108201730E-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.58350193370E-02 5.59182486100E-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.00000000000E+00 4.60705234720E-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.00000000000E+00 5.14714567340E-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.00130873975E+06 1.46216555365E+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.00039777880E-02 6.36690787400E-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.11594108102E-01 1.37931681280E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.79255063691E-01 2.91895009800E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.79255063691E-01 2.91895009800E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.20984640200E-03 2.86334127000E-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.20984640200E-03 2.86334127000E-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.09384261701E-01 1.35512674910E-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.07987349445E-01 2.93080885040E-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.07987349445E-01 2.93080885040E-02 +1 10001 1 1 total P1 3.06171532540E-02 7.46445601200E-03 +2 10001 1 1 total P2 1.89114904070E-02 4.32282773200E-03 +3 10001 1 1 total P3 6.23461818700E-03 3.33820228100E-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.07987349445E-01 2.93080885040E-02 +1 10001 1 1 total P1 3.06171532540E-02 7.46445601200E-03 +2 10001 1 1 total P2 1.89114904070E-02 4.32282773200E-03 +3 10001 1 1 total P3 6.23461818700E-03 3.33820228100E-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.00000000000E+00 9.50387215070E-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.00000000000E+00 0.00000000000E+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.00000000000E+00 0.00000000000E+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.83326115257E+06 1.66355174520E+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.04998833317E-01 4.39644875950E-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.99183982700E-01 4.09141196050E-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.99183982700E-01 4.09141196050E-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.06034115700E-03 5.54524424000E-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.06034115700E-03 5.54524424000E-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.98938492160E-01 4.34929841730E-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.03414663159E-01 4.39587370760E-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.03414663159E-01 4.35859938040E-02 +1 10002 1 1 total P1 4.10417418590E-01 1.58772201940E-02 +2 10002 1 1 total P2 1.43301036475E-01 7.18737766300E-03 +3 10002 1 1 total P3 8.73942634100E-03 3.57144134500E-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.03414663159E-01 4.35859938040E-02 +1 10002 1 1 total P1 4.10417418590E-01 1.58772201940E-02 +2 10002 1 1 total P2 1.43301036475E-01 7.18737766300E-03 +3 10002 1 1 total P3 8.73942634100E-03 3.57144134500E-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.00000000000E+00 5.68667253070E-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.00000000000E+00 0.00000000000E+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.00000000000E+00 0.00000000000E+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.73219969947E+06 1.59691426430E+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000E+00 0.00000000000E+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 9908bb1a00..1bb49ceb39 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.145934001e+00 5.538216947e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191990e-01 5.206442559e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191990e-01 5.206442559e-01 - 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 1.976220611e-02 1.062876409e-02 - 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 1.976220611e-02 1.062876409e-02 - 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.000000000e+00 0.000000000e+00 - 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.000000000e+00 0.000000000e+00 - 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.000000000e+00 0.000000000e+00 - 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 1.126171794e+00 5.434400084e-01 - 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 1.142546919e+00 5.701313899e-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919e+00 5.701313899e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943e-01 2.163221683e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934e-01 6.650377258e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827042e-02 2.462083232e-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919e+00 5.701313899e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943e-01 2.163221683e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934e-01 6.650377258e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827042e-02 2.462083232e-02 - 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 1.000000000e+00 5.297173274e-01 - 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.000000000e+00 0.000000000e+00 - 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.000000000e+00 0.000000000e+00 - 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.000000000e+00 0.000000000e+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457145e+05 4.163976916e+05 - 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.000000000e+00 0.000000000e+00 + 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 1.14593400053E+00 5.53821694685E-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919198978E-01 5.20644255933E-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919198978E-01 5.20644255933E-01 + 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 1.97622061150E-02 1.06287640930E-02 + 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 1.97622061150E-02 1.06287640930E-02 + 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.00000000000E+00 0.00000000000E+00 + 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.00000000000E+00 0.00000000000E+00 + 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.00000000000E+00 0.00000000000E+00 + 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 1.12617179441E+00 5.43440008398E-01 + 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 1.14254691911E+00 5.70131389856E-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254691911E+00 5.70131389856E-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294335E-01 2.16322168307E-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793415E-01 6.65037725810E-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282704190E-02 2.46208323200E-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254691911E+00 5.70131389856E-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294335E-01 2.16322168307E-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793415E-01 6.65037725810E-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282704190E-02 2.46208323200E-02 + 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 1.00000000000E+00 5.29717327374E-01 + 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.00000000000E+00 0.00000000000E+00 + 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.00000000000E+00 0.00000000000E+00 + 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.00000000000E+00 0.00000000000E+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.74245714482E+05 4.16397691599E+05 + 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.00000000000E+00 0.00000000000E+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index fa0f37f4c5..28e1aef4ee 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,230 @@ domain=10000 type=total -[4.148254902e-01 6.601699186e-01] -[2.279290909e-02 4.751892791e-02] +[4.14825490214E-01 6.60169918628E-01] +[2.27929090940E-02 4.75189279080E-02] domain=10000 type=transport -[3.568596371e-01 6.476476601e-01] -[2.549359558e-02 2.370373520e-02] +[3.56859637119E-01 6.47647660079E-01] +[2.54935955780E-02 2.37037352050E-02] domain=10000 type=nu-transport -[3.568596371e-01 6.476476601e-01] -[2.549359558e-02 2.370373520e-02] +[3.56859637119E-01 6.47647660079E-01] +[2.54935955780E-02 2.37037352050E-02] domain=10000 type=absorption -[2.740784492e-02 2.645107416e-01] -[2.692497109e-03 2.336707739e-02] +[2.74078449200E-02 2.64510741628E-01] +[2.69249710900E-03 2.33670773920E-02] domain=10000 type=capture -[1.984454994e-02 7.171935292e-02] -[2.643304329e-03 2.520785935e-02] +[1.98445499410E-02 7.17193529230E-02] +[2.64330432900E-03 2.52078593510E-02] domain=10000 type=fission -[7.563294979e-03 1.927913887e-01] -[5.084836779e-04 1.710592187e-02] +[7.56329497900E-03 1.92791388704E-01] +[5.08483678000E-04 1.71059218670E-02] domain=10000 type=nu-fission -[1.943174037e-02 4.697747770e-01] -[1.322975612e-03 4.168199978e-02] +[1.94317403720E-02 4.69774777026E-01] +[1.32297561200E-03 4.16819997830E-02] domain=10000 type=kappa-fission -[1.474569823e+00 3.728689641e+01] -[9.923532110e-02 3.308377725e+00] +[1.47456982255E+00 3.72868964072E+01] +[9.92353210960E-02 3.30837772453E+00] domain=10000 type=scatter -[3.874176453e-01 3.956591770e-01] -[2.062573210e-02 2.512505679e-02] +[3.87417645294E-01 3.95659177000E-01] +[2.06257321020E-02 2.51250567890E-02] domain=10000 type=nu-scatter -[3.851883882e-01 4.123893993e-01] -[2.694562106e-02 1.542527696e-02] +[3.85188388202E-01 4.12389399309E-01] +[2.69456210650E-02 1.54252769580E-02] domain=10000 type=scatter matrix -[[[3.841994578e-01 5.187028435e-02 2.006884532e-02 9.477715706e-03] - [9.889303933e-04 -2.072345965e-04 -1.033661805e-04 2.342906230e-04]] +[[[3.84199457809E-01 5.18702843460E-02 2.00688453200E-02 9.47771570600E-03] + [9.88930393000E-04 -2.07234596000E-04 -1.03366181000E-04 + 2.34290623000E-04]] - [[9.246399088e-04 -7.677049684e-04 4.937888718e-04 -1.714972293e-04] - [4.114647594e-01 1.648172801e-02 6.371490493e-03 -1.049912209e-02]]] -[[[2.700101356e-02 6.982548876e-03 2.846495183e-03 2.233519772e-03] - [4.824194451e-04 1.490107754e-04 1.843163119e-04 1.281731108e-04]] + [[9.24639909000E-04 -7.67704968000E-04 4.93788872000E-04 + -1.71497229000E-04] + [4.11464759400E-01 1.64817280070E-02 6.37149049300E-03 -1.04991220900E-02]]] +[[[2.70010135610E-02 6.98254887600E-03 2.84649518300E-03 2.23351977200E-03] + [4.82419445000E-04 1.49010775000E-04 1.84316312000E-04 1.28173111000E-04]] - [[9.248834636e-04 7.679071859e-04 4.939189384e-04 1.715424026e-04] - [1.524493540e-02 4.501727961e-03 1.055074934e-02 1.043818772e-02]]] + [[9.24883464000E-04 7.67907186000E-04 4.93918938000E-04 1.71542403000E-04] + [1.52449353960E-02 4.50172796100E-03 1.05507493410E-02 1.04381877190E-02]]] domain=10000 type=nu-scatter matrix -[[[3.841994578e-01 5.187028435e-02 2.006884532e-02 9.477715706e-03] - [9.889303933e-04 -2.072345965e-04 -1.033661805e-04 2.342906230e-04]] +[[[3.84199457809E-01 5.18702843460E-02 2.00688453200E-02 9.47771570600E-03] + [9.88930393000E-04 -2.07234596000E-04 -1.03366181000E-04 + 2.34290623000E-04]] - [[9.246399088e-04 -7.677049684e-04 4.937888718e-04 -1.714972293e-04] - [4.114647594e-01 1.648172801e-02 6.371490493e-03 -1.049912209e-02]]] -[[[2.700101356e-02 6.982548876e-03 2.846495183e-03 2.233519772e-03] - [4.824194451e-04 1.490107754e-04 1.843163119e-04 1.281731108e-04]] + [[9.24639909000E-04 -7.67704968000E-04 4.93788872000E-04 + -1.71497229000E-04] + [4.11464759400E-01 1.64817280070E-02 6.37149049300E-03 -1.04991220900E-02]]] +[[[2.70010135610E-02 6.98254887600E-03 2.84649518300E-03 2.23351977200E-03] + [4.82419445000E-04 1.49010775000E-04 1.84316312000E-04 1.28173111000E-04]] - [[9.248834636e-04 7.679071859e-04 4.939189384e-04 1.715424026e-04] - [1.524493540e-02 4.501727961e-03 1.055074934e-02 1.043818772e-02]]] + [[9.24883464000E-04 7.67907186000E-04 4.93918938000E-04 1.71542403000E-04] + [1.52449353960E-02 4.50172796100E-03 1.05507493410E-02 1.04381877190E-02]]] domain=10000 type=multiplicity matrix -[[1.000000000e+00 1.000000000e+00] - [1.000000000e+00 1.000000000e+00]] -[[7.851645501e-02 6.871842709e-01] - [1.414213562e+00 4.113034880e-02]] +[[1.00000000000E+00 1.00000000000E+00] + [1.00000000000E+00 1.00000000000E+00]] +[[7.85164550060E-02 6.87184270936E-01] + [1.41421356237E+00 4.11303488040E-02]] domain=10000 type=nu-fission matrix -[[2.014242816e-02 0.000000000e+00] - [4.543664666e-01 0.000000000e+00]] -[[3.149091676e-03 0.000000000e+00] - [2.742550692e-02 0.000000000e+00]] +[[2.01424281630E-02 0.00000000000E+00] + [4.54366466559E-01 0.00000000000E+00]] +[[3.14909167600E-03 0.00000000000E+00] + [2.74255069250E-02 0.00000000000E+00]] domain=10000 type=chi -[1.000000000e+00 0.000000000e+00] -[4.607052347e-02 0.000000000e+00] +[1.00000000000E+00 0.00000000000E+00] +[4.60705234720E-02 0.00000000000E+00] domain=10000 type=chi-prompt -[1.000000000e+00 0.000000000e+00] -[5.147145673e-02 0.000000000e+00] +[1.00000000000E+00 0.00000000000E+00] +[5.14714567340E-02 0.00000000000E+00] domain=10000 type=velocity -[1.751521062e+07 3.501719952e+05] -[1.438175274e+06 2.994593170e+04] +[1.75152106204E+07 3.50171995194E+05] +[1.43817527390E+06 2.99459316967E+04] domain=10000 type=prompt-nu-fission -[1.923922155e-02 4.667190274e-01] -[1.309505950e-03 4.141087040e-02] +[1.92392215460E-02 4.66719027354E-01] +[1.30950595000E-03 4.14108703990E-02] domain=10001 type=total -[3.137376709e-01 3.008214017e-01] -[1.558190236e-02 2.805244843e-02] +[3.13737670907E-01 3.00821401699E-01] +[1.55819023550E-02 2.80524484310E-02] domain=10001 type=transport -[2.732278720e-01 3.123748362e-01] -[3.311536644e-02 4.960583171e-02] +[2.73227872020E-01 3.12374836218E-01] +[3.31153664430E-02 4.96058317050E-02] domain=10001 type=nu-transport -[2.732278720e-01 3.123748362e-01] -[3.311536644e-02 4.960583171e-02] +[2.73227872020E-01 3.12374836218E-01] +[3.31153664430E-02 4.96058317050E-02] domain=10001 type=absorption -[1.574991390e-03 5.400378832e-03] -[3.225478907e-04 6.181383082e-04] +[1.57499139000E-03 5.40037883200E-03] +[3.22547891000E-04 6.18138308000E-04] domain=10001 type=capture -[1.574991390e-03 5.400378832e-03] -[3.225478907e-04 6.181383082e-04] +[1.57499139000E-03 5.40037883200E-03] +[3.22547891000E-04 6.18138308000E-04] domain=10001 type=fission -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10001 type=nu-fission -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10001 type=kappa-fission -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10001 type=scatter -[3.121626795e-01 2.954210229e-01] -[1.532192309e-02 2.744548889e-02] +[3.12162679516E-01 2.95421022866E-01] +[1.53219230920E-02 2.74454888860E-02] domain=10001 type=nu-scatter -[3.101207351e-01 2.962642700e-01] -[3.378810612e-02 4.379222573e-02] +[3.10120735076E-01 2.96264270001E-01] +[3.37881061230E-02 4.37922257330E-02] domain=10001 type=scatter matrix -[[[3.101207351e-01 3.822959036e-02 2.074494197e-02 7.964296772e-03] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] +[[[3.10120735076E-01 3.82295903620E-02 2.07449419700E-02 7.96429677200E-03] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [2.962642700e-01 -1.121363613e-02 8.836566298e-03 -3.270067309e-03]]] -[[[3.378810612e-02 8.483997103e-03 4.695610677e-03 3.731622610e-03] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [2.96264270001E-01 -1.12136361340E-02 8.83656629800E-03 + -3.27006730900E-03]]] +[[[3.37881061230E-02 8.48399710300E-03 4.69561067700E-03 3.73162261000E-03] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [4.379222573e-02 1.618036649e-02 1.150396446e-02 7.328845802e-03]]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [4.37922257330E-02 1.61803664890E-02 1.15039644590E-02 7.32884580200E-03]]] domain=10001 type=nu-scatter matrix -[[[3.101207351e-01 3.822959036e-02 2.074494197e-02 7.964296772e-03] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] +[[[3.10120735076E-01 3.82295903620E-02 2.07449419700E-02 7.96429677200E-03] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [2.962642700e-01 -1.121363613e-02 8.836566298e-03 -3.270067309e-03]]] -[[[3.378810612e-02 8.483997103e-03 4.695610677e-03 3.731622610e-03] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [2.96264270001E-01 -1.12136361340E-02 8.83656629800E-03 + -3.27006730900E-03]]] +[[[3.37881061230E-02 8.48399710300E-03 4.69561067700E-03 3.73162261000E-03] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [4.379222573e-02 1.618036649e-02 1.150396446e-02 7.328845802e-03]]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [4.37922257330E-02 1.61803664890E-02 1.15039644590E-02 7.32884580200E-03]]] domain=10001 type=multiplicity matrix -[[1.000000000e+00 0.000000000e+00] - [0.000000000e+00 1.000000000e+00]] -[[1.087786967e-01 0.000000000e+00] - [0.000000000e+00 1.424271731e-01]] +[[1.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 1.00000000000E+00]] +[[1.08778696728E-01 0.00000000000E+00] + [0.00000000000E+00 1.42427173055E-01]] domain=10001 type=nu-fission matrix -[[0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00]] -[[0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00]] +[[0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00]] +[[0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00]] domain=10001 type=chi -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10001 type=chi-prompt -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10001 type=velocity -[1.667783950e+07 3.349533676e+05] -[1.266444310e+06 3.833678163e+04] +[1.66778394974E+07 3.34953367601E+05] +[1.26644430952E+06 3.83367816257E+04] domain=10001 type=prompt-nu-fission -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10002 type=total -[6.645722606e-01 2.052384014e+00] -[3.121475191e-02 2.243429067e-01] +[6.64572260617E-01 2.05238401381E+00] +[3.12147519130E-02 2.24342906706E-01] domain=10002 type=transport -[2.905652574e-01 1.516438013e+00] -[2.385185464e-02 2.351972685e-01] +[2.90565257425E-01 1.51643801275E+00] +[2.38518546440E-02 2.35197268504E-01] domain=10002 type=nu-transport -[2.905652574e-01 1.516438013e+00] -[2.385185464e-02 2.351972685e-01] +[2.90565257425E-01 1.51643801275E+00] +[2.38518546440E-02 2.35197268504E-01] domain=10002 type=absorption -[6.903995222e-04 3.168725661e-02] -[4.414756871e-05 3.746558582e-03] +[6.90399522000E-04 3.16872566140E-02] +[4.41475690000E-05 3.74655858200E-03] domain=10002 type=capture -[6.903995222e-04 3.168725661e-02] -[4.414756871e-05 3.746558582e-03] +[6.90399522000E-04 3.16872566140E-02] +[4.41475690000E-05 3.74655858200E-03] domain=10002 type=fission -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10002 type=nu-fission -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10002 type=kappa-fission -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10002 type=scatter -[6.638818611e-01 2.020696757e+00] -[3.117268400e-02 2.206044539e-01] +[6.63881861094E-01 2.02069675720E+00] +[3.11726840050E-02 2.20604453857E-01] domain=10002 type=nu-scatter -[6.712692047e-01 2.035388329e+00] -[2.618637117e-02 2.580603286e-01] +[6.71269204714E-01 2.03538832876E+00] +[2.61863711690E-02 2.58060328563E-01] domain=10002 type=scatter matrix -[[[6.399014849e-01 3.811674489e-01 1.523918978e-01 9.148022288e-03] - [3.136771985e-02 8.757723206e-03 -2.567901060e-03 -3.784802882e-03]] +[[[6.39901484868E-01 3.81167448865E-01 1.52391897805E-01 9.14802228800E-03] + [3.13677198460E-02 8.75772320600E-03 -2.56790106000E-03 + -3.78480288200E-03]] - [[4.433431341e-04 3.999604143e-04 3.195627072e-04 2.138469692e-04] - [2.034944986e+00 5.099405132e-01 1.111746088e-01 2.498843574e-02]]] -[[[2.470912280e-02 1.624326492e-02 8.156277703e-03 3.888562142e-03] - [1.728112903e-03 9.256705012e-04 1.013984752e-03 8.170755709e-04]] + [[4.43343134000E-04 3.99960414000E-04 3.19562707000E-04 2.13846969000E-04] + [2.03494498562E+00 5.09940513161E-01 1.11174608804E-01 2.49884357390E-02]]] +[[[2.47091227980E-02 1.62432649210E-02 8.15627770300E-03 3.88856214200E-03] + [1.72811290300E-03 9.25670501000E-04 1.01398475200E-03 8.17075571000E-04]] - [[4.448503933e-04 4.013201827e-04 3.206491430e-04 2.145739971e-04] - [2.577998889e-01 5.123590630e-02 1.301981704e-02 8.312352562e-03]]] + [[4.44850393000E-04 4.01320183000E-04 3.20649143000E-04 2.14573997000E-04] + [2.57799888924E-01 5.12359062970E-02 1.30198170390E-02 8.31235256200E-03]]] domain=10002 type=nu-scatter matrix -[[[6.399014849e-01 3.811674489e-01 1.523918978e-01 9.148022288e-03] - [3.136771985e-02 8.757723206e-03 -2.567901060e-03 -3.784802882e-03]] +[[[6.39901484868E-01 3.81167448865E-01 1.52391897805E-01 9.14802228800E-03] + [3.13677198460E-02 8.75772320600E-03 -2.56790106000E-03 + -3.78480288200E-03]] - [[4.433431341e-04 3.999604143e-04 3.195627072e-04 2.138469692e-04] - [2.034944986e+00 5.099405132e-01 1.111746088e-01 2.498843574e-02]]] -[[[2.470912280e-02 1.624326492e-02 8.156277703e-03 3.888562142e-03] - [1.728112903e-03 9.256705012e-04 1.013984752e-03 8.170755709e-04]] + [[4.43343134000E-04 3.99960414000E-04 3.19562707000E-04 2.13846969000E-04] + [2.03494498562E+00 5.09940513161E-01 1.11174608804E-01 2.49884357390E-02]]] +[[[2.47091227980E-02 1.62432649210E-02 8.15627770300E-03 3.88856214200E-03] + [1.72811290300E-03 9.25670501000E-04 1.01398475200E-03 8.17075571000E-04]] - [[4.448503933e-04 4.013201827e-04 3.206491430e-04 2.145739971e-04] - [2.577998889e-01 5.123590630e-02 1.301981704e-02 8.312352562e-03]]] + [[4.44850393000E-04 4.01320183000E-04 3.20649143000E-04 2.14573997000E-04] + [2.57799888924E-01 5.12359062970E-02 1.30198170390E-02 8.31235256200E-03]]] domain=10002 type=multiplicity matrix -[[1.000000000e+00 1.000000000e+00] - [1.000000000e+00 1.000000000e+00]] -[[3.860919084e-02 6.766734800e-02] - [1.414213562e+00 1.359292066e-01]] +[[1.00000000000E+00 1.00000000000E+00] + [1.00000000000E+00 1.00000000000E+00]] +[[3.86091908370E-02 6.76673480000E-02] + [1.41421356237E+00 1.35929206606E-01]] domain=10002 type=nu-fission matrix -[[0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00]] -[[0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00]] +[[0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00]] +[[0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00]] domain=10002 type=chi -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10002 type=chi-prompt -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] domain=10002 type=velocity -[1.660556287e+07 3.284120387e+05] -[1.042435524e+06 3.882843573e+04] +[1.66055628732E+07 3.28412038650E+05] +[1.04243552374E+06 3.88284357298E+04] domain=10002 type=prompt-nu-fission -[0.000000000e+00 0.000000000e+00] -[0.000000000e+00 0.000000000e+00] +[0.00000000000E+00 0.00000000000E+00] +[0.00000000000E+00 0.00000000000E+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 298ded20f8..7a6e8dda0e 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.148254902e-01 2.279290909e-02 -0 10000 2 total 6.601699186e-01 4.751892791e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596371e-01 2.549359558e-02 -0 10000 2 total 6.476476601e-01 2.370373520e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596371e-01 2.549359558e-02 -0 10000 2 total 6.476476601e-01 2.370373520e-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.740784492e-02 2.692497109e-03 -0 10000 2 total 2.645107416e-01 2.336707739e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.984454994e-02 2.643304329e-03 -0 10000 2 total 7.171935292e-02 2.520785935e-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.563294979e-03 5.084836779e-04 -0 10000 2 total 1.927913887e-01 1.710592187e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.943174037e-02 1.322975612e-03 -0 10000 2 total 4.697747770e-01 4.168199978e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.474569823e+00 9.923532110e-02 -0 10000 2 total 3.728689641e+01 3.308377725e+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.874176453e-01 2.062573210e-02 -0 10000 2 total 3.956591770e-01 2.512505679e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.851883882e-01 2.694562106e-02 -0 10000 2 total 4.123893993e-01 1.542527696e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841994578e-01 2.700101356e-02 -13 10000 1 1 total P1 5.187028435e-02 6.982548876e-03 -14 10000 1 1 total P2 2.006884532e-02 2.846495183e-03 -15 10000 1 1 total P3 9.477715706e-03 2.233519772e-03 -8 10000 1 2 total P0 9.889303933e-04 4.824194451e-04 -9 10000 1 2 total P1 -2.072345965e-04 1.490107754e-04 -10 10000 1 2 total P2 -1.033661805e-04 1.843163119e-04 -11 10000 1 2 total P3 2.342906230e-04 1.281731108e-04 -4 10000 2 1 total P0 9.246399088e-04 9.248834636e-04 -5 10000 2 1 total P1 -7.677049684e-04 7.679071859e-04 -6 10000 2 1 total P2 4.937888718e-04 4.939189384e-04 -7 10000 2 1 total P3 -1.714972293e-04 1.715424026e-04 -0 10000 2 2 total P0 4.114647594e-01 1.524493540e-02 -1 10000 2 2 total P1 1.648172801e-02 4.501727961e-03 -2 10000 2 2 total P2 6.371490493e-03 1.055074934e-02 -3 10000 2 2 total P3 -1.049912209e-02 1.043818772e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841994578e-01 2.700101356e-02 -13 10000 1 1 total P1 5.187028435e-02 6.982548876e-03 -14 10000 1 1 total P2 2.006884532e-02 2.846495183e-03 -15 10000 1 1 total P3 9.477715706e-03 2.233519772e-03 -8 10000 1 2 total P0 9.889303933e-04 4.824194451e-04 -9 10000 1 2 total P1 -2.072345965e-04 1.490107754e-04 -10 10000 1 2 total P2 -1.033661805e-04 1.843163119e-04 -11 10000 1 2 total P3 2.342906230e-04 1.281731108e-04 -4 10000 2 1 total P0 9.246399088e-04 9.248834636e-04 -5 10000 2 1 total P1 -7.677049684e-04 7.679071859e-04 -6 10000 2 1 total P2 4.937888718e-04 4.939189384e-04 -7 10000 2 1 total P3 -1.714972293e-04 1.715424026e-04 -0 10000 2 2 total P0 4.114647594e-01 1.524493540e-02 -1 10000 2 2 total P1 1.648172801e-02 4.501727961e-03 -2 10000 2 2 total P2 6.371490493e-03 1.055074934e-02 -3 10000 2 2 total P3 -1.049912209e-02 1.043818772e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.000000000e+00 7.851645501e-02 -2 10000 1 2 total 1.000000000e+00 6.871842709e-01 -1 10000 2 1 total 1.000000000e+00 1.414213562e+00 -0 10000 2 2 total 1.000000000e+00 4.113034880e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.014242816e-02 3.149091676e-03 -2 10000 1 2 total 0.000000000e+00 0.000000000e+00 -1 10000 2 1 total 4.543664666e-01 2.742550692e-02 -0 10000 2 2 total 0.000000000e+00 0.000000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000000e+00 4.607052347e-02 -0 10000 2 total 0.000000000e+00 0.000000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000000e+00 5.147145673e-02 -0 10000 2 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.751521062e+07 1.438175274e+06 -0 10000 2 total 3.501719952e+05 2.994593170e+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.923922155e-02 1.309505950e-03 -0 10000 2 total 4.667190274e-01 4.141087040e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.137376709e-01 1.558190236e-02 -0 10001 2 total 3.008214017e-01 2.805244843e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732278720e-01 3.311536644e-02 -0 10001 2 total 3.123748362e-01 4.960583171e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732278720e-01 3.311536644e-02 -0 10001 2 total 3.123748362e-01 4.960583171e-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991390e-03 3.225478907e-04 -0 10001 2 total 5.400378832e-03 6.181383082e-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991390e-03 3.225478907e-04 -0 10001 2 total 5.400378832e-03 6.181383082e-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000e+00 0.000000000e+00 -0 10001 2 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000e+00 0.000000000e+00 -0 10001 2 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000e+00 0.000000000e+00 -0 10001 2 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.121626795e-01 1.532192309e-02 -0 10001 2 total 2.954210229e-01 2.744548889e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.101207351e-01 3.378810612e-02 -0 10001 2 total 2.962642700e-01 4.379222573e-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207351e-01 3.378810612e-02 -13 10001 1 1 total P1 3.822959036e-02 8.483997103e-03 -14 10001 1 1 total P2 2.074494197e-02 4.695610677e-03 -15 10001 1 1 total P3 7.964296772e-03 3.731622610e-03 -8 10001 1 2 total P0 0.000000000e+00 0.000000000e+00 -9 10001 1 2 total P1 0.000000000e+00 0.000000000e+00 -10 10001 1 2 total P2 0.000000000e+00 0.000000000e+00 -11 10001 1 2 total P3 0.000000000e+00 0.000000000e+00 -4 10001 2 1 total P0 0.000000000e+00 0.000000000e+00 -5 10001 2 1 total P1 0.000000000e+00 0.000000000e+00 -6 10001 2 1 total P2 0.000000000e+00 0.000000000e+00 -7 10001 2 1 total P3 0.000000000e+00 0.000000000e+00 -0 10001 2 2 total P0 2.962642700e-01 4.379222573e-02 -1 10001 2 2 total P1 -1.121363613e-02 1.618036649e-02 -2 10001 2 2 total P2 8.836566298e-03 1.150396446e-02 -3 10001 2 2 total P3 -3.270067309e-03 7.328845802e-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207351e-01 3.378810612e-02 -13 10001 1 1 total P1 3.822959036e-02 8.483997103e-03 -14 10001 1 1 total P2 2.074494197e-02 4.695610677e-03 -15 10001 1 1 total P3 7.964296772e-03 3.731622610e-03 -8 10001 1 2 total P0 0.000000000e+00 0.000000000e+00 -9 10001 1 2 total P1 0.000000000e+00 0.000000000e+00 -10 10001 1 2 total P2 0.000000000e+00 0.000000000e+00 -11 10001 1 2 total P3 0.000000000e+00 0.000000000e+00 -4 10001 2 1 total P0 0.000000000e+00 0.000000000e+00 -5 10001 2 1 total P1 0.000000000e+00 0.000000000e+00 -6 10001 2 1 total P2 0.000000000e+00 0.000000000e+00 -7 10001 2 1 total P3 0.000000000e+00 0.000000000e+00 -0 10001 2 2 total P0 2.962642700e-01 4.379222573e-02 -1 10001 2 2 total P1 -1.121363613e-02 1.618036649e-02 -2 10001 2 2 total P2 8.836566298e-03 1.150396446e-02 -3 10001 2 2 total P3 -3.270067309e-03 7.328845802e-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.000000000e+00 1.087786967e-01 -2 10001 1 2 total 0.000000000e+00 0.000000000e+00 -1 10001 2 1 total 0.000000000e+00 0.000000000e+00 -0 10001 2 2 total 1.000000000e+00 1.424271731e-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.000000000e+00 0.000000000e+00 -2 10001 1 2 total 0.000000000e+00 0.000000000e+00 -1 10001 2 1 total 0.000000000e+00 0.000000000e+00 -0 10001 2 2 total 0.000000000e+00 0.000000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000000e+00 0.000000000e+00 -0 10001 2 total 0.000000000e+00 0.000000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000000e+00 0.000000000e+00 -0 10001 2 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.667783950e+07 1.266444310e+06 -0 10001 2 total 3.349533676e+05 3.833678163e+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000e+00 0.000000000e+00 -0 10001 2 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.645722606e-01 3.121475191e-02 -0 10002 2 total 2.052384014e+00 2.243429067e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905652574e-01 2.385185464e-02 -0 10002 2 total 1.516438013e+00 2.351972685e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905652574e-01 2.385185464e-02 -0 10002 2 total 1.516438013e+00 2.351972685e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995222e-04 4.414756871e-05 -0 10002 2 total 3.168725661e-02 3.746558582e-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995222e-04 4.414756871e-05 -0 10002 2 total 3.168725661e-02 3.746558582e-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000e+00 0.000000000e+00 -0 10002 2 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000e+00 0.000000000e+00 -0 10002 2 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000e+00 0.000000000e+00 -0 10002 2 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.638818611e-01 3.117268400e-02 -0 10002 2 total 2.020696757e+00 2.206044539e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.712692047e-01 2.618637117e-02 -0 10002 2 total 2.035388329e+00 2.580603286e-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399014849e-01 2.470912280e-02 -13 10002 1 1 total P1 3.811674489e-01 1.624326492e-02 -14 10002 1 1 total P2 1.523918978e-01 8.156277703e-03 -15 10002 1 1 total P3 9.148022288e-03 3.888562142e-03 -8 10002 1 2 total P0 3.136771985e-02 1.728112903e-03 -9 10002 1 2 total P1 8.757723206e-03 9.256705012e-04 -10 10002 1 2 total P2 -2.567901060e-03 1.013984752e-03 -11 10002 1 2 total P3 -3.784802882e-03 8.170755709e-04 -4 10002 2 1 total P0 4.433431341e-04 4.448503933e-04 -5 10002 2 1 total P1 3.999604143e-04 4.013201827e-04 -6 10002 2 1 total P2 3.195627072e-04 3.206491430e-04 -7 10002 2 1 total P3 2.138469692e-04 2.145739971e-04 -0 10002 2 2 total P0 2.034944986e+00 2.577998889e-01 -1 10002 2 2 total P1 5.099405132e-01 5.123590630e-02 -2 10002 2 2 total P2 1.111746088e-01 1.301981704e-02 -3 10002 2 2 total P3 2.498843574e-02 8.312352562e-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399014849e-01 2.470912280e-02 -13 10002 1 1 total P1 3.811674489e-01 1.624326492e-02 -14 10002 1 1 total P2 1.523918978e-01 8.156277703e-03 -15 10002 1 1 total P3 9.148022288e-03 3.888562142e-03 -8 10002 1 2 total P0 3.136771985e-02 1.728112903e-03 -9 10002 1 2 total P1 8.757723206e-03 9.256705012e-04 -10 10002 1 2 total P2 -2.567901060e-03 1.013984752e-03 -11 10002 1 2 total P3 -3.784802882e-03 8.170755709e-04 -4 10002 2 1 total P0 4.433431341e-04 4.448503933e-04 -5 10002 2 1 total P1 3.999604143e-04 4.013201827e-04 -6 10002 2 1 total P2 3.195627072e-04 3.206491430e-04 -7 10002 2 1 total P3 2.138469692e-04 2.145739971e-04 -0 10002 2 2 total P0 2.034944986e+00 2.577998889e-01 -1 10002 2 2 total P1 5.099405132e-01 5.123590630e-02 -2 10002 2 2 total P2 1.111746088e-01 1.301981704e-02 -3 10002 2 2 total P3 2.498843574e-02 8.312352562e-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.000000000e+00 3.860919084e-02 -2 10002 1 2 total 1.000000000e+00 6.766734800e-02 -1 10002 2 1 total 1.000000000e+00 1.414213562e+00 -0 10002 2 2 total 1.000000000e+00 1.359292066e-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.000000000e+00 0.000000000e+00 -2 10002 1 2 total 0.000000000e+00 0.000000000e+00 -1 10002 2 1 total 0.000000000e+00 0.000000000e+00 -0 10002 2 2 total 0.000000000e+00 0.000000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000000e+00 0.000000000e+00 -0 10002 2 total 0.000000000e+00 0.000000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000000e+00 0.000000000e+00 -0 10002 2 total 0.000000000e+00 0.000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.660556287e+07 1.042435524e+06 -0 10002 2 total 3.284120387e+05 3.882843573e+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000e+00 0.000000000e+00 -0 10002 2 total 0.000000000e+00 0.000000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.14825490214E-01 2.27929090940E-02 +0 10000 2 total 6.60169918628E-01 4.75189279080E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.56859637119E-01 2.54935955780E-02 +0 10000 2 total 6.47647660079E-01 2.37037352050E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.56859637119E-01 2.54935955780E-02 +0 10000 2 total 6.47647660079E-01 2.37037352050E-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.74078449200E-02 2.69249710900E-03 +0 10000 2 total 2.64510741628E-01 2.33670773920E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.98445499410E-02 2.64330432900E-03 +0 10000 2 total 7.17193529230E-02 2.52078593510E-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.56329497900E-03 5.08483678000E-04 +0 10000 2 total 1.92791388704E-01 1.71059218670E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.94317403720E-02 1.32297561200E-03 +0 10000 2 total 4.69774777026E-01 4.16819997830E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.47456982255E+00 9.92353210960E-02 +0 10000 2 total 3.72868964072E+01 3.30837772453E+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.87417645294E-01 2.06257321020E-02 +0 10000 2 total 3.95659177000E-01 2.51250567890E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.85188388202E-01 2.69456210650E-02 +0 10000 2 total 4.12389399309E-01 1.54252769580E-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.84199457809E-01 2.70010135610E-02 +13 10000 1 1 total P1 5.18702843460E-02 6.98254887600E-03 +14 10000 1 1 total P2 2.00688453200E-02 2.84649518300E-03 +15 10000 1 1 total P3 9.47771570600E-03 2.23351977200E-03 +8 10000 1 2 total P0 9.88930393000E-04 4.82419445000E-04 +9 10000 1 2 total P1 -2.07234596000E-04 1.49010775000E-04 +10 10000 1 2 total P2 -1.03366181000E-04 1.84316312000E-04 +11 10000 1 2 total P3 2.34290623000E-04 1.28173111000E-04 +4 10000 2 1 total P0 9.24639909000E-04 9.24883464000E-04 +5 10000 2 1 total P1 -7.67704968000E-04 7.67907186000E-04 +6 10000 2 1 total P2 4.93788872000E-04 4.93918938000E-04 +7 10000 2 1 total P3 -1.71497229000E-04 1.71542403000E-04 +0 10000 2 2 total P0 4.11464759400E-01 1.52449353960E-02 +1 10000 2 2 total P1 1.64817280070E-02 4.50172796100E-03 +2 10000 2 2 total P2 6.37149049300E-03 1.05507493410E-02 +3 10000 2 2 total P3 -1.04991220900E-02 1.04381877190E-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.84199457809E-01 2.70010135610E-02 +13 10000 1 1 total P1 5.18702843460E-02 6.98254887600E-03 +14 10000 1 1 total P2 2.00688453200E-02 2.84649518300E-03 +15 10000 1 1 total P3 9.47771570600E-03 2.23351977200E-03 +8 10000 1 2 total P0 9.88930393000E-04 4.82419445000E-04 +9 10000 1 2 total P1 -2.07234596000E-04 1.49010775000E-04 +10 10000 1 2 total P2 -1.03366181000E-04 1.84316312000E-04 +11 10000 1 2 total P3 2.34290623000E-04 1.28173111000E-04 +4 10000 2 1 total P0 9.24639909000E-04 9.24883464000E-04 +5 10000 2 1 total P1 -7.67704968000E-04 7.67907186000E-04 +6 10000 2 1 total P2 4.93788872000E-04 4.93918938000E-04 +7 10000 2 1 total P3 -1.71497229000E-04 1.71542403000E-04 +0 10000 2 2 total P0 4.11464759400E-01 1.52449353960E-02 +1 10000 2 2 total P1 1.64817280070E-02 4.50172796100E-03 +2 10000 2 2 total P2 6.37149049300E-03 1.05507493410E-02 +3 10000 2 2 total P3 -1.04991220900E-02 1.04381877190E-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.00000000000E+00 7.85164550060E-02 +2 10000 1 2 total 1.00000000000E+00 6.87184270936E-01 +1 10000 2 1 total 1.00000000000E+00 1.41421356237E+00 +0 10000 2 2 total 1.00000000000E+00 4.11303488040E-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.01424281630E-02 3.14909167600E-03 +2 10000 1 2 total 0.00000000000E+00 0.00000000000E+00 +1 10000 2 1 total 4.54366466559E-01 2.74255069250E-02 +0 10000 2 2 total 0.00000000000E+00 0.00000000000E+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.00000000000E+00 4.60705234720E-02 +0 10000 2 total 0.00000000000E+00 0.00000000000E+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.00000000000E+00 5.14714567340E-02 +0 10000 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.75152106204E+07 1.43817527390E+06 +0 10000 2 total 3.50171995194E+05 2.99459316967E+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.92392215460E-02 1.30950595000E-03 +0 10000 2 total 4.66719027354E-01 4.14108703990E-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.13737670907E-01 1.55819023550E-02 +0 10001 2 total 3.00821401699E-01 2.80524484310E-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.73227872020E-01 3.31153664430E-02 +0 10001 2 total 3.12374836218E-01 4.96058317050E-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.73227872020E-01 3.31153664430E-02 +0 10001 2 total 3.12374836218E-01 4.96058317050E-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.57499139000E-03 3.22547891000E-04 +0 10001 2 total 5.40037883200E-03 6.18138308000E-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.57499139000E-03 3.22547891000E-04 +0 10001 2 total 5.40037883200E-03 6.18138308000E-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000E+00 0.00000000000E+00 +0 10001 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000E+00 0.00000000000E+00 +0 10001 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000E+00 0.00000000000E+00 +0 10001 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.12162679516E-01 1.53219230920E-02 +0 10001 2 total 2.95421022866E-01 2.74454888860E-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.10120735076E-01 3.37881061230E-02 +0 10001 2 total 2.96264270001E-01 4.37922257330E-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.10120735076E-01 3.37881061230E-02 +13 10001 1 1 total P1 3.82295903620E-02 8.48399710300E-03 +14 10001 1 1 total P2 2.07449419700E-02 4.69561067700E-03 +15 10001 1 1 total P3 7.96429677200E-03 3.73162261000E-03 +8 10001 1 2 total P0 0.00000000000E+00 0.00000000000E+00 +9 10001 1 2 total P1 0.00000000000E+00 0.00000000000E+00 +10 10001 1 2 total P2 0.00000000000E+00 0.00000000000E+00 +11 10001 1 2 total P3 0.00000000000E+00 0.00000000000E+00 +4 10001 2 1 total P0 0.00000000000E+00 0.00000000000E+00 +5 10001 2 1 total P1 0.00000000000E+00 0.00000000000E+00 +6 10001 2 1 total P2 0.00000000000E+00 0.00000000000E+00 +7 10001 2 1 total P3 0.00000000000E+00 0.00000000000E+00 +0 10001 2 2 total P0 2.96264270001E-01 4.37922257330E-02 +1 10001 2 2 total P1 -1.12136361340E-02 1.61803664890E-02 +2 10001 2 2 total P2 8.83656629800E-03 1.15039644590E-02 +3 10001 2 2 total P3 -3.27006730900E-03 7.32884580200E-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.10120735076E-01 3.37881061230E-02 +13 10001 1 1 total P1 3.82295903620E-02 8.48399710300E-03 +14 10001 1 1 total P2 2.07449419700E-02 4.69561067700E-03 +15 10001 1 1 total P3 7.96429677200E-03 3.73162261000E-03 +8 10001 1 2 total P0 0.00000000000E+00 0.00000000000E+00 +9 10001 1 2 total P1 0.00000000000E+00 0.00000000000E+00 +10 10001 1 2 total P2 0.00000000000E+00 0.00000000000E+00 +11 10001 1 2 total P3 0.00000000000E+00 0.00000000000E+00 +4 10001 2 1 total P0 0.00000000000E+00 0.00000000000E+00 +5 10001 2 1 total P1 0.00000000000E+00 0.00000000000E+00 +6 10001 2 1 total P2 0.00000000000E+00 0.00000000000E+00 +7 10001 2 1 total P3 0.00000000000E+00 0.00000000000E+00 +0 10001 2 2 total P0 2.96264270001E-01 4.37922257330E-02 +1 10001 2 2 total P1 -1.12136361340E-02 1.61803664890E-02 +2 10001 2 2 total P2 8.83656629800E-03 1.15039644590E-02 +3 10001 2 2 total P3 -3.27006730900E-03 7.32884580200E-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.00000000000E+00 1.08778696728E-01 +2 10001 1 2 total 0.00000000000E+00 0.00000000000E+00 +1 10001 2 1 total 0.00000000000E+00 0.00000000000E+00 +0 10001 2 2 total 1.00000000000E+00 1.42427173055E-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.00000000000E+00 0.00000000000E+00 +2 10001 1 2 total 0.00000000000E+00 0.00000000000E+00 +1 10001 2 1 total 0.00000000000E+00 0.00000000000E+00 +0 10001 2 2 total 0.00000000000E+00 0.00000000000E+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.00000000000E+00 0.00000000000E+00 +0 10001 2 total 0.00000000000E+00 0.00000000000E+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.00000000000E+00 0.00000000000E+00 +0 10001 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.66778394974E+07 1.26644430952E+06 +0 10001 2 total 3.34953367601E+05 3.83367816257E+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000E+00 0.00000000000E+00 +0 10001 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.64572260617E-01 3.12147519130E-02 +0 10002 2 total 2.05238401381E+00 2.24342906706E-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.90565257425E-01 2.38518546440E-02 +0 10002 2 total 1.51643801275E+00 2.35197268504E-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.90565257425E-01 2.38518546440E-02 +0 10002 2 total 1.51643801275E+00 2.35197268504E-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.90399522000E-04 4.41475690000E-05 +0 10002 2 total 3.16872566140E-02 3.74655858200E-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.90399522000E-04 4.41475690000E-05 +0 10002 2 total 3.16872566140E-02 3.74655858200E-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000E+00 0.00000000000E+00 +0 10002 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000E+00 0.00000000000E+00 +0 10002 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000E+00 0.00000000000E+00 +0 10002 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.63881861094E-01 3.11726840050E-02 +0 10002 2 total 2.02069675720E+00 2.20604453857E-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.71269204714E-01 2.61863711690E-02 +0 10002 2 total 2.03538832876E+00 2.58060328563E-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.39901484868E-01 2.47091227980E-02 +13 10002 1 1 total P1 3.81167448865E-01 1.62432649210E-02 +14 10002 1 1 total P2 1.52391897805E-01 8.15627770300E-03 +15 10002 1 1 total P3 9.14802228800E-03 3.88856214200E-03 +8 10002 1 2 total P0 3.13677198460E-02 1.72811290300E-03 +9 10002 1 2 total P1 8.75772320600E-03 9.25670501000E-04 +10 10002 1 2 total P2 -2.56790106000E-03 1.01398475200E-03 +11 10002 1 2 total P3 -3.78480288200E-03 8.17075571000E-04 +4 10002 2 1 total P0 4.43343134000E-04 4.44850393000E-04 +5 10002 2 1 total P1 3.99960414000E-04 4.01320183000E-04 +6 10002 2 1 total P2 3.19562707000E-04 3.20649143000E-04 +7 10002 2 1 total P3 2.13846969000E-04 2.14573997000E-04 +0 10002 2 2 total P0 2.03494498562E+00 2.57799888924E-01 +1 10002 2 2 total P1 5.09940513161E-01 5.12359062970E-02 +2 10002 2 2 total P2 1.11174608804E-01 1.30198170390E-02 +3 10002 2 2 total P3 2.49884357390E-02 8.31235256200E-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.39901484868E-01 2.47091227980E-02 +13 10002 1 1 total P1 3.81167448865E-01 1.62432649210E-02 +14 10002 1 1 total P2 1.52391897805E-01 8.15627770300E-03 +15 10002 1 1 total P3 9.14802228800E-03 3.88856214200E-03 +8 10002 1 2 total P0 3.13677198460E-02 1.72811290300E-03 +9 10002 1 2 total P1 8.75772320600E-03 9.25670501000E-04 +10 10002 1 2 total P2 -2.56790106000E-03 1.01398475200E-03 +11 10002 1 2 total P3 -3.78480288200E-03 8.17075571000E-04 +4 10002 2 1 total P0 4.43343134000E-04 4.44850393000E-04 +5 10002 2 1 total P1 3.99960414000E-04 4.01320183000E-04 +6 10002 2 1 total P2 3.19562707000E-04 3.20649143000E-04 +7 10002 2 1 total P3 2.13846969000E-04 2.14573997000E-04 +0 10002 2 2 total P0 2.03494498562E+00 2.57799888924E-01 +1 10002 2 2 total P1 5.09940513161E-01 5.12359062970E-02 +2 10002 2 2 total P2 1.11174608804E-01 1.30198170390E-02 +3 10002 2 2 total P3 2.49884357390E-02 8.31235256200E-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.00000000000E+00 3.86091908370E-02 +2 10002 1 2 total 1.00000000000E+00 6.76673480000E-02 +1 10002 2 1 total 1.00000000000E+00 1.41421356237E+00 +0 10002 2 2 total 1.00000000000E+00 1.35929206606E-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.00000000000E+00 0.00000000000E+00 +2 10002 1 2 total 0.00000000000E+00 0.00000000000E+00 +1 10002 2 1 total 0.00000000000E+00 0.00000000000E+00 +0 10002 2 2 total 0.00000000000E+00 0.00000000000E+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.00000000000E+00 0.00000000000E+00 +0 10002 2 total 0.00000000000E+00 0.00000000000E+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.00000000000E+00 0.00000000000E+00 +0 10002 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.66055628732E+07 1.04243552374E+06 +0 10002 2 total 3.28412038650E+05 3.88284357298E+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000E+00 0.00000000000E+00 +0 10002 2 total 0.00000000000E+00 0.00000000000E+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 907c223bfc..13c79782ed 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -0acca7db0372f24bfa984e055c4dc706ce2b069dffd7124bc0c45cdf6f151d56435cc92aad67fa068c88ae14afe44aadf13d76b32a18eee17affc92ae3498b8d \ No newline at end of file +14ebc83b998b90376a733c80a25c54ed334606cb4eb7a3c13ff3bda041ade473d3e9c8499a04fce92f2096300b026ed331b00e14b233c4ea4c6e9a3305c3e77b \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 76de7e3f25..83d8428510 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.000000000e+02 0.000000000e+00 7.000000000e+02 8.000000000e+02] + Temperature = [5.00000000000E+02 0.00000000000E+00 7.00000000000E+02 8.00000000000E+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index fce4790688..19e72aab2a 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -3fb1940a428b77249d1df7dbe44f8edb6b34b9ef7002343b423416def12ccdb8dac35b154a9f1d603f54587492320211613959ed5c1b6bea91cd095b7d98e56c \ No newline at end of file +d3ed1243d3e7a30a7b353539596ccb23cfb7293f6495e75644ff28868f629f34aa8e23023bad0c54aa2f2c048e6c89a47f454b8cffa90042669eb269f7ada74e \ No newline at end of file diff --git a/tests/test_tally_aggregation/test_tally_aggregation.py b/tests/test_tally_aggregation/test_tally_aggregation.py index fdc086e682..53bc96d4aa 100644 --- a/tests/test_tally_aggregation/test_tally_aggregation.py +++ b/tests/test_tally_aggregation/test_tally_aggregation.py @@ -69,6 +69,8 @@ class TallyAggregationTestHarness(PyAPITestHarness): outstr += ', '.join(map(str, tally_sum.mean)) outstr += ', '.join(map(str, tally_sum.std_dev)) + print(outstr) + # Hash the results if necessary if hash_output: sha512 = hashlib.sha512() diff --git a/tests/test_tally_arithmetic/results_true.dat b/tests/test_tally_arithmetic/results_true.dat index 0d0a8f2171..62680ce639 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] +[[[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] ..., - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]]][[[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]]][[[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] ..., - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]]][[[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]]][[[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] ..., - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00]]][[[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]]][[[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] ..., - [[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]]][[[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]]][[[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] ..., - [[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]] + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] - [[0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00] - [0.000000000e+00 0.000000000e+00 0.000000000e+00]]] \ No newline at end of file + [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] + [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 7ad20ad843..4667fe731d 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -11,12 +11,12 @@ import sys import numpy as np import pandas as pd -# Require numpy and pandas to print output in scientific notation with 10 -# significant figures. This is needed to avoid round off error when large -# numbers are printed, which can cause tests to fail for different build -# configurations. -np.set_printoptions(formatter={'float': '{:.9e}'.format}) -pd.options.display.float_format = '{:.9e}'.format +# Require numpy and pandas to print output rounded to 12 decimal places and in +# scientific notation with 12 significant figures. This is needed to avoid round +# off error when large numbers are printed, which can cause tests to fail for +# different build configurations. +np.set_printoptions(formatter={'float': lambda x: format(np.around(x, 12), '13.11E')}) +pd.set_option('display.float_format', lambda x: '%13.11E' % np.around(x,12)) sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From 880a0055484831924b5d340efe123af9b9e251c5 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 09:50:51 -0600 Subject: [PATCH 146/417] removed print statement in tally aggregation test --- tests/test_tally_aggregation/test_tally_aggregation.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/test_tally_aggregation/test_tally_aggregation.py b/tests/test_tally_aggregation/test_tally_aggregation.py index 53bc96d4aa..fdc086e682 100644 --- a/tests/test_tally_aggregation/test_tally_aggregation.py +++ b/tests/test_tally_aggregation/test_tally_aggregation.py @@ -69,8 +69,6 @@ class TallyAggregationTestHarness(PyAPITestHarness): outstr += ', '.join(map(str, tally_sum.mean)) outstr += ', '.join(map(str, tally_sum.std_dev)) - print(outstr) - # Hash the results if necessary if hash_output: sha512 = hashlib.sha512() From 5876511038559a3f5f3c5fd7a0d34a6903fcb3a0 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 10:07:59 -0600 Subject: [PATCH 147/417] changed number of sig figs in testing harness from 12 to 10 --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 320 ++++++----- .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 8 +- 9 files changed, 693 insertions(+), 701 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 06dbe0c143..de6f408248 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.53624422471E-01 2.10526963250E-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.00852177884E-01 2.28575540030E-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.00852177884E-01 2.28575540030E-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.49034558320E-02 4.31276120000E-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.80480660340E-02 4.57996368900E-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.68553897980E-02 2.62215977600E-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.06492898580E-02 6.40987451700E-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.13795513809E+00 5.07363814554E-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.88720966639E-01 1.78304285990E-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.89303556282E-01 2.30755385730E-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.89303556282E-01 2.31456046240E-02 -1 10000 1 1 total P1 4.62244178310E-02 5.90716955700E-03 -2 10000 1 1 total P2 1.79835850200E-02 2.88297198200E-03 -3 10000 1 1 total P3 6.62837351400E-03 2.45710898400E-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.89303556282E-01 2.31456046240E-02 -1 10000 1 1 total P1 4.62244178310E-02 5.90716955700E-03 -2 10000 1 1 total P2 1.79835850200E-02 2.88297198200E-03 -3 10000 1 1 total P3 6.62837351400E-03 2.45710898400E-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.00000000000E+00 6.61108201730E-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.58350193370E-02 5.59182486100E-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.00000000000E+00 4.60705234720E-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.00000000000E+00 5.14714567340E-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.00130873975E+06 1.46216555365E+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.00039777880E-02 6.36690787400E-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.11594108102E-01 1.37931681280E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.79255063691E-01 2.91895009800E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.79255063691E-01 2.91895009800E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.20984640200E-03 2.86334127000E-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.20984640200E-03 2.86334127000E-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.09384261701E-01 1.35512674910E-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.07987349445E-01 2.93080885040E-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.07987349445E-01 2.93080885040E-02 -1 10001 1 1 total P1 3.06171532540E-02 7.46445601200E-03 -2 10001 1 1 total P2 1.89114904070E-02 4.32282773200E-03 -3 10001 1 1 total P3 6.23461818700E-03 3.33820228100E-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.07987349445E-01 2.93080885040E-02 -1 10001 1 1 total P1 3.06171532540E-02 7.46445601200E-03 -2 10001 1 1 total P2 1.89114904070E-02 4.32282773200E-03 -3 10001 1 1 total P3 6.23461818700E-03 3.33820228100E-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.00000000000E+00 9.50387215070E-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.00000000000E+00 0.00000000000E+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.00000000000E+00 0.00000000000E+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.83326115257E+06 1.66355174520E+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.04998833317E-01 4.39644875950E-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.99183982700E-01 4.09141196050E-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.99183982700E-01 4.09141196050E-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.06034115700E-03 5.54524424000E-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.06034115700E-03 5.54524424000E-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.98938492160E-01 4.34929841730E-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.03414663159E-01 4.39587370760E-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.03414663159E-01 4.35859938040E-02 -1 10002 1 1 total P1 4.10417418590E-01 1.58772201940E-02 -2 10002 1 1 total P2 1.43301036475E-01 7.18737766300E-03 -3 10002 1 1 total P3 8.73942634100E-03 3.57144134500E-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.03414663159E-01 4.35859938040E-02 -1 10002 1 1 total P1 4.10417418590E-01 1.58772201940E-02 -2 10002 1 1 total P2 1.43301036475E-01 7.18737766300E-03 -3 10002 1 1 total P3 8.73942634100E-03 3.57144134500E-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.00000000000E+00 5.68667253070E-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.00000000000E+00 0.00000000000E+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.00000000000E+00 0.00000000000E+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.73219969947E+06 1.59691426430E+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.536244225E-01 2.105269630E-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008521779E-01 2.285755400E-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008521779E-01 2.285755400E-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.490345580E-02 4.312761200E-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.804806600E-02 4.579963700E-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.685538980E-02 2.622159800E-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.064928990E-02 6.409874500E-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.137955138E+00 5.073638146E-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.887209666E-01 1.783042860E-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.893035563E-01 2.307553860E-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893035563E-01 2.314560460E-02 +1 10000 1 1 total P1 4.622441780E-02 5.907169600E-03 +2 10000 1 1 total P2 1.798358500E-02 2.882972000E-03 +3 10000 1 1 total P3 6.628373500E-03 2.457109000E-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893035563E-01 2.314560460E-02 +1 10000 1 1 total P1 4.622441780E-02 5.907169600E-03 +2 10000 1 1 total P2 1.798358500E-02 2.882972000E-03 +3 10000 1 1 total P3 6.628373500E-03 2.457109000E-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.000000000E+00 6.611082020E-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.583501930E-02 5.591824900E-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000000E+00 4.607052350E-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000000E+00 5.147145670E-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.001308740E+06 1.462165554E+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.000397780E-02 6.366907900E-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.115941081E-01 1.379316810E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792550637E-01 2.918950100E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792550637E-01 2.918950100E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846400E-03 2.863341000E-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846400E-03 2.863341000E-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.093842617E-01 1.355126750E-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.079873494E-01 2.930808850E-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873494E-01 2.930808850E-02 +1 10001 1 1 total P1 3.061715330E-02 7.464456000E-03 +2 10001 1 1 total P2 1.891149040E-02 4.322827700E-03 +3 10001 1 1 total P3 6.234618200E-03 3.338202300E-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873494E-01 2.930808850E-02 +1 10001 1 1 total P1 3.061715330E-02 7.464456000E-03 +2 10001 1 1 total P2 1.891149040E-02 4.322827700E-03 +3 10001 1 1 total P3 6.234618200E-03 3.338202300E-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.000000000E+00 9.503872150E-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.000000000E+00 0.000000000E+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000000E+00 0.000000000E+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.833261153E+06 1.663551745E+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.049988333E-01 4.396448760E-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991839827E-01 4.091411960E-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991839827E-01 4.091411960E-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341200E-03 5.545244000E-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341200E-03 5.545244000E-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.989384922E-01 4.349298420E-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.034146632E-01 4.395873710E-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034146632E-01 4.358599380E-02 +1 10002 1 1 total P1 4.104174186E-01 1.587722020E-02 +2 10002 1 1 total P2 1.433010365E-01 7.187377700E-03 +3 10002 1 1 total P3 8.739426300E-03 3.571441300E-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034146632E-01 4.358599380E-02 +1 10002 1 1 total P1 4.104174186E-01 1.587722020E-02 +2 10002 1 1 total P2 1.433010365E-01 7.187377700E-03 +3 10002 1 1 total P3 8.739426300E-03 3.571441300E-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.000000000E+00 5.686672530E-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.000000000E+00 0.000000000E+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000000E+00 0.000000000E+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.732199699E+06 1.596914264E+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000000E+00 0.000000000E+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 1bb49ceb39..5b2385cd8b 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.14593400053E+00 5.53821694685E-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919198978E-01 5.20644255933E-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919198978E-01 5.20644255933E-01 - 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 1.97622061150E-02 1.06287640930E-02 - 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 1.97622061150E-02 1.06287640930E-02 - 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.00000000000E+00 0.00000000000E+00 - 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.00000000000E+00 0.00000000000E+00 - 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.00000000000E+00 0.00000000000E+00 - 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 1.12617179441E+00 5.43440008398E-01 - 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 1.14254691911E+00 5.70131389856E-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254691911E+00 5.70131389856E-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294335E-01 2.16322168307E-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793415E-01 6.65037725810E-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282704190E-02 2.46208323200E-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254691911E+00 5.70131389856E-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294335E-01 2.16322168307E-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793415E-01 6.65037725810E-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282704190E-02 2.46208323200E-02 - 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 1.00000000000E+00 5.29717327374E-01 - 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.00000000000E+00 0.00000000000E+00 - 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.00000000000E+00 0.00000000000E+00 - 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.00000000000E+00 0.00000000000E+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.74245714482E+05 4.16397691599E+05 - 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.00000000000E+00 0.00000000000E+00 + 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 1.145934001E+00 5.538216947E-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191990E-01 5.206442559E-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191990E-01 5.206442559E-01 + 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 1.976220610E-02 1.062876410E-02 + 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 1.976220610E-02 1.062876410E-02 + 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.000000000E+00 0.000000000E+00 + 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.000000000E+00 0.000000000E+00 + 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.000000000E+00 0.000000000E+00 + 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 1.126171794E+00 5.434400084E-01 + 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 1.142546919E+00 5.701313899E-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919E+00 5.701313899E-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943E-01 2.163221683E-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934E-01 6.650377260E-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827040E-02 2.462083230E-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919E+00 5.701313899E-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943E-01 2.163221683E-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934E-01 6.650377260E-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827040E-02 2.462083230E-02 + 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 1.000000000E+00 5.297173274E-01 + 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.000000000E+00 0.000000000E+00 + 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.000000000E+00 0.000000000E+00 + 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.000000000E+00 0.000000000E+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457145E+05 4.163976916E+05 + 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.000000000E+00 0.000000000E+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 28e1aef4ee..9a042191f8 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,230 +1,222 @@ domain=10000 type=total -[4.14825490214E-01 6.60169918628E-01] -[2.27929090940E-02 4.75189279080E-02] +[4.148254902E-01 6.601699186E-01] +[2.279290910E-02 4.751892790E-02] domain=10000 type=transport -[3.56859637119E-01 6.47647660079E-01] -[2.54935955780E-02 2.37037352050E-02] +[3.568596371E-01 6.476476601E-01] +[2.549359560E-02 2.370373520E-02] domain=10000 type=nu-transport -[3.56859637119E-01 6.47647660079E-01] -[2.54935955780E-02 2.37037352050E-02] +[3.568596371E-01 6.476476601E-01] +[2.549359560E-02 2.370373520E-02] domain=10000 type=absorption -[2.74078449200E-02 2.64510741628E-01] -[2.69249710900E-03 2.33670773920E-02] +[2.740784490E-02 2.645107416E-01] +[2.692497100E-03 2.336707740E-02] domain=10000 type=capture -[1.98445499410E-02 7.17193529230E-02] -[2.64330432900E-03 2.52078593510E-02] +[1.984454990E-02 7.171935290E-02] +[2.643304300E-03 2.520785940E-02] domain=10000 type=fission -[7.56329497900E-03 1.92791388704E-01] -[5.08483678000E-04 1.71059218670E-02] +[7.563295000E-03 1.927913887E-01] +[5.084837000E-04 1.710592190E-02] domain=10000 type=nu-fission -[1.94317403720E-02 4.69774777026E-01] -[1.32297561200E-03 4.16819997830E-02] +[1.943174040E-02 4.697747770E-01] +[1.322975600E-03 4.168199980E-02] domain=10000 type=kappa-fission -[1.47456982255E+00 3.72868964072E+01] -[9.92353210960E-02 3.30837772453E+00] +[1.474569823E+00 3.728689641E+01] +[9.923532110E-02 3.308377725E+00] domain=10000 type=scatter -[3.87417645294E-01 3.95659177000E-01] -[2.06257321020E-02 2.51250567890E-02] +[3.874176453E-01 3.956591770E-01] +[2.062573210E-02 2.512505680E-02] domain=10000 type=nu-scatter -[3.85188388202E-01 4.12389399309E-01] -[2.69456210650E-02 1.54252769580E-02] +[3.851883882E-01 4.123893993E-01] +[2.694562110E-02 1.542527700E-02] domain=10000 type=scatter matrix -[[[3.84199457809E-01 5.18702843460E-02 2.00688453200E-02 9.47771570600E-03] - [9.88930393000E-04 -2.07234596000E-04 -1.03366181000E-04 - 2.34290623000E-04]] +[[[3.841994578E-01 5.187028430E-02 2.006884530E-02 9.477715700E-03] + [9.889304000E-04 -2.072346000E-04 -1.033662000E-04 2.342906000E-04]] - [[9.24639909000E-04 -7.67704968000E-04 4.93788872000E-04 - -1.71497229000E-04] - [4.11464759400E-01 1.64817280070E-02 6.37149049300E-03 -1.04991220900E-02]]] -[[[2.70010135610E-02 6.98254887600E-03 2.84649518300E-03 2.23351977200E-03] - [4.82419445000E-04 1.49010775000E-04 1.84316312000E-04 1.28173111000E-04]] + [[9.246399000E-04 -7.677050000E-04 4.937889000E-04 -1.714972000E-04] + [4.114647594E-01 1.648172800E-02 6.371490500E-03 -1.049912210E-02]]] +[[[2.700101360E-02 6.982548900E-03 2.846495200E-03 2.233519800E-03] + [4.824194000E-04 1.490108000E-04 1.843163000E-04 1.281731000E-04]] - [[9.24883464000E-04 7.67907186000E-04 4.93918938000E-04 1.71542403000E-04] - [1.52449353960E-02 4.50172796100E-03 1.05507493410E-02 1.04381877190E-02]]] + [[9.248835000E-04 7.679072000E-04 4.939189000E-04 1.715424000E-04] + [1.524493540E-02 4.501728000E-03 1.055074930E-02 1.043818770E-02]]] domain=10000 type=nu-scatter matrix -[[[3.84199457809E-01 5.18702843460E-02 2.00688453200E-02 9.47771570600E-03] - [9.88930393000E-04 -2.07234596000E-04 -1.03366181000E-04 - 2.34290623000E-04]] +[[[3.841994578E-01 5.187028430E-02 2.006884530E-02 9.477715700E-03] + [9.889304000E-04 -2.072346000E-04 -1.033662000E-04 2.342906000E-04]] - [[9.24639909000E-04 -7.67704968000E-04 4.93788872000E-04 - -1.71497229000E-04] - [4.11464759400E-01 1.64817280070E-02 6.37149049300E-03 -1.04991220900E-02]]] -[[[2.70010135610E-02 6.98254887600E-03 2.84649518300E-03 2.23351977200E-03] - [4.82419445000E-04 1.49010775000E-04 1.84316312000E-04 1.28173111000E-04]] + [[9.246399000E-04 -7.677050000E-04 4.937889000E-04 -1.714972000E-04] + [4.114647594E-01 1.648172800E-02 6.371490500E-03 -1.049912210E-02]]] +[[[2.700101360E-02 6.982548900E-03 2.846495200E-03 2.233519800E-03] + [4.824194000E-04 1.490108000E-04 1.843163000E-04 1.281731000E-04]] - [[9.24883464000E-04 7.67907186000E-04 4.93918938000E-04 1.71542403000E-04] - [1.52449353960E-02 4.50172796100E-03 1.05507493410E-02 1.04381877190E-02]]] + [[9.248835000E-04 7.679072000E-04 4.939189000E-04 1.715424000E-04] + [1.524493540E-02 4.501728000E-03 1.055074930E-02 1.043818770E-02]]] domain=10000 type=multiplicity matrix -[[1.00000000000E+00 1.00000000000E+00] - [1.00000000000E+00 1.00000000000E+00]] -[[7.85164550060E-02 6.87184270936E-01] - [1.41421356237E+00 4.11303488040E-02]] +[[1.000000000E+00 1.000000000E+00] + [1.000000000E+00 1.000000000E+00]] +[[7.851645500E-02 6.871842709E-01] + [1.414213562E+00 4.113034880E-02]] domain=10000 type=nu-fission matrix -[[2.01424281630E-02 0.00000000000E+00] - [4.54366466559E-01 0.00000000000E+00]] -[[3.14909167600E-03 0.00000000000E+00] - [2.74255069250E-02 0.00000000000E+00]] +[[2.014242820E-02 0.000000000E+00] + [4.543664666E-01 0.000000000E+00]] +[[3.149091700E-03 0.000000000E+00] + [2.742550690E-02 0.000000000E+00]] domain=10000 type=chi -[1.00000000000E+00 0.00000000000E+00] -[4.60705234720E-02 0.00000000000E+00] +[1.000000000E+00 0.000000000E+00] +[4.607052350E-02 0.000000000E+00] domain=10000 type=chi-prompt -[1.00000000000E+00 0.00000000000E+00] -[5.14714567340E-02 0.00000000000E+00] +[1.000000000E+00 0.000000000E+00] +[5.147145670E-02 0.000000000E+00] domain=10000 type=velocity -[1.75152106204E+07 3.50171995194E+05] -[1.43817527390E+06 2.99459316967E+04] +[1.751521062E+07 3.501719952E+05] +[1.438175274E+06 2.994593170E+04] domain=10000 type=prompt-nu-fission -[1.92392215460E-02 4.66719027354E-01] -[1.30950595000E-03 4.14108703990E-02] +[1.923922150E-02 4.667190274E-01] +[1.309506000E-03 4.141087040E-02] domain=10001 type=total -[3.13737670907E-01 3.00821401699E-01] -[1.55819023550E-02 2.80524484310E-02] +[3.137376709E-01 3.008214017E-01] +[1.558190240E-02 2.805244840E-02] domain=10001 type=transport -[2.73227872020E-01 3.12374836218E-01] -[3.31153664430E-02 4.96058317050E-02] +[2.732278720E-01 3.123748362E-01] +[3.311536640E-02 4.960583170E-02] domain=10001 type=nu-transport -[2.73227872020E-01 3.12374836218E-01] -[3.31153664430E-02 4.96058317050E-02] +[2.732278720E-01 3.123748362E-01] +[3.311536640E-02 4.960583170E-02] domain=10001 type=absorption -[1.57499139000E-03 5.40037883200E-03] -[3.22547891000E-04 6.18138308000E-04] +[1.574991400E-03 5.400378800E-03] +[3.225479000E-04 6.181383000E-04] domain=10001 type=capture -[1.57499139000E-03 5.40037883200E-03] -[3.22547891000E-04 6.18138308000E-04] +[1.574991400E-03 5.400378800E-03] +[3.225479000E-04 6.181383000E-04] domain=10001 type=fission -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10001 type=nu-fission -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10001 type=kappa-fission -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10001 type=scatter -[3.12162679516E-01 2.95421022866E-01] -[1.53219230920E-02 2.74454888860E-02] +[3.121626795E-01 2.954210229E-01] +[1.532192310E-02 2.744548890E-02] domain=10001 type=nu-scatter -[3.10120735076E-01 2.96264270001E-01] -[3.37881061230E-02 4.37922257330E-02] +[3.101207351E-01 2.962642700E-01] +[3.378810610E-02 4.379222570E-02] domain=10001 type=scatter matrix -[[[3.10120735076E-01 3.82295903620E-02 2.07449419700E-02 7.96429677200E-03] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] +[[[3.101207351E-01 3.822959040E-02 2.074494200E-02 7.964296800E-03] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [2.96264270001E-01 -1.12136361340E-02 8.83656629800E-03 - -3.27006730900E-03]]] -[[[3.37881061230E-02 8.48399710300E-03 4.69561067700E-03 3.73162261000E-03] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [2.962642700E-01 -1.121363610E-02 8.836566300E-03 -3.270067300E-03]]] +[[[3.378810610E-02 8.483997100E-03 4.695610700E-03 3.731622600E-03] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [4.37922257330E-02 1.61803664890E-02 1.15039644590E-02 7.32884580200E-03]]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [4.379222570E-02 1.618036650E-02 1.150396450E-02 7.328845800E-03]]] domain=10001 type=nu-scatter matrix -[[[3.10120735076E-01 3.82295903620E-02 2.07449419700E-02 7.96429677200E-03] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] +[[[3.101207351E-01 3.822959040E-02 2.074494200E-02 7.964296800E-03] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [2.96264270001E-01 -1.12136361340E-02 8.83656629800E-03 - -3.27006730900E-03]]] -[[[3.37881061230E-02 8.48399710300E-03 4.69561067700E-03 3.73162261000E-03] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [2.962642700E-01 -1.121363610E-02 8.836566300E-03 -3.270067300E-03]]] +[[[3.378810610E-02 8.483997100E-03 4.695610700E-03 3.731622600E-03] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [4.37922257330E-02 1.61803664890E-02 1.15039644590E-02 7.32884580200E-03]]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [4.379222570E-02 1.618036650E-02 1.150396450E-02 7.328845800E-03]]] domain=10001 type=multiplicity matrix -[[1.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 1.00000000000E+00]] -[[1.08778696728E-01 0.00000000000E+00] - [0.00000000000E+00 1.42427173055E-01]] +[[1.000000000E+00 0.000000000E+00] + [0.000000000E+00 1.000000000E+00]] +[[1.087786967E-01 0.000000000E+00] + [0.000000000E+00 1.424271731E-01]] domain=10001 type=nu-fission matrix -[[0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00]] -[[0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00]] +[[0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00]] +[[0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00]] domain=10001 type=chi -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10001 type=chi-prompt -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10001 type=velocity -[1.66778394974E+07 3.34953367601E+05] -[1.26644430952E+06 3.83367816257E+04] +[1.667783950E+07 3.349533676E+05] +[1.266444310E+06 3.833678163E+04] domain=10001 type=prompt-nu-fission -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10002 type=total -[6.64572260617E-01 2.05238401381E+00] -[3.12147519130E-02 2.24342906706E-01] +[6.645722606E-01 2.052384014E+00] +[3.121475190E-02 2.243429067E-01] domain=10002 type=transport -[2.90565257425E-01 1.51643801275E+00] -[2.38518546440E-02 2.35197268504E-01] +[2.905652574E-01 1.516438013E+00] +[2.385185460E-02 2.351972685E-01] domain=10002 type=nu-transport -[2.90565257425E-01 1.51643801275E+00] -[2.38518546440E-02 2.35197268504E-01] +[2.905652574E-01 1.516438013E+00] +[2.385185460E-02 2.351972685E-01] domain=10002 type=absorption -[6.90399522000E-04 3.16872566140E-02] -[4.41475690000E-05 3.74655858200E-03] +[6.903995000E-04 3.168725660E-02] +[4.414760000E-05 3.746558600E-03] domain=10002 type=capture -[6.90399522000E-04 3.16872566140E-02] -[4.41475690000E-05 3.74655858200E-03] +[6.903995000E-04 3.168725660E-02] +[4.414760000E-05 3.746558600E-03] domain=10002 type=fission -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10002 type=nu-fission -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10002 type=kappa-fission -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10002 type=scatter -[6.63881861094E-01 2.02069675720E+00] -[3.11726840050E-02 2.20604453857E-01] +[6.638818611E-01 2.020696757E+00] +[3.117268400E-02 2.206044539E-01] domain=10002 type=nu-scatter -[6.71269204714E-01 2.03538832876E+00] -[2.61863711690E-02 2.58060328563E-01] +[6.712692047E-01 2.035388329E+00] +[2.618637120E-02 2.580603286E-01] domain=10002 type=scatter matrix -[[[6.39901484868E-01 3.81167448865E-01 1.52391897805E-01 9.14802228800E-03] - [3.13677198460E-02 8.75772320600E-03 -2.56790106000E-03 - -3.78480288200E-03]] +[[[6.399014849E-01 3.811674489E-01 1.523918978E-01 9.148022300E-03] + [3.136771980E-02 8.757723200E-03 -2.567901100E-03 -3.784802900E-03]] - [[4.43343134000E-04 3.99960414000E-04 3.19562707000E-04 2.13846969000E-04] - [2.03494498562E+00 5.09940513161E-01 1.11174608804E-01 2.49884357390E-02]]] -[[[2.47091227980E-02 1.62432649210E-02 8.15627770300E-03 3.88856214200E-03] - [1.72811290300E-03 9.25670501000E-04 1.01398475200E-03 8.17075571000E-04]] + [[4.433431000E-04 3.999604000E-04 3.195627000E-04 2.138470000E-04] + [2.034944986E+00 5.099405132E-01 1.111746088E-01 2.498843570E-02]]] +[[[2.470912280E-02 1.624326490E-02 8.156277700E-03 3.888562100E-03] + [1.728112900E-03 9.256705000E-04 1.013984800E-03 8.170756000E-04]] - [[4.44850393000E-04 4.01320183000E-04 3.20649143000E-04 2.14573997000E-04] - [2.57799888924E-01 5.12359062970E-02 1.30198170390E-02 8.31235256200E-03]]] + [[4.448504000E-04 4.013202000E-04 3.206491000E-04 2.145740000E-04] + [2.577998889E-01 5.123590630E-02 1.301981700E-02 8.312352600E-03]]] domain=10002 type=nu-scatter matrix -[[[6.39901484868E-01 3.81167448865E-01 1.52391897805E-01 9.14802228800E-03] - [3.13677198460E-02 8.75772320600E-03 -2.56790106000E-03 - -3.78480288200E-03]] +[[[6.399014849E-01 3.811674489E-01 1.523918978E-01 9.148022300E-03] + [3.136771980E-02 8.757723200E-03 -2.567901100E-03 -3.784802900E-03]] - [[4.43343134000E-04 3.99960414000E-04 3.19562707000E-04 2.13846969000E-04] - [2.03494498562E+00 5.09940513161E-01 1.11174608804E-01 2.49884357390E-02]]] -[[[2.47091227980E-02 1.62432649210E-02 8.15627770300E-03 3.88856214200E-03] - [1.72811290300E-03 9.25670501000E-04 1.01398475200E-03 8.17075571000E-04]] + [[4.433431000E-04 3.999604000E-04 3.195627000E-04 2.138470000E-04] + [2.034944986E+00 5.099405132E-01 1.111746088E-01 2.498843570E-02]]] +[[[2.470912280E-02 1.624326490E-02 8.156277700E-03 3.888562100E-03] + [1.728112900E-03 9.256705000E-04 1.013984800E-03 8.170756000E-04]] - [[4.44850393000E-04 4.01320183000E-04 3.20649143000E-04 2.14573997000E-04] - [2.57799888924E-01 5.12359062970E-02 1.30198170390E-02 8.31235256200E-03]]] + [[4.448504000E-04 4.013202000E-04 3.206491000E-04 2.145740000E-04] + [2.577998889E-01 5.123590630E-02 1.301981700E-02 8.312352600E-03]]] domain=10002 type=multiplicity matrix -[[1.00000000000E+00 1.00000000000E+00] - [1.00000000000E+00 1.00000000000E+00]] -[[3.86091908370E-02 6.76673480000E-02] - [1.41421356237E+00 1.35929206606E-01]] +[[1.000000000E+00 1.000000000E+00] + [1.000000000E+00 1.000000000E+00]] +[[3.860919080E-02 6.766734800E-02] + [1.414213562E+00 1.359292066E-01]] domain=10002 type=nu-fission matrix -[[0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00]] -[[0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00]] +[[0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00]] +[[0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00]] domain=10002 type=chi -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10002 type=chi-prompt -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] domain=10002 type=velocity -[1.66055628732E+07 3.28412038650E+05] -[1.04243552374E+06 3.88284357298E+04] +[1.660556287E+07 3.284120387E+05] +[1.042435524E+06 3.882843573E+04] domain=10002 type=prompt-nu-fission -[0.00000000000E+00 0.00000000000E+00] -[0.00000000000E+00 0.00000000000E+00] +[0.000000000E+00 0.000000000E+00] +[0.000000000E+00 0.000000000E+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 7a6e8dda0e..2cc679c690 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.14825490214E-01 2.27929090940E-02 -0 10000 2 total 6.60169918628E-01 4.75189279080E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.56859637119E-01 2.54935955780E-02 -0 10000 2 total 6.47647660079E-01 2.37037352050E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.56859637119E-01 2.54935955780E-02 -0 10000 2 total 6.47647660079E-01 2.37037352050E-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.74078449200E-02 2.69249710900E-03 -0 10000 2 total 2.64510741628E-01 2.33670773920E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.98445499410E-02 2.64330432900E-03 -0 10000 2 total 7.17193529230E-02 2.52078593510E-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.56329497900E-03 5.08483678000E-04 -0 10000 2 total 1.92791388704E-01 1.71059218670E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.94317403720E-02 1.32297561200E-03 -0 10000 2 total 4.69774777026E-01 4.16819997830E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.47456982255E+00 9.92353210960E-02 -0 10000 2 total 3.72868964072E+01 3.30837772453E+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.87417645294E-01 2.06257321020E-02 -0 10000 2 total 3.95659177000E-01 2.51250567890E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.85188388202E-01 2.69456210650E-02 -0 10000 2 total 4.12389399309E-01 1.54252769580E-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.84199457809E-01 2.70010135610E-02 -13 10000 1 1 total P1 5.18702843460E-02 6.98254887600E-03 -14 10000 1 1 total P2 2.00688453200E-02 2.84649518300E-03 -15 10000 1 1 total P3 9.47771570600E-03 2.23351977200E-03 -8 10000 1 2 total P0 9.88930393000E-04 4.82419445000E-04 -9 10000 1 2 total P1 -2.07234596000E-04 1.49010775000E-04 -10 10000 1 2 total P2 -1.03366181000E-04 1.84316312000E-04 -11 10000 1 2 total P3 2.34290623000E-04 1.28173111000E-04 -4 10000 2 1 total P0 9.24639909000E-04 9.24883464000E-04 -5 10000 2 1 total P1 -7.67704968000E-04 7.67907186000E-04 -6 10000 2 1 total P2 4.93788872000E-04 4.93918938000E-04 -7 10000 2 1 total P3 -1.71497229000E-04 1.71542403000E-04 -0 10000 2 2 total P0 4.11464759400E-01 1.52449353960E-02 -1 10000 2 2 total P1 1.64817280070E-02 4.50172796100E-03 -2 10000 2 2 total P2 6.37149049300E-03 1.05507493410E-02 -3 10000 2 2 total P3 -1.04991220900E-02 1.04381877190E-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.84199457809E-01 2.70010135610E-02 -13 10000 1 1 total P1 5.18702843460E-02 6.98254887600E-03 -14 10000 1 1 total P2 2.00688453200E-02 2.84649518300E-03 -15 10000 1 1 total P3 9.47771570600E-03 2.23351977200E-03 -8 10000 1 2 total P0 9.88930393000E-04 4.82419445000E-04 -9 10000 1 2 total P1 -2.07234596000E-04 1.49010775000E-04 -10 10000 1 2 total P2 -1.03366181000E-04 1.84316312000E-04 -11 10000 1 2 total P3 2.34290623000E-04 1.28173111000E-04 -4 10000 2 1 total P0 9.24639909000E-04 9.24883464000E-04 -5 10000 2 1 total P1 -7.67704968000E-04 7.67907186000E-04 -6 10000 2 1 total P2 4.93788872000E-04 4.93918938000E-04 -7 10000 2 1 total P3 -1.71497229000E-04 1.71542403000E-04 -0 10000 2 2 total P0 4.11464759400E-01 1.52449353960E-02 -1 10000 2 2 total P1 1.64817280070E-02 4.50172796100E-03 -2 10000 2 2 total P2 6.37149049300E-03 1.05507493410E-02 -3 10000 2 2 total P3 -1.04991220900E-02 1.04381877190E-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.00000000000E+00 7.85164550060E-02 -2 10000 1 2 total 1.00000000000E+00 6.87184270936E-01 -1 10000 2 1 total 1.00000000000E+00 1.41421356237E+00 -0 10000 2 2 total 1.00000000000E+00 4.11303488040E-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.01424281630E-02 3.14909167600E-03 -2 10000 1 2 total 0.00000000000E+00 0.00000000000E+00 -1 10000 2 1 total 4.54366466559E-01 2.74255069250E-02 -0 10000 2 2 total 0.00000000000E+00 0.00000000000E+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.00000000000E+00 4.60705234720E-02 -0 10000 2 total 0.00000000000E+00 0.00000000000E+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.00000000000E+00 5.14714567340E-02 -0 10000 2 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.75152106204E+07 1.43817527390E+06 -0 10000 2 total 3.50171995194E+05 2.99459316967E+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.92392215460E-02 1.30950595000E-03 -0 10000 2 total 4.66719027354E-01 4.14108703990E-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.13737670907E-01 1.55819023550E-02 -0 10001 2 total 3.00821401699E-01 2.80524484310E-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.73227872020E-01 3.31153664430E-02 -0 10001 2 total 3.12374836218E-01 4.96058317050E-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.73227872020E-01 3.31153664430E-02 -0 10001 2 total 3.12374836218E-01 4.96058317050E-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.57499139000E-03 3.22547891000E-04 -0 10001 2 total 5.40037883200E-03 6.18138308000E-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.57499139000E-03 3.22547891000E-04 -0 10001 2 total 5.40037883200E-03 6.18138308000E-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000E+00 0.00000000000E+00 -0 10001 2 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000E+00 0.00000000000E+00 -0 10001 2 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000E+00 0.00000000000E+00 -0 10001 2 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.12162679516E-01 1.53219230920E-02 -0 10001 2 total 2.95421022866E-01 2.74454888860E-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.10120735076E-01 3.37881061230E-02 -0 10001 2 total 2.96264270001E-01 4.37922257330E-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.10120735076E-01 3.37881061230E-02 -13 10001 1 1 total P1 3.82295903620E-02 8.48399710300E-03 -14 10001 1 1 total P2 2.07449419700E-02 4.69561067700E-03 -15 10001 1 1 total P3 7.96429677200E-03 3.73162261000E-03 -8 10001 1 2 total P0 0.00000000000E+00 0.00000000000E+00 -9 10001 1 2 total P1 0.00000000000E+00 0.00000000000E+00 -10 10001 1 2 total P2 0.00000000000E+00 0.00000000000E+00 -11 10001 1 2 total P3 0.00000000000E+00 0.00000000000E+00 -4 10001 2 1 total P0 0.00000000000E+00 0.00000000000E+00 -5 10001 2 1 total P1 0.00000000000E+00 0.00000000000E+00 -6 10001 2 1 total P2 0.00000000000E+00 0.00000000000E+00 -7 10001 2 1 total P3 0.00000000000E+00 0.00000000000E+00 -0 10001 2 2 total P0 2.96264270001E-01 4.37922257330E-02 -1 10001 2 2 total P1 -1.12136361340E-02 1.61803664890E-02 -2 10001 2 2 total P2 8.83656629800E-03 1.15039644590E-02 -3 10001 2 2 total P3 -3.27006730900E-03 7.32884580200E-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.10120735076E-01 3.37881061230E-02 -13 10001 1 1 total P1 3.82295903620E-02 8.48399710300E-03 -14 10001 1 1 total P2 2.07449419700E-02 4.69561067700E-03 -15 10001 1 1 total P3 7.96429677200E-03 3.73162261000E-03 -8 10001 1 2 total P0 0.00000000000E+00 0.00000000000E+00 -9 10001 1 2 total P1 0.00000000000E+00 0.00000000000E+00 -10 10001 1 2 total P2 0.00000000000E+00 0.00000000000E+00 -11 10001 1 2 total P3 0.00000000000E+00 0.00000000000E+00 -4 10001 2 1 total P0 0.00000000000E+00 0.00000000000E+00 -5 10001 2 1 total P1 0.00000000000E+00 0.00000000000E+00 -6 10001 2 1 total P2 0.00000000000E+00 0.00000000000E+00 -7 10001 2 1 total P3 0.00000000000E+00 0.00000000000E+00 -0 10001 2 2 total P0 2.96264270001E-01 4.37922257330E-02 -1 10001 2 2 total P1 -1.12136361340E-02 1.61803664890E-02 -2 10001 2 2 total P2 8.83656629800E-03 1.15039644590E-02 -3 10001 2 2 total P3 -3.27006730900E-03 7.32884580200E-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.00000000000E+00 1.08778696728E-01 -2 10001 1 2 total 0.00000000000E+00 0.00000000000E+00 -1 10001 2 1 total 0.00000000000E+00 0.00000000000E+00 -0 10001 2 2 total 1.00000000000E+00 1.42427173055E-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.00000000000E+00 0.00000000000E+00 -2 10001 1 2 total 0.00000000000E+00 0.00000000000E+00 -1 10001 2 1 total 0.00000000000E+00 0.00000000000E+00 -0 10001 2 2 total 0.00000000000E+00 0.00000000000E+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.00000000000E+00 0.00000000000E+00 -0 10001 2 total 0.00000000000E+00 0.00000000000E+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.00000000000E+00 0.00000000000E+00 -0 10001 2 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.66778394974E+07 1.26644430952E+06 -0 10001 2 total 3.34953367601E+05 3.83367816257E+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000E+00 0.00000000000E+00 -0 10001 2 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.64572260617E-01 3.12147519130E-02 -0 10002 2 total 2.05238401381E+00 2.24342906706E-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.90565257425E-01 2.38518546440E-02 -0 10002 2 total 1.51643801275E+00 2.35197268504E-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.90565257425E-01 2.38518546440E-02 -0 10002 2 total 1.51643801275E+00 2.35197268504E-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.90399522000E-04 4.41475690000E-05 -0 10002 2 total 3.16872566140E-02 3.74655858200E-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.90399522000E-04 4.41475690000E-05 -0 10002 2 total 3.16872566140E-02 3.74655858200E-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000E+00 0.00000000000E+00 -0 10002 2 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000E+00 0.00000000000E+00 -0 10002 2 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000E+00 0.00000000000E+00 -0 10002 2 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.63881861094E-01 3.11726840050E-02 -0 10002 2 total 2.02069675720E+00 2.20604453857E-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.71269204714E-01 2.61863711690E-02 -0 10002 2 total 2.03538832876E+00 2.58060328563E-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.39901484868E-01 2.47091227980E-02 -13 10002 1 1 total P1 3.81167448865E-01 1.62432649210E-02 -14 10002 1 1 total P2 1.52391897805E-01 8.15627770300E-03 -15 10002 1 1 total P3 9.14802228800E-03 3.88856214200E-03 -8 10002 1 2 total P0 3.13677198460E-02 1.72811290300E-03 -9 10002 1 2 total P1 8.75772320600E-03 9.25670501000E-04 -10 10002 1 2 total P2 -2.56790106000E-03 1.01398475200E-03 -11 10002 1 2 total P3 -3.78480288200E-03 8.17075571000E-04 -4 10002 2 1 total P0 4.43343134000E-04 4.44850393000E-04 -5 10002 2 1 total P1 3.99960414000E-04 4.01320183000E-04 -6 10002 2 1 total P2 3.19562707000E-04 3.20649143000E-04 -7 10002 2 1 total P3 2.13846969000E-04 2.14573997000E-04 -0 10002 2 2 total P0 2.03494498562E+00 2.57799888924E-01 -1 10002 2 2 total P1 5.09940513161E-01 5.12359062970E-02 -2 10002 2 2 total P2 1.11174608804E-01 1.30198170390E-02 -3 10002 2 2 total P3 2.49884357390E-02 8.31235256200E-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.39901484868E-01 2.47091227980E-02 -13 10002 1 1 total P1 3.81167448865E-01 1.62432649210E-02 -14 10002 1 1 total P2 1.52391897805E-01 8.15627770300E-03 -15 10002 1 1 total P3 9.14802228800E-03 3.88856214200E-03 -8 10002 1 2 total P0 3.13677198460E-02 1.72811290300E-03 -9 10002 1 2 total P1 8.75772320600E-03 9.25670501000E-04 -10 10002 1 2 total P2 -2.56790106000E-03 1.01398475200E-03 -11 10002 1 2 total P3 -3.78480288200E-03 8.17075571000E-04 -4 10002 2 1 total P0 4.43343134000E-04 4.44850393000E-04 -5 10002 2 1 total P1 3.99960414000E-04 4.01320183000E-04 -6 10002 2 1 total P2 3.19562707000E-04 3.20649143000E-04 -7 10002 2 1 total P3 2.13846969000E-04 2.14573997000E-04 -0 10002 2 2 total P0 2.03494498562E+00 2.57799888924E-01 -1 10002 2 2 total P1 5.09940513161E-01 5.12359062970E-02 -2 10002 2 2 total P2 1.11174608804E-01 1.30198170390E-02 -3 10002 2 2 total P3 2.49884357390E-02 8.31235256200E-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.00000000000E+00 3.86091908370E-02 -2 10002 1 2 total 1.00000000000E+00 6.76673480000E-02 -1 10002 2 1 total 1.00000000000E+00 1.41421356237E+00 -0 10002 2 2 total 1.00000000000E+00 1.35929206606E-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.00000000000E+00 0.00000000000E+00 -2 10002 1 2 total 0.00000000000E+00 0.00000000000E+00 -1 10002 2 1 total 0.00000000000E+00 0.00000000000E+00 -0 10002 2 2 total 0.00000000000E+00 0.00000000000E+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.00000000000E+00 0.00000000000E+00 -0 10002 2 total 0.00000000000E+00 0.00000000000E+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.00000000000E+00 0.00000000000E+00 -0 10002 2 total 0.00000000000E+00 0.00000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.66055628732E+07 1.04243552374E+06 -0 10002 2 total 3.28412038650E+05 3.88284357298E+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000E+00 0.00000000000E+00 -0 10002 2 total 0.00000000000E+00 0.00000000000E+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.148254902E-01 2.279290910E-02 +0 10000 2 total 6.601699186E-01 4.751892790E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596371E-01 2.549359560E-02 +0 10000 2 total 6.476476601E-01 2.370373520E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596371E-01 2.549359560E-02 +0 10000 2 total 6.476476601E-01 2.370373520E-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.740784490E-02 2.692497100E-03 +0 10000 2 total 2.645107416E-01 2.336707740E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.984454990E-02 2.643304300E-03 +0 10000 2 total 7.171935290E-02 2.520785940E-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.563295000E-03 5.084837000E-04 +0 10000 2 total 1.927913887E-01 1.710592190E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.943174040E-02 1.322975600E-03 +0 10000 2 total 4.697747770E-01 4.168199980E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.474569823E+00 9.923532110E-02 +0 10000 2 total 3.728689641E+01 3.308377725E+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.874176453E-01 2.062573210E-02 +0 10000 2 total 3.956591770E-01 2.512505680E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.851883882E-01 2.694562110E-02 +0 10000 2 total 4.123893993E-01 1.542527700E-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841994578E-01 2.700101360E-02 +13 10000 1 1 total P1 5.187028430E-02 6.982548900E-03 +14 10000 1 1 total P2 2.006884530E-02 2.846495200E-03 +15 10000 1 1 total P3 9.477715700E-03 2.233519800E-03 +8 10000 1 2 total P0 9.889304000E-04 4.824194000E-04 +9 10000 1 2 total P1 -2.072346000E-04 1.490108000E-04 +10 10000 1 2 total P2 -1.033662000E-04 1.843163000E-04 +11 10000 1 2 total P3 2.342906000E-04 1.281731000E-04 +4 10000 2 1 total P0 9.246399000E-04 9.248835000E-04 +5 10000 2 1 total P1 -7.677050000E-04 7.679072000E-04 +6 10000 2 1 total P2 4.937889000E-04 4.939189000E-04 +7 10000 2 1 total P3 -1.714972000E-04 1.715424000E-04 +0 10000 2 2 total P0 4.114647594E-01 1.524493540E-02 +1 10000 2 2 total P1 1.648172800E-02 4.501728000E-03 +2 10000 2 2 total P2 6.371490500E-03 1.055074930E-02 +3 10000 2 2 total P3 -1.049912210E-02 1.043818770E-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841994578E-01 2.700101360E-02 +13 10000 1 1 total P1 5.187028430E-02 6.982548900E-03 +14 10000 1 1 total P2 2.006884530E-02 2.846495200E-03 +15 10000 1 1 total P3 9.477715700E-03 2.233519800E-03 +8 10000 1 2 total P0 9.889304000E-04 4.824194000E-04 +9 10000 1 2 total P1 -2.072346000E-04 1.490108000E-04 +10 10000 1 2 total P2 -1.033662000E-04 1.843163000E-04 +11 10000 1 2 total P3 2.342906000E-04 1.281731000E-04 +4 10000 2 1 total P0 9.246399000E-04 9.248835000E-04 +5 10000 2 1 total P1 -7.677050000E-04 7.679072000E-04 +6 10000 2 1 total P2 4.937889000E-04 4.939189000E-04 +7 10000 2 1 total P3 -1.714972000E-04 1.715424000E-04 +0 10000 2 2 total P0 4.114647594E-01 1.524493540E-02 +1 10000 2 2 total P1 1.648172800E-02 4.501728000E-03 +2 10000 2 2 total P2 6.371490500E-03 1.055074930E-02 +3 10000 2 2 total P3 -1.049912210E-02 1.043818770E-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.000000000E+00 7.851645500E-02 +2 10000 1 2 total 1.000000000E+00 6.871842709E-01 +1 10000 2 1 total 1.000000000E+00 1.414213562E+00 +0 10000 2 2 total 1.000000000E+00 4.113034880E-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.014242820E-02 3.149091700E-03 +2 10000 1 2 total 0.000000000E+00 0.000000000E+00 +1 10000 2 1 total 4.543664666E-01 2.742550690E-02 +0 10000 2 2 total 0.000000000E+00 0.000000000E+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000000E+00 4.607052350E-02 +0 10000 2 total 0.000000000E+00 0.000000000E+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000000E+00 5.147145670E-02 +0 10000 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.751521062E+07 1.438175274E+06 +0 10000 2 total 3.501719952E+05 2.994593170E+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.923922150E-02 1.309506000E-03 +0 10000 2 total 4.667190274E-01 4.141087040E-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.137376709E-01 1.558190240E-02 +0 10001 2 total 3.008214017E-01 2.805244840E-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732278720E-01 3.311536640E-02 +0 10001 2 total 3.123748362E-01 4.960583170E-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732278720E-01 3.311536640E-02 +0 10001 2 total 3.123748362E-01 4.960583170E-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991400E-03 3.225479000E-04 +0 10001 2 total 5.400378800E-03 6.181383000E-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991400E-03 3.225479000E-04 +0 10001 2 total 5.400378800E-03 6.181383000E-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000E+00 0.000000000E+00 +0 10001 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000E+00 0.000000000E+00 +0 10001 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000E+00 0.000000000E+00 +0 10001 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.121626795E-01 1.532192310E-02 +0 10001 2 total 2.954210229E-01 2.744548890E-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.101207351E-01 3.378810610E-02 +0 10001 2 total 2.962642700E-01 4.379222570E-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207351E-01 3.378810610E-02 +13 10001 1 1 total P1 3.822959040E-02 8.483997100E-03 +14 10001 1 1 total P2 2.074494200E-02 4.695610700E-03 +15 10001 1 1 total P3 7.964296800E-03 3.731622600E-03 +8 10001 1 2 total P0 0.000000000E+00 0.000000000E+00 +9 10001 1 2 total P1 0.000000000E+00 0.000000000E+00 +10 10001 1 2 total P2 0.000000000E+00 0.000000000E+00 +11 10001 1 2 total P3 0.000000000E+00 0.000000000E+00 +4 10001 2 1 total P0 0.000000000E+00 0.000000000E+00 +5 10001 2 1 total P1 0.000000000E+00 0.000000000E+00 +6 10001 2 1 total P2 0.000000000E+00 0.000000000E+00 +7 10001 2 1 total P3 0.000000000E+00 0.000000000E+00 +0 10001 2 2 total P0 2.962642700E-01 4.379222570E-02 +1 10001 2 2 total P1 -1.121363610E-02 1.618036650E-02 +2 10001 2 2 total P2 8.836566300E-03 1.150396450E-02 +3 10001 2 2 total P3 -3.270067300E-03 7.328845800E-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207351E-01 3.378810610E-02 +13 10001 1 1 total P1 3.822959040E-02 8.483997100E-03 +14 10001 1 1 total P2 2.074494200E-02 4.695610700E-03 +15 10001 1 1 total P3 7.964296800E-03 3.731622600E-03 +8 10001 1 2 total P0 0.000000000E+00 0.000000000E+00 +9 10001 1 2 total P1 0.000000000E+00 0.000000000E+00 +10 10001 1 2 total P2 0.000000000E+00 0.000000000E+00 +11 10001 1 2 total P3 0.000000000E+00 0.000000000E+00 +4 10001 2 1 total P0 0.000000000E+00 0.000000000E+00 +5 10001 2 1 total P1 0.000000000E+00 0.000000000E+00 +6 10001 2 1 total P2 0.000000000E+00 0.000000000E+00 +7 10001 2 1 total P3 0.000000000E+00 0.000000000E+00 +0 10001 2 2 total P0 2.962642700E-01 4.379222570E-02 +1 10001 2 2 total P1 -1.121363610E-02 1.618036650E-02 +2 10001 2 2 total P2 8.836566300E-03 1.150396450E-02 +3 10001 2 2 total P3 -3.270067300E-03 7.328845800E-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.000000000E+00 1.087786967E-01 +2 10001 1 2 total 0.000000000E+00 0.000000000E+00 +1 10001 2 1 total 0.000000000E+00 0.000000000E+00 +0 10001 2 2 total 1.000000000E+00 1.424271731E-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.000000000E+00 0.000000000E+00 +2 10001 1 2 total 0.000000000E+00 0.000000000E+00 +1 10001 2 1 total 0.000000000E+00 0.000000000E+00 +0 10001 2 2 total 0.000000000E+00 0.000000000E+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000000E+00 0.000000000E+00 +0 10001 2 total 0.000000000E+00 0.000000000E+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000000E+00 0.000000000E+00 +0 10001 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.667783950E+07 1.266444310E+06 +0 10001 2 total 3.349533676E+05 3.833678163E+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000000E+00 0.000000000E+00 +0 10001 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.645722606E-01 3.121475190E-02 +0 10002 2 total 2.052384014E+00 2.243429067E-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905652574E-01 2.385185460E-02 +0 10002 2 total 1.516438013E+00 2.351972685E-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905652574E-01 2.385185460E-02 +0 10002 2 total 1.516438013E+00 2.351972685E-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995000E-04 4.414760000E-05 +0 10002 2 total 3.168725660E-02 3.746558600E-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995000E-04 4.414760000E-05 +0 10002 2 total 3.168725660E-02 3.746558600E-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000E+00 0.000000000E+00 +0 10002 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000E+00 0.000000000E+00 +0 10002 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000E+00 0.000000000E+00 +0 10002 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.638818611E-01 3.117268400E-02 +0 10002 2 total 2.020696757E+00 2.206044539E-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.712692047E-01 2.618637120E-02 +0 10002 2 total 2.035388329E+00 2.580603286E-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399014849E-01 2.470912280E-02 +13 10002 1 1 total P1 3.811674489E-01 1.624326490E-02 +14 10002 1 1 total P2 1.523918978E-01 8.156277700E-03 +15 10002 1 1 total P3 9.148022300E-03 3.888562100E-03 +8 10002 1 2 total P0 3.136771980E-02 1.728112900E-03 +9 10002 1 2 total P1 8.757723200E-03 9.256705000E-04 +10 10002 1 2 total P2 -2.567901100E-03 1.013984800E-03 +11 10002 1 2 total P3 -3.784802900E-03 8.170756000E-04 +4 10002 2 1 total P0 4.433431000E-04 4.448504000E-04 +5 10002 2 1 total P1 3.999604000E-04 4.013202000E-04 +6 10002 2 1 total P2 3.195627000E-04 3.206491000E-04 +7 10002 2 1 total P3 2.138470000E-04 2.145740000E-04 +0 10002 2 2 total P0 2.034944986E+00 2.577998889E-01 +1 10002 2 2 total P1 5.099405132E-01 5.123590630E-02 +2 10002 2 2 total P2 1.111746088E-01 1.301981700E-02 +3 10002 2 2 total P3 2.498843570E-02 8.312352600E-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399014849E-01 2.470912280E-02 +13 10002 1 1 total P1 3.811674489E-01 1.624326490E-02 +14 10002 1 1 total P2 1.523918978E-01 8.156277700E-03 +15 10002 1 1 total P3 9.148022300E-03 3.888562100E-03 +8 10002 1 2 total P0 3.136771980E-02 1.728112900E-03 +9 10002 1 2 total P1 8.757723200E-03 9.256705000E-04 +10 10002 1 2 total P2 -2.567901100E-03 1.013984800E-03 +11 10002 1 2 total P3 -3.784802900E-03 8.170756000E-04 +4 10002 2 1 total P0 4.433431000E-04 4.448504000E-04 +5 10002 2 1 total P1 3.999604000E-04 4.013202000E-04 +6 10002 2 1 total P2 3.195627000E-04 3.206491000E-04 +7 10002 2 1 total P3 2.138470000E-04 2.145740000E-04 +0 10002 2 2 total P0 2.034944986E+00 2.577998889E-01 +1 10002 2 2 total P1 5.099405132E-01 5.123590630E-02 +2 10002 2 2 total P2 1.111746088E-01 1.301981700E-02 +3 10002 2 2 total P3 2.498843570E-02 8.312352600E-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.000000000E+00 3.860919080E-02 +2 10002 1 2 total 1.000000000E+00 6.766734800E-02 +1 10002 2 1 total 1.000000000E+00 1.414213562E+00 +0 10002 2 2 total 1.000000000E+00 1.359292066E-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.000000000E+00 0.000000000E+00 +2 10002 1 2 total 0.000000000E+00 0.000000000E+00 +1 10002 2 1 total 0.000000000E+00 0.000000000E+00 +0 10002 2 2 total 0.000000000E+00 0.000000000E+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000000E+00 0.000000000E+00 +0 10002 2 total 0.000000000E+00 0.000000000E+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000000E+00 0.000000000E+00 +0 10002 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.660556287E+07 1.042435524E+06 +0 10002 2 total 3.284120387E+05 3.882843573E+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000000E+00 0.000000000E+00 +0 10002 2 total 0.000000000E+00 0.000000000E+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 13c79782ed..62a0b202d8 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -14ebc83b998b90376a733c80a25c54ed334606cb4eb7a3c13ff3bda041ade473d3e9c8499a04fce92f2096300b026ed331b00e14b233c4ea4c6e9a3305c3e77b \ No newline at end of file +ed74bb8e0a7fdab7e5f5f371973c59ca723037c9f9bf0db5bd542896bc605f60712031e3379798e9f13c1dae19dba8bdc28dc81f4acf9f9d8a7bf0b2dea07660 \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 83d8428510..1a787f5982 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.00000000000E+02 0.00000000000E+00 7.00000000000E+02 8.00000000000E+02] + Temperature = [5.000000000E+02 0.000000000E+00 7.000000000E+02 8.000000000E+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 19e72aab2a..c5230e1f9c 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -d3ed1243d3e7a30a7b353539596ccb23cfb7293f6495e75644ff28868f629f34aa8e23023bad0c54aa2f2c048e6c89a47f454b8cffa90042669eb269f7ada74e \ No newline at end of file +048dbc5027cfc34c8659086fe1a9aeed76b6a3b0c91e6c7a2790dc83234aacc39e4825d2ac25800f8ff2e3d5317c7da085fcfdb3b5e5a6d99fd625efa1b5b77d \ 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 62680ce639..e6f42244f6 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] +[[[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] ..., - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]]][[[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]]][[[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] ..., - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]]][[[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]]][[[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] ..., - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]]][[[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]]][[[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]] ..., - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]]][[[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]]][[[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]] ..., - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]] + [[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]] - [[0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00] - [0.00000000000E+00 0.00000000000E+00 0.00000000000E+00]]] \ No newline at end of file + [[0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00] + [0.000000000E+00 0.000000000E+00 0.000000000E+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 4667fe731d..94fa15ad57 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -11,12 +11,12 @@ import sys import numpy as np import pandas as pd -# Require numpy and pandas to print output rounded to 12 decimal places and in -# scientific notation with 12 significant figures. This is needed to avoid round +# Require numpy and pandas to print output rounded to 10 decimal places and in +# scientific notation with 10 significant figures. This is needed to avoid round # off error when large numbers are printed, which can cause tests to fail for # different build configurations. -np.set_printoptions(formatter={'float': lambda x: format(np.around(x, 12), '13.11E')}) -pd.set_option('display.float_format', lambda x: '%13.11E' % np.around(x,12)) +np.set_printoptions(formatter={'float': lambda x: format(np.around(x, 10), '11.9E')}) +pd.set_option('display.float_format', lambda x: '%11.9E' % np.around(x,10)) sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From 01b8f75b6c59ac4b152cb615cad10deb2dcf529e Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 17:09:52 -0600 Subject: [PATCH 148/417] changed number of sig figs in testing harness from 10 to 9 --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 312 +++++------ .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 4 +- 9 files changed, 691 insertions(+), 691 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index de6f408248..6d94eda7b4 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.536244225E-01 2.105269630E-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008521779E-01 2.285755400E-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008521779E-01 2.285755400E-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.490345580E-02 4.312761200E-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.804806600E-02 4.579963700E-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.685538980E-02 2.622159800E-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.064928990E-02 6.409874500E-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.137955138E+00 5.073638146E-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.887209666E-01 1.783042860E-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.893035563E-01 2.307553860E-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893035563E-01 2.314560460E-02 -1 10000 1 1 total P1 4.622441780E-02 5.907169600E-03 -2 10000 1 1 total P2 1.798358500E-02 2.882972000E-03 -3 10000 1 1 total P3 6.628373500E-03 2.457109000E-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893035563E-01 2.314560460E-02 -1 10000 1 1 total P1 4.622441780E-02 5.907169600E-03 -2 10000 1 1 total P2 1.798358500E-02 2.882972000E-03 -3 10000 1 1 total P3 6.628373500E-03 2.457109000E-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.000000000E+00 6.611082020E-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.583501930E-02 5.591824900E-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000000E+00 4.607052350E-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000000E+00 5.147145670E-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.001308740E+06 1.462165554E+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.000397780E-02 6.366907900E-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.115941081E-01 1.379316810E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792550637E-01 2.918950100E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792550637E-01 2.918950100E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846400E-03 2.863341000E-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846400E-03 2.863341000E-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.093842617E-01 1.355126750E-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.079873494E-01 2.930808850E-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873494E-01 2.930808850E-02 -1 10001 1 1 total P1 3.061715330E-02 7.464456000E-03 -2 10001 1 1 total P2 1.891149040E-02 4.322827700E-03 -3 10001 1 1 total P3 6.234618200E-03 3.338202300E-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873494E-01 2.930808850E-02 -1 10001 1 1 total P1 3.061715330E-02 7.464456000E-03 -2 10001 1 1 total P2 1.891149040E-02 4.322827700E-03 -3 10001 1 1 total P3 6.234618200E-03 3.338202300E-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.000000000E+00 9.503872150E-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.000000000E+00 0.000000000E+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000000E+00 0.000000000E+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.833261153E+06 1.663551745E+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.049988333E-01 4.396448760E-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991839827E-01 4.091411960E-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991839827E-01 4.091411960E-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341200E-03 5.545244000E-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341200E-03 5.545244000E-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.989384922E-01 4.349298420E-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.034146632E-01 4.395873710E-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034146632E-01 4.358599380E-02 -1 10002 1 1 total P1 4.104174186E-01 1.587722020E-02 -2 10002 1 1 total P2 1.433010365E-01 7.187377700E-03 -3 10002 1 1 total P3 8.739426300E-03 3.571441300E-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034146632E-01 4.358599380E-02 -1 10002 1 1 total P1 4.104174186E-01 1.587722020E-02 -2 10002 1 1 total P2 1.433010365E-01 7.187377700E-03 -3 10002 1 1 total P3 8.739426300E-03 3.571441300E-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.000000000E+00 5.686672530E-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.000000000E+00 0.000000000E+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000000E+00 0.000000000E+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.732199699E+06 1.596914264E+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.53624422E-01 2.10526960E-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.00852178E-01 2.28575540E-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.00852178E-01 2.28575540E-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.49034560E-02 4.31276100E-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.80480660E-02 4.57996400E-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.68553900E-02 2.62216000E-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.06492900E-02 6.40987500E-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.13795514E+00 5.07363815E-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.88720967E-01 1.78304290E-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.89303556E-01 2.30755390E-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.89303556E-01 2.31456050E-02 +1 10000 1 1 total P1 4.62244180E-02 5.90717000E-03 +2 10000 1 1 total P2 1.79835850E-02 2.88297200E-03 +3 10000 1 1 total P3 6.62837400E-03 2.45710900E-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.89303556E-01 2.31456050E-02 +1 10000 1 1 total P1 4.62244180E-02 5.90717000E-03 +2 10000 1 1 total P2 1.79835850E-02 2.88297200E-03 +3 10000 1 1 total P3 6.62837400E-03 2.45710900E-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.00000000E+00 6.61108200E-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.58350190E-02 5.59182500E-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.00000000E+00 4.60705230E-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.00000000E+00 5.14714570E-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.00130874E+06 1.46216555E+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.00039780E-02 6.36690800E-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.11594108E-01 1.37931680E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.79255064E-01 2.91895010E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.79255064E-01 2.91895010E-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.20984600E-03 2.86334000E-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.20984600E-03 2.86334000E-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.09384262E-01 1.35512670E-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.07987349E-01 2.93080890E-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.07987349E-01 2.93080890E-02 +1 10001 1 1 total P1 3.06171530E-02 7.46445600E-03 +2 10001 1 1 total P2 1.89114900E-02 4.32282800E-03 +3 10001 1 1 total P3 6.23461800E-03 3.33820200E-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.07987349E-01 2.93080890E-02 +1 10001 1 1 total P1 3.06171530E-02 7.46445600E-03 +2 10001 1 1 total P2 1.89114900E-02 4.32282800E-03 +3 10001 1 1 total P3 6.23461800E-03 3.33820200E-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.00000000E+00 9.50387220E-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.00000000E+00 0.00000000E+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.00000000E+00 0.00000000E+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.83326115E+06 1.66355175E+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.04998833E-01 4.39644880E-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.99183983E-01 4.09141200E-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.99183983E-01 4.09141200E-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.06034100E-03 5.54524000E-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.06034100E-03 5.54524000E-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.98938492E-01 4.34929840E-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.03414663E-01 4.39587370E-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.03414663E-01 4.35859940E-02 +1 10002 1 1 total P1 4.10417419E-01 1.58772200E-02 +2 10002 1 1 total P2 1.43301036E-01 7.18737800E-03 +3 10002 1 1 total P3 8.73942600E-03 3.57144100E-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.03414663E-01 4.35859940E-02 +1 10002 1 1 total P1 4.10417419E-01 1.58772200E-02 +2 10002 1 1 total P2 1.43301036E-01 7.18737800E-03 +3 10002 1 1 total P3 8.73942600E-03 3.57144100E-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.00000000E+00 5.68667250E-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.00000000E+00 0.00000000E+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.00000000E+00 0.00000000E+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.73219970E+06 1.59691426E+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000E+00 0.00000000E+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 5b2385cd8b..e66bf16c1e 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.145934001E+00 5.538216947E-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191990E-01 5.206442559E-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189191990E-01 5.206442559E-01 - 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 1.976220610E-02 1.062876410E-02 - 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 1.976220610E-02 1.062876410E-02 - 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.000000000E+00 0.000000000E+00 - 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.000000000E+00 0.000000000E+00 - 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.000000000E+00 0.000000000E+00 - 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 1.126171794E+00 5.434400084E-01 - 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 1.142546919E+00 5.701313899E-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919E+00 5.701313899E-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943E-01 2.163221683E-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934E-01 6.650377260E-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827040E-02 2.462083230E-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142546919E+00 5.701313899E-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473812943E-01 2.163221683E-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412017934E-01 6.650377260E-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827040E-02 2.462083230E-02 - 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 1.000000000E+00 5.297173274E-01 - 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.000000000E+00 0.000000000E+00 - 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.000000000E+00 0.000000000E+00 - 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.000000000E+00 0.000000000E+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457145E+05 4.163976916E+05 - 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.000000000E+00 0.000000000E+00 + 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 1.14593400E+00 5.53821695E-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919199E-01 5.20644256E-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919199E-01 5.20644256E-01 + 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 1.97622060E-02 1.06287640E-02 + 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 1.97622060E-02 1.06287640E-02 + 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.00000000E+00 0.00000000E+00 + 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.00000000E+00 0.00000000E+00 + 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.00000000E+00 0.00000000E+00 + 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 1.12617179E+00 5.43440008E-01 + 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 1.14254692E+00 5.70131390E-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254692E+00 5.70131390E-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294E-01 2.16322168E-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793E-01 6.65037730E-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282700E-02 2.46208320E-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254692E+00 5.70131390E-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294E-01 2.16322168E-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793E-01 6.65037730E-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282700E-02 2.46208320E-02 + 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 1.00000000E+00 5.29717327E-01 + 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.00000000E+00 0.00000000E+00 + 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.00000000E+00 0.00000000E+00 + 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.00000000E+00 0.00000000E+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.74245714E+05 4.16397692E+05 + 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.00000000E+00 0.00000000E+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 9a042191f8..54fb97b991 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,222 @@ domain=10000 type=total -[4.148254902E-01 6.601699186E-01] -[2.279290910E-02 4.751892790E-02] +[4.14825490E-01 6.60169919E-01] +[2.27929090E-02 4.75189280E-02] domain=10000 type=transport -[3.568596371E-01 6.476476601E-01] -[2.549359560E-02 2.370373520E-02] +[3.56859637E-01 6.47647660E-01] +[2.54935960E-02 2.37037350E-02] domain=10000 type=nu-transport -[3.568596371E-01 6.476476601E-01] -[2.549359560E-02 2.370373520E-02] +[3.56859637E-01 6.47647660E-01] +[2.54935960E-02 2.37037350E-02] domain=10000 type=absorption -[2.740784490E-02 2.645107416E-01] -[2.692497100E-03 2.336707740E-02] +[2.74078450E-02 2.64510742E-01] +[2.69249700E-03 2.33670770E-02] domain=10000 type=capture -[1.984454990E-02 7.171935290E-02] -[2.643304300E-03 2.520785940E-02] +[1.98445500E-02 7.17193530E-02] +[2.64330400E-03 2.52078590E-02] domain=10000 type=fission -[7.563295000E-03 1.927913887E-01] -[5.084837000E-04 1.710592190E-02] +[7.56329500E-03 1.92791389E-01] +[5.08484000E-04 1.71059220E-02] domain=10000 type=nu-fission -[1.943174040E-02 4.697747770E-01] -[1.322975600E-03 4.168199980E-02] +[1.94317400E-02 4.69774777E-01] +[1.32297600E-03 4.16820000E-02] domain=10000 type=kappa-fission -[1.474569823E+00 3.728689641E+01] -[9.923532110E-02 3.308377725E+00] +[1.47456982E+00 3.72868964E+01] +[9.92353210E-02 3.30837773E+00] domain=10000 type=scatter -[3.874176453E-01 3.956591770E-01] -[2.062573210E-02 2.512505680E-02] +[3.87417645E-01 3.95659177E-01] +[2.06257320E-02 2.51250570E-02] domain=10000 type=nu-scatter -[3.851883882E-01 4.123893993E-01] -[2.694562110E-02 1.542527700E-02] +[3.85188388E-01 4.12389399E-01] +[2.69456210E-02 1.54252770E-02] domain=10000 type=scatter matrix -[[[3.841994578E-01 5.187028430E-02 2.006884530E-02 9.477715700E-03] - [9.889304000E-04 -2.072346000E-04 -1.033662000E-04 2.342906000E-04]] +[[[3.84199458E-01 5.18702840E-02 2.00688450E-02 9.47771600E-03] + [9.88930000E-04 -2.07235000E-04 -1.03366000E-04 2.34291000E-04]] - [[9.246399000E-04 -7.677050000E-04 4.937889000E-04 -1.714972000E-04] - [4.114647594E-01 1.648172800E-02 6.371490500E-03 -1.049912210E-02]]] -[[[2.700101360E-02 6.982548900E-03 2.846495200E-03 2.233519800E-03] - [4.824194000E-04 1.490108000E-04 1.843163000E-04 1.281731000E-04]] + [[9.24640000E-04 -7.67705000E-04 4.93789000E-04 -1.71497000E-04] + [4.11464759E-01 1.64817280E-02 6.37149000E-03 -1.04991220E-02]]] +[[[2.70010140E-02 6.98254900E-03 2.84649500E-03 2.23352000E-03] + [4.82419000E-04 1.49011000E-04 1.84316000E-04 1.28173000E-04]] - [[9.248835000E-04 7.679072000E-04 4.939189000E-04 1.715424000E-04] - [1.524493540E-02 4.501728000E-03 1.055074930E-02 1.043818770E-02]]] + [[9.24883000E-04 7.67907000E-04 4.93919000E-04 1.71542000E-04] + [1.52449350E-02 4.50172800E-03 1.05507490E-02 1.04381880E-02]]] domain=10000 type=nu-scatter matrix -[[[3.841994578E-01 5.187028430E-02 2.006884530E-02 9.477715700E-03] - [9.889304000E-04 -2.072346000E-04 -1.033662000E-04 2.342906000E-04]] +[[[3.84199458E-01 5.18702840E-02 2.00688450E-02 9.47771600E-03] + [9.88930000E-04 -2.07235000E-04 -1.03366000E-04 2.34291000E-04]] - [[9.246399000E-04 -7.677050000E-04 4.937889000E-04 -1.714972000E-04] - [4.114647594E-01 1.648172800E-02 6.371490500E-03 -1.049912210E-02]]] -[[[2.700101360E-02 6.982548900E-03 2.846495200E-03 2.233519800E-03] - [4.824194000E-04 1.490108000E-04 1.843163000E-04 1.281731000E-04]] + [[9.24640000E-04 -7.67705000E-04 4.93789000E-04 -1.71497000E-04] + [4.11464759E-01 1.64817280E-02 6.37149000E-03 -1.04991220E-02]]] +[[[2.70010140E-02 6.98254900E-03 2.84649500E-03 2.23352000E-03] + [4.82419000E-04 1.49011000E-04 1.84316000E-04 1.28173000E-04]] - [[9.248835000E-04 7.679072000E-04 4.939189000E-04 1.715424000E-04] - [1.524493540E-02 4.501728000E-03 1.055074930E-02 1.043818770E-02]]] + [[9.24883000E-04 7.67907000E-04 4.93919000E-04 1.71542000E-04] + [1.52449350E-02 4.50172800E-03 1.05507490E-02 1.04381880E-02]]] domain=10000 type=multiplicity matrix -[[1.000000000E+00 1.000000000E+00] - [1.000000000E+00 1.000000000E+00]] -[[7.851645500E-02 6.871842709E-01] - [1.414213562E+00 4.113034880E-02]] +[[1.00000000E+00 1.00000000E+00] + [1.00000000E+00 1.00000000E+00]] +[[7.85164550E-02 6.87184271E-01] + [1.41421356E+00 4.11303490E-02]] domain=10000 type=nu-fission matrix -[[2.014242820E-02 0.000000000E+00] - [4.543664666E-01 0.000000000E+00]] -[[3.149091700E-03 0.000000000E+00] - [2.742550690E-02 0.000000000E+00]] +[[2.01424280E-02 0.00000000E+00] + [4.54366467E-01 0.00000000E+00]] +[[3.14909200E-03 0.00000000E+00] + [2.74255070E-02 0.00000000E+00]] domain=10000 type=chi -[1.000000000E+00 0.000000000E+00] -[4.607052350E-02 0.000000000E+00] +[1.00000000E+00 0.00000000E+00] +[4.60705230E-02 0.00000000E+00] domain=10000 type=chi-prompt -[1.000000000E+00 0.000000000E+00] -[5.147145670E-02 0.000000000E+00] +[1.00000000E+00 0.00000000E+00] +[5.14714570E-02 0.00000000E+00] domain=10000 type=velocity -[1.751521062E+07 3.501719952E+05] -[1.438175274E+06 2.994593170E+04] +[1.75152106E+07 3.50171995E+05] +[1.43817527E+06 2.99459317E+04] domain=10000 type=prompt-nu-fission -[1.923922150E-02 4.667190274E-01] -[1.309506000E-03 4.141087040E-02] +[1.92392220E-02 4.66719027E-01] +[1.30950600E-03 4.14108700E-02] domain=10001 type=total -[3.137376709E-01 3.008214017E-01] -[1.558190240E-02 2.805244840E-02] +[3.13737671E-01 3.00821402E-01] +[1.55819020E-02 2.80524480E-02] domain=10001 type=transport -[2.732278720E-01 3.123748362E-01] -[3.311536640E-02 4.960583170E-02] +[2.73227872E-01 3.12374836E-01] +[3.31153660E-02 4.96058320E-02] domain=10001 type=nu-transport -[2.732278720E-01 3.123748362E-01] -[3.311536640E-02 4.960583170E-02] +[2.73227872E-01 3.12374836E-01] +[3.31153660E-02 4.96058320E-02] domain=10001 type=absorption -[1.574991400E-03 5.400378800E-03] -[3.225479000E-04 6.181383000E-04] +[1.57499100E-03 5.40037900E-03] +[3.22548000E-04 6.18138000E-04] domain=10001 type=capture -[1.574991400E-03 5.400378800E-03] -[3.225479000E-04 6.181383000E-04] +[1.57499100E-03 5.40037900E-03] +[3.22548000E-04 6.18138000E-04] domain=10001 type=fission -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10001 type=nu-fission -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10001 type=kappa-fission -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10001 type=scatter -[3.121626795E-01 2.954210229E-01] -[1.532192310E-02 2.744548890E-02] +[3.12162680E-01 2.95421023E-01] +[1.53219230E-02 2.74454890E-02] domain=10001 type=nu-scatter -[3.101207351E-01 2.962642700E-01] -[3.378810610E-02 4.379222570E-02] +[3.10120735E-01 2.96264270E-01] +[3.37881060E-02 4.37922260E-02] domain=10001 type=scatter matrix -[[[3.101207351E-01 3.822959040E-02 2.074494200E-02 7.964296800E-03] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] +[[[3.10120735E-01 3.82295900E-02 2.07449420E-02 7.96429700E-03] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [2.962642700E-01 -1.121363610E-02 8.836566300E-03 -3.270067300E-03]]] -[[[3.378810610E-02 8.483997100E-03 4.695610700E-03 3.731622600E-03] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [2.96264270E-01 -1.12136360E-02 8.83656600E-03 -3.27006700E-03]]] +[[[3.37881060E-02 8.48399700E-03 4.69561100E-03 3.73162300E-03] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [4.379222570E-02 1.618036650E-02 1.150396450E-02 7.328845800E-03]]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [4.37922260E-02 1.61803660E-02 1.15039640E-02 7.32884600E-03]]] domain=10001 type=nu-scatter matrix -[[[3.101207351E-01 3.822959040E-02 2.074494200E-02 7.964296800E-03] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] +[[[3.10120735E-01 3.82295900E-02 2.07449420E-02 7.96429700E-03] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [2.962642700E-01 -1.121363610E-02 8.836566300E-03 -3.270067300E-03]]] -[[[3.378810610E-02 8.483997100E-03 4.695610700E-03 3.731622600E-03] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [2.96264270E-01 -1.12136360E-02 8.83656600E-03 -3.27006700E-03]]] +[[[3.37881060E-02 8.48399700E-03 4.69561100E-03 3.73162300E-03] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [4.379222570E-02 1.618036650E-02 1.150396450E-02 7.328845800E-03]]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [4.37922260E-02 1.61803660E-02 1.15039640E-02 7.32884600E-03]]] domain=10001 type=multiplicity matrix -[[1.000000000E+00 0.000000000E+00] - [0.000000000E+00 1.000000000E+00]] -[[1.087786967E-01 0.000000000E+00] - [0.000000000E+00 1.424271731E-01]] +[[1.00000000E+00 0.00000000E+00] + [0.00000000E+00 1.00000000E+00]] +[[1.08778697E-01 0.00000000E+00] + [0.00000000E+00 1.42427173E-01]] domain=10001 type=nu-fission matrix -[[0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00]] -[[0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00]] +[[0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00]] +[[0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00]] domain=10001 type=chi -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10001 type=chi-prompt -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10001 type=velocity -[1.667783950E+07 3.349533676E+05] -[1.266444310E+06 3.833678163E+04] +[1.66778395E+07 3.34953368E+05] +[1.26644431E+06 3.83367816E+04] domain=10001 type=prompt-nu-fission -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10002 type=total -[6.645722606E-01 2.052384014E+00] -[3.121475190E-02 2.243429067E-01] +[6.64572261E-01 2.05238401E+00] +[3.12147520E-02 2.24342907E-01] domain=10002 type=transport -[2.905652574E-01 1.516438013E+00] -[2.385185460E-02 2.351972685E-01] +[2.90565257E-01 1.51643801E+00] +[2.38518550E-02 2.35197269E-01] domain=10002 type=nu-transport -[2.905652574E-01 1.516438013E+00] -[2.385185460E-02 2.351972685E-01] +[2.90565257E-01 1.51643801E+00] +[2.38518550E-02 2.35197269E-01] domain=10002 type=absorption -[6.903995000E-04 3.168725660E-02] -[4.414760000E-05 3.746558600E-03] +[6.90400000E-04 3.16872570E-02] +[4.41480000E-05 3.74655900E-03] domain=10002 type=capture -[6.903995000E-04 3.168725660E-02] -[4.414760000E-05 3.746558600E-03] +[6.90400000E-04 3.16872570E-02] +[4.41480000E-05 3.74655900E-03] domain=10002 type=fission -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10002 type=nu-fission -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10002 type=kappa-fission -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10002 type=scatter -[6.638818611E-01 2.020696757E+00] -[3.117268400E-02 2.206044539E-01] +[6.63881861E-01 2.02069676E+00] +[3.11726840E-02 2.20604454E-01] domain=10002 type=nu-scatter -[6.712692047E-01 2.035388329E+00] -[2.618637120E-02 2.580603286E-01] +[6.71269205E-01 2.03538833E+00] +[2.61863710E-02 2.58060329E-01] domain=10002 type=scatter matrix -[[[6.399014849E-01 3.811674489E-01 1.523918978E-01 9.148022300E-03] - [3.136771980E-02 8.757723200E-03 -2.567901100E-03 -3.784802900E-03]] +[[[6.39901485E-01 3.81167449E-01 1.52391898E-01 9.14802200E-03] + [3.13677200E-02 8.75772300E-03 -2.56790100E-03 -3.78480300E-03]] - [[4.433431000E-04 3.999604000E-04 3.195627000E-04 2.138470000E-04] - [2.034944986E+00 5.099405132E-01 1.111746088E-01 2.498843570E-02]]] -[[[2.470912280E-02 1.624326490E-02 8.156277700E-03 3.888562100E-03] - [1.728112900E-03 9.256705000E-04 1.013984800E-03 8.170756000E-04]] + [[4.43343000E-04 3.99960000E-04 3.19563000E-04 2.13847000E-04] + [2.03494499E+00 5.09940513E-01 1.11174609E-01 2.49884360E-02]]] +[[[2.47091230E-02 1.62432650E-02 8.15627800E-03 3.88856200E-03] + [1.72811300E-03 9.25671000E-04 1.01398500E-03 8.17076000E-04]] - [[4.448504000E-04 4.013202000E-04 3.206491000E-04 2.145740000E-04] - [2.577998889E-01 5.123590630E-02 1.301981700E-02 8.312352600E-03]]] + [[4.44850000E-04 4.01320000E-04 3.20649000E-04 2.14574000E-04] + [2.57799889E-01 5.12359060E-02 1.30198170E-02 8.31235300E-03]]] domain=10002 type=nu-scatter matrix -[[[6.399014849E-01 3.811674489E-01 1.523918978E-01 9.148022300E-03] - [3.136771980E-02 8.757723200E-03 -2.567901100E-03 -3.784802900E-03]] +[[[6.39901485E-01 3.81167449E-01 1.52391898E-01 9.14802200E-03] + [3.13677200E-02 8.75772300E-03 -2.56790100E-03 -3.78480300E-03]] - [[4.433431000E-04 3.999604000E-04 3.195627000E-04 2.138470000E-04] - [2.034944986E+00 5.099405132E-01 1.111746088E-01 2.498843570E-02]]] -[[[2.470912280E-02 1.624326490E-02 8.156277700E-03 3.888562100E-03] - [1.728112900E-03 9.256705000E-04 1.013984800E-03 8.170756000E-04]] + [[4.43343000E-04 3.99960000E-04 3.19563000E-04 2.13847000E-04] + [2.03494499E+00 5.09940513E-01 1.11174609E-01 2.49884360E-02]]] +[[[2.47091230E-02 1.62432650E-02 8.15627800E-03 3.88856200E-03] + [1.72811300E-03 9.25671000E-04 1.01398500E-03 8.17076000E-04]] - [[4.448504000E-04 4.013202000E-04 3.206491000E-04 2.145740000E-04] - [2.577998889E-01 5.123590630E-02 1.301981700E-02 8.312352600E-03]]] + [[4.44850000E-04 4.01320000E-04 3.20649000E-04 2.14574000E-04] + [2.57799889E-01 5.12359060E-02 1.30198170E-02 8.31235300E-03]]] domain=10002 type=multiplicity matrix -[[1.000000000E+00 1.000000000E+00] - [1.000000000E+00 1.000000000E+00]] -[[3.860919080E-02 6.766734800E-02] - [1.414213562E+00 1.359292066E-01]] +[[1.00000000E+00 1.00000000E+00] + [1.00000000E+00 1.00000000E+00]] +[[3.86091910E-02 6.76673480E-02] + [1.41421356E+00 1.35929207E-01]] domain=10002 type=nu-fission matrix -[[0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00]] -[[0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00]] +[[0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00]] +[[0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00]] domain=10002 type=chi -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10002 type=chi-prompt -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] domain=10002 type=velocity -[1.660556287E+07 3.284120387E+05] -[1.042435524E+06 3.882843573E+04] +[1.66055629E+07 3.28412039E+05] +[1.04243552E+06 3.88284357E+04] domain=10002 type=prompt-nu-fission -[0.000000000E+00 0.000000000E+00] -[0.000000000E+00 0.000000000E+00] +[0.00000000E+00 0.00000000E+00] +[0.00000000E+00 0.00000000E+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 2cc679c690..5a02811a9f 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.148254902E-01 2.279290910E-02 -0 10000 2 total 6.601699186E-01 4.751892790E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596371E-01 2.549359560E-02 -0 10000 2 total 6.476476601E-01 2.370373520E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596371E-01 2.549359560E-02 -0 10000 2 total 6.476476601E-01 2.370373520E-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.740784490E-02 2.692497100E-03 -0 10000 2 total 2.645107416E-01 2.336707740E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.984454990E-02 2.643304300E-03 -0 10000 2 total 7.171935290E-02 2.520785940E-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.563295000E-03 5.084837000E-04 -0 10000 2 total 1.927913887E-01 1.710592190E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.943174040E-02 1.322975600E-03 -0 10000 2 total 4.697747770E-01 4.168199980E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.474569823E+00 9.923532110E-02 -0 10000 2 total 3.728689641E+01 3.308377725E+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.874176453E-01 2.062573210E-02 -0 10000 2 total 3.956591770E-01 2.512505680E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.851883882E-01 2.694562110E-02 -0 10000 2 total 4.123893993E-01 1.542527700E-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841994578E-01 2.700101360E-02 -13 10000 1 1 total P1 5.187028430E-02 6.982548900E-03 -14 10000 1 1 total P2 2.006884530E-02 2.846495200E-03 -15 10000 1 1 total P3 9.477715700E-03 2.233519800E-03 -8 10000 1 2 total P0 9.889304000E-04 4.824194000E-04 -9 10000 1 2 total P1 -2.072346000E-04 1.490108000E-04 -10 10000 1 2 total P2 -1.033662000E-04 1.843163000E-04 -11 10000 1 2 total P3 2.342906000E-04 1.281731000E-04 -4 10000 2 1 total P0 9.246399000E-04 9.248835000E-04 -5 10000 2 1 total P1 -7.677050000E-04 7.679072000E-04 -6 10000 2 1 total P2 4.937889000E-04 4.939189000E-04 -7 10000 2 1 total P3 -1.714972000E-04 1.715424000E-04 -0 10000 2 2 total P0 4.114647594E-01 1.524493540E-02 -1 10000 2 2 total P1 1.648172800E-02 4.501728000E-03 -2 10000 2 2 total P2 6.371490500E-03 1.055074930E-02 -3 10000 2 2 total P3 -1.049912210E-02 1.043818770E-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841994578E-01 2.700101360E-02 -13 10000 1 1 total P1 5.187028430E-02 6.982548900E-03 -14 10000 1 1 total P2 2.006884530E-02 2.846495200E-03 -15 10000 1 1 total P3 9.477715700E-03 2.233519800E-03 -8 10000 1 2 total P0 9.889304000E-04 4.824194000E-04 -9 10000 1 2 total P1 -2.072346000E-04 1.490108000E-04 -10 10000 1 2 total P2 -1.033662000E-04 1.843163000E-04 -11 10000 1 2 total P3 2.342906000E-04 1.281731000E-04 -4 10000 2 1 total P0 9.246399000E-04 9.248835000E-04 -5 10000 2 1 total P1 -7.677050000E-04 7.679072000E-04 -6 10000 2 1 total P2 4.937889000E-04 4.939189000E-04 -7 10000 2 1 total P3 -1.714972000E-04 1.715424000E-04 -0 10000 2 2 total P0 4.114647594E-01 1.524493540E-02 -1 10000 2 2 total P1 1.648172800E-02 4.501728000E-03 -2 10000 2 2 total P2 6.371490500E-03 1.055074930E-02 -3 10000 2 2 total P3 -1.049912210E-02 1.043818770E-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.000000000E+00 7.851645500E-02 -2 10000 1 2 total 1.000000000E+00 6.871842709E-01 -1 10000 2 1 total 1.000000000E+00 1.414213562E+00 -0 10000 2 2 total 1.000000000E+00 4.113034880E-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.014242820E-02 3.149091700E-03 -2 10000 1 2 total 0.000000000E+00 0.000000000E+00 -1 10000 2 1 total 4.543664666E-01 2.742550690E-02 -0 10000 2 2 total 0.000000000E+00 0.000000000E+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000000E+00 4.607052350E-02 -0 10000 2 total 0.000000000E+00 0.000000000E+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000000E+00 5.147145670E-02 -0 10000 2 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.751521062E+07 1.438175274E+06 -0 10000 2 total 3.501719952E+05 2.994593170E+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.923922150E-02 1.309506000E-03 -0 10000 2 total 4.667190274E-01 4.141087040E-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.137376709E-01 1.558190240E-02 -0 10001 2 total 3.008214017E-01 2.805244840E-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732278720E-01 3.311536640E-02 -0 10001 2 total 3.123748362E-01 4.960583170E-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732278720E-01 3.311536640E-02 -0 10001 2 total 3.123748362E-01 4.960583170E-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991400E-03 3.225479000E-04 -0 10001 2 total 5.400378800E-03 6.181383000E-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991400E-03 3.225479000E-04 -0 10001 2 total 5.400378800E-03 6.181383000E-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000E+00 0.000000000E+00 -0 10001 2 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000E+00 0.000000000E+00 -0 10001 2 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000E+00 0.000000000E+00 -0 10001 2 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.121626795E-01 1.532192310E-02 -0 10001 2 total 2.954210229E-01 2.744548890E-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.101207351E-01 3.378810610E-02 -0 10001 2 total 2.962642700E-01 4.379222570E-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207351E-01 3.378810610E-02 -13 10001 1 1 total P1 3.822959040E-02 8.483997100E-03 -14 10001 1 1 total P2 2.074494200E-02 4.695610700E-03 -15 10001 1 1 total P3 7.964296800E-03 3.731622600E-03 -8 10001 1 2 total P0 0.000000000E+00 0.000000000E+00 -9 10001 1 2 total P1 0.000000000E+00 0.000000000E+00 -10 10001 1 2 total P2 0.000000000E+00 0.000000000E+00 -11 10001 1 2 total P3 0.000000000E+00 0.000000000E+00 -4 10001 2 1 total P0 0.000000000E+00 0.000000000E+00 -5 10001 2 1 total P1 0.000000000E+00 0.000000000E+00 -6 10001 2 1 total P2 0.000000000E+00 0.000000000E+00 -7 10001 2 1 total P3 0.000000000E+00 0.000000000E+00 -0 10001 2 2 total P0 2.962642700E-01 4.379222570E-02 -1 10001 2 2 total P1 -1.121363610E-02 1.618036650E-02 -2 10001 2 2 total P2 8.836566300E-03 1.150396450E-02 -3 10001 2 2 total P3 -3.270067300E-03 7.328845800E-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207351E-01 3.378810610E-02 -13 10001 1 1 total P1 3.822959040E-02 8.483997100E-03 -14 10001 1 1 total P2 2.074494200E-02 4.695610700E-03 -15 10001 1 1 total P3 7.964296800E-03 3.731622600E-03 -8 10001 1 2 total P0 0.000000000E+00 0.000000000E+00 -9 10001 1 2 total P1 0.000000000E+00 0.000000000E+00 -10 10001 1 2 total P2 0.000000000E+00 0.000000000E+00 -11 10001 1 2 total P3 0.000000000E+00 0.000000000E+00 -4 10001 2 1 total P0 0.000000000E+00 0.000000000E+00 -5 10001 2 1 total P1 0.000000000E+00 0.000000000E+00 -6 10001 2 1 total P2 0.000000000E+00 0.000000000E+00 -7 10001 2 1 total P3 0.000000000E+00 0.000000000E+00 -0 10001 2 2 total P0 2.962642700E-01 4.379222570E-02 -1 10001 2 2 total P1 -1.121363610E-02 1.618036650E-02 -2 10001 2 2 total P2 8.836566300E-03 1.150396450E-02 -3 10001 2 2 total P3 -3.270067300E-03 7.328845800E-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.000000000E+00 1.087786967E-01 -2 10001 1 2 total 0.000000000E+00 0.000000000E+00 -1 10001 2 1 total 0.000000000E+00 0.000000000E+00 -0 10001 2 2 total 1.000000000E+00 1.424271731E-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.000000000E+00 0.000000000E+00 -2 10001 1 2 total 0.000000000E+00 0.000000000E+00 -1 10001 2 1 total 0.000000000E+00 0.000000000E+00 -0 10001 2 2 total 0.000000000E+00 0.000000000E+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000000E+00 0.000000000E+00 -0 10001 2 total 0.000000000E+00 0.000000000E+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000000E+00 0.000000000E+00 -0 10001 2 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.667783950E+07 1.266444310E+06 -0 10001 2 total 3.349533676E+05 3.833678163E+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000000E+00 0.000000000E+00 -0 10001 2 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.645722606E-01 3.121475190E-02 -0 10002 2 total 2.052384014E+00 2.243429067E-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905652574E-01 2.385185460E-02 -0 10002 2 total 1.516438013E+00 2.351972685E-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905652574E-01 2.385185460E-02 -0 10002 2 total 1.516438013E+00 2.351972685E-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995000E-04 4.414760000E-05 -0 10002 2 total 3.168725660E-02 3.746558600E-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995000E-04 4.414760000E-05 -0 10002 2 total 3.168725660E-02 3.746558600E-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000E+00 0.000000000E+00 -0 10002 2 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000E+00 0.000000000E+00 -0 10002 2 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000E+00 0.000000000E+00 -0 10002 2 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.638818611E-01 3.117268400E-02 -0 10002 2 total 2.020696757E+00 2.206044539E-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.712692047E-01 2.618637120E-02 -0 10002 2 total 2.035388329E+00 2.580603286E-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399014849E-01 2.470912280E-02 -13 10002 1 1 total P1 3.811674489E-01 1.624326490E-02 -14 10002 1 1 total P2 1.523918978E-01 8.156277700E-03 -15 10002 1 1 total P3 9.148022300E-03 3.888562100E-03 -8 10002 1 2 total P0 3.136771980E-02 1.728112900E-03 -9 10002 1 2 total P1 8.757723200E-03 9.256705000E-04 -10 10002 1 2 total P2 -2.567901100E-03 1.013984800E-03 -11 10002 1 2 total P3 -3.784802900E-03 8.170756000E-04 -4 10002 2 1 total P0 4.433431000E-04 4.448504000E-04 -5 10002 2 1 total P1 3.999604000E-04 4.013202000E-04 -6 10002 2 1 total P2 3.195627000E-04 3.206491000E-04 -7 10002 2 1 total P3 2.138470000E-04 2.145740000E-04 -0 10002 2 2 total P0 2.034944986E+00 2.577998889E-01 -1 10002 2 2 total P1 5.099405132E-01 5.123590630E-02 -2 10002 2 2 total P2 1.111746088E-01 1.301981700E-02 -3 10002 2 2 total P3 2.498843570E-02 8.312352600E-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399014849E-01 2.470912280E-02 -13 10002 1 1 total P1 3.811674489E-01 1.624326490E-02 -14 10002 1 1 total P2 1.523918978E-01 8.156277700E-03 -15 10002 1 1 total P3 9.148022300E-03 3.888562100E-03 -8 10002 1 2 total P0 3.136771980E-02 1.728112900E-03 -9 10002 1 2 total P1 8.757723200E-03 9.256705000E-04 -10 10002 1 2 total P2 -2.567901100E-03 1.013984800E-03 -11 10002 1 2 total P3 -3.784802900E-03 8.170756000E-04 -4 10002 2 1 total P0 4.433431000E-04 4.448504000E-04 -5 10002 2 1 total P1 3.999604000E-04 4.013202000E-04 -6 10002 2 1 total P2 3.195627000E-04 3.206491000E-04 -7 10002 2 1 total P3 2.138470000E-04 2.145740000E-04 -0 10002 2 2 total P0 2.034944986E+00 2.577998889E-01 -1 10002 2 2 total P1 5.099405132E-01 5.123590630E-02 -2 10002 2 2 total P2 1.111746088E-01 1.301981700E-02 -3 10002 2 2 total P3 2.498843570E-02 8.312352600E-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.000000000E+00 3.860919080E-02 -2 10002 1 2 total 1.000000000E+00 6.766734800E-02 -1 10002 2 1 total 1.000000000E+00 1.414213562E+00 -0 10002 2 2 total 1.000000000E+00 1.359292066E-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.000000000E+00 0.000000000E+00 -2 10002 1 2 total 0.000000000E+00 0.000000000E+00 -1 10002 2 1 total 0.000000000E+00 0.000000000E+00 -0 10002 2 2 total 0.000000000E+00 0.000000000E+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000000E+00 0.000000000E+00 -0 10002 2 total 0.000000000E+00 0.000000000E+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000000E+00 0.000000000E+00 -0 10002 2 total 0.000000000E+00 0.000000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.660556287E+07 1.042435524E+06 -0 10002 2 total 3.284120387E+05 3.882843573E+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000000E+00 0.000000000E+00 -0 10002 2 total 0.000000000E+00 0.000000000E+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.14825490E-01 2.27929090E-02 +0 10000 2 total 6.60169919E-01 4.75189280E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.56859637E-01 2.54935960E-02 +0 10000 2 total 6.47647660E-01 2.37037350E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.56859637E-01 2.54935960E-02 +0 10000 2 total 6.47647660E-01 2.37037350E-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.74078450E-02 2.69249700E-03 +0 10000 2 total 2.64510742E-01 2.33670770E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.98445500E-02 2.64330400E-03 +0 10000 2 total 7.17193530E-02 2.52078590E-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.56329500E-03 5.08484000E-04 +0 10000 2 total 1.92791389E-01 1.71059220E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.94317400E-02 1.32297600E-03 +0 10000 2 total 4.69774777E-01 4.16820000E-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.47456982E+00 9.92353210E-02 +0 10000 2 total 3.72868964E+01 3.30837773E+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.87417645E-01 2.06257320E-02 +0 10000 2 total 3.95659177E-01 2.51250570E-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.85188388E-01 2.69456210E-02 +0 10000 2 total 4.12389399E-01 1.54252770E-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.84199458E-01 2.70010140E-02 +13 10000 1 1 total P1 5.18702840E-02 6.98254900E-03 +14 10000 1 1 total P2 2.00688450E-02 2.84649500E-03 +15 10000 1 1 total P3 9.47771600E-03 2.23352000E-03 +8 10000 1 2 total P0 9.88930000E-04 4.82419000E-04 +9 10000 1 2 total P1 -2.07235000E-04 1.49011000E-04 +10 10000 1 2 total P2 -1.03366000E-04 1.84316000E-04 +11 10000 1 2 total P3 2.34291000E-04 1.28173000E-04 +4 10000 2 1 total P0 9.24640000E-04 9.24883000E-04 +5 10000 2 1 total P1 -7.67705000E-04 7.67907000E-04 +6 10000 2 1 total P2 4.93789000E-04 4.93919000E-04 +7 10000 2 1 total P3 -1.71497000E-04 1.71542000E-04 +0 10000 2 2 total P0 4.11464759E-01 1.52449350E-02 +1 10000 2 2 total P1 1.64817280E-02 4.50172800E-03 +2 10000 2 2 total P2 6.37149000E-03 1.05507490E-02 +3 10000 2 2 total P3 -1.04991220E-02 1.04381880E-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.84199458E-01 2.70010140E-02 +13 10000 1 1 total P1 5.18702840E-02 6.98254900E-03 +14 10000 1 1 total P2 2.00688450E-02 2.84649500E-03 +15 10000 1 1 total P3 9.47771600E-03 2.23352000E-03 +8 10000 1 2 total P0 9.88930000E-04 4.82419000E-04 +9 10000 1 2 total P1 -2.07235000E-04 1.49011000E-04 +10 10000 1 2 total P2 -1.03366000E-04 1.84316000E-04 +11 10000 1 2 total P3 2.34291000E-04 1.28173000E-04 +4 10000 2 1 total P0 9.24640000E-04 9.24883000E-04 +5 10000 2 1 total P1 -7.67705000E-04 7.67907000E-04 +6 10000 2 1 total P2 4.93789000E-04 4.93919000E-04 +7 10000 2 1 total P3 -1.71497000E-04 1.71542000E-04 +0 10000 2 2 total P0 4.11464759E-01 1.52449350E-02 +1 10000 2 2 total P1 1.64817280E-02 4.50172800E-03 +2 10000 2 2 total P2 6.37149000E-03 1.05507490E-02 +3 10000 2 2 total P3 -1.04991220E-02 1.04381880E-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.00000000E+00 7.85164550E-02 +2 10000 1 2 total 1.00000000E+00 6.87184271E-01 +1 10000 2 1 total 1.00000000E+00 1.41421356E+00 +0 10000 2 2 total 1.00000000E+00 4.11303490E-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.01424280E-02 3.14909200E-03 +2 10000 1 2 total 0.00000000E+00 0.00000000E+00 +1 10000 2 1 total 4.54366467E-01 2.74255070E-02 +0 10000 2 2 total 0.00000000E+00 0.00000000E+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.00000000E+00 4.60705230E-02 +0 10000 2 total 0.00000000E+00 0.00000000E+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.00000000E+00 5.14714570E-02 +0 10000 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.75152106E+07 1.43817527E+06 +0 10000 2 total 3.50171995E+05 2.99459317E+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.92392220E-02 1.30950600E-03 +0 10000 2 total 4.66719027E-01 4.14108700E-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.13737671E-01 1.55819020E-02 +0 10001 2 total 3.00821402E-01 2.80524480E-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.73227872E-01 3.31153660E-02 +0 10001 2 total 3.12374836E-01 4.96058320E-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.73227872E-01 3.31153660E-02 +0 10001 2 total 3.12374836E-01 4.96058320E-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.57499100E-03 3.22548000E-04 +0 10001 2 total 5.40037900E-03 6.18138000E-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.57499100E-03 3.22548000E-04 +0 10001 2 total 5.40037900E-03 6.18138000E-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000E+00 0.00000000E+00 +0 10001 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000E+00 0.00000000E+00 +0 10001 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000E+00 0.00000000E+00 +0 10001 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.12162680E-01 1.53219230E-02 +0 10001 2 total 2.95421023E-01 2.74454890E-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.10120735E-01 3.37881060E-02 +0 10001 2 total 2.96264270E-01 4.37922260E-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.10120735E-01 3.37881060E-02 +13 10001 1 1 total P1 3.82295900E-02 8.48399700E-03 +14 10001 1 1 total P2 2.07449420E-02 4.69561100E-03 +15 10001 1 1 total P3 7.96429700E-03 3.73162300E-03 +8 10001 1 2 total P0 0.00000000E+00 0.00000000E+00 +9 10001 1 2 total P1 0.00000000E+00 0.00000000E+00 +10 10001 1 2 total P2 0.00000000E+00 0.00000000E+00 +11 10001 1 2 total P3 0.00000000E+00 0.00000000E+00 +4 10001 2 1 total P0 0.00000000E+00 0.00000000E+00 +5 10001 2 1 total P1 0.00000000E+00 0.00000000E+00 +6 10001 2 1 total P2 0.00000000E+00 0.00000000E+00 +7 10001 2 1 total P3 0.00000000E+00 0.00000000E+00 +0 10001 2 2 total P0 2.96264270E-01 4.37922260E-02 +1 10001 2 2 total P1 -1.12136360E-02 1.61803660E-02 +2 10001 2 2 total P2 8.83656600E-03 1.15039640E-02 +3 10001 2 2 total P3 -3.27006700E-03 7.32884600E-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.10120735E-01 3.37881060E-02 +13 10001 1 1 total P1 3.82295900E-02 8.48399700E-03 +14 10001 1 1 total P2 2.07449420E-02 4.69561100E-03 +15 10001 1 1 total P3 7.96429700E-03 3.73162300E-03 +8 10001 1 2 total P0 0.00000000E+00 0.00000000E+00 +9 10001 1 2 total P1 0.00000000E+00 0.00000000E+00 +10 10001 1 2 total P2 0.00000000E+00 0.00000000E+00 +11 10001 1 2 total P3 0.00000000E+00 0.00000000E+00 +4 10001 2 1 total P0 0.00000000E+00 0.00000000E+00 +5 10001 2 1 total P1 0.00000000E+00 0.00000000E+00 +6 10001 2 1 total P2 0.00000000E+00 0.00000000E+00 +7 10001 2 1 total P3 0.00000000E+00 0.00000000E+00 +0 10001 2 2 total P0 2.96264270E-01 4.37922260E-02 +1 10001 2 2 total P1 -1.12136360E-02 1.61803660E-02 +2 10001 2 2 total P2 8.83656600E-03 1.15039640E-02 +3 10001 2 2 total P3 -3.27006700E-03 7.32884600E-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.00000000E+00 1.08778697E-01 +2 10001 1 2 total 0.00000000E+00 0.00000000E+00 +1 10001 2 1 total 0.00000000E+00 0.00000000E+00 +0 10001 2 2 total 1.00000000E+00 1.42427173E-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.00000000E+00 0.00000000E+00 +2 10001 1 2 total 0.00000000E+00 0.00000000E+00 +1 10001 2 1 total 0.00000000E+00 0.00000000E+00 +0 10001 2 2 total 0.00000000E+00 0.00000000E+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.00000000E+00 0.00000000E+00 +0 10001 2 total 0.00000000E+00 0.00000000E+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.00000000E+00 0.00000000E+00 +0 10001 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.66778395E+07 1.26644431E+06 +0 10001 2 total 3.34953368E+05 3.83367816E+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000E+00 0.00000000E+00 +0 10001 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.64572261E-01 3.12147520E-02 +0 10002 2 total 2.05238401E+00 2.24342907E-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.90565257E-01 2.38518550E-02 +0 10002 2 total 1.51643801E+00 2.35197269E-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.90565257E-01 2.38518550E-02 +0 10002 2 total 1.51643801E+00 2.35197269E-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.90400000E-04 4.41480000E-05 +0 10002 2 total 3.16872570E-02 3.74655900E-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.90400000E-04 4.41480000E-05 +0 10002 2 total 3.16872570E-02 3.74655900E-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000E+00 0.00000000E+00 +0 10002 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000E+00 0.00000000E+00 +0 10002 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000E+00 0.00000000E+00 +0 10002 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.63881861E-01 3.11726840E-02 +0 10002 2 total 2.02069676E+00 2.20604454E-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.71269205E-01 2.61863710E-02 +0 10002 2 total 2.03538833E+00 2.58060329E-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.39901485E-01 2.47091230E-02 +13 10002 1 1 total P1 3.81167449E-01 1.62432650E-02 +14 10002 1 1 total P2 1.52391898E-01 8.15627800E-03 +15 10002 1 1 total P3 9.14802200E-03 3.88856200E-03 +8 10002 1 2 total P0 3.13677200E-02 1.72811300E-03 +9 10002 1 2 total P1 8.75772300E-03 9.25671000E-04 +10 10002 1 2 total P2 -2.56790100E-03 1.01398500E-03 +11 10002 1 2 total P3 -3.78480300E-03 8.17076000E-04 +4 10002 2 1 total P0 4.43343000E-04 4.44850000E-04 +5 10002 2 1 total P1 3.99960000E-04 4.01320000E-04 +6 10002 2 1 total P2 3.19563000E-04 3.20649000E-04 +7 10002 2 1 total P3 2.13847000E-04 2.14574000E-04 +0 10002 2 2 total P0 2.03494499E+00 2.57799889E-01 +1 10002 2 2 total P1 5.09940513E-01 5.12359060E-02 +2 10002 2 2 total P2 1.11174609E-01 1.30198170E-02 +3 10002 2 2 total P3 2.49884360E-02 8.31235300E-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.39901485E-01 2.47091230E-02 +13 10002 1 1 total P1 3.81167449E-01 1.62432650E-02 +14 10002 1 1 total P2 1.52391898E-01 8.15627800E-03 +15 10002 1 1 total P3 9.14802200E-03 3.88856200E-03 +8 10002 1 2 total P0 3.13677200E-02 1.72811300E-03 +9 10002 1 2 total P1 8.75772300E-03 9.25671000E-04 +10 10002 1 2 total P2 -2.56790100E-03 1.01398500E-03 +11 10002 1 2 total P3 -3.78480300E-03 8.17076000E-04 +4 10002 2 1 total P0 4.43343000E-04 4.44850000E-04 +5 10002 2 1 total P1 3.99960000E-04 4.01320000E-04 +6 10002 2 1 total P2 3.19563000E-04 3.20649000E-04 +7 10002 2 1 total P3 2.13847000E-04 2.14574000E-04 +0 10002 2 2 total P0 2.03494499E+00 2.57799889E-01 +1 10002 2 2 total P1 5.09940513E-01 5.12359060E-02 +2 10002 2 2 total P2 1.11174609E-01 1.30198170E-02 +3 10002 2 2 total P3 2.49884360E-02 8.31235300E-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.00000000E+00 3.86091910E-02 +2 10002 1 2 total 1.00000000E+00 6.76673480E-02 +1 10002 2 1 total 1.00000000E+00 1.41421356E+00 +0 10002 2 2 total 1.00000000E+00 1.35929207E-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.00000000E+00 0.00000000E+00 +2 10002 1 2 total 0.00000000E+00 0.00000000E+00 +1 10002 2 1 total 0.00000000E+00 0.00000000E+00 +0 10002 2 2 total 0.00000000E+00 0.00000000E+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.00000000E+00 0.00000000E+00 +0 10002 2 total 0.00000000E+00 0.00000000E+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.00000000E+00 0.00000000E+00 +0 10002 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.66055629E+07 1.04243552E+06 +0 10002 2 total 3.28412039E+05 3.88284357E+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000E+00 0.00000000E+00 +0 10002 2 total 0.00000000E+00 0.00000000E+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 62a0b202d8..9a77145394 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -ed74bb8e0a7fdab7e5f5f371973c59ca723037c9f9bf0db5bd542896bc605f60712031e3379798e9f13c1dae19dba8bdc28dc81f4acf9f9d8a7bf0b2dea07660 \ No newline at end of file +7579f6368d2046d33c506d3a43d46703bf8151e16256787bac963be127d9000be272941fbaa2a1ee91f2abe3d619c2202f21db9bc1f78e064634aa065eb891c5 \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 1a787f5982..243e160989 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.000000000E+02 0.000000000E+00 7.000000000E+02 8.000000000E+02] + Temperature = [5.00000000E+02 0.00000000E+00 7.00000000E+02 8.00000000E+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index c5230e1f9c..71febfaed1 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -048dbc5027cfc34c8659086fe1a9aeed76b6a3b0c91e6c7a2790dc83234aacc39e4825d2ac25800f8ff2e3d5317c7da085fcfdb3b5e5a6d99fd625efa1b5b77d \ No newline at end of file +0f9d70b87ee321e8202ecb344439a0194c25ea7d0e772eec59bde11857426da894c6b2d85a953c6ca15372ab0f6d48b44a00874366129158fc341140bff049d1 \ 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 e6f42244f6..d677d69f5c 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] +[[[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] ..., - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]]][[[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]]][[[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 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.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] ..., - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]]][[[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]]][[[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00 0.000000000E+00]]][[[0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]]][[[0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00]]][[[0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00]] + [[0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00]]][[[0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00] + [0.00000000E+00 0.00000000E+00 0.00000000E+00]] - [[0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+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.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00] - [0.000000000E+00 0.000000000E+00 0.000000000E+00]]] \ No newline at end of file + [[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 diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 94fa15ad57..e8251cfc62 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -15,8 +15,8 @@ import pandas as pd # scientific notation with 10 significant figures. This is needed to avoid round # off error when large numbers are printed, which can cause tests to fail for # different build configurations. -np.set_printoptions(formatter={'float': lambda x: format(np.around(x, 10), '11.9E')}) -pd.set_option('display.float_format', lambda x: '%11.9E' % np.around(x,10)) +np.set_printoptions(formatter={'float': lambda x: format(np.around(x, 9), '10.8E')}) +pd.set_option('display.float_format', lambda x: '%10.8E' % np.around(x, 9)) sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From 37b103073bb6fa011fd7c48a3e032e8cdb8edee0 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 17:19:55 -0600 Subject: [PATCH 149/417] changed num sig figs from 9 to 7 in tally aggregation test --- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_aggregation/test_tally_aggregation.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 71febfaed1..ad113d8fa2 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -0f9d70b87ee321e8202ecb344439a0194c25ea7d0e772eec59bde11857426da894c6b2d85a953c6ca15372ab0f6d48b44a00874366129158fc341140bff049d1 \ No newline at end of file +b47e2f499c20b824b987ee1c5126de38cf86754b1abe3c7d0f19046a1d7a5eadebedee4b074ff25c1ffb9e147bd9f55d1e5f11e57aaf5804cb248f21dfbec3b1 \ No newline at end of file diff --git a/tests/test_tally_aggregation/test_tally_aggregation.py b/tests/test_tally_aggregation/test_tally_aggregation.py index fdc086e682..3b9aec4d38 100644 --- a/tests/test_tally_aggregation/test_tally_aggregation.py +++ b/tests/test_tally_aggregation/test_tally_aggregation.py @@ -8,6 +8,16 @@ sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness import openmc +import numpy as np +import pandas as pd + +# Require numpy and pandas to print output rounded to 10 decimal places and in +# scientific notation with 10 significant figures. This is needed to avoid round +# off error when large numbers are printed, which can cause tests to fail for +# different build configurations. +np.set_printoptions(formatter={'float': lambda x: format(np.around(x, 7), '8.6E')}) +pd.set_option('display.float_format', lambda x: '%8.6E' % np.around(x, 7)) + class TallyAggregationTestHarness(PyAPITestHarness): def _build_inputs(self): From a175551d3ea2bfa232e8f31b431585fd6dc9c2e2 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 11 Jul 2016 17:41:33 -0600 Subject: [PATCH 150/417] removed pandas and numpy requirement to print values in scientific notation --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 312 +++++------ .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- .../test_tally_aggregation.py | 10 - tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 4 +- 10 files changed, 691 insertions(+), 701 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 6d94eda7b4..b6cd1e380e 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.53624422E-01 2.10526960E-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.00852178E-01 2.28575540E-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.00852178E-01 2.28575540E-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.49034560E-02 4.31276100E-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.80480660E-02 4.57996400E-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.68553900E-02 2.62216000E-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.06492900E-02 6.40987500E-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.13795514E+00 5.07363815E-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.88720967E-01 1.78304290E-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.89303556E-01 2.30755390E-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.89303556E-01 2.31456050E-02 -1 10000 1 1 total P1 4.62244180E-02 5.90717000E-03 -2 10000 1 1 total P2 1.79835850E-02 2.88297200E-03 -3 10000 1 1 total P3 6.62837400E-03 2.45710900E-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.89303556E-01 2.31456050E-02 -1 10000 1 1 total P1 4.62244180E-02 5.90717000E-03 -2 10000 1 1 total P2 1.79835850E-02 2.88297200E-03 -3 10000 1 1 total P3 6.62837400E-03 2.45710900E-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.00000000E+00 6.61108200E-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.58350190E-02 5.59182500E-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.00000000E+00 4.60705230E-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.00000000E+00 5.14714570E-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.00130874E+06 1.46216555E+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.00039780E-02 6.36690800E-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.11594108E-01 1.37931680E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.79255064E-01 2.91895010E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.79255064E-01 2.91895010E-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.20984600E-03 2.86334000E-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.20984600E-03 2.86334000E-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.09384262E-01 1.35512670E-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.07987349E-01 2.93080890E-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.07987349E-01 2.93080890E-02 -1 10001 1 1 total P1 3.06171530E-02 7.46445600E-03 -2 10001 1 1 total P2 1.89114900E-02 4.32282800E-03 -3 10001 1 1 total P3 6.23461800E-03 3.33820200E-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.07987349E-01 2.93080890E-02 -1 10001 1 1 total P1 3.06171530E-02 7.46445600E-03 -2 10001 1 1 total P2 1.89114900E-02 4.32282800E-03 -3 10001 1 1 total P3 6.23461800E-03 3.33820200E-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.00000000E+00 9.50387220E-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.00000000E+00 0.00000000E+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.00000000E+00 0.00000000E+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.83326115E+06 1.66355175E+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.04998833E-01 4.39644880E-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.99183983E-01 4.09141200E-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.99183983E-01 4.09141200E-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.06034100E-03 5.54524000E-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.06034100E-03 5.54524000E-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.98938492E-01 4.34929840E-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.03414663E-01 4.39587370E-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.03414663E-01 4.35859940E-02 -1 10002 1 1 total P1 4.10417419E-01 1.58772200E-02 -2 10002 1 1 total P2 1.43301036E-01 7.18737800E-03 -3 10002 1 1 total P3 8.73942600E-03 3.57144100E-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.03414663E-01 4.35859940E-02 -1 10002 1 1 total P1 4.10417419E-01 1.58772200E-02 -2 10002 1 1 total P2 1.43301036E-01 7.18737800E-03 -3 10002 1 1 total P3 8.73942600E-03 3.57144100E-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.00000000E+00 5.68667250E-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.00000000E+00 0.00000000E+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.00000000E+00 0.00000000E+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.73219970E+06 1.59691426E+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +0 10000 1 total 0.453624 0.021053 + material group in nuclide mean std. dev. +0 10000 1 total 0.400852 0.022858 + material group in nuclide mean std. dev. +0 10000 1 total 0.400852 0.022858 + material group in nuclide mean std. dev. +0 10000 1 total 0.064903 0.004313 + material group in nuclide mean std. dev. +0 10000 1 total 0.028048 0.004580 + material group in nuclide mean std. dev. +0 10000 1 total 0.036855 0.002622 + material group in nuclide mean std. dev. +0 10000 1 total 0.090649 0.006410 + material group in nuclide mean std. dev. +0 10000 1 total 7.137955 0.507364 + material group in nuclide mean std. dev. +0 10000 1 total 0.388721 0.017830 + material group in nuclide mean std. dev. +0 10000 1 total 0.389304 0.023076 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 0.389304 0.023146 +1 10000 1 1 total P1 0.046224 0.005907 +2 10000 1 1 total P2 0.017984 0.002883 +3 10000 1 1 total P3 0.006628 0.002457 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 0.389304 0.023146 +1 10000 1 1 total P1 0.046224 0.005907 +2 10000 1 1 total P2 0.017984 0.002883 +3 10000 1 1 total P3 0.006628 0.002457 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.000000 0.066111 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 0.085835 0.005592 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000 0.046071 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000 0.051471 + material group in nuclide mean std. dev. +0 10000 1 total 2001308.739748 146216.555365 + material group in nuclide mean std. dev. +0 10000 1 total 0.090004 0.006367 + material group in nuclide mean std. dev. +0 10001 1 total 0.311594 0.013793 + material group in nuclide mean std. dev. +0 10001 1 total 0.279255 0.029190 + material group in nuclide mean std. dev. +0 10001 1 total 0.279255 0.029190 + material group in nuclide mean std. dev. +0 10001 1 total 0.002210 0.000286 + material group in nuclide mean std. dev. +0 10001 1 total 0.002210 0.000286 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000 0.000000 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000 0.000000 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000 0.000000 + material group in nuclide mean std. dev. +0 10001 1 total 0.309384 0.013551 + material group in nuclide mean std. dev. +0 10001 1 total 0.307987 0.029308 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 0.307987 0.029308 +1 10001 1 1 total P1 0.030617 0.007464 +2 10001 1 1 total P2 0.018911 0.004323 +3 10001 1 1 total P3 0.006235 0.003338 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 0.307987 0.029308 +1 10001 1 1 total P1 0.030617 0.007464 +2 10001 1 1 total P2 0.018911 0.004323 +3 10001 1 1 total P3 0.006235 0.003338 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.000000 0.095039 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.000000 0.000000 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000 0.000000 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000 0.000000 + material group in nuclide mean std. dev. +0 10001 1 total 1833261.152573 166355.174520 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000 0.000000 + material group in nuclide mean std. dev. +0 10002 1 total 0.904999 0.043964 + material group in nuclide mean std. dev. +0 10002 1 total 0.499184 0.040914 + material group in nuclide mean std. dev. +0 10002 1 total 0.499184 0.040914 + material group in nuclide mean std. dev. +0 10002 1 total 0.006060 0.000555 + material group in nuclide mean std. dev. +0 10002 1 total 0.006060 0.000555 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000 0.000000 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000 0.000000 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000 0.000000 + material group in nuclide mean std. dev. +0 10002 1 total 0.898938 0.043493 + material group in nuclide mean std. dev. +0 10002 1 total 0.903415 0.043959 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 0.903415 0.043586 +1 10002 1 1 total P1 0.410417 0.015877 +2 10002 1 1 total P2 0.143301 0.007187 +3 10002 1 1 total P3 0.008739 0.003571 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 0.903415 0.043586 +1 10002 1 1 total P1 0.410417 0.015877 +2 10002 1 1 total P2 0.143301 0.007187 +3 10002 1 1 total P3 0.008739 0.003571 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.000000 0.056867 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.000000 0.000000 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000 0.000000 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000 0.000000 + material group in nuclide mean std. dev. +0 10002 1 total 1732199.699466 159691.426430 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000 0.000000 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index e66bf16c1e..bb53bc81c8 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.14593400E+00 5.53821695E-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919199E-01 5.20644256E-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919199E-01 5.20644256E-01 - 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 1.97622060E-02 1.06287640E-02 - 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 1.97622060E-02 1.06287640E-02 - 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.00000000E+00 0.00000000E+00 - 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.00000000E+00 0.00000000E+00 - 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.00000000E+00 0.00000000E+00 - 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 1.12617179E+00 5.43440008E-01 - 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 1.14254692E+00 5.70131390E-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254692E+00 5.70131390E-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294E-01 2.16322168E-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793E-01 6.65037730E-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282700E-02 2.46208320E-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254692E+00 5.70131390E-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294E-01 2.16322168E-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793E-01 6.65037730E-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282700E-02 2.46208320E-02 - 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 1.00000000E+00 5.29717327E-01 - 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.00000000E+00 0.00000000E+00 - 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.00000000E+00 0.00000000E+00 - 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.00000000E+00 0.00000000E+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.74245714E+05 4.16397692E+05 - 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.00000000E+00 0.00000000E+00 + 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 1.145934 0.553822 + 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.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.019762 0.010629 + 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.019762 0.010629 + 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.000000 0.000000 + 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.000000 0.000000 + 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.000000 0.000000 + 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 1.126172 0.543440 + 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 1.142547 0.570131 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 + 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 1.000000 0.529717 + 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.000000 0.000000 + 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.000000 0.000000 + 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.000000 0.000000 + 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 774245.714482 416397.691599 + 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.000000 0.000000 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 54fb97b991..cc8d6a6b04 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,222 @@ domain=10000 type=total -[4.14825490E-01 6.60169919E-01] -[2.27929090E-02 4.75189280E-02] +[0.414825 0.660170] +[0.022793 0.047519] domain=10000 type=transport -[3.56859637E-01 6.47647660E-01] -[2.54935960E-02 2.37037350E-02] +[0.356860 0.647648] +[0.025494 0.023704] domain=10000 type=nu-transport -[3.56859637E-01 6.47647660E-01] -[2.54935960E-02 2.37037350E-02] +[0.356860 0.647648] +[0.025494 0.023704] domain=10000 type=absorption -[2.74078450E-02 2.64510742E-01] -[2.69249700E-03 2.33670770E-02] +[0.027408 0.264511] +[0.002692 0.023367] domain=10000 type=capture -[1.98445500E-02 7.17193530E-02] -[2.64330400E-03 2.52078590E-02] +[0.019845 0.071719] +[0.002643 0.025208] domain=10000 type=fission -[7.56329500E-03 1.92791389E-01] -[5.08484000E-04 1.71059220E-02] +[0.007563 0.192791] +[0.000508 0.017106] domain=10000 type=nu-fission -[1.94317400E-02 4.69774777E-01] -[1.32297600E-03 4.16820000E-02] +[0.019432 0.469775] +[0.001323 0.041682] domain=10000 type=kappa-fission -[1.47456982E+00 3.72868964E+01] -[9.92353210E-02 3.30837773E+00] +[1.474570 37.286896] +[0.099235 3.308378] domain=10000 type=scatter -[3.87417645E-01 3.95659177E-01] -[2.06257320E-02 2.51250570E-02] +[0.387418 0.395659] +[0.020626 0.025125] domain=10000 type=nu-scatter -[3.85188388E-01 4.12389399E-01] -[2.69456210E-02 1.54252770E-02] +[0.385188 0.412389] +[0.026946 0.015425] domain=10000 type=scatter matrix -[[[3.84199458E-01 5.18702840E-02 2.00688450E-02 9.47771600E-03] - [9.88930000E-04 -2.07235000E-04 -1.03366000E-04 2.34291000E-04]] +[[[0.384199 0.051870 0.020069 0.009478] + [0.000989 -0.000207 -0.000103 0.000234]] - [[9.24640000E-04 -7.67705000E-04 4.93789000E-04 -1.71497000E-04] - [4.11464759E-01 1.64817280E-02 6.37149000E-03 -1.04991220E-02]]] -[[[2.70010140E-02 6.98254900E-03 2.84649500E-03 2.23352000E-03] - [4.82419000E-04 1.49011000E-04 1.84316000E-04 1.28173000E-04]] + [[0.000925 -0.000768 0.000494 -0.000171] + [0.411465 0.016482 0.006371 -0.010499]]] +[[[0.027001 0.006983 0.002846 0.002234] + [0.000482 0.000149 0.000184 0.000128]] - [[9.24883000E-04 7.67907000E-04 4.93919000E-04 1.71542000E-04] - [1.52449350E-02 4.50172800E-03 1.05507490E-02 1.04381880E-02]]] + [[0.000925 0.000768 0.000494 0.000172] + [0.015245 0.004502 0.010551 0.010438]]] domain=10000 type=nu-scatter matrix -[[[3.84199458E-01 5.18702840E-02 2.00688450E-02 9.47771600E-03] - [9.88930000E-04 -2.07235000E-04 -1.03366000E-04 2.34291000E-04]] +[[[0.384199 0.051870 0.020069 0.009478] + [0.000989 -0.000207 -0.000103 0.000234]] - [[9.24640000E-04 -7.67705000E-04 4.93789000E-04 -1.71497000E-04] - [4.11464759E-01 1.64817280E-02 6.37149000E-03 -1.04991220E-02]]] -[[[2.70010140E-02 6.98254900E-03 2.84649500E-03 2.23352000E-03] - [4.82419000E-04 1.49011000E-04 1.84316000E-04 1.28173000E-04]] + [[0.000925 -0.000768 0.000494 -0.000171] + [0.411465 0.016482 0.006371 -0.010499]]] +[[[0.027001 0.006983 0.002846 0.002234] + [0.000482 0.000149 0.000184 0.000128]] - [[9.24883000E-04 7.67907000E-04 4.93919000E-04 1.71542000E-04] - [1.52449350E-02 4.50172800E-03 1.05507490E-02 1.04381880E-02]]] + [[0.000925 0.000768 0.000494 0.000172] + [0.015245 0.004502 0.010551 0.010438]]] domain=10000 type=multiplicity matrix -[[1.00000000E+00 1.00000000E+00] - [1.00000000E+00 1.00000000E+00]] -[[7.85164550E-02 6.87184271E-01] - [1.41421356E+00 4.11303490E-02]] +[[1.000000 1.000000] + [1.000000 1.000000]] +[[0.078516 0.687184] + [1.414214 0.041130]] domain=10000 type=nu-fission matrix -[[2.01424280E-02 0.00000000E+00] - [4.54366467E-01 0.00000000E+00]] -[[3.14909200E-03 0.00000000E+00] - [2.74255070E-02 0.00000000E+00]] +[[0.020142 0.000000] + [0.454366 0.000000]] +[[0.003149 0.000000] + [0.027426 0.000000]] domain=10000 type=chi -[1.00000000E+00 0.00000000E+00] -[4.60705230E-02 0.00000000E+00] +[1.000000 0.000000] +[0.046071 0.000000] domain=10000 type=chi-prompt -[1.00000000E+00 0.00000000E+00] -[5.14714570E-02 0.00000000E+00] +[1.000000 0.000000] +[0.051471 0.000000] domain=10000 type=velocity -[1.75152106E+07 3.50171995E+05] -[1.43817527E+06 2.99459317E+04] +[17515210.620397 350171.995194] +[1438175.273899 29945.931697] domain=10000 type=prompt-nu-fission -[1.92392220E-02 4.66719027E-01] -[1.30950600E-03 4.14108700E-02] +[0.019239 0.466719] +[0.001310 0.041411] domain=10001 type=total -[3.13737671E-01 3.00821402E-01] -[1.55819020E-02 2.80524480E-02] +[0.313738 0.300821] +[0.015582 0.028052] domain=10001 type=transport -[2.73227872E-01 3.12374836E-01] -[3.31153660E-02 4.96058320E-02] +[0.273228 0.312375] +[0.033115 0.049606] domain=10001 type=nu-transport -[2.73227872E-01 3.12374836E-01] -[3.31153660E-02 4.96058320E-02] +[0.273228 0.312375] +[0.033115 0.049606] domain=10001 type=absorption -[1.57499100E-03 5.40037900E-03] -[3.22548000E-04 6.18138000E-04] +[0.001575 0.005400] +[0.000323 0.000618] domain=10001 type=capture -[1.57499100E-03 5.40037900E-03] -[3.22548000E-04 6.18138000E-04] +[0.001575 0.005400] +[0.000323 0.000618] domain=10001 type=fission -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10001 type=nu-fission -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10001 type=kappa-fission -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10001 type=scatter -[3.12162680E-01 2.95421023E-01] -[1.53219230E-02 2.74454890E-02] +[0.312163 0.295421] +[0.015322 0.027445] domain=10001 type=nu-scatter -[3.10120735E-01 2.96264270E-01] -[3.37881060E-02 4.37922260E-02] +[0.310121 0.296264] +[0.033788 0.043792] domain=10001 type=scatter matrix -[[[3.10120735E-01 3.82295900E-02 2.07449420E-02 7.96429700E-03] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] +[[[0.310121 0.038230 0.020745 0.007964] + [0.000000 0.000000 0.000000 0.000000]] - [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [2.96264270E-01 -1.12136360E-02 8.83656600E-03 -3.27006700E-03]]] -[[[3.37881060E-02 8.48399700E-03 4.69561100E-03 3.73162300E-03] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] + [[0.000000 0.000000 0.000000 0.000000] + [0.296264 -0.011214 0.008837 -0.003270]]] +[[[0.033788 0.008484 0.004696 0.003732] + [0.000000 0.000000 0.000000 0.000000]] - [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [4.37922260E-02 1.61803660E-02 1.15039640E-02 7.32884600E-03]]] + [[0.000000 0.000000 0.000000 0.000000] + [0.043792 0.016180 0.011504 0.007329]]] domain=10001 type=nu-scatter matrix -[[[3.10120735E-01 3.82295900E-02 2.07449420E-02 7.96429700E-03] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] +[[[0.310121 0.038230 0.020745 0.007964] + [0.000000 0.000000 0.000000 0.000000]] - [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [2.96264270E-01 -1.12136360E-02 8.83656600E-03 -3.27006700E-03]]] -[[[3.37881060E-02 8.48399700E-03 4.69561100E-03 3.73162300E-03] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] + [[0.000000 0.000000 0.000000 0.000000] + [0.296264 -0.011214 0.008837 -0.003270]]] +[[[0.033788 0.008484 0.004696 0.003732] + [0.000000 0.000000 0.000000 0.000000]] - [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [4.37922260E-02 1.61803660E-02 1.15039640E-02 7.32884600E-03]]] + [[0.000000 0.000000 0.000000 0.000000] + [0.043792 0.016180 0.011504 0.007329]]] domain=10001 type=multiplicity matrix -[[1.00000000E+00 0.00000000E+00] - [0.00000000E+00 1.00000000E+00]] -[[1.08778697E-01 0.00000000E+00] - [0.00000000E+00 1.42427173E-01]] +[[1.000000 0.000000] + [0.000000 1.000000]] +[[0.108779 0.000000] + [0.000000 0.142427]] domain=10001 type=nu-fission matrix -[[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.000000 0.000000] + [0.000000 0.000000]] +[[0.000000 0.000000] + [0.000000 0.000000]] domain=10001 type=chi -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10001 type=chi-prompt -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10001 type=velocity -[1.66778395E+07 3.34953368E+05] -[1.26644431E+06 3.83367816E+04] +[16677839.497365 334953.367601] +[1266444.309518 38336.781626] domain=10001 type=prompt-nu-fission -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10002 type=total -[6.64572261E-01 2.05238401E+00] -[3.12147520E-02 2.24342907E-01] +[0.664572 2.052384] +[0.031215 0.224343] domain=10002 type=transport -[2.90565257E-01 1.51643801E+00] -[2.38518550E-02 2.35197269E-01] +[0.290565 1.516438] +[0.023852 0.235197] domain=10002 type=nu-transport -[2.90565257E-01 1.51643801E+00] -[2.38518550E-02 2.35197269E-01] +[0.290565 1.516438] +[0.023852 0.235197] domain=10002 type=absorption -[6.90400000E-04 3.16872570E-02] -[4.41480000E-05 3.74655900E-03] +[0.000690 0.031687] +[0.000044 0.003747] domain=10002 type=capture -[6.90400000E-04 3.16872570E-02] -[4.41480000E-05 3.74655900E-03] +[0.000690 0.031687] +[0.000044 0.003747] domain=10002 type=fission -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10002 type=nu-fission -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10002 type=kappa-fission -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10002 type=scatter -[6.63881861E-01 2.02069676E+00] -[3.11726840E-02 2.20604454E-01] +[0.663882 2.020697] +[0.031173 0.220604] domain=10002 type=nu-scatter -[6.71269205E-01 2.03538833E+00] -[2.61863710E-02 2.58060329E-01] +[0.671269 2.035388] +[0.026186 0.258060] domain=10002 type=scatter matrix -[[[6.39901485E-01 3.81167449E-01 1.52391898E-01 9.14802200E-03] - [3.13677200E-02 8.75772300E-03 -2.56790100E-03 -3.78480300E-03]] +[[[0.639901 0.381167 0.152392 0.009148] + [0.031368 0.008758 -0.002568 -0.003785]] - [[4.43343000E-04 3.99960000E-04 3.19563000E-04 2.13847000E-04] - [2.03494499E+00 5.09940513E-01 1.11174609E-01 2.49884360E-02]]] -[[[2.47091230E-02 1.62432650E-02 8.15627800E-03 3.88856200E-03] - [1.72811300E-03 9.25671000E-04 1.01398500E-03 8.17076000E-04]] + [[0.000443 0.000400 0.000320 0.000214] + [2.034945 0.509941 0.111175 0.024988]]] +[[[0.024709 0.016243 0.008156 0.003889] + [0.001728 0.000926 0.001014 0.000817]] - [[4.44850000E-04 4.01320000E-04 3.20649000E-04 2.14574000E-04] - [2.57799889E-01 5.12359060E-02 1.30198170E-02 8.31235300E-03]]] + [[0.000445 0.000401 0.000321 0.000215] + [0.257800 0.051236 0.013020 0.008312]]] domain=10002 type=nu-scatter matrix -[[[6.39901485E-01 3.81167449E-01 1.52391898E-01 9.14802200E-03] - [3.13677200E-02 8.75772300E-03 -2.56790100E-03 -3.78480300E-03]] +[[[0.639901 0.381167 0.152392 0.009148] + [0.031368 0.008758 -0.002568 -0.003785]] - [[4.43343000E-04 3.99960000E-04 3.19563000E-04 2.13847000E-04] - [2.03494499E+00 5.09940513E-01 1.11174609E-01 2.49884360E-02]]] -[[[2.47091230E-02 1.62432650E-02 8.15627800E-03 3.88856200E-03] - [1.72811300E-03 9.25671000E-04 1.01398500E-03 8.17076000E-04]] + [[0.000443 0.000400 0.000320 0.000214] + [2.034945 0.509941 0.111175 0.024988]]] +[[[0.024709 0.016243 0.008156 0.003889] + [0.001728 0.000926 0.001014 0.000817]] - [[4.44850000E-04 4.01320000E-04 3.20649000E-04 2.14574000E-04] - [2.57799889E-01 5.12359060E-02 1.30198170E-02 8.31235300E-03]]] + [[0.000445 0.000401 0.000321 0.000215] + [0.257800 0.051236 0.013020 0.008312]]] domain=10002 type=multiplicity matrix -[[1.00000000E+00 1.00000000E+00] - [1.00000000E+00 1.00000000E+00]] -[[3.86091910E-02 6.76673480E-02] - [1.41421356E+00 1.35929207E-01]] +[[1.000000 1.000000] + [1.000000 1.000000]] +[[0.038609 0.067667] + [1.414214 0.135929]] domain=10002 type=nu-fission matrix -[[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.000000 0.000000] + [0.000000 0.000000]] +[[0.000000 0.000000] + [0.000000 0.000000]] domain=10002 type=chi -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10002 type=chi-prompt -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] domain=10002 type=velocity -[1.66055629E+07 3.28412039E+05] -[1.04243552E+06 3.88284357E+04] +[16605562.873227 328412.038650] +[1042435.523742 38828.435730] domain=10002 type=prompt-nu-fission -[0.00000000E+00 0.00000000E+00] -[0.00000000E+00 0.00000000E+00] +[0.000000 0.000000] +[0.000000 0.000000] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 5a02811a9f..a3186b28dc 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.14825490E-01 2.27929090E-02 -0 10000 2 total 6.60169919E-01 4.75189280E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.56859637E-01 2.54935960E-02 -0 10000 2 total 6.47647660E-01 2.37037350E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.56859637E-01 2.54935960E-02 -0 10000 2 total 6.47647660E-01 2.37037350E-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.74078450E-02 2.69249700E-03 -0 10000 2 total 2.64510742E-01 2.33670770E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.98445500E-02 2.64330400E-03 -0 10000 2 total 7.17193530E-02 2.52078590E-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.56329500E-03 5.08484000E-04 -0 10000 2 total 1.92791389E-01 1.71059220E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.94317400E-02 1.32297600E-03 -0 10000 2 total 4.69774777E-01 4.16820000E-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.47456982E+00 9.92353210E-02 -0 10000 2 total 3.72868964E+01 3.30837773E+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.87417645E-01 2.06257320E-02 -0 10000 2 total 3.95659177E-01 2.51250570E-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.85188388E-01 2.69456210E-02 -0 10000 2 total 4.12389399E-01 1.54252770E-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.84199458E-01 2.70010140E-02 -13 10000 1 1 total P1 5.18702840E-02 6.98254900E-03 -14 10000 1 1 total P2 2.00688450E-02 2.84649500E-03 -15 10000 1 1 total P3 9.47771600E-03 2.23352000E-03 -8 10000 1 2 total P0 9.88930000E-04 4.82419000E-04 -9 10000 1 2 total P1 -2.07235000E-04 1.49011000E-04 -10 10000 1 2 total P2 -1.03366000E-04 1.84316000E-04 -11 10000 1 2 total P3 2.34291000E-04 1.28173000E-04 -4 10000 2 1 total P0 9.24640000E-04 9.24883000E-04 -5 10000 2 1 total P1 -7.67705000E-04 7.67907000E-04 -6 10000 2 1 total P2 4.93789000E-04 4.93919000E-04 -7 10000 2 1 total P3 -1.71497000E-04 1.71542000E-04 -0 10000 2 2 total P0 4.11464759E-01 1.52449350E-02 -1 10000 2 2 total P1 1.64817280E-02 4.50172800E-03 -2 10000 2 2 total P2 6.37149000E-03 1.05507490E-02 -3 10000 2 2 total P3 -1.04991220E-02 1.04381880E-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.84199458E-01 2.70010140E-02 -13 10000 1 1 total P1 5.18702840E-02 6.98254900E-03 -14 10000 1 1 total P2 2.00688450E-02 2.84649500E-03 -15 10000 1 1 total P3 9.47771600E-03 2.23352000E-03 -8 10000 1 2 total P0 9.88930000E-04 4.82419000E-04 -9 10000 1 2 total P1 -2.07235000E-04 1.49011000E-04 -10 10000 1 2 total P2 -1.03366000E-04 1.84316000E-04 -11 10000 1 2 total P3 2.34291000E-04 1.28173000E-04 -4 10000 2 1 total P0 9.24640000E-04 9.24883000E-04 -5 10000 2 1 total P1 -7.67705000E-04 7.67907000E-04 -6 10000 2 1 total P2 4.93789000E-04 4.93919000E-04 -7 10000 2 1 total P3 -1.71497000E-04 1.71542000E-04 -0 10000 2 2 total P0 4.11464759E-01 1.52449350E-02 -1 10000 2 2 total P1 1.64817280E-02 4.50172800E-03 -2 10000 2 2 total P2 6.37149000E-03 1.05507490E-02 -3 10000 2 2 total P3 -1.04991220E-02 1.04381880E-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.00000000E+00 7.85164550E-02 -2 10000 1 2 total 1.00000000E+00 6.87184271E-01 -1 10000 2 1 total 1.00000000E+00 1.41421356E+00 -0 10000 2 2 total 1.00000000E+00 4.11303490E-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.01424280E-02 3.14909200E-03 -2 10000 1 2 total 0.00000000E+00 0.00000000E+00 -1 10000 2 1 total 4.54366467E-01 2.74255070E-02 -0 10000 2 2 total 0.00000000E+00 0.00000000E+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.00000000E+00 4.60705230E-02 -0 10000 2 total 0.00000000E+00 0.00000000E+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.00000000E+00 5.14714570E-02 -0 10000 2 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.75152106E+07 1.43817527E+06 -0 10000 2 total 3.50171995E+05 2.99459317E+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.92392220E-02 1.30950600E-03 -0 10000 2 total 4.66719027E-01 4.14108700E-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.13737671E-01 1.55819020E-02 -0 10001 2 total 3.00821402E-01 2.80524480E-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.73227872E-01 3.31153660E-02 -0 10001 2 total 3.12374836E-01 4.96058320E-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.73227872E-01 3.31153660E-02 -0 10001 2 total 3.12374836E-01 4.96058320E-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.57499100E-03 3.22548000E-04 -0 10001 2 total 5.40037900E-03 6.18138000E-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.57499100E-03 3.22548000E-04 -0 10001 2 total 5.40037900E-03 6.18138000E-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000E+00 0.00000000E+00 -0 10001 2 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000E+00 0.00000000E+00 -0 10001 2 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000E+00 0.00000000E+00 -0 10001 2 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.12162680E-01 1.53219230E-02 -0 10001 2 total 2.95421023E-01 2.74454890E-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.10120735E-01 3.37881060E-02 -0 10001 2 total 2.96264270E-01 4.37922260E-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.10120735E-01 3.37881060E-02 -13 10001 1 1 total P1 3.82295900E-02 8.48399700E-03 -14 10001 1 1 total P2 2.07449420E-02 4.69561100E-03 -15 10001 1 1 total P3 7.96429700E-03 3.73162300E-03 -8 10001 1 2 total P0 0.00000000E+00 0.00000000E+00 -9 10001 1 2 total P1 0.00000000E+00 0.00000000E+00 -10 10001 1 2 total P2 0.00000000E+00 0.00000000E+00 -11 10001 1 2 total P3 0.00000000E+00 0.00000000E+00 -4 10001 2 1 total P0 0.00000000E+00 0.00000000E+00 -5 10001 2 1 total P1 0.00000000E+00 0.00000000E+00 -6 10001 2 1 total P2 0.00000000E+00 0.00000000E+00 -7 10001 2 1 total P3 0.00000000E+00 0.00000000E+00 -0 10001 2 2 total P0 2.96264270E-01 4.37922260E-02 -1 10001 2 2 total P1 -1.12136360E-02 1.61803660E-02 -2 10001 2 2 total P2 8.83656600E-03 1.15039640E-02 -3 10001 2 2 total P3 -3.27006700E-03 7.32884600E-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.10120735E-01 3.37881060E-02 -13 10001 1 1 total P1 3.82295900E-02 8.48399700E-03 -14 10001 1 1 total P2 2.07449420E-02 4.69561100E-03 -15 10001 1 1 total P3 7.96429700E-03 3.73162300E-03 -8 10001 1 2 total P0 0.00000000E+00 0.00000000E+00 -9 10001 1 2 total P1 0.00000000E+00 0.00000000E+00 -10 10001 1 2 total P2 0.00000000E+00 0.00000000E+00 -11 10001 1 2 total P3 0.00000000E+00 0.00000000E+00 -4 10001 2 1 total P0 0.00000000E+00 0.00000000E+00 -5 10001 2 1 total P1 0.00000000E+00 0.00000000E+00 -6 10001 2 1 total P2 0.00000000E+00 0.00000000E+00 -7 10001 2 1 total P3 0.00000000E+00 0.00000000E+00 -0 10001 2 2 total P0 2.96264270E-01 4.37922260E-02 -1 10001 2 2 total P1 -1.12136360E-02 1.61803660E-02 -2 10001 2 2 total P2 8.83656600E-03 1.15039640E-02 -3 10001 2 2 total P3 -3.27006700E-03 7.32884600E-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.00000000E+00 1.08778697E-01 -2 10001 1 2 total 0.00000000E+00 0.00000000E+00 -1 10001 2 1 total 0.00000000E+00 0.00000000E+00 -0 10001 2 2 total 1.00000000E+00 1.42427173E-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.00000000E+00 0.00000000E+00 -2 10001 1 2 total 0.00000000E+00 0.00000000E+00 -1 10001 2 1 total 0.00000000E+00 0.00000000E+00 -0 10001 2 2 total 0.00000000E+00 0.00000000E+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.00000000E+00 0.00000000E+00 -0 10001 2 total 0.00000000E+00 0.00000000E+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.00000000E+00 0.00000000E+00 -0 10001 2 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.66778395E+07 1.26644431E+06 -0 10001 2 total 3.34953368E+05 3.83367816E+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000E+00 0.00000000E+00 -0 10001 2 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.64572261E-01 3.12147520E-02 -0 10002 2 total 2.05238401E+00 2.24342907E-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.90565257E-01 2.38518550E-02 -0 10002 2 total 1.51643801E+00 2.35197269E-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.90565257E-01 2.38518550E-02 -0 10002 2 total 1.51643801E+00 2.35197269E-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.90400000E-04 4.41480000E-05 -0 10002 2 total 3.16872570E-02 3.74655900E-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.90400000E-04 4.41480000E-05 -0 10002 2 total 3.16872570E-02 3.74655900E-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000E+00 0.00000000E+00 -0 10002 2 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000E+00 0.00000000E+00 -0 10002 2 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000E+00 0.00000000E+00 -0 10002 2 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.63881861E-01 3.11726840E-02 -0 10002 2 total 2.02069676E+00 2.20604454E-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.71269205E-01 2.61863710E-02 -0 10002 2 total 2.03538833E+00 2.58060329E-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.39901485E-01 2.47091230E-02 -13 10002 1 1 total P1 3.81167449E-01 1.62432650E-02 -14 10002 1 1 total P2 1.52391898E-01 8.15627800E-03 -15 10002 1 1 total P3 9.14802200E-03 3.88856200E-03 -8 10002 1 2 total P0 3.13677200E-02 1.72811300E-03 -9 10002 1 2 total P1 8.75772300E-03 9.25671000E-04 -10 10002 1 2 total P2 -2.56790100E-03 1.01398500E-03 -11 10002 1 2 total P3 -3.78480300E-03 8.17076000E-04 -4 10002 2 1 total P0 4.43343000E-04 4.44850000E-04 -5 10002 2 1 total P1 3.99960000E-04 4.01320000E-04 -6 10002 2 1 total P2 3.19563000E-04 3.20649000E-04 -7 10002 2 1 total P3 2.13847000E-04 2.14574000E-04 -0 10002 2 2 total P0 2.03494499E+00 2.57799889E-01 -1 10002 2 2 total P1 5.09940513E-01 5.12359060E-02 -2 10002 2 2 total P2 1.11174609E-01 1.30198170E-02 -3 10002 2 2 total P3 2.49884360E-02 8.31235300E-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.39901485E-01 2.47091230E-02 -13 10002 1 1 total P1 3.81167449E-01 1.62432650E-02 -14 10002 1 1 total P2 1.52391898E-01 8.15627800E-03 -15 10002 1 1 total P3 9.14802200E-03 3.88856200E-03 -8 10002 1 2 total P0 3.13677200E-02 1.72811300E-03 -9 10002 1 2 total P1 8.75772300E-03 9.25671000E-04 -10 10002 1 2 total P2 -2.56790100E-03 1.01398500E-03 -11 10002 1 2 total P3 -3.78480300E-03 8.17076000E-04 -4 10002 2 1 total P0 4.43343000E-04 4.44850000E-04 -5 10002 2 1 total P1 3.99960000E-04 4.01320000E-04 -6 10002 2 1 total P2 3.19563000E-04 3.20649000E-04 -7 10002 2 1 total P3 2.13847000E-04 2.14574000E-04 -0 10002 2 2 total P0 2.03494499E+00 2.57799889E-01 -1 10002 2 2 total P1 5.09940513E-01 5.12359060E-02 -2 10002 2 2 total P2 1.11174609E-01 1.30198170E-02 -3 10002 2 2 total P3 2.49884360E-02 8.31235300E-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.00000000E+00 3.86091910E-02 -2 10002 1 2 total 1.00000000E+00 6.76673480E-02 -1 10002 2 1 total 1.00000000E+00 1.41421356E+00 -0 10002 2 2 total 1.00000000E+00 1.35929207E-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.00000000E+00 0.00000000E+00 -2 10002 1 2 total 0.00000000E+00 0.00000000E+00 -1 10002 2 1 total 0.00000000E+00 0.00000000E+00 -0 10002 2 2 total 0.00000000E+00 0.00000000E+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.00000000E+00 0.00000000E+00 -0 10002 2 total 0.00000000E+00 0.00000000E+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.00000000E+00 0.00000000E+00 -0 10002 2 total 0.00000000E+00 0.00000000E+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.66055629E+07 1.04243552E+06 -0 10002 2 total 3.28412039E+05 3.88284357E+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000E+00 0.00000000E+00 -0 10002 2 total 0.00000000E+00 0.00000000E+00 + material group in nuclide mean std. dev. +1 10000 1 total 0.414825 0.022793 +0 10000 2 total 0.660170 0.047519 + material group in nuclide mean std. dev. +1 10000 1 total 0.356860 0.025494 +0 10000 2 total 0.647648 0.023704 + material group in nuclide mean std. dev. +1 10000 1 total 0.356860 0.025494 +0 10000 2 total 0.647648 0.023704 + material group in nuclide mean std. dev. +1 10000 1 total 0.027408 0.002692 +0 10000 2 total 0.264511 0.023367 + material group in nuclide mean std. dev. +1 10000 1 total 0.019845 0.002643 +0 10000 2 total 0.071719 0.025208 + material group in nuclide mean std. dev. +1 10000 1 total 0.007563 0.000508 +0 10000 2 total 0.192791 0.017106 + material group in nuclide mean std. dev. +1 10000 1 total 0.019432 0.001323 +0 10000 2 total 0.469775 0.041682 + material group in nuclide mean std. dev. +1 10000 1 total 1.474570 0.099235 +0 10000 2 total 37.286896 3.308378 + material group in nuclide mean std. dev. +1 10000 1 total 0.387418 0.020626 +0 10000 2 total 0.395659 0.025125 + material group in nuclide mean std. dev. +1 10000 1 total 0.385188 0.026946 +0 10000 2 total 0.412389 0.015425 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 0.384199 0.027001 +13 10000 1 1 total P1 0.051870 0.006983 +14 10000 1 1 total P2 0.020069 0.002846 +15 10000 1 1 total P3 0.009478 0.002234 +8 10000 1 2 total P0 0.000989 0.000482 +9 10000 1 2 total P1 -0.000207 0.000149 +10 10000 1 2 total P2 -0.000103 0.000184 +11 10000 1 2 total P3 0.000234 0.000128 +4 10000 2 1 total P0 0.000925 0.000925 +5 10000 2 1 total P1 -0.000768 0.000768 +6 10000 2 1 total P2 0.000494 0.000494 +7 10000 2 1 total P3 -0.000171 0.000172 +0 10000 2 2 total P0 0.411465 0.015245 +1 10000 2 2 total P1 0.016482 0.004502 +2 10000 2 2 total P2 0.006371 0.010551 +3 10000 2 2 total P3 -0.010499 0.010438 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 0.384199 0.027001 +13 10000 1 1 total P1 0.051870 0.006983 +14 10000 1 1 total P2 0.020069 0.002846 +15 10000 1 1 total P3 0.009478 0.002234 +8 10000 1 2 total P0 0.000989 0.000482 +9 10000 1 2 total P1 -0.000207 0.000149 +10 10000 1 2 total P2 -0.000103 0.000184 +11 10000 1 2 total P3 0.000234 0.000128 +4 10000 2 1 total P0 0.000925 0.000925 +5 10000 2 1 total P1 -0.000768 0.000768 +6 10000 2 1 total P2 0.000494 0.000494 +7 10000 2 1 total P3 -0.000171 0.000172 +0 10000 2 2 total P0 0.411465 0.015245 +1 10000 2 2 total P1 0.016482 0.004502 +2 10000 2 2 total P2 0.006371 0.010551 +3 10000 2 2 total P3 -0.010499 0.010438 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.000000 0.078516 +2 10000 1 2 total 1.000000 0.687184 +1 10000 2 1 total 1.000000 1.414214 +0 10000 2 2 total 1.000000 0.041130 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 0.020142 0.003149 +2 10000 1 2 total 0.000000 0.000000 +1 10000 2 1 total 0.454366 0.027426 +0 10000 2 2 total 0.000000 0.000000 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000 0.046071 +0 10000 2 total 0.000000 0.000000 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000 0.051471 +0 10000 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10000 1 total 17515210.620397 1438175.273899 +0 10000 2 total 350171.995194 29945.931697 + material group in nuclide mean std. dev. +1 10000 1 total 0.019239 0.001310 +0 10000 2 total 0.466719 0.041411 + material group in nuclide mean std. dev. +1 10001 1 total 0.313738 0.015582 +0 10001 2 total 0.300821 0.028052 + material group in nuclide mean std. dev. +1 10001 1 total 0.273228 0.033115 +0 10001 2 total 0.312375 0.049606 + material group in nuclide mean std. dev. +1 10001 1 total 0.273228 0.033115 +0 10001 2 total 0.312375 0.049606 + material group in nuclide mean std. dev. +1 10001 1 total 0.001575 0.000323 +0 10001 2 total 0.005400 0.000618 + material group in nuclide mean std. dev. +1 10001 1 total 0.001575 0.000323 +0 10001 2 total 0.005400 0.000618 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000 0.000000 +0 10001 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000 0.000000 +0 10001 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000 0.000000 +0 10001 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10001 1 total 0.312163 0.015322 +0 10001 2 total 0.295421 0.027445 + material group in nuclide mean std. dev. +1 10001 1 total 0.310121 0.033788 +0 10001 2 total 0.296264 0.043792 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 0.310121 0.033788 +13 10001 1 1 total P1 0.038230 0.008484 +14 10001 1 1 total P2 0.020745 0.004696 +15 10001 1 1 total P3 0.007964 0.003732 +8 10001 1 2 total P0 0.000000 0.000000 +9 10001 1 2 total P1 0.000000 0.000000 +10 10001 1 2 total P2 0.000000 0.000000 +11 10001 1 2 total P3 0.000000 0.000000 +4 10001 2 1 total P0 0.000000 0.000000 +5 10001 2 1 total P1 0.000000 0.000000 +6 10001 2 1 total P2 0.000000 0.000000 +7 10001 2 1 total P3 0.000000 0.000000 +0 10001 2 2 total P0 0.296264 0.043792 +1 10001 2 2 total P1 -0.011214 0.016180 +2 10001 2 2 total P2 0.008837 0.011504 +3 10001 2 2 total P3 -0.003270 0.007329 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 0.310121 0.033788 +13 10001 1 1 total P1 0.038230 0.008484 +14 10001 1 1 total P2 0.020745 0.004696 +15 10001 1 1 total P3 0.007964 0.003732 +8 10001 1 2 total P0 0.000000 0.000000 +9 10001 1 2 total P1 0.000000 0.000000 +10 10001 1 2 total P2 0.000000 0.000000 +11 10001 1 2 total P3 0.000000 0.000000 +4 10001 2 1 total P0 0.000000 0.000000 +5 10001 2 1 total P1 0.000000 0.000000 +6 10001 2 1 total P2 0.000000 0.000000 +7 10001 2 1 total P3 0.000000 0.000000 +0 10001 2 2 total P0 0.296264 0.043792 +1 10001 2 2 total P1 -0.011214 0.016180 +2 10001 2 2 total P2 0.008837 0.011504 +3 10001 2 2 total P3 -0.003270 0.007329 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.000000 0.108779 +2 10001 1 2 total 0.000000 0.000000 +1 10001 2 1 total 0.000000 0.000000 +0 10001 2 2 total 1.000000 0.142427 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.000000 0.000000 +2 10001 1 2 total 0.000000 0.000000 +1 10001 2 1 total 0.000000 0.000000 +0 10001 2 2 total 0.000000 0.000000 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000 0.000000 +0 10001 2 total 0.000000 0.000000 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000 0.000000 +0 10001 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10001 1 total 16677839.497365 1266444.309518 +0 10001 2 total 334953.367601 38336.781626 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000 0.000000 +0 10001 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10002 1 total 0.664572 0.031215 +0 10002 2 total 2.052384 0.224343 + material group in nuclide mean std. dev. +1 10002 1 total 0.290565 0.023852 +0 10002 2 total 1.516438 0.235197 + material group in nuclide mean std. dev. +1 10002 1 total 0.290565 0.023852 +0 10002 2 total 1.516438 0.235197 + material group in nuclide mean std. dev. +1 10002 1 total 0.000690 0.000044 +0 10002 2 total 0.031687 0.003747 + material group in nuclide mean std. dev. +1 10002 1 total 0.000690 0.000044 +0 10002 2 total 0.031687 0.003747 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000 0.000000 +0 10002 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000 0.000000 +0 10002 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000 0.000000 +0 10002 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10002 1 total 0.663882 0.031173 +0 10002 2 total 2.020697 0.220604 + material group in nuclide mean std. dev. +1 10002 1 total 0.671269 0.026186 +0 10002 2 total 2.035388 0.258060 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 0.639901 0.024709 +13 10002 1 1 total P1 0.381167 0.016243 +14 10002 1 1 total P2 0.152392 0.008156 +15 10002 1 1 total P3 0.009148 0.003889 +8 10002 1 2 total P0 0.031368 0.001728 +9 10002 1 2 total P1 0.008758 0.000926 +10 10002 1 2 total P2 -0.002568 0.001014 +11 10002 1 2 total P3 -0.003785 0.000817 +4 10002 2 1 total P0 0.000443 0.000445 +5 10002 2 1 total P1 0.000400 0.000401 +6 10002 2 1 total P2 0.000320 0.000321 +7 10002 2 1 total P3 0.000214 0.000215 +0 10002 2 2 total P0 2.034945 0.257800 +1 10002 2 2 total P1 0.509941 0.051236 +2 10002 2 2 total P2 0.111175 0.013020 +3 10002 2 2 total P3 0.024988 0.008312 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 0.639901 0.024709 +13 10002 1 1 total P1 0.381167 0.016243 +14 10002 1 1 total P2 0.152392 0.008156 +15 10002 1 1 total P3 0.009148 0.003889 +8 10002 1 2 total P0 0.031368 0.001728 +9 10002 1 2 total P1 0.008758 0.000926 +10 10002 1 2 total P2 -0.002568 0.001014 +11 10002 1 2 total P3 -0.003785 0.000817 +4 10002 2 1 total P0 0.000443 0.000445 +5 10002 2 1 total P1 0.000400 0.000401 +6 10002 2 1 total P2 0.000320 0.000321 +7 10002 2 1 total P3 0.000214 0.000215 +0 10002 2 2 total P0 2.034945 0.257800 +1 10002 2 2 total P1 0.509941 0.051236 +2 10002 2 2 total P2 0.111175 0.013020 +3 10002 2 2 total P3 0.024988 0.008312 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.000000 0.038609 +2 10002 1 2 total 1.000000 0.067667 +1 10002 2 1 total 1.000000 1.414214 +0 10002 2 2 total 1.000000 0.135929 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.000000 0.000000 +2 10002 1 2 total 0.000000 0.000000 +1 10002 2 1 total 0.000000 0.000000 +0 10002 2 2 total 0.000000 0.000000 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000 0.000000 +0 10002 2 total 0.000000 0.000000 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000 0.000000 +0 10002 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10002 1 total 16605562.873227 1042435.523742 +0 10002 2 total 328412.038650 38828.435730 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000 0.000000 +0 10002 2 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 9a77145394..724cb45cdc 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -7579f6368d2046d33c506d3a43d46703bf8151e16256787bac963be127d9000be272941fbaa2a1ee91f2abe3d619c2202f21db9bc1f78e064634aa065eb891c5 \ No newline at end of file +9e7bc573568b1b441d43c406a8fddcd3db0c4ae5bd5a6577e2abb9abf452d9d2acd006c330e62f0d774e133e9f484d3c2f6d8c00b23274608b1e214da5737b20 \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 243e160989..a53cd33007 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.00000000E+02 0.00000000E+00 7.00000000E+02 8.00000000E+02] + Temperature = [500.000000 0.000000 700.000000 800.000000] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index ad113d8fa2..a54027886f 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -b47e2f499c20b824b987ee1c5126de38cf86754b1abe3c7d0f19046a1d7a5eadebedee4b074ff25c1ffb9e147bd9f55d1e5f11e57aaf5804cb248f21dfbec3b1 \ No newline at end of file +cc0d5f0a7c0cf36d9fca0cb73726f78e90c5e17d1b5565940097182af4dc15c0b159ee2a0d3bc9ef395ab852335d2e370e35b6ac2f4e97c6b9ba9758af530fbb \ No newline at end of file diff --git a/tests/test_tally_aggregation/test_tally_aggregation.py b/tests/test_tally_aggregation/test_tally_aggregation.py index 3b9aec4d38..fdc086e682 100644 --- a/tests/test_tally_aggregation/test_tally_aggregation.py +++ b/tests/test_tally_aggregation/test_tally_aggregation.py @@ -8,16 +8,6 @@ sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness import openmc -import numpy as np -import pandas as pd - -# Require numpy and pandas to print output rounded to 10 decimal places and in -# scientific notation with 10 significant figures. This is needed to avoid round -# off error when large numbers are printed, which can cause tests to fail for -# different build configurations. -np.set_printoptions(formatter={'float': lambda x: format(np.around(x, 7), '8.6E')}) -pd.set_option('display.float_format', lambda x: '%8.6E' % np.around(x, 7)) - class TallyAggregationTestHarness(PyAPITestHarness): def _build_inputs(self): diff --git a/tests/test_tally_arithmetic/results_true.dat b/tests/test_tally_arithmetic/results_true.dat index d677d69f5c..d2bad24d0f 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] ..., - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]]][[[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]]][[[0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] ..., - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]]][[[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]] + [[0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]]][[[0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] ..., - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]] - [[0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00]]][[[0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00]] + [[0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000 0.000000]]][[[0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]] ..., - [[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.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]] - [[0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00]]][[[0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00] - [0.00000000E+00 0.00000000E+00 0.00000000E+00]] + [[0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]]][[[0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]] ..., - [[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.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]] - [[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.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000] + [0.000000 0.000000 0.000000]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index e8251cfc62..cb717707c6 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -15,8 +15,8 @@ import pandas as pd # scientific notation with 10 significant figures. This is needed to avoid round # off error when large numbers are printed, which can cause tests to fail for # different build configurations. -np.set_printoptions(formatter={'float': lambda x: format(np.around(x, 9), '10.8E')}) -pd.set_option('display.float_format', lambda x: '%10.8E' % np.around(x, 9)) +np.set_printoptions(formatter={'float': lambda x: format(np.around(x, 10), 'f')}) +pd.set_option('display.float_format', lambda x: '%f' % np.around(x, 10)) sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From 4821b830461ac651f2d022c469078770901bc07c Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Wed, 13 Jul 2016 10:01:52 -0600 Subject: [PATCH 151/417] changed number of sig figs to 8 --- .../results_true.dat | 252 ++++----- .../results_true.dat | 82 +-- tests/test_mgxs_library_hdf5/results_true.dat | 312 +++++------ .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 12 +- 9 files changed, 694 insertions(+), 694 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index b6cd1e380e..f8353aa667 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 0.453624 0.021053 - material group in nuclide mean std. dev. -0 10000 1 total 0.400852 0.022858 - material group in nuclide mean std. dev. -0 10000 1 total 0.400852 0.022858 - material group in nuclide mean std. dev. -0 10000 1 total 0.064903 0.004313 - material group in nuclide mean std. dev. -0 10000 1 total 0.028048 0.004580 - material group in nuclide mean std. dev. -0 10000 1 total 0.036855 0.002622 - material group in nuclide mean std. dev. -0 10000 1 total 0.090649 0.006410 - material group in nuclide mean std. dev. -0 10000 1 total 7.137955 0.507364 - material group in nuclide mean std. dev. -0 10000 1 total 0.388721 0.017830 - material group in nuclide mean std. dev. -0 10000 1 total 0.389304 0.023076 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 0.389304 0.023146 -1 10000 1 1 total P1 0.046224 0.005907 -2 10000 1 1 total P2 0.017984 0.002883 -3 10000 1 1 total P3 0.006628 0.002457 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 0.389304 0.023146 -1 10000 1 1 total P1 0.046224 0.005907 -2 10000 1 1 total P2 0.017984 0.002883 -3 10000 1 1 total P3 0.006628 0.002457 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.000000 0.066111 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 0.085835 0.005592 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000 0.046071 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000 0.051471 - material group in nuclide mean std. dev. -0 10000 1 total 2001308.739748 146216.555365 - material group in nuclide mean std. dev. -0 10000 1 total 0.090004 0.006367 - material group in nuclide mean std. dev. -0 10001 1 total 0.311594 0.013793 - material group in nuclide mean std. dev. -0 10001 1 total 0.279255 0.029190 - material group in nuclide mean std. dev. -0 10001 1 total 0.279255 0.029190 - material group in nuclide mean std. dev. -0 10001 1 total 0.002210 0.000286 - material group in nuclide mean std. dev. -0 10001 1 total 0.002210 0.000286 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000 0.000000 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000 0.000000 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000 0.000000 - material group in nuclide mean std. dev. -0 10001 1 total 0.309384 0.013551 - material group in nuclide mean std. dev. -0 10001 1 total 0.307987 0.029308 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 0.307987 0.029308 -1 10001 1 1 total P1 0.030617 0.007464 -2 10001 1 1 total P2 0.018911 0.004323 -3 10001 1 1 total P3 0.006235 0.003338 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 0.307987 0.029308 -1 10001 1 1 total P1 0.030617 0.007464 -2 10001 1 1 total P2 0.018911 0.004323 -3 10001 1 1 total P3 0.006235 0.003338 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.000000 0.095039 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.000000 0.000000 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000 0.000000 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000 0.000000 - material group in nuclide mean std. dev. -0 10001 1 total 1833261.152573 166355.174520 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000 0.000000 - material group in nuclide mean std. dev. -0 10002 1 total 0.904999 0.043964 - material group in nuclide mean std. dev. -0 10002 1 total 0.499184 0.040914 - material group in nuclide mean std. dev. -0 10002 1 total 0.499184 0.040914 - material group in nuclide mean std. dev. -0 10002 1 total 0.006060 0.000555 - material group in nuclide mean std. dev. -0 10002 1 total 0.006060 0.000555 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000 0.000000 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000 0.000000 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000 0.000000 - material group in nuclide mean std. dev. -0 10002 1 total 0.898938 0.043493 - material group in nuclide mean std. dev. -0 10002 1 total 0.903415 0.043959 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 0.903415 0.043586 -1 10002 1 1 total P1 0.410417 0.015877 -2 10002 1 1 total P2 0.143301 0.007187 -3 10002 1 1 total P3 0.008739 0.003571 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 0.903415 0.043586 -1 10002 1 1 total P1 0.410417 0.015877 -2 10002 1 1 total P2 0.143301 0.007187 -3 10002 1 1 total P3 0.008739 0.003571 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.000000 0.056867 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.000000 0.000000 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000 0.000000 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000 0.000000 - material group in nuclide mean std. dev. -0 10002 1 total 1732199.699466 159691.426430 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000 0.000000 + material group in nuclide mean std. dev. +0 10000 1 total 4.5362442e-01 2.1052696e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.0085218e-01 2.2857554e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.0085218e-01 2.2857554e-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.4903456e-02 4.3127612e-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.8048066e-02 4.5799637e-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.6855390e-02 2.6221598e-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.0649290e-02 6.4098745e-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.1379551e+00 5.0736381e-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.8872097e-01 1.7830429e-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.8930356e-01 2.3075539e-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.8930356e-01 2.3145605e-02 +1 10000 1 1 total P1 4.6224418e-02 5.9071696e-03 +2 10000 1 1 total P2 1.7983585e-02 2.8829720e-03 +3 10000 1 1 total P3 6.6283735e-03 2.4571090e-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.8930356e-01 2.3145605e-02 +1 10000 1 1 total P1 4.6224418e-02 5.9071696e-03 +2 10000 1 1 total P2 1.7983585e-02 2.8829720e-03 +3 10000 1 1 total P3 6.6283735e-03 2.4571090e-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.0000000e+00 6.6110820e-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.5835019e-02 5.5918249e-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.0000000e+00 4.6070523e-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.0000000e+00 5.1471457e-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.0013087e+06 1.4621656e+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.0003978e-02 6.3669079e-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.1159411e-01 1.3793168e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.7925506e-01 2.9189501e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.7925506e-01 2.9189501e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.2098464e-03 2.8633413e-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.2098464e-03 2.8633413e-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.0938426e-01 1.3551267e-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.0798735e-01 2.9308089e-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.0798735e-01 2.9308089e-02 +1 10001 1 1 total P1 3.0617153e-02 7.4644560e-03 +2 10001 1 1 total P2 1.8911490e-02 4.3228277e-03 +3 10001 1 1 total P3 6.2346182e-03 3.3382023e-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.0798735e-01 2.9308089e-02 +1 10001 1 1 total P1 3.0617153e-02 7.4644560e-03 +2 10001 1 1 total P2 1.8911490e-02 4.3228277e-03 +3 10001 1 1 total P3 6.2346182e-03 3.3382023e-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.0000000e+00 9.5038722e-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.8332612e+06 1.6635517e+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.0499883e-01 4.3964488e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.9918398e-01 4.0914120e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.9918398e-01 4.0914120e-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.0603412e-03 5.5452442e-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.0603412e-03 5.5452442e-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.9893849e-01 4.3492984e-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.0341466e-01 4.3958737e-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.0341466e-01 4.3585994e-02 +1 10002 1 1 total P1 4.1041742e-01 1.5877220e-02 +2 10002 1 1 total P2 1.4330104e-01 7.1873777e-03 +3 10002 1 1 total P3 8.7394263e-03 3.5714413e-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.0341466e-01 4.3585994e-02 +1 10002 1 1 total P1 4.1041742e-01 1.5877220e-02 +2 10002 1 1 total P2 1.4330104e-01 7.1873777e-03 +3 10002 1 1 total P3 8.7394263e-03 3.5714413e-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.0000000e+00 5.6866725e-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.7321997e+06 1.5969143e+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index bb53bc81c8..70c7134536 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.145934 0.553822 - 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.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.019762 0.010629 - 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.019762 0.010629 - 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.000000 0.000000 - 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.000000 0.000000 - 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.000000 0.000000 - 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 1.126172 0.543440 - 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 1.142547 0.570131 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 - 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 1.000000 0.529717 - 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.000000 0.000000 - 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.000000 0.000000 - 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.000000 0.000000 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 774245.714482 416397.691599 - 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.000000 0.000000 +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 1.1459340e+00 5.5382169e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.1891920e-01 5.2064426e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.1891920e-01 5.2064426e-01 + 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 1.9762206e-02 1.0628764e-02 + 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 1.9762206e-02 1.0628764e-02 + 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.0000000e+00 0.0000000e+00 + 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.0000000e+00 0.0000000e+00 + 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.0000000e+00 0.0000000e+00 + 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 1.1261718e+00 5.4344001e-01 + 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 1.1425469e+00 5.7013139e-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.1425469e+00 5.7013139e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.4738129e-01 2.1632217e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.4120179e-01 6.6503773e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.9228270e-02 2.4620832e-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.1425469e+00 5.7013139e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.4738129e-01 2.1632217e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.4120179e-01 6.6503773e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.9228270e-02 2.4620832e-02 + 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 1.0000000e+00 5.2971733e-01 + 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.0000000e+00 0.0000000e+00 + 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.0000000e+00 0.0000000e+00 + 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.0000000e+00 0.0000000e+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.7424571e+05 4.1639769e+05 + 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.0000000e+00 0.0000000e+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index cc8d6a6b04..ca424dc6b7 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,222 @@ domain=10000 type=total -[0.414825 0.660170] -[0.022793 0.047519] +[4.1482549e-01 6.6016992e-01] +[2.2792909e-02 4.7518928e-02] domain=10000 type=transport -[0.356860 0.647648] -[0.025494 0.023704] +[3.5685964e-01 6.4764766e-01] +[2.5493596e-02 2.3703735e-02] domain=10000 type=nu-transport -[0.356860 0.647648] -[0.025494 0.023704] +[3.5685964e-01 6.4764766e-01] +[2.5493596e-02 2.3703735e-02] domain=10000 type=absorption -[0.027408 0.264511] -[0.002692 0.023367] +[2.7407845e-02 2.6451074e-01] +[2.6924971e-03 2.3367077e-02] domain=10000 type=capture -[0.019845 0.071719] -[0.002643 0.025208] +[1.9844550e-02 7.1719353e-02] +[2.6433043e-03 2.5207859e-02] domain=10000 type=fission -[0.007563 0.192791] -[0.000508 0.017106] +[7.5632950e-03 1.9279139e-01] +[5.0848368e-04 1.7105922e-02] domain=10000 type=nu-fission -[0.019432 0.469775] -[0.001323 0.041682] +[1.9431740e-02 4.6977478e-01] +[1.3229756e-03 4.1682000e-02] domain=10000 type=kappa-fission -[1.474570 37.286896] -[0.099235 3.308378] +[1.4745698e+00 3.7286896e+01] +[9.9235321e-02 3.3083777e+00] domain=10000 type=scatter -[0.387418 0.395659] -[0.020626 0.025125] +[3.8741765e-01 3.9565918e-01] +[2.0625732e-02 2.5125057e-02] domain=10000 type=nu-scatter -[0.385188 0.412389] -[0.026946 0.015425] +[3.8518839e-01 4.1238940e-01] +[2.6945621e-02 1.5425277e-02] domain=10000 type=scatter matrix -[[[0.384199 0.051870 0.020069 0.009478] - [0.000989 -0.000207 -0.000103 0.000234]] +[[[3.8419946e-01 5.1870284e-02 2.0068845e-02 9.4777157e-03] + [9.8893039e-04 -2.0723460e-04 -1.0336618e-04 2.3429062e-04]] - [[0.000925 -0.000768 0.000494 -0.000171] - [0.411465 0.016482 0.006371 -0.010499]]] -[[[0.027001 0.006983 0.002846 0.002234] - [0.000482 0.000149 0.000184 0.000128]] + [[9.2463991e-04 -7.6770497e-04 4.9378887e-04 -1.7149723e-04] + [4.1146476e-01 1.6481728e-02 6.3714905e-03 -1.0499122e-02]]] +[[[2.7001014e-02 6.9825489e-03 2.8464952e-03 2.2335198e-03] + [4.8241945e-04 1.4901078e-04 1.8431631e-04 1.2817311e-04]] - [[0.000925 0.000768 0.000494 0.000172] - [0.015245 0.004502 0.010551 0.010438]]] + [[9.2488346e-04 7.6790719e-04 4.9391894e-04 1.7154240e-04] + [1.5244935e-02 4.5017280e-03 1.0550749e-02 1.0438188e-02]]] domain=10000 type=nu-scatter matrix -[[[0.384199 0.051870 0.020069 0.009478] - [0.000989 -0.000207 -0.000103 0.000234]] +[[[3.8419946e-01 5.1870284e-02 2.0068845e-02 9.4777157e-03] + [9.8893039e-04 -2.0723460e-04 -1.0336618e-04 2.3429062e-04]] - [[0.000925 -0.000768 0.000494 -0.000171] - [0.411465 0.016482 0.006371 -0.010499]]] -[[[0.027001 0.006983 0.002846 0.002234] - [0.000482 0.000149 0.000184 0.000128]] + [[9.2463991e-04 -7.6770497e-04 4.9378887e-04 -1.7149723e-04] + [4.1146476e-01 1.6481728e-02 6.3714905e-03 -1.0499122e-02]]] +[[[2.7001014e-02 6.9825489e-03 2.8464952e-03 2.2335198e-03] + [4.8241945e-04 1.4901078e-04 1.8431631e-04 1.2817311e-04]] - [[0.000925 0.000768 0.000494 0.000172] - [0.015245 0.004502 0.010551 0.010438]]] + [[9.2488346e-04 7.6790719e-04 4.9391894e-04 1.7154240e-04] + [1.5244935e-02 4.5017280e-03 1.0550749e-02 1.0438188e-02]]] domain=10000 type=multiplicity matrix -[[1.000000 1.000000] - [1.000000 1.000000]] -[[0.078516 0.687184] - [1.414214 0.041130]] +[[1.0000000e+00 1.0000000e+00] + [1.0000000e+00 1.0000000e+00]] +[[7.8516455e-02 6.8718427e-01] + [1.4142136e+00 4.1130349e-02]] domain=10000 type=nu-fission matrix -[[0.020142 0.000000] - [0.454366 0.000000]] -[[0.003149 0.000000] - [0.027426 0.000000]] +[[2.0142428e-02 0.0000000e+00] + [4.5436647e-01 0.0000000e+00]] +[[3.1490917e-03 0.0000000e+00] + [2.7425507e-02 0.0000000e+00]] domain=10000 type=chi -[1.000000 0.000000] -[0.046071 0.000000] +[1.0000000e+00 0.0000000e+00] +[4.6070523e-02 0.0000000e+00] domain=10000 type=chi-prompt -[1.000000 0.000000] -[0.051471 0.000000] +[1.0000000e+00 0.0000000e+00] +[5.1471457e-02 0.0000000e+00] domain=10000 type=velocity -[17515210.620397 350171.995194] -[1438175.273899 29945.931697] +[1.7515211e+07 3.5017200e+05] +[1.4381753e+06 2.9945932e+04] domain=10000 type=prompt-nu-fission -[0.019239 0.466719] -[0.001310 0.041411] +[1.9239222e-02 4.6671903e-01] +[1.3095060e-03 4.1410870e-02] domain=10001 type=total -[0.313738 0.300821] -[0.015582 0.028052] +[3.1373767e-01 3.0082140e-01] +[1.5581902e-02 2.8052448e-02] domain=10001 type=transport -[0.273228 0.312375] -[0.033115 0.049606] +[2.7322787e-01 3.1237484e-01] +[3.3115366e-02 4.9605832e-02] domain=10001 type=nu-transport -[0.273228 0.312375] -[0.033115 0.049606] +[2.7322787e-01 3.1237484e-01] +[3.3115366e-02 4.9605832e-02] domain=10001 type=absorption -[0.001575 0.005400] -[0.000323 0.000618] +[1.5749914e-03 5.4003788e-03] +[3.2254789e-04 6.1813831e-04] domain=10001 type=capture -[0.001575 0.005400] -[0.000323 0.000618] +[1.5749914e-03 5.4003788e-03] +[3.2254789e-04 6.1813831e-04] domain=10001 type=fission -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10001 type=nu-fission -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10001 type=kappa-fission -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10001 type=scatter -[0.312163 0.295421] -[0.015322 0.027445] +[3.1216268e-01 2.9542102e-01] +[1.5321923e-02 2.7445489e-02] domain=10001 type=nu-scatter -[0.310121 0.296264] -[0.033788 0.043792] +[3.1012074e-01 2.9626427e-01] +[3.3788106e-02 4.3792226e-02] domain=10001 type=scatter matrix -[[[0.310121 0.038230 0.020745 0.007964] - [0.000000 0.000000 0.000000 0.000000]] +[[[3.1012074e-01 3.8229590e-02 2.0744942e-02 7.9642968e-03] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.296264 -0.011214 0.008837 -0.003270]]] -[[[0.033788 0.008484 0.004696 0.003732] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [2.9626427e-01 -1.1213636e-02 8.8365663e-03 -3.2700673e-03]]] +[[[3.3788106e-02 8.4839971e-03 4.6956107e-03 3.7316226e-03] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.043792 0.016180 0.011504 0.007329]]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [4.3792226e-02 1.6180366e-02 1.1503964e-02 7.3288458e-03]]] domain=10001 type=nu-scatter matrix -[[[0.310121 0.038230 0.020745 0.007964] - [0.000000 0.000000 0.000000 0.000000]] +[[[3.1012074e-01 3.8229590e-02 2.0744942e-02 7.9642968e-03] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.296264 -0.011214 0.008837 -0.003270]]] -[[[0.033788 0.008484 0.004696 0.003732] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [2.9626427e-01 -1.1213636e-02 8.8365663e-03 -3.2700673e-03]]] +[[[3.3788106e-02 8.4839971e-03 4.6956107e-03 3.7316226e-03] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.043792 0.016180 0.011504 0.007329]]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [4.3792226e-02 1.6180366e-02 1.1503964e-02 7.3288458e-03]]] domain=10001 type=multiplicity matrix -[[1.000000 0.000000] - [0.000000 1.000000]] -[[0.108779 0.000000] - [0.000000 0.142427]] +[[1.0000000e+00 0.0000000e+00] + [0.0000000e+00 1.0000000e+00]] +[[1.0877870e-01 0.0000000e+00] + [0.0000000e+00 1.4242717e-01]] domain=10001 type=nu-fission matrix -[[0.000000 0.000000] - [0.000000 0.000000]] -[[0.000000 0.000000] - [0.000000 0.000000]] +[[0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00]] +[[0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00]] domain=10001 type=chi -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10001 type=chi-prompt -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10001 type=velocity -[16677839.497365 334953.367601] -[1266444.309518 38336.781626] +[1.6677839e+07 3.3495337e+05] +[1.2664443e+06 3.8336782e+04] domain=10001 type=prompt-nu-fission -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=total -[0.664572 2.052384] -[0.031215 0.224343] +[6.6457226e-01 2.0523840e+00] +[3.1214752e-02 2.2434291e-01] domain=10002 type=transport -[0.290565 1.516438] -[0.023852 0.235197] +[2.9056526e-01 1.5164380e+00] +[2.3851855e-02 2.3519727e-01] domain=10002 type=nu-transport -[0.290565 1.516438] -[0.023852 0.235197] +[2.9056526e-01 1.5164380e+00] +[2.3851855e-02 2.3519727e-01] domain=10002 type=absorption -[0.000690 0.031687] -[0.000044 0.003747] +[6.9039952e-04 3.1687257e-02] +[4.4147569e-05 3.7465586e-03] domain=10002 type=capture -[0.000690 0.031687] -[0.000044 0.003747] +[6.9039952e-04 3.1687257e-02] +[4.4147569e-05 3.7465586e-03] domain=10002 type=fission -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=nu-fission -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=kappa-fission -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=scatter -[0.663882 2.020697] -[0.031173 0.220604] +[6.6388186e-01 2.0206968e+00] +[3.1172684e-02 2.2060445e-01] domain=10002 type=nu-scatter -[0.671269 2.035388] -[0.026186 0.258060] +[6.7126920e-01 2.0353883e+00] +[2.6186371e-02 2.5806033e-01] domain=10002 type=scatter matrix -[[[0.639901 0.381167 0.152392 0.009148] - [0.031368 0.008758 -0.002568 -0.003785]] +[[[6.3990148e-01 3.8116745e-01 1.5239190e-01 9.1480223e-03] + [3.1367720e-02 8.7577232e-03 -2.5679011e-03 -3.7848029e-03]] - [[0.000443 0.000400 0.000320 0.000214] - [2.034945 0.509941 0.111175 0.024988]]] -[[[0.024709 0.016243 0.008156 0.003889] - [0.001728 0.000926 0.001014 0.000817]] + [[4.4334313e-04 3.9996041e-04 3.1956271e-04 2.1384697e-04] + [2.0349450e+00 5.0994051e-01 1.1117461e-01 2.4988436e-02]]] +[[[2.4709123e-02 1.6243265e-02 8.1562777e-03 3.8885621e-03] + [1.7281129e-03 9.2567050e-04 1.0139848e-03 8.1707557e-04]] - [[0.000445 0.000401 0.000321 0.000215] - [0.257800 0.051236 0.013020 0.008312]]] + [[4.4485039e-04 4.0132018e-04 3.2064914e-04 2.1457400e-04] + [2.5779989e-01 5.1235906e-02 1.3019817e-02 8.3123526e-03]]] domain=10002 type=nu-scatter matrix -[[[0.639901 0.381167 0.152392 0.009148] - [0.031368 0.008758 -0.002568 -0.003785]] +[[[6.3990148e-01 3.8116745e-01 1.5239190e-01 9.1480223e-03] + [3.1367720e-02 8.7577232e-03 -2.5679011e-03 -3.7848029e-03]] - [[0.000443 0.000400 0.000320 0.000214] - [2.034945 0.509941 0.111175 0.024988]]] -[[[0.024709 0.016243 0.008156 0.003889] - [0.001728 0.000926 0.001014 0.000817]] + [[4.4334313e-04 3.9996041e-04 3.1956271e-04 2.1384697e-04] + [2.0349450e+00 5.0994051e-01 1.1117461e-01 2.4988436e-02]]] +[[[2.4709123e-02 1.6243265e-02 8.1562777e-03 3.8885621e-03] + [1.7281129e-03 9.2567050e-04 1.0139848e-03 8.1707557e-04]] - [[0.000445 0.000401 0.000321 0.000215] - [0.257800 0.051236 0.013020 0.008312]]] + [[4.4485039e-04 4.0132018e-04 3.2064914e-04 2.1457400e-04] + [2.5779989e-01 5.1235906e-02 1.3019817e-02 8.3123526e-03]]] domain=10002 type=multiplicity matrix -[[1.000000 1.000000] - [1.000000 1.000000]] -[[0.038609 0.067667] - [1.414214 0.135929]] +[[1.0000000e+00 1.0000000e+00] + [1.0000000e+00 1.0000000e+00]] +[[3.8609191e-02 6.7667348e-02] + [1.4142136e+00 1.3592921e-01]] domain=10002 type=nu-fission matrix -[[0.000000 0.000000] - [0.000000 0.000000]] -[[0.000000 0.000000] - [0.000000 0.000000]] +[[0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00]] +[[0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00]] domain=10002 type=chi -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=chi-prompt -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=velocity -[16605562.873227 328412.038650] -[1042435.523742 38828.435730] +[1.6605563e+07 3.2841204e+05] +[1.0424355e+06 3.8828436e+04] domain=10002 type=prompt-nu-fission -[0.000000 0.000000] -[0.000000 0.000000] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index a3186b28dc..0e25d3ee82 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 0.414825 0.022793 -0 10000 2 total 0.660170 0.047519 - material group in nuclide mean std. dev. -1 10000 1 total 0.356860 0.025494 -0 10000 2 total 0.647648 0.023704 - material group in nuclide mean std. dev. -1 10000 1 total 0.356860 0.025494 -0 10000 2 total 0.647648 0.023704 - material group in nuclide mean std. dev. -1 10000 1 total 0.027408 0.002692 -0 10000 2 total 0.264511 0.023367 - material group in nuclide mean std. dev. -1 10000 1 total 0.019845 0.002643 -0 10000 2 total 0.071719 0.025208 - material group in nuclide mean std. dev. -1 10000 1 total 0.007563 0.000508 -0 10000 2 total 0.192791 0.017106 - material group in nuclide mean std. dev. -1 10000 1 total 0.019432 0.001323 -0 10000 2 total 0.469775 0.041682 - material group in nuclide mean std. dev. -1 10000 1 total 1.474570 0.099235 -0 10000 2 total 37.286896 3.308378 - material group in nuclide mean std. dev. -1 10000 1 total 0.387418 0.020626 -0 10000 2 total 0.395659 0.025125 - material group in nuclide mean std. dev. -1 10000 1 total 0.385188 0.026946 -0 10000 2 total 0.412389 0.015425 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 0.384199 0.027001 -13 10000 1 1 total P1 0.051870 0.006983 -14 10000 1 1 total P2 0.020069 0.002846 -15 10000 1 1 total P3 0.009478 0.002234 -8 10000 1 2 total P0 0.000989 0.000482 -9 10000 1 2 total P1 -0.000207 0.000149 -10 10000 1 2 total P2 -0.000103 0.000184 -11 10000 1 2 total P3 0.000234 0.000128 -4 10000 2 1 total P0 0.000925 0.000925 -5 10000 2 1 total P1 -0.000768 0.000768 -6 10000 2 1 total P2 0.000494 0.000494 -7 10000 2 1 total P3 -0.000171 0.000172 -0 10000 2 2 total P0 0.411465 0.015245 -1 10000 2 2 total P1 0.016482 0.004502 -2 10000 2 2 total P2 0.006371 0.010551 -3 10000 2 2 total P3 -0.010499 0.010438 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 0.384199 0.027001 -13 10000 1 1 total P1 0.051870 0.006983 -14 10000 1 1 total P2 0.020069 0.002846 -15 10000 1 1 total P3 0.009478 0.002234 -8 10000 1 2 total P0 0.000989 0.000482 -9 10000 1 2 total P1 -0.000207 0.000149 -10 10000 1 2 total P2 -0.000103 0.000184 -11 10000 1 2 total P3 0.000234 0.000128 -4 10000 2 1 total P0 0.000925 0.000925 -5 10000 2 1 total P1 -0.000768 0.000768 -6 10000 2 1 total P2 0.000494 0.000494 -7 10000 2 1 total P3 -0.000171 0.000172 -0 10000 2 2 total P0 0.411465 0.015245 -1 10000 2 2 total P1 0.016482 0.004502 -2 10000 2 2 total P2 0.006371 0.010551 -3 10000 2 2 total P3 -0.010499 0.010438 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.000000 0.078516 -2 10000 1 2 total 1.000000 0.687184 -1 10000 2 1 total 1.000000 1.414214 -0 10000 2 2 total 1.000000 0.041130 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 0.020142 0.003149 -2 10000 1 2 total 0.000000 0.000000 -1 10000 2 1 total 0.454366 0.027426 -0 10000 2 2 total 0.000000 0.000000 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000 0.046071 -0 10000 2 total 0.000000 0.000000 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000 0.051471 -0 10000 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10000 1 total 17515210.620397 1438175.273899 -0 10000 2 total 350171.995194 29945.931697 - material group in nuclide mean std. dev. -1 10000 1 total 0.019239 0.001310 -0 10000 2 total 0.466719 0.041411 - material group in nuclide mean std. dev. -1 10001 1 total 0.313738 0.015582 -0 10001 2 total 0.300821 0.028052 - material group in nuclide mean std. dev. -1 10001 1 total 0.273228 0.033115 -0 10001 2 total 0.312375 0.049606 - material group in nuclide mean std. dev. -1 10001 1 total 0.273228 0.033115 -0 10001 2 total 0.312375 0.049606 - material group in nuclide mean std. dev. -1 10001 1 total 0.001575 0.000323 -0 10001 2 total 0.005400 0.000618 - material group in nuclide mean std. dev. -1 10001 1 total 0.001575 0.000323 -0 10001 2 total 0.005400 0.000618 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000 0.000000 -0 10001 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000 0.000000 -0 10001 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000 0.000000 -0 10001 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10001 1 total 0.312163 0.015322 -0 10001 2 total 0.295421 0.027445 - material group in nuclide mean std. dev. -1 10001 1 total 0.310121 0.033788 -0 10001 2 total 0.296264 0.043792 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 0.310121 0.033788 -13 10001 1 1 total P1 0.038230 0.008484 -14 10001 1 1 total P2 0.020745 0.004696 -15 10001 1 1 total P3 0.007964 0.003732 -8 10001 1 2 total P0 0.000000 0.000000 -9 10001 1 2 total P1 0.000000 0.000000 -10 10001 1 2 total P2 0.000000 0.000000 -11 10001 1 2 total P3 0.000000 0.000000 -4 10001 2 1 total P0 0.000000 0.000000 -5 10001 2 1 total P1 0.000000 0.000000 -6 10001 2 1 total P2 0.000000 0.000000 -7 10001 2 1 total P3 0.000000 0.000000 -0 10001 2 2 total P0 0.296264 0.043792 -1 10001 2 2 total P1 -0.011214 0.016180 -2 10001 2 2 total P2 0.008837 0.011504 -3 10001 2 2 total P3 -0.003270 0.007329 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 0.310121 0.033788 -13 10001 1 1 total P1 0.038230 0.008484 -14 10001 1 1 total P2 0.020745 0.004696 -15 10001 1 1 total P3 0.007964 0.003732 -8 10001 1 2 total P0 0.000000 0.000000 -9 10001 1 2 total P1 0.000000 0.000000 -10 10001 1 2 total P2 0.000000 0.000000 -11 10001 1 2 total P3 0.000000 0.000000 -4 10001 2 1 total P0 0.000000 0.000000 -5 10001 2 1 total P1 0.000000 0.000000 -6 10001 2 1 total P2 0.000000 0.000000 -7 10001 2 1 total P3 0.000000 0.000000 -0 10001 2 2 total P0 0.296264 0.043792 -1 10001 2 2 total P1 -0.011214 0.016180 -2 10001 2 2 total P2 0.008837 0.011504 -3 10001 2 2 total P3 -0.003270 0.007329 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.000000 0.108779 -2 10001 1 2 total 0.000000 0.000000 -1 10001 2 1 total 0.000000 0.000000 -0 10001 2 2 total 1.000000 0.142427 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.000000 0.000000 -2 10001 1 2 total 0.000000 0.000000 -1 10001 2 1 total 0.000000 0.000000 -0 10001 2 2 total 0.000000 0.000000 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000 0.000000 -0 10001 2 total 0.000000 0.000000 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000 0.000000 -0 10001 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10001 1 total 16677839.497365 1266444.309518 -0 10001 2 total 334953.367601 38336.781626 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000 0.000000 -0 10001 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10002 1 total 0.664572 0.031215 -0 10002 2 total 2.052384 0.224343 - material group in nuclide mean std. dev. -1 10002 1 total 0.290565 0.023852 -0 10002 2 total 1.516438 0.235197 - material group in nuclide mean std. dev. -1 10002 1 total 0.290565 0.023852 -0 10002 2 total 1.516438 0.235197 - material group in nuclide mean std. dev. -1 10002 1 total 0.000690 0.000044 -0 10002 2 total 0.031687 0.003747 - material group in nuclide mean std. dev. -1 10002 1 total 0.000690 0.000044 -0 10002 2 total 0.031687 0.003747 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000 0.000000 -0 10002 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000 0.000000 -0 10002 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000 0.000000 -0 10002 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10002 1 total 0.663882 0.031173 -0 10002 2 total 2.020697 0.220604 - material group in nuclide mean std. dev. -1 10002 1 total 0.671269 0.026186 -0 10002 2 total 2.035388 0.258060 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 0.639901 0.024709 -13 10002 1 1 total P1 0.381167 0.016243 -14 10002 1 1 total P2 0.152392 0.008156 -15 10002 1 1 total P3 0.009148 0.003889 -8 10002 1 2 total P0 0.031368 0.001728 -9 10002 1 2 total P1 0.008758 0.000926 -10 10002 1 2 total P2 -0.002568 0.001014 -11 10002 1 2 total P3 -0.003785 0.000817 -4 10002 2 1 total P0 0.000443 0.000445 -5 10002 2 1 total P1 0.000400 0.000401 -6 10002 2 1 total P2 0.000320 0.000321 -7 10002 2 1 total P3 0.000214 0.000215 -0 10002 2 2 total P0 2.034945 0.257800 -1 10002 2 2 total P1 0.509941 0.051236 -2 10002 2 2 total P2 0.111175 0.013020 -3 10002 2 2 total P3 0.024988 0.008312 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 0.639901 0.024709 -13 10002 1 1 total P1 0.381167 0.016243 -14 10002 1 1 total P2 0.152392 0.008156 -15 10002 1 1 total P3 0.009148 0.003889 -8 10002 1 2 total P0 0.031368 0.001728 -9 10002 1 2 total P1 0.008758 0.000926 -10 10002 1 2 total P2 -0.002568 0.001014 -11 10002 1 2 total P3 -0.003785 0.000817 -4 10002 2 1 total P0 0.000443 0.000445 -5 10002 2 1 total P1 0.000400 0.000401 -6 10002 2 1 total P2 0.000320 0.000321 -7 10002 2 1 total P3 0.000214 0.000215 -0 10002 2 2 total P0 2.034945 0.257800 -1 10002 2 2 total P1 0.509941 0.051236 -2 10002 2 2 total P2 0.111175 0.013020 -3 10002 2 2 total P3 0.024988 0.008312 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.000000 0.038609 -2 10002 1 2 total 1.000000 0.067667 -1 10002 2 1 total 1.000000 1.414214 -0 10002 2 2 total 1.000000 0.135929 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.000000 0.000000 -2 10002 1 2 total 0.000000 0.000000 -1 10002 2 1 total 0.000000 0.000000 -0 10002 2 2 total 0.000000 0.000000 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000 0.000000 -0 10002 2 total 0.000000 0.000000 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000 0.000000 -0 10002 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10002 1 total 16605562.873227 1042435.523742 -0 10002 2 total 328412.038650 38828.435730 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000 0.000000 -0 10002 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10000 1 total 4.1482549e-01 2.2792909e-02 +0 10000 2 total 6.6016992e-01 4.7518928e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.5685964e-01 2.5493596e-02 +0 10000 2 total 6.4764766e-01 2.3703735e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.5685964e-01 2.5493596e-02 +0 10000 2 total 6.4764766e-01 2.3703735e-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.7407845e-02 2.6924971e-03 +0 10000 2 total 2.6451074e-01 2.3367077e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.9844550e-02 2.6433043e-03 +0 10000 2 total 7.1719353e-02 2.5207859e-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.5632950e-03 5.0848368e-04 +0 10000 2 total 1.9279139e-01 1.7105922e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.9431740e-02 1.3229756e-03 +0 10000 2 total 4.6977478e-01 4.1682000e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.4745698e+00 9.9235321e-02 +0 10000 2 total 3.7286896e+01 3.3083777e+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.8741765e-01 2.0625732e-02 +0 10000 2 total 3.9565918e-01 2.5125057e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.8518839e-01 2.6945621e-02 +0 10000 2 total 4.1238940e-01 1.5425277e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.8419946e-01 2.7001014e-02 +13 10000 1 1 total P1 5.1870284e-02 6.9825489e-03 +14 10000 1 1 total P2 2.0068845e-02 2.8464952e-03 +15 10000 1 1 total P3 9.4777157e-03 2.2335198e-03 +8 10000 1 2 total P0 9.8893039e-04 4.8241945e-04 +9 10000 1 2 total P1 -2.0723460e-04 1.4901078e-04 +10 10000 1 2 total P2 -1.0336618e-04 1.8431631e-04 +11 10000 1 2 total P3 2.3429062e-04 1.2817311e-04 +4 10000 2 1 total P0 9.2463991e-04 9.2488346e-04 +5 10000 2 1 total P1 -7.6770497e-04 7.6790719e-04 +6 10000 2 1 total P2 4.9378887e-04 4.9391894e-04 +7 10000 2 1 total P3 -1.7149723e-04 1.7154240e-04 +0 10000 2 2 total P0 4.1146476e-01 1.5244935e-02 +1 10000 2 2 total P1 1.6481728e-02 4.5017280e-03 +2 10000 2 2 total P2 6.3714905e-03 1.0550749e-02 +3 10000 2 2 total P3 -1.0499122e-02 1.0438188e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.8419946e-01 2.7001014e-02 +13 10000 1 1 total P1 5.1870284e-02 6.9825489e-03 +14 10000 1 1 total P2 2.0068845e-02 2.8464952e-03 +15 10000 1 1 total P3 9.4777157e-03 2.2335198e-03 +8 10000 1 2 total P0 9.8893039e-04 4.8241945e-04 +9 10000 1 2 total P1 -2.0723460e-04 1.4901078e-04 +10 10000 1 2 total P2 -1.0336618e-04 1.8431631e-04 +11 10000 1 2 total P3 2.3429062e-04 1.2817311e-04 +4 10000 2 1 total P0 9.2463991e-04 9.2488346e-04 +5 10000 2 1 total P1 -7.6770497e-04 7.6790719e-04 +6 10000 2 1 total P2 4.9378887e-04 4.9391894e-04 +7 10000 2 1 total P3 -1.7149723e-04 1.7154240e-04 +0 10000 2 2 total P0 4.1146476e-01 1.5244935e-02 +1 10000 2 2 total P1 1.6481728e-02 4.5017280e-03 +2 10000 2 2 total P2 6.3714905e-03 1.0550749e-02 +3 10000 2 2 total P3 -1.0499122e-02 1.0438188e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.0000000e+00 7.8516455e-02 +2 10000 1 2 total 1.0000000e+00 6.8718427e-01 +1 10000 2 1 total 1.0000000e+00 1.4142136e+00 +0 10000 2 2 total 1.0000000e+00 4.1130349e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.0142428e-02 3.1490917e-03 +2 10000 1 2 total 0.0000000e+00 0.0000000e+00 +1 10000 2 1 total 4.5436647e-01 2.7425507e-02 +0 10000 2 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.0000000e+00 4.6070523e-02 +0 10000 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.0000000e+00 5.1471457e-02 +0 10000 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.7515211e+07 1.4381753e+06 +0 10000 2 total 3.5017200e+05 2.9945932e+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.9239222e-02 1.3095060e-03 +0 10000 2 total 4.6671903e-01 4.1410870e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.1373767e-01 1.5581902e-02 +0 10001 2 total 3.0082140e-01 2.8052448e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.7322787e-01 3.3115366e-02 +0 10001 2 total 3.1237484e-01 4.9605832e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.7322787e-01 3.3115366e-02 +0 10001 2 total 3.1237484e-01 4.9605832e-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.5749914e-03 3.2254789e-04 +0 10001 2 total 5.4003788e-03 6.1813831e-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.5749914e-03 3.2254789e-04 +0 10001 2 total 5.4003788e-03 6.1813831e-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.1216268e-01 1.5321923e-02 +0 10001 2 total 2.9542102e-01 2.7445489e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.1012074e-01 3.3788106e-02 +0 10001 2 total 2.9626427e-01 4.3792226e-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.1012074e-01 3.3788106e-02 +13 10001 1 1 total P1 3.8229590e-02 8.4839971e-03 +14 10001 1 1 total P2 2.0744942e-02 4.6956107e-03 +15 10001 1 1 total P3 7.9642968e-03 3.7316226e-03 +8 10001 1 2 total P0 0.0000000e+00 0.0000000e+00 +9 10001 1 2 total P1 0.0000000e+00 0.0000000e+00 +10 10001 1 2 total P2 0.0000000e+00 0.0000000e+00 +11 10001 1 2 total P3 0.0000000e+00 0.0000000e+00 +4 10001 2 1 total P0 0.0000000e+00 0.0000000e+00 +5 10001 2 1 total P1 0.0000000e+00 0.0000000e+00 +6 10001 2 1 total P2 0.0000000e+00 0.0000000e+00 +7 10001 2 1 total P3 0.0000000e+00 0.0000000e+00 +0 10001 2 2 total P0 2.9626427e-01 4.3792226e-02 +1 10001 2 2 total P1 -1.1213636e-02 1.6180366e-02 +2 10001 2 2 total P2 8.8365663e-03 1.1503964e-02 +3 10001 2 2 total P3 -3.2700673e-03 7.3288458e-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.1012074e-01 3.3788106e-02 +13 10001 1 1 total P1 3.8229590e-02 8.4839971e-03 +14 10001 1 1 total P2 2.0744942e-02 4.6956107e-03 +15 10001 1 1 total P3 7.9642968e-03 3.7316226e-03 +8 10001 1 2 total P0 0.0000000e+00 0.0000000e+00 +9 10001 1 2 total P1 0.0000000e+00 0.0000000e+00 +10 10001 1 2 total P2 0.0000000e+00 0.0000000e+00 +11 10001 1 2 total P3 0.0000000e+00 0.0000000e+00 +4 10001 2 1 total P0 0.0000000e+00 0.0000000e+00 +5 10001 2 1 total P1 0.0000000e+00 0.0000000e+00 +6 10001 2 1 total P2 0.0000000e+00 0.0000000e+00 +7 10001 2 1 total P3 0.0000000e+00 0.0000000e+00 +0 10001 2 2 total P0 2.9626427e-01 4.3792226e-02 +1 10001 2 2 total P1 -1.1213636e-02 1.6180366e-02 +2 10001 2 2 total P2 8.8365663e-03 1.1503964e-02 +3 10001 2 2 total P3 -3.2700673e-03 7.3288458e-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.0000000e+00 1.0877870e-01 +2 10001 1 2 total 0.0000000e+00 0.0000000e+00 +1 10001 2 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 2 total 1.0000000e+00 1.4242717e-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.0000000e+00 0.0000000e+00 +2 10001 1 2 total 0.0000000e+00 0.0000000e+00 +1 10001 2 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.6677839e+07 1.2664443e+06 +0 10001 2 total 3.3495337e+05 3.8336782e+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.6457226e-01 3.1214752e-02 +0 10002 2 total 2.0523840e+00 2.2434291e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.9056526e-01 2.3851855e-02 +0 10002 2 total 1.5164380e+00 2.3519727e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.9056526e-01 2.3851855e-02 +0 10002 2 total 1.5164380e+00 2.3519727e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.9039952e-04 4.4147569e-05 +0 10002 2 total 3.1687257e-02 3.7465586e-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.9039952e-04 4.4147569e-05 +0 10002 2 total 3.1687257e-02 3.7465586e-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.6388186e-01 3.1172684e-02 +0 10002 2 total 2.0206968e+00 2.2060445e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.7126920e-01 2.6186371e-02 +0 10002 2 total 2.0353883e+00 2.5806033e-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.3990148e-01 2.4709123e-02 +13 10002 1 1 total P1 3.8116745e-01 1.6243265e-02 +14 10002 1 1 total P2 1.5239190e-01 8.1562777e-03 +15 10002 1 1 total P3 9.1480223e-03 3.8885621e-03 +8 10002 1 2 total P0 3.1367720e-02 1.7281129e-03 +9 10002 1 2 total P1 8.7577232e-03 9.2567050e-04 +10 10002 1 2 total P2 -2.5679011e-03 1.0139848e-03 +11 10002 1 2 total P3 -3.7848029e-03 8.1707557e-04 +4 10002 2 1 total P0 4.4334313e-04 4.4485039e-04 +5 10002 2 1 total P1 3.9996041e-04 4.0132018e-04 +6 10002 2 1 total P2 3.1956271e-04 3.2064914e-04 +7 10002 2 1 total P3 2.1384697e-04 2.1457400e-04 +0 10002 2 2 total P0 2.0349450e+00 2.5779989e-01 +1 10002 2 2 total P1 5.0994051e-01 5.1235906e-02 +2 10002 2 2 total P2 1.1117461e-01 1.3019817e-02 +3 10002 2 2 total P3 2.4988436e-02 8.3123526e-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.3990148e-01 2.4709123e-02 +13 10002 1 1 total P1 3.8116745e-01 1.6243265e-02 +14 10002 1 1 total P2 1.5239190e-01 8.1562777e-03 +15 10002 1 1 total P3 9.1480223e-03 3.8885621e-03 +8 10002 1 2 total P0 3.1367720e-02 1.7281129e-03 +9 10002 1 2 total P1 8.7577232e-03 9.2567050e-04 +10 10002 1 2 total P2 -2.5679011e-03 1.0139848e-03 +11 10002 1 2 total P3 -3.7848029e-03 8.1707557e-04 +4 10002 2 1 total P0 4.4334313e-04 4.4485039e-04 +5 10002 2 1 total P1 3.9996041e-04 4.0132018e-04 +6 10002 2 1 total P2 3.1956271e-04 3.2064914e-04 +7 10002 2 1 total P3 2.1384697e-04 2.1457400e-04 +0 10002 2 2 total P0 2.0349450e+00 2.5779989e-01 +1 10002 2 2 total P1 5.0994051e-01 5.1235906e-02 +2 10002 2 2 total P2 1.1117461e-01 1.3019817e-02 +3 10002 2 2 total P3 2.4988436e-02 8.3123526e-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.0000000e+00 3.8609191e-02 +2 10002 1 2 total 1.0000000e+00 6.7667348e-02 +1 10002 2 1 total 1.0000000e+00 1.4142136e+00 +0 10002 2 2 total 1.0000000e+00 1.3592921e-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.0000000e+00 0.0000000e+00 +2 10002 1 2 total 0.0000000e+00 0.0000000e+00 +1 10002 2 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.6605563e+07 1.0424355e+06 +0 10002 2 total 3.2841204e+05 3.8828436e+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 724cb45cdc..53f29f1d5f 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -9e7bc573568b1b441d43c406a8fddcd3db0c4ae5bd5a6577e2abb9abf452d9d2acd006c330e62f0d774e133e9f484d3c2f6d8c00b23274608b1e214da5737b20 \ No newline at end of file +400e4cca1866a1a56b20c3d438a0dd518b069f24ce5f7b29d012d2f5898d36560876ba0ced28e94b1efabd5c9a26560cb9fc85372f7a608dec0ac2e93c558184 \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index a53cd33007..d65dbd2046 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [500.000000 0.000000 700.000000 800.000000] + Temperature = [5.0000000e+02 0.0000000e+00 7.0000000e+02 8.0000000e+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index a54027886f..b12caac5df 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -cc0d5f0a7c0cf36d9fca0cb73726f78e90c5e17d1b5565940097182af4dc15c0b159ee2a0d3bc9ef395ab852335d2e370e35b6ac2f4e97c6b9ba9758af530fbb \ No newline at end of file +901e96de1e670c2a0b58905a6d1d249b489d743483e8ff3fcb51c833ea356cbebe6206bf80c2b23b850a5225b540057257b3a1e3699ec5e6c4a578772382a8bf \ 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 d2bad24d0f..200fddbeb0 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] +[[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] ..., - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]]][[[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] ..., - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]]][[[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] ..., - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000 0.000000]]][[[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] ..., - [[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]]][[[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] ..., - [[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000] - [0.000000 0.000000 0.000000]]] \ No newline at end of file + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index cb717707c6..d440a48d78 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -11,12 +11,12 @@ import sys import numpy as np import pandas as pd -# Require numpy and pandas to print output rounded to 10 decimal places and in -# scientific notation with 10 significant figures. This is needed to avoid round -# off error when large numbers are printed, which can cause tests to fail for -# different build configurations. -np.set_printoptions(formatter={'float': lambda x: format(np.around(x, 10), 'f')}) -pd.set_option('display.float_format', lambda x: '%f' % np.around(x, 10)) +# Require numpy and pandas to print output in scientific notation with 8 +# significant figures. This is needed to avoid round off error when large +# numbers are printed, which can cause tests to fail for different build +# configurations. +np.set_printoptions(formatter={'float': '{:.7e}'.format}) +pd.options.display.float_format = '{:.7e}'.format sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From ecdadf3cb8f2d37d74b3f658a2dd43f4f5db2674 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Wed, 13 Jul 2016 10:13:23 -0600 Subject: [PATCH 152/417] changed number of sig figs to 7 --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 312 +++++------ .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 6 +- 9 files changed, 692 insertions(+), 692 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index f8353aa667..fbdab856f8 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.5362442e-01 2.1052696e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.0085218e-01 2.2857554e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.0085218e-01 2.2857554e-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.4903456e-02 4.3127612e-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.8048066e-02 4.5799637e-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.6855390e-02 2.6221598e-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.0649290e-02 6.4098745e-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.1379551e+00 5.0736381e-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.8872097e-01 1.7830429e-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.8930356e-01 2.3075539e-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.8930356e-01 2.3145605e-02 -1 10000 1 1 total P1 4.6224418e-02 5.9071696e-03 -2 10000 1 1 total P2 1.7983585e-02 2.8829720e-03 -3 10000 1 1 total P3 6.6283735e-03 2.4571090e-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.8930356e-01 2.3145605e-02 -1 10000 1 1 total P1 4.6224418e-02 5.9071696e-03 -2 10000 1 1 total P2 1.7983585e-02 2.8829720e-03 -3 10000 1 1 total P3 6.6283735e-03 2.4571090e-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.0000000e+00 6.6110820e-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.5835019e-02 5.5918249e-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.0000000e+00 4.6070523e-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.0000000e+00 5.1471457e-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.0013087e+06 1.4621656e+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.0003978e-02 6.3669079e-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.1159411e-01 1.3793168e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.7925506e-01 2.9189501e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.7925506e-01 2.9189501e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.2098464e-03 2.8633413e-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.2098464e-03 2.8633413e-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.0938426e-01 1.3551267e-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.0798735e-01 2.9308089e-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.0798735e-01 2.9308089e-02 -1 10001 1 1 total P1 3.0617153e-02 7.4644560e-03 -2 10001 1 1 total P2 1.8911490e-02 4.3228277e-03 -3 10001 1 1 total P3 6.2346182e-03 3.3382023e-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.0798735e-01 2.9308089e-02 -1 10001 1 1 total P1 3.0617153e-02 7.4644560e-03 -2 10001 1 1 total P2 1.8911490e-02 4.3228277e-03 -3 10001 1 1 total P3 6.2346182e-03 3.3382023e-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.0000000e+00 9.5038722e-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.8332612e+06 1.6635517e+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.0499883e-01 4.3964488e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.9918398e-01 4.0914120e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.9918398e-01 4.0914120e-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.0603412e-03 5.5452442e-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.0603412e-03 5.5452442e-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.9893849e-01 4.3492984e-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.0341466e-01 4.3958737e-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.0341466e-01 4.3585994e-02 -1 10002 1 1 total P1 4.1041742e-01 1.5877220e-02 -2 10002 1 1 total P2 1.4330104e-01 7.1873777e-03 -3 10002 1 1 total P3 8.7394263e-03 3.5714413e-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.0341466e-01 4.3585994e-02 -1 10002 1 1 total P1 4.1041742e-01 1.5877220e-02 -2 10002 1 1 total P2 1.4330104e-01 7.1873777e-03 -3 10002 1 1 total P3 8.7394263e-03 3.5714413e-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.0000000e+00 5.6866725e-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.7321997e+06 1.5969143e+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.536244e-01 2.105270e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008522e-01 2.285755e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008522e-01 2.285755e-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.490346e-02 4.312761e-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.804807e-02 4.579964e-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.685539e-02 2.622160e-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.064929e-02 6.409875e-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.137955e+00 5.073638e-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.887210e-01 1.783043e-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.893036e-01 2.307554e-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893036e-01 2.314560e-02 +1 10000 1 1 total P1 4.622442e-02 5.907170e-03 +2 10000 1 1 total P2 1.798359e-02 2.882972e-03 +3 10000 1 1 total P3 6.628374e-03 2.457109e-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893036e-01 2.314560e-02 +1 10000 1 1 total P1 4.622442e-02 5.907170e-03 +2 10000 1 1 total P2 1.798359e-02 2.882972e-03 +3 10000 1 1 total P3 6.628374e-03 2.457109e-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.000000e+00 6.611082e-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.583502e-02 5.591825e-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000e+00 4.607052e-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000e+00 5.147146e-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.001309e+06 1.462166e+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.000398e-02 6.366908e-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.115941e-01 1.379317e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792551e-01 2.918950e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792551e-01 2.918950e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846e-03 2.863341e-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846e-03 2.863341e-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.093843e-01 1.355127e-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.079873e-01 2.930809e-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873e-01 2.930809e-02 +1 10001 1 1 total P1 3.061715e-02 7.464456e-03 +2 10001 1 1 total P2 1.891149e-02 4.322828e-03 +3 10001 1 1 total P3 6.234618e-03 3.338202e-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873e-01 2.930809e-02 +1 10001 1 1 total P1 3.061715e-02 7.464456e-03 +2 10001 1 1 total P2 1.891149e-02 4.322828e-03 +3 10001 1 1 total P3 6.234618e-03 3.338202e-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.000000e+00 9.503872e-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.833261e+06 1.663552e+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.049988e-01 4.396449e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991840e-01 4.091412e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991840e-01 4.091412e-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341e-03 5.545244e-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341e-03 5.545244e-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.989385e-01 4.349298e-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.034147e-01 4.395874e-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034147e-01 4.358599e-02 +1 10002 1 1 total P1 4.104174e-01 1.587722e-02 +2 10002 1 1 total P2 1.433010e-01 7.187378e-03 +3 10002 1 1 total P3 8.739426e-03 3.571441e-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034147e-01 4.358599e-02 +1 10002 1 1 total P1 4.104174e-01 1.587722e-02 +2 10002 1 1 total P2 1.433010e-01 7.187378e-03 +3 10002 1 1 total P3 8.739426e-03 3.571441e-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.000000e+00 5.686673e-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.732200e+06 1.596914e+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 70c7134536..7b66c39e49 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.1459340e+00 5.5382169e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.1891920e-01 5.2064426e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.1891920e-01 5.2064426e-01 - 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 1.9762206e-02 1.0628764e-02 - 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 1.9762206e-02 1.0628764e-02 - 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.0000000e+00 0.0000000e+00 - 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.0000000e+00 0.0000000e+00 - 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.0000000e+00 0.0000000e+00 - 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 1.1261718e+00 5.4344001e-01 - 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 1.1425469e+00 5.7013139e-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.1425469e+00 5.7013139e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.4738129e-01 2.1632217e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.4120179e-01 6.6503773e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.9228270e-02 2.4620832e-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.1425469e+00 5.7013139e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.4738129e-01 2.1632217e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.4120179e-01 6.6503773e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.9228270e-02 2.4620832e-02 - 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 1.0000000e+00 5.2971733e-01 - 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.0000000e+00 0.0000000e+00 - 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.0000000e+00 0.0000000e+00 - 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.0000000e+00 0.0000000e+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.7424571e+05 4.1639769e+05 - 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.0000000e+00 0.0000000e+00 + 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 1.145934e+00 5.538217e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192e-01 5.206443e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192e-01 5.206443e-01 + 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 1.976221e-02 1.062876e-02 + 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 1.976221e-02 1.062876e-02 + 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.000000e+00 0.000000e+00 + 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.000000e+00 0.000000e+00 + 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.000000e+00 0.000000e+00 + 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 1.126172e+00 5.434400e-01 + 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 1.142547e+00 5.701314e-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547e+00 5.701314e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813e-01 2.163222e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018e-01 6.650377e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827e-02 2.462083e-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547e+00 5.701314e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813e-01 2.163222e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018e-01 6.650377e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827e-02 2.462083e-02 + 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 1.000000e+00 5.297173e-01 + 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.000000e+00 0.000000e+00 + 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.000000e+00 0.000000e+00 + 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.000000e+00 0.000000e+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457e+05 4.163977e+05 + 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.000000e+00 0.000000e+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index ca424dc6b7..3160e850fd 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,222 @@ domain=10000 type=total -[4.1482549e-01 6.6016992e-01] -[2.2792909e-02 4.7518928e-02] +[4.148255e-01 6.601699e-01] +[2.279291e-02 4.751893e-02] domain=10000 type=transport -[3.5685964e-01 6.4764766e-01] -[2.5493596e-02 2.3703735e-02] +[3.568596e-01 6.476477e-01] +[2.549360e-02 2.370374e-02] domain=10000 type=nu-transport -[3.5685964e-01 6.4764766e-01] -[2.5493596e-02 2.3703735e-02] +[3.568596e-01 6.476477e-01] +[2.549360e-02 2.370374e-02] domain=10000 type=absorption -[2.7407845e-02 2.6451074e-01] -[2.6924971e-03 2.3367077e-02] +[2.740784e-02 2.645107e-01] +[2.692497e-03 2.336708e-02] domain=10000 type=capture -[1.9844550e-02 7.1719353e-02] -[2.6433043e-03 2.5207859e-02] +[1.984455e-02 7.171935e-02] +[2.643304e-03 2.520786e-02] domain=10000 type=fission -[7.5632950e-03 1.9279139e-01] -[5.0848368e-04 1.7105922e-02] +[7.563295e-03 1.927914e-01] +[5.084837e-04 1.710592e-02] domain=10000 type=nu-fission -[1.9431740e-02 4.6977478e-01] -[1.3229756e-03 4.1682000e-02] +[1.943174e-02 4.697748e-01] +[1.322976e-03 4.168200e-02] domain=10000 type=kappa-fission -[1.4745698e+00 3.7286896e+01] -[9.9235321e-02 3.3083777e+00] +[1.474570e+00 3.728690e+01] +[9.923532e-02 3.308378e+00] domain=10000 type=scatter -[3.8741765e-01 3.9565918e-01] -[2.0625732e-02 2.5125057e-02] +[3.874176e-01 3.956592e-01] +[2.062573e-02 2.512506e-02] domain=10000 type=nu-scatter -[3.8518839e-01 4.1238940e-01] -[2.6945621e-02 1.5425277e-02] +[3.851884e-01 4.123894e-01] +[2.694562e-02 1.542528e-02] domain=10000 type=scatter matrix -[[[3.8419946e-01 5.1870284e-02 2.0068845e-02 9.4777157e-03] - [9.8893039e-04 -2.0723460e-04 -1.0336618e-04 2.3429062e-04]] +[[[3.841995e-01 5.187028e-02 2.006885e-02 9.477716e-03] + [9.889304e-04 -2.072346e-04 -1.033662e-04 2.342906e-04]] - [[9.2463991e-04 -7.6770497e-04 4.9378887e-04 -1.7149723e-04] - [4.1146476e-01 1.6481728e-02 6.3714905e-03 -1.0499122e-02]]] -[[[2.7001014e-02 6.9825489e-03 2.8464952e-03 2.2335198e-03] - [4.8241945e-04 1.4901078e-04 1.8431631e-04 1.2817311e-04]] + [[9.246399e-04 -7.677050e-04 4.937889e-04 -1.714972e-04] + [4.114648e-01 1.648173e-02 6.371490e-03 -1.049912e-02]]] +[[[2.700101e-02 6.982549e-03 2.846495e-03 2.233520e-03] + [4.824194e-04 1.490108e-04 1.843163e-04 1.281731e-04]] - [[9.2488346e-04 7.6790719e-04 4.9391894e-04 1.7154240e-04] - [1.5244935e-02 4.5017280e-03 1.0550749e-02 1.0438188e-02]]] + [[9.248835e-04 7.679072e-04 4.939189e-04 1.715424e-04] + [1.524494e-02 4.501728e-03 1.055075e-02 1.043819e-02]]] domain=10000 type=nu-scatter matrix -[[[3.8419946e-01 5.1870284e-02 2.0068845e-02 9.4777157e-03] - [9.8893039e-04 -2.0723460e-04 -1.0336618e-04 2.3429062e-04]] +[[[3.841995e-01 5.187028e-02 2.006885e-02 9.477716e-03] + [9.889304e-04 -2.072346e-04 -1.033662e-04 2.342906e-04]] - [[9.2463991e-04 -7.6770497e-04 4.9378887e-04 -1.7149723e-04] - [4.1146476e-01 1.6481728e-02 6.3714905e-03 -1.0499122e-02]]] -[[[2.7001014e-02 6.9825489e-03 2.8464952e-03 2.2335198e-03] - [4.8241945e-04 1.4901078e-04 1.8431631e-04 1.2817311e-04]] + [[9.246399e-04 -7.677050e-04 4.937889e-04 -1.714972e-04] + [4.114648e-01 1.648173e-02 6.371490e-03 -1.049912e-02]]] +[[[2.700101e-02 6.982549e-03 2.846495e-03 2.233520e-03] + [4.824194e-04 1.490108e-04 1.843163e-04 1.281731e-04]] - [[9.2488346e-04 7.6790719e-04 4.9391894e-04 1.7154240e-04] - [1.5244935e-02 4.5017280e-03 1.0550749e-02 1.0438188e-02]]] + [[9.248835e-04 7.679072e-04 4.939189e-04 1.715424e-04] + [1.524494e-02 4.501728e-03 1.055075e-02 1.043819e-02]]] domain=10000 type=multiplicity matrix -[[1.0000000e+00 1.0000000e+00] - [1.0000000e+00 1.0000000e+00]] -[[7.8516455e-02 6.8718427e-01] - [1.4142136e+00 4.1130349e-02]] +[[1.000000e+00 1.000000e+00] + [1.000000e+00 1.000000e+00]] +[[7.851646e-02 6.871843e-01] + [1.414214e+00 4.113035e-02]] domain=10000 type=nu-fission matrix -[[2.0142428e-02 0.0000000e+00] - [4.5436647e-01 0.0000000e+00]] -[[3.1490917e-03 0.0000000e+00] - [2.7425507e-02 0.0000000e+00]] +[[2.014243e-02 0.000000e+00] + [4.543665e-01 0.000000e+00]] +[[3.149092e-03 0.000000e+00] + [2.742551e-02 0.000000e+00]] domain=10000 type=chi -[1.0000000e+00 0.0000000e+00] -[4.6070523e-02 0.0000000e+00] +[1.000000e+00 0.000000e+00] +[4.607052e-02 0.000000e+00] domain=10000 type=chi-prompt -[1.0000000e+00 0.0000000e+00] -[5.1471457e-02 0.0000000e+00] +[1.000000e+00 0.000000e+00] +[5.147146e-02 0.000000e+00] domain=10000 type=velocity -[1.7515211e+07 3.5017200e+05] -[1.4381753e+06 2.9945932e+04] +[1.751521e+07 3.501720e+05] +[1.438175e+06 2.994593e+04] domain=10000 type=prompt-nu-fission -[1.9239222e-02 4.6671903e-01] -[1.3095060e-03 4.1410870e-02] +[1.923922e-02 4.667190e-01] +[1.309506e-03 4.141087e-02] domain=10001 type=total -[3.1373767e-01 3.0082140e-01] -[1.5581902e-02 2.8052448e-02] +[3.137377e-01 3.008214e-01] +[1.558190e-02 2.805245e-02] domain=10001 type=transport -[2.7322787e-01 3.1237484e-01] -[3.3115366e-02 4.9605832e-02] +[2.732279e-01 3.123748e-01] +[3.311537e-02 4.960583e-02] domain=10001 type=nu-transport -[2.7322787e-01 3.1237484e-01] -[3.3115366e-02 4.9605832e-02] +[2.732279e-01 3.123748e-01] +[3.311537e-02 4.960583e-02] domain=10001 type=absorption -[1.5749914e-03 5.4003788e-03] -[3.2254789e-04 6.1813831e-04] +[1.574991e-03 5.400379e-03] +[3.225479e-04 6.181383e-04] domain=10001 type=capture -[1.5749914e-03 5.4003788e-03] -[3.2254789e-04 6.1813831e-04] +[1.574991e-03 5.400379e-03] +[3.225479e-04 6.181383e-04] domain=10001 type=fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10001 type=nu-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10001 type=kappa-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10001 type=scatter -[3.1216268e-01 2.9542102e-01] -[1.5321923e-02 2.7445489e-02] +[3.121627e-01 2.954210e-01] +[1.532192e-02 2.744549e-02] domain=10001 type=nu-scatter -[3.1012074e-01 2.9626427e-01] -[3.3788106e-02 4.3792226e-02] +[3.101207e-01 2.962643e-01] +[3.378811e-02 4.379223e-02] domain=10001 type=scatter matrix -[[[3.1012074e-01 3.8229590e-02 2.0744942e-02 7.9642968e-03] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] +[[[3.101207e-01 3.822959e-02 2.074494e-02 7.964297e-03] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [2.9626427e-01 -1.1213636e-02 8.8365663e-03 -3.2700673e-03]]] -[[[3.3788106e-02 8.4839971e-03 4.6956107e-03 3.7316226e-03] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [2.962643e-01 -1.121364e-02 8.836566e-03 -3.270067e-03]]] +[[[3.378811e-02 8.483997e-03 4.695611e-03 3.731623e-03] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [4.3792226e-02 1.6180366e-02 1.1503964e-02 7.3288458e-03]]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [4.379223e-02 1.618037e-02 1.150396e-02 7.328846e-03]]] domain=10001 type=nu-scatter matrix -[[[3.1012074e-01 3.8229590e-02 2.0744942e-02 7.9642968e-03] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] +[[[3.101207e-01 3.822959e-02 2.074494e-02 7.964297e-03] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [2.9626427e-01 -1.1213636e-02 8.8365663e-03 -3.2700673e-03]]] -[[[3.3788106e-02 8.4839971e-03 4.6956107e-03 3.7316226e-03] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [2.962643e-01 -1.121364e-02 8.836566e-03 -3.270067e-03]]] +[[[3.378811e-02 8.483997e-03 4.695611e-03 3.731623e-03] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [4.3792226e-02 1.6180366e-02 1.1503964e-02 7.3288458e-03]]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [4.379223e-02 1.618037e-02 1.150396e-02 7.328846e-03]]] domain=10001 type=multiplicity matrix -[[1.0000000e+00 0.0000000e+00] - [0.0000000e+00 1.0000000e+00]] -[[1.0877870e-01 0.0000000e+00] - [0.0000000e+00 1.4242717e-01]] +[[1.000000e+00 0.000000e+00] + [0.000000e+00 1.000000e+00]] +[[1.087787e-01 0.000000e+00] + [0.000000e+00 1.424272e-01]] domain=10001 type=nu-fission matrix -[[0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00]] -[[0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00]] +[[0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00]] +[[0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00]] domain=10001 type=chi -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10001 type=chi-prompt -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10001 type=velocity -[1.6677839e+07 3.3495337e+05] -[1.2664443e+06 3.8336782e+04] +[1.667784e+07 3.349534e+05] +[1.266444e+06 3.833678e+04] domain=10001 type=prompt-nu-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=total -[6.6457226e-01 2.0523840e+00] -[3.1214752e-02 2.2434291e-01] +[6.645723e-01 2.052384e+00] +[3.121475e-02 2.243429e-01] domain=10002 type=transport -[2.9056526e-01 1.5164380e+00] -[2.3851855e-02 2.3519727e-01] +[2.905653e-01 1.516438e+00] +[2.385185e-02 2.351973e-01] domain=10002 type=nu-transport -[2.9056526e-01 1.5164380e+00] -[2.3851855e-02 2.3519727e-01] +[2.905653e-01 1.516438e+00] +[2.385185e-02 2.351973e-01] domain=10002 type=absorption -[6.9039952e-04 3.1687257e-02] -[4.4147569e-05 3.7465586e-03] +[6.903995e-04 3.168726e-02] +[4.414757e-05 3.746559e-03] domain=10002 type=capture -[6.9039952e-04 3.1687257e-02] -[4.4147569e-05 3.7465586e-03] +[6.903995e-04 3.168726e-02] +[4.414757e-05 3.746559e-03] domain=10002 type=fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=nu-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=kappa-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=scatter -[6.6388186e-01 2.0206968e+00] -[3.1172684e-02 2.2060445e-01] +[6.638819e-01 2.020697e+00] +[3.117268e-02 2.206045e-01] domain=10002 type=nu-scatter -[6.7126920e-01 2.0353883e+00] -[2.6186371e-02 2.5806033e-01] +[6.712692e-01 2.035388e+00] +[2.618637e-02 2.580603e-01] domain=10002 type=scatter matrix -[[[6.3990148e-01 3.8116745e-01 1.5239190e-01 9.1480223e-03] - [3.1367720e-02 8.7577232e-03 -2.5679011e-03 -3.7848029e-03]] +[[[6.399015e-01 3.811674e-01 1.523919e-01 9.148022e-03] + [3.136772e-02 8.757723e-03 -2.567901e-03 -3.784803e-03]] - [[4.4334313e-04 3.9996041e-04 3.1956271e-04 2.1384697e-04] - [2.0349450e+00 5.0994051e-01 1.1117461e-01 2.4988436e-02]]] -[[[2.4709123e-02 1.6243265e-02 8.1562777e-03 3.8885621e-03] - [1.7281129e-03 9.2567050e-04 1.0139848e-03 8.1707557e-04]] + [[4.433431e-04 3.999604e-04 3.195627e-04 2.138470e-04] + [2.034945e+00 5.099405e-01 1.111746e-01 2.498844e-02]]] +[[[2.470912e-02 1.624326e-02 8.156278e-03 3.888562e-03] + [1.728113e-03 9.256705e-04 1.013985e-03 8.170756e-04]] - [[4.4485039e-04 4.0132018e-04 3.2064914e-04 2.1457400e-04] - [2.5779989e-01 5.1235906e-02 1.3019817e-02 8.3123526e-03]]] + [[4.448504e-04 4.013202e-04 3.206491e-04 2.145740e-04] + [2.577999e-01 5.123591e-02 1.301982e-02 8.312353e-03]]] domain=10002 type=nu-scatter matrix -[[[6.3990148e-01 3.8116745e-01 1.5239190e-01 9.1480223e-03] - [3.1367720e-02 8.7577232e-03 -2.5679011e-03 -3.7848029e-03]] +[[[6.399015e-01 3.811674e-01 1.523919e-01 9.148022e-03] + [3.136772e-02 8.757723e-03 -2.567901e-03 -3.784803e-03]] - [[4.4334313e-04 3.9996041e-04 3.1956271e-04 2.1384697e-04] - [2.0349450e+00 5.0994051e-01 1.1117461e-01 2.4988436e-02]]] -[[[2.4709123e-02 1.6243265e-02 8.1562777e-03 3.8885621e-03] - [1.7281129e-03 9.2567050e-04 1.0139848e-03 8.1707557e-04]] + [[4.433431e-04 3.999604e-04 3.195627e-04 2.138470e-04] + [2.034945e+00 5.099405e-01 1.111746e-01 2.498844e-02]]] +[[[2.470912e-02 1.624326e-02 8.156278e-03 3.888562e-03] + [1.728113e-03 9.256705e-04 1.013985e-03 8.170756e-04]] - [[4.4485039e-04 4.0132018e-04 3.2064914e-04 2.1457400e-04] - [2.5779989e-01 5.1235906e-02 1.3019817e-02 8.3123526e-03]]] + [[4.448504e-04 4.013202e-04 3.206491e-04 2.145740e-04] + [2.577999e-01 5.123591e-02 1.301982e-02 8.312353e-03]]] domain=10002 type=multiplicity matrix -[[1.0000000e+00 1.0000000e+00] - [1.0000000e+00 1.0000000e+00]] -[[3.8609191e-02 6.7667348e-02] - [1.4142136e+00 1.3592921e-01]] +[[1.000000e+00 1.000000e+00] + [1.000000e+00 1.000000e+00]] +[[3.860919e-02 6.766735e-02] + [1.414214e+00 1.359292e-01]] domain=10002 type=nu-fission matrix -[[0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00]] -[[0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00]] +[[0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00]] +[[0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00]] domain=10002 type=chi -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=chi-prompt -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=velocity -[1.6605563e+07 3.2841204e+05] -[1.0424355e+06 3.8828436e+04] +[1.660556e+07 3.284120e+05] +[1.042436e+06 3.882844e+04] domain=10002 type=prompt-nu-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 0e25d3ee82..fc42ccf494 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.1482549e-01 2.2792909e-02 -0 10000 2 total 6.6016992e-01 4.7518928e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.5685964e-01 2.5493596e-02 -0 10000 2 total 6.4764766e-01 2.3703735e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.5685964e-01 2.5493596e-02 -0 10000 2 total 6.4764766e-01 2.3703735e-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.7407845e-02 2.6924971e-03 -0 10000 2 total 2.6451074e-01 2.3367077e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.9844550e-02 2.6433043e-03 -0 10000 2 total 7.1719353e-02 2.5207859e-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.5632950e-03 5.0848368e-04 -0 10000 2 total 1.9279139e-01 1.7105922e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.9431740e-02 1.3229756e-03 -0 10000 2 total 4.6977478e-01 4.1682000e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.4745698e+00 9.9235321e-02 -0 10000 2 total 3.7286896e+01 3.3083777e+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.8741765e-01 2.0625732e-02 -0 10000 2 total 3.9565918e-01 2.5125057e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.8518839e-01 2.6945621e-02 -0 10000 2 total 4.1238940e-01 1.5425277e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.8419946e-01 2.7001014e-02 -13 10000 1 1 total P1 5.1870284e-02 6.9825489e-03 -14 10000 1 1 total P2 2.0068845e-02 2.8464952e-03 -15 10000 1 1 total P3 9.4777157e-03 2.2335198e-03 -8 10000 1 2 total P0 9.8893039e-04 4.8241945e-04 -9 10000 1 2 total P1 -2.0723460e-04 1.4901078e-04 -10 10000 1 2 total P2 -1.0336618e-04 1.8431631e-04 -11 10000 1 2 total P3 2.3429062e-04 1.2817311e-04 -4 10000 2 1 total P0 9.2463991e-04 9.2488346e-04 -5 10000 2 1 total P1 -7.6770497e-04 7.6790719e-04 -6 10000 2 1 total P2 4.9378887e-04 4.9391894e-04 -7 10000 2 1 total P3 -1.7149723e-04 1.7154240e-04 -0 10000 2 2 total P0 4.1146476e-01 1.5244935e-02 -1 10000 2 2 total P1 1.6481728e-02 4.5017280e-03 -2 10000 2 2 total P2 6.3714905e-03 1.0550749e-02 -3 10000 2 2 total P3 -1.0499122e-02 1.0438188e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.8419946e-01 2.7001014e-02 -13 10000 1 1 total P1 5.1870284e-02 6.9825489e-03 -14 10000 1 1 total P2 2.0068845e-02 2.8464952e-03 -15 10000 1 1 total P3 9.4777157e-03 2.2335198e-03 -8 10000 1 2 total P0 9.8893039e-04 4.8241945e-04 -9 10000 1 2 total P1 -2.0723460e-04 1.4901078e-04 -10 10000 1 2 total P2 -1.0336618e-04 1.8431631e-04 -11 10000 1 2 total P3 2.3429062e-04 1.2817311e-04 -4 10000 2 1 total P0 9.2463991e-04 9.2488346e-04 -5 10000 2 1 total P1 -7.6770497e-04 7.6790719e-04 -6 10000 2 1 total P2 4.9378887e-04 4.9391894e-04 -7 10000 2 1 total P3 -1.7149723e-04 1.7154240e-04 -0 10000 2 2 total P0 4.1146476e-01 1.5244935e-02 -1 10000 2 2 total P1 1.6481728e-02 4.5017280e-03 -2 10000 2 2 total P2 6.3714905e-03 1.0550749e-02 -3 10000 2 2 total P3 -1.0499122e-02 1.0438188e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.0000000e+00 7.8516455e-02 -2 10000 1 2 total 1.0000000e+00 6.8718427e-01 -1 10000 2 1 total 1.0000000e+00 1.4142136e+00 -0 10000 2 2 total 1.0000000e+00 4.1130349e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.0142428e-02 3.1490917e-03 -2 10000 1 2 total 0.0000000e+00 0.0000000e+00 -1 10000 2 1 total 4.5436647e-01 2.7425507e-02 -0 10000 2 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.0000000e+00 4.6070523e-02 -0 10000 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.0000000e+00 5.1471457e-02 -0 10000 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.7515211e+07 1.4381753e+06 -0 10000 2 total 3.5017200e+05 2.9945932e+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.9239222e-02 1.3095060e-03 -0 10000 2 total 4.6671903e-01 4.1410870e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.1373767e-01 1.5581902e-02 -0 10001 2 total 3.0082140e-01 2.8052448e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.7322787e-01 3.3115366e-02 -0 10001 2 total 3.1237484e-01 4.9605832e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.7322787e-01 3.3115366e-02 -0 10001 2 total 3.1237484e-01 4.9605832e-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.5749914e-03 3.2254789e-04 -0 10001 2 total 5.4003788e-03 6.1813831e-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.5749914e-03 3.2254789e-04 -0 10001 2 total 5.4003788e-03 6.1813831e-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.1216268e-01 1.5321923e-02 -0 10001 2 total 2.9542102e-01 2.7445489e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.1012074e-01 3.3788106e-02 -0 10001 2 total 2.9626427e-01 4.3792226e-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.1012074e-01 3.3788106e-02 -13 10001 1 1 total P1 3.8229590e-02 8.4839971e-03 -14 10001 1 1 total P2 2.0744942e-02 4.6956107e-03 -15 10001 1 1 total P3 7.9642968e-03 3.7316226e-03 -8 10001 1 2 total P0 0.0000000e+00 0.0000000e+00 -9 10001 1 2 total P1 0.0000000e+00 0.0000000e+00 -10 10001 1 2 total P2 0.0000000e+00 0.0000000e+00 -11 10001 1 2 total P3 0.0000000e+00 0.0000000e+00 -4 10001 2 1 total P0 0.0000000e+00 0.0000000e+00 -5 10001 2 1 total P1 0.0000000e+00 0.0000000e+00 -6 10001 2 1 total P2 0.0000000e+00 0.0000000e+00 -7 10001 2 1 total P3 0.0000000e+00 0.0000000e+00 -0 10001 2 2 total P0 2.9626427e-01 4.3792226e-02 -1 10001 2 2 total P1 -1.1213636e-02 1.6180366e-02 -2 10001 2 2 total P2 8.8365663e-03 1.1503964e-02 -3 10001 2 2 total P3 -3.2700673e-03 7.3288458e-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.1012074e-01 3.3788106e-02 -13 10001 1 1 total P1 3.8229590e-02 8.4839971e-03 -14 10001 1 1 total P2 2.0744942e-02 4.6956107e-03 -15 10001 1 1 total P3 7.9642968e-03 3.7316226e-03 -8 10001 1 2 total P0 0.0000000e+00 0.0000000e+00 -9 10001 1 2 total P1 0.0000000e+00 0.0000000e+00 -10 10001 1 2 total P2 0.0000000e+00 0.0000000e+00 -11 10001 1 2 total P3 0.0000000e+00 0.0000000e+00 -4 10001 2 1 total P0 0.0000000e+00 0.0000000e+00 -5 10001 2 1 total P1 0.0000000e+00 0.0000000e+00 -6 10001 2 1 total P2 0.0000000e+00 0.0000000e+00 -7 10001 2 1 total P3 0.0000000e+00 0.0000000e+00 -0 10001 2 2 total P0 2.9626427e-01 4.3792226e-02 -1 10001 2 2 total P1 -1.1213636e-02 1.6180366e-02 -2 10001 2 2 total P2 8.8365663e-03 1.1503964e-02 -3 10001 2 2 total P3 -3.2700673e-03 7.3288458e-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.0000000e+00 1.0877870e-01 -2 10001 1 2 total 0.0000000e+00 0.0000000e+00 -1 10001 2 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 2 total 1.0000000e+00 1.4242717e-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.0000000e+00 0.0000000e+00 -2 10001 1 2 total 0.0000000e+00 0.0000000e+00 -1 10001 2 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.6677839e+07 1.2664443e+06 -0 10001 2 total 3.3495337e+05 3.8336782e+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.6457226e-01 3.1214752e-02 -0 10002 2 total 2.0523840e+00 2.2434291e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.9056526e-01 2.3851855e-02 -0 10002 2 total 1.5164380e+00 2.3519727e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.9056526e-01 2.3851855e-02 -0 10002 2 total 1.5164380e+00 2.3519727e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.9039952e-04 4.4147569e-05 -0 10002 2 total 3.1687257e-02 3.7465586e-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.9039952e-04 4.4147569e-05 -0 10002 2 total 3.1687257e-02 3.7465586e-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.6388186e-01 3.1172684e-02 -0 10002 2 total 2.0206968e+00 2.2060445e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.7126920e-01 2.6186371e-02 -0 10002 2 total 2.0353883e+00 2.5806033e-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.3990148e-01 2.4709123e-02 -13 10002 1 1 total P1 3.8116745e-01 1.6243265e-02 -14 10002 1 1 total P2 1.5239190e-01 8.1562777e-03 -15 10002 1 1 total P3 9.1480223e-03 3.8885621e-03 -8 10002 1 2 total P0 3.1367720e-02 1.7281129e-03 -9 10002 1 2 total P1 8.7577232e-03 9.2567050e-04 -10 10002 1 2 total P2 -2.5679011e-03 1.0139848e-03 -11 10002 1 2 total P3 -3.7848029e-03 8.1707557e-04 -4 10002 2 1 total P0 4.4334313e-04 4.4485039e-04 -5 10002 2 1 total P1 3.9996041e-04 4.0132018e-04 -6 10002 2 1 total P2 3.1956271e-04 3.2064914e-04 -7 10002 2 1 total P3 2.1384697e-04 2.1457400e-04 -0 10002 2 2 total P0 2.0349450e+00 2.5779989e-01 -1 10002 2 2 total P1 5.0994051e-01 5.1235906e-02 -2 10002 2 2 total P2 1.1117461e-01 1.3019817e-02 -3 10002 2 2 total P3 2.4988436e-02 8.3123526e-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.3990148e-01 2.4709123e-02 -13 10002 1 1 total P1 3.8116745e-01 1.6243265e-02 -14 10002 1 1 total P2 1.5239190e-01 8.1562777e-03 -15 10002 1 1 total P3 9.1480223e-03 3.8885621e-03 -8 10002 1 2 total P0 3.1367720e-02 1.7281129e-03 -9 10002 1 2 total P1 8.7577232e-03 9.2567050e-04 -10 10002 1 2 total P2 -2.5679011e-03 1.0139848e-03 -11 10002 1 2 total P3 -3.7848029e-03 8.1707557e-04 -4 10002 2 1 total P0 4.4334313e-04 4.4485039e-04 -5 10002 2 1 total P1 3.9996041e-04 4.0132018e-04 -6 10002 2 1 total P2 3.1956271e-04 3.2064914e-04 -7 10002 2 1 total P3 2.1384697e-04 2.1457400e-04 -0 10002 2 2 total P0 2.0349450e+00 2.5779989e-01 -1 10002 2 2 total P1 5.0994051e-01 5.1235906e-02 -2 10002 2 2 total P2 1.1117461e-01 1.3019817e-02 -3 10002 2 2 total P3 2.4988436e-02 8.3123526e-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.0000000e+00 3.8609191e-02 -2 10002 1 2 total 1.0000000e+00 6.7667348e-02 -1 10002 2 1 total 1.0000000e+00 1.4142136e+00 -0 10002 2 2 total 1.0000000e+00 1.3592921e-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.0000000e+00 0.0000000e+00 -2 10002 1 2 total 0.0000000e+00 0.0000000e+00 -1 10002 2 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.6605563e+07 1.0424355e+06 -0 10002 2 total 3.2841204e+05 3.8828436e+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.148255e-01 2.279291e-02 +0 10000 2 total 6.601699e-01 4.751893e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596e-01 2.549360e-02 +0 10000 2 total 6.476477e-01 2.370374e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596e-01 2.549360e-02 +0 10000 2 total 6.476477e-01 2.370374e-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.740784e-02 2.692497e-03 +0 10000 2 total 2.645107e-01 2.336708e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.984455e-02 2.643304e-03 +0 10000 2 total 7.171935e-02 2.520786e-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.563295e-03 5.084837e-04 +0 10000 2 total 1.927914e-01 1.710592e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.943174e-02 1.322976e-03 +0 10000 2 total 4.697748e-01 4.168200e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.474570e+00 9.923532e-02 +0 10000 2 total 3.728690e+01 3.308378e+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.874176e-01 2.062573e-02 +0 10000 2 total 3.956592e-01 2.512506e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.851884e-01 2.694562e-02 +0 10000 2 total 4.123894e-01 1.542528e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841995e-01 2.700101e-02 +13 10000 1 1 total P1 5.187028e-02 6.982549e-03 +14 10000 1 1 total P2 2.006885e-02 2.846495e-03 +15 10000 1 1 total P3 9.477716e-03 2.233520e-03 +8 10000 1 2 total P0 9.889304e-04 4.824194e-04 +9 10000 1 2 total P1 -2.072346e-04 1.490108e-04 +10 10000 1 2 total P2 -1.033662e-04 1.843163e-04 +11 10000 1 2 total P3 2.342906e-04 1.281731e-04 +4 10000 2 1 total P0 9.246399e-04 9.248835e-04 +5 10000 2 1 total P1 -7.677050e-04 7.679072e-04 +6 10000 2 1 total P2 4.937889e-04 4.939189e-04 +7 10000 2 1 total P3 -1.714972e-04 1.715424e-04 +0 10000 2 2 total P0 4.114648e-01 1.524494e-02 +1 10000 2 2 total P1 1.648173e-02 4.501728e-03 +2 10000 2 2 total P2 6.371490e-03 1.055075e-02 +3 10000 2 2 total P3 -1.049912e-02 1.043819e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841995e-01 2.700101e-02 +13 10000 1 1 total P1 5.187028e-02 6.982549e-03 +14 10000 1 1 total P2 2.006885e-02 2.846495e-03 +15 10000 1 1 total P3 9.477716e-03 2.233520e-03 +8 10000 1 2 total P0 9.889304e-04 4.824194e-04 +9 10000 1 2 total P1 -2.072346e-04 1.490108e-04 +10 10000 1 2 total P2 -1.033662e-04 1.843163e-04 +11 10000 1 2 total P3 2.342906e-04 1.281731e-04 +4 10000 2 1 total P0 9.246399e-04 9.248835e-04 +5 10000 2 1 total P1 -7.677050e-04 7.679072e-04 +6 10000 2 1 total P2 4.937889e-04 4.939189e-04 +7 10000 2 1 total P3 -1.714972e-04 1.715424e-04 +0 10000 2 2 total P0 4.114648e-01 1.524494e-02 +1 10000 2 2 total P1 1.648173e-02 4.501728e-03 +2 10000 2 2 total P2 6.371490e-03 1.055075e-02 +3 10000 2 2 total P3 -1.049912e-02 1.043819e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.000000e+00 7.851646e-02 +2 10000 1 2 total 1.000000e+00 6.871843e-01 +1 10000 2 1 total 1.000000e+00 1.414214e+00 +0 10000 2 2 total 1.000000e+00 4.113035e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.014243e-02 3.149092e-03 +2 10000 1 2 total 0.000000e+00 0.000000e+00 +1 10000 2 1 total 4.543665e-01 2.742551e-02 +0 10000 2 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000e+00 4.607052e-02 +0 10000 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000e+00 5.147146e-02 +0 10000 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.751521e+07 1.438175e+06 +0 10000 2 total 3.501720e+05 2.994593e+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.923922e-02 1.309506e-03 +0 10000 2 total 4.667190e-01 4.141087e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.137377e-01 1.558190e-02 +0 10001 2 total 3.008214e-01 2.805245e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732279e-01 3.311537e-02 +0 10001 2 total 3.123748e-01 4.960583e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732279e-01 3.311537e-02 +0 10001 2 total 3.123748e-01 4.960583e-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991e-03 3.225479e-04 +0 10001 2 total 5.400379e-03 6.181383e-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991e-03 3.225479e-04 +0 10001 2 total 5.400379e-03 6.181383e-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.121627e-01 1.532192e-02 +0 10001 2 total 2.954210e-01 2.744549e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.101207e-01 3.378811e-02 +0 10001 2 total 2.962643e-01 4.379223e-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207e-01 3.378811e-02 +13 10001 1 1 total P1 3.822959e-02 8.483997e-03 +14 10001 1 1 total P2 2.074494e-02 4.695611e-03 +15 10001 1 1 total P3 7.964297e-03 3.731623e-03 +8 10001 1 2 total P0 0.000000e+00 0.000000e+00 +9 10001 1 2 total P1 0.000000e+00 0.000000e+00 +10 10001 1 2 total P2 0.000000e+00 0.000000e+00 +11 10001 1 2 total P3 0.000000e+00 0.000000e+00 +4 10001 2 1 total P0 0.000000e+00 0.000000e+00 +5 10001 2 1 total P1 0.000000e+00 0.000000e+00 +6 10001 2 1 total P2 0.000000e+00 0.000000e+00 +7 10001 2 1 total P3 0.000000e+00 0.000000e+00 +0 10001 2 2 total P0 2.962643e-01 4.379223e-02 +1 10001 2 2 total P1 -1.121364e-02 1.618037e-02 +2 10001 2 2 total P2 8.836566e-03 1.150396e-02 +3 10001 2 2 total P3 -3.270067e-03 7.328846e-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207e-01 3.378811e-02 +13 10001 1 1 total P1 3.822959e-02 8.483997e-03 +14 10001 1 1 total P2 2.074494e-02 4.695611e-03 +15 10001 1 1 total P3 7.964297e-03 3.731623e-03 +8 10001 1 2 total P0 0.000000e+00 0.000000e+00 +9 10001 1 2 total P1 0.000000e+00 0.000000e+00 +10 10001 1 2 total P2 0.000000e+00 0.000000e+00 +11 10001 1 2 total P3 0.000000e+00 0.000000e+00 +4 10001 2 1 total P0 0.000000e+00 0.000000e+00 +5 10001 2 1 total P1 0.000000e+00 0.000000e+00 +6 10001 2 1 total P2 0.000000e+00 0.000000e+00 +7 10001 2 1 total P3 0.000000e+00 0.000000e+00 +0 10001 2 2 total P0 2.962643e-01 4.379223e-02 +1 10001 2 2 total P1 -1.121364e-02 1.618037e-02 +2 10001 2 2 total P2 8.836566e-03 1.150396e-02 +3 10001 2 2 total P3 -3.270067e-03 7.328846e-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.000000e+00 1.087787e-01 +2 10001 1 2 total 0.000000e+00 0.000000e+00 +1 10001 2 1 total 0.000000e+00 0.000000e+00 +0 10001 2 2 total 1.000000e+00 1.424272e-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.000000e+00 0.000000e+00 +2 10001 1 2 total 0.000000e+00 0.000000e+00 +1 10001 2 1 total 0.000000e+00 0.000000e+00 +0 10001 2 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.667784e+07 1.266444e+06 +0 10001 2 total 3.349534e+05 3.833678e+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.645723e-01 3.121475e-02 +0 10002 2 total 2.052384e+00 2.243429e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905653e-01 2.385185e-02 +0 10002 2 total 1.516438e+00 2.351973e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905653e-01 2.385185e-02 +0 10002 2 total 1.516438e+00 2.351973e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995e-04 4.414757e-05 +0 10002 2 total 3.168726e-02 3.746559e-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995e-04 4.414757e-05 +0 10002 2 total 3.168726e-02 3.746559e-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.638819e-01 3.117268e-02 +0 10002 2 total 2.020697e+00 2.206045e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.712692e-01 2.618637e-02 +0 10002 2 total 2.035388e+00 2.580603e-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399015e-01 2.470912e-02 +13 10002 1 1 total P1 3.811674e-01 1.624326e-02 +14 10002 1 1 total P2 1.523919e-01 8.156278e-03 +15 10002 1 1 total P3 9.148022e-03 3.888562e-03 +8 10002 1 2 total P0 3.136772e-02 1.728113e-03 +9 10002 1 2 total P1 8.757723e-03 9.256705e-04 +10 10002 1 2 total P2 -2.567901e-03 1.013985e-03 +11 10002 1 2 total P3 -3.784803e-03 8.170756e-04 +4 10002 2 1 total P0 4.433431e-04 4.448504e-04 +5 10002 2 1 total P1 3.999604e-04 4.013202e-04 +6 10002 2 1 total P2 3.195627e-04 3.206491e-04 +7 10002 2 1 total P3 2.138470e-04 2.145740e-04 +0 10002 2 2 total P0 2.034945e+00 2.577999e-01 +1 10002 2 2 total P1 5.099405e-01 5.123591e-02 +2 10002 2 2 total P2 1.111746e-01 1.301982e-02 +3 10002 2 2 total P3 2.498844e-02 8.312353e-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399015e-01 2.470912e-02 +13 10002 1 1 total P1 3.811674e-01 1.624326e-02 +14 10002 1 1 total P2 1.523919e-01 8.156278e-03 +15 10002 1 1 total P3 9.148022e-03 3.888562e-03 +8 10002 1 2 total P0 3.136772e-02 1.728113e-03 +9 10002 1 2 total P1 8.757723e-03 9.256705e-04 +10 10002 1 2 total P2 -2.567901e-03 1.013985e-03 +11 10002 1 2 total P3 -3.784803e-03 8.170756e-04 +4 10002 2 1 total P0 4.433431e-04 4.448504e-04 +5 10002 2 1 total P1 3.999604e-04 4.013202e-04 +6 10002 2 1 total P2 3.195627e-04 3.206491e-04 +7 10002 2 1 total P3 2.138470e-04 2.145740e-04 +0 10002 2 2 total P0 2.034945e+00 2.577999e-01 +1 10002 2 2 total P1 5.099405e-01 5.123591e-02 +2 10002 2 2 total P2 1.111746e-01 1.301982e-02 +3 10002 2 2 total P3 2.498844e-02 8.312353e-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.000000e+00 3.860919e-02 +2 10002 1 2 total 1.000000e+00 6.766735e-02 +1 10002 2 1 total 1.000000e+00 1.414214e+00 +0 10002 2 2 total 1.000000e+00 1.359292e-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.000000e+00 0.000000e+00 +2 10002 1 2 total 0.000000e+00 0.000000e+00 +1 10002 2 1 total 0.000000e+00 0.000000e+00 +0 10002 2 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.660556e+07 1.042436e+06 +0 10002 2 total 3.284120e+05 3.882844e+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 53f29f1d5f..66d388716e 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -400e4cca1866a1a56b20c3d438a0dd518b069f24ce5f7b29d012d2f5898d36560876ba0ced28e94b1efabd5c9a26560cb9fc85372f7a608dec0ac2e93c558184 \ No newline at end of file +9620ed88224f5a4013b1ff47a1286ed166f84847b97d145e52f6f71eb441c2abd1ad5baa91e0b1cac802daa8610ee388d23dcbc43d834b73fb35a16972d09788 \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index d65dbd2046..91562d8e15 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.0000000e+02 0.0000000e+00 7.0000000e+02 8.0000000e+02] + Temperature = [5.000000e+02 0.000000e+00 7.000000e+02 8.000000e+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index b12caac5df..e00e4ea137 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -901e96de1e670c2a0b58905a6d1d249b489d743483e8ff3fcb51c833ea356cbebe6206bf80c2b23b850a5225b540057257b3a1e3699ec5e6c4a578772382a8bf \ No newline at end of file +230817bd2cfcceebf4f5317432130df3cc43bff45fbab7f145a6f390a19b0bf103fbf4d6363e77cfe015396a846682741f649a9c29e04590796e4816831b2b5d \ 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 200fddbeb0..6ef9ffeccd 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] +[[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] ..., - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] ..., - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] ..., - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] ..., - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] ..., - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]]] \ No newline at end of file + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index d440a48d78..bde708b808 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -11,12 +11,12 @@ import sys import numpy as np import pandas as pd -# Require numpy and pandas to print output in scientific notation with 8 +# Require numpy and pandas to print output in scientific notation with 7 # significant figures. This is needed to avoid round off error when large # numbers are printed, which can cause tests to fail for different build # configurations. -np.set_printoptions(formatter={'float': '{:.7e}'.format}) -pd.options.display.float_format = '{:.7e}'.format +np.set_printoptions(formatter={'float': '{:.6e}'.format}) +pd.options.display.float_format = '{:.6e}'.format sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From 27b70026926b6d854e7f8aa434bc28590cb51460 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Wed, 13 Jul 2016 10:26:31 -0600 Subject: [PATCH 153/417] changed number of sig figs to 6 --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 312 +++++------ .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 6 +- 9 files changed, 692 insertions(+), 692 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index fbdab856f8..8a930b2507 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.536244e-01 2.105270e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008522e-01 2.285755e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008522e-01 2.285755e-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.490346e-02 4.312761e-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.804807e-02 4.579964e-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.685539e-02 2.622160e-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.064929e-02 6.409875e-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.137955e+00 5.073638e-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.887210e-01 1.783043e-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.893036e-01 2.307554e-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893036e-01 2.314560e-02 -1 10000 1 1 total P1 4.622442e-02 5.907170e-03 -2 10000 1 1 total P2 1.798359e-02 2.882972e-03 -3 10000 1 1 total P3 6.628374e-03 2.457109e-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893036e-01 2.314560e-02 -1 10000 1 1 total P1 4.622442e-02 5.907170e-03 -2 10000 1 1 total P2 1.798359e-02 2.882972e-03 -3 10000 1 1 total P3 6.628374e-03 2.457109e-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.000000e+00 6.611082e-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.583502e-02 5.591825e-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000e+00 4.607052e-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000e+00 5.147146e-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.001309e+06 1.462166e+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.000398e-02 6.366908e-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.115941e-01 1.379317e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792551e-01 2.918950e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792551e-01 2.918950e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846e-03 2.863341e-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846e-03 2.863341e-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.093843e-01 1.355127e-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.079873e-01 2.930809e-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873e-01 2.930809e-02 -1 10001 1 1 total P1 3.061715e-02 7.464456e-03 -2 10001 1 1 total P2 1.891149e-02 4.322828e-03 -3 10001 1 1 total P3 6.234618e-03 3.338202e-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873e-01 2.930809e-02 -1 10001 1 1 total P1 3.061715e-02 7.464456e-03 -2 10001 1 1 total P2 1.891149e-02 4.322828e-03 -3 10001 1 1 total P3 6.234618e-03 3.338202e-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.000000e+00 9.503872e-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.833261e+06 1.663552e+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.049988e-01 4.396449e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991840e-01 4.091412e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991840e-01 4.091412e-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341e-03 5.545244e-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341e-03 5.545244e-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.989385e-01 4.349298e-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.034147e-01 4.395874e-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034147e-01 4.358599e-02 -1 10002 1 1 total P1 4.104174e-01 1.587722e-02 -2 10002 1 1 total P2 1.433010e-01 7.187378e-03 -3 10002 1 1 total P3 8.739426e-03 3.571441e-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034147e-01 4.358599e-02 -1 10002 1 1 total P1 4.104174e-01 1.587722e-02 -2 10002 1 1 total P2 1.433010e-01 7.187378e-03 -3 10002 1 1 total P3 8.739426e-03 3.571441e-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.000000e+00 5.686673e-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.732200e+06 1.596914e+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.53624e-01 2.10527e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.00852e-01 2.28576e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.00852e-01 2.28576e-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.49035e-02 4.31276e-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.80481e-02 4.57996e-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.68554e-02 2.62216e-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.06493e-02 6.40987e-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.13796e+00 5.07364e-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.88721e-01 1.78304e-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.89304e-01 2.30755e-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.89304e-01 2.31456e-02 +1 10000 1 1 total P1 4.62244e-02 5.90717e-03 +2 10000 1 1 total P2 1.79836e-02 2.88297e-03 +3 10000 1 1 total P3 6.62837e-03 2.45711e-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.89304e-01 2.31456e-02 +1 10000 1 1 total P1 4.62244e-02 5.90717e-03 +2 10000 1 1 total P2 1.79836e-02 2.88297e-03 +3 10000 1 1 total P3 6.62837e-03 2.45711e-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.00000e+00 6.61108e-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.58350e-02 5.59182e-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.00000e+00 4.60705e-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.00000e+00 5.14715e-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.00131e+06 1.46217e+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.00040e-02 6.36691e-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.11594e-01 1.37932e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.79255e-01 2.91895e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.79255e-01 2.91895e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.20985e-03 2.86334e-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.20985e-03 2.86334e-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.09384e-01 1.35513e-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.07987e-01 2.93081e-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.07987e-01 2.93081e-02 +1 10001 1 1 total P1 3.06172e-02 7.46446e-03 +2 10001 1 1 total P2 1.89115e-02 4.32283e-03 +3 10001 1 1 total P3 6.23462e-03 3.33820e-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.07987e-01 2.93081e-02 +1 10001 1 1 total P1 3.06172e-02 7.46446e-03 +2 10001 1 1 total P2 1.89115e-02 4.32283e-03 +3 10001 1 1 total P3 6.23462e-03 3.33820e-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.00000e+00 9.50387e-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.00000e+00 0.00000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.00000e+00 0.00000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.83326e+06 1.66355e+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.04999e-01 4.39645e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.99184e-01 4.09141e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.99184e-01 4.09141e-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.06034e-03 5.54524e-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.06034e-03 5.54524e-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.98938e-01 4.34930e-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.03415e-01 4.39587e-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.03415e-01 4.35860e-02 +1 10002 1 1 total P1 4.10417e-01 1.58772e-02 +2 10002 1 1 total P2 1.43301e-01 7.18738e-03 +3 10002 1 1 total P3 8.73943e-03 3.57144e-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.03415e-01 4.35860e-02 +1 10002 1 1 total P1 4.10417e-01 1.58772e-02 +2 10002 1 1 total P2 1.43301e-01 7.18738e-03 +3 10002 1 1 total P3 8.73943e-03 3.57144e-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.00000e+00 5.68667e-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.00000e+00 0.00000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.00000e+00 0.00000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.73220e+06 1.59691e+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000e+00 0.00000e+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 7b66c39e49..7cde7e3fe2 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.145934e+00 5.538217e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192e-01 5.206443e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192e-01 5.206443e-01 - 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 1.976221e-02 1.062876e-02 - 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 1.976221e-02 1.062876e-02 - 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.000000e+00 0.000000e+00 - 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.000000e+00 0.000000e+00 - 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.000000e+00 0.000000e+00 - 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 1.126172e+00 5.434400e-01 - 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 1.142547e+00 5.701314e-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547e+00 5.701314e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813e-01 2.163222e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018e-01 6.650377e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827e-02 2.462083e-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547e+00 5.701314e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813e-01 2.163222e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018e-01 6.650377e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827e-02 2.462083e-02 - 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 1.000000e+00 5.297173e-01 - 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.000000e+00 0.000000e+00 - 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.000000e+00 0.000000e+00 - 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.000000e+00 0.000000e+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457e+05 4.163977e+05 - 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.000000e+00 0.000000e+00 + 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 1.14593e+00 5.53822e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919e-01 5.20644e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919e-01 5.20644e-01 + 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 1.97622e-02 1.06288e-02 + 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 1.97622e-02 1.06288e-02 + 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.00000e+00 0.00000e+00 + 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.00000e+00 0.00000e+00 + 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.00000e+00 0.00000e+00 + 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 1.12617e+00 5.43440e-01 + 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 1.14255e+00 5.70131e-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14255e+00 5.70131e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381e-01 2.16322e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41202e-01 6.65038e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92283e-02 2.46208e-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14255e+00 5.70131e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381e-01 2.16322e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41202e-01 6.65038e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92283e-02 2.46208e-02 + 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 1.00000e+00 5.29717e-01 + 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.00000e+00 0.00000e+00 + 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.00000e+00 0.00000e+00 + 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.00000e+00 0.00000e+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.74246e+05 4.16398e+05 + 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.00000e+00 0.00000e+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 3160e850fd..648193a168 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,222 @@ domain=10000 type=total -[4.148255e-01 6.601699e-01] -[2.279291e-02 4.751893e-02] +[4.14825e-01 6.60170e-01] +[2.27929e-02 4.75189e-02] domain=10000 type=transport -[3.568596e-01 6.476477e-01] -[2.549360e-02 2.370374e-02] +[3.56860e-01 6.47648e-01] +[2.54936e-02 2.37037e-02] domain=10000 type=nu-transport -[3.568596e-01 6.476477e-01] -[2.549360e-02 2.370374e-02] +[3.56860e-01 6.47648e-01] +[2.54936e-02 2.37037e-02] domain=10000 type=absorption -[2.740784e-02 2.645107e-01] -[2.692497e-03 2.336708e-02] +[2.74078e-02 2.64511e-01] +[2.69250e-03 2.33671e-02] domain=10000 type=capture -[1.984455e-02 7.171935e-02] -[2.643304e-03 2.520786e-02] +[1.98445e-02 7.17194e-02] +[2.64330e-03 2.52079e-02] domain=10000 type=fission -[7.563295e-03 1.927914e-01] -[5.084837e-04 1.710592e-02] +[7.56329e-03 1.92791e-01] +[5.08484e-04 1.71059e-02] domain=10000 type=nu-fission -[1.943174e-02 4.697748e-01] -[1.322976e-03 4.168200e-02] +[1.94317e-02 4.69775e-01] +[1.32298e-03 4.16820e-02] domain=10000 type=kappa-fission -[1.474570e+00 3.728690e+01] -[9.923532e-02 3.308378e+00] +[1.47457e+00 3.72869e+01] +[9.92353e-02 3.30838e+00] domain=10000 type=scatter -[3.874176e-01 3.956592e-01] -[2.062573e-02 2.512506e-02] +[3.87418e-01 3.95659e-01] +[2.06257e-02 2.51251e-02] domain=10000 type=nu-scatter -[3.851884e-01 4.123894e-01] -[2.694562e-02 1.542528e-02] +[3.85188e-01 4.12389e-01] +[2.69456e-02 1.54253e-02] domain=10000 type=scatter matrix -[[[3.841995e-01 5.187028e-02 2.006885e-02 9.477716e-03] - [9.889304e-04 -2.072346e-04 -1.033662e-04 2.342906e-04]] +[[[3.84199e-01 5.18703e-02 2.00688e-02 9.47772e-03] + [9.88930e-04 -2.07235e-04 -1.03366e-04 2.34291e-04]] - [[9.246399e-04 -7.677050e-04 4.937889e-04 -1.714972e-04] - [4.114648e-01 1.648173e-02 6.371490e-03 -1.049912e-02]]] -[[[2.700101e-02 6.982549e-03 2.846495e-03 2.233520e-03] - [4.824194e-04 1.490108e-04 1.843163e-04 1.281731e-04]] + [[9.24640e-04 -7.67705e-04 4.93789e-04 -1.71497e-04] + [4.11465e-01 1.64817e-02 6.37149e-03 -1.04991e-02]]] +[[[2.70010e-02 6.98255e-03 2.84650e-03 2.23352e-03] + [4.82419e-04 1.49011e-04 1.84316e-04 1.28173e-04]] - [[9.248835e-04 7.679072e-04 4.939189e-04 1.715424e-04] - [1.524494e-02 4.501728e-03 1.055075e-02 1.043819e-02]]] + [[9.24883e-04 7.67907e-04 4.93919e-04 1.71542e-04] + [1.52449e-02 4.50173e-03 1.05507e-02 1.04382e-02]]] domain=10000 type=nu-scatter matrix -[[[3.841995e-01 5.187028e-02 2.006885e-02 9.477716e-03] - [9.889304e-04 -2.072346e-04 -1.033662e-04 2.342906e-04]] +[[[3.84199e-01 5.18703e-02 2.00688e-02 9.47772e-03] + [9.88930e-04 -2.07235e-04 -1.03366e-04 2.34291e-04]] - [[9.246399e-04 -7.677050e-04 4.937889e-04 -1.714972e-04] - [4.114648e-01 1.648173e-02 6.371490e-03 -1.049912e-02]]] -[[[2.700101e-02 6.982549e-03 2.846495e-03 2.233520e-03] - [4.824194e-04 1.490108e-04 1.843163e-04 1.281731e-04]] + [[9.24640e-04 -7.67705e-04 4.93789e-04 -1.71497e-04] + [4.11465e-01 1.64817e-02 6.37149e-03 -1.04991e-02]]] +[[[2.70010e-02 6.98255e-03 2.84650e-03 2.23352e-03] + [4.82419e-04 1.49011e-04 1.84316e-04 1.28173e-04]] - [[9.248835e-04 7.679072e-04 4.939189e-04 1.715424e-04] - [1.524494e-02 4.501728e-03 1.055075e-02 1.043819e-02]]] + [[9.24883e-04 7.67907e-04 4.93919e-04 1.71542e-04] + [1.52449e-02 4.50173e-03 1.05507e-02 1.04382e-02]]] domain=10000 type=multiplicity matrix -[[1.000000e+00 1.000000e+00] - [1.000000e+00 1.000000e+00]] -[[7.851646e-02 6.871843e-01] - [1.414214e+00 4.113035e-02]] +[[1.00000e+00 1.00000e+00] + [1.00000e+00 1.00000e+00]] +[[7.85165e-02 6.87184e-01] + [1.41421e+00 4.11303e-02]] domain=10000 type=nu-fission matrix -[[2.014243e-02 0.000000e+00] - [4.543665e-01 0.000000e+00]] -[[3.149092e-03 0.000000e+00] - [2.742551e-02 0.000000e+00]] +[[2.01424e-02 0.00000e+00] + [4.54366e-01 0.00000e+00]] +[[3.14909e-03 0.00000e+00] + [2.74255e-02 0.00000e+00]] domain=10000 type=chi -[1.000000e+00 0.000000e+00] -[4.607052e-02 0.000000e+00] +[1.00000e+00 0.00000e+00] +[4.60705e-02 0.00000e+00] domain=10000 type=chi-prompt -[1.000000e+00 0.000000e+00] -[5.147146e-02 0.000000e+00] +[1.00000e+00 0.00000e+00] +[5.14715e-02 0.00000e+00] domain=10000 type=velocity -[1.751521e+07 3.501720e+05] -[1.438175e+06 2.994593e+04] +[1.75152e+07 3.50172e+05] +[1.43818e+06 2.99459e+04] domain=10000 type=prompt-nu-fission -[1.923922e-02 4.667190e-01] -[1.309506e-03 4.141087e-02] +[1.92392e-02 4.66719e-01] +[1.30951e-03 4.14109e-02] domain=10001 type=total -[3.137377e-01 3.008214e-01] -[1.558190e-02 2.805245e-02] +[3.13738e-01 3.00821e-01] +[1.55819e-02 2.80524e-02] domain=10001 type=transport -[2.732279e-01 3.123748e-01] -[3.311537e-02 4.960583e-02] +[2.73228e-01 3.12375e-01] +[3.31154e-02 4.96058e-02] domain=10001 type=nu-transport -[2.732279e-01 3.123748e-01] -[3.311537e-02 4.960583e-02] +[2.73228e-01 3.12375e-01] +[3.31154e-02 4.96058e-02] domain=10001 type=absorption -[1.574991e-03 5.400379e-03] -[3.225479e-04 6.181383e-04] +[1.57499e-03 5.40038e-03] +[3.22548e-04 6.18138e-04] domain=10001 type=capture -[1.574991e-03 5.400379e-03] -[3.225479e-04 6.181383e-04] +[1.57499e-03 5.40038e-03] +[3.22548e-04 6.18138e-04] domain=10001 type=fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10001 type=nu-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10001 type=kappa-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10001 type=scatter -[3.121627e-01 2.954210e-01] -[1.532192e-02 2.744549e-02] +[3.12163e-01 2.95421e-01] +[1.53219e-02 2.74455e-02] domain=10001 type=nu-scatter -[3.101207e-01 2.962643e-01] -[3.378811e-02 4.379223e-02] +[3.10121e-01 2.96264e-01] +[3.37881e-02 4.37922e-02] domain=10001 type=scatter matrix -[[[3.101207e-01 3.822959e-02 2.074494e-02 7.964297e-03] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] +[[[3.10121e-01 3.82296e-02 2.07449e-02 7.96430e-03] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [2.962643e-01 -1.121364e-02 8.836566e-03 -3.270067e-03]]] -[[[3.378811e-02 8.483997e-03 4.695611e-03 3.731623e-03] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [2.96264e-01 -1.12136e-02 8.83657e-03 -3.27007e-03]]] +[[[3.37881e-02 8.48400e-03 4.69561e-03 3.73162e-03] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [4.379223e-02 1.618037e-02 1.150396e-02 7.328846e-03]]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [4.37922e-02 1.61804e-02 1.15040e-02 7.32885e-03]]] domain=10001 type=nu-scatter matrix -[[[3.101207e-01 3.822959e-02 2.074494e-02 7.964297e-03] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] +[[[3.10121e-01 3.82296e-02 2.07449e-02 7.96430e-03] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [2.962643e-01 -1.121364e-02 8.836566e-03 -3.270067e-03]]] -[[[3.378811e-02 8.483997e-03 4.695611e-03 3.731623e-03] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [2.96264e-01 -1.12136e-02 8.83657e-03 -3.27007e-03]]] +[[[3.37881e-02 8.48400e-03 4.69561e-03 3.73162e-03] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [4.379223e-02 1.618037e-02 1.150396e-02 7.328846e-03]]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [4.37922e-02 1.61804e-02 1.15040e-02 7.32885e-03]]] domain=10001 type=multiplicity matrix -[[1.000000e+00 0.000000e+00] - [0.000000e+00 1.000000e+00]] -[[1.087787e-01 0.000000e+00] - [0.000000e+00 1.424272e-01]] +[[1.00000e+00 0.00000e+00] + [0.00000e+00 1.00000e+00]] +[[1.08779e-01 0.00000e+00] + [0.00000e+00 1.42427e-01]] domain=10001 type=nu-fission matrix -[[0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00]] -[[0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00]] +[[0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00]] +[[0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00]] domain=10001 type=chi -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10001 type=chi-prompt -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10001 type=velocity -[1.667784e+07 3.349534e+05] -[1.266444e+06 3.833678e+04] +[1.66778e+07 3.34953e+05] +[1.26644e+06 3.83368e+04] domain=10001 type=prompt-nu-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10002 type=total -[6.645723e-01 2.052384e+00] -[3.121475e-02 2.243429e-01] +[6.64572e-01 2.05238e+00] +[3.12148e-02 2.24343e-01] domain=10002 type=transport -[2.905653e-01 1.516438e+00] -[2.385185e-02 2.351973e-01] +[2.90565e-01 1.51644e+00] +[2.38519e-02 2.35197e-01] domain=10002 type=nu-transport -[2.905653e-01 1.516438e+00] -[2.385185e-02 2.351973e-01] +[2.90565e-01 1.51644e+00] +[2.38519e-02 2.35197e-01] domain=10002 type=absorption -[6.903995e-04 3.168726e-02] -[4.414757e-05 3.746559e-03] +[6.90400e-04 3.16873e-02] +[4.41476e-05 3.74656e-03] domain=10002 type=capture -[6.903995e-04 3.168726e-02] -[4.414757e-05 3.746559e-03] +[6.90400e-04 3.16873e-02] +[4.41476e-05 3.74656e-03] domain=10002 type=fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10002 type=nu-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10002 type=kappa-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10002 type=scatter -[6.638819e-01 2.020697e+00] -[3.117268e-02 2.206045e-01] +[6.63882e-01 2.02070e+00] +[3.11727e-02 2.20604e-01] domain=10002 type=nu-scatter -[6.712692e-01 2.035388e+00] -[2.618637e-02 2.580603e-01] +[6.71269e-01 2.03539e+00] +[2.61864e-02 2.58060e-01] domain=10002 type=scatter matrix -[[[6.399015e-01 3.811674e-01 1.523919e-01 9.148022e-03] - [3.136772e-02 8.757723e-03 -2.567901e-03 -3.784803e-03]] +[[[6.39901e-01 3.81167e-01 1.52392e-01 9.14802e-03] + [3.13677e-02 8.75772e-03 -2.56790e-03 -3.78480e-03]] - [[4.433431e-04 3.999604e-04 3.195627e-04 2.138470e-04] - [2.034945e+00 5.099405e-01 1.111746e-01 2.498844e-02]]] -[[[2.470912e-02 1.624326e-02 8.156278e-03 3.888562e-03] - [1.728113e-03 9.256705e-04 1.013985e-03 8.170756e-04]] + [[4.43343e-04 3.99960e-04 3.19563e-04 2.13847e-04] + [2.03494e+00 5.09941e-01 1.11175e-01 2.49884e-02]]] +[[[2.47091e-02 1.62433e-02 8.15628e-03 3.88856e-03] + [1.72811e-03 9.25671e-04 1.01398e-03 8.17076e-04]] - [[4.448504e-04 4.013202e-04 3.206491e-04 2.145740e-04] - [2.577999e-01 5.123591e-02 1.301982e-02 8.312353e-03]]] + [[4.44850e-04 4.01320e-04 3.20649e-04 2.14574e-04] + [2.57800e-01 5.12359e-02 1.30198e-02 8.31235e-03]]] domain=10002 type=nu-scatter matrix -[[[6.399015e-01 3.811674e-01 1.523919e-01 9.148022e-03] - [3.136772e-02 8.757723e-03 -2.567901e-03 -3.784803e-03]] +[[[6.39901e-01 3.81167e-01 1.52392e-01 9.14802e-03] + [3.13677e-02 8.75772e-03 -2.56790e-03 -3.78480e-03]] - [[4.433431e-04 3.999604e-04 3.195627e-04 2.138470e-04] - [2.034945e+00 5.099405e-01 1.111746e-01 2.498844e-02]]] -[[[2.470912e-02 1.624326e-02 8.156278e-03 3.888562e-03] - [1.728113e-03 9.256705e-04 1.013985e-03 8.170756e-04]] + [[4.43343e-04 3.99960e-04 3.19563e-04 2.13847e-04] + [2.03494e+00 5.09941e-01 1.11175e-01 2.49884e-02]]] +[[[2.47091e-02 1.62433e-02 8.15628e-03 3.88856e-03] + [1.72811e-03 9.25671e-04 1.01398e-03 8.17076e-04]] - [[4.448504e-04 4.013202e-04 3.206491e-04 2.145740e-04] - [2.577999e-01 5.123591e-02 1.301982e-02 8.312353e-03]]] + [[4.44850e-04 4.01320e-04 3.20649e-04 2.14574e-04] + [2.57800e-01 5.12359e-02 1.30198e-02 8.31235e-03]]] domain=10002 type=multiplicity matrix -[[1.000000e+00 1.000000e+00] - [1.000000e+00 1.000000e+00]] -[[3.860919e-02 6.766735e-02] - [1.414214e+00 1.359292e-01]] +[[1.00000e+00 1.00000e+00] + [1.00000e+00 1.00000e+00]] +[[3.86092e-02 6.76673e-02] + [1.41421e+00 1.35929e-01]] domain=10002 type=nu-fission matrix -[[0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00]] -[[0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00]] +[[0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00]] +[[0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00]] domain=10002 type=chi -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10002 type=chi-prompt -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] domain=10002 type=velocity -[1.660556e+07 3.284120e+05] -[1.042436e+06 3.882844e+04] +[1.66056e+07 3.28412e+05] +[1.04244e+06 3.88284e+04] domain=10002 type=prompt-nu-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[0.00000e+00 0.00000e+00] +[0.00000e+00 0.00000e+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index fc42ccf494..246f1a963f 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.148255e-01 2.279291e-02 -0 10000 2 total 6.601699e-01 4.751893e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596e-01 2.549360e-02 -0 10000 2 total 6.476477e-01 2.370374e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596e-01 2.549360e-02 -0 10000 2 total 6.476477e-01 2.370374e-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.740784e-02 2.692497e-03 -0 10000 2 total 2.645107e-01 2.336708e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.984455e-02 2.643304e-03 -0 10000 2 total 7.171935e-02 2.520786e-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.563295e-03 5.084837e-04 -0 10000 2 total 1.927914e-01 1.710592e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.943174e-02 1.322976e-03 -0 10000 2 total 4.697748e-01 4.168200e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.474570e+00 9.923532e-02 -0 10000 2 total 3.728690e+01 3.308378e+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.874176e-01 2.062573e-02 -0 10000 2 total 3.956592e-01 2.512506e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.851884e-01 2.694562e-02 -0 10000 2 total 4.123894e-01 1.542528e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841995e-01 2.700101e-02 -13 10000 1 1 total P1 5.187028e-02 6.982549e-03 -14 10000 1 1 total P2 2.006885e-02 2.846495e-03 -15 10000 1 1 total P3 9.477716e-03 2.233520e-03 -8 10000 1 2 total P0 9.889304e-04 4.824194e-04 -9 10000 1 2 total P1 -2.072346e-04 1.490108e-04 -10 10000 1 2 total P2 -1.033662e-04 1.843163e-04 -11 10000 1 2 total P3 2.342906e-04 1.281731e-04 -4 10000 2 1 total P0 9.246399e-04 9.248835e-04 -5 10000 2 1 total P1 -7.677050e-04 7.679072e-04 -6 10000 2 1 total P2 4.937889e-04 4.939189e-04 -7 10000 2 1 total P3 -1.714972e-04 1.715424e-04 -0 10000 2 2 total P0 4.114648e-01 1.524494e-02 -1 10000 2 2 total P1 1.648173e-02 4.501728e-03 -2 10000 2 2 total P2 6.371490e-03 1.055075e-02 -3 10000 2 2 total P3 -1.049912e-02 1.043819e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841995e-01 2.700101e-02 -13 10000 1 1 total P1 5.187028e-02 6.982549e-03 -14 10000 1 1 total P2 2.006885e-02 2.846495e-03 -15 10000 1 1 total P3 9.477716e-03 2.233520e-03 -8 10000 1 2 total P0 9.889304e-04 4.824194e-04 -9 10000 1 2 total P1 -2.072346e-04 1.490108e-04 -10 10000 1 2 total P2 -1.033662e-04 1.843163e-04 -11 10000 1 2 total P3 2.342906e-04 1.281731e-04 -4 10000 2 1 total P0 9.246399e-04 9.248835e-04 -5 10000 2 1 total P1 -7.677050e-04 7.679072e-04 -6 10000 2 1 total P2 4.937889e-04 4.939189e-04 -7 10000 2 1 total P3 -1.714972e-04 1.715424e-04 -0 10000 2 2 total P0 4.114648e-01 1.524494e-02 -1 10000 2 2 total P1 1.648173e-02 4.501728e-03 -2 10000 2 2 total P2 6.371490e-03 1.055075e-02 -3 10000 2 2 total P3 -1.049912e-02 1.043819e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.000000e+00 7.851646e-02 -2 10000 1 2 total 1.000000e+00 6.871843e-01 -1 10000 2 1 total 1.000000e+00 1.414214e+00 -0 10000 2 2 total 1.000000e+00 4.113035e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.014243e-02 3.149092e-03 -2 10000 1 2 total 0.000000e+00 0.000000e+00 -1 10000 2 1 total 4.543665e-01 2.742551e-02 -0 10000 2 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000e+00 4.607052e-02 -0 10000 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000e+00 5.147146e-02 -0 10000 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.751521e+07 1.438175e+06 -0 10000 2 total 3.501720e+05 2.994593e+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.923922e-02 1.309506e-03 -0 10000 2 total 4.667190e-01 4.141087e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.137377e-01 1.558190e-02 -0 10001 2 total 3.008214e-01 2.805245e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732279e-01 3.311537e-02 -0 10001 2 total 3.123748e-01 4.960583e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732279e-01 3.311537e-02 -0 10001 2 total 3.123748e-01 4.960583e-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991e-03 3.225479e-04 -0 10001 2 total 5.400379e-03 6.181383e-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991e-03 3.225479e-04 -0 10001 2 total 5.400379e-03 6.181383e-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.121627e-01 1.532192e-02 -0 10001 2 total 2.954210e-01 2.744549e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.101207e-01 3.378811e-02 -0 10001 2 total 2.962643e-01 4.379223e-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207e-01 3.378811e-02 -13 10001 1 1 total P1 3.822959e-02 8.483997e-03 -14 10001 1 1 total P2 2.074494e-02 4.695611e-03 -15 10001 1 1 total P3 7.964297e-03 3.731623e-03 -8 10001 1 2 total P0 0.000000e+00 0.000000e+00 -9 10001 1 2 total P1 0.000000e+00 0.000000e+00 -10 10001 1 2 total P2 0.000000e+00 0.000000e+00 -11 10001 1 2 total P3 0.000000e+00 0.000000e+00 -4 10001 2 1 total P0 0.000000e+00 0.000000e+00 -5 10001 2 1 total P1 0.000000e+00 0.000000e+00 -6 10001 2 1 total P2 0.000000e+00 0.000000e+00 -7 10001 2 1 total P3 0.000000e+00 0.000000e+00 -0 10001 2 2 total P0 2.962643e-01 4.379223e-02 -1 10001 2 2 total P1 -1.121364e-02 1.618037e-02 -2 10001 2 2 total P2 8.836566e-03 1.150396e-02 -3 10001 2 2 total P3 -3.270067e-03 7.328846e-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207e-01 3.378811e-02 -13 10001 1 1 total P1 3.822959e-02 8.483997e-03 -14 10001 1 1 total P2 2.074494e-02 4.695611e-03 -15 10001 1 1 total P3 7.964297e-03 3.731623e-03 -8 10001 1 2 total P0 0.000000e+00 0.000000e+00 -9 10001 1 2 total P1 0.000000e+00 0.000000e+00 -10 10001 1 2 total P2 0.000000e+00 0.000000e+00 -11 10001 1 2 total P3 0.000000e+00 0.000000e+00 -4 10001 2 1 total P0 0.000000e+00 0.000000e+00 -5 10001 2 1 total P1 0.000000e+00 0.000000e+00 -6 10001 2 1 total P2 0.000000e+00 0.000000e+00 -7 10001 2 1 total P3 0.000000e+00 0.000000e+00 -0 10001 2 2 total P0 2.962643e-01 4.379223e-02 -1 10001 2 2 total P1 -1.121364e-02 1.618037e-02 -2 10001 2 2 total P2 8.836566e-03 1.150396e-02 -3 10001 2 2 total P3 -3.270067e-03 7.328846e-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.000000e+00 1.087787e-01 -2 10001 1 2 total 0.000000e+00 0.000000e+00 -1 10001 2 1 total 0.000000e+00 0.000000e+00 -0 10001 2 2 total 1.000000e+00 1.424272e-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.000000e+00 0.000000e+00 -2 10001 1 2 total 0.000000e+00 0.000000e+00 -1 10001 2 1 total 0.000000e+00 0.000000e+00 -0 10001 2 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.667784e+07 1.266444e+06 -0 10001 2 total 3.349534e+05 3.833678e+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.645723e-01 3.121475e-02 -0 10002 2 total 2.052384e+00 2.243429e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905653e-01 2.385185e-02 -0 10002 2 total 1.516438e+00 2.351973e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905653e-01 2.385185e-02 -0 10002 2 total 1.516438e+00 2.351973e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995e-04 4.414757e-05 -0 10002 2 total 3.168726e-02 3.746559e-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995e-04 4.414757e-05 -0 10002 2 total 3.168726e-02 3.746559e-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.638819e-01 3.117268e-02 -0 10002 2 total 2.020697e+00 2.206045e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.712692e-01 2.618637e-02 -0 10002 2 total 2.035388e+00 2.580603e-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399015e-01 2.470912e-02 -13 10002 1 1 total P1 3.811674e-01 1.624326e-02 -14 10002 1 1 total P2 1.523919e-01 8.156278e-03 -15 10002 1 1 total P3 9.148022e-03 3.888562e-03 -8 10002 1 2 total P0 3.136772e-02 1.728113e-03 -9 10002 1 2 total P1 8.757723e-03 9.256705e-04 -10 10002 1 2 total P2 -2.567901e-03 1.013985e-03 -11 10002 1 2 total P3 -3.784803e-03 8.170756e-04 -4 10002 2 1 total P0 4.433431e-04 4.448504e-04 -5 10002 2 1 total P1 3.999604e-04 4.013202e-04 -6 10002 2 1 total P2 3.195627e-04 3.206491e-04 -7 10002 2 1 total P3 2.138470e-04 2.145740e-04 -0 10002 2 2 total P0 2.034945e+00 2.577999e-01 -1 10002 2 2 total P1 5.099405e-01 5.123591e-02 -2 10002 2 2 total P2 1.111746e-01 1.301982e-02 -3 10002 2 2 total P3 2.498844e-02 8.312353e-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399015e-01 2.470912e-02 -13 10002 1 1 total P1 3.811674e-01 1.624326e-02 -14 10002 1 1 total P2 1.523919e-01 8.156278e-03 -15 10002 1 1 total P3 9.148022e-03 3.888562e-03 -8 10002 1 2 total P0 3.136772e-02 1.728113e-03 -9 10002 1 2 total P1 8.757723e-03 9.256705e-04 -10 10002 1 2 total P2 -2.567901e-03 1.013985e-03 -11 10002 1 2 total P3 -3.784803e-03 8.170756e-04 -4 10002 2 1 total P0 4.433431e-04 4.448504e-04 -5 10002 2 1 total P1 3.999604e-04 4.013202e-04 -6 10002 2 1 total P2 3.195627e-04 3.206491e-04 -7 10002 2 1 total P3 2.138470e-04 2.145740e-04 -0 10002 2 2 total P0 2.034945e+00 2.577999e-01 -1 10002 2 2 total P1 5.099405e-01 5.123591e-02 -2 10002 2 2 total P2 1.111746e-01 1.301982e-02 -3 10002 2 2 total P3 2.498844e-02 8.312353e-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.000000e+00 3.860919e-02 -2 10002 1 2 total 1.000000e+00 6.766735e-02 -1 10002 2 1 total 1.000000e+00 1.414214e+00 -0 10002 2 2 total 1.000000e+00 1.359292e-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.000000e+00 0.000000e+00 -2 10002 1 2 total 0.000000e+00 0.000000e+00 -1 10002 2 1 total 0.000000e+00 0.000000e+00 -0 10002 2 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.660556e+07 1.042436e+06 -0 10002 2 total 3.284120e+05 3.882844e+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.14825e-01 2.27929e-02 +0 10000 2 total 6.60170e-01 4.75189e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.56860e-01 2.54936e-02 +0 10000 2 total 6.47648e-01 2.37037e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.56860e-01 2.54936e-02 +0 10000 2 total 6.47648e-01 2.37037e-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.74078e-02 2.69250e-03 +0 10000 2 total 2.64511e-01 2.33671e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.98445e-02 2.64330e-03 +0 10000 2 total 7.17194e-02 2.52079e-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.56329e-03 5.08484e-04 +0 10000 2 total 1.92791e-01 1.71059e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.94317e-02 1.32298e-03 +0 10000 2 total 4.69775e-01 4.16820e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.47457e+00 9.92353e-02 +0 10000 2 total 3.72869e+01 3.30838e+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.87418e-01 2.06257e-02 +0 10000 2 total 3.95659e-01 2.51251e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.85188e-01 2.69456e-02 +0 10000 2 total 4.12389e-01 1.54253e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.84199e-01 2.70010e-02 +13 10000 1 1 total P1 5.18703e-02 6.98255e-03 +14 10000 1 1 total P2 2.00688e-02 2.84650e-03 +15 10000 1 1 total P3 9.47772e-03 2.23352e-03 +8 10000 1 2 total P0 9.88930e-04 4.82419e-04 +9 10000 1 2 total P1 -2.07235e-04 1.49011e-04 +10 10000 1 2 total P2 -1.03366e-04 1.84316e-04 +11 10000 1 2 total P3 2.34291e-04 1.28173e-04 +4 10000 2 1 total P0 9.24640e-04 9.24883e-04 +5 10000 2 1 total P1 -7.67705e-04 7.67907e-04 +6 10000 2 1 total P2 4.93789e-04 4.93919e-04 +7 10000 2 1 total P3 -1.71497e-04 1.71542e-04 +0 10000 2 2 total P0 4.11465e-01 1.52449e-02 +1 10000 2 2 total P1 1.64817e-02 4.50173e-03 +2 10000 2 2 total P2 6.37149e-03 1.05507e-02 +3 10000 2 2 total P3 -1.04991e-02 1.04382e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.84199e-01 2.70010e-02 +13 10000 1 1 total P1 5.18703e-02 6.98255e-03 +14 10000 1 1 total P2 2.00688e-02 2.84650e-03 +15 10000 1 1 total P3 9.47772e-03 2.23352e-03 +8 10000 1 2 total P0 9.88930e-04 4.82419e-04 +9 10000 1 2 total P1 -2.07235e-04 1.49011e-04 +10 10000 1 2 total P2 -1.03366e-04 1.84316e-04 +11 10000 1 2 total P3 2.34291e-04 1.28173e-04 +4 10000 2 1 total P0 9.24640e-04 9.24883e-04 +5 10000 2 1 total P1 -7.67705e-04 7.67907e-04 +6 10000 2 1 total P2 4.93789e-04 4.93919e-04 +7 10000 2 1 total P3 -1.71497e-04 1.71542e-04 +0 10000 2 2 total P0 4.11465e-01 1.52449e-02 +1 10000 2 2 total P1 1.64817e-02 4.50173e-03 +2 10000 2 2 total P2 6.37149e-03 1.05507e-02 +3 10000 2 2 total P3 -1.04991e-02 1.04382e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.00000e+00 7.85165e-02 +2 10000 1 2 total 1.00000e+00 6.87184e-01 +1 10000 2 1 total 1.00000e+00 1.41421e+00 +0 10000 2 2 total 1.00000e+00 4.11303e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.01424e-02 3.14909e-03 +2 10000 1 2 total 0.00000e+00 0.00000e+00 +1 10000 2 1 total 4.54366e-01 2.74255e-02 +0 10000 2 2 total 0.00000e+00 0.00000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.00000e+00 4.60705e-02 +0 10000 2 total 0.00000e+00 0.00000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.00000e+00 5.14715e-02 +0 10000 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.75152e+07 1.43818e+06 +0 10000 2 total 3.50172e+05 2.99459e+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.92392e-02 1.30951e-03 +0 10000 2 total 4.66719e-01 4.14109e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.13738e-01 1.55819e-02 +0 10001 2 total 3.00821e-01 2.80524e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.73228e-01 3.31154e-02 +0 10001 2 total 3.12375e-01 4.96058e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.73228e-01 3.31154e-02 +0 10001 2 total 3.12375e-01 4.96058e-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.57499e-03 3.22548e-04 +0 10001 2 total 5.40038e-03 6.18138e-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.57499e-03 3.22548e-04 +0 10001 2 total 5.40038e-03 6.18138e-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000e+00 0.00000e+00 +0 10001 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000e+00 0.00000e+00 +0 10001 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000e+00 0.00000e+00 +0 10001 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.12163e-01 1.53219e-02 +0 10001 2 total 2.95421e-01 2.74455e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.10121e-01 3.37881e-02 +0 10001 2 total 2.96264e-01 4.37922e-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.10121e-01 3.37881e-02 +13 10001 1 1 total P1 3.82296e-02 8.48400e-03 +14 10001 1 1 total P2 2.07449e-02 4.69561e-03 +15 10001 1 1 total P3 7.96430e-03 3.73162e-03 +8 10001 1 2 total P0 0.00000e+00 0.00000e+00 +9 10001 1 2 total P1 0.00000e+00 0.00000e+00 +10 10001 1 2 total P2 0.00000e+00 0.00000e+00 +11 10001 1 2 total P3 0.00000e+00 0.00000e+00 +4 10001 2 1 total P0 0.00000e+00 0.00000e+00 +5 10001 2 1 total P1 0.00000e+00 0.00000e+00 +6 10001 2 1 total P2 0.00000e+00 0.00000e+00 +7 10001 2 1 total P3 0.00000e+00 0.00000e+00 +0 10001 2 2 total P0 2.96264e-01 4.37922e-02 +1 10001 2 2 total P1 -1.12136e-02 1.61804e-02 +2 10001 2 2 total P2 8.83657e-03 1.15040e-02 +3 10001 2 2 total P3 -3.27007e-03 7.32885e-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.10121e-01 3.37881e-02 +13 10001 1 1 total P1 3.82296e-02 8.48400e-03 +14 10001 1 1 total P2 2.07449e-02 4.69561e-03 +15 10001 1 1 total P3 7.96430e-03 3.73162e-03 +8 10001 1 2 total P0 0.00000e+00 0.00000e+00 +9 10001 1 2 total P1 0.00000e+00 0.00000e+00 +10 10001 1 2 total P2 0.00000e+00 0.00000e+00 +11 10001 1 2 total P3 0.00000e+00 0.00000e+00 +4 10001 2 1 total P0 0.00000e+00 0.00000e+00 +5 10001 2 1 total P1 0.00000e+00 0.00000e+00 +6 10001 2 1 total P2 0.00000e+00 0.00000e+00 +7 10001 2 1 total P3 0.00000e+00 0.00000e+00 +0 10001 2 2 total P0 2.96264e-01 4.37922e-02 +1 10001 2 2 total P1 -1.12136e-02 1.61804e-02 +2 10001 2 2 total P2 8.83657e-03 1.15040e-02 +3 10001 2 2 total P3 -3.27007e-03 7.32885e-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.00000e+00 1.08779e-01 +2 10001 1 2 total 0.00000e+00 0.00000e+00 +1 10001 2 1 total 0.00000e+00 0.00000e+00 +0 10001 2 2 total 1.00000e+00 1.42427e-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.00000e+00 0.00000e+00 +2 10001 1 2 total 0.00000e+00 0.00000e+00 +1 10001 2 1 total 0.00000e+00 0.00000e+00 +0 10001 2 2 total 0.00000e+00 0.00000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.00000e+00 0.00000e+00 +0 10001 2 total 0.00000e+00 0.00000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.00000e+00 0.00000e+00 +0 10001 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.66778e+07 1.26644e+06 +0 10001 2 total 3.34953e+05 3.83368e+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000e+00 0.00000e+00 +0 10001 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.64572e-01 3.12148e-02 +0 10002 2 total 2.05238e+00 2.24343e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.90565e-01 2.38519e-02 +0 10002 2 total 1.51644e+00 2.35197e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.90565e-01 2.38519e-02 +0 10002 2 total 1.51644e+00 2.35197e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.90400e-04 4.41476e-05 +0 10002 2 total 3.16873e-02 3.74656e-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.90400e-04 4.41476e-05 +0 10002 2 total 3.16873e-02 3.74656e-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000e+00 0.00000e+00 +0 10002 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000e+00 0.00000e+00 +0 10002 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000e+00 0.00000e+00 +0 10002 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.63882e-01 3.11727e-02 +0 10002 2 total 2.02070e+00 2.20604e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.71269e-01 2.61864e-02 +0 10002 2 total 2.03539e+00 2.58060e-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.39901e-01 2.47091e-02 +13 10002 1 1 total P1 3.81167e-01 1.62433e-02 +14 10002 1 1 total P2 1.52392e-01 8.15628e-03 +15 10002 1 1 total P3 9.14802e-03 3.88856e-03 +8 10002 1 2 total P0 3.13677e-02 1.72811e-03 +9 10002 1 2 total P1 8.75772e-03 9.25671e-04 +10 10002 1 2 total P2 -2.56790e-03 1.01398e-03 +11 10002 1 2 total P3 -3.78480e-03 8.17076e-04 +4 10002 2 1 total P0 4.43343e-04 4.44850e-04 +5 10002 2 1 total P1 3.99960e-04 4.01320e-04 +6 10002 2 1 total P2 3.19563e-04 3.20649e-04 +7 10002 2 1 total P3 2.13847e-04 2.14574e-04 +0 10002 2 2 total P0 2.03494e+00 2.57800e-01 +1 10002 2 2 total P1 5.09941e-01 5.12359e-02 +2 10002 2 2 total P2 1.11175e-01 1.30198e-02 +3 10002 2 2 total P3 2.49884e-02 8.31235e-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.39901e-01 2.47091e-02 +13 10002 1 1 total P1 3.81167e-01 1.62433e-02 +14 10002 1 1 total P2 1.52392e-01 8.15628e-03 +15 10002 1 1 total P3 9.14802e-03 3.88856e-03 +8 10002 1 2 total P0 3.13677e-02 1.72811e-03 +9 10002 1 2 total P1 8.75772e-03 9.25671e-04 +10 10002 1 2 total P2 -2.56790e-03 1.01398e-03 +11 10002 1 2 total P3 -3.78480e-03 8.17076e-04 +4 10002 2 1 total P0 4.43343e-04 4.44850e-04 +5 10002 2 1 total P1 3.99960e-04 4.01320e-04 +6 10002 2 1 total P2 3.19563e-04 3.20649e-04 +7 10002 2 1 total P3 2.13847e-04 2.14574e-04 +0 10002 2 2 total P0 2.03494e+00 2.57800e-01 +1 10002 2 2 total P1 5.09941e-01 5.12359e-02 +2 10002 2 2 total P2 1.11175e-01 1.30198e-02 +3 10002 2 2 total P3 2.49884e-02 8.31235e-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.00000e+00 3.86092e-02 +2 10002 1 2 total 1.00000e+00 6.76673e-02 +1 10002 2 1 total 1.00000e+00 1.41421e+00 +0 10002 2 2 total 1.00000e+00 1.35929e-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.00000e+00 0.00000e+00 +2 10002 1 2 total 0.00000e+00 0.00000e+00 +1 10002 2 1 total 0.00000e+00 0.00000e+00 +0 10002 2 2 total 0.00000e+00 0.00000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.00000e+00 0.00000e+00 +0 10002 2 total 0.00000e+00 0.00000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.00000e+00 0.00000e+00 +0 10002 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.66056e+07 1.04244e+06 +0 10002 2 total 3.28412e+05 3.88284e+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000e+00 0.00000e+00 +0 10002 2 total 0.00000e+00 0.00000e+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 66d388716e..e8c343cb0f 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -9620ed88224f5a4013b1ff47a1286ed166f84847b97d145e52f6f71eb441c2abd1ad5baa91e0b1cac802daa8610ee388d23dcbc43d834b73fb35a16972d09788 \ No newline at end of file +a84cc1ba0556c47dfa13d959e7ca34a4e9855d4c85b60b3503a2f0b367df1bef65df1d535fa852b285075846ecb61050aa42e66ba2b0af3d9c51dc969cc4e6fd \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 91562d8e15..eedf9279fa 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.000000e+02 0.000000e+00 7.000000e+02 8.000000e+02] + Temperature = [5.00000e+02 0.00000e+00 7.00000e+02 8.00000e+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index e00e4ea137..b2d96884f3 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -230817bd2cfcceebf4f5317432130df3cc43bff45fbab7f145a6f390a19b0bf103fbf4d6363e77cfe015396a846682741f649a9c29e04590796e4816831b2b5d \ No newline at end of file +059bd780997dc36a315d1a7266296ed511aae2e5c362f7f47b81022a6e4588d6ae0ea06f35893f0efd004e925ee32ea1d284a40cc1a0f861b08391cdf1b0e8a0 \ 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 6ef9ffeccd..85175d3830 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] +[[[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] ..., - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]]][[[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] ..., - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]]][[[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] ..., - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]]][[[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]] ..., - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]]][[[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]] ..., - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]]] \ No newline at end of file + [[0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00] + [0.00000e+00 0.00000e+00 0.00000e+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index bde708b808..2b188cf290 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -11,12 +11,12 @@ import sys import numpy as np import pandas as pd -# Require numpy and pandas to print output in scientific notation with 7 +# Require numpy and pandas to print output in scientific notation with 6 # significant figures. This is needed to avoid round off error when large # numbers are printed, which can cause tests to fail for different build # configurations. -np.set_printoptions(formatter={'float': '{:.6e}'.format}) -pd.options.display.float_format = '{:.6e}'.format +np.set_printoptions(formatter={'float': '{:.5e}'.format}) +pd.options.display.float_format = '{:.5e}'.format sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From fea3a190de7ae5350efcc25a9039dca394cd1be9 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Wed, 13 Jul 2016 17:46:43 +0000 Subject: [PATCH 154/417] changed number of sig figs back to 8 and updated results on linux system --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 312 +++++------ .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 6 +- 8 files changed, 691 insertions(+), 691 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 8a930b2507..f8353aa667 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.53624e-01 2.10527e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.00852e-01 2.28576e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.00852e-01 2.28576e-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.49035e-02 4.31276e-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.80481e-02 4.57996e-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.68554e-02 2.62216e-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.06493e-02 6.40987e-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.13796e+00 5.07364e-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.88721e-01 1.78304e-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.89304e-01 2.30755e-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.89304e-01 2.31456e-02 -1 10000 1 1 total P1 4.62244e-02 5.90717e-03 -2 10000 1 1 total P2 1.79836e-02 2.88297e-03 -3 10000 1 1 total P3 6.62837e-03 2.45711e-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.89304e-01 2.31456e-02 -1 10000 1 1 total P1 4.62244e-02 5.90717e-03 -2 10000 1 1 total P2 1.79836e-02 2.88297e-03 -3 10000 1 1 total P3 6.62837e-03 2.45711e-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.00000e+00 6.61108e-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.58350e-02 5.59182e-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.00000e+00 4.60705e-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.00000e+00 5.14715e-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.00131e+06 1.46217e+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.00040e-02 6.36691e-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.11594e-01 1.37932e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.79255e-01 2.91895e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.79255e-01 2.91895e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.20985e-03 2.86334e-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.20985e-03 2.86334e-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.09384e-01 1.35513e-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.07987e-01 2.93081e-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.07987e-01 2.93081e-02 -1 10001 1 1 total P1 3.06172e-02 7.46446e-03 -2 10001 1 1 total P2 1.89115e-02 4.32283e-03 -3 10001 1 1 total P3 6.23462e-03 3.33820e-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.07987e-01 2.93081e-02 -1 10001 1 1 total P1 3.06172e-02 7.46446e-03 -2 10001 1 1 total P2 1.89115e-02 4.32283e-03 -3 10001 1 1 total P3 6.23462e-03 3.33820e-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.00000e+00 9.50387e-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.00000e+00 0.00000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.00000e+00 0.00000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.83326e+06 1.66355e+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.04999e-01 4.39645e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.99184e-01 4.09141e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.99184e-01 4.09141e-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.06034e-03 5.54524e-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.06034e-03 5.54524e-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.98938e-01 4.34930e-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.03415e-01 4.39587e-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.03415e-01 4.35860e-02 -1 10002 1 1 total P1 4.10417e-01 1.58772e-02 -2 10002 1 1 total P2 1.43301e-01 7.18738e-03 -3 10002 1 1 total P3 8.73943e-03 3.57144e-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.03415e-01 4.35860e-02 -1 10002 1 1 total P1 4.10417e-01 1.58772e-02 -2 10002 1 1 total P2 1.43301e-01 7.18738e-03 -3 10002 1 1 total P3 8.73943e-03 3.57144e-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.00000e+00 5.68667e-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.00000e+00 0.00000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.00000e+00 0.00000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.73220e+06 1.59691e+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.5362442e-01 2.1052696e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.0085218e-01 2.2857554e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.0085218e-01 2.2857554e-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.4903456e-02 4.3127612e-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.8048066e-02 4.5799637e-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.6855390e-02 2.6221598e-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.0649290e-02 6.4098745e-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.1379551e+00 5.0736381e-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.8872097e-01 1.7830429e-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.8930356e-01 2.3075539e-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.8930356e-01 2.3145605e-02 +1 10000 1 1 total P1 4.6224418e-02 5.9071696e-03 +2 10000 1 1 total P2 1.7983585e-02 2.8829720e-03 +3 10000 1 1 total P3 6.6283735e-03 2.4571090e-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.8930356e-01 2.3145605e-02 +1 10000 1 1 total P1 4.6224418e-02 5.9071696e-03 +2 10000 1 1 total P2 1.7983585e-02 2.8829720e-03 +3 10000 1 1 total P3 6.6283735e-03 2.4571090e-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.0000000e+00 6.6110820e-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.5835019e-02 5.5918249e-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.0000000e+00 4.6070523e-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.0000000e+00 5.1471457e-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.0013087e+06 1.4621656e+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.0003978e-02 6.3669079e-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.1159411e-01 1.3793168e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.7925506e-01 2.9189501e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.7925506e-01 2.9189501e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.2098464e-03 2.8633413e-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.2098464e-03 2.8633413e-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.0938426e-01 1.3551267e-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.0798735e-01 2.9308089e-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.0798735e-01 2.9308089e-02 +1 10001 1 1 total P1 3.0617153e-02 7.4644560e-03 +2 10001 1 1 total P2 1.8911490e-02 4.3228277e-03 +3 10001 1 1 total P3 6.2346182e-03 3.3382023e-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.0798735e-01 2.9308089e-02 +1 10001 1 1 total P1 3.0617153e-02 7.4644560e-03 +2 10001 1 1 total P2 1.8911490e-02 4.3228277e-03 +3 10001 1 1 total P3 6.2346182e-03 3.3382023e-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.0000000e+00 9.5038722e-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.8332612e+06 1.6635517e+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.0499883e-01 4.3964488e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.9918398e-01 4.0914120e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.9918398e-01 4.0914120e-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.0603412e-03 5.5452442e-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.0603412e-03 5.5452442e-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.9893849e-01 4.3492984e-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.0341466e-01 4.3958737e-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.0341466e-01 4.3585994e-02 +1 10002 1 1 total P1 4.1041742e-01 1.5877220e-02 +2 10002 1 1 total P2 1.4330104e-01 7.1873777e-03 +3 10002 1 1 total P3 8.7394263e-03 3.5714413e-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.0341466e-01 4.3585994e-02 +1 10002 1 1 total P1 4.1041742e-01 1.5877220e-02 +2 10002 1 1 total P2 1.4330104e-01 7.1873777e-03 +3 10002 1 1 total P3 8.7394263e-03 3.5714413e-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.0000000e+00 5.6866725e-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.7321997e+06 1.5969143e+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.0000000e+00 0.0000000e+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 7cde7e3fe2..70c7134536 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.14593e+00 5.53822e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919e-01 5.20644e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919e-01 5.20644e-01 - 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 1.97622e-02 1.06288e-02 - 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 1.97622e-02 1.06288e-02 - 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.00000e+00 0.00000e+00 - 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.00000e+00 0.00000e+00 - 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.00000e+00 0.00000e+00 - 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 1.12617e+00 5.43440e-01 - 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 1.14255e+00 5.70131e-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14255e+00 5.70131e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381e-01 2.16322e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41202e-01 6.65038e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92283e-02 2.46208e-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14255e+00 5.70131e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381e-01 2.16322e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41202e-01 6.65038e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92283e-02 2.46208e-02 - 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 1.00000e+00 5.29717e-01 - 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.00000e+00 0.00000e+00 - 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.00000e+00 0.00000e+00 - 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.00000e+00 0.00000e+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.74246e+05 4.16398e+05 - 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.00000e+00 0.00000e+00 + 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 1.1459340e+00 5.5382169e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.1891920e-01 5.2064426e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.1891920e-01 5.2064426e-01 + 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 1.9762206e-02 1.0628764e-02 + 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 1.9762206e-02 1.0628764e-02 + 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.0000000e+00 0.0000000e+00 + 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.0000000e+00 0.0000000e+00 + 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.0000000e+00 0.0000000e+00 + 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 1.1261718e+00 5.4344001e-01 + 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 1.1425469e+00 5.7013139e-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.1425469e+00 5.7013139e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.4738129e-01 2.1632217e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.4120179e-01 6.6503773e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.9228270e-02 2.4620832e-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.1425469e+00 5.7013139e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.4738129e-01 2.1632217e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.4120179e-01 6.6503773e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.9228270e-02 2.4620832e-02 + 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 1.0000000e+00 5.2971733e-01 + 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.0000000e+00 0.0000000e+00 + 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.0000000e+00 0.0000000e+00 + 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.0000000e+00 0.0000000e+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.7424571e+05 4.1639769e+05 + 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.0000000e+00 0.0000000e+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 648193a168..ca424dc6b7 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,222 @@ domain=10000 type=total -[4.14825e-01 6.60170e-01] -[2.27929e-02 4.75189e-02] +[4.1482549e-01 6.6016992e-01] +[2.2792909e-02 4.7518928e-02] domain=10000 type=transport -[3.56860e-01 6.47648e-01] -[2.54936e-02 2.37037e-02] +[3.5685964e-01 6.4764766e-01] +[2.5493596e-02 2.3703735e-02] domain=10000 type=nu-transport -[3.56860e-01 6.47648e-01] -[2.54936e-02 2.37037e-02] +[3.5685964e-01 6.4764766e-01] +[2.5493596e-02 2.3703735e-02] domain=10000 type=absorption -[2.74078e-02 2.64511e-01] -[2.69250e-03 2.33671e-02] +[2.7407845e-02 2.6451074e-01] +[2.6924971e-03 2.3367077e-02] domain=10000 type=capture -[1.98445e-02 7.17194e-02] -[2.64330e-03 2.52079e-02] +[1.9844550e-02 7.1719353e-02] +[2.6433043e-03 2.5207859e-02] domain=10000 type=fission -[7.56329e-03 1.92791e-01] -[5.08484e-04 1.71059e-02] +[7.5632950e-03 1.9279139e-01] +[5.0848368e-04 1.7105922e-02] domain=10000 type=nu-fission -[1.94317e-02 4.69775e-01] -[1.32298e-03 4.16820e-02] +[1.9431740e-02 4.6977478e-01] +[1.3229756e-03 4.1682000e-02] domain=10000 type=kappa-fission -[1.47457e+00 3.72869e+01] -[9.92353e-02 3.30838e+00] +[1.4745698e+00 3.7286896e+01] +[9.9235321e-02 3.3083777e+00] domain=10000 type=scatter -[3.87418e-01 3.95659e-01] -[2.06257e-02 2.51251e-02] +[3.8741765e-01 3.9565918e-01] +[2.0625732e-02 2.5125057e-02] domain=10000 type=nu-scatter -[3.85188e-01 4.12389e-01] -[2.69456e-02 1.54253e-02] +[3.8518839e-01 4.1238940e-01] +[2.6945621e-02 1.5425277e-02] domain=10000 type=scatter matrix -[[[3.84199e-01 5.18703e-02 2.00688e-02 9.47772e-03] - [9.88930e-04 -2.07235e-04 -1.03366e-04 2.34291e-04]] +[[[3.8419946e-01 5.1870284e-02 2.0068845e-02 9.4777157e-03] + [9.8893039e-04 -2.0723460e-04 -1.0336618e-04 2.3429062e-04]] - [[9.24640e-04 -7.67705e-04 4.93789e-04 -1.71497e-04] - [4.11465e-01 1.64817e-02 6.37149e-03 -1.04991e-02]]] -[[[2.70010e-02 6.98255e-03 2.84650e-03 2.23352e-03] - [4.82419e-04 1.49011e-04 1.84316e-04 1.28173e-04]] + [[9.2463991e-04 -7.6770497e-04 4.9378887e-04 -1.7149723e-04] + [4.1146476e-01 1.6481728e-02 6.3714905e-03 -1.0499122e-02]]] +[[[2.7001014e-02 6.9825489e-03 2.8464952e-03 2.2335198e-03] + [4.8241945e-04 1.4901078e-04 1.8431631e-04 1.2817311e-04]] - [[9.24883e-04 7.67907e-04 4.93919e-04 1.71542e-04] - [1.52449e-02 4.50173e-03 1.05507e-02 1.04382e-02]]] + [[9.2488346e-04 7.6790719e-04 4.9391894e-04 1.7154240e-04] + [1.5244935e-02 4.5017280e-03 1.0550749e-02 1.0438188e-02]]] domain=10000 type=nu-scatter matrix -[[[3.84199e-01 5.18703e-02 2.00688e-02 9.47772e-03] - [9.88930e-04 -2.07235e-04 -1.03366e-04 2.34291e-04]] +[[[3.8419946e-01 5.1870284e-02 2.0068845e-02 9.4777157e-03] + [9.8893039e-04 -2.0723460e-04 -1.0336618e-04 2.3429062e-04]] - [[9.24640e-04 -7.67705e-04 4.93789e-04 -1.71497e-04] - [4.11465e-01 1.64817e-02 6.37149e-03 -1.04991e-02]]] -[[[2.70010e-02 6.98255e-03 2.84650e-03 2.23352e-03] - [4.82419e-04 1.49011e-04 1.84316e-04 1.28173e-04]] + [[9.2463991e-04 -7.6770497e-04 4.9378887e-04 -1.7149723e-04] + [4.1146476e-01 1.6481728e-02 6.3714905e-03 -1.0499122e-02]]] +[[[2.7001014e-02 6.9825489e-03 2.8464952e-03 2.2335198e-03] + [4.8241945e-04 1.4901078e-04 1.8431631e-04 1.2817311e-04]] - [[9.24883e-04 7.67907e-04 4.93919e-04 1.71542e-04] - [1.52449e-02 4.50173e-03 1.05507e-02 1.04382e-02]]] + [[9.2488346e-04 7.6790719e-04 4.9391894e-04 1.7154240e-04] + [1.5244935e-02 4.5017280e-03 1.0550749e-02 1.0438188e-02]]] domain=10000 type=multiplicity matrix -[[1.00000e+00 1.00000e+00] - [1.00000e+00 1.00000e+00]] -[[7.85165e-02 6.87184e-01] - [1.41421e+00 4.11303e-02]] +[[1.0000000e+00 1.0000000e+00] + [1.0000000e+00 1.0000000e+00]] +[[7.8516455e-02 6.8718427e-01] + [1.4142136e+00 4.1130349e-02]] domain=10000 type=nu-fission matrix -[[2.01424e-02 0.00000e+00] - [4.54366e-01 0.00000e+00]] -[[3.14909e-03 0.00000e+00] - [2.74255e-02 0.00000e+00]] +[[2.0142428e-02 0.0000000e+00] + [4.5436647e-01 0.0000000e+00]] +[[3.1490917e-03 0.0000000e+00] + [2.7425507e-02 0.0000000e+00]] domain=10000 type=chi -[1.00000e+00 0.00000e+00] -[4.60705e-02 0.00000e+00] +[1.0000000e+00 0.0000000e+00] +[4.6070523e-02 0.0000000e+00] domain=10000 type=chi-prompt -[1.00000e+00 0.00000e+00] -[5.14715e-02 0.00000e+00] +[1.0000000e+00 0.0000000e+00] +[5.1471457e-02 0.0000000e+00] domain=10000 type=velocity -[1.75152e+07 3.50172e+05] -[1.43818e+06 2.99459e+04] +[1.7515211e+07 3.5017200e+05] +[1.4381753e+06 2.9945932e+04] domain=10000 type=prompt-nu-fission -[1.92392e-02 4.66719e-01] -[1.30951e-03 4.14109e-02] +[1.9239222e-02 4.6671903e-01] +[1.3095060e-03 4.1410870e-02] domain=10001 type=total -[3.13738e-01 3.00821e-01] -[1.55819e-02 2.80524e-02] +[3.1373767e-01 3.0082140e-01] +[1.5581902e-02 2.8052448e-02] domain=10001 type=transport -[2.73228e-01 3.12375e-01] -[3.31154e-02 4.96058e-02] +[2.7322787e-01 3.1237484e-01] +[3.3115366e-02 4.9605832e-02] domain=10001 type=nu-transport -[2.73228e-01 3.12375e-01] -[3.31154e-02 4.96058e-02] +[2.7322787e-01 3.1237484e-01] +[3.3115366e-02 4.9605832e-02] domain=10001 type=absorption -[1.57499e-03 5.40038e-03] -[3.22548e-04 6.18138e-04] +[1.5749914e-03 5.4003788e-03] +[3.2254789e-04 6.1813831e-04] domain=10001 type=capture -[1.57499e-03 5.40038e-03] -[3.22548e-04 6.18138e-04] +[1.5749914e-03 5.4003788e-03] +[3.2254789e-04 6.1813831e-04] domain=10001 type=fission -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10001 type=nu-fission -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10001 type=kappa-fission -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10001 type=scatter -[3.12163e-01 2.95421e-01] -[1.53219e-02 2.74455e-02] +[3.1216268e-01 2.9542102e-01] +[1.5321923e-02 2.7445489e-02] domain=10001 type=nu-scatter -[3.10121e-01 2.96264e-01] -[3.37881e-02 4.37922e-02] +[3.1012074e-01 2.9626427e-01] +[3.3788106e-02 4.3792226e-02] domain=10001 type=scatter matrix -[[[3.10121e-01 3.82296e-02 2.07449e-02 7.96430e-03] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] +[[[3.1012074e-01 3.8229590e-02 2.0744942e-02 7.9642968e-03] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [2.96264e-01 -1.12136e-02 8.83657e-03 -3.27007e-03]]] -[[[3.37881e-02 8.48400e-03 4.69561e-03 3.73162e-03] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [2.9626427e-01 -1.1213636e-02 8.8365663e-03 -3.2700673e-03]]] +[[[3.3788106e-02 8.4839971e-03 4.6956107e-03 3.7316226e-03] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [4.37922e-02 1.61804e-02 1.15040e-02 7.32885e-03]]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [4.3792226e-02 1.6180366e-02 1.1503964e-02 7.3288458e-03]]] domain=10001 type=nu-scatter matrix -[[[3.10121e-01 3.82296e-02 2.07449e-02 7.96430e-03] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] +[[[3.1012074e-01 3.8229590e-02 2.0744942e-02 7.9642968e-03] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [2.96264e-01 -1.12136e-02 8.83657e-03 -3.27007e-03]]] -[[[3.37881e-02 8.48400e-03 4.69561e-03 3.73162e-03] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [2.9626427e-01 -1.1213636e-02 8.8365663e-03 -3.2700673e-03]]] +[[[3.3788106e-02 8.4839971e-03 4.6956107e-03 3.7316226e-03] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [4.37922e-02 1.61804e-02 1.15040e-02 7.32885e-03]]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [4.3792226e-02 1.6180366e-02 1.1503964e-02 7.3288458e-03]]] domain=10001 type=multiplicity matrix -[[1.00000e+00 0.00000e+00] - [0.00000e+00 1.00000e+00]] -[[1.08779e-01 0.00000e+00] - [0.00000e+00 1.42427e-01]] +[[1.0000000e+00 0.0000000e+00] + [0.0000000e+00 1.0000000e+00]] +[[1.0877870e-01 0.0000000e+00] + [0.0000000e+00 1.4242717e-01]] domain=10001 type=nu-fission matrix -[[0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00]] -[[0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00]] +[[0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00]] +[[0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00]] domain=10001 type=chi -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10001 type=chi-prompt -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10001 type=velocity -[1.66778e+07 3.34953e+05] -[1.26644e+06 3.83368e+04] +[1.6677839e+07 3.3495337e+05] +[1.2664443e+06 3.8336782e+04] domain=10001 type=prompt-nu-fission -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=total -[6.64572e-01 2.05238e+00] -[3.12148e-02 2.24343e-01] +[6.6457226e-01 2.0523840e+00] +[3.1214752e-02 2.2434291e-01] domain=10002 type=transport -[2.90565e-01 1.51644e+00] -[2.38519e-02 2.35197e-01] +[2.9056526e-01 1.5164380e+00] +[2.3851855e-02 2.3519727e-01] domain=10002 type=nu-transport -[2.90565e-01 1.51644e+00] -[2.38519e-02 2.35197e-01] +[2.9056526e-01 1.5164380e+00] +[2.3851855e-02 2.3519727e-01] domain=10002 type=absorption -[6.90400e-04 3.16873e-02] -[4.41476e-05 3.74656e-03] +[6.9039952e-04 3.1687257e-02] +[4.4147569e-05 3.7465586e-03] domain=10002 type=capture -[6.90400e-04 3.16873e-02] -[4.41476e-05 3.74656e-03] +[6.9039952e-04 3.1687257e-02] +[4.4147569e-05 3.7465586e-03] domain=10002 type=fission -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=nu-fission -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=kappa-fission -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=scatter -[6.63882e-01 2.02070e+00] -[3.11727e-02 2.20604e-01] +[6.6388186e-01 2.0206968e+00] +[3.1172684e-02 2.2060445e-01] domain=10002 type=nu-scatter -[6.71269e-01 2.03539e+00] -[2.61864e-02 2.58060e-01] +[6.7126920e-01 2.0353883e+00] +[2.6186371e-02 2.5806033e-01] domain=10002 type=scatter matrix -[[[6.39901e-01 3.81167e-01 1.52392e-01 9.14802e-03] - [3.13677e-02 8.75772e-03 -2.56790e-03 -3.78480e-03]] +[[[6.3990148e-01 3.8116745e-01 1.5239190e-01 9.1480223e-03] + [3.1367720e-02 8.7577232e-03 -2.5679011e-03 -3.7848029e-03]] - [[4.43343e-04 3.99960e-04 3.19563e-04 2.13847e-04] - [2.03494e+00 5.09941e-01 1.11175e-01 2.49884e-02]]] -[[[2.47091e-02 1.62433e-02 8.15628e-03 3.88856e-03] - [1.72811e-03 9.25671e-04 1.01398e-03 8.17076e-04]] + [[4.4334313e-04 3.9996041e-04 3.1956271e-04 2.1384697e-04] + [2.0349450e+00 5.0994051e-01 1.1117461e-01 2.4988436e-02]]] +[[[2.4709123e-02 1.6243265e-02 8.1562777e-03 3.8885621e-03] + [1.7281129e-03 9.2567050e-04 1.0139848e-03 8.1707557e-04]] - [[4.44850e-04 4.01320e-04 3.20649e-04 2.14574e-04] - [2.57800e-01 5.12359e-02 1.30198e-02 8.31235e-03]]] + [[4.4485039e-04 4.0132018e-04 3.2064914e-04 2.1457400e-04] + [2.5779989e-01 5.1235906e-02 1.3019817e-02 8.3123526e-03]]] domain=10002 type=nu-scatter matrix -[[[6.39901e-01 3.81167e-01 1.52392e-01 9.14802e-03] - [3.13677e-02 8.75772e-03 -2.56790e-03 -3.78480e-03]] +[[[6.3990148e-01 3.8116745e-01 1.5239190e-01 9.1480223e-03] + [3.1367720e-02 8.7577232e-03 -2.5679011e-03 -3.7848029e-03]] - [[4.43343e-04 3.99960e-04 3.19563e-04 2.13847e-04] - [2.03494e+00 5.09941e-01 1.11175e-01 2.49884e-02]]] -[[[2.47091e-02 1.62433e-02 8.15628e-03 3.88856e-03] - [1.72811e-03 9.25671e-04 1.01398e-03 8.17076e-04]] + [[4.4334313e-04 3.9996041e-04 3.1956271e-04 2.1384697e-04] + [2.0349450e+00 5.0994051e-01 1.1117461e-01 2.4988436e-02]]] +[[[2.4709123e-02 1.6243265e-02 8.1562777e-03 3.8885621e-03] + [1.7281129e-03 9.2567050e-04 1.0139848e-03 8.1707557e-04]] - [[4.44850e-04 4.01320e-04 3.20649e-04 2.14574e-04] - [2.57800e-01 5.12359e-02 1.30198e-02 8.31235e-03]]] + [[4.4485039e-04 4.0132018e-04 3.2064914e-04 2.1457400e-04] + [2.5779989e-01 5.1235906e-02 1.3019817e-02 8.3123526e-03]]] domain=10002 type=multiplicity matrix -[[1.00000e+00 1.00000e+00] - [1.00000e+00 1.00000e+00]] -[[3.86092e-02 6.76673e-02] - [1.41421e+00 1.35929e-01]] +[[1.0000000e+00 1.0000000e+00] + [1.0000000e+00 1.0000000e+00]] +[[3.8609191e-02 6.7667348e-02] + [1.4142136e+00 1.3592921e-01]] domain=10002 type=nu-fission matrix -[[0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00]] -[[0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00]] +[[0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00]] +[[0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00]] domain=10002 type=chi -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=chi-prompt -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] domain=10002 type=velocity -[1.66056e+07 3.28412e+05] -[1.04244e+06 3.88284e+04] +[1.6605563e+07 3.2841204e+05] +[1.0424355e+06 3.8828436e+04] domain=10002 type=prompt-nu-fission -[0.00000e+00 0.00000e+00] -[0.00000e+00 0.00000e+00] +[0.0000000e+00 0.0000000e+00] +[0.0000000e+00 0.0000000e+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 246f1a963f..0e25d3ee82 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.14825e-01 2.27929e-02 -0 10000 2 total 6.60170e-01 4.75189e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.56860e-01 2.54936e-02 -0 10000 2 total 6.47648e-01 2.37037e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.56860e-01 2.54936e-02 -0 10000 2 total 6.47648e-01 2.37037e-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.74078e-02 2.69250e-03 -0 10000 2 total 2.64511e-01 2.33671e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.98445e-02 2.64330e-03 -0 10000 2 total 7.17194e-02 2.52079e-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.56329e-03 5.08484e-04 -0 10000 2 total 1.92791e-01 1.71059e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.94317e-02 1.32298e-03 -0 10000 2 total 4.69775e-01 4.16820e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.47457e+00 9.92353e-02 -0 10000 2 total 3.72869e+01 3.30838e+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.87418e-01 2.06257e-02 -0 10000 2 total 3.95659e-01 2.51251e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.85188e-01 2.69456e-02 -0 10000 2 total 4.12389e-01 1.54253e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.84199e-01 2.70010e-02 -13 10000 1 1 total P1 5.18703e-02 6.98255e-03 -14 10000 1 1 total P2 2.00688e-02 2.84650e-03 -15 10000 1 1 total P3 9.47772e-03 2.23352e-03 -8 10000 1 2 total P0 9.88930e-04 4.82419e-04 -9 10000 1 2 total P1 -2.07235e-04 1.49011e-04 -10 10000 1 2 total P2 -1.03366e-04 1.84316e-04 -11 10000 1 2 total P3 2.34291e-04 1.28173e-04 -4 10000 2 1 total P0 9.24640e-04 9.24883e-04 -5 10000 2 1 total P1 -7.67705e-04 7.67907e-04 -6 10000 2 1 total P2 4.93789e-04 4.93919e-04 -7 10000 2 1 total P3 -1.71497e-04 1.71542e-04 -0 10000 2 2 total P0 4.11465e-01 1.52449e-02 -1 10000 2 2 total P1 1.64817e-02 4.50173e-03 -2 10000 2 2 total P2 6.37149e-03 1.05507e-02 -3 10000 2 2 total P3 -1.04991e-02 1.04382e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.84199e-01 2.70010e-02 -13 10000 1 1 total P1 5.18703e-02 6.98255e-03 -14 10000 1 1 total P2 2.00688e-02 2.84650e-03 -15 10000 1 1 total P3 9.47772e-03 2.23352e-03 -8 10000 1 2 total P0 9.88930e-04 4.82419e-04 -9 10000 1 2 total P1 -2.07235e-04 1.49011e-04 -10 10000 1 2 total P2 -1.03366e-04 1.84316e-04 -11 10000 1 2 total P3 2.34291e-04 1.28173e-04 -4 10000 2 1 total P0 9.24640e-04 9.24883e-04 -5 10000 2 1 total P1 -7.67705e-04 7.67907e-04 -6 10000 2 1 total P2 4.93789e-04 4.93919e-04 -7 10000 2 1 total P3 -1.71497e-04 1.71542e-04 -0 10000 2 2 total P0 4.11465e-01 1.52449e-02 -1 10000 2 2 total P1 1.64817e-02 4.50173e-03 -2 10000 2 2 total P2 6.37149e-03 1.05507e-02 -3 10000 2 2 total P3 -1.04991e-02 1.04382e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.00000e+00 7.85165e-02 -2 10000 1 2 total 1.00000e+00 6.87184e-01 -1 10000 2 1 total 1.00000e+00 1.41421e+00 -0 10000 2 2 total 1.00000e+00 4.11303e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.01424e-02 3.14909e-03 -2 10000 1 2 total 0.00000e+00 0.00000e+00 -1 10000 2 1 total 4.54366e-01 2.74255e-02 -0 10000 2 2 total 0.00000e+00 0.00000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.00000e+00 4.60705e-02 -0 10000 2 total 0.00000e+00 0.00000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.00000e+00 5.14715e-02 -0 10000 2 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.75152e+07 1.43818e+06 -0 10000 2 total 3.50172e+05 2.99459e+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.92392e-02 1.30951e-03 -0 10000 2 total 4.66719e-01 4.14109e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.13738e-01 1.55819e-02 -0 10001 2 total 3.00821e-01 2.80524e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.73228e-01 3.31154e-02 -0 10001 2 total 3.12375e-01 4.96058e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.73228e-01 3.31154e-02 -0 10001 2 total 3.12375e-01 4.96058e-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.57499e-03 3.22548e-04 -0 10001 2 total 5.40038e-03 6.18138e-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.57499e-03 3.22548e-04 -0 10001 2 total 5.40038e-03 6.18138e-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000e+00 0.00000e+00 -0 10001 2 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000e+00 0.00000e+00 -0 10001 2 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000e+00 0.00000e+00 -0 10001 2 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.12163e-01 1.53219e-02 -0 10001 2 total 2.95421e-01 2.74455e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.10121e-01 3.37881e-02 -0 10001 2 total 2.96264e-01 4.37922e-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.10121e-01 3.37881e-02 -13 10001 1 1 total P1 3.82296e-02 8.48400e-03 -14 10001 1 1 total P2 2.07449e-02 4.69561e-03 -15 10001 1 1 total P3 7.96430e-03 3.73162e-03 -8 10001 1 2 total P0 0.00000e+00 0.00000e+00 -9 10001 1 2 total P1 0.00000e+00 0.00000e+00 -10 10001 1 2 total P2 0.00000e+00 0.00000e+00 -11 10001 1 2 total P3 0.00000e+00 0.00000e+00 -4 10001 2 1 total P0 0.00000e+00 0.00000e+00 -5 10001 2 1 total P1 0.00000e+00 0.00000e+00 -6 10001 2 1 total P2 0.00000e+00 0.00000e+00 -7 10001 2 1 total P3 0.00000e+00 0.00000e+00 -0 10001 2 2 total P0 2.96264e-01 4.37922e-02 -1 10001 2 2 total P1 -1.12136e-02 1.61804e-02 -2 10001 2 2 total P2 8.83657e-03 1.15040e-02 -3 10001 2 2 total P3 -3.27007e-03 7.32885e-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.10121e-01 3.37881e-02 -13 10001 1 1 total P1 3.82296e-02 8.48400e-03 -14 10001 1 1 total P2 2.07449e-02 4.69561e-03 -15 10001 1 1 total P3 7.96430e-03 3.73162e-03 -8 10001 1 2 total P0 0.00000e+00 0.00000e+00 -9 10001 1 2 total P1 0.00000e+00 0.00000e+00 -10 10001 1 2 total P2 0.00000e+00 0.00000e+00 -11 10001 1 2 total P3 0.00000e+00 0.00000e+00 -4 10001 2 1 total P0 0.00000e+00 0.00000e+00 -5 10001 2 1 total P1 0.00000e+00 0.00000e+00 -6 10001 2 1 total P2 0.00000e+00 0.00000e+00 -7 10001 2 1 total P3 0.00000e+00 0.00000e+00 -0 10001 2 2 total P0 2.96264e-01 4.37922e-02 -1 10001 2 2 total P1 -1.12136e-02 1.61804e-02 -2 10001 2 2 total P2 8.83657e-03 1.15040e-02 -3 10001 2 2 total P3 -3.27007e-03 7.32885e-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.00000e+00 1.08779e-01 -2 10001 1 2 total 0.00000e+00 0.00000e+00 -1 10001 2 1 total 0.00000e+00 0.00000e+00 -0 10001 2 2 total 1.00000e+00 1.42427e-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.00000e+00 0.00000e+00 -2 10001 1 2 total 0.00000e+00 0.00000e+00 -1 10001 2 1 total 0.00000e+00 0.00000e+00 -0 10001 2 2 total 0.00000e+00 0.00000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.00000e+00 0.00000e+00 -0 10001 2 total 0.00000e+00 0.00000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.00000e+00 0.00000e+00 -0 10001 2 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.66778e+07 1.26644e+06 -0 10001 2 total 3.34953e+05 3.83368e+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000e+00 0.00000e+00 -0 10001 2 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.64572e-01 3.12148e-02 -0 10002 2 total 2.05238e+00 2.24343e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.90565e-01 2.38519e-02 -0 10002 2 total 1.51644e+00 2.35197e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.90565e-01 2.38519e-02 -0 10002 2 total 1.51644e+00 2.35197e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.90400e-04 4.41476e-05 -0 10002 2 total 3.16873e-02 3.74656e-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.90400e-04 4.41476e-05 -0 10002 2 total 3.16873e-02 3.74656e-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000e+00 0.00000e+00 -0 10002 2 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000e+00 0.00000e+00 -0 10002 2 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000e+00 0.00000e+00 -0 10002 2 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.63882e-01 3.11727e-02 -0 10002 2 total 2.02070e+00 2.20604e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.71269e-01 2.61864e-02 -0 10002 2 total 2.03539e+00 2.58060e-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.39901e-01 2.47091e-02 -13 10002 1 1 total P1 3.81167e-01 1.62433e-02 -14 10002 1 1 total P2 1.52392e-01 8.15628e-03 -15 10002 1 1 total P3 9.14802e-03 3.88856e-03 -8 10002 1 2 total P0 3.13677e-02 1.72811e-03 -9 10002 1 2 total P1 8.75772e-03 9.25671e-04 -10 10002 1 2 total P2 -2.56790e-03 1.01398e-03 -11 10002 1 2 total P3 -3.78480e-03 8.17076e-04 -4 10002 2 1 total P0 4.43343e-04 4.44850e-04 -5 10002 2 1 total P1 3.99960e-04 4.01320e-04 -6 10002 2 1 total P2 3.19563e-04 3.20649e-04 -7 10002 2 1 total P3 2.13847e-04 2.14574e-04 -0 10002 2 2 total P0 2.03494e+00 2.57800e-01 -1 10002 2 2 total P1 5.09941e-01 5.12359e-02 -2 10002 2 2 total P2 1.11175e-01 1.30198e-02 -3 10002 2 2 total P3 2.49884e-02 8.31235e-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.39901e-01 2.47091e-02 -13 10002 1 1 total P1 3.81167e-01 1.62433e-02 -14 10002 1 1 total P2 1.52392e-01 8.15628e-03 -15 10002 1 1 total P3 9.14802e-03 3.88856e-03 -8 10002 1 2 total P0 3.13677e-02 1.72811e-03 -9 10002 1 2 total P1 8.75772e-03 9.25671e-04 -10 10002 1 2 total P2 -2.56790e-03 1.01398e-03 -11 10002 1 2 total P3 -3.78480e-03 8.17076e-04 -4 10002 2 1 total P0 4.43343e-04 4.44850e-04 -5 10002 2 1 total P1 3.99960e-04 4.01320e-04 -6 10002 2 1 total P2 3.19563e-04 3.20649e-04 -7 10002 2 1 total P3 2.13847e-04 2.14574e-04 -0 10002 2 2 total P0 2.03494e+00 2.57800e-01 -1 10002 2 2 total P1 5.09941e-01 5.12359e-02 -2 10002 2 2 total P2 1.11175e-01 1.30198e-02 -3 10002 2 2 total P3 2.49884e-02 8.31235e-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.00000e+00 3.86092e-02 -2 10002 1 2 total 1.00000e+00 6.76673e-02 -1 10002 2 1 total 1.00000e+00 1.41421e+00 -0 10002 2 2 total 1.00000e+00 1.35929e-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.00000e+00 0.00000e+00 -2 10002 1 2 total 0.00000e+00 0.00000e+00 -1 10002 2 1 total 0.00000e+00 0.00000e+00 -0 10002 2 2 total 0.00000e+00 0.00000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.00000e+00 0.00000e+00 -0 10002 2 total 0.00000e+00 0.00000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.00000e+00 0.00000e+00 -0 10002 2 total 0.00000e+00 0.00000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.66056e+07 1.04244e+06 -0 10002 2 total 3.28412e+05 3.88284e+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000e+00 0.00000e+00 -0 10002 2 total 0.00000e+00 0.00000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.1482549e-01 2.2792909e-02 +0 10000 2 total 6.6016992e-01 4.7518928e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.5685964e-01 2.5493596e-02 +0 10000 2 total 6.4764766e-01 2.3703735e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.5685964e-01 2.5493596e-02 +0 10000 2 total 6.4764766e-01 2.3703735e-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.7407845e-02 2.6924971e-03 +0 10000 2 total 2.6451074e-01 2.3367077e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.9844550e-02 2.6433043e-03 +0 10000 2 total 7.1719353e-02 2.5207859e-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.5632950e-03 5.0848368e-04 +0 10000 2 total 1.9279139e-01 1.7105922e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.9431740e-02 1.3229756e-03 +0 10000 2 total 4.6977478e-01 4.1682000e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.4745698e+00 9.9235321e-02 +0 10000 2 total 3.7286896e+01 3.3083777e+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.8741765e-01 2.0625732e-02 +0 10000 2 total 3.9565918e-01 2.5125057e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.8518839e-01 2.6945621e-02 +0 10000 2 total 4.1238940e-01 1.5425277e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.8419946e-01 2.7001014e-02 +13 10000 1 1 total P1 5.1870284e-02 6.9825489e-03 +14 10000 1 1 total P2 2.0068845e-02 2.8464952e-03 +15 10000 1 1 total P3 9.4777157e-03 2.2335198e-03 +8 10000 1 2 total P0 9.8893039e-04 4.8241945e-04 +9 10000 1 2 total P1 -2.0723460e-04 1.4901078e-04 +10 10000 1 2 total P2 -1.0336618e-04 1.8431631e-04 +11 10000 1 2 total P3 2.3429062e-04 1.2817311e-04 +4 10000 2 1 total P0 9.2463991e-04 9.2488346e-04 +5 10000 2 1 total P1 -7.6770497e-04 7.6790719e-04 +6 10000 2 1 total P2 4.9378887e-04 4.9391894e-04 +7 10000 2 1 total P3 -1.7149723e-04 1.7154240e-04 +0 10000 2 2 total P0 4.1146476e-01 1.5244935e-02 +1 10000 2 2 total P1 1.6481728e-02 4.5017280e-03 +2 10000 2 2 total P2 6.3714905e-03 1.0550749e-02 +3 10000 2 2 total P3 -1.0499122e-02 1.0438188e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.8419946e-01 2.7001014e-02 +13 10000 1 1 total P1 5.1870284e-02 6.9825489e-03 +14 10000 1 1 total P2 2.0068845e-02 2.8464952e-03 +15 10000 1 1 total P3 9.4777157e-03 2.2335198e-03 +8 10000 1 2 total P0 9.8893039e-04 4.8241945e-04 +9 10000 1 2 total P1 -2.0723460e-04 1.4901078e-04 +10 10000 1 2 total P2 -1.0336618e-04 1.8431631e-04 +11 10000 1 2 total P3 2.3429062e-04 1.2817311e-04 +4 10000 2 1 total P0 9.2463991e-04 9.2488346e-04 +5 10000 2 1 total P1 -7.6770497e-04 7.6790719e-04 +6 10000 2 1 total P2 4.9378887e-04 4.9391894e-04 +7 10000 2 1 total P3 -1.7149723e-04 1.7154240e-04 +0 10000 2 2 total P0 4.1146476e-01 1.5244935e-02 +1 10000 2 2 total P1 1.6481728e-02 4.5017280e-03 +2 10000 2 2 total P2 6.3714905e-03 1.0550749e-02 +3 10000 2 2 total P3 -1.0499122e-02 1.0438188e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.0000000e+00 7.8516455e-02 +2 10000 1 2 total 1.0000000e+00 6.8718427e-01 +1 10000 2 1 total 1.0000000e+00 1.4142136e+00 +0 10000 2 2 total 1.0000000e+00 4.1130349e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.0142428e-02 3.1490917e-03 +2 10000 1 2 total 0.0000000e+00 0.0000000e+00 +1 10000 2 1 total 4.5436647e-01 2.7425507e-02 +0 10000 2 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.0000000e+00 4.6070523e-02 +0 10000 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.0000000e+00 5.1471457e-02 +0 10000 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.7515211e+07 1.4381753e+06 +0 10000 2 total 3.5017200e+05 2.9945932e+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.9239222e-02 1.3095060e-03 +0 10000 2 total 4.6671903e-01 4.1410870e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.1373767e-01 1.5581902e-02 +0 10001 2 total 3.0082140e-01 2.8052448e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.7322787e-01 3.3115366e-02 +0 10001 2 total 3.1237484e-01 4.9605832e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.7322787e-01 3.3115366e-02 +0 10001 2 total 3.1237484e-01 4.9605832e-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.5749914e-03 3.2254789e-04 +0 10001 2 total 5.4003788e-03 6.1813831e-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.5749914e-03 3.2254789e-04 +0 10001 2 total 5.4003788e-03 6.1813831e-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.1216268e-01 1.5321923e-02 +0 10001 2 total 2.9542102e-01 2.7445489e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.1012074e-01 3.3788106e-02 +0 10001 2 total 2.9626427e-01 4.3792226e-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.1012074e-01 3.3788106e-02 +13 10001 1 1 total P1 3.8229590e-02 8.4839971e-03 +14 10001 1 1 total P2 2.0744942e-02 4.6956107e-03 +15 10001 1 1 total P3 7.9642968e-03 3.7316226e-03 +8 10001 1 2 total P0 0.0000000e+00 0.0000000e+00 +9 10001 1 2 total P1 0.0000000e+00 0.0000000e+00 +10 10001 1 2 total P2 0.0000000e+00 0.0000000e+00 +11 10001 1 2 total P3 0.0000000e+00 0.0000000e+00 +4 10001 2 1 total P0 0.0000000e+00 0.0000000e+00 +5 10001 2 1 total P1 0.0000000e+00 0.0000000e+00 +6 10001 2 1 total P2 0.0000000e+00 0.0000000e+00 +7 10001 2 1 total P3 0.0000000e+00 0.0000000e+00 +0 10001 2 2 total P0 2.9626427e-01 4.3792226e-02 +1 10001 2 2 total P1 -1.1213636e-02 1.6180366e-02 +2 10001 2 2 total P2 8.8365663e-03 1.1503964e-02 +3 10001 2 2 total P3 -3.2700673e-03 7.3288458e-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.1012074e-01 3.3788106e-02 +13 10001 1 1 total P1 3.8229590e-02 8.4839971e-03 +14 10001 1 1 total P2 2.0744942e-02 4.6956107e-03 +15 10001 1 1 total P3 7.9642968e-03 3.7316226e-03 +8 10001 1 2 total P0 0.0000000e+00 0.0000000e+00 +9 10001 1 2 total P1 0.0000000e+00 0.0000000e+00 +10 10001 1 2 total P2 0.0000000e+00 0.0000000e+00 +11 10001 1 2 total P3 0.0000000e+00 0.0000000e+00 +4 10001 2 1 total P0 0.0000000e+00 0.0000000e+00 +5 10001 2 1 total P1 0.0000000e+00 0.0000000e+00 +6 10001 2 1 total P2 0.0000000e+00 0.0000000e+00 +7 10001 2 1 total P3 0.0000000e+00 0.0000000e+00 +0 10001 2 2 total P0 2.9626427e-01 4.3792226e-02 +1 10001 2 2 total P1 -1.1213636e-02 1.6180366e-02 +2 10001 2 2 total P2 8.8365663e-03 1.1503964e-02 +3 10001 2 2 total P3 -3.2700673e-03 7.3288458e-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.0000000e+00 1.0877870e-01 +2 10001 1 2 total 0.0000000e+00 0.0000000e+00 +1 10001 2 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 2 total 1.0000000e+00 1.4242717e-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.0000000e+00 0.0000000e+00 +2 10001 1 2 total 0.0000000e+00 0.0000000e+00 +1 10001 2 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.6677839e+07 1.2664443e+06 +0 10001 2 total 3.3495337e+05 3.8336782e+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.0000000e+00 0.0000000e+00 +0 10001 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.6457226e-01 3.1214752e-02 +0 10002 2 total 2.0523840e+00 2.2434291e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.9056526e-01 2.3851855e-02 +0 10002 2 total 1.5164380e+00 2.3519727e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.9056526e-01 2.3851855e-02 +0 10002 2 total 1.5164380e+00 2.3519727e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.9039952e-04 4.4147569e-05 +0 10002 2 total 3.1687257e-02 3.7465586e-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.9039952e-04 4.4147569e-05 +0 10002 2 total 3.1687257e-02 3.7465586e-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.6388186e-01 3.1172684e-02 +0 10002 2 total 2.0206968e+00 2.2060445e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.7126920e-01 2.6186371e-02 +0 10002 2 total 2.0353883e+00 2.5806033e-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.3990148e-01 2.4709123e-02 +13 10002 1 1 total P1 3.8116745e-01 1.6243265e-02 +14 10002 1 1 total P2 1.5239190e-01 8.1562777e-03 +15 10002 1 1 total P3 9.1480223e-03 3.8885621e-03 +8 10002 1 2 total P0 3.1367720e-02 1.7281129e-03 +9 10002 1 2 total P1 8.7577232e-03 9.2567050e-04 +10 10002 1 2 total P2 -2.5679011e-03 1.0139848e-03 +11 10002 1 2 total P3 -3.7848029e-03 8.1707557e-04 +4 10002 2 1 total P0 4.4334313e-04 4.4485039e-04 +5 10002 2 1 total P1 3.9996041e-04 4.0132018e-04 +6 10002 2 1 total P2 3.1956271e-04 3.2064914e-04 +7 10002 2 1 total P3 2.1384697e-04 2.1457400e-04 +0 10002 2 2 total P0 2.0349450e+00 2.5779989e-01 +1 10002 2 2 total P1 5.0994051e-01 5.1235906e-02 +2 10002 2 2 total P2 1.1117461e-01 1.3019817e-02 +3 10002 2 2 total P3 2.4988436e-02 8.3123526e-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.3990148e-01 2.4709123e-02 +13 10002 1 1 total P1 3.8116745e-01 1.6243265e-02 +14 10002 1 1 total P2 1.5239190e-01 8.1562777e-03 +15 10002 1 1 total P3 9.1480223e-03 3.8885621e-03 +8 10002 1 2 total P0 3.1367720e-02 1.7281129e-03 +9 10002 1 2 total P1 8.7577232e-03 9.2567050e-04 +10 10002 1 2 total P2 -2.5679011e-03 1.0139848e-03 +11 10002 1 2 total P3 -3.7848029e-03 8.1707557e-04 +4 10002 2 1 total P0 4.4334313e-04 4.4485039e-04 +5 10002 2 1 total P1 3.9996041e-04 4.0132018e-04 +6 10002 2 1 total P2 3.1956271e-04 3.2064914e-04 +7 10002 2 1 total P3 2.1384697e-04 2.1457400e-04 +0 10002 2 2 total P0 2.0349450e+00 2.5779989e-01 +1 10002 2 2 total P1 5.0994051e-01 5.1235906e-02 +2 10002 2 2 total P2 1.1117461e-01 1.3019817e-02 +3 10002 2 2 total P3 2.4988436e-02 8.3123526e-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.0000000e+00 3.8609191e-02 +2 10002 1 2 total 1.0000000e+00 6.7667348e-02 +1 10002 2 1 total 1.0000000e+00 1.4142136e+00 +0 10002 2 2 total 1.0000000e+00 1.3592921e-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.0000000e+00 0.0000000e+00 +2 10002 1 2 total 0.0000000e+00 0.0000000e+00 +1 10002 2 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.6605563e+07 1.0424355e+06 +0 10002 2 total 3.2841204e+05 3.8828436e+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.0000000e+00 0.0000000e+00 +0 10002 2 total 0.0000000e+00 0.0000000e+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index e8c343cb0f..53f29f1d5f 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -a84cc1ba0556c47dfa13d959e7ca34a4e9855d4c85b60b3503a2f0b367df1bef65df1d535fa852b285075846ecb61050aa42e66ba2b0af3d9c51dc969cc4e6fd \ No newline at end of file +400e4cca1866a1a56b20c3d438a0dd518b069f24ce5f7b29d012d2f5898d36560876ba0ced28e94b1efabd5c9a26560cb9fc85372f7a608dec0ac2e93c558184 \ 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 b2d96884f3..861edc6ef5 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -059bd780997dc36a315d1a7266296ed511aae2e5c362f7f47b81022a6e4588d6ae0ea06f35893f0efd004e925ee32ea1d284a40cc1a0f861b08391cdf1b0e8a0 \ No newline at end of file +f4f74a0831726a754c8b3f54d97af4ef329dc6a925520599e8a0c07a490c65878ba4cf8023d29971eec02af3a196a0b39c376ef5f7558003b78db2fd6e94b1ef \ 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 85175d3830..200fddbeb0 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] +[[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] ..., - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]]][[[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] ..., - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]]][[[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] ..., - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]]][[[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] ..., - [[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]]][[[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] ..., - [[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]] + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]] - [[0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00] - [0.00000e+00 0.00000e+00 0.00000e+00]]] \ No newline at end of file + [[0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00] + [0.0000000e+00 0.0000000e+00 0.0000000e+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 2b188cf290..d440a48d78 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -11,12 +11,12 @@ import sys import numpy as np import pandas as pd -# Require numpy and pandas to print output in scientific notation with 6 +# Require numpy and pandas to print output in scientific notation with 8 # significant figures. This is needed to avoid round off error when large # numbers are printed, which can cause tests to fail for different build # configurations. -np.set_printoptions(formatter={'float': '{:.5e}'.format}) -pd.options.display.float_format = '{:.5e}'.format +np.set_printoptions(formatter={'float': '{:.7e}'.format}) +pd.options.display.float_format = '{:.7e}'.format sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From ccf564ded56bda6e7f376f7c414ff292c9b6a5ee Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Wed, 13 Jul 2016 17:59:38 +0000 Subject: [PATCH 155/417] updated multipole test results --- tests/test_multipole/results_true.dat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index eedf9279fa..321e010c68 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -1,12 +1,12 @@ k-combined: -1.457760E+00 1.119659E-02 +1.434998E+00 9.402333E-03 Cell ID = 11 Name = Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.00000e+02 0.00000e+00 7.00000e+02 8.00000e+02] + Temperature = [5.0000000e+02 0.0000000e+00 7.0000000e+02 8.0000000e+02] Translation = None Offset = None Distribcell index= 1 From d67608534b1001f80f89ded795f700dcb6ec2fa9 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Wed, 13 Jul 2016 18:09:53 +0000 Subject: [PATCH 156/417] updated results for multipole test with correct multipole library --- tests/test_multipole/results_true.dat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 321e010c68..d65dbd2046 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.434998E+00 9.402333E-03 +1.457760E+00 1.119659E-02 Cell ID = 11 Name = From caccebf6d53d58eb68765cc43f36a9aa7008f628 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Wed, 13 Jul 2016 18:12:15 +0000 Subject: [PATCH 157/417] changed number of sig figs from 8 to 12 --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 320 +++++------ .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 6 +- 9 files changed, 700 insertions(+), 692 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index f8353aa667..8fc2f94033 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.5362442e-01 2.1052696e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.0085218e-01 2.2857554e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.0085218e-01 2.2857554e-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.4903456e-02 4.3127612e-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.8048066e-02 4.5799637e-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.6855390e-02 2.6221598e-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.0649290e-02 6.4098745e-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.1379551e+00 5.0736381e-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.8872097e-01 1.7830429e-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.8930356e-01 2.3075539e-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.8930356e-01 2.3145605e-02 -1 10000 1 1 total P1 4.6224418e-02 5.9071696e-03 -2 10000 1 1 total P2 1.7983585e-02 2.8829720e-03 -3 10000 1 1 total P3 6.6283735e-03 2.4571090e-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.8930356e-01 2.3145605e-02 -1 10000 1 1 total P1 4.6224418e-02 5.9071696e-03 -2 10000 1 1 total P2 1.7983585e-02 2.8829720e-03 -3 10000 1 1 total P3 6.6283735e-03 2.4571090e-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.0000000e+00 6.6110820e-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.5835019e-02 5.5918249e-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.0000000e+00 4.6070523e-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.0000000e+00 5.1471457e-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.0013087e+06 1.4621656e+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.0003978e-02 6.3669079e-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.1159411e-01 1.3793168e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.7925506e-01 2.9189501e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.7925506e-01 2.9189501e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.2098464e-03 2.8633413e-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.2098464e-03 2.8633413e-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.0938426e-01 1.3551267e-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.0798735e-01 2.9308089e-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.0798735e-01 2.9308089e-02 -1 10001 1 1 total P1 3.0617153e-02 7.4644560e-03 -2 10001 1 1 total P2 1.8911490e-02 4.3228277e-03 -3 10001 1 1 total P3 6.2346182e-03 3.3382023e-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.0798735e-01 2.9308089e-02 -1 10001 1 1 total P1 3.0617153e-02 7.4644560e-03 -2 10001 1 1 total P2 1.8911490e-02 4.3228277e-03 -3 10001 1 1 total P3 6.2346182e-03 3.3382023e-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.0000000e+00 9.5038722e-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.8332612e+06 1.6635517e+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.0499883e-01 4.3964488e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.9918398e-01 4.0914120e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.9918398e-01 4.0914120e-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.0603412e-03 5.5452442e-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.0603412e-03 5.5452442e-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.9893849e-01 4.3492984e-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.0341466e-01 4.3958737e-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.0341466e-01 4.3585994e-02 -1 10002 1 1 total P1 4.1041742e-01 1.5877220e-02 -2 10002 1 1 total P2 1.4330104e-01 7.1873777e-03 -3 10002 1 1 total P3 8.7394263e-03 3.5714413e-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.0341466e-01 4.3585994e-02 -1 10002 1 1 total P1 4.1041742e-01 1.5877220e-02 -2 10002 1 1 total P2 1.4330104e-01 7.1873777e-03 -3 10002 1 1 total P3 8.7394263e-03 3.5714413e-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.0000000e+00 5.6866725e-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.7321997e+06 1.5969143e+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.53624422471e-01 2.10526963253e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.00852177884e-01 2.28575540033e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.00852177884e-01 2.28575540033e-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.49034558324e-02 4.31276119955e-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.80480660339e-02 4.57996368874e-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.68553897985e-02 2.62215977624e-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.06492898576e-02 6.40987451703e-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.13795513809e+00 5.07363814554e-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.88720966639e-01 1.78304285991e-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.89303556282e-01 2.30755385726e-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.89303556282e-01 2.31456046242e-02 +1 10000 1 1 total P1 4.62244178314e-02 5.90716955682e-03 +2 10000 1 1 total P2 1.79835850203e-02 2.88297198167e-03 +3 10000 1 1 total P3 6.62837351395e-03 2.45710898378e-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.89303556282e-01 2.31456046242e-02 +1 10000 1 1 total P1 4.62244178314e-02 5.90716955682e-03 +2 10000 1 1 total P2 1.79835850203e-02 2.88297198167e-03 +3 10000 1 1 total P3 6.62837351395e-03 2.45710898378e-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.00000000000e+00 6.61108201731e-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.58350193370e-02 5.59182486071e-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.00000000000e+00 4.60705234720e-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.00000000000e+00 5.14714567344e-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.00130873975e+06 1.46216555365e+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.00039777878e-02 6.36690787427e-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.11594108102e-01 1.37931681282e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.79255063691e-01 2.91895009803e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.79255063691e-01 2.91895009803e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.20984640163e-03 2.86334126604e-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.20984640163e-03 2.86334126604e-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.09384261701e-01 1.35512674906e-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.07987349445e-01 2.93080885044e-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.07987349445e-01 2.93080885044e-02 +1 10001 1 1 total P1 3.06171532535e-02 7.46445601186e-03 +2 10001 1 1 total P2 1.89114904073e-02 4.32282773240e-03 +3 10001 1 1 total P3 6.23461818721e-03 3.33820228054e-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.07987349445e-01 2.93080885044e-02 +1 10001 1 1 total P1 3.06171532535e-02 7.46445601186e-03 +2 10001 1 1 total P2 1.89114904073e-02 4.32282773240e-03 +3 10001 1 1 total P3 6.23461818721e-03 3.33820228054e-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.00000000000e+00 9.50387215070e-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.83326115257e+06 1.66355174520e+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.04998833317e-01 4.39644875947e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.99183982700e-01 4.09141196047e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.99183982700e-01 4.09141196047e-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.06034115726e-03 5.54524424276e-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.06034115726e-03 5.54524424276e-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.98938492160e-01 4.34929841727e-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.03414663159e-01 4.39587370764e-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.03414663159e-01 4.35859938035e-02 +1 10002 1 1 total P1 4.10417418590e-01 1.58772201944e-02 +2 10002 1 1 total P2 1.43301036475e-01 7.18737766348e-03 +3 10002 1 1 total P3 8.73942634056e-03 3.57144134504e-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.03414663159e-01 4.35859938035e-02 +1 10002 1 1 total P1 4.10417418590e-01 1.58772201944e-02 +2 10002 1 1 total P2 1.43301036475e-01 7.18737766348e-03 +3 10002 1 1 total P3 8.73942634056e-03 3.57144134504e-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.00000000000e+00 5.68667253071e-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.73219969947e+06 1.59691426430e+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.00000000000e+00 0.00000000000e+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 70c7134536..3e7a512e74 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.1459340e+00 5.5382169e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.1891920e-01 5.2064426e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.1891920e-01 5.2064426e-01 - 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 1.9762206e-02 1.0628764e-02 - 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 1.9762206e-02 1.0628764e-02 - 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.0000000e+00 0.0000000e+00 - 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.0000000e+00 0.0000000e+00 - 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.0000000e+00 0.0000000e+00 - 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 1.1261718e+00 5.4344001e-01 - 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 1.1425469e+00 5.7013139e-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.1425469e+00 5.7013139e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.4738129e-01 2.1632217e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.4120179e-01 6.6503773e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.9228270e-02 2.4620832e-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.1425469e+00 5.7013139e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.4738129e-01 2.1632217e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.4120179e-01 6.6503773e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.9228270e-02 2.4620832e-02 - 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 1.0000000e+00 5.2971733e-01 - 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.0000000e+00 0.0000000e+00 - 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.0000000e+00 0.0000000e+00 - 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.0000000e+00 0.0000000e+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.7424571e+05 4.1639769e+05 - 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.0000000e+00 0.0000000e+00 + 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 1.14593400053e+00 5.53821694685e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919198978e-01 5.20644255933e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919198978e-01 5.20644255933e-01 + 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 1.97622061146e-02 1.06287640925e-02 + 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 1.97622061146e-02 1.06287640925e-02 + 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.00000000000e+00 0.00000000000e+00 + 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.00000000000e+00 0.00000000000e+00 + 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.00000000000e+00 0.00000000000e+00 + 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 1.12617179441e+00 5.43440008398e-01 + 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 1.14254691911e+00 5.70131389856e-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254691911e+00 5.70131389856e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294335e-01 2.16322168307e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793415e-01 6.65037725808e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282704188e-02 2.46208323203e-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254691911e+00 5.70131389856e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294335e-01 2.16322168307e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793415e-01 6.65037725808e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282704188e-02 2.46208323203e-02 + 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 1.00000000000e+00 5.29717327374e-01 + 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.00000000000e+00 0.00000000000e+00 + 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.00000000000e+00 0.00000000000e+00 + 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.00000000000e+00 0.00000000000e+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.74245714482e+05 4.16397691599e+05 + 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.00000000000e+00 0.00000000000e+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index ca424dc6b7..e02a0d82ab 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,230 @@ domain=10000 type=total -[4.1482549e-01 6.6016992e-01] -[2.2792909e-02 4.7518928e-02] +[4.14825490214e-01 6.60169918628e-01] +[2.27929090938e-02 4.75189279082e-02] domain=10000 type=transport -[3.5685964e-01 6.4764766e-01] -[2.5493596e-02 2.3703735e-02] +[3.56859637119e-01 6.47647660079e-01] +[2.54935955781e-02 2.37037352047e-02] domain=10000 type=nu-transport -[3.5685964e-01 6.4764766e-01] -[2.5493596e-02 2.3703735e-02] +[3.56859637119e-01 6.47647660079e-01] +[2.54935955781e-02 2.37037352047e-02] domain=10000 type=absorption -[2.7407845e-02 2.6451074e-01] -[2.6924971e-03 2.3367077e-02] +[2.74078449200e-02 2.64510741628e-01] +[2.69249710935e-03 2.33670773915e-02] domain=10000 type=capture -[1.9844550e-02 7.1719353e-02] -[2.6433043e-03 2.5207859e-02] +[1.98445499412e-02 7.17193529235e-02] +[2.64330432866e-03 2.52078593512e-02] domain=10000 type=fission -[7.5632950e-03 1.9279139e-01] -[5.0848368e-04 1.7105922e-02] +[7.56329497887e-03 1.92791388704e-01] +[5.08483677909e-04 1.71059218667e-02] domain=10000 type=nu-fission -[1.9431740e-02 4.6977478e-01] -[1.3229756e-03 4.1682000e-02] +[1.94317403720e-02 4.69774777026e-01] +[1.32297561222e-03 4.16819997832e-02] domain=10000 type=kappa-fission -[1.4745698e+00 3.7286896e+01] -[9.9235321e-02 3.3083777e+00] +[1.47456982255e+00 3.72868964072e+01] +[9.92353210963e-02 3.30837772453e+00] domain=10000 type=scatter -[3.8741765e-01 3.9565918e-01] -[2.0625732e-02 2.5125057e-02] +[3.87417645294e-01 3.95659177000e-01] +[2.06257321021e-02 2.51250567894e-02] domain=10000 type=nu-scatter -[3.8518839e-01 4.1238940e-01] -[2.6945621e-02 1.5425277e-02] +[3.85188388202e-01 4.12389399309e-01] +[2.69456210647e-02 1.54252769583e-02] domain=10000 type=scatter matrix -[[[3.8419946e-01 5.1870284e-02 2.0068845e-02 9.4777157e-03] - [9.8893039e-04 -2.0723460e-04 -1.0336618e-04 2.3429062e-04]] +[[[3.84199457809e-01 5.18702843460e-02 2.00688453200e-02 9.47771570559e-03] + [9.88930393331e-04 -2.07234596475e-04 -1.03366180541e-04 + 2.34290623037e-04]] - [[9.2463991e-04 -7.6770497e-04 4.9378887e-04 -1.7149723e-04] - [4.1146476e-01 1.6481728e-02 6.3714905e-03 -1.0499122e-02]]] -[[[2.7001014e-02 6.9825489e-03 2.8464952e-03 2.2335198e-03] - [4.8241945e-04 1.4901078e-04 1.8431631e-04 1.2817311e-04]] + [[9.24639908764e-04 -7.67704968439e-04 4.93788871844e-04 + -1.71497229323e-04] + [4.11464759400e-01 1.64817280067e-02 6.37149049282e-03 -1.04991220898e-02]]] +[[[2.70010135610e-02 6.98254887613e-03 2.84649518329e-03 2.23351977181e-03] + [4.82419445120e-04 1.49010775362e-04 1.84316311924e-04 1.28173110834e-04]] - [[9.2488346e-04 7.6790719e-04 4.9391894e-04 1.7154240e-04] - [1.5244935e-02 4.5017280e-03 1.0550749e-02 1.0438188e-02]]] + [[9.24883463644e-04 7.67907185854e-04 4.93918938358e-04 1.71542402570e-04] + [1.52449353958e-02 4.50172796078e-03 1.05507493414e-02 1.04381877194e-02]]] domain=10000 type=nu-scatter matrix -[[[3.8419946e-01 5.1870284e-02 2.0068845e-02 9.4777157e-03] - [9.8893039e-04 -2.0723460e-04 -1.0336618e-04 2.3429062e-04]] +[[[3.84199457809e-01 5.18702843460e-02 2.00688453200e-02 9.47771570559e-03] + [9.88930393331e-04 -2.07234596475e-04 -1.03366180541e-04 + 2.34290623037e-04]] - [[9.2463991e-04 -7.6770497e-04 4.9378887e-04 -1.7149723e-04] - [4.1146476e-01 1.6481728e-02 6.3714905e-03 -1.0499122e-02]]] -[[[2.7001014e-02 6.9825489e-03 2.8464952e-03 2.2335198e-03] - [4.8241945e-04 1.4901078e-04 1.8431631e-04 1.2817311e-04]] + [[9.24639908764e-04 -7.67704968439e-04 4.93788871844e-04 + -1.71497229323e-04] + [4.11464759400e-01 1.64817280067e-02 6.37149049282e-03 -1.04991220898e-02]]] +[[[2.70010135610e-02 6.98254887613e-03 2.84649518329e-03 2.23351977181e-03] + [4.82419445120e-04 1.49010775362e-04 1.84316311924e-04 1.28173110834e-04]] - [[9.2488346e-04 7.6790719e-04 4.9391894e-04 1.7154240e-04] - [1.5244935e-02 4.5017280e-03 1.0550749e-02 1.0438188e-02]]] + [[9.24883463644e-04 7.67907185854e-04 4.93918938358e-04 1.71542402570e-04] + [1.52449353958e-02 4.50172796078e-03 1.05507493414e-02 1.04381877194e-02]]] domain=10000 type=multiplicity matrix -[[1.0000000e+00 1.0000000e+00] - [1.0000000e+00 1.0000000e+00]] -[[7.8516455e-02 6.8718427e-01] - [1.4142136e+00 4.1130349e-02]] +[[1.00000000000e+00 1.00000000000e+00] + [1.00000000000e+00 1.00000000000e+00]] +[[7.85164550057e-02 6.87184270936e-01] + [1.41421356237e+00 4.11303488039e-02]] domain=10000 type=nu-fission matrix -[[2.0142428e-02 0.0000000e+00] - [4.5436647e-01 0.0000000e+00]] -[[3.1490917e-03 0.0000000e+00] - [2.7425507e-02 0.0000000e+00]] +[[2.01424281632e-02 0.00000000000e+00] + [4.54366466559e-01 0.00000000000e+00]] +[[3.14909167627e-03 0.00000000000e+00] + [2.74255069249e-02 0.00000000000e+00]] domain=10000 type=chi -[1.0000000e+00 0.0000000e+00] -[4.6070523e-02 0.0000000e+00] +[1.00000000000e+00 0.00000000000e+00] +[4.60705234720e-02 0.00000000000e+00] domain=10000 type=chi-prompt -[1.0000000e+00 0.0000000e+00] -[5.1471457e-02 0.0000000e+00] +[1.00000000000e+00 0.00000000000e+00] +[5.14714567344e-02 0.00000000000e+00] domain=10000 type=velocity -[1.7515211e+07 3.5017200e+05] -[1.4381753e+06 2.9945932e+04] +[1.75152106204e+07 3.50171995194e+05] +[1.43817527390e+06 2.99459316967e+04] domain=10000 type=prompt-nu-fission -[1.9239222e-02 4.6671903e-01] -[1.3095060e-03 4.1410870e-02] +[1.92392215460e-02 4.66719027354e-01] +[1.30950595010e-03 4.14108703995e-02] domain=10001 type=total -[3.1373767e-01 3.0082140e-01] -[1.5581902e-02 2.8052448e-02] +[3.13737670907e-01 3.00821401699e-01] +[1.55819023553e-02 2.80524484312e-02] domain=10001 type=transport -[2.7322787e-01 3.1237484e-01] -[3.3115366e-02 4.9605832e-02] +[2.73227872020e-01 3.12374836218e-01] +[3.31153664433e-02 4.96058317053e-02] domain=10001 type=nu-transport -[2.7322787e-01 3.1237484e-01] -[3.3115366e-02 4.9605832e-02] +[2.73227872020e-01 3.12374836218e-01] +[3.31153664433e-02 4.96058317053e-02] domain=10001 type=absorption -[1.5749914e-03 5.4003788e-03] -[3.2254789e-04 6.1813831e-04] +[1.57499139045e-03 5.40037883216e-03] +[3.22547890697e-04 6.18138308229e-04] domain=10001 type=capture -[1.5749914e-03 5.4003788e-03] -[3.2254789e-04 6.1813831e-04] +[1.57499139045e-03 5.40037883216e-03] +[3.22547890697e-04 6.18138308229e-04] domain=10001 type=fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10001 type=nu-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10001 type=kappa-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10001 type=scatter -[3.1216268e-01 2.9542102e-01] -[1.5321923e-02 2.7445489e-02] +[3.12162679516e-01 2.95421022866e-01] +[1.53219230918e-02 2.74454888860e-02] domain=10001 type=nu-scatter -[3.1012074e-01 2.9626427e-01] -[3.3788106e-02 4.3792226e-02] +[3.10120735076e-01 2.96264270001e-01] +[3.37881061225e-02 4.37922257327e-02] domain=10001 type=scatter matrix -[[[3.1012074e-01 3.8229590e-02 2.0744942e-02 7.9642968e-03] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] +[[[3.10120735076e-01 3.82295903624e-02 2.07449419697e-02 7.96429677175e-03] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [2.9626427e-01 -1.1213636e-02 8.8365663e-03 -3.2700673e-03]]] -[[[3.3788106e-02 8.4839971e-03 4.6956107e-03 3.7316226e-03] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [2.96264270001e-01 -1.12136361341e-02 8.83656629804e-03 + -3.27006730881e-03]]] +[[[3.37881061225e-02 8.48399710345e-03 4.69561067742e-03 3.73162260999e-03] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [4.3792226e-02 1.6180366e-02 1.1503964e-02 7.3288458e-03]]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [4.37922257327e-02 1.61803664886e-02 1.15039644588e-02 7.32884580152e-03]]] domain=10001 type=nu-scatter matrix -[[[3.1012074e-01 3.8229590e-02 2.0744942e-02 7.9642968e-03] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] +[[[3.10120735076e-01 3.82295903624e-02 2.07449419697e-02 7.96429677175e-03] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [2.9626427e-01 -1.1213636e-02 8.8365663e-03 -3.2700673e-03]]] -[[[3.3788106e-02 8.4839971e-03 4.6956107e-03 3.7316226e-03] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [2.96264270001e-01 -1.12136361341e-02 8.83656629804e-03 + -3.27006730881e-03]]] +[[[3.37881061225e-02 8.48399710345e-03 4.69561067742e-03 3.73162260999e-03] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [4.3792226e-02 1.6180366e-02 1.1503964e-02 7.3288458e-03]]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [4.37922257327e-02 1.61803664886e-02 1.15039644588e-02 7.32884580152e-03]]] domain=10001 type=multiplicity matrix -[[1.0000000e+00 0.0000000e+00] - [0.0000000e+00 1.0000000e+00]] -[[1.0877870e-01 0.0000000e+00] - [0.0000000e+00 1.4242717e-01]] +[[1.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 1.00000000000e+00]] +[[1.08778696728e-01 0.00000000000e+00] + [0.00000000000e+00 1.42427173055e-01]] domain=10001 type=nu-fission matrix -[[0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00]] -[[0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00]] +[[0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00]] +[[0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00]] domain=10001 type=chi -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10001 type=chi-prompt -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10001 type=velocity -[1.6677839e+07 3.3495337e+05] -[1.2664443e+06 3.8336782e+04] +[1.66778394974e+07 3.34953367601e+05] +[1.26644430952e+06 3.83367816257e+04] domain=10001 type=prompt-nu-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=total -[6.6457226e-01 2.0523840e+00] -[3.1214752e-02 2.2434291e-01] +[6.64572260617e-01 2.05238401381e+00] +[3.12147519127e-02 2.24342906705e-01] domain=10002 type=transport -[2.9056526e-01 1.5164380e+00] -[2.3851855e-02 2.3519727e-01] +[2.90565257425e-01 1.51643801275e+00] +[2.38518546437e-02 2.35197268504e-01] domain=10002 type=nu-transport -[2.9056526e-01 1.5164380e+00] -[2.3851855e-02 2.3519727e-01] +[2.90565257425e-01 1.51643801275e+00] +[2.38518546437e-02 2.35197268504e-01] domain=10002 type=absorption -[6.9039952e-04 3.1687257e-02] -[4.4147569e-05 3.7465586e-03] +[6.90399522187e-04 3.16872566141e-02] +[4.41475687059e-05 3.74655858238e-03] domain=10002 type=capture -[6.9039952e-04 3.1687257e-02] -[4.4147569e-05 3.7465586e-03] +[6.90399522187e-04 3.16872566141e-02] +[4.41475687059e-05 3.74655858238e-03] domain=10002 type=fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=nu-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=kappa-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=scatter -[6.6388186e-01 2.0206968e+00] -[3.1172684e-02 2.2060445e-01] +[6.63881861094e-01 2.02069675720e+00] +[3.11726840046e-02 2.20604453857e-01] domain=10002 type=nu-scatter -[6.7126920e-01 2.0353883e+00] -[2.6186371e-02 2.5806033e-01] +[6.71269204714e-01 2.03538832876e+00] +[2.61863711686e-02 2.58060328563e-01] domain=10002 type=scatter matrix -[[[6.3990148e-01 3.8116745e-01 1.5239190e-01 9.1480223e-03] - [3.1367720e-02 8.7577232e-03 -2.5679011e-03 -3.7848029e-03]] +[[[6.39901484868e-01 3.81167448865e-01 1.52391897805e-01 9.14802228847e-03] + [3.13677198465e-02 8.75772320612e-03 -2.56790105967e-03 + -3.78480288187e-03]] - [[4.4334313e-04 3.9996041e-04 3.1956271e-04 2.1384697e-04] - [2.0349450e+00 5.0994051e-01 1.1117461e-01 2.4988436e-02]]] -[[[2.4709123e-02 1.6243265e-02 8.1562777e-03 3.8885621e-03] - [1.7281129e-03 9.2567050e-04 1.0139848e-03 8.1707557e-04]] + [[4.43343134122e-04 3.99960414260e-04 3.19562707240e-04 2.13846969230e-04] + [2.03494498562e+00 5.09940513161e-01 1.11174608804e-01 2.49884357394e-02]]] +[[[2.47091227977e-02 1.62432649213e-02 8.15627770336e-03 3.88856214164e-03] + [1.72811290328e-03 9.25670501198e-04 1.01398475208e-03 8.17075570852e-04]] - [[4.4485039e-04 4.0132018e-04 3.2064914e-04 2.1457400e-04] - [2.5779989e-01 5.1235906e-02 1.3019817e-02 8.3123526e-03]]] + [[4.44850393331e-04 4.01320182735e-04 3.20649142996e-04 2.14573997098e-04] + [2.57799888924e-01 5.12359062971e-02 1.30198170388e-02 8.31235256236e-03]]] domain=10002 type=nu-scatter matrix -[[[6.3990148e-01 3.8116745e-01 1.5239190e-01 9.1480223e-03] - [3.1367720e-02 8.7577232e-03 -2.5679011e-03 -3.7848029e-03]] +[[[6.39901484868e-01 3.81167448865e-01 1.52391897805e-01 9.14802228847e-03] + [3.13677198465e-02 8.75772320612e-03 -2.56790105967e-03 + -3.78480288187e-03]] - [[4.4334313e-04 3.9996041e-04 3.1956271e-04 2.1384697e-04] - [2.0349450e+00 5.0994051e-01 1.1117461e-01 2.4988436e-02]]] -[[[2.4709123e-02 1.6243265e-02 8.1562777e-03 3.8885621e-03] - [1.7281129e-03 9.2567050e-04 1.0139848e-03 8.1707557e-04]] + [[4.43343134122e-04 3.99960414260e-04 3.19562707240e-04 2.13846969230e-04] + [2.03494498562e+00 5.09940513161e-01 1.11174608804e-01 2.49884357394e-02]]] +[[[2.47091227977e-02 1.62432649213e-02 8.15627770336e-03 3.88856214164e-03] + [1.72811290328e-03 9.25670501198e-04 1.01398475208e-03 8.17075570852e-04]] - [[4.4485039e-04 4.0132018e-04 3.2064914e-04 2.1457400e-04] - [2.5779989e-01 5.1235906e-02 1.3019817e-02 8.3123526e-03]]] + [[4.44850393331e-04 4.01320182735e-04 3.20649142996e-04 2.14573997098e-04] + [2.57799888924e-01 5.12359062971e-02 1.30198170388e-02 8.31235256236e-03]]] domain=10002 type=multiplicity matrix -[[1.0000000e+00 1.0000000e+00] - [1.0000000e+00 1.0000000e+00]] -[[3.8609191e-02 6.7667348e-02] - [1.4142136e+00 1.3592921e-01]] +[[1.00000000000e+00 1.00000000000e+00] + [1.00000000000e+00 1.00000000000e+00]] +[[3.86091908369e-02 6.76673479996e-02] + [1.41421356237e+00 1.35929206606e-01]] domain=10002 type=nu-fission matrix -[[0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00]] -[[0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00]] +[[0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00]] +[[0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00]] domain=10002 type=chi -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=chi-prompt -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] domain=10002 type=velocity -[1.6605563e+07 3.2841204e+05] -[1.0424355e+06 3.8828436e+04] +[1.66055628732e+07 3.28412038650e+05] +[1.04243552374e+06 3.88284357298e+04] domain=10002 type=prompt-nu-fission -[0.0000000e+00 0.0000000e+00] -[0.0000000e+00 0.0000000e+00] +[0.00000000000e+00 0.00000000000e+00] +[0.00000000000e+00 0.00000000000e+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 0e25d3ee82..195cea8ba2 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.1482549e-01 2.2792909e-02 -0 10000 2 total 6.6016992e-01 4.7518928e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.5685964e-01 2.5493596e-02 -0 10000 2 total 6.4764766e-01 2.3703735e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.5685964e-01 2.5493596e-02 -0 10000 2 total 6.4764766e-01 2.3703735e-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.7407845e-02 2.6924971e-03 -0 10000 2 total 2.6451074e-01 2.3367077e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.9844550e-02 2.6433043e-03 -0 10000 2 total 7.1719353e-02 2.5207859e-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.5632950e-03 5.0848368e-04 -0 10000 2 total 1.9279139e-01 1.7105922e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.9431740e-02 1.3229756e-03 -0 10000 2 total 4.6977478e-01 4.1682000e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.4745698e+00 9.9235321e-02 -0 10000 2 total 3.7286896e+01 3.3083777e+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.8741765e-01 2.0625732e-02 -0 10000 2 total 3.9565918e-01 2.5125057e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.8518839e-01 2.6945621e-02 -0 10000 2 total 4.1238940e-01 1.5425277e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.8419946e-01 2.7001014e-02 -13 10000 1 1 total P1 5.1870284e-02 6.9825489e-03 -14 10000 1 1 total P2 2.0068845e-02 2.8464952e-03 -15 10000 1 1 total P3 9.4777157e-03 2.2335198e-03 -8 10000 1 2 total P0 9.8893039e-04 4.8241945e-04 -9 10000 1 2 total P1 -2.0723460e-04 1.4901078e-04 -10 10000 1 2 total P2 -1.0336618e-04 1.8431631e-04 -11 10000 1 2 total P3 2.3429062e-04 1.2817311e-04 -4 10000 2 1 total P0 9.2463991e-04 9.2488346e-04 -5 10000 2 1 total P1 -7.6770497e-04 7.6790719e-04 -6 10000 2 1 total P2 4.9378887e-04 4.9391894e-04 -7 10000 2 1 total P3 -1.7149723e-04 1.7154240e-04 -0 10000 2 2 total P0 4.1146476e-01 1.5244935e-02 -1 10000 2 2 total P1 1.6481728e-02 4.5017280e-03 -2 10000 2 2 total P2 6.3714905e-03 1.0550749e-02 -3 10000 2 2 total P3 -1.0499122e-02 1.0438188e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.8419946e-01 2.7001014e-02 -13 10000 1 1 total P1 5.1870284e-02 6.9825489e-03 -14 10000 1 1 total P2 2.0068845e-02 2.8464952e-03 -15 10000 1 1 total P3 9.4777157e-03 2.2335198e-03 -8 10000 1 2 total P0 9.8893039e-04 4.8241945e-04 -9 10000 1 2 total P1 -2.0723460e-04 1.4901078e-04 -10 10000 1 2 total P2 -1.0336618e-04 1.8431631e-04 -11 10000 1 2 total P3 2.3429062e-04 1.2817311e-04 -4 10000 2 1 total P0 9.2463991e-04 9.2488346e-04 -5 10000 2 1 total P1 -7.6770497e-04 7.6790719e-04 -6 10000 2 1 total P2 4.9378887e-04 4.9391894e-04 -7 10000 2 1 total P3 -1.7149723e-04 1.7154240e-04 -0 10000 2 2 total P0 4.1146476e-01 1.5244935e-02 -1 10000 2 2 total P1 1.6481728e-02 4.5017280e-03 -2 10000 2 2 total P2 6.3714905e-03 1.0550749e-02 -3 10000 2 2 total P3 -1.0499122e-02 1.0438188e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.0000000e+00 7.8516455e-02 -2 10000 1 2 total 1.0000000e+00 6.8718427e-01 -1 10000 2 1 total 1.0000000e+00 1.4142136e+00 -0 10000 2 2 total 1.0000000e+00 4.1130349e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.0142428e-02 3.1490917e-03 -2 10000 1 2 total 0.0000000e+00 0.0000000e+00 -1 10000 2 1 total 4.5436647e-01 2.7425507e-02 -0 10000 2 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.0000000e+00 4.6070523e-02 -0 10000 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.0000000e+00 5.1471457e-02 -0 10000 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.7515211e+07 1.4381753e+06 -0 10000 2 total 3.5017200e+05 2.9945932e+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.9239222e-02 1.3095060e-03 -0 10000 2 total 4.6671903e-01 4.1410870e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.1373767e-01 1.5581902e-02 -0 10001 2 total 3.0082140e-01 2.8052448e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.7322787e-01 3.3115366e-02 -0 10001 2 total 3.1237484e-01 4.9605832e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.7322787e-01 3.3115366e-02 -0 10001 2 total 3.1237484e-01 4.9605832e-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.5749914e-03 3.2254789e-04 -0 10001 2 total 5.4003788e-03 6.1813831e-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.5749914e-03 3.2254789e-04 -0 10001 2 total 5.4003788e-03 6.1813831e-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.1216268e-01 1.5321923e-02 -0 10001 2 total 2.9542102e-01 2.7445489e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.1012074e-01 3.3788106e-02 -0 10001 2 total 2.9626427e-01 4.3792226e-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.1012074e-01 3.3788106e-02 -13 10001 1 1 total P1 3.8229590e-02 8.4839971e-03 -14 10001 1 1 total P2 2.0744942e-02 4.6956107e-03 -15 10001 1 1 total P3 7.9642968e-03 3.7316226e-03 -8 10001 1 2 total P0 0.0000000e+00 0.0000000e+00 -9 10001 1 2 total P1 0.0000000e+00 0.0000000e+00 -10 10001 1 2 total P2 0.0000000e+00 0.0000000e+00 -11 10001 1 2 total P3 0.0000000e+00 0.0000000e+00 -4 10001 2 1 total P0 0.0000000e+00 0.0000000e+00 -5 10001 2 1 total P1 0.0000000e+00 0.0000000e+00 -6 10001 2 1 total P2 0.0000000e+00 0.0000000e+00 -7 10001 2 1 total P3 0.0000000e+00 0.0000000e+00 -0 10001 2 2 total P0 2.9626427e-01 4.3792226e-02 -1 10001 2 2 total P1 -1.1213636e-02 1.6180366e-02 -2 10001 2 2 total P2 8.8365663e-03 1.1503964e-02 -3 10001 2 2 total P3 -3.2700673e-03 7.3288458e-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.1012074e-01 3.3788106e-02 -13 10001 1 1 total P1 3.8229590e-02 8.4839971e-03 -14 10001 1 1 total P2 2.0744942e-02 4.6956107e-03 -15 10001 1 1 total P3 7.9642968e-03 3.7316226e-03 -8 10001 1 2 total P0 0.0000000e+00 0.0000000e+00 -9 10001 1 2 total P1 0.0000000e+00 0.0000000e+00 -10 10001 1 2 total P2 0.0000000e+00 0.0000000e+00 -11 10001 1 2 total P3 0.0000000e+00 0.0000000e+00 -4 10001 2 1 total P0 0.0000000e+00 0.0000000e+00 -5 10001 2 1 total P1 0.0000000e+00 0.0000000e+00 -6 10001 2 1 total P2 0.0000000e+00 0.0000000e+00 -7 10001 2 1 total P3 0.0000000e+00 0.0000000e+00 -0 10001 2 2 total P0 2.9626427e-01 4.3792226e-02 -1 10001 2 2 total P1 -1.1213636e-02 1.6180366e-02 -2 10001 2 2 total P2 8.8365663e-03 1.1503964e-02 -3 10001 2 2 total P3 -3.2700673e-03 7.3288458e-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.0000000e+00 1.0877870e-01 -2 10001 1 2 total 0.0000000e+00 0.0000000e+00 -1 10001 2 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 2 total 1.0000000e+00 1.4242717e-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.0000000e+00 0.0000000e+00 -2 10001 1 2 total 0.0000000e+00 0.0000000e+00 -1 10001 2 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.6677839e+07 1.2664443e+06 -0 10001 2 total 3.3495337e+05 3.8336782e+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.0000000e+00 0.0000000e+00 -0 10001 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.6457226e-01 3.1214752e-02 -0 10002 2 total 2.0523840e+00 2.2434291e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.9056526e-01 2.3851855e-02 -0 10002 2 total 1.5164380e+00 2.3519727e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.9056526e-01 2.3851855e-02 -0 10002 2 total 1.5164380e+00 2.3519727e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.9039952e-04 4.4147569e-05 -0 10002 2 total 3.1687257e-02 3.7465586e-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.9039952e-04 4.4147569e-05 -0 10002 2 total 3.1687257e-02 3.7465586e-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.6388186e-01 3.1172684e-02 -0 10002 2 total 2.0206968e+00 2.2060445e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.7126920e-01 2.6186371e-02 -0 10002 2 total 2.0353883e+00 2.5806033e-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.3990148e-01 2.4709123e-02 -13 10002 1 1 total P1 3.8116745e-01 1.6243265e-02 -14 10002 1 1 total P2 1.5239190e-01 8.1562777e-03 -15 10002 1 1 total P3 9.1480223e-03 3.8885621e-03 -8 10002 1 2 total P0 3.1367720e-02 1.7281129e-03 -9 10002 1 2 total P1 8.7577232e-03 9.2567050e-04 -10 10002 1 2 total P2 -2.5679011e-03 1.0139848e-03 -11 10002 1 2 total P3 -3.7848029e-03 8.1707557e-04 -4 10002 2 1 total P0 4.4334313e-04 4.4485039e-04 -5 10002 2 1 total P1 3.9996041e-04 4.0132018e-04 -6 10002 2 1 total P2 3.1956271e-04 3.2064914e-04 -7 10002 2 1 total P3 2.1384697e-04 2.1457400e-04 -0 10002 2 2 total P0 2.0349450e+00 2.5779989e-01 -1 10002 2 2 total P1 5.0994051e-01 5.1235906e-02 -2 10002 2 2 total P2 1.1117461e-01 1.3019817e-02 -3 10002 2 2 total P3 2.4988436e-02 8.3123526e-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.3990148e-01 2.4709123e-02 -13 10002 1 1 total P1 3.8116745e-01 1.6243265e-02 -14 10002 1 1 total P2 1.5239190e-01 8.1562777e-03 -15 10002 1 1 total P3 9.1480223e-03 3.8885621e-03 -8 10002 1 2 total P0 3.1367720e-02 1.7281129e-03 -9 10002 1 2 total P1 8.7577232e-03 9.2567050e-04 -10 10002 1 2 total P2 -2.5679011e-03 1.0139848e-03 -11 10002 1 2 total P3 -3.7848029e-03 8.1707557e-04 -4 10002 2 1 total P0 4.4334313e-04 4.4485039e-04 -5 10002 2 1 total P1 3.9996041e-04 4.0132018e-04 -6 10002 2 1 total P2 3.1956271e-04 3.2064914e-04 -7 10002 2 1 total P3 2.1384697e-04 2.1457400e-04 -0 10002 2 2 total P0 2.0349450e+00 2.5779989e-01 -1 10002 2 2 total P1 5.0994051e-01 5.1235906e-02 -2 10002 2 2 total P2 1.1117461e-01 1.3019817e-02 -3 10002 2 2 total P3 2.4988436e-02 8.3123526e-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.0000000e+00 3.8609191e-02 -2 10002 1 2 total 1.0000000e+00 6.7667348e-02 -1 10002 2 1 total 1.0000000e+00 1.4142136e+00 -0 10002 2 2 total 1.0000000e+00 1.3592921e-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.0000000e+00 0.0000000e+00 -2 10002 1 2 total 0.0000000e+00 0.0000000e+00 -1 10002 2 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.6605563e+07 1.0424355e+06 -0 10002 2 total 3.2841204e+05 3.8828436e+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.0000000e+00 0.0000000e+00 -0 10002 2 total 0.0000000e+00 0.0000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.14825490214e-01 2.27929090938e-02 +0 10000 2 total 6.60169918628e-01 4.75189279082e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.56859637119e-01 2.54935955781e-02 +0 10000 2 total 6.47647660079e-01 2.37037352047e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.56859637119e-01 2.54935955781e-02 +0 10000 2 total 6.47647660079e-01 2.37037352047e-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.74078449200e-02 2.69249710935e-03 +0 10000 2 total 2.64510741628e-01 2.33670773915e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.98445499412e-02 2.64330432866e-03 +0 10000 2 total 7.17193529235e-02 2.52078593512e-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.56329497887e-03 5.08483677909e-04 +0 10000 2 total 1.92791388704e-01 1.71059218667e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.94317403720e-02 1.32297561222e-03 +0 10000 2 total 4.69774777026e-01 4.16819997832e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.47456982255e+00 9.92353210963e-02 +0 10000 2 total 3.72868964072e+01 3.30837772453e+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.87417645294e-01 2.06257321021e-02 +0 10000 2 total 3.95659177000e-01 2.51250567894e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.85188388202e-01 2.69456210647e-02 +0 10000 2 total 4.12389399309e-01 1.54252769583e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.84199457809e-01 2.70010135610e-02 +13 10000 1 1 total P1 5.18702843460e-02 6.98254887613e-03 +14 10000 1 1 total P2 2.00688453200e-02 2.84649518329e-03 +15 10000 1 1 total P3 9.47771570559e-03 2.23351977181e-03 +8 10000 1 2 total P0 9.88930393331e-04 4.82419445120e-04 +9 10000 1 2 total P1 -2.07234596475e-04 1.49010775362e-04 +10 10000 1 2 total P2 -1.03366180541e-04 1.84316311924e-04 +11 10000 1 2 total P3 2.34290623037e-04 1.28173110834e-04 +4 10000 2 1 total P0 9.24639908764e-04 9.24883463644e-04 +5 10000 2 1 total P1 -7.67704968439e-04 7.67907185854e-04 +6 10000 2 1 total P2 4.93788871844e-04 4.93918938358e-04 +7 10000 2 1 total P3 -1.71497229323e-04 1.71542402570e-04 +0 10000 2 2 total P0 4.11464759400e-01 1.52449353958e-02 +1 10000 2 2 total P1 1.64817280067e-02 4.50172796078e-03 +2 10000 2 2 total P2 6.37149049282e-03 1.05507493414e-02 +3 10000 2 2 total P3 -1.04991220898e-02 1.04381877194e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.84199457809e-01 2.70010135610e-02 +13 10000 1 1 total P1 5.18702843460e-02 6.98254887613e-03 +14 10000 1 1 total P2 2.00688453200e-02 2.84649518329e-03 +15 10000 1 1 total P3 9.47771570559e-03 2.23351977181e-03 +8 10000 1 2 total P0 9.88930393331e-04 4.82419445120e-04 +9 10000 1 2 total P1 -2.07234596475e-04 1.49010775362e-04 +10 10000 1 2 total P2 -1.03366180541e-04 1.84316311924e-04 +11 10000 1 2 total P3 2.34290623037e-04 1.28173110834e-04 +4 10000 2 1 total P0 9.24639908764e-04 9.24883463644e-04 +5 10000 2 1 total P1 -7.67704968439e-04 7.67907185854e-04 +6 10000 2 1 total P2 4.93788871844e-04 4.93918938358e-04 +7 10000 2 1 total P3 -1.71497229323e-04 1.71542402570e-04 +0 10000 2 2 total P0 4.11464759400e-01 1.52449353958e-02 +1 10000 2 2 total P1 1.64817280067e-02 4.50172796078e-03 +2 10000 2 2 total P2 6.37149049282e-03 1.05507493414e-02 +3 10000 2 2 total P3 -1.04991220898e-02 1.04381877194e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.00000000000e+00 7.85164550057e-02 +2 10000 1 2 total 1.00000000000e+00 6.87184270936e-01 +1 10000 2 1 total 1.00000000000e+00 1.41421356237e+00 +0 10000 2 2 total 1.00000000000e+00 4.11303488039e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.01424281632e-02 3.14909167627e-03 +2 10000 1 2 total 0.00000000000e+00 0.00000000000e+00 +1 10000 2 1 total 4.54366466559e-01 2.74255069249e-02 +0 10000 2 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.00000000000e+00 4.60705234720e-02 +0 10000 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.00000000000e+00 5.14714567344e-02 +0 10000 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.75152106204e+07 1.43817527390e+06 +0 10000 2 total 3.50171995194e+05 2.99459316967e+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.92392215460e-02 1.30950595010e-03 +0 10000 2 total 4.66719027354e-01 4.14108703995e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.13737670907e-01 1.55819023553e-02 +0 10001 2 total 3.00821401699e-01 2.80524484312e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.73227872020e-01 3.31153664433e-02 +0 10001 2 total 3.12374836218e-01 4.96058317053e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.73227872020e-01 3.31153664433e-02 +0 10001 2 total 3.12374836218e-01 4.96058317053e-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.57499139045e-03 3.22547890697e-04 +0 10001 2 total 5.40037883216e-03 6.18138308229e-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.57499139045e-03 3.22547890697e-04 +0 10001 2 total 5.40037883216e-03 6.18138308229e-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.12162679516e-01 1.53219230918e-02 +0 10001 2 total 2.95421022866e-01 2.74454888860e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.10120735076e-01 3.37881061225e-02 +0 10001 2 total 2.96264270001e-01 4.37922257327e-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.10120735076e-01 3.37881061225e-02 +13 10001 1 1 total P1 3.82295903624e-02 8.48399710345e-03 +14 10001 1 1 total P2 2.07449419697e-02 4.69561067742e-03 +15 10001 1 1 total P3 7.96429677175e-03 3.73162260999e-03 +8 10001 1 2 total P0 0.00000000000e+00 0.00000000000e+00 +9 10001 1 2 total P1 0.00000000000e+00 0.00000000000e+00 +10 10001 1 2 total P2 0.00000000000e+00 0.00000000000e+00 +11 10001 1 2 total P3 0.00000000000e+00 0.00000000000e+00 +4 10001 2 1 total P0 0.00000000000e+00 0.00000000000e+00 +5 10001 2 1 total P1 0.00000000000e+00 0.00000000000e+00 +6 10001 2 1 total P2 0.00000000000e+00 0.00000000000e+00 +7 10001 2 1 total P3 0.00000000000e+00 0.00000000000e+00 +0 10001 2 2 total P0 2.96264270001e-01 4.37922257327e-02 +1 10001 2 2 total P1 -1.12136361341e-02 1.61803664886e-02 +2 10001 2 2 total P2 8.83656629804e-03 1.15039644588e-02 +3 10001 2 2 total P3 -3.27006730881e-03 7.32884580152e-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.10120735076e-01 3.37881061225e-02 +13 10001 1 1 total P1 3.82295903624e-02 8.48399710345e-03 +14 10001 1 1 total P2 2.07449419697e-02 4.69561067742e-03 +15 10001 1 1 total P3 7.96429677175e-03 3.73162260999e-03 +8 10001 1 2 total P0 0.00000000000e+00 0.00000000000e+00 +9 10001 1 2 total P1 0.00000000000e+00 0.00000000000e+00 +10 10001 1 2 total P2 0.00000000000e+00 0.00000000000e+00 +11 10001 1 2 total P3 0.00000000000e+00 0.00000000000e+00 +4 10001 2 1 total P0 0.00000000000e+00 0.00000000000e+00 +5 10001 2 1 total P1 0.00000000000e+00 0.00000000000e+00 +6 10001 2 1 total P2 0.00000000000e+00 0.00000000000e+00 +7 10001 2 1 total P3 0.00000000000e+00 0.00000000000e+00 +0 10001 2 2 total P0 2.96264270001e-01 4.37922257327e-02 +1 10001 2 2 total P1 -1.12136361341e-02 1.61803664886e-02 +2 10001 2 2 total P2 8.83656629804e-03 1.15039644588e-02 +3 10001 2 2 total P3 -3.27006730881e-03 7.32884580152e-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.00000000000e+00 1.08778696728e-01 +2 10001 1 2 total 0.00000000000e+00 0.00000000000e+00 +1 10001 2 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 2 total 1.00000000000e+00 1.42427173055e-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.00000000000e+00 0.00000000000e+00 +2 10001 1 2 total 0.00000000000e+00 0.00000000000e+00 +1 10001 2 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.66778394974e+07 1.26644430952e+06 +0 10001 2 total 3.34953367601e+05 3.83367816257e+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.00000000000e+00 0.00000000000e+00 +0 10001 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.64572260617e-01 3.12147519127e-02 +0 10002 2 total 2.05238401381e+00 2.24342906705e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.90565257425e-01 2.38518546437e-02 +0 10002 2 total 1.51643801275e+00 2.35197268504e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.90565257425e-01 2.38518546437e-02 +0 10002 2 total 1.51643801275e+00 2.35197268504e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.90399522187e-04 4.41475687059e-05 +0 10002 2 total 3.16872566141e-02 3.74655858238e-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.90399522187e-04 4.41475687059e-05 +0 10002 2 total 3.16872566141e-02 3.74655858238e-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.63881861094e-01 3.11726840046e-02 +0 10002 2 total 2.02069675720e+00 2.20604453857e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.71269204714e-01 2.61863711686e-02 +0 10002 2 total 2.03538832876e+00 2.58060328563e-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.39901484868e-01 2.47091227977e-02 +13 10002 1 1 total P1 3.81167448865e-01 1.62432649213e-02 +14 10002 1 1 total P2 1.52391897805e-01 8.15627770336e-03 +15 10002 1 1 total P3 9.14802228847e-03 3.88856214164e-03 +8 10002 1 2 total P0 3.13677198465e-02 1.72811290328e-03 +9 10002 1 2 total P1 8.75772320612e-03 9.25670501198e-04 +10 10002 1 2 total P2 -2.56790105967e-03 1.01398475208e-03 +11 10002 1 2 total P3 -3.78480288187e-03 8.17075570852e-04 +4 10002 2 1 total P0 4.43343134122e-04 4.44850393331e-04 +5 10002 2 1 total P1 3.99960414260e-04 4.01320182735e-04 +6 10002 2 1 total P2 3.19562707240e-04 3.20649142996e-04 +7 10002 2 1 total P3 2.13846969230e-04 2.14573997098e-04 +0 10002 2 2 total P0 2.03494498562e+00 2.57799888924e-01 +1 10002 2 2 total P1 5.09940513161e-01 5.12359062971e-02 +2 10002 2 2 total P2 1.11174608804e-01 1.30198170388e-02 +3 10002 2 2 total P3 2.49884357394e-02 8.31235256236e-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.39901484868e-01 2.47091227977e-02 +13 10002 1 1 total P1 3.81167448865e-01 1.62432649213e-02 +14 10002 1 1 total P2 1.52391897805e-01 8.15627770336e-03 +15 10002 1 1 total P3 9.14802228847e-03 3.88856214164e-03 +8 10002 1 2 total P0 3.13677198465e-02 1.72811290328e-03 +9 10002 1 2 total P1 8.75772320612e-03 9.25670501198e-04 +10 10002 1 2 total P2 -2.56790105967e-03 1.01398475208e-03 +11 10002 1 2 total P3 -3.78480288187e-03 8.17075570852e-04 +4 10002 2 1 total P0 4.43343134122e-04 4.44850393331e-04 +5 10002 2 1 total P1 3.99960414260e-04 4.01320182735e-04 +6 10002 2 1 total P2 3.19562707240e-04 3.20649142996e-04 +7 10002 2 1 total P3 2.13846969230e-04 2.14573997098e-04 +0 10002 2 2 total P0 2.03494498562e+00 2.57799888924e-01 +1 10002 2 2 total P1 5.09940513161e-01 5.12359062971e-02 +2 10002 2 2 total P2 1.11174608804e-01 1.30198170388e-02 +3 10002 2 2 total P3 2.49884357394e-02 8.31235256236e-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.00000000000e+00 3.86091908369e-02 +2 10002 1 2 total 1.00000000000e+00 6.76673479996e-02 +1 10002 2 1 total 1.00000000000e+00 1.41421356237e+00 +0 10002 2 2 total 1.00000000000e+00 1.35929206606e-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.00000000000e+00 0.00000000000e+00 +2 10002 1 2 total 0.00000000000e+00 0.00000000000e+00 +1 10002 2 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.66055628732e+07 1.04243552374e+06 +0 10002 2 total 3.28412038650e+05 3.88284357298e+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.00000000000e+00 0.00000000000e+00 +0 10002 2 total 0.00000000000e+00 0.00000000000e+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 53f29f1d5f..045194a2a9 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -400e4cca1866a1a56b20c3d438a0dd518b069f24ce5f7b29d012d2f5898d36560876ba0ced28e94b1efabd5c9a26560cb9fc85372f7a608dec0ac2e93c558184 \ No newline at end of file +4917eb986d1b5cb4b8cbe90fa552966e9bfd5959fe8060426883563ffebc7608264939a3b6593a8d4490626eb6f9cb01ae3e14ab54bdcc71dec801dcb5910b96 \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index d65dbd2046..cbb1a86543 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.0000000e+02 0.0000000e+00 7.0000000e+02 8.0000000e+02] + Temperature = [5.00000000000e+02 0.00000000000e+00 7.00000000000e+02 8.00000000000e+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 861edc6ef5..fc59cf8781 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -f4f74a0831726a754c8b3f54d97af4ef329dc6a925520599e8a0c07a490c65878ba4cf8023d29971eec02af3a196a0b39c376ef5f7558003b78db2fd6e94b1ef \ No newline at end of file +a5f4e33b524869a787ef66b94bb60f987d61c7d6335146356b4d498383723643fe9b7ffac74cf45d481add6fee05a62b54fc3ab2e21c259fbda2e8ec58b2df15 \ 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 200fddbeb0..369c061d41 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] +[[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] ..., - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] ..., - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] ..., - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] ..., - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]]][[[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] ..., - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]] + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] - [[0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00] - [0.0000000e+00 0.0000000e+00 0.0000000e+00]]] \ No newline at end of file + [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] + [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index d440a48d78..e0add432af 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -11,12 +11,12 @@ import sys import numpy as np import pandas as pd -# Require numpy and pandas to print output in scientific notation with 8 +# Require numpy and pandas to print output in scientific notation with 12 # significant figures. This is needed to avoid round off error when large # numbers are printed, which can cause tests to fail for different build # configurations. -np.set_printoptions(formatter={'float': '{:.7e}'.format}) -pd.options.display.float_format = '{:.7e}'.format +np.set_printoptions(formatter={'float': '{:.11e}'.format}) +pd.options.display.float_format = '{:.11e}'.format sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From fce90d22b7b59021115a7a7a6bd1540aa48742d0 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Wed, 13 Jul 2016 18:23:28 +0000 Subject: [PATCH 158/417] changed number of sig figs from 12 to 7 --- .../results_true.dat | 252 ++++----- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/results_true.dat | 320 ++++++----- .../results_true.dat | 516 +++++++++--------- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 6 +- 9 files changed, 692 insertions(+), 700 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 8fc2f94033..fbdab856f8 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.53624422471e-01 2.10526963253e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.00852177884e-01 2.28575540033e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.00852177884e-01 2.28575540033e-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.49034558324e-02 4.31276119955e-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.80480660339e-02 4.57996368874e-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.68553897985e-02 2.62215977624e-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.06492898576e-02 6.40987451703e-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.13795513809e+00 5.07363814554e-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.88720966639e-01 1.78304285991e-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.89303556282e-01 2.30755385726e-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.89303556282e-01 2.31456046242e-02 -1 10000 1 1 total P1 4.62244178314e-02 5.90716955682e-03 -2 10000 1 1 total P2 1.79835850203e-02 2.88297198167e-03 -3 10000 1 1 total P3 6.62837351395e-03 2.45710898378e-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.89303556282e-01 2.31456046242e-02 -1 10000 1 1 total P1 4.62244178314e-02 5.90716955682e-03 -2 10000 1 1 total P2 1.79835850203e-02 2.88297198167e-03 -3 10000 1 1 total P3 6.62837351395e-03 2.45710898378e-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.00000000000e+00 6.61108201731e-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.58350193370e-02 5.59182486071e-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.00000000000e+00 4.60705234720e-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.00000000000e+00 5.14714567344e-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.00130873975e+06 1.46216555365e+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.00039777878e-02 6.36690787427e-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.11594108102e-01 1.37931681282e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.79255063691e-01 2.91895009803e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.79255063691e-01 2.91895009803e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.20984640163e-03 2.86334126604e-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.20984640163e-03 2.86334126604e-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.09384261701e-01 1.35512674906e-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.07987349445e-01 2.93080885044e-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.07987349445e-01 2.93080885044e-02 -1 10001 1 1 total P1 3.06171532535e-02 7.46445601186e-03 -2 10001 1 1 total P2 1.89114904073e-02 4.32282773240e-03 -3 10001 1 1 total P3 6.23461818721e-03 3.33820228054e-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.07987349445e-01 2.93080885044e-02 -1 10001 1 1 total P1 3.06171532535e-02 7.46445601186e-03 -2 10001 1 1 total P2 1.89114904073e-02 4.32282773240e-03 -3 10001 1 1 total P3 6.23461818721e-03 3.33820228054e-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.00000000000e+00 9.50387215070e-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.83326115257e+06 1.66355174520e+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.04998833317e-01 4.39644875947e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.99183982700e-01 4.09141196047e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.99183982700e-01 4.09141196047e-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.06034115726e-03 5.54524424276e-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.06034115726e-03 5.54524424276e-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.98938492160e-01 4.34929841727e-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.03414663159e-01 4.39587370764e-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.03414663159e-01 4.35859938035e-02 -1 10002 1 1 total P1 4.10417418590e-01 1.58772201944e-02 -2 10002 1 1 total P2 1.43301036475e-01 7.18737766348e-03 -3 10002 1 1 total P3 8.73942634056e-03 3.57144134504e-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.03414663159e-01 4.35859938035e-02 -1 10002 1 1 total P1 4.10417418590e-01 1.58772201944e-02 -2 10002 1 1 total P2 1.43301036475e-01 7.18737766348e-03 -3 10002 1 1 total P3 8.73942634056e-03 3.57144134504e-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.00000000000e+00 5.68667253071e-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.73219969947e+06 1.59691426430e+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +0 10000 1 total 4.536244e-01 2.105270e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008522e-01 2.285755e-02 + material group in nuclide mean std. dev. +0 10000 1 total 4.008522e-01 2.285755e-02 + material group in nuclide mean std. dev. +0 10000 1 total 6.490346e-02 4.312761e-03 + material group in nuclide mean std. dev. +0 10000 1 total 2.804807e-02 4.579964e-03 + material group in nuclide mean std. dev. +0 10000 1 total 3.685539e-02 2.622160e-03 + material group in nuclide mean std. dev. +0 10000 1 total 9.064929e-02 6.409875e-03 + material group in nuclide mean std. dev. +0 10000 1 total 7.137955e+00 5.073638e-01 + material group in nuclide mean std. dev. +0 10000 1 total 3.887210e-01 1.783043e-02 + material group in nuclide mean std. dev. +0 10000 1 total 3.893036e-01 2.307554e-02 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893036e-01 2.314560e-02 +1 10000 1 1 total P1 4.622442e-02 5.907170e-03 +2 10000 1 1 total P2 1.798359e-02 2.882972e-03 +3 10000 1 1 total P3 6.628374e-03 2.457109e-03 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 3.893036e-01 2.314560e-02 +1 10000 1 1 total P1 4.622442e-02 5.907170e-03 +2 10000 1 1 total P2 1.798359e-02 2.882972e-03 +3 10000 1 1 total P3 6.628374e-03 2.457109e-03 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1.000000e+00 6.611082e-02 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 8.583502e-02 5.591825e-03 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000e+00 4.607052e-02 + material group out nuclide mean std. dev. +0 10000 1 total 1.000000e+00 5.147146e-02 + material group in nuclide mean std. dev. +0 10000 1 total 2.001309e+06 1.462166e+05 + material group in nuclide mean std. dev. +0 10000 1 total 9.000398e-02 6.366908e-03 + material group in nuclide mean std. dev. +0 10001 1 total 3.115941e-01 1.379317e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792551e-01 2.918950e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.792551e-01 2.918950e-02 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846e-03 2.863341e-04 + material group in nuclide mean std. dev. +0 10001 1 total 2.209846e-03 2.863341e-04 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 3.093843e-01 1.355127e-02 + material group in nuclide mean std. dev. +0 10001 1 total 3.079873e-01 2.930809e-02 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873e-01 2.930809e-02 +1 10001 1 1 total P1 3.061715e-02 7.464456e-03 +2 10001 1 1 total P2 1.891149e-02 4.322828e-03 +3 10001 1 1 total P3 6.234618e-03 3.338202e-03 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 3.079873e-01 2.930809e-02 +1 10001 1 1 total P1 3.061715e-02 7.464456e-03 +2 10001 1 1 total P2 1.891149e-02 4.322828e-03 +3 10001 1 1 total P3 6.234618e-03 3.338202e-03 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1.000000e+00 9.503872e-02 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10001 1 total 1.833261e+06 1.663552e+05 + material group in nuclide mean std. dev. +0 10001 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 9.049988e-01 4.396449e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991840e-01 4.091412e-02 + material group in nuclide mean std. dev. +0 10002 1 total 4.991840e-01 4.091412e-02 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341e-03 5.545244e-04 + material group in nuclide mean std. dev. +0 10002 1 total 6.060341e-03 5.545244e-04 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 8.989385e-01 4.349298e-02 + material group in nuclide mean std. dev. +0 10002 1 total 9.034147e-01 4.395874e-02 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034147e-01 4.358599e-02 +1 10002 1 1 total P1 4.104174e-01 1.587722e-02 +2 10002 1 1 total P2 1.433010e-01 7.187378e-03 +3 10002 1 1 total P3 8.739426e-03 3.571441e-03 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 9.034147e-01 4.358599e-02 +1 10002 1 1 total P1 4.104174e-01 1.587722e-02 +2 10002 1 1 total P2 1.433010e-01 7.187378e-03 +3 10002 1 1 total P3 8.739426e-03 3.571441e-03 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1.000000e+00 5.686673e-02 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10002 1 total 1.732200e+06 1.596914e+05 + material group in nuclide mean std. dev. +0 10002 1 total 0.000000e+00 0.000000e+00 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 3e7a512e74..7b66c39e49 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.14593400053e+00 5.53821694685e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919198978e-01 5.20644255933e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.18919198978e-01 5.20644255933e-01 - 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 1.97622061146e-02 1.06287640925e-02 - 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 1.97622061146e-02 1.06287640925e-02 - 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.00000000000e+00 0.00000000000e+00 - 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.00000000000e+00 0.00000000000e+00 - 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.00000000000e+00 0.00000000000e+00 - 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 1.12617179441e+00 5.43440008398e-01 - 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 1.14254691911e+00 5.70131389856e-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254691911e+00 5.70131389856e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294335e-01 2.16322168307e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793415e-01 6.65037725808e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282704188e-02 2.46208323203e-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.14254691911e+00 5.70131389856e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.47381294335e-01 2.16322168307e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.41201793415e-01 6.65037725808e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.92282704188e-02 2.46208323203e-02 - 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 1.00000000000e+00 5.29717327374e-01 - 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.00000000000e+00 0.00000000000e+00 - 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.00000000000e+00 0.00000000000e+00 - 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.00000000000e+00 0.00000000000e+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.74245714482e+05 4.16397691599e+05 - 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.00000000000e+00 0.00000000000e+00 + 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 1.145934e+00 5.538217e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192e-01 5.206443e-01 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192e-01 5.206443e-01 + 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 1.976221e-02 1.062876e-02 + 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 1.976221e-02 1.062876e-02 + 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.000000e+00 0.000000e+00 + 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.000000e+00 0.000000e+00 + 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.000000e+00 0.000000e+00 + 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 1.126172e+00 5.434400e-01 + 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 1.142547e+00 5.701314e-01 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547e+00 5.701314e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813e-01 2.163222e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018e-01 6.650377e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827e-02 2.462083e-02 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547e+00 5.701314e-01 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813e-01 2.163222e-01 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018e-01 6.650377e-02 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827e-02 2.462083e-02 + 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 1.000000e+00 5.297173e-01 + 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.000000e+00 0.000000e+00 + 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.000000e+00 0.000000e+00 + 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.000000e+00 0.000000e+00 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457e+05 4.163977e+05 + 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.000000e+00 0.000000e+00 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index e02a0d82ab..3160e850fd 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,230 +1,222 @@ domain=10000 type=total -[4.14825490214e-01 6.60169918628e-01] -[2.27929090938e-02 4.75189279082e-02] +[4.148255e-01 6.601699e-01] +[2.279291e-02 4.751893e-02] domain=10000 type=transport -[3.56859637119e-01 6.47647660079e-01] -[2.54935955781e-02 2.37037352047e-02] +[3.568596e-01 6.476477e-01] +[2.549360e-02 2.370374e-02] domain=10000 type=nu-transport -[3.56859637119e-01 6.47647660079e-01] -[2.54935955781e-02 2.37037352047e-02] +[3.568596e-01 6.476477e-01] +[2.549360e-02 2.370374e-02] domain=10000 type=absorption -[2.74078449200e-02 2.64510741628e-01] -[2.69249710935e-03 2.33670773915e-02] +[2.740784e-02 2.645107e-01] +[2.692497e-03 2.336708e-02] domain=10000 type=capture -[1.98445499412e-02 7.17193529235e-02] -[2.64330432866e-03 2.52078593512e-02] +[1.984455e-02 7.171935e-02] +[2.643304e-03 2.520786e-02] domain=10000 type=fission -[7.56329497887e-03 1.92791388704e-01] -[5.08483677909e-04 1.71059218667e-02] +[7.563295e-03 1.927914e-01] +[5.084837e-04 1.710592e-02] domain=10000 type=nu-fission -[1.94317403720e-02 4.69774777026e-01] -[1.32297561222e-03 4.16819997832e-02] +[1.943174e-02 4.697748e-01] +[1.322976e-03 4.168200e-02] domain=10000 type=kappa-fission -[1.47456982255e+00 3.72868964072e+01] -[9.92353210963e-02 3.30837772453e+00] +[1.474570e+00 3.728690e+01] +[9.923532e-02 3.308378e+00] domain=10000 type=scatter -[3.87417645294e-01 3.95659177000e-01] -[2.06257321021e-02 2.51250567894e-02] +[3.874176e-01 3.956592e-01] +[2.062573e-02 2.512506e-02] domain=10000 type=nu-scatter -[3.85188388202e-01 4.12389399309e-01] -[2.69456210647e-02 1.54252769583e-02] +[3.851884e-01 4.123894e-01] +[2.694562e-02 1.542528e-02] domain=10000 type=scatter matrix -[[[3.84199457809e-01 5.18702843460e-02 2.00688453200e-02 9.47771570559e-03] - [9.88930393331e-04 -2.07234596475e-04 -1.03366180541e-04 - 2.34290623037e-04]] +[[[3.841995e-01 5.187028e-02 2.006885e-02 9.477716e-03] + [9.889304e-04 -2.072346e-04 -1.033662e-04 2.342906e-04]] - [[9.24639908764e-04 -7.67704968439e-04 4.93788871844e-04 - -1.71497229323e-04] - [4.11464759400e-01 1.64817280067e-02 6.37149049282e-03 -1.04991220898e-02]]] -[[[2.70010135610e-02 6.98254887613e-03 2.84649518329e-03 2.23351977181e-03] - [4.82419445120e-04 1.49010775362e-04 1.84316311924e-04 1.28173110834e-04]] + [[9.246399e-04 -7.677050e-04 4.937889e-04 -1.714972e-04] + [4.114648e-01 1.648173e-02 6.371490e-03 -1.049912e-02]]] +[[[2.700101e-02 6.982549e-03 2.846495e-03 2.233520e-03] + [4.824194e-04 1.490108e-04 1.843163e-04 1.281731e-04]] - [[9.24883463644e-04 7.67907185854e-04 4.93918938358e-04 1.71542402570e-04] - [1.52449353958e-02 4.50172796078e-03 1.05507493414e-02 1.04381877194e-02]]] + [[9.248835e-04 7.679072e-04 4.939189e-04 1.715424e-04] + [1.524494e-02 4.501728e-03 1.055075e-02 1.043819e-02]]] domain=10000 type=nu-scatter matrix -[[[3.84199457809e-01 5.18702843460e-02 2.00688453200e-02 9.47771570559e-03] - [9.88930393331e-04 -2.07234596475e-04 -1.03366180541e-04 - 2.34290623037e-04]] +[[[3.841995e-01 5.187028e-02 2.006885e-02 9.477716e-03] + [9.889304e-04 -2.072346e-04 -1.033662e-04 2.342906e-04]] - [[9.24639908764e-04 -7.67704968439e-04 4.93788871844e-04 - -1.71497229323e-04] - [4.11464759400e-01 1.64817280067e-02 6.37149049282e-03 -1.04991220898e-02]]] -[[[2.70010135610e-02 6.98254887613e-03 2.84649518329e-03 2.23351977181e-03] - [4.82419445120e-04 1.49010775362e-04 1.84316311924e-04 1.28173110834e-04]] + [[9.246399e-04 -7.677050e-04 4.937889e-04 -1.714972e-04] + [4.114648e-01 1.648173e-02 6.371490e-03 -1.049912e-02]]] +[[[2.700101e-02 6.982549e-03 2.846495e-03 2.233520e-03] + [4.824194e-04 1.490108e-04 1.843163e-04 1.281731e-04]] - [[9.24883463644e-04 7.67907185854e-04 4.93918938358e-04 1.71542402570e-04] - [1.52449353958e-02 4.50172796078e-03 1.05507493414e-02 1.04381877194e-02]]] + [[9.248835e-04 7.679072e-04 4.939189e-04 1.715424e-04] + [1.524494e-02 4.501728e-03 1.055075e-02 1.043819e-02]]] domain=10000 type=multiplicity matrix -[[1.00000000000e+00 1.00000000000e+00] - [1.00000000000e+00 1.00000000000e+00]] -[[7.85164550057e-02 6.87184270936e-01] - [1.41421356237e+00 4.11303488039e-02]] +[[1.000000e+00 1.000000e+00] + [1.000000e+00 1.000000e+00]] +[[7.851646e-02 6.871843e-01] + [1.414214e+00 4.113035e-02]] domain=10000 type=nu-fission matrix -[[2.01424281632e-02 0.00000000000e+00] - [4.54366466559e-01 0.00000000000e+00]] -[[3.14909167627e-03 0.00000000000e+00] - [2.74255069249e-02 0.00000000000e+00]] +[[2.014243e-02 0.000000e+00] + [4.543665e-01 0.000000e+00]] +[[3.149092e-03 0.000000e+00] + [2.742551e-02 0.000000e+00]] domain=10000 type=chi -[1.00000000000e+00 0.00000000000e+00] -[4.60705234720e-02 0.00000000000e+00] +[1.000000e+00 0.000000e+00] +[4.607052e-02 0.000000e+00] domain=10000 type=chi-prompt -[1.00000000000e+00 0.00000000000e+00] -[5.14714567344e-02 0.00000000000e+00] +[1.000000e+00 0.000000e+00] +[5.147146e-02 0.000000e+00] domain=10000 type=velocity -[1.75152106204e+07 3.50171995194e+05] -[1.43817527390e+06 2.99459316967e+04] +[1.751521e+07 3.501720e+05] +[1.438175e+06 2.994593e+04] domain=10000 type=prompt-nu-fission -[1.92392215460e-02 4.66719027354e-01] -[1.30950595010e-03 4.14108703995e-02] +[1.923922e-02 4.667190e-01] +[1.309506e-03 4.141087e-02] domain=10001 type=total -[3.13737670907e-01 3.00821401699e-01] -[1.55819023553e-02 2.80524484312e-02] +[3.137377e-01 3.008214e-01] +[1.558190e-02 2.805245e-02] domain=10001 type=transport -[2.73227872020e-01 3.12374836218e-01] -[3.31153664433e-02 4.96058317053e-02] +[2.732279e-01 3.123748e-01] +[3.311537e-02 4.960583e-02] domain=10001 type=nu-transport -[2.73227872020e-01 3.12374836218e-01] -[3.31153664433e-02 4.96058317053e-02] +[2.732279e-01 3.123748e-01] +[3.311537e-02 4.960583e-02] domain=10001 type=absorption -[1.57499139045e-03 5.40037883216e-03] -[3.22547890697e-04 6.18138308229e-04] +[1.574991e-03 5.400379e-03] +[3.225479e-04 6.181383e-04] domain=10001 type=capture -[1.57499139045e-03 5.40037883216e-03] -[3.22547890697e-04 6.18138308229e-04] +[1.574991e-03 5.400379e-03] +[3.225479e-04 6.181383e-04] domain=10001 type=fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10001 type=nu-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10001 type=kappa-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10001 type=scatter -[3.12162679516e-01 2.95421022866e-01] -[1.53219230918e-02 2.74454888860e-02] +[3.121627e-01 2.954210e-01] +[1.532192e-02 2.744549e-02] domain=10001 type=nu-scatter -[3.10120735076e-01 2.96264270001e-01] -[3.37881061225e-02 4.37922257327e-02] +[3.101207e-01 2.962643e-01] +[3.378811e-02 4.379223e-02] domain=10001 type=scatter matrix -[[[3.10120735076e-01 3.82295903624e-02 2.07449419697e-02 7.96429677175e-03] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] +[[[3.101207e-01 3.822959e-02 2.074494e-02 7.964297e-03] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [2.96264270001e-01 -1.12136361341e-02 8.83656629804e-03 - -3.27006730881e-03]]] -[[[3.37881061225e-02 8.48399710345e-03 4.69561067742e-03 3.73162260999e-03] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [2.962643e-01 -1.121364e-02 8.836566e-03 -3.270067e-03]]] +[[[3.378811e-02 8.483997e-03 4.695611e-03 3.731623e-03] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [4.37922257327e-02 1.61803664886e-02 1.15039644588e-02 7.32884580152e-03]]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [4.379223e-02 1.618037e-02 1.150396e-02 7.328846e-03]]] domain=10001 type=nu-scatter matrix -[[[3.10120735076e-01 3.82295903624e-02 2.07449419697e-02 7.96429677175e-03] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] +[[[3.101207e-01 3.822959e-02 2.074494e-02 7.964297e-03] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [2.96264270001e-01 -1.12136361341e-02 8.83656629804e-03 - -3.27006730881e-03]]] -[[[3.37881061225e-02 8.48399710345e-03 4.69561067742e-03 3.73162260999e-03] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [2.962643e-01 -1.121364e-02 8.836566e-03 -3.270067e-03]]] +[[[3.378811e-02 8.483997e-03 4.695611e-03 3.731623e-03] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [4.37922257327e-02 1.61803664886e-02 1.15039644588e-02 7.32884580152e-03]]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [4.379223e-02 1.618037e-02 1.150396e-02 7.328846e-03]]] domain=10001 type=multiplicity matrix -[[1.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 1.00000000000e+00]] -[[1.08778696728e-01 0.00000000000e+00] - [0.00000000000e+00 1.42427173055e-01]] +[[1.000000e+00 0.000000e+00] + [0.000000e+00 1.000000e+00]] +[[1.087787e-01 0.000000e+00] + [0.000000e+00 1.424272e-01]] domain=10001 type=nu-fission matrix -[[0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00]] -[[0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00]] +[[0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00]] +[[0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00]] domain=10001 type=chi -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10001 type=chi-prompt -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10001 type=velocity -[1.66778394974e+07 3.34953367601e+05] -[1.26644430952e+06 3.83367816257e+04] +[1.667784e+07 3.349534e+05] +[1.266444e+06 3.833678e+04] domain=10001 type=prompt-nu-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=total -[6.64572260617e-01 2.05238401381e+00] -[3.12147519127e-02 2.24342906705e-01] +[6.645723e-01 2.052384e+00] +[3.121475e-02 2.243429e-01] domain=10002 type=transport -[2.90565257425e-01 1.51643801275e+00] -[2.38518546437e-02 2.35197268504e-01] +[2.905653e-01 1.516438e+00] +[2.385185e-02 2.351973e-01] domain=10002 type=nu-transport -[2.90565257425e-01 1.51643801275e+00] -[2.38518546437e-02 2.35197268504e-01] +[2.905653e-01 1.516438e+00] +[2.385185e-02 2.351973e-01] domain=10002 type=absorption -[6.90399522187e-04 3.16872566141e-02] -[4.41475687059e-05 3.74655858238e-03] +[6.903995e-04 3.168726e-02] +[4.414757e-05 3.746559e-03] domain=10002 type=capture -[6.90399522187e-04 3.16872566141e-02] -[4.41475687059e-05 3.74655858238e-03] +[6.903995e-04 3.168726e-02] +[4.414757e-05 3.746559e-03] domain=10002 type=fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=nu-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=kappa-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=scatter -[6.63881861094e-01 2.02069675720e+00] -[3.11726840046e-02 2.20604453857e-01] +[6.638819e-01 2.020697e+00] +[3.117268e-02 2.206045e-01] domain=10002 type=nu-scatter -[6.71269204714e-01 2.03538832876e+00] -[2.61863711686e-02 2.58060328563e-01] +[6.712692e-01 2.035388e+00] +[2.618637e-02 2.580603e-01] domain=10002 type=scatter matrix -[[[6.39901484868e-01 3.81167448865e-01 1.52391897805e-01 9.14802228847e-03] - [3.13677198465e-02 8.75772320612e-03 -2.56790105967e-03 - -3.78480288187e-03]] +[[[6.399015e-01 3.811674e-01 1.523919e-01 9.148022e-03] + [3.136772e-02 8.757723e-03 -2.567901e-03 -3.784803e-03]] - [[4.43343134122e-04 3.99960414260e-04 3.19562707240e-04 2.13846969230e-04] - [2.03494498562e+00 5.09940513161e-01 1.11174608804e-01 2.49884357394e-02]]] -[[[2.47091227977e-02 1.62432649213e-02 8.15627770336e-03 3.88856214164e-03] - [1.72811290328e-03 9.25670501198e-04 1.01398475208e-03 8.17075570852e-04]] + [[4.433431e-04 3.999604e-04 3.195627e-04 2.138470e-04] + [2.034945e+00 5.099405e-01 1.111746e-01 2.498844e-02]]] +[[[2.470912e-02 1.624326e-02 8.156278e-03 3.888562e-03] + [1.728113e-03 9.256705e-04 1.013985e-03 8.170756e-04]] - [[4.44850393331e-04 4.01320182735e-04 3.20649142996e-04 2.14573997098e-04] - [2.57799888924e-01 5.12359062971e-02 1.30198170388e-02 8.31235256236e-03]]] + [[4.448504e-04 4.013202e-04 3.206491e-04 2.145740e-04] + [2.577999e-01 5.123591e-02 1.301982e-02 8.312353e-03]]] domain=10002 type=nu-scatter matrix -[[[6.39901484868e-01 3.81167448865e-01 1.52391897805e-01 9.14802228847e-03] - [3.13677198465e-02 8.75772320612e-03 -2.56790105967e-03 - -3.78480288187e-03]] +[[[6.399015e-01 3.811674e-01 1.523919e-01 9.148022e-03] + [3.136772e-02 8.757723e-03 -2.567901e-03 -3.784803e-03]] - [[4.43343134122e-04 3.99960414260e-04 3.19562707240e-04 2.13846969230e-04] - [2.03494498562e+00 5.09940513161e-01 1.11174608804e-01 2.49884357394e-02]]] -[[[2.47091227977e-02 1.62432649213e-02 8.15627770336e-03 3.88856214164e-03] - [1.72811290328e-03 9.25670501198e-04 1.01398475208e-03 8.17075570852e-04]] + [[4.433431e-04 3.999604e-04 3.195627e-04 2.138470e-04] + [2.034945e+00 5.099405e-01 1.111746e-01 2.498844e-02]]] +[[[2.470912e-02 1.624326e-02 8.156278e-03 3.888562e-03] + [1.728113e-03 9.256705e-04 1.013985e-03 8.170756e-04]] - [[4.44850393331e-04 4.01320182735e-04 3.20649142996e-04 2.14573997098e-04] - [2.57799888924e-01 5.12359062971e-02 1.30198170388e-02 8.31235256236e-03]]] + [[4.448504e-04 4.013202e-04 3.206491e-04 2.145740e-04] + [2.577999e-01 5.123591e-02 1.301982e-02 8.312353e-03]]] domain=10002 type=multiplicity matrix -[[1.00000000000e+00 1.00000000000e+00] - [1.00000000000e+00 1.00000000000e+00]] -[[3.86091908369e-02 6.76673479996e-02] - [1.41421356237e+00 1.35929206606e-01]] +[[1.000000e+00 1.000000e+00] + [1.000000e+00 1.000000e+00]] +[[3.860919e-02 6.766735e-02] + [1.414214e+00 1.359292e-01]] domain=10002 type=nu-fission matrix -[[0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00]] -[[0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00]] +[[0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00]] +[[0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00]] domain=10002 type=chi -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=chi-prompt -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] domain=10002 type=velocity -[1.66055628732e+07 3.28412038650e+05] -[1.04243552374e+06 3.88284357298e+04] +[1.660556e+07 3.284120e+05] +[1.042436e+06 3.882844e+04] domain=10002 type=prompt-nu-fission -[0.00000000000e+00 0.00000000000e+00] -[0.00000000000e+00 0.00000000000e+00] +[0.000000e+00 0.000000e+00] +[0.000000e+00 0.000000e+00] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 195cea8ba2..fc42ccf494 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.14825490214e-01 2.27929090938e-02 -0 10000 2 total 6.60169918628e-01 4.75189279082e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.56859637119e-01 2.54935955781e-02 -0 10000 2 total 6.47647660079e-01 2.37037352047e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.56859637119e-01 2.54935955781e-02 -0 10000 2 total 6.47647660079e-01 2.37037352047e-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.74078449200e-02 2.69249710935e-03 -0 10000 2 total 2.64510741628e-01 2.33670773915e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.98445499412e-02 2.64330432866e-03 -0 10000 2 total 7.17193529235e-02 2.52078593512e-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.56329497887e-03 5.08483677909e-04 -0 10000 2 total 1.92791388704e-01 1.71059218667e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.94317403720e-02 1.32297561222e-03 -0 10000 2 total 4.69774777026e-01 4.16819997832e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.47456982255e+00 9.92353210963e-02 -0 10000 2 total 3.72868964072e+01 3.30837772453e+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.87417645294e-01 2.06257321021e-02 -0 10000 2 total 3.95659177000e-01 2.51250567894e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.85188388202e-01 2.69456210647e-02 -0 10000 2 total 4.12389399309e-01 1.54252769583e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.84199457809e-01 2.70010135610e-02 -13 10000 1 1 total P1 5.18702843460e-02 6.98254887613e-03 -14 10000 1 1 total P2 2.00688453200e-02 2.84649518329e-03 -15 10000 1 1 total P3 9.47771570559e-03 2.23351977181e-03 -8 10000 1 2 total P0 9.88930393331e-04 4.82419445120e-04 -9 10000 1 2 total P1 -2.07234596475e-04 1.49010775362e-04 -10 10000 1 2 total P2 -1.03366180541e-04 1.84316311924e-04 -11 10000 1 2 total P3 2.34290623037e-04 1.28173110834e-04 -4 10000 2 1 total P0 9.24639908764e-04 9.24883463644e-04 -5 10000 2 1 total P1 -7.67704968439e-04 7.67907185854e-04 -6 10000 2 1 total P2 4.93788871844e-04 4.93918938358e-04 -7 10000 2 1 total P3 -1.71497229323e-04 1.71542402570e-04 -0 10000 2 2 total P0 4.11464759400e-01 1.52449353958e-02 -1 10000 2 2 total P1 1.64817280067e-02 4.50172796078e-03 -2 10000 2 2 total P2 6.37149049282e-03 1.05507493414e-02 -3 10000 2 2 total P3 -1.04991220898e-02 1.04381877194e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.84199457809e-01 2.70010135610e-02 -13 10000 1 1 total P1 5.18702843460e-02 6.98254887613e-03 -14 10000 1 1 total P2 2.00688453200e-02 2.84649518329e-03 -15 10000 1 1 total P3 9.47771570559e-03 2.23351977181e-03 -8 10000 1 2 total P0 9.88930393331e-04 4.82419445120e-04 -9 10000 1 2 total P1 -2.07234596475e-04 1.49010775362e-04 -10 10000 1 2 total P2 -1.03366180541e-04 1.84316311924e-04 -11 10000 1 2 total P3 2.34290623037e-04 1.28173110834e-04 -4 10000 2 1 total P0 9.24639908764e-04 9.24883463644e-04 -5 10000 2 1 total P1 -7.67704968439e-04 7.67907185854e-04 -6 10000 2 1 total P2 4.93788871844e-04 4.93918938358e-04 -7 10000 2 1 total P3 -1.71497229323e-04 1.71542402570e-04 -0 10000 2 2 total P0 4.11464759400e-01 1.52449353958e-02 -1 10000 2 2 total P1 1.64817280067e-02 4.50172796078e-03 -2 10000 2 2 total P2 6.37149049282e-03 1.05507493414e-02 -3 10000 2 2 total P3 -1.04991220898e-02 1.04381877194e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.00000000000e+00 7.85164550057e-02 -2 10000 1 2 total 1.00000000000e+00 6.87184270936e-01 -1 10000 2 1 total 1.00000000000e+00 1.41421356237e+00 -0 10000 2 2 total 1.00000000000e+00 4.11303488039e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.01424281632e-02 3.14909167627e-03 -2 10000 1 2 total 0.00000000000e+00 0.00000000000e+00 -1 10000 2 1 total 4.54366466559e-01 2.74255069249e-02 -0 10000 2 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.00000000000e+00 4.60705234720e-02 -0 10000 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.00000000000e+00 5.14714567344e-02 -0 10000 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.75152106204e+07 1.43817527390e+06 -0 10000 2 total 3.50171995194e+05 2.99459316967e+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.92392215460e-02 1.30950595010e-03 -0 10000 2 total 4.66719027354e-01 4.14108703995e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.13737670907e-01 1.55819023553e-02 -0 10001 2 total 3.00821401699e-01 2.80524484312e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.73227872020e-01 3.31153664433e-02 -0 10001 2 total 3.12374836218e-01 4.96058317053e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.73227872020e-01 3.31153664433e-02 -0 10001 2 total 3.12374836218e-01 4.96058317053e-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.57499139045e-03 3.22547890697e-04 -0 10001 2 total 5.40037883216e-03 6.18138308229e-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.57499139045e-03 3.22547890697e-04 -0 10001 2 total 5.40037883216e-03 6.18138308229e-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.12162679516e-01 1.53219230918e-02 -0 10001 2 total 2.95421022866e-01 2.74454888860e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.10120735076e-01 3.37881061225e-02 -0 10001 2 total 2.96264270001e-01 4.37922257327e-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.10120735076e-01 3.37881061225e-02 -13 10001 1 1 total P1 3.82295903624e-02 8.48399710345e-03 -14 10001 1 1 total P2 2.07449419697e-02 4.69561067742e-03 -15 10001 1 1 total P3 7.96429677175e-03 3.73162260999e-03 -8 10001 1 2 total P0 0.00000000000e+00 0.00000000000e+00 -9 10001 1 2 total P1 0.00000000000e+00 0.00000000000e+00 -10 10001 1 2 total P2 0.00000000000e+00 0.00000000000e+00 -11 10001 1 2 total P3 0.00000000000e+00 0.00000000000e+00 -4 10001 2 1 total P0 0.00000000000e+00 0.00000000000e+00 -5 10001 2 1 total P1 0.00000000000e+00 0.00000000000e+00 -6 10001 2 1 total P2 0.00000000000e+00 0.00000000000e+00 -7 10001 2 1 total P3 0.00000000000e+00 0.00000000000e+00 -0 10001 2 2 total P0 2.96264270001e-01 4.37922257327e-02 -1 10001 2 2 total P1 -1.12136361341e-02 1.61803664886e-02 -2 10001 2 2 total P2 8.83656629804e-03 1.15039644588e-02 -3 10001 2 2 total P3 -3.27006730881e-03 7.32884580152e-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.10120735076e-01 3.37881061225e-02 -13 10001 1 1 total P1 3.82295903624e-02 8.48399710345e-03 -14 10001 1 1 total P2 2.07449419697e-02 4.69561067742e-03 -15 10001 1 1 total P3 7.96429677175e-03 3.73162260999e-03 -8 10001 1 2 total P0 0.00000000000e+00 0.00000000000e+00 -9 10001 1 2 total P1 0.00000000000e+00 0.00000000000e+00 -10 10001 1 2 total P2 0.00000000000e+00 0.00000000000e+00 -11 10001 1 2 total P3 0.00000000000e+00 0.00000000000e+00 -4 10001 2 1 total P0 0.00000000000e+00 0.00000000000e+00 -5 10001 2 1 total P1 0.00000000000e+00 0.00000000000e+00 -6 10001 2 1 total P2 0.00000000000e+00 0.00000000000e+00 -7 10001 2 1 total P3 0.00000000000e+00 0.00000000000e+00 -0 10001 2 2 total P0 2.96264270001e-01 4.37922257327e-02 -1 10001 2 2 total P1 -1.12136361341e-02 1.61803664886e-02 -2 10001 2 2 total P2 8.83656629804e-03 1.15039644588e-02 -3 10001 2 2 total P3 -3.27006730881e-03 7.32884580152e-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.00000000000e+00 1.08778696728e-01 -2 10001 1 2 total 0.00000000000e+00 0.00000000000e+00 -1 10001 2 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 2 total 1.00000000000e+00 1.42427173055e-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.00000000000e+00 0.00000000000e+00 -2 10001 1 2 total 0.00000000000e+00 0.00000000000e+00 -1 10001 2 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.66778394974e+07 1.26644430952e+06 -0 10001 2 total 3.34953367601e+05 3.83367816257e+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.00000000000e+00 0.00000000000e+00 -0 10001 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.64572260617e-01 3.12147519127e-02 -0 10002 2 total 2.05238401381e+00 2.24342906705e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.90565257425e-01 2.38518546437e-02 -0 10002 2 total 1.51643801275e+00 2.35197268504e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.90565257425e-01 2.38518546437e-02 -0 10002 2 total 1.51643801275e+00 2.35197268504e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.90399522187e-04 4.41475687059e-05 -0 10002 2 total 3.16872566141e-02 3.74655858238e-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.90399522187e-04 4.41475687059e-05 -0 10002 2 total 3.16872566141e-02 3.74655858238e-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.63881861094e-01 3.11726840046e-02 -0 10002 2 total 2.02069675720e+00 2.20604453857e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.71269204714e-01 2.61863711686e-02 -0 10002 2 total 2.03538832876e+00 2.58060328563e-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.39901484868e-01 2.47091227977e-02 -13 10002 1 1 total P1 3.81167448865e-01 1.62432649213e-02 -14 10002 1 1 total P2 1.52391897805e-01 8.15627770336e-03 -15 10002 1 1 total P3 9.14802228847e-03 3.88856214164e-03 -8 10002 1 2 total P0 3.13677198465e-02 1.72811290328e-03 -9 10002 1 2 total P1 8.75772320612e-03 9.25670501198e-04 -10 10002 1 2 total P2 -2.56790105967e-03 1.01398475208e-03 -11 10002 1 2 total P3 -3.78480288187e-03 8.17075570852e-04 -4 10002 2 1 total P0 4.43343134122e-04 4.44850393331e-04 -5 10002 2 1 total P1 3.99960414260e-04 4.01320182735e-04 -6 10002 2 1 total P2 3.19562707240e-04 3.20649142996e-04 -7 10002 2 1 total P3 2.13846969230e-04 2.14573997098e-04 -0 10002 2 2 total P0 2.03494498562e+00 2.57799888924e-01 -1 10002 2 2 total P1 5.09940513161e-01 5.12359062971e-02 -2 10002 2 2 total P2 1.11174608804e-01 1.30198170388e-02 -3 10002 2 2 total P3 2.49884357394e-02 8.31235256236e-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.39901484868e-01 2.47091227977e-02 -13 10002 1 1 total P1 3.81167448865e-01 1.62432649213e-02 -14 10002 1 1 total P2 1.52391897805e-01 8.15627770336e-03 -15 10002 1 1 total P3 9.14802228847e-03 3.88856214164e-03 -8 10002 1 2 total P0 3.13677198465e-02 1.72811290328e-03 -9 10002 1 2 total P1 8.75772320612e-03 9.25670501198e-04 -10 10002 1 2 total P2 -2.56790105967e-03 1.01398475208e-03 -11 10002 1 2 total P3 -3.78480288187e-03 8.17075570852e-04 -4 10002 2 1 total P0 4.43343134122e-04 4.44850393331e-04 -5 10002 2 1 total P1 3.99960414260e-04 4.01320182735e-04 -6 10002 2 1 total P2 3.19562707240e-04 3.20649142996e-04 -7 10002 2 1 total P3 2.13846969230e-04 2.14573997098e-04 -0 10002 2 2 total P0 2.03494498562e+00 2.57799888924e-01 -1 10002 2 2 total P1 5.09940513161e-01 5.12359062971e-02 -2 10002 2 2 total P2 1.11174608804e-01 1.30198170388e-02 -3 10002 2 2 total P3 2.49884357394e-02 8.31235256236e-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.00000000000e+00 3.86091908369e-02 -2 10002 1 2 total 1.00000000000e+00 6.76673479996e-02 -1 10002 2 1 total 1.00000000000e+00 1.41421356237e+00 -0 10002 2 2 total 1.00000000000e+00 1.35929206606e-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.00000000000e+00 0.00000000000e+00 -2 10002 1 2 total 0.00000000000e+00 0.00000000000e+00 -1 10002 2 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.66055628732e+07 1.04243552374e+06 -0 10002 2 total 3.28412038650e+05 3.88284357298e+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.00000000000e+00 0.00000000000e+00 -0 10002 2 total 0.00000000000e+00 0.00000000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 4.148255e-01 2.279291e-02 +0 10000 2 total 6.601699e-01 4.751893e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596e-01 2.549360e-02 +0 10000 2 total 6.476477e-01 2.370374e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.568596e-01 2.549360e-02 +0 10000 2 total 6.476477e-01 2.370374e-02 + material group in nuclide mean std. dev. +1 10000 1 total 2.740784e-02 2.692497e-03 +0 10000 2 total 2.645107e-01 2.336708e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.984455e-02 2.643304e-03 +0 10000 2 total 7.171935e-02 2.520786e-02 + material group in nuclide mean std. dev. +1 10000 1 total 7.563295e-03 5.084837e-04 +0 10000 2 total 1.927914e-01 1.710592e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.943174e-02 1.322976e-03 +0 10000 2 total 4.697748e-01 4.168200e-02 + material group in nuclide mean std. dev. +1 10000 1 total 1.474570e+00 9.923532e-02 +0 10000 2 total 3.728690e+01 3.308378e+00 + material group in nuclide mean std. dev. +1 10000 1 total 3.874176e-01 2.062573e-02 +0 10000 2 total 3.956592e-01 2.512506e-02 + material group in nuclide mean std. dev. +1 10000 1 total 3.851884e-01 2.694562e-02 +0 10000 2 total 4.123894e-01 1.542528e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841995e-01 2.700101e-02 +13 10000 1 1 total P1 5.187028e-02 6.982549e-03 +14 10000 1 1 total P2 2.006885e-02 2.846495e-03 +15 10000 1 1 total P3 9.477716e-03 2.233520e-03 +8 10000 1 2 total P0 9.889304e-04 4.824194e-04 +9 10000 1 2 total P1 -2.072346e-04 1.490108e-04 +10 10000 1 2 total P2 -1.033662e-04 1.843163e-04 +11 10000 1 2 total P3 2.342906e-04 1.281731e-04 +4 10000 2 1 total P0 9.246399e-04 9.248835e-04 +5 10000 2 1 total P1 -7.677050e-04 7.679072e-04 +6 10000 2 1 total P2 4.937889e-04 4.939189e-04 +7 10000 2 1 total P3 -1.714972e-04 1.715424e-04 +0 10000 2 2 total P0 4.114648e-01 1.524494e-02 +1 10000 2 2 total P1 1.648173e-02 4.501728e-03 +2 10000 2 2 total P2 6.371490e-03 1.055075e-02 +3 10000 2 2 total P3 -1.049912e-02 1.043819e-02 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 3.841995e-01 2.700101e-02 +13 10000 1 1 total P1 5.187028e-02 6.982549e-03 +14 10000 1 1 total P2 2.006885e-02 2.846495e-03 +15 10000 1 1 total P3 9.477716e-03 2.233520e-03 +8 10000 1 2 total P0 9.889304e-04 4.824194e-04 +9 10000 1 2 total P1 -2.072346e-04 1.490108e-04 +10 10000 1 2 total P2 -1.033662e-04 1.843163e-04 +11 10000 1 2 total P3 2.342906e-04 1.281731e-04 +4 10000 2 1 total P0 9.246399e-04 9.248835e-04 +5 10000 2 1 total P1 -7.677050e-04 7.679072e-04 +6 10000 2 1 total P2 4.937889e-04 4.939189e-04 +7 10000 2 1 total P3 -1.714972e-04 1.715424e-04 +0 10000 2 2 total P0 4.114648e-01 1.524494e-02 +1 10000 2 2 total P1 1.648173e-02 4.501728e-03 +2 10000 2 2 total P2 6.371490e-03 1.055075e-02 +3 10000 2 2 total P3 -1.049912e-02 1.043819e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.000000e+00 7.851646e-02 +2 10000 1 2 total 1.000000e+00 6.871843e-01 +1 10000 2 1 total 1.000000e+00 1.414214e+00 +0 10000 2 2 total 1.000000e+00 4.113035e-02 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 2.014243e-02 3.149092e-03 +2 10000 1 2 total 0.000000e+00 0.000000e+00 +1 10000 2 1 total 4.543665e-01 2.742551e-02 +0 10000 2 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000e+00 4.607052e-02 +0 10000 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10000 1 total 1.000000e+00 5.147146e-02 +0 10000 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 1.751521e+07 1.438175e+06 +0 10000 2 total 3.501720e+05 2.994593e+04 + material group in nuclide mean std. dev. +1 10000 1 total 1.923922e-02 1.309506e-03 +0 10000 2 total 4.667190e-01 4.141087e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.137377e-01 1.558190e-02 +0 10001 2 total 3.008214e-01 2.805245e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732279e-01 3.311537e-02 +0 10001 2 total 3.123748e-01 4.960583e-02 + material group in nuclide mean std. dev. +1 10001 1 total 2.732279e-01 3.311537e-02 +0 10001 2 total 3.123748e-01 4.960583e-02 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991e-03 3.225479e-04 +0 10001 2 total 5.400379e-03 6.181383e-04 + material group in nuclide mean std. dev. +1 10001 1 total 1.574991e-03 3.225479e-04 +0 10001 2 total 5.400379e-03 6.181383e-04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 3.121627e-01 1.532192e-02 +0 10001 2 total 2.954210e-01 2.744549e-02 + material group in nuclide mean std. dev. +1 10001 1 total 3.101207e-01 3.378811e-02 +0 10001 2 total 2.962643e-01 4.379223e-02 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207e-01 3.378811e-02 +13 10001 1 1 total P1 3.822959e-02 8.483997e-03 +14 10001 1 1 total P2 2.074494e-02 4.695611e-03 +15 10001 1 1 total P3 7.964297e-03 3.731623e-03 +8 10001 1 2 total P0 0.000000e+00 0.000000e+00 +9 10001 1 2 total P1 0.000000e+00 0.000000e+00 +10 10001 1 2 total P2 0.000000e+00 0.000000e+00 +11 10001 1 2 total P3 0.000000e+00 0.000000e+00 +4 10001 2 1 total P0 0.000000e+00 0.000000e+00 +5 10001 2 1 total P1 0.000000e+00 0.000000e+00 +6 10001 2 1 total P2 0.000000e+00 0.000000e+00 +7 10001 2 1 total P3 0.000000e+00 0.000000e+00 +0 10001 2 2 total P0 2.962643e-01 4.379223e-02 +1 10001 2 2 total P1 -1.121364e-02 1.618037e-02 +2 10001 2 2 total P2 8.836566e-03 1.150396e-02 +3 10001 2 2 total P3 -3.270067e-03 7.328846e-03 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 3.101207e-01 3.378811e-02 +13 10001 1 1 total P1 3.822959e-02 8.483997e-03 +14 10001 1 1 total P2 2.074494e-02 4.695611e-03 +15 10001 1 1 total P3 7.964297e-03 3.731623e-03 +8 10001 1 2 total P0 0.000000e+00 0.000000e+00 +9 10001 1 2 total P1 0.000000e+00 0.000000e+00 +10 10001 1 2 total P2 0.000000e+00 0.000000e+00 +11 10001 1 2 total P3 0.000000e+00 0.000000e+00 +4 10001 2 1 total P0 0.000000e+00 0.000000e+00 +5 10001 2 1 total P1 0.000000e+00 0.000000e+00 +6 10001 2 1 total P2 0.000000e+00 0.000000e+00 +7 10001 2 1 total P3 0.000000e+00 0.000000e+00 +0 10001 2 2 total P0 2.962643e-01 4.379223e-02 +1 10001 2 2 total P1 -1.121364e-02 1.618037e-02 +2 10001 2 2 total P2 8.836566e-03 1.150396e-02 +3 10001 2 2 total P3 -3.270067e-03 7.328846e-03 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1.000000e+00 1.087787e-01 +2 10001 1 2 total 0.000000e+00 0.000000e+00 +1 10001 2 1 total 0.000000e+00 0.000000e+00 +0 10001 2 2 total 1.000000e+00 1.424272e-01 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0.000000e+00 0.000000e+00 +2 10001 1 2 total 0.000000e+00 0.000000e+00 +1 10001 2 1 total 0.000000e+00 0.000000e+00 +0 10001 2 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10001 1 total 1.667784e+07 1.266444e+06 +0 10001 2 total 3.349534e+05 3.833678e+04 + material group in nuclide mean std. dev. +1 10001 1 total 0.000000e+00 0.000000e+00 +0 10001 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.645723e-01 3.121475e-02 +0 10002 2 total 2.052384e+00 2.243429e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905653e-01 2.385185e-02 +0 10002 2 total 1.516438e+00 2.351973e-01 + material group in nuclide mean std. dev. +1 10002 1 total 2.905653e-01 2.385185e-02 +0 10002 2 total 1.516438e+00 2.351973e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995e-04 4.414757e-05 +0 10002 2 total 3.168726e-02 3.746559e-03 + material group in nuclide mean std. dev. +1 10002 1 total 6.903995e-04 4.414757e-05 +0 10002 2 total 3.168726e-02 3.746559e-03 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 6.638819e-01 3.117268e-02 +0 10002 2 total 2.020697e+00 2.206045e-01 + material group in nuclide mean std. dev. +1 10002 1 total 6.712692e-01 2.618637e-02 +0 10002 2 total 2.035388e+00 2.580603e-01 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399015e-01 2.470912e-02 +13 10002 1 1 total P1 3.811674e-01 1.624326e-02 +14 10002 1 1 total P2 1.523919e-01 8.156278e-03 +15 10002 1 1 total P3 9.148022e-03 3.888562e-03 +8 10002 1 2 total P0 3.136772e-02 1.728113e-03 +9 10002 1 2 total P1 8.757723e-03 9.256705e-04 +10 10002 1 2 total P2 -2.567901e-03 1.013985e-03 +11 10002 1 2 total P3 -3.784803e-03 8.170756e-04 +4 10002 2 1 total P0 4.433431e-04 4.448504e-04 +5 10002 2 1 total P1 3.999604e-04 4.013202e-04 +6 10002 2 1 total P2 3.195627e-04 3.206491e-04 +7 10002 2 1 total P3 2.138470e-04 2.145740e-04 +0 10002 2 2 total P0 2.034945e+00 2.577999e-01 +1 10002 2 2 total P1 5.099405e-01 5.123591e-02 +2 10002 2 2 total P2 1.111746e-01 1.301982e-02 +3 10002 2 2 total P3 2.498844e-02 8.312353e-03 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 6.399015e-01 2.470912e-02 +13 10002 1 1 total P1 3.811674e-01 1.624326e-02 +14 10002 1 1 total P2 1.523919e-01 8.156278e-03 +15 10002 1 1 total P3 9.148022e-03 3.888562e-03 +8 10002 1 2 total P0 3.136772e-02 1.728113e-03 +9 10002 1 2 total P1 8.757723e-03 9.256705e-04 +10 10002 1 2 total P2 -2.567901e-03 1.013985e-03 +11 10002 1 2 total P3 -3.784803e-03 8.170756e-04 +4 10002 2 1 total P0 4.433431e-04 4.448504e-04 +5 10002 2 1 total P1 3.999604e-04 4.013202e-04 +6 10002 2 1 total P2 3.195627e-04 3.206491e-04 +7 10002 2 1 total P3 2.138470e-04 2.145740e-04 +0 10002 2 2 total P0 2.034945e+00 2.577999e-01 +1 10002 2 2 total P1 5.099405e-01 5.123591e-02 +2 10002 2 2 total P2 1.111746e-01 1.301982e-02 +3 10002 2 2 total P3 2.498844e-02 8.312353e-03 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1.000000e+00 3.860919e-02 +2 10002 1 2 total 1.000000e+00 6.766735e-02 +1 10002 2 1 total 1.000000e+00 1.414214e+00 +0 10002 2 2 total 1.000000e+00 1.359292e-01 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0.000000e+00 0.000000e+00 +2 10002 1 2 total 0.000000e+00 0.000000e+00 +1 10002 2 1 total 0.000000e+00 0.000000e+00 +0 10002 2 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 + material group out nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10002 1 total 1.660556e+07 1.042436e+06 +0 10002 2 total 3.284120e+05 3.882844e+04 + material group in nuclide mean std. dev. +1 10002 1 total 0.000000e+00 0.000000e+00 +0 10002 2 total 0.000000e+00 0.000000e+00 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 045194a2a9..66d388716e 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -4917eb986d1b5cb4b8cbe90fa552966e9bfd5959fe8060426883563ffebc7608264939a3b6593a8d4490626eb6f9cb01ae3e14ab54bdcc71dec801dcb5910b96 \ No newline at end of file +9620ed88224f5a4013b1ff47a1286ed166f84847b97d145e52f6f71eb441c2abd1ad5baa91e0b1cac802daa8610ee388d23dcbc43d834b73fb35a16972d09788 \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index cbb1a86543..91562d8e15 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.00000000000e+02 0.00000000000e+00 7.00000000000e+02 8.00000000000e+02] + Temperature = [5.000000e+02 0.000000e+00 7.000000e+02 8.000000e+02] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index fc59cf8781..0bc44d358f 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -a5f4e33b524869a787ef66b94bb60f987d61c7d6335146356b4d498383723643fe9b7ffac74cf45d481add6fee05a62b54fc3ab2e21c259fbda2e8ec58b2df15 \ No newline at end of file +fea5b32f021c64daceffd73d9a50e4d15cad26f9f07f5cdea2e92bfd53d6c31c57da3a9240d4f7059cc30ceebae5c8ed730a0f97a67d3b3f631b9a02c747f982 \ 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 369c061d41..6ef9ffeccd 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] +[[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] ..., - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] ..., - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] ..., - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] ..., - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]][[[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] ..., - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]] + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]] - [[0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00] - [0.00000000000e+00 0.00000000000e+00 0.00000000000e+00]]] \ No newline at end of file + [[0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00] + [0.000000e+00 0.000000e+00 0.000000e+00]]] \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index e0add432af..bde708b808 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -11,12 +11,12 @@ import sys import numpy as np import pandas as pd -# Require numpy and pandas to print output in scientific notation with 12 +# Require numpy and pandas to print output in scientific notation with 7 # significant figures. This is needed to avoid round off error when large # numbers are printed, which can cause tests to fail for different build # configurations. -np.set_printoptions(formatter={'float': '{:.11e}'.format}) -pd.options.display.float_format = '{:.11e}'.format +np.set_printoptions(formatter={'float': '{:.6e}'.format}) +pd.options.display.float_format = '{:.6e}'.format sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From c9d2d6899af1b35d81e25f8f505f8d09df2b8b50 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 1 Jul 2016 09:22:49 +0700 Subject: [PATCH 159/417] Incremented version number and added release notes --- docs/source/conf.py | 4 +- docs/source/methods/geometry.rst | 2 +- docs/source/releasenotes.rst | 113 ++++++++++++++++--------------- man/man1/openmc.1 | 2 +- setup.py | 2 +- src/constants.F90 | 4 +- 6 files changed, 66 insertions(+), 61 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 38661cdb37..cb43079e37 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -69,9 +69,9 @@ copyright = u'2011-2016, Massachusetts Institute of Technology' # built documents. # # The short X.Y version. -version = "0.7" +version = "0.8" # The full version, including alpha/beta/rc tags. -release = "0.7.1" +release = "0.8.0" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/source/methods/geometry.rst b/docs/source/methods/geometry.rst index bcd568ca3a..c689883d08 100644 --- a/docs/source/methods/geometry.rst +++ b/docs/source/methods/geometry.rst @@ -205,7 +205,7 @@ traveling in its current direction, it will not hit the surface. The complete derivation for different types of surfaces used in OpenMC will be presented in the following sections. -Since :math:f(x,y,z)` in general is quadratic in :math:`x`, :math:`y`, and +Since :math:`f(x,y,z)` in general is quadratic in :math:`x`, :math:`y`, and :math:`z`, this implies that :math:`f(x_0 + du_0, y + dv_0, z + dw_0)` is quadratic in :math:`d`. Thus we expect at most two real solutions to :eq:`dist-to-boundary-1`. If no solutions to :eq:`dist-to-boundary-1` exist or diff --git a/docs/source/releasenotes.rst b/docs/source/releasenotes.rst index 65309fd70a..3b96be7f8f 100644 --- a/docs/source/releasenotes.rst +++ b/docs/source/releasenotes.rst @@ -1,78 +1,83 @@ .. _releasenotes: ============================== -Release Notes for OpenMC 0.7.1 +Release Notes for OpenMC 0.8.0 ============================== -This release of OpenMC provides some substantial improvements over version -0.7.0. Non-simple cell regions can now be defined through the ``|`` (union) and -``~`` (complement) operators. Similar changes in the Python API also allow -complex cell regions to be defined. A true secondary particle bank now exists; -this is crucial for photon transport (to be added in the next minor release). A -rich API for multi-group cross section generation has been added via the -``openmc.mgxs`` Python module. +This release of OpenMC includes a few new major features including the +capability to perform neutron transport with multi-group cross section data as +well as experimental support for the windowed multipole method being developed +at MIT. Source sampling options have also been expanded significantly, with the +option to supply arbitrary tabular and discrete distributions for energy, angle, +and spatial coordinates. -Various improvements to tallies have also been made. It is now possible to -explicitly specify that a collision estimator be used in a tally. A new -``delayedgroup`` filter and ``delayed-nu-fission`` score allow a user to obtain -delayed fission neutron production rates filtered by delayed group. Finally, the -new ``inverse-velocity`` score may be useful for calculating kinetics -parameters. +The Python API has been significantly restructured in this release compared to +version 0.7.1. Any scripts written based on the version 0.7.1 API will likely +need to be rewritten. Some of the most visible changes include the following: -.. caution:: In previous versions, depending on how OpenMC was compiled binary - output was either given in HDF5 or a flat binary format. With this - version, all binary output is now HDF5 which means you **must** - have HDF5 in order to install OpenMC. Please consult the user's - guide for instructions on how to compile with HDF5. +- ``SettingsFile`` is now ``Settings``, ``MaterialsFile`` is now ``Materials``, + and ``TalliesFile`` is now ``Tallies``. +- The ``GeometryFile`` class no longer exists and is replaced by the + ``Geometry`` class which now has an ``export_to_xml()`` method. +- Source distributions are defined using the ``Source`` class and assigned to + the ``Settings.source`` property. +- The ``Executor`` class no longer exists and is replaced by ``openmc.run()`` + and ``openmc.plot_geometry()`` functions. + +The Python API documentation has also been significantly expanded. ------------------- System Requirements ------------------- There are no special requirements for running the OpenMC code. As of this -release, OpenMC has been tested on a variety of Linux distributions, Mac OS X, -and Microsoft Windows 7. Memory requirements will vary depending on the size of -the problem at hand (mostly on the number of nuclides in the problem). +release, OpenMC has been tested on a variety of Linux distributions and Mac +OS X. Numerous users have reported working builds on Microsoft Windows, but your +mileage may vary. Memory requirements will vary depending on the size of the +problem at hand (mostly on the number of nuclides and tallies in the problem). ------------ New Features ------------ -- Support for complex cell regions (union and complement operators) -- Generic quadric surface type -- Improved handling of secondary particles -- Binary output is now solely HDF5 -- ``openmc.mgxs`` Python module enabling multi-group cross section generation -- Collision estimator for tallies -- Delayed fission neutron production tallies with ability to filter by delayed - group -- Inverse velocity tally score -- Performance improvements for binary search -- Performance improvements for reaction rate tallies +- Multi-group mode +- Vast improvements to the Python API +- Experimental windowed multipole capability +- Periodic boundary conditions +- Expanded source sampling options +- Distributed materials +- Subcritical multiplication support +- Improved method for reproducible URR table sampling +- Refactor of continuous-energy reaction data +- Improved documentation and new Jupyter notebooks --------- Bug Fixes --------- -- 299322_: Bug with material filter when void material present -- d74840_: Fix triggers on tallies with multiple filters -- c29a81_: Correctly handle maximum transport energy -- 3edc23_: Fixes in the nu-scatter score -- 629e3b_: Assume unspecified surface coefficients are zero in Python API -- 5dbe8b_: Fix energy filters for openmc-plot-mesh-tally -- ff66f4_: Fixes in the openmc-plot-mesh-tally script -- 441fd4_: Fix bug in kappa-fission score -- 7e5974_: Allow fixed source simulations from Python API +- 70daa7_: Make sure MT=3 cross section is not used +- 40b05f_: Ensure source bank is resampled for fixed source runs +- 9586ed_: Fix two hexagonal lattice bugs +- a855e8_: Make sure graphite models don't error out on max events +- 7294a1_: Fix incorrect check on cmfd.xml +- 12f246_: Ensure number of realizations is written to statepoint +- 0227f4_: Fix bug when sampling multiple energy distributions +- 51deaa_: Prevent segfault when user specifies '18' on tally scores +- fed74b_: Prevent duplicate tally scores +- 8467ae_: Better threshold for allowable lost particles +- 493c6f_: Fix type of return argument for h5pget_driver_f -.. _299322: https://github.com/mit-crpg/openmc/commit/299322 -.. _d74840: https://github.com/mit-crpg/openmc/commit/d74840 -.. _c29a81: https://github.com/mit-crpg/openmc/commit/c29a81 -.. _3edc23: https://github.com/mit-crpg/openmc/commit/3edc23 -.. _629e3b: https://github.com/mit-crpg/openmc/commit/629e3b -.. _5dbe8b: https://github.com/mit-crpg/openmc/commit/5dbe8b -.. _ff66f4: https://github.com/mit-crpg/openmc/commit/ff66f4 -.. _441fd4: https://github.com/mit-crpg/openmc/commit/441fd4 -.. _7e5974: https://github.com/mit-crpg/openmc/commit/7e5974 +.. _70daa7: https://github.com/mit-crpg/openmc/commit/70daa7 +.. _40b05f: https://github.com/mit-crpg/openmc/commit/40b05f +.. _9586ed: https://github.com/mit-crpg/openmc/commit/9586ed +.. _a855e8: https://github.com/mit-crpg/openmc/commit/a855e8 +.. _7294a1: https://github.com/mit-crpg/openmc/commit/7294a1 +.. _12f246: https://github.com/mit-crpg/openmc/commit/12f246 +.. _0227f4: https://github.com/mit-crpg/openmc/commit/0227f4 +.. _51deaa: https://github.com/mit-crpg/openmc/commit/51deaa +.. _fed74b: https://github.com/mit-crpg/openmc/commit/fed74b +.. _8467ae: https://github.com/mit-crpg/openmc/commit/8467ae +.. _493c6f: https://github.com/mit-crpg/openmc/commit/493c6f ------------ Contributors @@ -81,11 +86,11 @@ Contributors This release contains new contributions from the following people: - `Will Boyd `_ -- `Sterling Harper `_ -- `Bryan Herman `_ +- `Derek Gaston `_ +- `Sterling Harper `_ - `Colin Josey `_ +- `Jingang Liang `_ - `Adam Nelson `_ - `Paul Romano `_ - `Kelly Rowland `_ - `Sam Shaner `_ -- `Jon Walsh `_ diff --git a/man/man1/openmc.1 b/man/man1/openmc.1 index 102adfbdc3..e69360a7c1 100644 --- a/man/man1/openmc.1 +++ b/man/man1/openmc.1 @@ -46,7 +46,7 @@ to locate ACE format cross section libraries if the user has not specified the tag in .I settings.xml\fP. .SH LICENSE -Copyright \(co 2011-2015 Massachusetts Institute of Technology. +Copyright \(co 2011-2016 Massachusetts Institute of Technology. .PP Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/setup.py b/setup.py index a842a1c3ae..393f40bd35 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ except ImportError: have_setuptools = False kwargs = {'name': 'openmc', - 'version': '0.7.1', + 'version': '0.8.0', 'packages': ['openmc', 'openmc.data', 'openmc.mgxs', 'openmc.model', 'openmc.stats'], 'scripts': glob.glob('scripts/openmc-*'), diff --git a/src/constants.F90 b/src/constants.F90 index b3e5ed89b1..127b4507fc 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -7,8 +7,8 @@ module constants ! OpenMC major, minor, and release numbers integer, parameter :: VERSION_MAJOR = 0 - integer, parameter :: VERSION_MINOR = 7 - integer, parameter :: VERSION_RELEASE = 1 + integer, parameter :: VERSION_MINOR = 8 + integer, parameter :: VERSION_RELEASE = 0 ! Revision numbers for binary files integer, parameter :: REVISION_STATEPOINT = 15 From ede81f95e989bcd4f1842e663e7f6526e190e83c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 1 Jul 2016 13:19:39 +0700 Subject: [PATCH 160/417] Ensure line-length is within 160 characters per F2008 standard --- src/multipole_header.F90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/multipole_header.F90 b/src/multipole_header.F90 index a21677a952..143047b0b5 100644 --- a/src/multipole_header.F90 +++ b/src/multipole_header.F90 @@ -45,7 +45,8 @@ module multipole_header logical :: fissionable = .false. ! Is this isotope fissionable? integer :: length ! Number of poles integer, allocatable :: l_value(:) ! The l index of the pole - real(8), allocatable :: pseudo_k0RS(:) ! The value (sqrt(2*mass neutron)/reduced planck constant) * AWR/(AWR + 1) * scattering radius for each l + real(8), allocatable :: pseudo_k0RS(:) ! The value (sqrt(2*mass neutron)/reduced planck constant) + ! * AWR/(AWR + 1) * scattering radius for each l complex(8), allocatable :: data(:,:) ! Contains all of the pole-residue data real(8) :: sqrtAWR ! Square root of the atomic weight ratio From 195f81cacbf5c9bb8ca7b48ffb641d3c4f384180 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 1 Jul 2016 13:20:47 +0700 Subject: [PATCH 161/417] Update Intel compiler flags. Allow CC to be set in run_tests.py --- CMakeLists.txt | 9 ++++----- tests/run_tests.py | 7 +++++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 16cf914e58..73f0afccc2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,8 +147,7 @@ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL Intel) if(debug) list(APPEND f90flags -g -warn -ftrapuv -fp-stack-check "-check all" -fpe0) - list(APPEND cflags -g -warn -ftrapuv -fp-stack-check - "-check all" -fpe0) + list(APPEND cflags -g -w3 -ftrapuv -fp-stack-check) list(APPEND ldflags -g) endif() if(profile) @@ -161,9 +160,9 @@ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL Intel) list(APPEND cflags -O3) endif() if(openmp) - list(APPEND f90flags -openmp) - list(APPEND cflags -openmp) - list(APPEND ldflags -openmp) + list(APPEND f90flags -qopenmp) + list(APPEND cflags -qopenmp) + list(APPEND ldflags -qopenmp) endif() elseif(CMAKE_Fortran_COMPILER_ID STREQUAL PGI) diff --git a/tests/run_tests.py b/tests/run_tests.py index 5a04f340a8..87282055c2 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -42,6 +42,7 @@ parser.add_option("-s", "--script", action="store_true", dest="script", # Default compiler paths FC='gfortran' +CC='gcc' MPI_DIR='/opt/mpich/3.2-gnu' HDF5_DIR='/opt/hdf5/1.8.16-gnu' PHDF5_DIR='/opt/phdf5/1.8.16-gnu' @@ -52,6 +53,8 @@ script_mode = False # Override default compiler paths if environmental vars are found if 'FC' in os.environ: FC = os.environ['FC'] +if 'CC' in os.environ: + CC = os.environ['CC'] if 'MPI_DIR' in os.environ: MPI_DIR = os.environ['MPI_DIR'] if 'HDF5_DIR' in os.environ: @@ -158,8 +161,10 @@ class Test(object): self.fc = os.path.join(MPI_DIR, 'bin', 'mpifort') else: self.fc = os.path.join(MPI_DIR, 'bin', 'mpif90') + self.cc = os.path.join(MPI_DIR, 'bin', 'mpicc') else: self.fc = FC + self.cc = CC # Sets the build name that will show up on the CDash def get_build_name(self): @@ -189,6 +194,7 @@ class Test(object): # Runs the ctest script which performs all the cmake/ctest/cdash def run_ctest_script(self): os.environ['FC'] = self.fc + os.environ['CC'] = self.cc if self.mpi: os.environ['MPI_DIR'] = MPI_DIR if self.phdf5: @@ -203,6 +209,7 @@ class Test(object): # Runs cmake when in non-script mode def run_cmake(self): os.environ['FC'] = self.fc + os.environ['CC'] = self.cc if self.mpi: os.environ['MPI_DIR'] = MPI_DIR if self.phdf5: From 68e5a093aa37fdc18132e278ad9a965a1665364b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 13 May 2016 15:57:39 -0500 Subject: [PATCH 162/417] Added full openmc.data package and hooks in code --- .travis.yml | 8 +- data/convert_hdf5.py | 96 + data/get_nndc_data.py | 2 +- docs/source/_static/theme_overrides.css | 8 + docs/source/conf.py | 3 +- docs/source/io_formats/index.rst | 18 +- docs/source/io_formats/nuclear_data.rst | 353 +++ docs/source/pythonapi/index.rst | 81 +- examples/python/basic/build-xml.py | 8 +- examples/python/boxes/build-xml.py | 10 +- .../python/lattice/hexagonal/build-xml.py | 10 +- examples/python/lattice/nested/build-xml.py | 8 +- examples/python/lattice/simple/build-xml.py | 8 +- examples/python/pincell/build-xml.py | 68 +- examples/python/reflective/build-xml.py | 2 +- examples/xml/basic/materials.xml | 8 +- examples/xml/boxes/materials.xml | 10 +- examples/xml/lattice/nested/materials.xml | 8 +- examples/xml/lattice/simple/materials.xml | 8 +- examples/xml/pincell/materials.xml | 78 +- examples/xml/reflective/materials.xml | 2 +- openmc/ace.py | 65 - openmc/data/__init__.py | 12 + openmc/data/ace.py | 2226 +++++++++++++++++ openmc/data/angle_distribution.py | 134 + openmc/data/angle_energy.py | 40 + openmc/data/container.py | 269 ++ openmc/data/correlated.py | 291 +++ openmc/data/data.py | 57 + openmc/data/energy_distribution.py | 850 +++++++ openmc/data/kalbach_mann.py | 253 ++ openmc/data/nbody.py | 118 + openmc/data/product.py | 205 ++ openmc/data/thermal.py | 92 + openmc/data/uncorrelated.py | 95 + openmc/data/urr.py | 171 ++ openmc/settings.py | 11 +- openmc/stats/univariate.py | 154 +- src/ace.F90 | 1738 ------------- src/angle_distribution.F90 | 72 +- src/angleenergy_header.F90 | 9 + src/constants.F90 | 7 + src/endf_header.F90 | 54 +- src/energy_distribution.F90 | 210 +- src/global.F90 | 10 +- src/initialize.F90 | 82 +- src/input_xml.F90 | 2059 ++++++++------- src/material_header.F90 | 4 +- src/mgxs_data.F90 | 33 +- src/mgxs_header.F90 | 44 +- src/nuclide_header.F90 | 289 ++- src/output.F90 | 8 +- src/product_header.F90 | 94 + src/reaction_header.F90 | 42 + src/relaxng/materials.rnc | 6 +- src/relaxng/materials.rng | 42 +- src/sab_header.F90 | 301 ++- src/secondary_correlated.F90 | 160 +- src/secondary_kalbach.F90 | 118 +- src/secondary_nbody.F90 | 13 + src/secondary_uncorrelated.F90 | 61 +- src/state_point.F90 | 17 +- src/stl_vector.F90 | 158 ++ src/summary.F90 | 25 +- src/urr_header.F90 | 53 + tests/input_set.py | 440 ++-- tests/test_asymmetric_lattice/inputs_true.dat | 2 +- tests/test_cmfd_feed/materials.xml | 6 +- tests/test_cmfd_nofeed/materials.xml | 6 +- tests/test_complex_cell/materials.xml | 4 +- tests/test_confidence_intervals/materials.xml | 2 +- tests/test_density/materials.xml | 12 +- tests/test_distribmat/inputs_true.dat | 2 +- tests/test_distribmat/test_distribmat.py | 8 +- .../test_eigenvalue_genperbatch/materials.xml | 2 +- .../test_eigenvalue_no_inactive/materials.xml | 2 +- tests/test_energy_grid/materials.xml | 6 +- tests/test_energy_laws/materials.xml | 8 +- tests/test_entropy/materials.xml | 2 +- .../case-1/materials.xml | 6 +- .../case-2/materials.xml | 6 +- .../case-3/materials.xml | 118 +- .../case-4/materials.xml | 10 +- tests/test_filter_mesh_2d/materials.xml | 412 +-- tests/test_filter_mesh_3d/materials.xml | 412 +-- tests/test_fixed_source/materials.xml | 4 +- tests/test_infinite_cell/materials.xml | 4 +- tests/test_iso_in_lab/inputs_true.dat | 2 +- tests/test_lattice/materials.xml | 158 +- tests/test_lattice_hex/materials.xml | 36 +- tests/test_lattice_mixed/materials.xml | 36 +- tests/test_lattice_multiple/materials.xml | 412 +-- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_multipole/inputs_true.dat | 2 +- tests/test_multipole/test_multipole.py | 6 +- tests/test_natural_element/materials.xml | 8 +- tests/test_output/materials.xml | 2 +- .../materials.xml | 2 +- .../test_particle_restart_fixed/materials.xml | 2 +- tests/test_periodic/inputs_true.dat | 2 +- tests/test_periodic/test_periodic.py | 8 +- tests/test_plot/materials.xml | 6 +- tests/test_ptables_off/materials.xml | 2 +- tests/test_quadric_surfaces/materials.xml | 4 +- tests/test_reflective_plane/materials.xml | 2 +- .../test_resonance_scattering/inputs_true.dat | 2 +- .../test_resonance_scattering.py | 17 +- tests/test_rotation/materials.xml | 2 +- tests/test_salphabeta/materials.xml | 42 +- tests/test_score_current/materials.xml | 412 +-- tests/test_seed/materials.xml | 2 +- tests/test_source/inputs_true.dat | 2 +- tests/test_source/test_source.py | 2 +- tests/test_source_file/materials.xml | 2 +- tests/test_sourcepoint_batch/materials.xml | 2 +- tests/test_sourcepoint_interval/materials.xml | 2 +- tests/test_sourcepoint_latest/materials.xml | 2 +- tests/test_sourcepoint_restart/materials.xml | 2 +- tests/test_statepoint_batch/materials.xml | 2 +- tests/test_statepoint_interval/materials.xml | 2 +- tests/test_statepoint_restart/materials.xml | 2 +- tests/test_statepoint_sourcesep/materials.xml | 2 +- tests/test_survival_biasing/materials.xml | 4 +- tests/test_tallies/inputs_true.dat | 2 +- tests/test_tallies/test_tallies.py | 2 +- tests/test_tally_aggregation/inputs_true.dat | 2 +- .../test_tally_aggregation.py | 8 +- tests/test_tally_arithmetic/inputs_true.dat | 2 +- .../test_tally_arithmetic.py | 6 +- tests/test_tally_assumesep/materials.xml | 412 +-- tests/test_tally_nuclides/materials.xml | 2 +- tests/test_tally_nuclides/tallies.xml | 2 +- tests/test_tally_slice_merge/inputs_true.dat | 2 +- tests/test_tally_slice_merge/results_true.dat | 128 +- .../test_tally_slice_merge.py | 6 +- tests/test_trace/materials.xml | 2 +- tests/test_track_output/materials.xml | 132 +- tests/test_translation/materials.xml | 2 +- .../test_trigger_batch_interval/materials.xml | 2 +- tests/test_trigger_batch_interval/tallies.xml | 2 +- .../materials.xml | 2 +- .../tallies.xml | 2 +- tests/test_trigger_no_status/materials.xml | 2 +- tests/test_trigger_no_status/tallies.xml | 2 +- tests/test_trigger_tallies/materials.xml | 2 +- tests/test_trigger_tallies/tallies.xml | 2 +- tests/test_triso/inputs_true.dat | 2 +- tests/test_triso/test_triso.py | 26 +- tests/test_uniform_fs/materials.xml | 2 +- tests/test_union_energy_grids/materials.xml | 6 +- tests/test_universe/materials.xml | 2 +- tests/test_void/materials.xml | 70 +- 158 files changed, 10186 insertions(+), 4878 deletions(-) create mode 100644 data/convert_hdf5.py create mode 100644 docs/source/io_formats/nuclear_data.rst delete mode 100644 openmc/ace.py create mode 100644 openmc/data/ace.py create mode 100644 openmc/data/angle_distribution.py create mode 100644 openmc/data/angle_energy.py create mode 100644 openmc/data/container.py create mode 100644 openmc/data/correlated.py create mode 100644 openmc/data/energy_distribution.py create mode 100644 openmc/data/kalbach_mann.py create mode 100644 openmc/data/nbody.py create mode 100644 openmc/data/product.py create mode 100644 openmc/data/thermal.py create mode 100644 openmc/data/uncorrelated.py create mode 100644 openmc/data/urr.py delete mode 100644 src/ace.F90 diff --git a/.travis.yml b/.travis.yml index 6aed183a0d..46f5e91bf2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,10 +41,10 @@ install: true before_script: - cd data - - 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 OPENMC_CROSS_SECTIONS=$PWD/nndc/cross_sections.xml + - git clone --branch=master git://github.com/paulromano/nndc-hdf5 + - cat nndc-hdf5/nndc_hdf5.tar.xz? | tar xJvf - + - rm -rf nndc-hdf5 + - export OPENMC_CROSS_SECTIONS=$PWD/nndc_hdf5/cross_sections.xml - 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 diff --git a/data/convert_hdf5.py b/data/convert_hdf5.py new file mode 100644 index 0000000000..3f5fcfdb74 --- /dev/null +++ b/data/convert_hdf5.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python + +import glob +import os +from xml.dom.minidom import getDOMImplementation + +import openmc.data.ace + + +if not os.path.isdir('nndc_hdf5'): + os.mkdir('nndc_hdf5') + +nndc_files = glob.glob('nndc/293.6K/*.ace') +nndc_thermal_files = glob.glob('nndc/tsl/*.acer') + +thermal_names = {'al': 'c_Al27', + 'be': 'c_Be', + 'bebeo': 'c_Be_in_BeO', + 'benzine': 'c_Benzine', + 'dd2o': 'c_D_in_D2O', + 'fe': 'c_Fe56', + 'graphite': 'c_Graphite', + 'hch2': 'c_H_in_CH2', + 'hh2o': 'c_H_in_H2O', + 'hzrh': 'c_H_in_ZrH', + 'lch4': 'c_liquid_CH4', + 'obeo': 'c_O_in_BeO', + 'orthod': 'c_ortho_D', + 'orthoh': 'c_ortho_H', + 'ouo2': 'c_O_in_UO2', + 'parad': 'c_para_D', + 'parah': 'c_para_H', + 'sch4': 'c_solid_CH4', + 'uuo2': 'c_U_in_UO2', + 'zrzrh': 'c_Zr_in_ZrH'} + +impl = getDOMImplementation() +doc = impl.createDocument(None, "cross_sections", None) +doc_root = doc.documentElement + +for f in sorted(nndc_files): + print('Converting {}...'.format(f)) + + # Deterine output file name + dirname, basename = os.path.split(f) + root, ext = os.path.splitext(basename) + outfile = os.path.join('nndc_hdf5', root + '.h5') + if os.path.exists(outfile): + os.remove(outfile) + + # Determine elemental symbol, mass number and metastable state + element, mass_number, temp = basename.split('_') + metastable = int(mass_number[-1]) if 'm' in mass_number else 0 + mass_number = int(mass_number[:3]) + + # Parse ACE file, create HDF5 file + t = openmc.data.ace.get_table(f) + t.export_to_hdf5(outfile, element, mass_number, metastable) + xs = t.name.split('.')[1] + if metastable > 0: + name = "{}{}_m{}.{}".format(element, mass_number, metastable, xs) + else: + name = "{}{}.{}".format(element, mass_number, xs) + + # Add entry to XML listing + libraryNode = doc.createElement("library") + libraryNode.setAttribute("path", root + '.h5') + libraryNode.setAttribute("materials", name) + libraryNode.setAttribute("type", "neutron") + doc_root.appendChild(libraryNode) + +for f in sorted(nndc_thermal_files): + print('Converting {}...'.format(f)) + + # Deterine output file name + dirname, basename = os.path.split(f) + root, ext = os.path.splitext(basename) + outfile = os.path.join('nndc_hdf5', root + '.h5') + if os.path.exists(outfile): + os.remove(outfile) + + # Parse ACE file, create HDF5 file + t = openmc.data.ace.get_table(f) + t.export_to_hdf5(outfile, thermal_names[root]) + xs = t.name.split('.')[1] + + # Add entry to XML listing + libraryNode = doc.createElement("library") + libraryNode.setAttribute("path", root + '.h5') + libraryNode.setAttribute("materials", thermal_names[root] + '.' + xs) + libraryNode.setAttribute("type", "thermal") + doc_root.appendChild(libraryNode) + +# Write cross_sections.xml +lines = doc.toprettyxml(indent=' ') +open(os.path.join('nndc_hdf5', 'cross_sections.xml'), 'w').write(lines) diff --git a/data/get_nndc_data.py b/data/get_nndc_data.py index b9b855a812..844abea812 100755 --- a/data/get_nndc_data.py +++ b/data/get_nndc_data.py @@ -22,7 +22,7 @@ except ImportError: cwd = os.getcwd() sys.path.insert(0, os.path.join(cwd, '..')) -from openmc.ace import ascii_to_binary +from openmc.data.ace import ascii_to_binary baseUrl = 'http://www.nndc.bnl.gov/endf/b7.1/aceFiles/' files = ['ENDF-B-VII.1-neutron-293.6K.tar.gz', diff --git a/docs/source/_static/theme_overrides.css b/docs/source/_static/theme_overrides.css index 7c1a520223..bee03f4150 100644 --- a/docs/source/_static/theme_overrides.css +++ b/docs/source/_static/theme_overrides.css @@ -8,3 +8,11 @@ max-width: 100%; overflow: visible; } + +.wy-plain-list-disc, .rst-content .section ul, .rst-content .toctree-wrapper ul, article ul { + margin-bottom: 0px; +} + +.wy-table, .rst-content table.docutils, .rst-content table.field-list { + margin-bottom: 0px; +} diff --git a/docs/source/conf.py b/docs/source/conf.py index 38661cdb37..c9299b4245 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -24,7 +24,8 @@ except ImportError: from mock import Mock as MagicMock -MOCK_MODULES = ['numpy', 'h5py', 'pandas', 'opencg'] +MOCK_MODULES = ['numpy', 'numpy.polynomial', 'numpy.polynomial.polynomial', + 'h5py', 'pandas', 'opencg'] sys.modules.update((mod_name, MagicMock()) for mod_name in MOCK_MODULES) diff --git a/docs/source/io_formats/index.rst b/docs/source/io_formats/index.rst index 905cd26cc0..acab7e8930 100644 --- a/docs/source/io_formats/index.rst +++ b/docs/source/io_formats/index.rst @@ -4,12 +4,26 @@ File Format Specifications ========================== +---------- +Data Files +---------- + .. toctree:: :numbered: - :maxdepth: 3 + :maxdepth: 2 - data_wmp + nuclear_data mgxs_library + data_wmp + +------------ +Output Files +------------ + +.. toctree:: + :numbered: + :maxdepth: 2 + statepoint source summary diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst new file mode 100644 index 0000000000..e7d4f2d32a --- /dev/null +++ b/docs/source/io_formats/nuclear_data.rst @@ -0,0 +1,353 @@ +.. _usersguide_nuclear_data: + +======================== +Nuclear Data File Format +======================== + +--------------------- +Incident Neutron Data +--------------------- + + +**//** + +:Attributes: - **Z** (*int*) -- Atomic number + - **A** (*int*) -- Mass number + - **metastable** (*int*) -- Metastable state + - **atomic_weight_ratio** (*double*) -- Mass in units of neutron masses + - **temperature** (*double*) -- Temperature in MeV + - **n_reaction** (*int*) -- Number of reactions + +:Datasets: - **energy** (*double[]*) -- Energy points at which cross sections are tabulated + +**//reaction_/** + +:Attributes: - **mt** (*int*) -- ENDF MT reaction number + - **label** (*char[]*) -- Name of the reaction + - **Q_value** (*double*) -- Q value in MeV + - **threshold_idx** (*int*) -- Index on the energy grid that the + reaction threshold corresponds to + - **center_of_mass** (*int*) -- Whether the reference frame for + scattering is center-of-mass (1) or laboratory (0) + - **n_product** (*int*) -- Number of reaction products + +:Datasets: - **xs** (*double[]*) -- Cross section values tabulated against the nuclide energy grid + +**//reaction_/product_/** + + Reaction product data is described in :ref:`product`. + +**//urr** + +:Attributes: - **interpolation** (*int*) -- interpolation scheme + - **inelastic** (*int*) -- flag indicating inelastic scattering + - **other_absorb** (*int*) -- flag indicating other absorption + - **factors** (*int*) -- flag indicating whether tables are + absolute or multipliers + +:Datasets: - **energy** (*double[]*) -- Energy at which probability tables exist + - **table** (*double[][][]*) -- Probability tables + +**//total_nu/** + + This special product is used to define the total number of neutrons produced + from fission. It is formatted as a reaction product, described in + :ref:`product`. + +------------------------------- +Thermal Neutron Scattering Data +------------------------------- + +**//** + +:Attributes: - **atomic_weight_ratio** (*double*) -- Mass in units of neutron masses + - **temperature** (*double*) -- Temperature in MeV + - **zaids** (*int[]*) -- ZAID identifiers for which the thermal + scattering data applies to + +**//elastic/** + +:Datasets: - **xs** (:ref:`tabulated <1d_tabulated>`) -- Thermal inelastic + scattering cross section + - **mu_out** (*double[][]*) -- Distribution of outgoing energies + and angles for coherent elastic scattering + +**//inelastic/** + +:Attributes: + - **secondary_mode** (*char[]*) -- Indicates how the inelastic + outgoing angle-energy distributions are represented ('equal', + 'skewed', or 'continuous'). + +:Datasets: - **xs** (:ref:`tabulated <1d_tabulated>`) -- Thermal inelastic + scattering cross section + - **energy_out** (*double[][]*) -- Distribution of outgoing + energies for each incoming energy. Only present if secondary mode + is not continuous. + - **mu_out** (*double[][][]*) -- Distribution of scattering cosines + for each pair of incoming and outgoing energies. Only present if + secondary mode is not continuous. + +If the secondary mode is continuous, the outgoing energy-angle distribution is +given as a :ref:`correlated angle-energy distribution +`. + +.. _product: + +----------------- +Reaction Products +----------------- + +:Object type: Group +:Attributes: - **particle** (*char[]*) -- Type of particle + - **emission_mode** (*char[]*) -- Emission mode (prompt, delayed, + total) + - **decay_rate** (*double*) -- Rate of decay in inverse seconds + - **n_distribution** (*int*) -- Number of angle/energy + distributions +:Datasets: + - **yield** (:ref:`function <1d_functions>`) -- Energy-dependent + yield of the product. + +:Groups: + - **distribution_** -- Formats for angle-energy distributions are + detailed in :ref:`angle_energy`. When multiple angle-energy + distributions occur, one dataset also may appear for each + distribution: + + :Datasets: + - **applicability** (:ref:`function <1d_functions>`) -- + Probability of selecting this distribution as a function + of incident energy + +.. _1d_functions: + +------------------------- +One-dimensional Functions +------------------------- + +Scalar +------ + +:Object type: Dataset +:Datatype: *double* +:Attributes: - **type** (*char[]*) -- 'constant' + +.. _1d_tabulated: + +Tabulated +--------- + +:Object type: Dataset +:Datatype: *double[2][]* +:Description: x-values are listed first followed by corresponding y-values +:Attributes: - **type** (*char[]*) -- 'tabulated' + - **breakpoints** (*int[]*) -- Region breakpoints + - **interpolation** (*int[]*) -- Region interpolation codes + +Polynomial +---------- + +:Object type: Dataset +:Datatype: *double[]* +:Description: Polynomial coefficients listed in order of increasing power +:Attributes: - **type** (*char[]*) -- 'polynomial' + +Coherent elastic scattering +--------------------------- + +:Object type: Dataset +:Datatype: *double[2][]* +:Description: The first row lists Bragg edges and the second row lists structure + factor cumulative sums. +:Attributes: - **type** (*char[]*) -- 'bragg' + +.. _angle_energy: + +-------------------------- +Angle-Energy Distributions +-------------------------- + +Uncorrelated Angle-Energy +------------------------- + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'uncorrelated' +:Datasets: - **angle/energy** (*double[]*) -- energies at which angle distributions exist + - **angle/mu** (*double[3][]*) -- tabulated angular distributions for + each energy. The first row gives :math:`\mu` values, the second row + gives the probability density, and the third row gives the + cumulative distribution. + + :Attributes: - **offsets** (*int[]*) -- indices indicating where + each angular distribution starts + - **interpolation** (*int[]*) -- interpolation code + for each angular distribution + +:Groups: - **energy/** (:ref:`energy distribution `) + +.. _correlated_angle_energy: + +Correlated Angle-Energy +----------------------- + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'correlated' +:Datasets: - **energy** (*double[]*) -- Incoming energies at which distributions exist + + :Attributes: + - **interpolation** (*double[2][]*) -- Breakpoints and + interpolation codes for incoming energy regions + + - **energy_out** (*double[5][]*) -- Distribution of outgoing energies + corresponding to each incoming energy. The distributions are + flattened into a single array; the start of a given distribution + can be determined using the ``offsets`` attribute. The first row + gives outgoing energies, the second row gives the probability + density, the third row gives the cumulative distribution, the + fourth row gives interpolation codes for angular distributions, and + the fifth row gives offsets for angular distributions. + + :Attributes: - **offsets** (*double[]*) -- Offset for each + distribution + - **interpolation** (*int[]*) -- Interpolation code + for each distribution + - **n_discrete_lines** (*int[]*) -- Number of discrete + lines in each distribution + + - **mu** (*double[3][]*) -- Distribution of angular cosines + corresponding to each pair of incoming and outgoing energies. The + distributions are flattened into a single array; the start of a + given distribution can be determined using offsets in the fifth row + of the ``energy_out`` dataset. The first row gives angular cosines, + the second row gives the probability density, and the third row + gives the cumulative distribution. + +Kalbach-Mann +------------ + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'kalbach-mann' +:Datasets: - **energy** (*double[]*) -- Incoming energies at which distributions exist + + :Attributes: + - **interpolation** (*double[2][]*) -- Breakpoints and + interpolation codes for incoming energy regions + + - **distribution** (*double[5][]*) -- Distribution of outgoing + energies and angles corresponding to each incoming energy. The + distributions are flattened into a single array; the start of a + given distribution can be determined using the ``offsets`` + attribute. The first row gives outgoing energies, the second row + gives the probability density, the third row gives the cumulative + distribution, the fourth row gives Kalbach-Mann precompound + factors, and the fifth row gives Kalbach-Mann angular distribution + slopes. + + :Attributes: - **offsets** (*double[]*) -- Offset for each + distribution + - **interpolation** (*int[]*) -- Interpolation code + for each distribution + - **n_discrete_lines** (*int[]*) -- Number of discrete + lines in each distribution + +N-Body Phase Space +------------------ + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'nbody' + - **total_mass** (*double*) -- Total mass of product particles + - **n_particles** (*int*) -- Number of product particles + - **atomic_weight_ratio** (*double*) -- Atomic weight ratio of the + target nuclide in neutron masses + - **q_value** (*double*) -- Q value for the reaction in MeV + +.. _energy_distribution: + +-------------------- +Energy Distributions +-------------------- + +Maxwell +------- + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'maxwell' + - **u** (*double*) -- Restriction energy in MeV +:Datasets: + - **theta** (:ref:`tabulated <1d_tabulated>`) -- Maxwellian + temperature as a function of energy + +Evaporation +----------- + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'evaporation' + - **u** (*double*) -- Restriction energy in MeV +:Datasets: + - **theta** (:ref:`tabulated <1d_tabulated>`) -- Evaporation + temperature as a function of energy + +Watt Fission Spectrum +--------------------- + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'watt' + - **u** (*double*) -- Restriction energy in MeV +:Datasets: - **a** (:ref:`tabulated <1d_tabulated>`) -- Watt parameter :math:`a` + as a function of incident energy + - **b** (:ref:`tabulated <1d_tabulated>`) -- Watt parameter :math:`b` + as a function of incident energy + +Madland-Nix +----------- + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'watt' + - **efl** (*double*) -- Average energy of light fragment in eV + - **efh** (*double*) -- Average energy of heavy fragment in eV + +Discrete Photon +--------------- + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'discrete_photon' + - **primary_flag** (*int*) -- Whether photon is a primary + - **energy** (*double*) -- Photon energy in MeV + - **atomic_weight_ratio** (*double*) -- Atomic weight ratio of + target nuclide in neutron masses + +Level Inelastic +--------------- + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'level' + - **threshold** (*double*) -- Energy threshold in the laboratory + system in MeV + - **mass_ratio** (*double*) -- :math:`(A/(A + 1))^2` + +Continuous Tabular +------------------ + +:Object type: Group +:Attributes: - **type** (*char[]*) -- 'continuous' +:Datasets: - **energy** (*double[]*) -- Incoming energies at which distributions exist + + :Attributes: + - **interpolation** (*double[2][]*) -- Breakpoints and + interpolation codes for incoming energy regions + + - **distribution** (*double[3][]*) -- Distribution of outgoing + energies corresponding to each incoming energy. The distributions + are flattened into a single array; the start of a given + distribution can be determined using the ``offsets`` attribute. The + first row gives outgoing energies, the second row gives the + probability density, and the third row gives the cumulative + distribution. + + :Attributes: - **offsets** (*double[]*) -- Offset for each + distribution + - **interpolation** (*int[]*) -- Interpolation code + for each distribution + - **n_discrete_lines** (*int[]*) -- Number of discrete + lines in each distribution diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 09b3d5135e..a17af8ac67 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -35,9 +35,6 @@ Example Jupyter Notebooks Handling nuclear data --------------------- -Classes -+++++++ - .. autosummary:: :toctree: generated :nosignatures: @@ -46,14 +43,6 @@ Classes openmc.XSdata openmc.MGXSLibrary -Functions -+++++++++ - -.. autosummary:: - :toctree: generated - :nosignatures: - - openmc.ace.ascii_to_binary Simulation Settings ------------------- @@ -224,6 +213,8 @@ Univariate Probability Distributions openmc.stats.Maxwell openmc.stats.Watt openmc.stats.Tabular + openmc.stats.Legendre + openmc.stats.Mixture Angular Distributions --------------------- @@ -325,6 +316,74 @@ Functions openmc.model.create_triso_lattice +-------------------------------------------- +:mod:`openmc.data` -- Nuclear Data Interface +-------------------------------------------- + +Core Classes +------------ + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.data.Product + openmc.data.Tabulated1D + openmc.data.CoherentElastic + +Angle-Energy Distributions +-------------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.data.AngleEnergy + openmc.data.KalbachMann + openmc.data.CorrelatedAngleEnergy + openmc.data.UncorrelatedAngleEnergy + openmc.data.NBodyPhaseSpace + openmc.data.AngleDistribution + openmc.data.EnergyDistribution + openmc.data.ArbitraryTabulated + openmc.data.GeneralEvaporation + openmc.data.MaxwellEnergy + openmc.data.Evaporation + openmc.data.WattEnergy + openmc.data.MadlandNix + openmc.data.DiscretePhoton + openmc.data.LevelInelastic + openmc.data.ContinuousTabular + +ACE Format +---------- + +Classes ++++++++ + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.data.ace.Library + openmc.data.ace.Table + openmc.data.ace.NeutronTable + openmc.data.ace.SabTable + openmc.data.ace.PhotoatomicTable + openmc.data.ace.PhotonuclearTable + openmc.data.ace.Reaction + +Functions ++++++++++ + +.. autosummary:: + :toctree: generated + :nosignatures: + + openmc.data.ace.ascii_to_binary .. _Jupyter: https://jupyter.org/ .. _NumPy: http://www.numpy.org/ diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index 81aecc9f99..1bfe50b2e3 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -16,16 +16,16 @@ particles = 10000 ############################################################################### # Instantiate some Nuclides -h1 = openmc.Nuclide('H-1') -o16 = openmc.Nuclide('O-16') -u235 = openmc.Nuclide('U-235') +h1 = openmc.Nuclide('H1') +o16 = openmc.Nuclide('O16') +u235 = openmc.Nuclide('U235') # Instantiate some Materials and register the appropriate Nuclides moderator = openmc.Material(material_id=41, name='moderator') moderator.set_density('g/cc', 1.0) moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) -moderator.add_s_alpha_beta('HH2O', '71t') +moderator.add_s_alpha_beta('c_H_in_H2O', '71t') fuel = openmc.Material(material_id=40, name='fuel') fuel.set_density('g/cc', 4.5) diff --git a/examples/python/boxes/build-xml.py b/examples/python/boxes/build-xml.py index 4be33dcf1f..3eed4059c1 100644 --- a/examples/python/boxes/build-xml.py +++ b/examples/python/boxes/build-xml.py @@ -16,10 +16,10 @@ particles = 10000 ############################################################################### # Instantiate some Nuclides -h1 = openmc.Nuclide('H-1') -o16 = openmc.Nuclide('O-16') -u235 = openmc.Nuclide('U-235') -u238 = openmc.Nuclide('U-238') +h1 = openmc.Nuclide('H1') +o16 = openmc.Nuclide('O16') +u235 = openmc.Nuclide('U235') +u238 = openmc.Nuclide('U238') # Instantiate some Materials and register the appropriate Nuclides fuel1 = openmc.Material(material_id=1, name='fuel') @@ -34,7 +34,7 @@ moderator = openmc.Material(material_id=3, name='moderator') moderator.set_density('g/cc', 1.0) moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) -moderator.add_s_alpha_beta('HH2O', '71t') +moderator.add_s_alpha_beta('c_H_in_H2O', '71t') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([fuel1, fuel2, moderator]) diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index 05cb2cb010..ba2cac3670 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -15,10 +15,10 @@ particles = 10000 ############################################################################### # Instantiate some Nuclides -h1 = openmc.Nuclide('H-1') -o16 = openmc.Nuclide('O-16') -u235 = openmc.Nuclide('U-235') -fe56 = openmc.Nuclide('Fe-56') +h1 = openmc.Nuclide('H1') +o16 = openmc.Nuclide('O16') +u235 = openmc.Nuclide('U235') +fe56 = openmc.Nuclide('Fe56') # Instantiate some Materials and register the appropriate Nuclides fuel = openmc.Material(material_id=1, name='fuel') @@ -29,7 +29,7 @@ moderator = openmc.Material(material_id=2, name='moderator') moderator.set_density('g/cc', 1.0) moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) -moderator.add_s_alpha_beta('HH2O', '71t') +moderator.add_s_alpha_beta('c_H_in_H2O', '71t') iron = openmc.Material(material_id=3, name='iron') iron.set_density('g/cc', 7.9) diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index 03cede9dc5..edf3ad7b19 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -15,9 +15,9 @@ particles = 10000 ############################################################################### # Instantiate some Nuclides -h1 = openmc.Nuclide('H-1') -o16 = openmc.Nuclide('O-16') -u235 = openmc.Nuclide('U-235') +h1 = openmc.Nuclide('H1') +o16 = openmc.Nuclide('O16') +u235 = openmc.Nuclide('U235') # Instantiate some Materials and register the appropriate Nuclides fuel = openmc.Material(material_id=1, name='fuel') @@ -28,7 +28,7 @@ moderator = openmc.Material(material_id=2, name='moderator') moderator.set_density('g/cc', 1.0) moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) -moderator.add_s_alpha_beta('HH2O', '71t') +moderator.add_s_alpha_beta('c_H_in_H2O', '71t') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials((moderator, fuel)) diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index 5a642d3086..5ec1b7ee9f 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -15,9 +15,9 @@ particles = 10000 ############################################################################### # Instantiate some Nuclides -h1 = openmc.Nuclide('H-1') -o16 = openmc.Nuclide('O-16') -u235 = openmc.Nuclide('U-235') +h1 = openmc.Nuclide('H1') +o16 = openmc.Nuclide('O16') +u235 = openmc.Nuclide('U235') # Instantiate some Materials and register the appropriate Nuclides fuel = openmc.Material(material_id=1, name='fuel') @@ -28,7 +28,7 @@ moderator = openmc.Material(material_id=2, name='moderator') moderator.set_density('g/cc', 1.0) moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) -moderator.add_s_alpha_beta('HH2O', '71t') +moderator.add_s_alpha_beta('c_H_in_H2O', '71t') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([moderator, fuel]) diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index 0afb2527f6..3bda050276 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -15,39 +15,39 @@ particles = 1000 ############################################################################### # Instantiate some Nuclides -h1 = openmc.Nuclide('H-1') -h2 = openmc.Nuclide('H-2') -he4 = openmc.Nuclide('He-4') -b10 = openmc.Nuclide('B-10') -b11 = openmc.Nuclide('B-11') -o16 = openmc.Nuclide('O-16') -o17 = openmc.Nuclide('O-17') -cr50 = openmc.Nuclide('Cr-50') -cr52 = openmc.Nuclide('Cr-52') -cr53 = openmc.Nuclide('Cr-53') -cr54 = openmc.Nuclide('Cr-54') -fe54 = openmc.Nuclide('Fe-54') -fe56 = openmc.Nuclide('Fe-56') -fe57 = openmc.Nuclide('Fe-57') -fe58 = openmc.Nuclide('Fe-58') -zr90 = openmc.Nuclide('Zr-90') -zr91 = openmc.Nuclide('Zr-91') -zr92 = openmc.Nuclide('Zr-92') -zr94 = openmc.Nuclide('Zr-94') -zr96 = openmc.Nuclide('Zr-96') -sn112 = openmc.Nuclide('Sn-112') -sn114 = openmc.Nuclide('Sn-114') -sn115 = openmc.Nuclide('Sn-115') -sn116 = openmc.Nuclide('Sn-116') -sn117 = openmc.Nuclide('Sn-117') -sn118 = openmc.Nuclide('Sn-118') -sn119 = openmc.Nuclide('Sn-119') -sn120 = openmc.Nuclide('Sn-120') -sn122 = openmc.Nuclide('Sn-122') -sn124 = openmc.Nuclide('Sn-124') -u234 = openmc.Nuclide('U-234') -u235 = openmc.Nuclide('U-235') -u238 = openmc.Nuclide('U-238') +h1 = openmc.Nuclide('H1') +h2 = openmc.Nuclide('H2') +he4 = openmc.Nuclide('He4') +b10 = openmc.Nuclide('B10') +b11 = openmc.Nuclide('B11') +o16 = openmc.Nuclide('O16') +o17 = openmc.Nuclide('O17') +cr50 = openmc.Nuclide('Cr50') +cr52 = openmc.Nuclide('Cr52') +cr53 = openmc.Nuclide('Cr53') +cr54 = openmc.Nuclide('Cr54') +fe54 = openmc.Nuclide('Fe54') +fe56 = openmc.Nuclide('Fe56') +fe57 = openmc.Nuclide('Fe57') +fe58 = openmc.Nuclide('Fe58') +zr90 = openmc.Nuclide('Zr90') +zr91 = openmc.Nuclide('Zr91') +zr92 = openmc.Nuclide('Zr92') +zr94 = openmc.Nuclide('Zr94') +zr96 = openmc.Nuclide('Zr96') +sn112 = openmc.Nuclide('Sn112') +sn114 = openmc.Nuclide('Sn114') +sn115 = openmc.Nuclide('Sn115') +sn116 = openmc.Nuclide('Sn116') +sn117 = openmc.Nuclide('Sn117') +sn118 = openmc.Nuclide('Sn118') +sn119 = openmc.Nuclide('Sn119') +sn120 = openmc.Nuclide('Sn120') +sn122 = openmc.Nuclide('Sn122') +sn124 = openmc.Nuclide('Sn124') +u234 = openmc.Nuclide('U234') +u235 = openmc.Nuclide('U235') +u238 = openmc.Nuclide('U238') # Instantiate some Materials and register the appropriate Nuclides uo2 = openmc.Material(material_id=1, name='UO2 fuel at 2.4% wt enrichment') @@ -98,7 +98,7 @@ borated_water.add_nuclide(h1, 4.9457e-2) borated_water.add_nuclide(h2, 7.4196e-6) borated_water.add_nuclide(o16, 2.4672e-2) borated_water.add_nuclide(o17, 6.0099e-5) -borated_water.add_s_alpha_beta('HH2O', '71t') +borated_water.add_s_alpha_beta('c_H_in_H2O', '71t') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([uo2, helium, zircaloy, borated_water]) diff --git a/examples/python/reflective/build-xml.py b/examples/python/reflective/build-xml.py index 949e57c8c7..0e064ab610 100644 --- a/examples/python/reflective/build-xml.py +++ b/examples/python/reflective/build-xml.py @@ -16,7 +16,7 @@ particles = 10000 ############################################################################### # Instantiate a Nuclides -u235 = openmc.Nuclide('U-235') +u235 = openmc.Nuclide('U235') # Instantiate a Material and register the Nuclide fuel = openmc.Material(material_id=1, name='fuel') diff --git a/examples/xml/basic/materials.xml b/examples/xml/basic/materials.xml index 75ab74dbba..2f88731ffc 100644 --- a/examples/xml/basic/materials.xml +++ b/examples/xml/basic/materials.xml @@ -5,14 +5,14 @@ - + - - - + + + diff --git a/examples/xml/boxes/materials.xml b/examples/xml/boxes/materials.xml index 6f6114a7da..c74714a085 100644 --- a/examples/xml/boxes/materials.xml +++ b/examples/xml/boxes/materials.xml @@ -5,19 +5,19 @@ - + - + - - - + + + diff --git a/examples/xml/lattice/nested/materials.xml b/examples/xml/lattice/nested/materials.xml index b649221366..7f8b06bb10 100644 --- a/examples/xml/lattice/nested/materials.xml +++ b/examples/xml/lattice/nested/materials.xml @@ -6,14 +6,14 @@ - + - - - + + + diff --git a/examples/xml/lattice/simple/materials.xml b/examples/xml/lattice/simple/materials.xml index b649221366..7f8b06bb10 100644 --- a/examples/xml/lattice/simple/materials.xml +++ b/examples/xml/lattice/simple/materials.xml @@ -6,14 +6,14 @@ - + - - - + + + diff --git a/examples/xml/pincell/materials.xml b/examples/xml/pincell/materials.xml index 427fc175d4..b6af486d14 100644 --- a/examples/xml/pincell/materials.xml +++ b/examples/xml/pincell/materials.xml @@ -12,59 +12,59 @@ - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + diff --git a/examples/xml/reflective/materials.xml b/examples/xml/reflective/materials.xml index 6da53a9b60..13cbf070ea 100644 --- a/examples/xml/reflective/materials.xml +++ b/examples/xml/reflective/materials.xml @@ -5,7 +5,7 @@ - + diff --git a/openmc/ace.py b/openmc/ace.py deleted file mode 100644 index 3606b1e947..0000000000 --- a/openmc/ace.py +++ /dev/null @@ -1,65 +0,0 @@ -from __future__ import division -from struct import pack - - -def ascii_to_binary(ascii_file, binary_file): - """Convert an ACE file in ASCII format (type 1) to binary format (type 2). - - Parameters - ---------- - ascii_file : str - Filename of ASCII ACE file - binary_file : str - Filename of binary ACE file to be written - - """ - - # Open ASCII file - ascii = open(ascii_file, 'r') - - # Set default record length - record_length = 4096 - - # Read data from ASCII file - lines = ascii.readlines() - ascii.close() - - # Open binary file - binary = open(binary_file, 'wb') - - idx = 0 - while idx < len(lines): - # Read/write header block - hz = lines[idx][:10].encode('UTF-8') - aw0 = float(lines[idx][10:22]) - tz = float(lines[idx][22:34]) - hd = lines[idx][35:45].encode('UTF-8') - hk = lines[idx + 1][:70].encode('UTF-8') - hm = lines[idx + 1][70:80].encode('UTF-8') - binary.write(pack('=10sdd10s70s10s', hz, aw0, tz, hd, hk, hm)) - - # Read/write IZ/AW pairs - data = ' '.join(lines[idx + 2:idx + 6]).split() - iz = list(map(int, data[::2])) - aw = list(map(float, data[1::2])) - izaw = [item for sublist in zip(iz, aw) for item in sublist] - binary.write(pack('=' + 16*'id', *izaw)) - - # Read/write NXS and JXS arrays. Null bytes are added at the end so - # that XSS will start at the second record - nxs = list(map(int, ' '.join(lines[idx + 6:idx + 8]).split())) - jxs = list(map(int, ' '.join(lines[idx + 8:idx + 12]).split())) - binary.write(pack('=16i32i{0}x'.format(record_length - 500), *(nxs + jxs))) - - # Read/write XSS array. Null bytes are added to form a complete record - # at the end of the file - n_lines = (nxs[0] + 3)//4 - xss = list(map(float, ' '.join(lines[idx + 12:idx + 12 + n_lines]).split())) - extra_bytes = record_length - ((len(xss)*8 - 1) % record_length + 1) - binary.write(pack('={0}d{1}x'.format(nxs[0], extra_bytes), *xss)) - - # Advance to next table in file - idx += 12 + n_lines - - # Close binary file - binary.close() diff --git a/openmc/data/__init__.py b/openmc/data/__init__.py index df22d8bbb4..32de3b598e 100644 --- a/openmc/data/__init__.py +++ b/openmc/data/__init__.py @@ -1 +1,13 @@ from .data import * +from .ace import * +from .angle_distribution import * +from .container import * +from .energy_distribution import * +from .product import * +from .angle_energy import * +from .uncorrelated import * +from .correlated import * +from .kalbach_mann import * +from .nbody import * +from .thermal import * +from .urr import * diff --git a/openmc/data/ace.py b/openmc/data/ace.py new file mode 100644 index 0000000000..16c18dfb49 --- /dev/null +++ b/openmc/data/ace.py @@ -0,0 +1,2226 @@ +"""This module is for reading ACE-format cross sections. ACE stands for "A +Compact ENDF" format and originated from work on MCNP_. It is used in a number +of other Monte Carlo particle transport codes. + +ACE-format cross sections are typically generated from ENDF_ files through a +cross section processing program like NJOY_. The ENDF data consists of tabulated +thermal data, ENDF/B resonance parameters, distribution parameters in the +unresolved resonance region, and tabulated data in the fast region. After the +ENDF data has been reconstructed and Doppler-broadened, the ACER module +generates ACE-format cross sections. + +.. _MCNP: https://laws.lanl.gov/vhosts/mcnp.lanl.gov/ +.. _NJOY: http://t2.lanl.gov/codes.shtml +.. _ENDF: http://www.nndc.bnl.gov/endf + +""" + +from __future__ import division, unicode_literals +import io +from os import SEEK_CUR +import struct +import sys +from warnings import warn +from collections import OrderedDict +from copy import deepcopy + +import numpy as np +from numpy.polynomial import Polynomial +import h5py + +from . import atomic_number, atomic_symbol, reaction_name +from .container import Tabulated1D, interpolation_scheme +from .angle_distribution import AngleDistribution +from .energy_distribution import * +from .product import Product +from .angle_energy import AngleEnergy +from .kalbach_mann import KalbachMann +from .uncorrelated import UncorrelatedAngleEnergy +from .correlated import CorrelatedAngleEnergy +from .nbody import NBodyPhaseSpace +from .thermal import CoherentElastic +from .urr import ProbabilityTables +from openmc.stats import Tabular, Discrete, Uniform, Mixture + +if sys.version_info[0] >= 3: + basestring = str + + +def ascii_to_binary(ascii_file, binary_file): + """Convert an ACE file in ASCII format (type 1) to binary format (type 2). + + Parameters + ---------- + ascii_file : str + Filename of ASCII ACE file + binary_file : str + Filename of binary ACE file to be written + + """ + + # Open ASCII file + ascii = open(ascii_file, 'r') + + # Set default record length + record_length = 4096 + + # Read data from ASCII file + lines = ascii.readlines() + ascii.close() + + # Open binary file + binary = open(binary_file, 'wb') + + idx = 0 + + while idx < len(lines): + # check if it's a > 2.0.0 version header + if lines[idx].split()[0][1] == '.': + if lines[idx + 1].split()[3] == '3': + idx = idx + 3 + else: + raise NotImplementedError('Only backwards compatible ACE' + 'headers currently supported') + # Read/write header block + hz = lines[idx][:10].encode('UTF-8') + aw0 = float(lines[idx][10:22]) + tz = float(lines[idx][22:34]) + hd = lines[idx][35:45].encode('UTF-8') + hk = lines[idx + 1][:70].encode('UTF-8') + hm = lines[idx + 1][70:80].encode('UTF-8') + binary.write(struct.pack(str('=10sdd10s70s10s'), hz, aw0, tz, hd, hk, hm)) + + # Read/write IZ/AW pairs + data = ' '.join(lines[idx + 2:idx + 6]).split() + iz = list(map(int, data[::2])) + aw = list(map(float, data[1::2])) + izaw = [item for sublist in zip(iz, aw) for item in sublist] + binary.write(struct.pack(str('=' + 16*'id'), *izaw)) + + # Read/write NXS and JXS arrays. Null bytes are added at the end so + # that XSS will start at the second record + nxs = list(map(int, ' '.join(lines[idx + 6:idx + 8]).split())) + jxs = list(map(int, ' '.join(lines[idx + 8:idx + 12]).split())) + binary.write(struct.pack(str('=16i32i{0}x'.format(record_length - 500)), + *(nxs + jxs))) + + # Read/write XSS array. Null bytes are added to form a complete record + # at the end of the file + n_lines = (nxs[0] + 3)//4 + xss = list(map(float, ' '.join(lines[ + idx + 12:idx + 12 + n_lines]).split())) + extra_bytes = record_length - ((len(xss)*8 - 1) % record_length + 1) + binary.write(struct.pack(str('={0}d{1}x'.format(nxs[0], extra_bytes)), + *xss)) + + # Advance to next table in file + idx += 12 + n_lines + + # Close binary file + binary.close() + + +def _get_tabulated_1d(array, idx=0): + """Create a Tabulated1D object from array. + + Parameters + ---------- + array : numpy.ndarray + Array is formed as a 1 dimensional array as follows: [number of regions, + final pair for each region, interpolation parameters, number of pairs, + x-values, y-values] + idx : int, optional + Offset to read from in array (default of zero) + + Returns + ------- + openmc.data.Tabulated1D + Tabulated data object + + """ + + # Get number of regions and pairs + n_regions = int(array[idx]) + n_pairs = int(array[idx + 1 + 2*n_regions]) + + # Get interpolation information + idx += 1 + if n_regions > 0: + nbt = np.asarray(array[idx:idx + n_regions], dtype=int) + interp = np.asarray(array[idx + n_regions:idx + 2*n_regions], dtype=int) + else: + # NR=0 regions implies linear-linear interpolation by default + nbt = np.array([n_pairs]) + interp = np.array([2]) + + # Get (x,y) pairs + idx += 2*n_regions + 1 + x = array[idx:idx + n_pairs] + y = array[idx + n_pairs:idx + 2*n_pairs] + + return Tabulated1D(x, y, nbt, interp) + + +def get_table(filename, name=None): + """Read a single table from an ACE file + + Parameters + ---------- + filename : str + Path of the ACE library to load table from + name : str, optional + Name of table to load, e.g. '92235.71c' + + Returns + ------- + openmc.data.ace.Table + ACE table with specified name. If no name is specified, the first table + in the file is returned. + + """ + + lib = Library(filename) + if name is None: + return list(lib.tables.values())[0] + else: + return lib.tables[name] + + +def get_all_tables(filename): + """Read all tables from an ACE file + + Parameters + ---------- + filename : str + Path of the ACE library to load table from + name : str, optional + Name of table to load, e.g. '92235.71c' + + Returns + ------- + list of openmc.data.ace.Table + ACE tables read from the file + + """ + + lib = Library(filename) + return list(lib.tables.values()) + + +class Library(object): + """A Library objects represents an ACE-formatted file which may contain + multiple tables with data. + + Parameters + ---------- + filename : str + Path of the ACE library file to load. + table_names : None, str, or iterable, optional + Tables from the file to read in. If None, reads in all of the + tables. If str, reads in only the single table of a matching name. + verbose : bool, optional + Determines whether output is printed to the stdout when reading a + Library + + Attributes + ---------- + tables : dict + Dictionary whose keys are the names of the ACE tables and whose values + are the instances of subclasses of :class:`Table` + (e.g. :class:`NeutronTable`) + + """ + + def __init__(self, filename, table_names=None, verbose=False): + if isinstance(table_names, basestring): + table_names = [table_names] + if table_names is not None: + table_names = set(table_names) + + self.tables = {} + + # Determine whether file is ASCII or binary + try: + fh = io.open(filename, 'rb') + # Grab 10 lines of the library + sb = b''.join([fh.readline() for i in range(10)]) + + # Try to decode it with ascii + sd = sb.decode('ascii') + + # No exception so proceed with ASCII - reopen in non-binary + fh.close() + fh = io.open(filename, 'r') + fh.seek(0) + self._read_ascii(fh, table_names, verbose) + except UnicodeDecodeError: + fh.close() + fh = open(filename, 'rb') + self._read_binary(fh, table_names, verbose) + + def _read_binary(self, fh, table_names, verbose=False, + recl_length=4096, entries=512): + """Read a binary (Type 2) ACE table. + + Parameters + ---------- + fh : file + Open ACE file + table_names : None, str, or iterable + Tables from the file to read in. If None, reads in all of the + tables. If str, reads in only the single table of a matching name. + verbose : str, optional + Whether to display what tables are being read. Defaults to False. + recl_length : int, optional + Fortran record length in binary file. Default value is 4096 bytes. + entries : int, optional + Number of entries per record. The default is 512 corresponding to a + record length of 4096 bytes with double precision data. + + """ + + while True: + start_position = fh.tell() + + # Check for end-of-file + if len(fh.read(1)) == 0: + return + fh.seek(start_position) + + # Read name, atomic mass ratio, temperature, date, comment, and + # material + name, atomic_weight_ratio, temperature, date, comment, mat = \ + struct.unpack(str('=10sdd10s70s10s'), fh.read(116)) + name = name.strip() + + # Read ZAID/awr combinations + izaw_pairs = struct.unpack(str('=' + 16*'id'), fh.read(192)) + + # Read NXS + nxs = list(struct.unpack(str('=16i'), fh.read(64))) + + # Determine length of XSS and number of records + length = nxs[0] + n_records = (length + entries - 1)//entries + + # name is bytes, make it a string + name = name.decode() + # verify that we are supposed to read this table in + if (table_names is not None) and (name not in table_names): + fh.seek(start_position + recl_length*(n_records + 1)) + continue + + # ensure we have a valid table type + if len(name) == 0 or name[-1] not in table_types: + warn("Unsupported table: " + name, RuntimeWarning) + fh.seek(start_position + recl_length*(n_records + 1)) + continue + + # get the table + table = table_types[name[-1]](name, atomic_weight_ratio, temperature) + + if verbose: + temperature_in_K = round(temperature * 1e6 / 8.617342e-5) + print("Loading nuclide {0} at {1} K".format(name, temperature_in_K)) + self.tables[name] = table + + # If table is S(a,b), add zaids + zaids = np.array(izaw_pairs[::2]) + table.zaids = zaids[np.nonzero(zaids)] + + # Read JXS + jxs = list(struct.unpack(str('=32i'), fh.read(128))) + + # Read XSS + fh.seek(start_position + recl_length) + xss = list(struct.unpack(str('={0}d'.format(length)), + fh.read(length*8))) + + # Insert empty object at beginning of NXS, JXS, and XSS arrays so + # that the indexing will be the same as Fortran. This makes it + # easier to follow the ACE format specification. + nxs.insert(0, 0) + table._nxs = np.array(nxs, dtype=int) + + jxs.insert(0, 0) + table._jxs = np.array(jxs, dtype=int) + + xss.insert(0, 0.0) + table._xss = np.array(xss) + + # Read all data blocks + table._read_all() + + # Advance to next record + fh.seek(start_position + recl_length*(n_records + 1)) + + def _read_ascii(self, fh, table_names, verbose=False): + """Read an ASCII (Type 1) ACE table. + + Parameters + ---------- + fh : file + Open ACE file + table_names : None, str, or iterable + Tables from the file to read in. If None, reads in all of the + tables. If str, reads in only the single table of a matching name. + verbose : str, optional + Whether to display what tables are being read. Defaults to False. + + """ + + tables_seen = set() + + lines = [fh.readline() for i in range(13)] + + while (0 != len(lines)) and (lines[0] != ''): + # Read name of table, atomic mass ratio, and temperature. If first + # line is empty, we are at end of file + + # check if it's a 2.0 style header + if lines[0].split()[0][1] == '.': + words = lines[0].split() + version = words[0] + name = words[1] + if len(words) == 3: + source = words[2] + words = lines[1].split() + atomic_weight_ratio = float(words[0]) + temperature = float(words[1]) + commentlines = int(words[3]) + for i in range(commentlines): + lines.pop(0) + lines.append(fh.readline()) + else: + words = lines[0].split() + name = words[0] + atomic_weight_ratio = float(words[1]) + temperature = float(words[2]) + + izaw_pairs = (' '.join(lines[2:6])).split() + + datastr = '0 ' + ' '.join(lines[6:8]) + nxs = np.fromstring(datastr, sep=' ', dtype=int) + + n_lines = (nxs[1] + 3)//4 + n_bytes = len(lines[-1]) * (n_lines - 2) + 1 + + # Ensure that we have more tables to read in + if (table_names is not None) and (table_names < tables_seen): + break + tables_seen.add(name) + + # verify that we are suppossed to read this table in + if (table_names is not None) and (name not in table_names): + fh.seek(n_bytes, SEEK_CUR) + fh.readline() + lines = [fh.readline() for i in range(13)] + continue + + # ensure we have a valid table type + if len(name) == 0 or name[-1] not in table_types: + warn("Unsupported table: " + name, RuntimeWarning) + fh.seek(n_bytes, SEEK_CUR) + fh.readline() + lines = [fh.readline() for i in range(13)] + continue + + # read and fix over-shoot + lines += fh.readlines(n_bytes) + if 12 + n_lines < len(lines): + goback = sum([len(line) for line in lines[12+n_lines:]]) + lines = lines[:12+n_lines] + fh.seek(-goback, SEEK_CUR) + + # get the table + table = table_types[name[-1]](name, atomic_weight_ratio, temperature) + + if verbose: + temperature_in_K = round(temperature * 1e6 / 8.617342e-5) + print("Loading nuclide {0} at {1} K".format(name, temperature_in_K)) + self.tables[name] = table + + # Read comment + table.comment = lines[1].strip() + + # If table is S(a,b), add zaids + if isinstance(table, SabTable): + zaids = np.fromiter(map(int, izaw_pairs[::2]), int) + table.zaids = zaids[np.nonzero(zaids)] + + # Add NXS, JXS, and XSS arrays to table Insert empty object at + # beginning of NXS, JXS, and XSS arrays so that the indexing will be + # the same as Fortran. This makes it easier to follow the ACE format + # specification. + table._nxs = nxs + + datastr = '0 ' + ' '.join(lines[8:12]) + table._jxs = np.fromstring(datastr, dtype=int, sep=' ') + + datastr = '0.0 ' + ''.join(lines[12:12+n_lines]) + table._xss = np.fromstring(datastr, sep=' ') + + # Read all data blocks + table._read_all() + lines = [fh.readline() for i in range(13)] + + +class Table(object): + """Abstract superclass of all other classes for cross section tables. + + Parameters + ---------- + name : str + ZAID identifier of the table, e.g. '92235.70c'. + atomic_weight_ratio : float + Atomic mass ratio of the target nuclide. + temperature : float + Temperature of the target nuclide in eV. + + Attributes + ---------- + name : str + ZAID identifier of the table, e.g. '92235.70c'. + atomic_weight_ratio : float + Atomic mass ratio of the target nuclide. + temperature : float + Temperature of the target nuclide in eV. + + """ + + def __init__(self, name, atomic_weight_ratio, temperature): + self.name = name + self.atomic_weight_ratio = atomic_weight_ratio + self.temperature = temperature + + def _read_all(self): + raise NotImplementedError + + def _get_continuous_tabular(self, idx, ldis): + """Get continuous tabular energy distribution (ACE law 4) starting at specified + index in the XSS array. + + Parameters + ---------- + idx : int + Index in XSS array of the start of the energy distribution data + (LDIS + LOCC - 1) + ldis : int + Index in XSS array of the start of the energy distribution block + (e.g. JXS[11]) + + Returns + ------- + openmc.data.energy_distribution.ContinuousTabular + Continuous tabular energy distribution + + """ + + # Read number of interpolation regions and incoming energies + n_regions = int(self._xss[idx]) + n_energy_in = int(self._xss[idx + 1 + 2*n_regions]) + + # Get interpolation information + idx += 1 + if n_regions > 0: + breakpoints = np.asarray(self._xss[idx:idx + n_regions], dtype=int) + interpolation = np.asarray(self._xss[idx + n_regions: + idx + 2*n_regions], dtype=int) + else: + breakpoints = np.array([n_energy_in]) + interpolation = np.array([2]) + + # Incoming energies at which distributions exist + idx += 2 * n_regions + 1 + energy = self._xss[idx:idx + n_energy_in] + + # Location of distributions + idx += n_energy_in + loc_dist = np.asarray(self._xss[idx:idx + n_energy_in], dtype=int) + + # Initialize variables + energy_out = [] + + # Read each outgoing energy distribution + for i in range(n_energy_in): + idx = ldis + loc_dist[i] - 1 + + # intt = interpolation scheme (1=hist, 2=lin-lin) + INTTp = int(self._xss[idx]) + intt = INTTp % 10 + n_discrete_lines = (INTTp - intt)//10 + if intt not in (1, 2): + warn("Interpolation scheme for continuous tabular distribution " + "is not histogram or linear-linear.") + intt = 2 + + n_energy_out = int(self._xss[idx + 1]) + data = self._xss[idx + 2:idx + 2 + 3*n_energy_out] + data.shape = (3, n_energy_out) + + # Create continuous distribution + eout_continuous = Tabular(data[0][n_discrete_lines:], + data[1][n_discrete_lines:], + interpolation_scheme[intt]) + eout_continuous.c = data[2][n_discrete_lines:] + + # If discrete lines are present, create a mixture distribution + if n_discrete_lines > 0: + eout_discrete = Discrete(data[0][:n_discrete_lines], + data[1][:n_discrete_lines]) + eout_discrete.c = data[2][:n_discrete_lines] + if n_discrete_lines == n_energy_out: + eout_i = eout_discrete + else: + p_discrete = min(sum(eout_discrete.p), 1.0) + eout_i = Mixture([p_discrete, 1. - p_discrete], + [eout_discrete, eout_continuous]) + else: + eout_i = eout_continuous + + energy_out.append(eout_i) + + return ContinuousTabular(breakpoints, interpolation, energy, + energy_out) + + def _get_general_evaporation(self, idx): + # Read nuclear temperature as Tabulated1D + theta = _get_tabulated_1d(array, idx) + + # X-function + nr = int(array[idx]) + ne = int(array[idx + 1 + 2*nr]) + idx += 2 + 2*nr + 2*ne + net = int(array[idx]) + x = array[idx + 1:idx + 1 + net] + + raise NotImplementedError("Where'd you get this ACE file from?") + + def _get_maxwell_energy(self, idx): + # Read nuclear temperature as Tabulated1D + theta = _get_tabulated_1d(self._xss, idx) + + # Restriction energy + nr = int(self._xss[idx]) + ne = int(self._xss[idx + 1 + 2*nr]) + u = self._xss[idx + 2 + 2*nr + 2*ne] + + return MaxwellEnergy(theta, u) + + def _get_evaporation(self, idx): + # Read nuclear temperature as Tabulated1D + theta = _get_tabulated_1d(self._xss, idx) + + # Restriction energy + nr = int(self._xss[idx]) + ne = int(self._xss[idx + 1 + 2*nr]) + u = self._xss[idx + 2 + 2*nr + 2*ne] + + return Evaporation(theta, u) + + def _get_watt_energy(self, idx): + # Energy-dependent a parameter + a = _get_tabulated_1d(self._xss, idx) + + # Advance index + nr = int(self._xss[idx]) + ne = int(self._xss[idx + 1 + 2*nr]) + idx += 2 + 2*nr + 2*ne + + # Energy-dependent b parameter + b = _get_tabulated_1d(self._xss, idx) + + # Advance index + nr = int(self._xss[idx]) + ne = int(self._xss[idx + 1 + 2*nr]) + idx += 2 + 2*nr + 2*ne + + # Restriction energy + u = self._xss[idx] + + return WattEnergy(a, b, u) + + def _get_kalbach_mann(self, idx, ldis): + # Read number of interpolation regions and incoming energies + n_regions = int(self._xss[idx]) + n_energy_in = int(self._xss[idx + 1 + 2*n_regions]) + + # Get interpolation information + idx += 1 + if n_regions > 0: + breakpoints = np.asarray(self._xss[idx:idx + n_regions], dtype=int) + interpolation = np.asarray(self._xss[idx + n_regions: + idx + 2*n_regions], dtype=int) + else: + breakpoints = np.array([n_energy_in]) + interpolation = np.array([2]) + + # Incoming energies at which distributions exist + idx += 2 * n_regions + 1 + energy = self._xss[idx:idx + n_energy_in] + + # Location of distributions + idx += n_energy_in + loc_dist = np.asarray(self._xss[idx:idx + n_energy_in], dtype=int) + + # Initialize variables + energy_out = [] + km_r = [] + km_a = [] + + # Read each outgoing energy distribution + for i in range(n_energy_in): + idx = ldis + loc_dist[i] - 1 + + # intt = interpolation scheme (1=hist, 2=lin-lin) + INTTp = int(self._xss[idx]) + intt = INTTp % 10 + n_discrete_lines = (INTTp - intt)//10 + if intt not in (1, 2): + warn("Interpolation scheme for continuous tabular distribution " + "is not histogram or linear-linear.") + intt = 2 + + n_energy_out = int(self._xss[idx + 1]) + data = self._xss[idx + 2:idx + 2 + 5*n_energy_out] + data.shape = (5, n_energy_out) + + # Create continuous distribution + eout_continuous = Tabular(data[0][n_discrete_lines:], + data[1][n_discrete_lines:], + interpolation_scheme[intt]) + eout_continuous.c = data[2][n_discrete_lines:] + + # If discrete lines are present, create a mixture distribution + if n_discrete_lines > 0: + eout_discrete = Discrete(data[0][:n_discrete_lines], + data[1][:n_discrete_lines]) + eout_discrete.c = data[2][:n_discrete_lines] + if n_discrete_lines == n_energy_out: + eout_i = eout_discrete + else: + p_discrete = min(sum(eout_discrete.p), 1.0) + eout_i = Mixture([p_discrete, 1. - p_discrete], + [eout_discrete, eout_continuous]) + else: + eout_i = eout_continuous + + energy_out.append(eout_i) + km_r.append(Tabulated1D(data[0], data[3])) + km_a.append(Tabulated1D(data[0], data[4])) + + return KalbachMann(breakpoints, interpolation, energy, energy_out, + km_r, km_a) + + def _get_correlated(self, idx, ldis): + # Read number of interpolation regions and incoming energies + n_regions = int(self._xss[idx]) + n_energy_in = int(self._xss[idx + 1 + 2*n_regions]) + + # Get interpolation information + idx += 1 + if n_regions > 0: + breakpoints = np.asarray(self._xss[idx:idx + n_regions], dtype=int) + interpolation = np.asarray(self._xss[idx + n_regions: + idx + 2*n_regions], dtype=int) + else: + breakpoints = np.array([n_energy_in]) + interpolation = np.array([2]) + + # Incoming energies at which distributions exist + idx += 2 * n_regions + 1 + energy = self._xss[idx:idx + n_energy_in] + + # Location of distributions + idx += n_energy_in + loc_dist = np.asarray(self._xss[idx:idx + n_energy_in], dtype=int) + + # Initialize list of distributions + energy_out = [] + mu = [] + + # Read each outgoing energy distribution + for i in range(n_energy_in): + idx = ldis + loc_dist[i] - 1 + + # intt = interpolation scheme (1=hist, 2=lin-lin) + INTTp = int(self._xss[idx]) + intt = INTTp % 10 + n_discrete_lines = (INTTp - intt)//10 + if intt not in (1, 2): + warn("Interpolation scheme for continuous tabular distribution " + "is not histogram or linear-linear.") + intt = 2 + + # Secondary energy distribution + n_energy_out = int(self._xss[idx + 1]) + data = self._xss[idx + 2:idx + 2 + 4*n_energy_out] + data.shape = (4, n_energy_out) + + # Create continuous distribution + eout_continuous = Tabular(data[0][n_discrete_lines:], + data[1][n_discrete_lines:], + interpolation_scheme[intt], + ignore_negative=True) + eout_continuous.c = data[2][n_discrete_lines:] + + # If discrete lines are present, create a mixture distribution + if n_discrete_lines > 0: + eout_discrete = Discrete(data[0][:n_discrete_lines], + data[1][:n_discrete_lines]) + eout_discrete.c = data[2][:n_discrete_lines] + if n_discrete_lines == n_energy_out: + eout_i = eout_discrete + else: + p_discrete = min(sum(eout_discrete.p), 1.0) + eout_i = Mixture([p_discrete, 1. - p_discrete], + [eout_discrete, eout_continuous]) + else: + eout_i = eout_continuous + + energy_out.append(eout_i) + + lc = np.asarray(data[3], dtype=int) + + # Secondary angular distributions + mu_i = [] + for j in range(n_energy_out): + if lc[j] > 0: + idx = ldis + abs(lc[j]) - 1 + + intt = int(self._xss[idx]) + n_cosine = int(self._xss[idx + 1]) + data = self._xss[idx + 2:idx + 2 + 3*n_cosine] + data.shape = (3, n_cosine) + + mu_ij = Tabular(data[0], data[1], interpolation_scheme[intt]) + mu_ij.c = data[2] + else: + # Isotropic distribution + mu_ij = Uniform(-1., 1.) + + mu_i.append(mu_ij) + + # Add cosine distributions for this incoming energy to list + mu.append(mu_i) + + return CorrelatedAngleEnergy(breakpoints, interpolation, energy, + energy_out, mu) + + def _get_energy_distribution(self, location_dist, location_start, rx=None): + """Returns an EnergyDistribution object from data read in starting at + location_start. + + Parameters + ---------- + location_dist : int + Index in the XSS array corresponding to the start of a block, + e.g. JXS(11) for the the DLW block. + location_start : int + Index in the XSS array corresponding to the start of an energy + distribution array + rx : Reaction + Reaction this energy distribution will be associated with + + Returns + ------- + distribution : openmc.data.AngleEnergy + Secondary angle-energy distribution + + """ + + # Set starting index for energy distribution + idx = location_dist + location_start - 1 + + law = int(self._xss[idx + 1]) + location_data = int(self._xss[idx + 2]) + + # Position index for reading law data + idx = location_dist + location_data - 1 + + # Parse energy distribution data + if law == 2: + primary_flag = int(self._xss[idx]) + energy = self._xss[idx + 1] + distribution = UncorrelatedAngleEnergy() + distribution.energy = DiscretePhoton(primary_flag, energy, + self.atomic_weight_ratio) + elif law in (3, 33): + threshold, mass_ratio = self._xss[idx:idx + 2] + distribution = UncorrelatedAngleEnergy() + distribution.energy = LevelInelastic(threshold, mass_ratio) + elif law == 4: + distribution = UncorrelatedAngleEnergy() + distribution.energy = self._get_continuous_tabular(idx, location_dist) + elif law == 5: + distribution = UncorrelatedAngleEnergy() + distribution.energy = self._get_general_evaporation(idx) + elif law == 7: + distribution = UncorrelatedAngleEnergy() + distribution.energy = self._get_maxwell_energy(idx) + elif law == 9: + distribution = UncorrelatedAngleEnergy() + distribution.energy = self._get_evaporation(idx) + elif law == 11: + distribution = UncorrelatedAngleEnergy() + distribution.energy = self._get_watt_energy(idx) + elif law == 44: + distribution = self._get_kalbach_mann(idx, location_dist) + elif law == 61: + distribution = self._get_correlated(idx, location_dist) + elif law == 66: + n_particles = int(self._xss[idx]) + total_mass = self._xss[idx + 1] + distribution = NBodyPhaseSpace(total_mass, n_particles, + self.atomic_weight_ratio, rx.Q_value) + else: + raise IOError("Unsupported ACE secondary energy " + "distribution law {0}".format(law)) + + return distribution + + +class NeutronTable(Table): + """A NeutronTable object contains continuous-energy neutron interaction data + read from an ACE-formatted table. These objects are not normally + instantiated by the user but rather created when reading data using a + Library object and stored within the :attr:`Library.tables` attribute. + + Parameters + ---------- + name : str + ZAID identifier of the table, e.g. '92235.70c'. + atomic_weight_ratio : float + Atomic mass ratio of the target nuclide. + temperature : float + Temperature of the target nuclide in eV. + + Attributes + ---------- + absorption_xs : numpy.ndarray + The microscopic absorption cross section for each value on the energy + grid. + atomic_weight_ratio : float + Atomic weight ratio of the target nuclide. + energy : numpy.ndarray + The energy values (MeV) at which reaction cross-sections are tabulated. + heating_number : numpy.ndarray + The total heating number for each value on the energy grid in MeV-b. + name : str + ZAID identifier of the table, e.g. 92235.70c. + reactions : collections.OrderedDict + Contains the cross sections, secondary angle and energy distributions, + and other associated data for each reaction. The keys are the MT values + and the values are Reaction objects. + temperature : float + Temperature of the target nuclide in eV. + total_xs : numpy.ndarray + The microscopic total cross section for each value on the energy grid in b. + urr : None or openmc.data.ProbabilityTables + Unresolved resonance region probability tables + + """ + + def __init__(self, name, atomic_weight_ratio, temperature): + super(NeutronTable, self).__init__(name, atomic_weight_ratio, temperature) + self.absorption_xs = None + self.energy = None + self.heating_number = None + self.total_xs = None + self.reactions = OrderedDict() + self.urr = None + + def __repr__(self): + if hasattr(self, 'name'): + return "".format(self.name) + else: + return "" + + def __iter__(self): + return iter(self.reactions.values()) + + def _read_all(self): + self._read_cross_sections() + self._read_nu() + self._read_secondaries() + self._read_photon_production_data() + self._read_unr() + + def _read_cross_sections(self): + """Read reaction cross sections and other data. + + Reads and parses the ESZ, MTR, LQR, TRY, LSIG, and SIG blocks. These + blocks contain the energy grid, all reaction cross sections, the total + cross section, average heating numbers, and a list of reactions with + their Q-values and multiplicites. + """ + + # Determine number of energies on nuclide grid and number of reactions + # excluding elastic scattering + n_energies = self._nxs[3] + n_reactions = self._nxs[4] + + # Read energy grid and total, absorption, elastic scattering, and + # heating cross sections -- note that this appear separate from the rest + # of the reaction cross sections + arr = self._xss[self._jxs[1]:self._jxs[1] + 5*n_energies] + arr.shape = (5, n_energies) + self.energy, self.total_xs, self.absorption_xs, \ + elastic_xs, self.heating_number = arr + + # Create elastic scattering reaction + elastic_scatter = Reaction(2, self) + elastic_scatter.products.append(Product('neutron')) + elastic_scatter.xs = Tabulated1D(self.energy, elastic_xs) + self.reactions[2] = elastic_scatter + + # Create all other reactions with MT values + mts = np.asarray(self._xss[self._jxs[3]:self._jxs[3] + n_reactions], dtype=int) + qvalues = np.asarray(self._xss[self._jxs[4]:self._jxs[4] + + n_reactions], dtype=float) + tys = np.asarray(self._xss[self._jxs[5]:self._jxs[5] + n_reactions], dtype=int) + + # Create all reactions other than elastic scatter + reactions = [(mt, Reaction(mt, self)) for mt in mts] + self.reactions.update(reactions) + + # Loop over all reactions other than elastic scattering + for i, rx in enumerate(list(self.reactions.values())[1:]): + # Copy Q values determine if scattering should be treated in the + # center-of-mass or lab system + rx.Q_value = qvalues[i] + rx.center_of_mass = (tys[i] < 0) + + # For neutron-producing reactions, get yield + if rx.MT < 100: + if tys[i] != 19: + if abs(tys[i]) > 100: + # Energy-dependent neutron yield + idx = self._jxs[11] + abs(tys[i]) - 101 + yield_ = _get_tabulated_1d(self._xss, idx) + else: + yield_ = abs(tys[i]) + + neutron = Product('neutron') + neutron.yield_ = yield_ + rx.products.append(neutron) + + # Get locator for cross-section data + loc = int(self._xss[self._jxs[6] + i]) + + # Determine starting index on energy grid + rx.threshold_idx = int(self._xss[self._jxs[7] + loc - 1]) - 1 + + # Determine number of energies in reaction + n_energies = int(self._xss[self._jxs[7] + loc]) + energy = self.energy[rx.threshold_idx:rx.threshold_idx + n_energies] + + # Read reaction cross section + xs = self._xss[self._jxs[7] + loc + 1:self._jxs[7] + loc + 1 + n_energies] + rx.xs = Tabulated1D(energy, xs) + + def _read_nu(self): + """Read the NU block -- this contains information on the prompt and delayed + neutron precursor yields, decay constants, etc + + """ + # No NU block + if self._jxs[2] == 0: + return + + products = [] + derived_products = [] + + # Either prompt nu or total nu is given + if self._xss[self._jxs[2]] > 0: + whichnu = 'prompt' if self._jxs[24] > 0 else 'total' + + neutron = Product('neutron') + neutron.emission_mode = whichnu + + idx = self._jxs[2] + LNU = int(self._xss[idx]) + if LNU == 1: + # Polynomial function form of nu + NC = int(self._xss[idx+1]) + coefficients = self._xss[idx+2 : idx+2+NC] + neutron.yield_ = Polynomial(coefficients) + elif LNU == 2: + # Tabular data form of nu + neutron.yield_ = _get_tabulated_1d(self._xss, idx + 1) + + products.append(neutron) + + # Both prompt nu and total nu + elif self._xss[self._jxs[2]] < 0: + # Read prompt neutron yield + prompt_neutron = Product('neutron') + prompt_neutron.emission_mode = 'prompt' + + idx = self._jxs[2] + 1 + LNU = int(self._xss[idx]) + if LNU == 1: + # Polynomial function form of nu + NC = int(self._xss[idx+1]) + coefficients = self._xss[idx+2 : idx+2+NC] + prompt_neutron.yield_ = Polynomial(coefficients) + elif LNU == 2: + # Tabular data form of nu + prompt_neutron.yield_ = _get_tabulated_1d(self._xss, idx + 1) + + # Read total neutron yield + total_neutron = Product('neutron') + total_neutron.emission_mode = 'total' + + idx = self._jxs[2] + int(abs(self._xss[self._jxs[2]])) + 1 + LNU = int(self._xss[idx]) + + if LNU == 1: + # Polynomial function form of nu + NC = int(self._xss[idx+1]) + coefficients = self._xss[idx+2 : idx+2+NC] + total_neutron.yield_ = Polynomial(coefficients) + elif LNU == 2: + # Tabular data form of nu + total_neutron.yield_ = _get_tabulated_1d(self._xss, idx + 1) + + products.append(prompt_neutron) + derived_products.append(total_neutron) + + # Check for delayed nu data + if self._jxs[24] > 0: + yield_delayed = _get_tabulated_1d(self._xss, self._jxs[24] + 1) + + # Delayed neutron precursor distribution + idx = self._jxs[25] + n_group = self._nxs[8] + total_group_probability = 0. + for i, group in enumerate(range(n_group)): + delayed_neutron = Product('neutron') + delayed_neutron.emission_mode = 'delayed' + delayed_neutron.decay_rate = self._xss[idx] + + group_probability = _get_tabulated_1d(self._xss, idx + 1) + if np.all(group_probability.y == group_probability.y[0]): + delayed_neutron.yield_ = deepcopy(yield_delayed) + delayed_neutron.yield_.y *= group_probability.y[0] + total_group_probability += group_probability.y[0] + else: + raise NotImplementedError( + 'Delayed neutron with energy-dependent ' + 'group probability') + + # Advance position + nr = int(self._xss[idx + 1]) + ne = int(self._xss[idx + 2 + 2*nr]) + idx += 3 + 2*nr + 2*ne + + # Energy distribution for delayed fission neutrons + location_start = int(self._xss[self._jxs[26] + group]) + delayed_neutron.distribution.append( + self._get_energy_distribution(self._jxs[27], location_start)) + + products.append(delayed_neutron) + + # Renormalize delayed neutron yields to reflect fact that in ACE + # file, the sum of the group probabilities is not exactly one + for product in products[1:]: + product.yield_.y /= total_group_probability + + # Copy fission neutrons to reactions + for MT, rx in self.reactions.items(): + if MT in (18, 19, 20, 21, 38): + rx.products = deepcopy(products) + if derived_products: + rx.derived_products = deepcopy(derived_products) + + def _get_angle_distribution(self, location_dist, location_start): + # Set starting index for angle distribution + idx = location_dist + location_start - 1 + + # Number of energies at which angular distributions are tabulated + n_energies = int(self._xss[idx]) + idx += 1 + + # Incoming energy grid + energy = self._xss[idx:idx + n_energies] + idx += n_energies + + # Read locations for angular distributions + lc = np.asarray(self._xss[idx:idx + n_energies], dtype=int) + idx += n_energies + + mu = [] + for i in range(n_energies): + if lc[i] > 0: + # Equiprobable 32 bin distribution + idx = location_dist + abs(lc[i]) - 1 + cos = self._xss[idx:idx + 33] + pdf = np.zeros(33) + pdf[:32] = 1.0/(32.0*np.diff(cos)) + cdf = np.linspace(0.0, 1.0, 33) + + mu_i = Tabular(cos, pdf, 'histogram', ignore_negative=True) + mu_i.c = cdf + elif lc[i] < 0: + # Tabular angular distribution + idx = location_dist + abs(lc[i]) - 1 + intt = int(self._xss[idx]) + n_points = int(self._xss[idx + 1]) + data = self._xss[idx + 2:idx + 2 + 3*n_points] + data.shape = (3, n_points) + + mu_i = Tabular(data[0], data[1], interpolation_scheme[intt]) + mu_i.c = data[2] + else: + # Isotropic angular distribution + mu_i = Uniform(-1., 1.) + + mu.append(mu_i) + + return AngleDistribution(energy, mu) + + def _read_secondaries(self): + """Read angle/energy distributions for each reaction MT + """ + + # Number of reactions with secondary neutrons (including elastic + # scattering) + n_reactions = self._nxs[5] + 1 + + for i, rx in enumerate(list(self.reactions.values())[:n_reactions]): + if rx.MT == 18: + for p in rx.products: + if p.emission_mode == 'prompt': + neutron = p + break + else: + neutron = rx.products[0] + + if i > 0: + # Determine locator for ith energy distribution + lnw = int(self._xss[self._jxs[10] + i - 1]) + + while lnw > 0: + # Applicability of this distribution + neutron.applicability.append(_get_tabulated_1d( + self._xss, self._jxs[11] + lnw + 2)) + + # Read energy distribution data + neutron.distribution.append(self._get_energy_distribution( + self._jxs[11], lnw, rx)) + + lnw = int(self._xss[self._jxs[11] + lnw - 1]) + else: + # No energy distribution for elastic scattering + neutron.distribution.append(UncorrelatedAngleEnergy()) + + # Check if angular distribution data exist + loc = int(self._xss[self._jxs[8] + i]) + if loc == -1: + # Angular distribution data are given as part of product + # angle-energy distribution + continue + elif loc == 0: + # No angular distribution data are given for this + # reaction, isotropic scattering is asssumed + angle_dist = None + else: + angle_dist = self._get_angle_distribution(self._jxs[9], loc) + + # Apply angular distribution to each uncorrelated angle-energy + # distribution + if angle_dist is not None: + for d in neutron.distribution: + d.angle = angle_dist + + def _read_photon_production_data(self): + """Read cross sections for each photon-production reaction""" + + n_photon_reactions = self._nxs[6] + photon_mts = np.asarray(self._xss[self._jxs[13]:self._jxs[13] + + n_photon_reactions], dtype=int) + + for i, rx in enumerate(photon_mts): + # Determine corresponding reaction + mt = photon_mts[i] // 1000 + reactions = [] + if mt not in self.reactions: + # If the photon is assigned to MT=18 but the file splits fission + # into MT=19,20,21,38, assign the photon product to each of the + # individual reactions + if mt == 18: + for mt_fiss in (19, 20, 21, 38): + if mt_fiss in self.reactions: + reactions.append(self.reactions[mt_fiss]) + if not reactions: + reactions.append(Reaction(mt, self)) + else: + reactions.append(self.reactions[mt]) + + # Create photon product and assign to reactions + photon = Product('photon') + for rx in reactions: + rx.products.append(photon) + + # ================================================================== + # Read photon yield / production cross section + + loca = int(self._xss[self._jxs[14] + i]) + idx = self._jxs[15] + loca - 1 + mftype = int(self._xss[idx]) + idx += 1 + + if mftype in (12, 16): + # Yield data taken from ENDF File 12 or 6 + mtmult = int(self._xss[idx]) + assert mtmult == mt + + # Read photon yield as function of energy + photon.yield_ = _get_tabulated_1d(self._xss, idx + 1) + + elif mftype == 13: + # Cross section data from ENDF File 13 + + # Energy grid index at which data starts + threshold_idx = int(self._xss[idx]) - 1 + + # Get photon production cross section + n_energy = int(self._xss[idx + 1]) + photon._xs = self._xss[idx + 2:idx + 2 + n_energy] + + # Determine yield based on ratio of cross sections + energy = self.energy[threshold_idx:threshold_idx + n_energy] + photon.yield_ = Tabulated1D(energy, photon._xs) + + else: + raise ValueError("MFTYPE must be 12, 13, 16. Got {0}".format( + mftype)) + + # ================================================================== + # Read photon energy distribution + + location_start = int(self._xss[self._jxs[18] + i]) + + # Read energy distribution data + distribution = self._get_energy_distribution( + self._jxs[19], location_start) + assert isinstance(distribution, UncorrelatedAngleEnergy) + + # ================================================================== + # Read photon angular distribution + loc = int(self._xss[self._jxs[16] + i]) + + if loc == 0: + # No angular distribution data are given for this reaction, + # isotropic scattering is asssumed in LAB + energy = np.array([photon.yield_.x[0], photon.yield_.x[-1]]) + mu_isotropic = Uniform(-1., 1.) + distribution.angle = AngleDistribution( + energy, [mu_isotropic, mu_isotropic]) + else: + distribution.angle = self._get_angle_distribution(self._jxs[17], loc) + + # Add to list of distributions + photon.distribution.append(distribution) + + def _read_unr(self): + """Read the unresolved resonance range probability tables if present. + """ + + # Check if URR probability tables are present + idx = self._jxs[23] + if idx == 0: + return + + N = int(self._xss[idx]) # Number of incident energies + M = int(self._xss[idx+1]) # Length of probability table + interpolation = int(self._xss[idx+2]) + inelastic_flag = int(self._xss[idx+3]) + absorption_flag = int(self._xss[idx+4]) + multiply_smooth = (int(self._xss[idx+5]) == 1) + idx += 6 + + # Get energies at which tables exist + energy = self._xss[idx : idx+N] + idx += N + + # Get probability tables + table = self._xss[idx:idx+N*6*M] + table.shape = (N, 6, M) + + # Create object + self.urr = ProbabilityTables(energy, table, interpolation, inelastic_flag, + absorption_flag, multiply_smooth) + + def export_to_hdf5(self, path, element=None, mass_number=None, metastable=0): + """Export table to an HDF5 file. + + Parameters + ---------- + path : str + Path to write HDF5 file to + element : str or None + Elemental symbol, e.g. Zr. If not specified, the atomic + number/symbol are inferred from the name of the table. + mass_number : int or None + Mass number of the nuclide. For natural elements, a value of zero + should be given. If not specified, the mass number is inferred from + the name of the table. + metastable : int + Metastable level of the nuclide. Defaults to 0. + + """ + + f = h5py.File(path, 'a') + + # If element and/or mass number haven't been specified, make an educated + # guess + zaid, xs = self.name.split('.') + if element is None: + Z = int(zaid) // 1000 + element = atomic_symbol[Z] + else: + Z = atomic_number[element] + if mass_number is None: + mass_number = int(zaid) % 1000 + + # Write basic data + if metastable > 0: + name = '{}{}_m{}.{}'.format(element, mass_number, metastable, xs) + else: + name = '{}{}.{}'.format(element, mass_number, xs) + g = f.create_group(name) + g.attrs['Z'] = Z + g.attrs['A'] = mass_number + g.attrs['metastable'] = metastable + g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio + g.attrs['temperature'] = self.temperature + g.attrs['n_reaction'] = len(self.reactions) + + # Write energy grid + g.create_dataset('energy', data=self.energy) + + # Write reaction data + for i, rx in enumerate(self.reactions.values()): + rx_group = g.create_group('reaction_{}'.format(i)) + rx.to_hdf5(rx_group) + + # Write total nu data if available + if hasattr(rx, 'derived_products') and 'total_nu' not in g: + tgroup = g.create_group('total_nu') + rx.derived_products[0].to_hdf5(tgroup) + + # Write unresolved resonance probability tables + if self.urr is not None: + urr_group = g.create_group('urr') + self.urr.to_hdf5(urr_group) + + f.close() + + @classmethod + def from_hdf5(self, group): + """Generate continuous-energy neutron interaction data from HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group containing interaction data + + Returns + ------- + openmc.data.ace.NeutronTable + Continuous-energy neutron interaction data + + """ + name = group.name[1:] + atomic_weight_ratio = group.attrs['atomic_weight_ratio'] + temperature = group.attrs['temperature'] + table = NeutronTable(name, atomic_weight_ratio, temperature) + + # Read energy grid + table.energy = group['energy'].value + + # Read reaction data + n_reaction = group.attrs['n_reaction'] + + # Write reaction data + for i in range(n_reaction): + rx_group = group['reaction_{}'.format(i)] + rx = Reaction.from_hdf5(rx_group, table) + table.reactions[rx.MT] = rx + + # Read total nu data if available + if 'total_nu' in rx_group: + tgroup = rx_group['total_nu'] + rx.derived_products = [Product.from_hdf5(tgroup)] + + # Read unresolved resonance probability tables + if 'urr' in group: + urr_group = group['urr'] + table.urr = ProbabilityTables.from_hdf5(urr_group) + + return table + + +class SabTable(Table): + """A SabTable object contains thermal scattering data as represented by + an S(alpha, beta) table. + + Parameters + ---------- + name : str + ZAID identifier of the table, e.g. lwtr.10t. + atomic_weight_ratio : float + Atomic mass ratio of the target nuclide. + temperature : float + Temperature of the target nuclide in eV. + + Attributes + ---------- + atomic_weight_ratio : float + Atomic mass ratio of the target nuclide. + elastic_xs : openmc.data.Tabulated1D or openmc.data.CoherentElastic + Elastic scattering cross section derived in the coherent or incoherent + approximation + inelastic_xs : openmc.data.Tabulated1D + Inelastic scattering cross section derived in the incoherent + approximation + name : str + ZAID identifier of the table, e.g. 92235.70c. + temperature : float + Temperature of the target nuclide in eV. + + """ + + def __init__(self, name, atomic_weight_ratio, temperature): + super(SabTable, self).__init__(name, atomic_weight_ratio, temperature) + self.elastic_xs = None + self.elastic_mu_out = None + + self.inelastic_xs = None + self.inelastic_e_out = None + self.inelastic_mu_out = None + self.secondary_mode = None + + def __repr__(self): + if hasattr(self, 'name'): + return "".format(self.name) + else: + return "" + + def _read_all(self): + self._read_itie() + self._read_itce() + self._read_itxe() + self._read_itca() + + def _read_itie(self): + """Read energy-dependent inelastic scattering cross sections. + """ + idx = self._jxs[1] + n_energies = int(self._xss[idx]) + energy = self._xss[idx+1 : idx+1+n_energies] + xs = self._xss[idx+1+n_energies : idx+1+2*n_energies] + self.inelastic_xs = Tabulated1D(energy, xs) + + def _read_itce(self): + """Read energy-dependent elastic scattering cross sections. + """ + # Determine if ITCE block exists + idx = self._jxs[4] + if idx == 0: + return + + # Read values + n_energies = int(self._xss[idx]) + energy = self._xss[idx+1 : idx+1+n_energies] + P = self._xss[idx+1+n_energies : idx+1+2*n_energies] + + if self._nxs[5] == 4: + self.elastic_xs = CoherentElastic(energy, P) + else: + self.elastic_xs = Tabulated1D(energy, P) + + def _read_itxe(self): + """Read coupled energy/angle distributions for inelastic scattering. + """ + # Determine number of energies and angles + NE_in = len(self.inelastic_xs) + NE_out = self._nxs[4] + + if self._nxs[7] == 0: + self.secondary_mode = 'equal' + elif self._nxs[7] == 1: + self.secondary_mode = 'skewed' + elif self._nxs[7] == 2: + self.secondary_mode = 'continuous' + + if self.secondary_mode in ('equal', 'skewed'): + NMU = self._nxs[3] + idx = self._jxs[3] + self.inelastic_e_out = self._xss[idx:idx+NE_in*NE_out*(NMU+2):NMU+2] + self.inelastic_e_out.shape = (NE_in, NE_out) + + self.inelastic_mu_out = self._xss[idx:idx+NE_in*NE_out*(NMU+2)] + self.inelastic_mu_out.shape = (NE_in, NE_out, NMU+2) + self.inelastic_mu_out = self.inelastic_mu_out[:, :, 1:] + else: + NMU = self._nxs[3] - 1 + idx = self._jxs[3] + locc = self._xss[idx:idx + NE_in].astype(int) + NE_out = self._xss[idx + NE_in:idx + 2*NE_in].astype(int) + energy_out = [] + mu_out = [] + for i in range(NE_in): + idx = locc[i] + + # Outgoing energy distribution for incoming energy i + e = self._xss[idx + 1:idx + 1 + NE_out[i]*(NMU + 3):NMU + 3] + p = self._xss[idx + 2:idx + 2 + NE_out[i]*(NMU + 3):NMU + 3] + c = self._xss[idx + 3:idx + 3 + NE_out[i]*(NMU + 3):NMU + 3] + eout_i = Tabular(e, p, 'linear-linear', ignore_negative=True) + eout_i.c = c + + # Outgoing angle distribution for each (incoming, outgoing) energy pair + mu_i = [] + for j in range(NE_out[i]): + mu = self._xss[idx + 4:idx + 4 + NMU] + p_mu = 1./NMU*np.ones(NMU) + mu_ij = Discrete(mu, p_mu) + mu_ij.c = np.cumsum(p_mu) + mu_i.append(mu_ij) + idx += 3 + NMU + + energy_out.append(eout_i) + mu_out.append(mu_i) + + # Create correlated angle-energy distribution + breakpoints = [NE_in] + interpolation = [2] + energy = self.inelastic_xs.x + self.inelastic_dist = CorrelatedAngleEnergy( + breakpoints, interpolation, energy, energy_out, mu_out) + + def _read_itca(self): + """Read angular distributions for elastic scattering. + """ + NMU = self._nxs[6] + if self._jxs[4] == 0 or NMU == -1: + return + idx = self._jxs[6] + + NE = len(self.elastic_xs) + self.elastic_mu_out = self._xss[idx:idx+NE*NMU] + self.elastic_mu_out.shape = (NE, NMU) + + def export_to_hdf5(self, path, name): + """Export table to an HDF5 file. + + Parameters + ---------- + path : str + Path to write HDF5 file to + name : str + Name of compound (used as first group in HDF5 file) + + """ + + f = h5py.File(path, 'a') + + # Write basic data + g = f.create_group('{}.{}'.format(name, self.name.split('.')[1])) + g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio + g.attrs['temperature'] = self.temperature + g.attrs['zaids'] = self.zaids + + # Write thermal elastic scattering + if self.elastic_xs is not None: + elastic_group = g.create_group('elastic') + self.elastic_xs.to_hdf5(elastic_group, 'xs') + if self.elastic_mu_out is not None: + elastic_group.create_dataset('mu_out', data=self.elastic_mu_out) + + # Write thermal inelastic scattering + if self.inelastic_xs is not None: + inelastic_group = g.create_group('inelastic') + self.inelastic_xs.to_hdf5(inelastic_group, 'xs') + inelastic_group.attrs['secondary_mode'] = np.string_(self.secondary_mode) + if self.secondary_mode in ('equal', 'skewed'): + inelastic_group.create_dataset('energy_out', data=self.inelastic_e_out) + inelastic_group.create_dataset('mu_out', data=self.inelastic_mu_out) + elif self.secondary_mode == 'continuous': + self.inelastic_dist.to_hdf5(inelastic_group) + + @classmethod + def from_hdf5(self, group): + """Generate thermal scattering data from HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.SabTable + Neutron thermal scattering data + + """ + name = group.name[1:] + atomic_weight_ratio = group.attrs['atomic_weight_ratio'] + temperature = group.attrs['temperature'] + table = SabTable(name, atomic_weight_ratio, temperature) + table.zaids = group.attrs['zaids'] + + # Read thermal elastic scattering + if 'elastic' in group: + elastic_group = group['elastic'] + + # Cross section + elastic_xs_type = elastic_group['xs'].attrs['type'].decode() + if elastic_xs_type == 'tab1': + table.elastic_xs = Tabulated1D.from_hdf5(elastic_group['xs']) + elif elastic_xs_type == 'bragg': + table.elastic_xs = CoherentElastic.from_hdf5(elastic_group['xs']) + + # Angular distribution + if 'mu_out' in elastic_group: + table.elastic_mu_out = elastic_group['mu_out'].value + + # Read thermal inelastic scattering + if 'inelastic' in group: + inelastic_group = group['inelastic'] + table.secondary_mode = inelastic_group.attrs['secondary_mode'].decode() + table.inelastic_xs = Tabulated1D.from_hdf5(inelastic_group['xs']) + if table.secondary_mode in ('equal', 'skewed'): + table.inelastic_e_out = inelastic_group['energy_out'] + table.inelastic_mu_out = inelastic_group['mu_out'] + elif table.secondary_mode == 'continuous': + table.inelastic_dist = AngleEnergy.from_hdf5(inelastic_group) + + return table + + +class Reaction(object): + """Reaction(MT, table=None) + + A Reaction object represents a single reaction channel for a nuclide with + an associated cross section and, if present, a secondary angle and energy + distribution. These objects are stored within the ``reactions`` attribute on + subclasses of Table, e.g. NeutronTable. + + Parameters + ---------- + MT : int + The ENDF MT number for this reaction. On occasion, MCNP uses MT numbers + that don't correspond exactly to the ENDF specification. + table : openmc.data.ace.Table + The ACE table which contains this reaction. This is useful if data on + the parent nuclide is needed (for instance, the energy grid at which + cross sections are tabulated) + + Attributes + ---------- + center_of_mass : bool + Indicates whether scattering kinematics should be performed in the + center-of-mass or laboratory reference frame. + grid above the threshold value in barns. + MT : int + The ENDF MT number for this reaction. + Q_value : float + The Q-value of this reaction in MeV. + table : openmc.data.ace.Table + The ACE table which contains this reaction. + threshold : float + Threshold of the reaction in MeV + threshold_idx : int + The index on the energy grid corresponding to the threshold of this + reaction. + xs : openmc.data.Tabulated1D + Microscopic cross section for this reaction as a function of incident + energy + products : Iterable of openmc.data.Product + Reaction products + + """ + + def __init__(self, MT, table=None): + self.center_of_mass = True + self.table = table + self.MT = MT + self.Q_value = 0. + self.threshold_idx = 0 + self._xs = None + self.products = [] + + def __repr__(self): + if self.MT in reaction_name: + return "".format(self.MT, reaction_name[self.MT]) + else: + return "".format(self.MT) + + @property + def center_of_mass(self): + return self._center_of_mass + + @property + def products(self): + return self._products + + @property + def threshold(self): + return self.xs.x[0] + + @property + def xs(self): + return self._xs + + @center_of_mass.setter + def center_of_mass(self, center_of_mass): + cv.check_type('center of mass', center_of_mass, (bool, np.bool_)) + self._center_of_mass = center_of_mass + + @products.setter + def products(self, products): + cv.check_type('reaction products', products, Iterable, Product) + self._products = products + + @xs.setter + def xs(self, xs): + cv.check_type('reaction cross section', xs, Tabulated1D) + for y in xs.y: + cv.check_greater_than('reaction cross section', y, 0.0, True) + self._xs = xs + + def to_hdf5(self, group): + """Write reaction to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + group.attrs['MT'] = self.MT + if self.MT in reaction_name: + group.attrs['label'] = np.string_(reaction_name[self.MT]) + else: + group.attrs['label'] = np.string_(self.MT) + group.attrs['Q_value'] = self.Q_value + group.attrs['threshold_idx'] = self.threshold_idx + 1 + group.attrs['center_of_mass'] = 1 if self.center_of_mass else 0 + group.attrs['n_product'] = len(self.products) + if self.xs is not None: + group.create_dataset('xs', data=self.xs.y) + for i, p in enumerate(self.products): + pgroup = group.create_group('product_{}'.format(i)) + p.to_hdf5(pgroup) + + @classmethod + def from_hdf5(cls, group, table): + """Generate reaction from an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + Returns + ------- + openmc.data.ace.Reaction + Reaction data + + """ + MT = group.attrs['MT'] + rxn = cls(MT) + rxn.table = table + rxn.Q_value = group.attrs['Q_value'] + rxn.threshold_idx = group.attrs['threshold_idx'] - 1 + rxn.center_of_mass = bool(group.attrs['center_of_mass']) + + # Read cross section + if 'xs' in group: + xs = group['xs'].value + rxn.xs = Tabulated1D(table.energy, xs) + + # Read reaction products + n_product = group.attrs['n_product'] + products = [] + for i in range(n_product): + pgroup = group['product_{}'.format(i)] + products.append(Product.from_hdf5(pgroup)) + rxn.products = products + + return rxn + + +class DosimetryTable(Table): + def __init__(self, name, atomic_weight_ratio, temperature): + super(DosimetryTable, self).__init__( + name, atomic_weight_ratio, temperature) + + def __repr__(self): + if hasattr(self, 'name'): + return "".format(self.name) + else: + return "" + + +class NeutronDiscreteTable(Table): + + def __init__(self, name, atomic_weight_ratio, temperature): + super(NeutronDiscreteTable, self).__init__( + name, atomic_weight_ratio, temperature) + + def __repr__(self): + if hasattr(self, 'name'): + return "".format(self.name) + else: + return "" + + +class NeutronMGTable(Table): + + def __init__(self, name, atomic_weight_ratio, temperature): + super(NeutronMGTable, self).__init__( + name, atomic_weight_ratio, temperature) + + def __repr__(self): + if hasattr(self, 'name'): + return "".format(self.name) + else: + return "" + + +class PhotoatomicTable(Table): + + def __init__(self, name, atomic_weight_ratio, temperature): + super(PhotoatomicTable, self).__init__( + name, atomic_weight_ratio, temperature) + + def __repr__(self): + if hasattr(self, 'name'): + return "".format(self.name) + else: + return "" + + def _read_all(self): + self._read_eszg() + self._read_jinc() + self._read_jcoh() + self._read_heating() + self._read_compton_data() + + def _read_eszg(self): + # Determine number of energies on common energy grid + n_energies = self._nxs[3] + + # Read cross sections + idx = self._jxs[1] + data = np.asarray(self._xss[idx:idx + 5*n_energies]) + data.shape = (5, n_energies) + self.energy = data[0] + self.incoherent = data[1] + self.coherent = data[2] + self.photoelectric = data[3] + self.pairproduction = data[4] + + def _read_jinc(self): + # Read incoherent scattering function + idx = self._jxs[2] + self.incoherent_scattering = self._xss[idx:idx + 21] + + def _read_jcoh(self): + # Read coherent form factors and integrated coherent form factors + idx = self._jxs[3] + self.int_coherent_form_factors = self._xss[idx:idx + 55] + self.coherent_form_factors = self._xss[idx + 55:idx + 2*55] + + def _read_jflo(self): + raise NotImplementedError + + def _read_heating(self): + idx = self._jxs[5] + self.avg_heating = self._xss[idx:idx + self._nxs[3]] + + def _read_compton_data(self): + # Determine number of Compton profiles + n_shells = self._nxs[5] + + if n_shells > 0: + # Number of electrons per shell + idx = self._jxs[6] + self.electrons_per_shell = np.asarray( + self._xss[idx:idx + n_shells], dtype=int) + + # Binding energy per shell + idx = self._jxs[7] + self.binding_energy_per_shell = self._xss[idx:idx + n_shells] + + # Probability of interaction per shell + idx = self._jxs[8] + self.probability_per_shell = self._xss[idx:idx + n_shells] + + # Initialize arrays for Compton profile data + self.compton_profile_interp = np.zeros(n_shells) + self.compton_profile_momentum = [] + self.compton_profile_pdf = [] + self.compton_profile_cdf = [] + + for i in range(n_shells): + # Get locator for SWD block + loca = int(self._xss[self._jxs[9] + i]) + idx = self._jxs[10] + loca - 1 + + # Get interpolation parameter and number of momentum entries + self.compton_profile_interp[i] = int(self._xss[idx]) + n_momentum = int(self._xss[idx + 1]) + idx += 2 + + # Get momentum entries, PDF, and CDF + data = self._xss[idx:idx + 3*n_momentum] + data.shape = (3, n_momentum) + self.compton_profile_momentum.append(data[0]) + self.compton_profile_pdf.append(data[1]) + self.compton_profile_cdf.append(data[2]) + + +class PhotoatomicMGTable(Table): + + def __init__(self, name, atomic_weight_ratio, temperature): + super(PhotoatomicMGTable, self).__init__( + name, atomic_weight_ratio, temperature) + + def __repr__(self): + if hasattr(self, 'name'): + return "".format(self.name) + else: + return "" + + +class ElectronTable(Table): + + def __init__(self, name, atomic_weight_ratio, temperature): + super(ElectronTable, self).__init__( + name, atomic_weight_ratio, temperature) + + def __repr__(self): + if hasattr(self, 'name'): + return "".format(self.name) + else: + return "" + + +class PhotonuclearTable(Table): + + def __init__(self, name, atomic_weight_ratio, temperature): + super(PhotonuclearTable, self).__init__( + name, atomic_weight_ratio, temperature) + self.reactions = OrderedDict() + + def __repr__(self): + if hasattr(self, 'name'): + return "".format(self.name) + else: + return "" + + def _read_all(self): + self._read_basic() + self._read_cross_sections() + self._read_secondaries() + self._read_angular_distributions() + self._read_energy_distributions() + + def _read_basic(self): + n_energies = self._nxs[3] + + # Read energy mesh + idx = self._jxs[1] + self.energy = self._xss[idx:idx + n_energies] + + # Read total cross section + idx = self._jxs[2] + self.total_xs = self._xss[idx:idx + n_energies] + + # Read non-elastic and elastic cross section + if self._jxs[4] > 0: + idx = self._jxs[3] + self.non_elastic_xs = self._xss[idx:idx + n_energies] + idx = self._jxs[4] + self.elastic_xs = self._xss[idx:idx + n_energies] + else: + self.non_elastic_xs = self.total_xs.copy() + self.elastic_xs = np.zeros(n_energies) + + # Read heating numbers + idx = self._jxs[5] + if idx > 0: + self.heating_number = self._xss[idx:idx + n_energies] + else: + self.heating_number = np.zeros(n_energies) + + def _read_cross_sections(self): + # Determine number of reactions + n_reactions = self._nxs[4] + + # Read list of MT numbers and Q values + mts = np.asarray(self._xss[self._jxs[6]:self._jxs[6] + + n_reactions], dtype=int) + qvalues = np.asarray(self._xss[self._jxs[7]:self._jxs[7] + + n_reactions]) + + # Create reactions in dictionary + reactions = [(mt, Reaction(mt, self)) for mt in mts] + self.reactions.update(reactions) + + for i, rx in enumerate(self.reactions.values()): + # Copy Q values + rx.Q_value = qvalues[i] + + # Determine starting index on energy grid and number of energies + idx = self._jxs[9] + int(self._xss[self._jxs[8] + i]) - 1 + rx.threshold_idx = int(self._xss[idx]) + n_energies = int(self._xss[idx + 1]) + energy = self.energy[rx.threshold_idx:rx.threshold_idx + n_energies] + idx += 2 + + # Read reaction cross setion + xs = self._xss[idx:idx + n_energies] + rx.xs = Tabulated1D(energy, xs, [], []) + + def _read_secondaries(self): + names = {1: 'neutron', 2: 'photon', 3: 'electron', + 9: 'proton', 31: 'deuteron', 32: 'triton', + 33: 'helium3', 34: 'alpha'} + + n_particles = self._nxs[5] + n_entries = self._nxs[7] + + idx = self._jxs[10] + ixs = np.asarray(self._xss[idx:idx + n_particles*n_entries], dtype=int) + ixs.shape = (n_particles, n_entries) + self.ixs = ixs.transpose() + + self.particles = [] + + for j in range(n_particles): + # Create dictionary for particle + particle = {} + self.particles.append(particle) + + # Get secondary particle type/name + particle['ipt'] = self.ixs[0, j] + particle['name'] = names[particle['ipt']] + + # Number of reactions that produce secondary particle + n_producing = self.ixs[1, j] + + # Particle-production cross section + idx = self.ixs[2, j] + particle['ie_production'] = int(self._xss[idx]) + ne = int(self._xss[idx + 1]) + idx += 2 + particle['production'] = self._xss[idx:idx + ne] + + # Average heating numbers + idx = self.ixs[3, j] + particle['ie_heating'] = int(self._xss[idx]) + ne = int(self._xss[idx + 1]) + idx += 2 + particle['heating_number'] = self._xss[idx:idx + ne] + + # MTs of particle production reactions + idx = self.ixs[4, j] + particle['mt_producing'] = np.asarray( + self._xss[idx:idx + n_producing], dtype=int) + + # Coordinate system of reaction producing secondary particle + idx = self.ixs[5, j] + particle['center_of_mass'] = [i < 0 for i in + self._xss[idx:idx + n_producing]] + + # Reaction yields + particle['yield'] = {} + for k in range(n_producing): + # Create dictionary for yield data + yieldData = {} + + # Read reaction yield data for a single MT + idx = self.ixs[7, j] + int(self._xss[self.ixs[6, j] + k]) - 1 + + yieldData['mftype'] = int(self._xss[idx]) + idx += 1 + + if yieldData['mftype'] in (6, 12, 16): + # Yield data from ENDF File 6 or 12 + mtmult = int(self._xss[idx]) + assert mtmult == particle['mt_producing'][k] + + # Read yield as function of energy + yieldData['multiplicity'] = _get_tabulated_1d( + self._xss, idx + 1) + + elif yieldData['mftype'] == 13: + # Production cross section for corresponding MT + yieldData['ie'] = int(self._xss[idx]) + ne = int(self._xss[idx + 1]) + idx += 2 + yieldData['cross_section'] = self._xss[idx:idx + ne] + + # Add reaction yield data to dictionary + mt = particle['mt_producing'][k] + particle['yield'][mt] = yieldData + + def _read_angular_distributions(self): + for j, particle in enumerate(self.particles): + # Create dictionary for angular distributions + angular_dists = {} + particle['angular_distribution'] = angular_dists + + for k, mt in enumerate(particle['mt_producing']): + landp = int(self._xss[self.ixs[8, j] + k]) + + # check if angular distribution data exists + if landp == -1: + # Angular distribution data are specified through the + # DLWP block + continue + elif landp == 0: + # No angular distribution data are given for this + # reaction, isotropic scattering is assumed + ie = self.reactions[mt].threshold_idx + ne = len(self.reactions[mt].sigma) + angular_dists[mt] = AngularDistribution.isotropic( + np.array([self.energy[ie], self.energy[ie + ne - 1]])) + continue + + idx = self.ixs[9, j] + landp - 1 + + angular_dists[mt] = AngularDistribution() + angular_dists[mt].read(self._xss, idx, self.ixs[9, j]) + + def _read_energy_distributions(self): + for j, particle in enumerate(self.particles): + # Create dictionary for energy distributions + energy_dists = {} + particle['energy_distribution'] = energy_dists + + for k, mt in enumerate(particle['mt_producing']): + # Determine locator for kth energy distribution + ldlwp = int(self._xss[self.ixs[10, j] + k]) + + # Read energy distribution data + energy_dists[mt] = self._get_energy_distribution( + self.ixs[11, j], ldlwp) +table_types = { + "c": NeutronTable, + "t": SabTable, + "y": DosimetryTable, + "d": NeutronDiscreteTable, + "p": PhotoatomicTable, + "m": NeutronMGTable, + "g": PhotoatomicMGTable, + "e": ElectronTable, + "u": PhotonuclearTable} diff --git a/openmc/data/angle_distribution.py b/openmc/data/angle_distribution.py new file mode 100644 index 0000000000..5f19450bc7 --- /dev/null +++ b/openmc/data/angle_distribution.py @@ -0,0 +1,134 @@ +from collections import Iterable +from numbers import Real + +import numpy as np + +import openmc.checkvalue as cv +from openmc.stats import Univariate, Tabular +from .container import interpolation_scheme + + +class AngleDistribution(object): + """Angle distribution as a function of incoming energy + + Parameters + ---------- + energy : Iterable of float + Incoming energies at which distributions exist + mu : Iterable of openmc.stats.Univariate + Distribution of scattering cosines corresponding to each incoming energy + + Attributes + ---------- + energy : Iterable of float + Incoming energies at which distributions exist + mu : Iterable of openmc.stats.Univariate + Distribution of scattering cosines corresponding to each incoming energy + + """ + + def __init__(self, energy, mu): + super(AngleDistribution, self).__init__() + self.energy = energy + self.mu = mu + + @property + def energy(self): + return self._energy + + @property + def mu(self): + return self._mu + + @energy.setter + def energy(self, energy): + cv.check_type('angle distribution incoming energy', energy, + Iterable, Real) + self._energy = energy + + @mu.setter + def mu(self, mu): + cv.check_type('angle distribution scattering cosines', mu, + Iterable, Univariate) + self._mu = mu + + def to_hdf5(self, group): + """Write angle distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + dset = group.create_dataset('energy', data=self.energy) + + # Make sure all data is tabular + mu_tabular = [mu_i if isinstance(mu_i, Tabular) else + mu_i.to_tabular() for mu_i in self.mu] + + # Determine total number of (mu,p) pairs and create array + n_pairs = sum([len(mu_i.x) for mu_i in mu_tabular]) + pairs = np.empty((3, n_pairs)) + + # Create array for offsets + offsets = np.empty(len(mu_tabular), dtype=int) + interpolation = np.empty(len(mu_tabular), dtype=int) + j = 0 + + # Populate offsets and pairs array + for i, mu_i in enumerate(mu_tabular): + n = len(mu_i.x) + offsets[i] = j + interpolation[i] = 1 if mu_i.interpolation == 'histogram' else 2 + pairs[0, j:j+n] = mu_i.x + pairs[1, j:j+n] = mu_i.p + pairs[2, j:j+n] = mu_i.c + j += n + + # Create dataset for distributions + dset = group.create_dataset('mu', data=pairs) + + # Write interpolation as attribute + dset.attrs['offsets'] = offsets + dset.attrs['interpolation'] = interpolation + + @classmethod + def from_hdf5(cls, group): + """Generate angular distribution from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.AngleDistribution + Angular distribution + + """ + energy = group['energy'].value + data = group['mu'] + offsets = data.attrs['offsets'] + interpolation = data.attrs['interpolation'] + + mu = [] + n_energy = len(energy) + for i in range(n_energy): + # Determine length of outgoing energy distribution and number of + # discrete lines + j = offsets[i] + if i < n_energy - 1: + n = offsets[i+1] - j + else: + n = data.shape[1] - j + + interp = interpolation_scheme[interpolation[i]] + mu_i = Tabular(data[0, j:j+n], data[1, j:j+n], interp) + mu_i.c = data[2, j:j+n] + + mu.append(mu_i) + + return cls(energy, mu) diff --git a/openmc/data/angle_energy.py b/openmc/data/angle_energy.py new file mode 100644 index 0000000000..fc17d7bece --- /dev/null +++ b/openmc/data/angle_energy.py @@ -0,0 +1,40 @@ +from abc import ABCMeta, abstractmethod + +import numpy as np + +import openmc.data + + +class AngleEnergy(object): + """Distribution in angle and energy of a secondary particle.""" + + __metaclass = ABCMeta + + @abstractmethod + def to_hdf5(self, group): + pass + + @staticmethod + def from_hdf5(group): + """Generate angle-energy distribution from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.AngleEnergy + Angle-energy distribution + + """ + dist_type = group.attrs['type'].decode() + if dist_type == 'uncorrelated': + return openmc.data.UncorrelatedAngleEnergy.from_hdf5(group) + elif dist_type == 'correlated': + return openmc.data.CorrelatedAngleEnergy.from_hdf5(group) + elif dist_type == 'kalbach-mann': + return openmc.data.KalbachMann.from_hdf5(group) + elif dist_type == 'nbody': + return openmc.data.NBodyPhaseSpace.from_hdf5(group) diff --git a/openmc/data/container.py b/openmc/data/container.py new file mode 100644 index 0000000000..4bd293c365 --- /dev/null +++ b/openmc/data/container.py @@ -0,0 +1,269 @@ +from collections import Iterable +from numbers import Real, Integral + +import numpy as np + +import openmc.checkvalue as cv + +interpolation_scheme = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log', + 4: 'log-linear', 5: 'log-log'} + + +class Tabulated1D(object): + """A one-dimensional tabulated function. + + This class mirrors the TAB1 type from the ENDF-6 format. A tabulated + function is specified by tabulated (x,y) pairs along with interpolation + rules that determine the values between tabulated pairs. + + Once an object has been created, it can be used as though it were an actual + function, e.g.: + + >>> f = Tabulated1D([0, 10], [4, 5]) + >>> [f(xi) for xi in numpy.linspace(0, 10, 5)] + [4.0, 4.25, 4.5, 4.75, 5.0] + + Parameters + ---------- + x : Iterable of float + Independent variable + y : Iterable of float + Dependent variable + breakpoints : Iterable of int + Breakpoints for interpolation regions + interpolation : Iterable of int + Interpolation scheme identification number, e.g., 3 means y is linear in + ln(x). + + Attributes + ---------- + x : Iterable of float + Independent variable + y : Iterable of float + Dependent variable + breakpoints : Iterable of int + Breakpoints for interpolation regions + interpolation : Iterable of int + Interpolation scheme identification number, e.g., 3 means y is linear in + ln(x). + n_regions : int + Number of interpolation regions + n_pairs : int + Number of tabulated (x,y) pairs + + """ + + def __init__(self, x, y, breakpoints=None, interpolation=None): + if breakpoints is None or interpolation is None: + # Single linear-linear interpolation region by default + self.breakpoints = np.array([len(x)]) + self.interpolation = np.array([2]) + else: + self.breakpoints = np.asarray(breakpoints, dtype=int) + self.interpolation = np.asarray(interpolation, dtype=int) + + self.x = np.asarray(x) + self.y = np.asarray(y) + + def __call__(self, x): + # Check if input is array or scalar + if isinstance(x, Iterable): + iterable = True + x = np.array(x) + else: + iterable = False + x = np.array([x], dtype=float) + + # Create output array + y = np.zeros_like(x) + + # Get indices for interpolation + idx = np.searchsorted(self.x, x, side='right') - 1 + + # Find lowest valid index + i_low = np.searchsorted(idx, 0) + + for k in range(len(self.breakpoints)): + # Determine which x values are within this interpolation range + i_high = np.searchsorted(idx, self.breakpoints[k] - 1) + + # Get x values and bounding (x,y) pairs + xk = x[i_low:i_high] + xi = self.x[idx[i_low:i_high]] + xi1 = self.x[idx[i_low:i_high] + 1] + yi = self.y[idx[i_low:i_high]] + yi1 = self.y[idx[i_low:i_high] + 1] + + if self.interpolation[k] == 1: + # Histogram + y[i_low:i_high] = yi + + elif self.interpolation[k] == 2: + # Linear-linear + y[i_low:i_high] = yi + (xk - xi)/(xi1 - xi)*(yi1 - yi) + + elif self.interpolation[k] == 3: + # Linear-log + y[i_low:i_high] = yi + np.log(xk/xi)/np.log(xi1/xi)*(yi1 - yi) + + elif self.interpolation[k] == 4: + # Log-linear + y[i_low:i_high] = yi*np.exp((xk - xi)/(xi1 - xi)*np.log(yi1/yi)) + + elif self.interpolation[k] == 5: + # Log-log + y[i_low:i_high] = yi*np.exp(np.log(xk/xi)/np.log(xi1/xi)*np.log(yi1/yi)) + + i_low = i_high + + # In some cases, the first/last point of x may be less than the first + # value of self.x due only to precision, so we check if they're close + # and set them equal if so. Otherwise, the interpolated value might be + # out of range (and thus zero) + if np.isclose(x[0], self.x[0], 1e-8): + y[0] = self.y[0] + if np.isclose(x[-1], self.x[-1], 1e-8): + y[-1] = self.y[-1] + + return y if iterable else y[0] + + def __len__(self): + return len(self.x) + + @property + def x(self): + return self._x + + @property + def y(self): + return self._y + + @property + def breakpoints(self): + return self._breakpoints + + @property + def interpolation(self): + return self._interpolation + + @property + def n_pairs(self): + return len(self.x) + + @property + def n_regions(self): + return len(self.breakpoints) + + @x.setter + def x(self, x): + cv.check_type('x values', x, Iterable, Real) + self._x = x + + @y.setter + def y(self, y): + cv.check_type('y values', y, Iterable, Real) + self._y = y + + @breakpoints.setter + def breakpoints(self, breakpoints): + cv.check_type('breakpoints', breakpoints, Iterable, Integral) + self._breakpoints = breakpoints + + @interpolation.setter + def interpolation(self, interpolation): + cv.check_type('interpolation', interpolation, Iterable, Integral) + self._interpolation = interpolation + + def integral(self): + """Integral of the tabulated function over its tabulated range. + + Returns + ------- + numpy.ndarray + Array of same length as the tabulated data that represents partial + integrals from the bottom of the range to each tabulated point. + + """ + + # Create output array + partial_sum = np.zeros(len(self.x) - 1) + + i_low = 0 + for k in range(len(self.breakpoints)): + # Determine which x values are within this interpolation range + i_high = self.breakpoints[k] - 1 + + # Get x values and bounding (x,y) pairs + x0 = self.x[i_low:i_high] + x1 = self.x[i_low + 1:i_high + 1] + y0 = self.y[i_low:i_high] + y1 = self.y[i_low + 1:i_high + 1] + + if self.interpolation[k] == 1: + # Histogram + partial_sum[i_low:i_high] = y0*(x1 - x0) + + elif self.interpolation[k] == 2: + # Linear-linear + m = (y1 - y0)/(x1 - x0) + partial_sum[i_low:i_high] = (y0 - m*x0)*(x1 - x0) + \ + m*(x1**2 - x0**2)/2 + + elif self.interpolation[k] == 3: + # Linear-log + logx = np.log(x1/x0) + m = (y1 - y0)/logx + partial_sum[i_low:i_high] = y0 + m*(x1*(logx - 1) + x0) + + elif self.interpolation[k] == 4: + # Log-linear + m = np.log(y1/y0)/(x1 - x0) + partial_sum[i_low:i_high] = y0/m*(np.exp(m*(x1 - x0)) - 1) + + elif self.interpolation[k] == 5: + # Log-log + m = np.log(y1/y0)/np.log(x1/x0) + partial_sum[i_low:i_high] = y0/((m + 1)*x0**m)*( + x1**(m + 1) - x0**(m + 1)) + + i_low = i_high + + return np.concatenate(([0.], np.cumsum(partial_sum))) + + def to_hdf5(self, group, name='xy'): + """Write tabulated function to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + name : str + Name of the dataset to create + + """ + dataset = group.create_dataset(name, data=np.vstack( + [self.x, self.y])) + dataset.attrs['type'] = np.string_('tab1') + dataset.attrs['breakpoints'] = self.breakpoints + dataset.attrs['interpolation'] = self.interpolation + + @classmethod + def from_hdf5(cls, dataset): + """Generate tabulated function from an HDF5 dataset + + Parameters + ---------- + dataset : h5py.Dataset + Dataset to read from + + Returns + ------- + openmc.data.Tabulated1D + Function read from dataset + + """ + x = dataset.value[0,:] + y = dataset.value[1,:] + breakpoints = dataset.attrs['breakpoints'] + interpolation = dataset.attrs['interpolation'] + return cls(x, y, breakpoints, interpolation) diff --git a/openmc/data/correlated.py b/openmc/data/correlated.py new file mode 100644 index 0000000000..58a90da9d6 --- /dev/null +++ b/openmc/data/correlated.py @@ -0,0 +1,291 @@ +from collections import Iterable +from numbers import Real, Integral + +import numpy as np + +import openmc.checkvalue as cv +from openmc.stats import Tabular, Univariate, Discrete, Mixture +from .container import interpolation_scheme +from .angle_energy import AngleEnergy + + +class CorrelatedAngleEnergy(AngleEnergy): + """Correlated angle-energy distribution + + Parameters + ---------- + breakpoints : Iterable of int + Breakpoints defining interpolation regions + interpolation : Iterable of int + Interpolation codes + energy : Iterable of float + Incoming energies at which distributions exist + energy_out : Iterable of openmc.stats.Univariate + Distribution of outgoing energies corresponding to each incoming energy + mu : Iterable of Iterable of openmc.stats.Univariate + Distribution of scattering cosine for each incoming/outgoing energy + + Attributes + ---------- + breakpoints : Iterable of int + Breakpoints defining interpolation regions + interpolation : Iterable of int + Interpolation codes + energy : Iterable of float + Incoming energies at which distributions exist + energy_out : Iterable of openmc.stats.Univariate + Distribution of outgoing energies corresponding to each incoming energy + mu : Iterable of Iterable of openmc.stats.Univariate + Distribution of scattering cosine for each incoming/outgoing energy + + """ + + def __init__(self, breakpoints, interpolation, energy, energy_out, mu): + super(CorrelatedAngleEnergy, self).__init__() + self.breakpoints = breakpoints + self.interpolation = interpolation + self.energy = energy + self.energy_out = energy_out + self.mu = mu + + @property + def breakpoints(self): + return self._breakpoints + + @property + def interpolation(self): + return self._interpolation + @property + def energy(self): + return self._energy + + @property + def energy_out(self): + return self._energy_out + + @property + def mu(self): + return self._mu + + @breakpoints.setter + def breakpoints(self, breakpoints): + cv.check_type('correlated angle-energy breakpoints', breakpoints, + Iterable, Integral) + self._breakpoints = breakpoints + + @interpolation.setter + def interpolation(self, interpolation): + cv.check_type('correlated angle-energy interpolation', interpolation, + Iterable, Integral) + self._interpolation = interpolation + + @energy.setter + def energy(self, energy): + cv.check_type('correlated angle-energy incoming energy', energy, + Iterable, Real) + self._energy = energy + + @energy_out.setter + def energy_out(self, energy_out): + cv.check_type('correlated angle-energy outgoing energy', energy_out, + Iterable, Univariate) + self._energy_out = energy_out + + @mu.setter + def mu(self, mu): + cv.check_iterable_type('correlated angle-energy outgoing cosine', + mu, Univariate, 2, 2) + self._mu = mu + + def to_hdf5(self, group): + """Write distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + group.attrs['type'] = np.string_('correlated') + + dset = group.create_dataset('energy', data=self.energy) + dset.attrs['interpolation'] = np.vstack((self.breakpoints, + self.interpolation)) + + # Determine total number of (E,p) pairs and create array + n_tuple = sum(len(d.x) for d in self.energy_out) + eout = np.empty((5, n_tuple)) + + # Make sure all mu data is tabular + mu_tabular = [] + for i, mu_i in enumerate(self.mu): + mu_tabular.append([mu_ij if isinstance(mu_ij, (Tabular, Discrete)) else + mu_ij.to_tabular() for mu_ij in mu_i]) + + # Determine total number of (mu,p) points and create array + n_tuple = sum(sum(len(mu_ij.x) for mu_ij in mu_i) + for mu_i in mu_tabular) + mu = np.empty((3, n_tuple)) + + # Create array for offsets + offsets = np.empty(len(self.energy_out), dtype=int) + interpolation = np.empty(len(self.energy_out), dtype=int) + n_discrete_lines = np.empty(len(self.energy_out), dtype=int) + offset_e = 0 + offset_mu = 0 + + # Populate offsets and eout array + for i, d in enumerate(self.energy_out): + n = len(d) + offsets[i] = offset_e + + if isinstance(d, Mixture): + discrete, continuous = d.distribution + n_discrete_lines[i] = m = len(discrete) + interpolation[i] = 1 if continuous.interpolation == 'histogram' else 2 + eout[0, offset_e:offset_e+m] = discrete.x + eout[1, offset_e:offset_e+m] = discrete.p + eout[2, offset_e:offset_e+m] = discrete.c + eout[0, offset_e+m:offset_e+n] = continuous.x + eout[1, offset_e+m:offset_e+n] = continuous.p + eout[2, offset_e+m:offset_e+n] = continuous.c + else: + if isinstance(d, Tabular): + n_discrete_lines[i] = 0 + interpolation[i] = 1 if d.interpolation == 'histogram' else 2 + elif isinstance(d, Discrete): + n_discrete_lines[i] = n + interpolation[i] = 1 + eout[0, offset_e:offset_e+n] = d.x + eout[1, offset_e:offset_e+n] = d.p + eout[2, offset_e:offset_e+n] = d.c + + for j, mu_ij in enumerate(mu_tabular[i]): + if isinstance(mu_ij, Discrete): + eout[3, offset_e+j] = 0 + else: + eout[3, offset_e+j] = 1 if mu_ij.interpolation == 'histogram' else 2 + eout[4, offset_e+j] = offset_mu + + n_mu = len(mu_ij) + mu[0, offset_mu:offset_mu+n_mu] = mu_ij.x + mu[1, offset_mu:offset_mu+n_mu] = mu_ij.p + mu[2, offset_mu:offset_mu+n_mu] = mu_ij.c + + offset_mu += n_mu + + offset_e += n + + # Create dataset for outgoing energy distributions + dset = group.create_dataset('energy_out', data=eout) + + # Write interpolation on outgoing energy as attribute + dset.attrs['offsets'] = offsets + dset.attrs['interpolation'] = interpolation + dset.attrs['n_discrete_lines'] = n_discrete_lines + + # Create dataset for outgoing angle distributions + group.create_dataset('mu', data=mu) + + @classmethod + def from_hdf5(cls, group): + """Generate correlated angle-energy distribution from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.CorrelatedAngleEnergy + Correlated angle-energy distribution + + """ + interp_data = group['energy'].attrs['interpolation'] + energy_breakpoints = interp_data[0,:] + energy_interpolation = interp_data[1,:] + energy = group['energy'].value + + offsets = group['energy_out'].attrs['offsets'] + interpolation = group['energy_out'].attrs['interpolation'] + n_discrete_lines = group['energy_out'].attrs['n_discrete_lines'] + dset_eout = group['energy_out'].value + energy_out = [] + + dset_mu = group['mu'].value + mu = [] + + n_energy = len(energy) + for i in range(n_energy): + # Determine length of outgoing energy distribution and number of + # discrete lines + offset_e = offsets[i] + if i < n_energy - 1: + n = offsets[i+1] - offset_e + else: + n = dset_eout.shape[1] - offset_e + m = n_discrete_lines[i] + + # Create discrete distribution if lines are present + if m > 0: + x = dset_eout[0, offset_e:offset_e+m] + p = dset_eout[1, offset_e:offset_e+m] + eout_discrete = Discrete(x, p) + eout_discrete.c = dset_eout[2, offset_e:offset_e+m] + p_discrete = eout_discrete.c[-1] + + # Create continuous distribution + if m < n: + interp = interpolation_scheme[interpolation[i]] + + x = dset_eout[0, offset_e+m:offset_e+n] + p = dset_eout[1, offset_e+m:offset_e+n] + eout_continuous = Tabular(x, p, interp, ignore_negative=True) + eout_continuous.c = dset_eout[2, offset_e+m:offset_e+n] + + # If both continuous and discrete are present, create a mixture + # distribution + if m == 0: + eout_i = eout_continuous + elif m == n: + eout_i = eout_discrete + else: + eout_i = Mixture([p_discrete, 1. - p_discrete], + [eout_discrete, eout_continuous]) + + # Read angular distributions + mu_i = [] + for j in range(n): + # Determine interpolation scheme + interp_code = int(dset_eout[3, offsets[i] + j]) + + # Determine offset and length + offset_mu = int(dset_eout[4, offsets[i] + j]) + if offsets[i] + j < dset_eout.shape[1] - 1: + n_mu = int(dset_eout[4, offsets[i] + j + 1]) - offset_mu + else: + n_mu = dset_mu.shape[1] - offset_mu + + # Get data + x = dset_mu[0, offset_mu:offset_mu+n_mu] + p = dset_mu[1, offset_mu:offset_mu+n_mu] + c = dset_mu[2, offset_mu:offset_mu+n_mu] + + if interp_code == 0: + mu_ij = Discrete(x, p) + else: + mu_ij = Tabular(x, p, interpolation_scheme[interp_code], + ignore_negative=True) + mu_ij.c = c + mu_i.append(mu_ij) + + offset_mu += n_mu + + energy_out.append(eout_i) + mu.append(mu_i) + + j += n + + return cls(energy_breakpoints, energy_interpolation, + energy, energy_out, mu) diff --git a/openmc/data/data.py b/openmc/data/data.py index c6dd81ba6e..e5aa55285f 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -99,3 +99,60 @@ natural_abundance = { 'Bi-209': 1.0, 'Th-232': 1.0, 'Pa-231': 1.0, 'U-234': 5.4e-05, 'U-235': 0.007204, 'U-238': 0.992742 } + +atomic_symbol = {1: 'H', 2: 'He', 3: 'Li', 4: 'Be', 5: 'B', 6: 'C', 7: 'N', + 8: 'O', 9: 'F', 10: 'Ne', 11: 'Na', 12: 'Mg', 13: 'Al', + 14: 'Si', 15: 'P', 16: 'S', 17: 'Cl', 18: 'Ar', 19: 'K', + 20: 'Ca', 21: 'Sc', 22: 'Ti', 23: 'V', 24: 'Cr', 25: 'Mn', + 26: 'Fe', 27: 'Co', 28: 'Ni', 29: 'Cu', 30: 'Zn', 31: 'Ga', + 32: 'Ge', 33: 'As', 34: 'Se', 35: 'Br', 36: 'Kr', 37: 'Rb', + 38: 'Sr', 39: 'Y', 40: 'Zr', 41: 'Nb', 42: 'Mo', 43: 'Tc', + 44: 'Ru', 45: 'Rh', 46: 'Pd', 47: 'Ag', 48: 'Cd', 49: 'In', + 50: 'Sn', 51: 'Sb', 52: 'Te', 53: 'I', 54: 'Xe', 55: 'Cs', + 56: 'Ba', 57: 'La', 58: 'Ce', 59: 'Pr', 60: 'Nd', 61: 'Pm', + 62: 'Sm', 63: 'Eu', 64: 'Gd', 65: 'Tb', 66: 'Dy', 67: 'Ho', + 68: 'Er', 69: 'Tm', 70: 'Yb', 71: 'Lu', 72: 'Hf', 73: 'Ta', + 74: 'W', 75: 'Re', 76: 'Os', 77: 'Ir', 78: 'Pt', 79: 'Au', + 80: 'Hg', 81: 'Tl', 82: 'Pb', 83: 'Bi', 84: 'Po', 85: 'At', + 86: 'Rn', 87: 'Fr', 88: 'Ra', 89: 'Ac', 90: 'Th', 91: 'Pa', + 92: 'U', 93: 'Np', 94: 'Pu', 95: 'Am', 96: 'Cm', 97: 'Bk', + 98: 'Cf', 99: 'Es', 100: 'Fm', 101: 'Md', 102: 'No', + 103: 'Lr', 104: 'Rf', 105: 'Db', 106: 'Sg', 107: 'Bh', + 108: 'Hs', 109: 'Mt', 110: 'Ds', 111: 'Rg', 112: 'Cn', + 114: 'Fl', 116: 'Lv'} +atomic_number = {value: key for key, value in atomic_symbol.items()} + +reaction_name = {1: '(n,total)', 2: '(n,elastic)', 4: '(n,level)', 5: '(n,misc)', 11: '(n,2nd)', + 16: '(n,2n)', 17: '(n,3n)', 18: '(n,fission)', 19: '(n,f)', + 20: '(n,nf)', 21: '(n,2nf)', 22: '(n,na)', 23: '(n,n3a)', + 24: '(n,2na)', 25: '(n,3na)', 28: '(n,np)', 29: '(n,n2a)', + 30: '(n,2n2a)', 32: '(n,nd)', 33: '(n,nt)', 34: '(n,nHe-3)', + 35: '(n,nd2a)', 36: '(n,nt2a)', 37: '(n,4n)', 38: '(n,3nf)', + 41: '(n,2np)', 42: '(n,3np)', 44: '(n,n2p)', 45: '(n,npa)', + 91: '(n,nc)', 101: '(n,disappear)', 102: '(n,gamma)', + 103: '(n,p)', 104: '(n,d)', 105: '(n,t)', 106: '(n,3He)', + 107: '(n,a)', 108: '(n,2a)', 109: '(n,3a)', 111: '(n,2p)', + 112: '(n,pa)', 113: '(n,t2a)', 114: '(n,d2a)', 115: '(n,pd)', + 116: '(n,pt)', 117: '(n,da)', 152: '(n,5n)', 153: '(n,6n)', + 154: '(n,2nt)', 155: '(n,ta)', 156: '(n,4np)', 157: '(n,3nd)', + 158: '(n,nda)', 159: '(n,2npa)', 160: '(n,7n)', 161: '(n,8n)', + 162: '(n,5np)', 163: '(n,6np)', 164: '(n,7np)', 165: '(n,4na)', + 166: '(n,5na)', 167: '(n,6na)', 168: '(n,7na)', 169: '(n,4nd)', + 170: '(n,5nd)', 171: '(n,6nd)', 172: '(n,3nt)', 173: '(n,4nt)', + 174: '(n,5nt)', 175: '(n,6nt)', 176: '(n,2n3He)', + 177: '(n,3n3He)', 178: '(n,4n3He)', 179: '(n,3n2p)', + 180: '(n,3n3a)', 181: '(n,3npa)', 182: '(n,dt)', + 183: '(n,npd)', 184: '(n,npt)', 185: '(n,ndt)', + 186: '(n,np3He)', 187: '(n,nd3He)', 188: '(n,nt3He)', + 189: '(n,nta)', 190: '(n,2n2p)', 191: '(n,p3He)', + 192: '(n,d3He)', 193: '(n,3Hea)', 194: '(n,4n2p)', + 195: '(n,4n2a)', 196: '(n,4npa)', 197: '(n,3p)', + 198: '(n,n3p)', 199: '(n,3n2pa)', 200: '(n,5n2p)', 444: '(n,damage)', + 649: '(n,pc)', 699: '(n,dc)', 749: '(n,tc)', 799: '(n,3Hec)', + 849: '(n,ac)'} +reaction_name.update({i: '(n,n{})'.format(i-50) for i in range(50,91)}) +reaction_name.update({i: '(n,p{})'.format(i-600) for i in range(600,649)}) +reaction_name.update({i: '(n,d{})'.format(i-650) for i in range(650,699)}) +reaction_name.update({i: '(n,t{})'.format(i-700) for i in range(700,749)}) +reaction_name.update({i: '(n,3He{})'.format(i-750) for i in range(750,799)}) +reaction_name.update({i: '(n,a{})'.format(i-800) for i in range(800,849)}) diff --git a/openmc/data/energy_distribution.py b/openmc/data/energy_distribution.py new file mode 100644 index 0000000000..afbc390141 --- /dev/null +++ b/openmc/data/energy_distribution.py @@ -0,0 +1,850 @@ +from abc import ABCMeta, abstractmethod +from collections import Iterable +from numbers import Integral, Real + +import h5py +import numpy as np + +from openmc.data.container import Tabulated1D, interpolation_scheme +from openmc.stats.univariate import Univariate, Tabular, Discrete, Mixture +import openmc.checkvalue as cv + + +class EnergyDistribution(object): + """Abstract superclass for all energy distributions.""" + + __metaclass__ = ABCMeta + + def __init__(self): + pass + + @abstractmethod + def to_hdf5(self, group): + pass + + @staticmethod + def from_hdf5(group): + """Generate energy distribution from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.EnergyDistribution + Energy distribution + + """ + energy_type = group.attrs['type'].decode() + if energy_type == 'maxwell': + return MaxwellEnergy.from_hdf5(group) + elif energy_type == 'evaporation': + return Evaporation.from_hdf5(group) + elif energy_type == 'watt': + return WattEnergy.from_hdf5(group) + elif energy_type == 'madland-nix': + return MadlandNix.from_hdf5(group) + elif energy_type == 'discrete_photon': + return DiscretePhoton.from_hdf5(group) + elif energy_type == 'level': + return LevelInelastic.from_hdf5(group) + elif energy_type == 'continuous': + return ContinuousTabular.from_hdf5(group) + + +class ArbitraryTabulated(EnergyDistribution): + r"""Arbitrary tabulated function given in ENDF MF=5, LF=1 represented as + + .. math:: + f(E \rightarrow E') = g(E \rightarrow E') + + Parameters + ---------- + energy : numpy.ndarray + Array of incident neutron energies + pdf : list of openmc.data.Tabulated1D + Tabulated outgoing energy distribution probability density functions + + Attributes + ---------- + energy : numpy.ndarray + Array of incident neutron energies + pdf : list of openmc.data.Tabulated1D + Tabulated outgoing energy distribution probability density functions + + """ + + def __init__(self, energy, pdf): + self.energy = energy + self.pdf = pdf + + def to_hdf5(self, group): + NotImplementedError + + +class GeneralEvaporation(EnergyDistribution): + r"""General evaporation spectrum given in ENDF MF=5, LF=5 represented as + + .. math:: + f(E \rightarrow E') = g(E'/\theta(E)) + + Parameters + ---------- + theta : openmc.data.Tabulated1D + Tabulated function of incident neutron energy :math:`E` + g : openmc.data.Tabulated1D + Tabulated function of :math:`x = E'/\theta(E)` + u : float + Constant introduced to define the proper upper limit for the final + particle energy such that :math:`0 \le E' \le E - U` + + Attributes + ---------- + theta : openmc.data.Tabulated1D + Tabulated function of incident neutron energy :math:`E` + g : openmc.data.Tabulated1D + Tabulated function of :math:`x = E'/\theta(E)` + u : float + Constant introduced to define the proper upper limit for the final + particle energy such that :math:`0 \le E' \le E - U` + + """ + + def __init__(self, theta, g, u): + self.theta = theta + self.g = g + self.u = u + + def to_hdf5(self, group): + raise NotImplementedError + + +class MaxwellEnergy(EnergyDistribution): + r"""Simple Maxwellian fission spectrum represented as + + .. math:: + f(E \rightarrow E') = \frac{\sqrt{E'}}{I} e^{-E'/\theta(E)} + + Parameters + ---------- + theta : openmc.data.Tabulated1D + Tabulated function of incident neutron energy + u : float + Constant introduced to define the proper upper limit for the final + particle energy such that :math:`0 \le E' \le E - U` + + Attributes + ---------- + theta : openmc.data.Tabulated1D + Tabulated function of incident neutron energy + u : float + Constant introduced to define the proper upper limit for the final + particle energy such that :math:`0 \le E' \le E - U` + + """ + + def __init__(self, theta, u): + self.theta = theta + self.u = u + + @property + def theta(self): + return self._theta + + @property + def u(self): + return self._u + + @theta.setter + def theta(self, theta): + cv.check_type('Maxwell theta', theta, Tabulated1D) + self._theta = theta + + @u.setter + def u(self, u): + cv.check_type('Maxwell restriction energy', u, Real) + self._u = u + + def to_hdf5(self, group): + """Write distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + group.attrs['type'] = np.string_('maxwell') + group.attrs['u'] = self.u + self.theta.to_hdf5(group, 'theta') + + @classmethod + def from_hdf5(cls, group): + """Generate Maxwell distribution from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.MaxwellEnergy + Maxwell distribution + + """ + theta = Tabulated1D.from_hdf5(group['theta']) + u = group.attrs['u'] + return cls(theta, u) + + +class Evaporation(EnergyDistribution): + r"""Evaporation spectrum represented as + + .. math:: + f(E \rightarrow E') = \frac{E'}{I} e^{-E'/\theta(E)} + + Parameters + ---------- + theta : openmc.data.Tabulated1D + Tabulated function of incident neutron energy + u : float + Constant introduced to define the proper upper limit for the final + particle energy such that :math:`0 \le E' \le E - U` + + Attributes + ---------- + theta : openmc.data.Tabulated1D + Tabulated function of incident neutron energy + u : float + Constant introduced to define the proper upper limit for the final + particle energy such that :math:`0 \le E' \le E - U` + + """ + + def __init__(self, theta, u): + self.theta = theta + self.u = u + + @property + def theta(self): + return self._theta + + @property + def u(self): + return self._u + + @theta.setter + def theta(self, theta): + cv.check_type('Evaporation theta', theta, Tabulated1D) + self._theta = theta + + @u.setter + def u(self, u): + cv.check_type('Evaporation restriction energy', u, Real) + self._u = u + + def to_hdf5(self, group): + """Write distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + group.attrs['type'] = np.string_('evaporation') + group.attrs['u'] = self.u + self.theta.to_hdf5(group, 'theta') + + @classmethod + def from_hdf5(cls, group): + """Generate evaporation spectrum from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.Evaporation + Evaporation spectrum distribution + + """ + theta = Tabulated1D.from_hdf5(group['theta']) + u = group.attrs['u'] + return cls(theta, u) + + +class WattEnergy(EnergyDistribution): + r"""Energy-dependent Watt spectrum represented as + + .. math:: + f(E \rightarrow E') = \frac{e^{-E'/a}}{I} \sinh \left ( \sqrt{bE'} + \right ) + + Parameters + ---------- + a, b : openmc.data.Tabulated1D + Energy-dependent parameters tabulated as function of incident neutron + energy + u : float + Constant introduced to define the proper upper limit for the final + particle energy such that :math:`0 \le E' \le E - U` + + Attributes + ---------- + a, b : openmc.data.Tabulated1D + Energy-dependent parameters tabulated as function of incident neutron + energy + u : float + Constant introduced to define the proper upper limit for the final + particle energy such that :math:`0 \le E' \le E - U` + + """ + + def __init__(self, a, b, u): + self.a = a + self.b = b + self.u = u + + @property + def a(self): + return self._a + + @property + def b(self): + return self._b + + @property + def u(self): + return self._u + + @a.setter + def a(self, a): + cv.check_type('Watt a', a, Tabulated1D) + self._a = a + + @b.setter + def b(self, b): + cv.check_type('Watt b', b, Tabulated1D) + self._b = b + + @u.setter + def u(self, u): + cv.check_type('Watt restriction energy', u, Real) + self._u = u + + def to_hdf5(self, group): + """Write distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + group.attrs['type'] = np.string_('watt') + group.attrs['u'] = self.u + self.a.to_hdf5(group, 'a') + self.b.to_hdf5(group, 'b') + + @classmethod + def from_hdf5(cls, group): + """Generate Watt fission spectrum from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.WattEnergy + Watt fission spectrum + + """ + a = Tabulated1D.from_hdf5(group['a']) + b = Tabulated1D.from_hdf5(group['b']) + u = group.attrs['u'] + return cls(a, b, u) + +class MadlandNix(EnergyDistribution): + r"""Energy-dependent fission neutron spectrum (Madland and Nix) given in + ENDF MF=5, LF=12 represented as + + .. math:: + f(E \rightarrow E') = \frac{1}{2} [ g(E', E_F(L)) + g(E', E_F(H))] + + where + + .. math:: + g(E',E_F) = \frac{1}{3\sqrt{E_F T_M}} \left [ u_2^{3/2} E_1 (u_2) - + u_1^{3/2} E_1 (u_1) + \gamma \left ( \frac{3}{2}, u_2 \right ) - \gamma + \left ( \frac{3}{2}, u_1 \right ) \right ] \\ u_1 = \left ( \sqrt{E'} - + \sqrt{E_F} \right )^2 / T_M \\ u_2 = \left ( \sqrt{E'} + \sqrt{E_F} + \right )^2 / T_M. + + Parameters + ---------- + efl, efh : float + Constants which represent the average kinetic energy per nucleon of the + fission fragment (efl = light, efh = heavy) + tm : openmc.data.Tabulated1D + Parameter tabulated as a function of incident neutron energy + + Attributes + ---------- + efl, efh : float + Constants which represent the average kinetic energy per nucleon of the + fission fragment (efl = light, efh = heavy) + tm : openmc.data.Tabulated1D + Parameter tabulated as a function of incident neutron energy + + """ + + def __init__(self, efl, efh, tm): + self.efl = efl + self.efh = efh + self.tm = tm + + @property + def efl(self): + return self._efl + + @property + def efh(self): + return self._efh + + @property + def tm(self): + return self._tm + + @efl.setter + def efl(self, efl): + name = 'Madland-Nix light fragment energy' + cv.check_type(name, efl, Real) + cv.check_greater_than(name, efl, 0.) + self._efl = efl + + @efh.setter + def efh(self, efh): + name = 'Madland-Nix heavy fragment energy' + cv.check_type(name, efh, Real) + cv.check_greater_than(name, efh, 0.) + self._efh = efh + + @tm.setter + def tm(self, tm): + cv.check_type('Madland-Nix maximum temperature', tm, Tabulated1D) + self._tm = tm + + def to_hdf5(self, group): + """Write distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + group.attrs['type'] = np.string_('madland-nix') + group.attrs['efl'] = self.efl + group.attrs['efh'] = self.efh + self.tm.to_hdf5(group) + + @classmethod + def from_hdf5(cls, group): + """Generate Madland-Nix fission spectrum from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.MadlandNix + Madland-Nix fission spectrum + + """ + efl = group.attrs['efl'] + efh = group.attrs['efh'] + tm = Tabulated1D.from_hdf5(group['tm']) + return cls(efl, efh, tm) + + +class DiscretePhoton(EnergyDistribution): + """Discrete photon energy distribution + + Parameters + ---------- + primary_flag : int + Indicator of whether the photon is a primary or non-primary photon. + energy : float + Photon energy (if lp==0 or lp==1) or binding energy (if lp==2). + atomic_weight_ratio : float + Atomic weight ratio of the target nuclide responsible for the emitted + particle + + Attributes + ---------- + primary_flag : int + Indicator of whether the photon is a primary or non-primary photon. + energy : float + Photon energy (if lp==0 or lp==1) or binding energy (if lp==2). + atomic_weight_ratio : float + Atomic weight ratio of the target nuclide responsible for the emitted + particle + + """ + + def __init__(self, primary_flag, energy, atomic_weight_ratio): + super(DiscretePhoton, self).__init__() + self.primary_flag = primary_flag + self.energy = energy + self.atomic_weight_ratio = atomic_weight_ratio + + @property + def primary_flag(self): + return self._primary_flag + + @property + def energy(self): + return self._energy + + @property + def atomic_weight_ratio(self): + return self._atomic_weight_ratio + + @primary_flag.setter + def primary_flag(self, primary_flag): + cv.check_type('discrete photon primary_flag', primary_flag, Integral) + self._primary_flag = primary_flag + + @energy.setter + def energy(self, energy): + cv.check_type('discrete photon energy', energy, Real) + self._energy = energy + + @atomic_weight_ratio.setter + def atomic_weight_ratio(self, atomic_weight_ratio): + cv.check_type('atomic weight ratio', atomic_weight_ratio, Real) + self._atomic_weight_ratio = atomic_weight_ratio + + def to_hdf5(self, group): + """Write distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + group.attrs['type'] = np.string_('discrete_photon') + group.attrs['primary_flag'] = self.primary_flag + group.attrs['energy'] = self.energy + group.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio + + @classmethod + def from_hdf5(cls, group): + """Generate discrete photon energy distribution from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.DiscretePhoton + Discrete photon energy distribution + + """ + primary_flag = group.attrs['primary_flag'] + energy = group.attrs['energy'] + awr = group.attrs['atomic_weight_ratio'] + return cls(primary_flag, energy, awr) + + +class LevelInelastic(EnergyDistribution): + r"""Level inelastic scattering + + Parameters + ---------- + threshold : float + Energy threshold in the laboratory system, :math:`(A + 1)/A * |Q|` + mass_ratio : float + :math:`(A/(A + 1))^2` + + Attributes + ---------- + threshold : float + Energy threshold in the laboratory system, :math:`(A + 1)/A * |Q|` + mass_ratio : float + :math:`(A/(A + 1))^2` + + """ + + def __init__(self, threshold, mass_ratio): + super(LevelInelastic, self).__init__() + self.threshold = threshold + self.mass_ratio = mass_ratio + + @property + def threshold(self): + return self._threshold + + @property + def mass_ratio(self): + return self._mass_ratio + + @threshold.setter + def threshold(self, threshold): + cv.check_type('level inelastic threhsold', threshold, Real) + self._threshold = threshold + + @mass_ratio.setter + def mass_ratio(self, mass_ratio): + cv.check_type('level inelastic mass ratio', mass_ratio, Real) + self._mass_ratio = mass_ratio + + def to_hdf5(self, group): + """Write distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + group.attrs['type'] = np.string_('level') + group.attrs['threshold'] = self.threshold + group.attrs['mass_ratio'] = self.mass_ratio + + @classmethod + def from_hdf5(cls, group): + """Generate level inelastic distribution from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.LevelInelastic + Level inelastic scattering distribution + + """ + threshold = group.attrs['threshold'] + mass_ratio = group.attrs['mass_ratio'] + return cls(threshold, mass_ratio) + + +class ContinuousTabular(EnergyDistribution): + """Continuous tabular distribution + + Parameters + ---------- + breakpoints : Iterable of int + Breakpoints defining interpolation regions + interpolation : Iterable of int + Interpolation codes + energy : Iterable of float + Incoming energies at which distributions exist + energy_out : Iterable of openmc.stats.Univariate + Distribution of outgoing energies corresponding to each incoming energy + + Attributes + ---------- + breakpoints : Iterable of int + Breakpoints defining interpolation regions + interpolation : Iterable of int + Interpolation codes + energy : Iterable of float + Incoming energies at which distributions exist + energy_out : Iterable of openmc.stats.Univariate + Distribution of outgoing energies corresponding to each incoming energy + + """ + + def __init__(self, breakpoints, interpolation, energy, energy_out): + super(ContinuousTabular, self).__init__() + self.breakpoints = breakpoints + self.interpolation = interpolation + self.energy = energy + self.energy_out = energy_out + + @property + def breakpoints(self): + return self._breakpoints + + @property + def interpolation(self): + return self._interpolation + + @property + def energy(self): + return self._energy + + @property + def energy_out(self): + return self._energy_out + + @breakpoints.setter + def breakpoints(self, breakpoints): + cv.check_type('continuous tabular breakpoints', breakpoints, + Iterable, Integral) + self._breakpoints = breakpoints + + @interpolation.setter + def interpolation(self, interpolation): + cv.check_type('continuous tabular interpolation', interpolation, + Iterable, Integral) + self._interpolation = interpolation + + @energy.setter + def energy(self, energy): + cv.check_type('continuous tabular incoming energy', energy, + Iterable, Real) + self._energy = energy + + @energy_out.setter + def energy_out(self, energy_out): + cv.check_type('continuous tabular outgoing energy', energy_out, + Iterable, Univariate) + self._energy_out = energy_out + + def to_hdf5(self, group): + """Write distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + group.attrs['type'] = np.string_('continuous') + + dset = group.create_dataset('energy', data=self.energy) + dset.attrs['interpolation'] = np.vstack((self.breakpoints, + self.interpolation)) + + # Determine total number of (E,p) pairs and create array + n_pairs = sum(len(d) for d in self.energy_out) + pairs = np.empty((3, n_pairs)) + + # Create array for offsets + offsets = np.empty(len(self.energy_out), dtype=int) + interpolation = np.empty(len(self.energy_out), dtype=int) + n_discrete_lines = np.empty(len(self.energy_out), dtype=int) + j = 0 + + # Populate offsets and pairs array + for i, eout in enumerate(self.energy_out): + n = len(eout) + offsets[i] = j + + if isinstance(eout, Mixture): + discrete, continuous = eout.distribution + n_discrete_lines[i] = m = len(discrete) + interpolation[i] = 1 if continuous.interpolation == 'histogram' else 2 + pairs[0, j:j+m] = discrete.x + pairs[1, j:j+m] = discrete.p + pairs[2, j:j+m] = discrete.c + pairs[0, j+m:j+n] = continuous.x + pairs[1, j+m:j+n] = continuous.p + pairs[2, j+m:j+n] = continuous.c + else: + if isinstance(eout, Tabular): + n_discrete_lines[i] = 0 + interpolation[i] = 1 if eout.interpolation == 'histogram' else 2 + elif isinstance(eout, Discrete): + n_discrete_lines[i] = n + interpolation[i] = 1 + pairs[0, j:j+n] = eout.x + pairs[1, j:j+n] = eout.p + pairs[2, j:j+n] = eout.c + j += n + + # Create dataset for distributions + dset = group.create_dataset('distribution', data=pairs) + + # Write interpolation as attribute + dset.attrs['offsets'] = offsets + dset.attrs['interpolation'] = interpolation + dset.attrs['n_discrete_lines'] = n_discrete_lines + + @classmethod + def from_hdf5(cls, group): + """Generate continuous tabular distribution from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.ContinuousTabular + Continuous tabular energy distribution + + """ + interp_data = group['energy'].attrs['interpolation'] + energy_breakpoints = interp_data[0,:] + energy_interpolation = interp_data[1,:] + energy = group['energy'].value + + data = group['distribution'] + offsets = data.attrs['offsets'] + interpolation = data.attrs['interpolation'] + n_discrete_lines = data.attrs['n_discrete_lines'] + + energy_out = [] + n_energy = len(energy) + for i in range(n_energy): + # Determine length of outgoing energy distribution and number of + # discrete lines + j = offsets[i] + if i < n_energy - 1: + n = offsets[i+1] - j + else: + n = data.shape[1] - j + m = n_discrete_lines[i] + + # Create discrete distribution if lines are present + if m > 0: + eout_discrete = Discrete(data[0, j:j+m], data[1, j:j+m]) + eout_discrete.c = data[2, j:j+m] + p_discrete = eout_discrete.c[-1] + + # Create continuous distribution + if m < n: + interp = interpolation_scheme[interpolation[i]] + eout_continuous = Tabular(data[0, j+m:j+n], data[1, j+m:j+n], interp) + eout_continuous.c = data[2, j+m:j+n] + + # If both continuous and discrete are present, create a mixture + # distribution + if m == 0: + eout_i = eout_continuous + elif m == n: + eout_i = eout_discrete + else: + eout_i = Mixture([p_discrete, 1. - p_discrete], + [eout_discrete, eout_continuous]) + energy_out.append(eout_i) + + return cls(energy_breakpoints, energy_interpolation, + energy, energy_out) diff --git a/openmc/data/kalbach_mann.py b/openmc/data/kalbach_mann.py new file mode 100644 index 0000000000..a8fc8d4c68 --- /dev/null +++ b/openmc/data/kalbach_mann.py @@ -0,0 +1,253 @@ +from collections import Iterable +from numbers import Real, Integral + +import numpy as np + +import openmc.checkvalue as cv +from openmc.stats import Tabular, Univariate, Discrete, Mixture +from .container import Tabulated1D, interpolation_scheme +from .angle_energy import AngleEnergy + + +class KalbachMann(AngleEnergy): + """Kalbach-Mann distribution + + Parameters + ---------- + breakpoints : Iterable of int + Breakpoints defining interpolation regions + interpolation : Iterable of int + Interpolation codes + energy : Iterable of float + Incoming energies at which distributions exist + energy_out : Iterable of openmc.stats.Univariate + Distribution of outgoing energies corresponding to each incoming energy + precompound : Iterable of openmc.data.Tabulated1D + Precompound factor 'r' as a function of outgoing energy for each + incoming energy + slope : Iterable of openmc.data.Tabulated1D + Kalbach-Chadwick angular distribution slope value 'a' as a function of + outgoing energy for each incoming energy + + Attributes + ---------- + breakpoints : Iterable of int + Breakpoints defining interpolation regions + interpolation : Iterable of int + Interpolation codes + energy : Iterable of float + Incoming energies at which distributions exist + energy_out : Iterable of openmc.stats.Univariate + Distribution of outgoing energies corresponding to each incoming energy + precompound : Iterable of openmc.data.Tabulated1D + Precompound factor 'r' as a function of outgoing energy for each + incoming energy + slope : Iterable of openmc.data.Tabulated1D + Kalbach-Chadwick angular distribution slope value 'a' as a function of + outgoing energy for each incoming energy + + """ + + def __init__(self, breakpoints, interpolation, energy, energy_out, + precompound, slope): + super(KalbachMann, self).__init__() + self.breakpoints = breakpoints + self.interpolation = interpolation + self.energy = energy + self.energy_out = energy_out + self.precompound = precompound + self.slope = slope + + @property + def breakpoints(self): + return self._breakpoints + + @property + def interpolation(self): + return self._interpolation + + @property + def energy(self): + return self._energy + + @property + def energy_out(self): + return self._energy_out + + @property + def precompound(self): + return self._precompound + + @property + def slope(self): + return self._slope + + @breakpoints.setter + def breakpoints(self, breakpoints): + cv.check_type('Kalbach-Mann breakpoints', breakpoints, + Iterable, Integral) + self._breakpoints = breakpoints + + @interpolation.setter + def interpolation(self, interpolation): + cv.check_type('Kalbach-Mann interpolation', interpolation, + Iterable, Integral) + self._interpolation = interpolation + + @energy.setter + def energy(self, energy): + cv.check_type('Kalbach-Mann incoming energy', energy, + Iterable, Real) + self._energy = energy + + @energy_out.setter + def energy_out(self, energy_out): + cv.check_type('Kalbach-Mann distributions', energy_out, + Iterable, Univariate) + self._energy_out = energy_out + + @precompound.setter + def precompound(self, precompound): + cv.check_type('Kalbach-Mann precompound factor', precompound, + Iterable, Tabulated1D) + self._precompound = precompound + + @slope.setter + def slope(self, slope): + cv.check_type('Kalbach-Mann slope', slope, Iterable, Tabulated1D) + self._slope = slope + + def to_hdf5(self, group): + """Write distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + group.attrs['type'] = np.string_('kalbach-mann') + + dset = group.create_dataset('energy', data=self.energy) + dset.attrs['interpolation'] = np.vstack((self.breakpoints, + self.interpolation)) + + # Determine total number of (E,p,r,a) tuples and create array + n_tuple = sum(len(d) for d in self.energy_out) + distribution = np.empty((5, n_tuple)) + + # Create array for offsets + offsets = np.empty(len(self.energy_out), dtype=int) + interpolation = np.empty(len(self.energy_out), dtype=int) + n_discrete_lines = np.empty(len(self.energy_out), dtype=int) + j = 0 + + # Populate offsets and distribution array + for i, (eout, km_r, km_a) in enumerate(zip( + self.energy_out, self.precompound, self.slope)): + n = len(eout) + offsets[i] = j + + if isinstance(eout, Mixture): + discrete, continuous = eout.distribution + n_discrete_lines[i] = m = len(discrete) + interpolation[i] = 1 if continuous.interpolation == 'histogram' else 2 + distribution[0, j:j+m] = discrete.x + distribution[1, j:j+m] = discrete.p + distribution[2, j:j+m] = discrete.c + distribution[0, j+m:j+n] = continuous.x + distribution[1, j+m:j+n] = continuous.p + distribution[2, j+m:j+n] = continuous.c + else: + if isinstance(eout, Tabular): + n_discrete_lines[i] = 0 + interpolation[i] = 1 if eout.interpolation == 'histogram' else 2 + elif isinstance(eout, Discrete): + n_discrete_lines[i] = n + interpolation[i] = 1 + distribution[0, j:j+n] = eout.x + distribution[1, j:j+n] = eout.p + distribution[2, j:j+n] = eout.c + + distribution[3, j:j+n] = km_r.y + distribution[4, j:j+n] = km_a.y + j += n + + # Create dataset for distributions + dset = group.create_dataset('distribution', data=distribution) + + # Write interpolation as attribute + dset.attrs['offsets'] = offsets + dset.attrs['interpolation'] = interpolation + dset.attrs['n_discrete_lines'] = n_discrete_lines + + @classmethod + def from_hdf5(cls, group): + """Generate Kalbach-Mann distribution from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.KalbachMann + Kalbach-Mann energy distribution + + """ + interp_data = group['energy'].attrs['interpolation'] + energy_breakpoints = interp_data[0,:] + energy_interpolation = interp_data[1,:] + energy = group['energy'].value + + data = group['distribution'] + offsets = data.attrs['offsets'] + interpolation = data.attrs['interpolation'] + n_discrete_lines = data.attrs['n_discrete_lines'] + + energy_out = [] + precompound = [] + slope = [] + n_energy = len(energy) + for i in range(n_energy): + # Determine length of outgoing energy distribution and number of + # discrete lines + j = offsets[i] + if i < n_energy - 1: + n = offsets[i+1] - j + else: + n = data.shape[1] - j + m = n_discrete_lines[i] + + # Create discrete distribution if lines are present + if m > 0: + eout_discrete = Discrete(data[0, j:j+m], data[1, j:j+m]) + eout_discrete.c = data[2, j:j+m] + p_discrete = eout_discrete.c[-1] + + # Create continuous distribution + if m < n: + interp = interpolation_scheme[interpolation[i]] + eout_continuous = Tabular(data[0, j+m:j+n], data[1, j+m:j+n], interp) + eout_continuous.c = data[2, j+m:j+n] + + # If both continuous and discrete are present, create a mixture + # distribution + if m == 0: + eout_i = eout_continuous + elif m == n: + eout_i = eout_discrete + else: + eout_i = Mixture([p_discrete, 1. - p_discrete], + [eout_discrete, eout_continuous]) + + km_r = Tabulated1D(data[0, j:j+n], data[3, j:j+n]) + km_a = Tabulated1D(data[0, j:j+n], data[4, j:j+n]) + + energy_out.append(eout_i) + precompound.append(km_r) + slope.append(km_a) + + return cls(energy_breakpoints, energy_interpolation, + energy, energy_out, precompound, slope) diff --git a/openmc/data/nbody.py b/openmc/data/nbody.py new file mode 100644 index 0000000000..4fa3d05b21 --- /dev/null +++ b/openmc/data/nbody.py @@ -0,0 +1,118 @@ +from numbers import Real, Integral + +import numpy as np + +import openmc.checkvalue as cv +from .angle_energy import AngleEnergy + +class NBodyPhaseSpace(AngleEnergy): + """N-body phase space distribution + + Parameters + ---------- + total_mass : float + Total mass of product particles + n_particles : int + Number of product particles + atomic_weight_ratio : float + Atomic weight ratio of target nuclide + q_value : float + Q value for reaction in MeV + + Attributes + ---------- + total_mass : float + Total mass of product particles + n_particles : int + Number of product particles + atomic_weight_ratio : float + Atomic weight ratio of target nuclide + q_value : float + Q value for reaction in MeV + + """ + + def __init__(self, total_mass, n_particles, atomic_weight_ratio, q_value): + self.total_mass = total_mass + self.n_particles = n_particles + self.atomic_weight_ratio = atomic_weight_ratio + self.q_value = q_value + + @property + def total_mass(self): + return self._total_mass + + @property + def n_particles(self): + return self._n_particles + + @property + def atomic_weight_ratio(self): + return self._atomic_weight_ratio + + @property + def q_value(self): + return self._q_value + + @total_mass.setter + def total_mass(self, total_mass): + name = 'N-body phase space total mass' + cv.check_type(name, total_mass, Real) + cv.check_greater_than(name, total_mass, 0.) + self._total_mass = total_mass + + @n_particles.setter + def n_particles(self, n_particles): + name = 'N-body phase space number of particles' + cv.check_type(name, n_particles, Integral) + cv.check_greater_than(name, n_particles, 0) + self._n_particles = n_particles + + @atomic_weight_ratio.setter + def atomic_weight_ratio(self, atomic_weight_ratio): + name = 'N-body phase space atomic weight ratio' + cv.check_type(name, atomic_weight_ratio, Real) + cv.check_greater_than(name, atomic_weight_ratio, 0.0) + self._atomic_weight_ratio = atomic_weight_ratio + + @q_value.setter + def q_value(self, q_value): + name = 'N-body phase space Q value' + cv.check_type(name, q_value, Real) + self._q_value = q_value + + def to_hdf5(self, group): + """Write distribution to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + group.attrs['type'] = np.string_('nbody') + group.attrs['total_mass'] = self.total_mass + group.attrs['n_particles'] = self.n_particles + group.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio + group.attrs['q_value'] = self.q_value + + @classmethod + def from_hdf5(cls, group): + """Generate N-body phase space distribution from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.NBodyPhaseSpace + N-body phase space distribution + + """ + total_mass = group.attrs['total_mass'] + n_particles = group.attrs['n_particles'] + awr = group.attrs['atomic_weight_ratio'] + q_value = group.attrs['q_value'] + return cls(total_mass, n_particles, awr, q_value) diff --git a/openmc/data/product.py b/openmc/data/product.py new file mode 100644 index 0000000000..6a331dc243 --- /dev/null +++ b/openmc/data/product.py @@ -0,0 +1,205 @@ +from collections import Iterable +from numbers import Real +import sys + +import numpy as np +from numpy.polynomial.polynomial import Polynomial + +import openmc.checkvalue as cv +from .container import Tabulated1D +from .angle_energy import AngleEnergy + +if sys.version_info[0] >= 3: + basestring = str + + +class Product(object): + """Secondary particle emitted in a nuclear reaction + + Parameters + ---------- + particle : str, optional + What particle the reaction product is. Defaults to 'neutron'. + + Attributes + ---------- + applicability : Iterable of openmc.data.Tabulated1D + Probability of sampling a given distribution for this product. + decay_rate : float + Decay rate in inverse seconds + distribution : Iterable of openmc.data.AngleEnergy + Distributions of energy and angle of product. + emission_mode : {'prompt', 'delayed', 'total'} + Indicate whether the particle is emitted immediately or whether it + results from the decay of reaction product (e.g., neutron emitted from a + delayed neutron precursor). A special value of 'total' is used when the + yield represents particles from prompt and delayed sources. + particle : str + What particle the reaction product is. + yield_ : float or openmc.data.Tabulated1D or numpy.polynomial.Polynomial + Yield of secondary particle in the reaction. + + """ + + def __init__(self, particle='neutron'): + self.particle = particle + self.decay_rate = 0.0 + self.emission_mode = 'prompt' + self.distribution = [] + self.applicability = [] + self.yield_ = 1 + + def __repr__(self): + if isinstance(self.yield_, Real): + return "".format( + self.particle, self.emission_mode, self.yield_) + elif isinstance(self.yield_, Tabulated1D): + if np.all(self.yield_.y == self.yield_.y[0]): + return "".format( + self.particle, self.emission_mode, self.yield_.y[0]) + else: + return "".format( + self.particle, self.emission_mode) + else: + return "".format( + self.particle, self.emission_mode) + + @property + def applicability(self): + return self._applicability + + @property + def decay_rate(self): + return self._decay_rate + + @property + def distribution(self): + return self._distribution + + @property + def emission_mode(self): + return self._emission_mode + + @property + def particle(self): + return self._particle + + @property + def yield_(self): + return self._yield + + @applicability.setter + def applicability(self, applicability): + cv.check_type('product distribution applicability', applicability, + Iterable, Tabulated1D) + self._applicability = applicability + + @decay_rate.setter + def decay_rate(self, decay_rate): + cv.check_type('product decay rate', decay_rate, Real) + cv.check_greater_than('product decay rate', decay_rate, 0.0, True) + self._decay_rate = decay_rate + + @distribution.setter + def distribution(self, distribution): + cv.check_type('product angle-energy distribution', distribution, + Iterable, AngleEnergy) + self._distribution = distribution + + @emission_mode.setter + def emission_mode(self, emission_mode): + cv.check_value('product emission mode', emission_mode, + ('prompt', 'delayed', 'total')) + self._emission_mode = emission_mode + + @particle.setter + def particle(self, particle): + cv.check_type('product particle type', particle, basestring) + self._particle = particle + + @yield_.setter + def yield_(self, yield_): + cv.check_type('product yield', yield_, + (Real, Tabulated1D, Polynomial)) + self._yield = yield_ + + def to_hdf5(self, group): + """Write product to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + group.attrs['particle'] = np.string_(self.particle) + group.attrs['emission_mode'] = np.string_(self.emission_mode) + if self.decay_rate > 0.0: + group.attrs['decay_rate'] = self.decay_rate + + # Write yield + if isinstance(self.yield_, Tabulated1D): + self.yield_.to_hdf5(group, 'yield') + dset = group['yield'] + dset.attrs['type'] = np.string_('tabulated') + elif isinstance(self.yield_, Polynomial): + dset = group.create_dataset('yield', data=self.yield_.coef) + dset.attrs['type'] = np.string_('polynomial') + else: + dset = group.create_dataset('yield', data=float(self.yield_)) + dset.attrs['type'] = np.string_('constant') + + # Write applicability/distribution + group.attrs['n_distribution'] = len(self.distribution) + for i, d in enumerate(self.distribution): + dgroup = group.create_group('distribution_{}'.format(i)) + if self.applicability: + self.applicability[i].to_hdf5(dgroup, 'applicability') + d.to_hdf5(dgroup) + + @classmethod + def from_hdf5(cls, group): + """Generate reaction product from HDF5 data + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.Product + Reaction product + + """ + particle = group.attrs['particle'].decode() + p = cls(particle) + + p.emission_mode = group.attrs['emission_mode'].decode() + if 'decay_rate' in group.attrs: + p.decay_rate = group.attrs['decay_rate'] + + # Read yield + yield_type = group['yield'].attrs['type'].decode() + if yield_type == 'constant': + p.yield_ = group['yield'].value + elif yield_type == 'polynomial': + p.yield_ = Polynomial(group['yield'].value) + elif yield_type == 'tabulated': + p.yield_ = Tabulated1D.from_hdf5(group['yield']) + + # Read applicability/distribution + n_distribution = group.attrs['n_distribution'] + distribution = [] + applicability = [] + for i in range(n_distribution): + dgroup = group['distribution_{}'.format(i)] + if 'applicability' in dgroup: + applicability.append(Tabulated1D.from_hdf5( + dgroup['applicability'])) + distribution.append(AngleEnergy.from_hdf5(dgroup)) + + p.distribution = distribution + p.applicability = applicability + + return p diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py new file mode 100644 index 0000000000..663b6472c7 --- /dev/null +++ b/openmc/data/thermal.py @@ -0,0 +1,92 @@ +from collections import Iterable +from numbers import Real + +import numpy as np + +import openmc.checkvalue as cv + + +class CoherentElastic(object): + """Coherent elastic scattering data from a crystalline material + + Parameters + ---------- + bragg_edges : Iterable of float + Bragg edge energies in MeV + factors : Iterable of float + Partial sum of structure factors, :math:`\sum\limits_{i=1}^{E_i= 3: basestring = str +_INTERPOLATION_SCHEMES = ['histogram', 'linear-linear', 'linear-log', + 'log-linear', 'log-log'] + class Univariate(object): """Probability distribution of a single random variable. @@ -27,6 +32,10 @@ class Univariate(object): def to_xml(self, element_name): return '' + @abstractmethod + def __len__(self): + return 0 + class Discrete(Univariate): """Distribution characterized by a probability mass function. @@ -56,6 +65,9 @@ class Discrete(Univariate): self.x = x self.p = p + def __len__(self): + return len(self.x) + @property def x(self): return self._x @@ -114,6 +126,9 @@ class Uniform(Univariate): self.a = a self.b = b + def __len__(self): + return 2 + @property def a(self): return self._a @@ -132,6 +147,12 @@ class Uniform(Univariate): cv.check_type('Uniform b', b, Real) self._b = b + def to_tabular(self): + prob = 1./(self.b - self.a) + t = Tabular([self.a, self.b], [prob, prob], 'histogram') + t.c = [0., 1.] + return t + def to_xml(self, element_name): element = ET.Element(element_name) element.set("type", "uniform") @@ -162,6 +183,9 @@ class Maxwell(Univariate): super(Maxwell, self).__init__() self.theta = theta + def __len__(self): + return 1 + @property def theta(self): return self._theta @@ -207,6 +231,9 @@ class Watt(Univariate): self.a = a self.b = b + def __len__(self): + return 2 + @property def a(self): return self._a @@ -238,8 +265,8 @@ class Tabular(Univariate): """Piecewise continuous probability distribution. This class is used to represent a probability distribution whose density - function is tabulated at specific values and is either histogram or linearly - interpolated between points. + function is tabulated at specific values with a specified interpolation + scheme. Parameters ---------- @@ -247,9 +274,11 @@ class Tabular(Univariate): Tabulated values of the random variable p : Iterable of float Tabulated probabilities - interpolation : {'histogram', 'linear-linear'}, optional + interpolation : {'histogram', 'linear-linear', 'linear-log', 'log-linear', 'log-log'}, optional Indicate whether the density function is constant between tabulated - points or linearly-interpolated. + points or linearly-interpolated. Defaults to 'linear-linear'. + ignore_negative : bool + Ignore negative probabilities Attributes ---------- @@ -257,18 +286,23 @@ class Tabular(Univariate): Tabulated values of the random variable p : Iterable of float Tabulated probabilities - interpolation : {'histogram', 'linear-linear'}, optional + interpolation : {'histogram', 'linear-linear', 'linear-log', 'log-linear', 'log-log'}, optional Indicate whether the density function is constant between tabulated points or linearly-interpolated. """ - def __init__(self, x, p, interpolation='linear-linear'): + def __init__(self, x, p, interpolation='linear-linear', + ignore_negative=False): super(Tabular, self).__init__() + self._ignore_negative = ignore_negative self.x = x self.p = p self.interpolation = interpolation + def __len__(self): + return len(self.x) + @property def x(self): return self._x @@ -289,14 +323,14 @@ class Tabular(Univariate): @p.setter def p(self, p): cv.check_type('tabulated probabilities', p, Iterable, Real) - for pk in p: - cv.check_greater_than('tabulated probability', pk, 0.0, True) + if not self._ignore_negative: + for pk in p: + cv.check_greater_than('tabulated probability', pk, 0.0, True) self._p = p @interpolation.setter def interpolation(self, interpolation): - cv.check_value('interpolation', interpolation, - ['linear-linear', 'histogram']) + cv.check_value('interpolation', interpolation, _INTERPOLATION_SCHEMES) self._interpolation = interpolation def to_xml(self, element_name): @@ -308,3 +342,103 @@ class Tabular(Univariate): params.text = ' '.join(map(str, self.x)) + ' ' + ' '.join(map(str, self.p)) return element + + +class Legendre(Univariate): + r"""Probability density given by a Legendre polynomial expansion + :math:`\sum\limits_{\ell=0}^N \frac{2\ell + 1}{2} a_\ell P_\ell(\mu)`. + + Parameters + ---------- + coefficients : Iterable of Real + Expansion coefficients :math:`a_\ell`. Note that the :math:`(2\ell + + 1)/2` factor should not be included. + + Attributes + ---------- + coefficients : Iterable of Real + Expansion coefficients :math:`a_\ell`. Note that the :math:`(2\ell + + 1)/2` factor should not be included. + + """ + + def __init__(self, coefficients): + self.coefficients = coefficients + + def __call__(self, x): + return self._legendre_polynomial(x) + + def __len__(self): + return len(self._legendre_polynomial.coef) + + @property + def coefficients(self): + poly = self._legendre_polynomial + l = np.arange(poly.degree() + 1) + return 2./(2.*l + 1.) * poly.coef + + @coefficients.setter + def coefficients(self, coefficients): + cv.check_type('Legendre expansion coefficients', coefficients, + Iterable, Real) + for l in range(len(coefficients)): + coefficients[l] *= (2.*l + 1.)/2. + self._legendre_polynomial = np.polynomial.legendre.Legendre( + coefficients) + + def to_xml(self, element_name): + raise NotImplementedError + + +class Mixture(Univariate): + """Probability distribution characterized by a mixture of random variables. + + Parameters + ---------- + probability : Iterable of Real + Probability of selecting a particular distribution + distribution : Iterable of Univariate + List of distributions with corresponding probabilities + + Attributes + ---------- + probability : Iterable of Real + Probability of selecting a particular distribution + distribution : Iterable of Univariate + List of distributions with corresponding probabilities + + """ + + def __init__(self, probability, distribution): + super(Mixture, self).__init__() + self.probability = probability + self.distribution = distribution + + def __len__(self): + return sum(len(d) for d in self.distribution) + + @property + def probability(self): + return self._probability + + @property + def distribution(self): + return self._distribution + + @probability.setter + def probability(self, probability): + cv.check_type('mixture distribution probabilities', probability, + Iterable, Real) + for p in probability: + cv.check_greater_than('mixture distribution probabilities', + p, 0.0, True) + self._probability = probability + + @distribution.setter + def distribution(self, distribution): + cv.check_type('mixture distribution components', distribution, + Iterable, Univariate) + self._distribution = distribution + + def to_xml(self, element_name): + raise NotImplementedError diff --git a/src/ace.F90 b/src/ace.F90 deleted file mode 100644 index 170c885f02..0000000000 --- a/src/ace.F90 +++ /dev/null @@ -1,1738 +0,0 @@ -module ace - - use angleenergy_header, only: AngleEnergy - 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 global - use list_header, only: ListInt - use material_header, only: Material - use multipole, only: multipole_read - 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 - use secondary_kalbach, only: KalbachMann - use secondary_nbody, only: NBodyPhaseSpace - use secondary_uncorrelated, only: UncorrelatedAngleEnergy - use string, only: to_str, to_lower - - implicit none - - integer :: JXS(32) ! Pointers into ACE XSS tables - integer :: NXS(16) ! Descriptors for ACE XSS tables - real(8), allocatable :: XSS(:) ! Cross section data - integer :: XSS_index ! Current index in XSS data - - private :: JXS - private :: NXS - private :: XSS - -contains - -!=============================================================================== -! READ_ACE_XS reads all the cross sections for the problem and stores them in -! nuclides and sab_tables arrays -!=============================================================================== - - subroutine read_ace_xs() - - integer :: i ! index in materials array - integer :: j ! index over nuclides in material - integer :: k ! index over S(a,b) tables in material - integer :: n ! index over resonant scatterers - integer :: i_listing ! index in xs_listings array - integer :: i_nuclide ! index in nuclides - integer :: i_sab ! index in sab_tables - integer :: m ! position for sorting - integer :: temp_nuclide ! temporary value for sorting - 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(Nuclide), pointer :: nuc - type(SAlphaBeta), pointer :: sab - type(SetChar) :: already_read - - ! allocate arrays for ACE table storage and cross section cache - allocate(nuclides(n_nuclides_total)) - allocate(sab_tables(n_sab_tables)) -!$omp parallel - allocate(micro_xs(n_nuclides_total)) -!$omp end parallel - - ! ========================================================================== - ! 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 = nuclide_dict % get_key(to_lower(name)) - name = xs_listings(i_listing) % name - alias = xs_listings(i_listing) % alias - - ! Keep track of what listing is associated with this nuclide - nuc => nuclides(i_nuclide) - nuc % listing = i_listing - - ! Read the ACE table into the appropriate entry on the nuclides - ! array - call read_ace_table(i_nuclide, i_listing) - - ! 0K resonant scatterer information, if treating resonance scattering - if (treat_res_scat) then - do n = 1, n_res_scatterers_total - if (name == nuclides_0K(n) % name) then - nuclides(i_nuclide) % resonant = .true. - nuclides(i_nuclide) % name_0K = nuclides_0K(n) % name_0K - nuclides(i_nuclide) % name_0K = trim(nuclides(i_nuclide) % & - & name_0K) - nuclides(i_nuclide) % scheme = nuclides_0K(n) % scheme - nuclides(i_nuclide) % scheme = trim(nuclides(i_nuclide) % & - & scheme) - nuclides(i_nuclide) % E_min = nuclides_0K(n) % E_min - nuclides(i_nuclide) % E_max = nuclides_0K(n) % E_max - if (.not. already_read % contains(nuclides(i_nuclide) % & - & name_0K)) then - i_listing = xs_listing_dict % get_key(nuclides(i_nuclide) % & - & name_0K) - call read_ace_table(i_nuclide, i_listing) - end if - exit - end if - end do - end if - - ! Read multipole file into the appropriate entry on the nuclides array - if (multipole_active) call read_multipole_data(i_nuclide) - - ! Add name and alias to dictionary - call already_read % add(name) - call already_read % add(alias) - end if - end do NUCLIDE_LOOP - - SAB_LOOP: do k = 1, mat % n_sab - ! Get name of S(a,b) table - name = mat % sab_names(k) - - if (.not. already_read % contains(name)) then - i_listing = xs_listing_dict % get_key(to_lower(name)) - i_sab = sab_dict % get_key(to_lower(name)) - - ! Read the ACE table into the appropriate entry on the sab_tables - ! array - call read_ace_table(i_sab, i_listing) - - ! Add name to dictionary - call already_read % add(name) - end if - end do SAB_LOOP - end do MATERIAL_LOOP - - ! ========================================================================== - ! ASSIGN S(A,B) TABLES TO SPECIFIC NUCLIDES WITHIN MATERIALS - - MATERIAL_LOOP2: do i = 1, n_materials - ! Get pointer to material - mat => materials(i) - - ASSIGN_SAB: do k = 1, mat % n_sab - ! In order to know which nuclide the S(a,b) table applies to, we need to - ! search through the list of nuclides for one which has a matching zaid - sab => sab_tables(mat % i_sab_tables(k)) - - ! Loop through nuclides and find match - FIND_NUCLIDE: do j = 1, mat % n_nuclides - if (any(sab % zaid == nuclides(mat % nuclide(j)) % zaid)) then - mat % i_sab_nuclides(k) = j - exit FIND_NUCLIDE - end if - end do FIND_NUCLIDE - - ! Check to make sure S(a,b) table matched a nuclide - if (mat % i_sab_nuclides(k) == NONE) then - call fatal_error("S(a,b) table " // trim(mat % sab_names(k)) & - &// " did not match any nuclide on material " & - &// trim(to_str(mat % id))) - end if - end do ASSIGN_SAB - - ! If there are multiple S(a,b) tables, we need to make sure that the - ! entries in i_sab_nuclides are sorted or else they won't be applied - ! correctly in the cross_section module. The algorithm here is a simple - ! insertion sort -- don't need anything fancy! - - if (mat % n_sab > 1) then - SORT_SAB: do k = 2, mat % n_sab - ! Save value to move - m = k - temp_nuclide = mat % i_sab_nuclides(k) - temp_table = mat % i_sab_tables(k) - - MOVE_OVER: do - ! Check if insertion value is greater than (m-1)th value - if (temp_nuclide >= mat % i_sab_nuclides(m-1)) exit - - ! Move values over until hitting one that's not larger - mat % i_sab_nuclides(m) = mat % i_sab_nuclides(m-1) - mat % i_sab_tables(m) = mat % i_sab_tables(m-1) - m = m - 1 - - ! Exit if we've reached the beginning of the list - if (m == 1) exit - end do MOVE_OVER - - ! Put the original value into its new position - mat % i_sab_nuclides(m) = temp_nuclide - mat % i_sab_tables(m) = temp_table - end do SORT_SAB - end if - - ! Deallocate temporary arrays for names of nuclides and S(a,b) tables - if (allocated(mat % names)) deallocate(mat % names) - - end do MATERIAL_LOOP2 - - ! 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 - - ! Check for fission in nuclide - if (nuclides(mat % nuclide(j)) % fissionable) then - mat % fissionable = .true. - exit NUCLIDE_LOOP2 - end if - - end do NUCLIDE_LOOP2 - - end do MATERIAL_LOOP3 - - ! 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 - call write_message("Maximum neutron transport energy: " // & - trim(to_str(energy_max_neutron)) // " MeV for " // & - trim(adjustl(nuclides(i) % name)), 6) - exit - 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 - -!=============================================================================== -! READ_ACE_TABLE reads a single cross section table in either ASCII or binary -! format. This routine reads the header data for each table and then calls -! appropriate subroutines to parse the actual data. -!=============================================================================== - - subroutine read_ace_table(i_table, i_listing) - integer, intent(in) :: i_table ! index in nuclides/sab_tables - integer, intent(in) :: i_listing ! index in xs_listings - - integer :: i ! loop index for XSS records - integer :: j, j1, j2 ! indices in XSS - integer :: record_length ! Fortran record length - integer :: location ! location of ACE table - integer :: entries ! number of entries on each record - integer :: length ! length of ACE table - integer :: unit_ace ! file unit - integer :: zaids(16) ! list of ZAIDs (only used for S(a,b)) - integer :: filetype ! filetype (ASCII or BINARY) - real(8) :: kT ! temperature of table - real(8) :: awrs(16) ! list of atomic weight ratios (not used) - real(8) :: awr ! atomic weight ratio for table - logical :: file_exists ! does ACE library exist? - logical :: data_0K ! are we reading 0K data? - character(7) :: readable ! is ACE library readable? - character(10) :: name ! name of ACE table - character(10) :: date_ ! date ACE library was processed - 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 - type(SAlphaBeta), pointer :: sab - type(XsListing), pointer :: listing - - ! determine path, record length, and location of table - listing => xs_listings(i_listing) - filename = listing % path - record_length = listing % recl - location = listing % location - entries = listing % entries - filetype = listing % filetype - - ! Check if ACE library exists and is readable - inquire(FILE=filename, EXIST=file_exists, READ=readable) - if (.not. file_exists) then - call fatal_error("ACE library '" // trim(filename) // "' does not exist!") - elseif (readable(1:3) == 'NO') then - call fatal_error("ACE library '" // trim(filename) // "' is not readable!& - & Change file permissions with chmod command.") - end if - - ! display message - call write_message("Loading ACE cross section table: " // listing % name, 6) - - if (filetype == ASCII) then - ! ======================================================================= - ! READ ACE TABLE IN ASCII FORMAT - - ! Find location of table - open(NEWUNIT=unit_ace, FILE=filename, STATUS='old', ACTION='read') - rewind(UNIT=unit_ace) - do i = 1, location - 1 - read(UNIT=unit_ace, FMT=*) - end do - - ! Read first line of header - read(UNIT=unit_ace, FMT='(A10,2G12.0,1X,A10)') name, awr, kT, date_ - - ! Check that correct xs was found -- if cross_sections.xml is broken, the - ! location of the table may be wrong - if(adjustl(name) /= adjustl(listing % name)) then - call fatal_error("XS listing entry " // trim(listing % name) // " did & - ¬ match ACE data, " // trim(name) // " found instead.") - end if - - ! Read more header and NXS and JXS - read(UNIT=unit_ace, FMT=100) comment, mat, & - (zaids(i), awrs(i), i=1,16), NXS, JXS -100 format(A70,A10/4(I7,F11.0)/4(I7,F11.0)/4(I7,F11.0)/4(I7,F11.0)/& - ,8I9/8I9/8I9/8I9/8I9/8I9) - - ! determine table length - length = NXS(1) - allocate(XSS(length)) - - ! Read XSS array - read(UNIT=unit_ace, FMT='(4G20.0)') XSS - - ! Close ACE file - close(UNIT=unit_ace) - - elseif (filetype == BINARY) then - ! ======================================================================= - ! READ ACE TABLE IN BINARY FORMAT - - ! Open ACE file - open(NEWUNIT=unit_ace, FILE=filename, STATUS='old', ACTION='read', & - ACCESS='direct', RECL=record_length) - - ! Read all header information - read(UNIT=unit_ace, REC=location) name, awr, kT, date_, & - comment, mat, (zaids(i), awrs(i), i=1,16), NXS, JXS - - ! determine table length - length = NXS(1) - allocate(XSS(length)) - - ! Read remaining records with XSS - do i = 1, (length + entries - 1)/entries - j1 = 1 + (i-1)*entries - j2 = min(length, j1 + entries - 1) - read(UNIT=UNIT_ACE, REC=location + i) (XSS(j), j=j1,j2) - end do - - ! Close ACE file - close(UNIT=unit_ace) - end if - - ! ========================================================================== - ! PARSE DATA BASED ON NXS, JXS, AND XSS ARRAYS - - select case(listing % type) - case (ACE_NEUTRON) - - ! only read in a resonant scatterers info once - nuc => nuclides(i_table) - data_0K = .false. - if (trim(adjustl(name)) == nuc % name_0K) then - data_0K = .true. - else - nuc % name = name - nuc % awr = awr - nuc % kT = kT - nuc % zaid = listing % zaid - end if - - ! read all blocks - call read_esz(nuc, data_0K) - - ! don't read unnecessary 0K data for resonant scatterers - if (data_0K) then - continue - else - call read_reactions(nuc) - call read_nu_data(nuc) - call read_energy_dist(nuc) - call read_angular_dist(nuc) - call read_unr_res(nuc) - end if - - ! for fissionable nuclides, precalculate microscopic nu-fission cross - ! sections so that we don't need to call the nu_total function during - ! cross section lookups (except if we're dealing w/ 0K data for resonant - ! scatterers) - - if (nuc % fissionable .and. .not. data_0K) then - call generate_nu_fission(nuc) - end if - - case (ACE_THERMAL) - sab => sab_tables(i_table) - sab % name = name - sab % awr = awr - sab % kT = kT - ! Find sab % n_zaid - do i = 1, 16 - if (zaids(i) == 0) then - sab % n_zaid = i - 1 - exit - end if - end do - allocate(sab % zaid(sab % n_zaid)) - sab % zaid = zaids(1: sab % n_zaid) - - call read_thermal_data(sab) - end select - - deallocate(XSS) - - end subroutine read_ace_table - -!=============================================================================== -! READ_MULTIPOLE_DATA checks for the existence of a multipole library in the -! directory and loads it using multipole_read -!=============================================================================== - - subroutine read_multipole_data(i_table) - - 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 - - ! For the time being, and I know this is a bit hacky, we just assume - ! that the file will be zaid.h5. - associate (nuc => nuclides(i_table)) - - write(zaid_string, '(I6.6)') nuc % zaid - filename = trim(path_multipole) // zaid_string // ".h5" - - ! Check if Multipole library exists and is readable - inquire(FILE=filename, EXIST=file_exists, READ=readable) - if (.not. file_exists) then - nuc % mp_present = .false. - return - elseif (readable(1:3) == 'NO') then - call fatal_error("Multipole library '" // trim(filename) // "' is not & - &readable! Change file permissions with chmod command.") - end if - - ! Display message - call write_message("Loading Multipole XS table: " // filename, 6) - - allocate(nuc % multipole) - - ! Call the read routine - call multipole_read(filename, nuc % multipole, i_table) - nuc % mp_present = .true. - - ! Recreate nu-fission tables - if (nuc % fissionable) then - call generate_nu_fission(nuc) - end if - - end associate - - end subroutine read_multipole_data - -!=============================================================================== -! READ_ESZ - reads through the ESZ block. This block contains the energy grid, -! total xs, absorption xs, elastic scattering xs, and heating numbers. -!=============================================================================== - - subroutine read_esz(nuc, data_0K) - type(Nuclide), 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 - integer :: i ! index in 0K elastic xs array for this nuclide - - real(8) :: xs_cdf_sum = ZERO ! xs cdf value - - ! determine number of energy points - NE = NXS(3) - - ! allocate storage for energy grid and cross section arrays - - ! read in 0K data if we've already read in non-0K data - if (data_0K) then - nuc % n_grid_0K = NE - allocate(nuc % energy_0K(NE)) - allocate(nuc % elastic_0K(NE)) - allocate(nuc % xs_cdf(NE)) - nuc % elastic_0K = ZERO - nuc % xs_cdf = ZERO - XSS_index = 1 - nuc % energy_0K = get_real(NE) - - ! Skip total and absorption - XSS_index = XSS_index + 2*NE - - ! Continue reading elastic scattering and heating - nuc % elastic_0K = get_real(NE) - - do i = 1, nuc % n_grid_0K - 1 - - ! Negative cross sections result in a CDF that is not monotonically - ! increasing. Set all negative xs values to ZERO. - if (nuc % elastic_0K(i) < ZERO) nuc % elastic_0K(i) = ZERO - - ! build xs cdf - xs_cdf_sum = xs_cdf_sum & - + (sqrt(nuc % energy_0K(i)) * nuc % elastic_0K(i) & - + sqrt(nuc % energy_0K(i+1)) * nuc % elastic_0K(i+1)) / TWO & - * (nuc % energy_0K(i+1) - nuc % energy_0K(i)) - nuc % xs_cdf(i) = xs_cdf_sum - end do - - else ! read in non-0K data - nuc % n_grid = NE - allocate(nuc % energy(NE)) - allocate(nuc % total(NE)) - allocate(nuc % elastic(NE)) - allocate(nuc % fission(NE)) - allocate(nuc % nu_fission(NE)) - allocate(nuc % absorption(NE)) - - ! initialize cross sections - nuc % total = ZERO - nuc % elastic = ZERO - nuc % fission = ZERO - nuc % nu_fission = ZERO - nuc % absorption = ZERO - - ! Read data from XSS -- only the energy grid, elastic scattering and heating - ! cross section values are actually read from here. The total and absorption - ! cross sections are reconstructed from the partial reaction data. - - XSS_index = 1 - nuc % energy = get_real(NE) - - ! Skip total and absorption - XSS_index = XSS_index + 2*NE - - ! Continue reading elastic scattering and heating - nuc % elastic = get_real(NE) - - ! Determine if minimum/maximum energy for this nuclide is greater/less - ! than the previous - energy_min_neutron = max(energy_min_neutron, nuc%energy(1)) - energy_max_neutron = min(energy_max_neutron, nuc%energy(NE)) - end if - - end subroutine read_esz - -!=============================================================================== -! READ_NU_DATA reads data given on the number of neutrons emitted from fission -! as a function of the incoming energy of a neutron. This data may be broken -! down into prompt and delayed neutrons emitted as well. -!=============================================================================== - - subroutine read_nu_data(nuc) - type(Nuclide), intent(inout) :: nuc - - 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 :: NR ! number of interpolation regions - integer :: NE ! number of energies - integer :: NPCR ! number of delayed neutron precursor groups - integer :: LOCC ! location of energy distributions for given MT - integer :: LAW - integer :: IDAT - real(8) :: total_group_probability - type(Tabulated1D) :: yield_delayed - type(Tabulated1D) :: group_probability - - if (JXS(2) == 0) then - ! Nuclide is not fissionable - return - end if - - ! 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 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 - - if (JXS(24) > 0) then - ! ======================================================================= - ! DELAYED NU DATA - - ! Read total yield of delayed neutrons - call yield_delayed % from_ace(XSS, JXS(24) + 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) - - ! Read probability for this precursor group - call group_probability % from_ace(XSS, idx + 1) - - ! 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 - end associate - - end subroutine read_nu_data - -!=============================================================================== -! READ_REACTIONS - Get the list of reaction MTs for this cross-section -! table. The MT values are somewhat arbitrary. Also read in Q-values, neutron -! multiplicities, and cross-sections. -!=============================================================================== - - subroutine read_reactions(nuc) - type(Nuclide), intent(inout) :: nuc - - integer :: i ! loop indices - integer :: i_fission ! index in nuc % index_fission - integer :: LMT ! index of MT list in XSS - integer :: NMT ! Number of reactions - integer :: JXS4 ! index of Q values in XSS - integer :: JXS5 ! index of neutron multiplicities in XSS - integer :: JXS7 ! index of reactions cross-sections in XSS - integer :: LXS ! location of cross-section locators - integer :: LOCA ! location of cross-section for given MT - integer :: IE ! reaction's starting index on energy grid - integer :: NE ! number of energies - real(8) :: y - type(ListInt) :: MTs - - LMT = JXS(3) - JXS4 = JXS(4) - JXS5 = JXS(5) - LXS = JXS(6) - JXS7 = JXS(7) - NMT = NXS(4) - - ! allocate array of reactions. Add one since we need to include an elastic - ! scattering channel - nuc % n_reaction = NMT + 1 - allocate(nuc % reactions(NMT+1)) - - ! Store elastic scattering cross-section on reaction one -- note that the - ! 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 - allocate(rxn % products(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)) - allocate(UncorrelatedAngleEnergy :: rxn % products(1) % distribution(1) % obj) - end associate - - ! Add contribution of elastic scattering to total cross section - nuc % total = nuc % total + nuc % elastic - - ! By default, set nuclide to not fissionable and then change if fission - ! reactions are encountered - nuc % fissionable = .false. - nuc % has_partial_fission = .false. - nuc % n_fission = 0 - i_fission = 0 - - 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 % scatter_in_cm = (nint(XSS(JXS5 + i - 1)) < 0) - - if (.not. is_fission(rxn % MT)) then - allocate(rxn % products(1)) - rxn % products(1) % particle = NEUTRON - - y = abs(nint(XSS(JXS5 + i - 1))) - if (y > 100) then - ! Read energy-dependent multiplicities - - ! 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 - end if - - ! read starting energy index - LOCA = int(XSS(LXS + i - 1)) - IE = int(XSS(JXS7 + LOCA - 1)) - rxn % threshold = IE - - ! read number of energies cross section values - NE = int(XSS(JXS7 + LOCA)) - allocate(rxn % sigma(NE)) - XSS_index = JXS7 + LOCA + 1 - rxn % sigma = get_real(NE) - end associate - end do - - ! Create set of MT values - do i = 1, size(nuc % reactions) - call MTs % append(nuc % reactions(i) % MT) - call nuc%reaction_index%add_key(nuc%reactions(i)%MT, i) - end do - - ! Create total, absorption, and fission cross sections - do i = 2, size(nuc % reactions) - associate (rxn => nuc % reactions(i)) - IE = rxn % threshold - NE = size(rxn % sigma) - - ! Skip total inelastic level scattering, gas production cross sections - ! (MT=200+), etc. - if (rxn % MT == N_LEVEL .or. rxn % MT == N_NONELASTIC) cycle - if (rxn % MT > N_5N2P .and. rxn % MT < N_P0) cycle - - ! Skip level cross sections if total is available - if (rxn % MT >= N_P0 .and. rxn % MT <= N_PC .and. MTs % contains(N_P)) cycle - if (rxn % MT >= N_D0 .and. rxn % MT <= N_DC .and. MTs % contains(N_D)) cycle - if (rxn % MT >= N_T0 .and. rxn % MT <= N_TC .and. MTs % contains(N_T)) cycle - if (rxn % MT >= N_3HE0 .and. rxn % MT <= N_3HEC .and. MTs % contains(N_3HE)) cycle - if (rxn % MT >= N_A0 .and. rxn % MT <= N_AC .and. MTs % contains(N_A)) cycle - if (rxn % MT >= N_2N0 .and. rxn % MT <= N_2NC .and. MTs % contains(N_2N)) cycle - - ! Add contribution to total cross section - nuc % total(IE:IE+NE-1) = nuc % total(IE:IE+NE-1) + rxn % sigma - - ! Add contribution to absorption cross section - if (is_disappearance(rxn % MT)) then - nuc % absorption(IE:IE+NE-1) = nuc % absorption(IE:IE+NE-1) + rxn % sigma - end if - - ! Information about fission reactions - if (rxn % MT == N_FISSION) then - allocate(nuc % index_fission(1)) - elseif (rxn % MT == N_F) then - allocate(nuc % index_fission(PARTIAL_FISSION_MAX)) - nuc % has_partial_fission = .true. - end if - - ! Add contribution to fission cross section - if (is_fission(rxn % MT)) then - nuc % fissionable = .true. - nuc % fission(IE:IE+NE-1) = nuc % fission(IE:IE+NE-1) + rxn % sigma - - ! Also need to add fission cross sections to absorption - nuc % absorption(IE:IE+NE-1) = nuc % absorption(IE:IE+NE-1) + rxn % sigma - - ! If total fission reaction is present, there's no need to store the - ! reaction cross-section since it was copied to nuc % fission - if (rxn % MT == N_FISSION) deallocate(rxn % sigma) - - ! Keep track of this reaction for easy searching later - i_fission = i_fission + 1 - nuc % index_fission(i_fission) = i - nuc % n_fission = nuc % n_fission + 1 - end if - end associate - end do - - ! Clear MTs set - call MTs % clear() - - end subroutine read_reactions - -!=============================================================================== -! READ_ANGULAR_DIST parses the angular distribution for each reaction with -! secondary neutrons -!=============================================================================== - - subroutine read_angular_dist(nuc) - type(Nuclide), intent(inout) :: nuc - - integer :: LOCB ! location of angular distribution for given MT - integer :: NE ! number of incoming energies - integer :: NP ! number of points for cosine distribution - integer :: i ! index in reactions array - integer :: j ! index over incoming energies - integer :: k ! index over energy distributions - integer :: interp - integer, allocatable :: LC(:) ! locator - - ! loop over all reactions with secondary neutrons -- NXS(5) does not include - ! elastic scattering - do i = 1, NXS(5) + 1 - associate (rxn => nuc%reactions(i)) - ! find location of angular distribution - LOCB = int(XSS(JXS(8) + i - 1)) - - ! Angular distribution given as part of a correlated angle-energy distribution - if (LOCB == -1) cycle - - ! No angular distribution data are given for this reaction, isotropic - ! scattering is assumed (in CM if TY < 0 and in LAB if TY > 0) - if (LOCB == 0) cycle - - ! Loop over each separate energy distribution. Even though there is only - ! "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) - 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(LC(NE)) - - ! read incoming energy grid and location of nucs - XSS_index = JXS(9) + LOCB - 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) - type is (Uniform) - 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) - type is (Equiprobable) - allocate(adist % x(33)) - end select - - elseif (LC(j) < 0) then - ! tabular distribution - allocate(Tabular :: aedist % angle % distribution(j) % obj) - end if - end do - - ! read angular distribution -- currently this does not actually parse the - ! angular distribution tables for each incoming energy, that must be done - ! on-the-fly - do j = 1, NE - XSS_index = JXS(9) + abs(LC(j)) - 1 - select type(adist => aedist % angle % distribution(j) % obj) - type is (Equiprobable) - adist % x(:) = get_real(33) - type is (Tabular) - ! determine interpolation and number of points - interp = nint(XSS(XSS_index)) - NP = nint(XSS(XSS_index + 1)) - - ! 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) - end select - end do - deallocate(LC) - - end select - end do - end associate - end do - - end subroutine read_angular_dist - -!=============================================================================== -! READ_ENERGY_DIST parses the secondary energy distribution for each reaction -! with seconary neutrons (except elastic scattering) -!=============================================================================== - - subroutine read_energy_dist(nuc) - type(Nuclide), intent(inout) :: nuc - - integer :: i ! loop index - integer :: n - integer :: IDAT ! locator for distribution data - integer :: LNW ! location of next energy law - integer :: LAW ! Type of energy law - - ! Loop over all reactions - do i = 1, NXS(5) - ! Determine how many energy distributions are present for this reaction - LNW = nint(XSS(JXS(10) + i - 1)) - n = 0 - do while (LNW > 0) - n = n + 1 - LNW = nint(XSS(JXS(11) + LNW - 1)) - 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)) - - LNW = nint(XSS(JXS(10) + i - 1)) - n = 0 - do while (LNW > 0) - n = n + 1 - - ! Determine energy law and location of data - LAW = nint(XSS(JXS(11) + LNW)) - IDAT = nint(XSS(JXS(11) + LNW + 1)) - - ! Read probability of law validity - 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) - - ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< - ! Before the secondary distribution refactor, when the angle/energy - ! distribution was uncorrelated, no angle was actually sampled. With - ! the refactor, an angle is always sampled for an uncorrelated - ! 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 == & - [N_FISSION, N_F, N_NF, N_2NF, N_3NF])) then - select type (aedist => p % distribution(n) % obj) - type is (UncorrelatedAngleEnergy) - aedist % fission = .true. - end select - end if - ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< - - ! Get locator for next distribution - LNW = nint(XSS(JXS(11) + LNW - 1)) - end do - end associate - end do - - end subroutine read_energy_dist - -!=============================================================================== -! GET_ENERGY_DIST reads in data for a single law for an energy distribution and -! calls itself recursively if there are multiple energy distributions for a -! single reaction -!=============================================================================== - - recursive subroutine get_energy_dist(aedist, law, LDIS, IDAT, awr, Q_value) - class(AngleEnergy), allocatable, intent(inout) :: aedist - integer, intent(in) :: law - integer, intent(in) :: LDIS - integer, intent(in) :: IDAT - real(8), intent(in) :: awr - real(8), intent(in) :: Q_value - - integer :: i, j - integer :: NR ! number of interpolation regions - integer :: NE ! number of incoming energies - integer :: NP ! number of outgoing energies/angles - integer :: interp - integer, allocatable :: L(:) ! locations of distributions for each Ein - integer, allocatable :: LC(:) ! locations of distributions for each Ein - - XSS_index = LDIS + IDAT - 1 - - if (law == 44) then - allocate(KalbachMann :: aedist) - elseif (law == 61) then - allocate(CorrelatedAngleEnergy :: aedist) - elseif (law == 66) then - allocate(NBodyPhaseSpace :: aedist) - else - allocate(UncorrelatedAngleEnergy :: aedist) - end if - - select type (aedist) - type is (UncorrelatedAngleEnergy) - ! ======================================================================== - ! UNCORRELATED ENERGY DISTRIBUTIONS - - select case (law) - case (1) - 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)) - if (NR > 0) then - call fatal_error("Multiple interpolation regions not yet supported & - &for tabular equiprobable energy distributions.") - end if - edist % n_region = NR - - ! Read incoming energies for which outgoing energies are tabulated - allocate(edist % energy_in(NE)) - XSS_index = XSS_index + 2 + 2*NR - edist % energy_in(:) = get_real(NE) - - ! Read outgoing energy tables - NP = nint(XSS(XSS_index)) - allocate(edist % energy_out(NP, NE)) - XSS_index = XSS_index + 1 - do i = 1, NE - edist % energy_out(:, i) = get_real(NP) - end do - end select - - case (3) - allocate(LevelInelastic :: aedist % energy) - select type (edist => aedist % energy) - type is (LevelInelastic) - 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) - type is (ContinuousTabular) - NR = nint(XSS(XSS_index)) - XSS_index = XSS_index + 1 - if (NR > 1) then - call fatal_error("Multiple interpolation regions not yet supported & - &for continuous tabular energy distributions.") - end if - 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) - 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(L(NE)) - edist % energy(:) = get_real(NE) - L(:) = get_int(NE) - - ! Read outgoing energy tables - 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 - - ! check for discrete lines present - 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)) - - ! 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) - end do - - deallocate(L) - end select - - case (7) - 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) - end select - - case (9) - 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) - end select - - case (11) - 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) - end select - - end select - - type is (KalbachMann) - ! ======================================================================== - ! CORRELATED KALBACH-MANN DISTRIBUTION - - NR = int(XSS(XSS_index)) - NE = int(XSS(XSS_index + 1 + 2*NR)) - if (NR > 0) then - call fatal_error("Multiple interpolation regions not yet supported & - &for Kalbach-Mann energy distributions.") - end if - aedist % n_region = NR - - ! Read incoming energies for which outgoing energies are tabulated and locators - allocate(aedist % energy(NE)) - allocate(L(NE)) - XSS_index = XSS_index + 2 + 2*NR - aedist % energy(:) = get_real(NE) - L(:) = get_int(NE) - - ! Read outgoing energy tables - 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 - - ! check for discrete lines present - 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)) - - ! 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) - end do - - deallocate(L) - - type is (CorrelatedAngleEnergy) - ! ======================================================================== - ! CORRELATED ANGLE-ENERGY DISTRIBUTION - - NR = int(XSS(XSS_index)) - NE = int(XSS(XSS_index + 1 + 2*NR)) - if (NR > 0) then - call fatal_error("Multiple interpolation regions not yet supported & - &for correlated angle-energy distributions.") - end if - aedist % n_region = NR - - ! Read incoming energies for which outgoing energies are tabulated and - ! locators - allocate(aedist % energy(NE)) - allocate(L(NE)) - XSS_index = XSS_index + 2 + 2*NR - aedist % energy(:) = get_real(NE) - L(:) = get_int(NE) - - ! Read outgoing energy tables - 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 - - ! check for discrete lines present - 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(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) - LC(:) = get_int(NP) - - ! allocate angular distributions for each incoming/outgoing energy - 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) - type is (Uniform) - adist % a = -ONE - adist % b = ONE - end select - - elseif (LC(j) > 0) then - ! tabular distribution - 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) - type is (Tabular) - ! determine interpolation and number of points - interp = nint(XSS(XSS_index)) - NP = nint(XSS(XSS_index + 1)) - - ! 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) - end select - end do - deallocate(LC) - - 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 - -!=============================================================================== -! READ_UNR_RES reads in unresolved resonance probability tables if present. -!=============================================================================== - - subroutine read_unr_res(nuc) - type(Nuclide), intent(inout) :: nuc - - integer :: JXS23 ! location of URR data - integer :: lc ! locator - integer :: N ! # of incident energies - integer :: M ! # of probabilities - integer :: i ! index over incoming energies - integer :: j ! index over values - integer :: k ! index over probabilities - - ! determine locator for URR data - JXS23 = JXS(23) - - ! check if URR data is present - if (JXS23 /= 0) then - nuc % urr_present = .true. - allocate(nuc % urr_data) - lc = JXS23 - else - nuc % urr_present = .false. - return - end if - - ! read parameters - nuc % urr_data % n_energy = int(XSS(lc)) - nuc % urr_data % n_prob = int(XSS(lc + 1)) - nuc % urr_data % interp = int(XSS(lc + 2)) - nuc % urr_data % inelastic_flag = int(XSS(lc + 3)) - nuc % urr_data % absorption_flag = int(XSS(lc + 4)) - if (int(XSS(lc + 5)) == 0) then - nuc % urr_data % multiply_smooth = .false. - else - nuc % urr_data % multiply_smooth = .true. - end if - - ! if the inelastic competition flag indicates that the inelastic cross - ! section should be determined from a normal reaction cross section, we need - ! to set up a pointer to that reaction - nuc % urr_inelastic = NONE - if (nuc % urr_data % inelastic_flag > 0) then - do i = 1, nuc % n_reaction - if (nuc % reactions(i) % MT == nuc % urr_data % inelastic_flag) then - nuc % urr_inelastic = i - end if - end do - - ! Abort if no corresponding inelastic reaction was found - if (nuc % urr_inelastic == NONE) then - call fatal_error("Could not find inelastic reaction specified on & - &unresolved resonance probability table.") - end if - end if - - ! allocate incident energies and probability tables - N = nuc % urr_data % n_energy - M = nuc % urr_data % n_prob - allocate(nuc % urr_data % energy(N)) - allocate(nuc % urr_data % prob(N,6,M)) - - ! read incident energies - XSS_index = lc + 6 - nuc % urr_data % energy = get_real(N) - - ! read probability tables - do i = 1, N - do j = 1, 6 - do k = 1, M - nuc % urr_data % prob(i,j,k) = XSS(XSS_index) - XSS_index = XSS_index + 1 - end do - end do - end do - - ! Check for negative values - if (any(nuc % urr_data % prob < ZERO)) then - if (master) call warning("Negative value(s) found on probability table & - &for nuclide " // nuc % name) - 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 -! be called during cross section lookups. -!=============================================================================== - - subroutine generate_nu_fission(nuc) - type(Nuclide), intent(inout) :: nuc - - integer :: i ! index on nuclide energy grid - - 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 - -!=============================================================================== -! READ_THERMAL_DATA reads elastic and inelastic cross sections and corresponding -! secondary energy/angle distributions derived from experimental S(a,b) -! data. Namely, this routine reads the ITIE, ITCE, ITXE, and ITCA blocks. -!=============================================================================== - - subroutine read_thermal_data(table) - type(SAlphaBeta), intent(inout) :: table - - integer :: i ! index for incoming energies - integer :: j ! index for outgoing energies - integer :: k ! index for outoging angles - integer :: lc ! location in XSS array - integer :: NE_in ! number of incoming energies - integer :: NE_out ! number of outgoing energies - integer :: NMU ! number of outgoing angles - integer :: JXS4 ! location of elastic energy table - integer(8), allocatable :: LOCC(:) ! Location of inelastic data - - ! read secondary energy mode for inelastic scattering - table % secondary_mode = NXS(7) - - ! read number of inelastic energies and allocate arrays - NE_in = int(XSS(JXS(1))) - table % n_inelastic_e_in = NE_in - allocate(table % inelastic_e_in(NE_in)) - allocate(table % inelastic_sigma(NE_in)) - - ! read inelastic energies and cross-sections - XSS_index = JXS(1) + 1 - table % inelastic_e_in = get_real(NE_in) - table % inelastic_sigma = get_real(NE_in) - - ! set threshold value - table % threshold_inelastic = table % inelastic_e_in(NE_in) - - ! allocate space for outgoing energy/angle for inelastic - ! scattering - if (table % secondary_mode == SAB_SECONDARY_EQUAL .or. & - table % secondary_mode == SAB_SECONDARY_SKEWED) then - NMU = NXS(3) + 1 - table % n_inelastic_mu = NMU - NE_out = NXS(4) - table % n_inelastic_e_out = NE_out - allocate(table % inelastic_e_out(NE_out, NE_in)) - allocate(table % inelastic_mu(NMU, NE_out, NE_in)) - else if (table % secondary_mode == SAB_SECONDARY_CONT) then - NMU = NXS(3) - 1 - table % n_inelastic_mu = NMU - allocate(table % inelastic_data(NE_in)) - allocate(LOCC(NE_in)) - ! NE_out will be determined later - end if - - ! read outgoing energy/angle distribution for inelastic scattering - if (table % secondary_mode == SAB_SECONDARY_EQUAL .or. & - table % secondary_mode == SAB_SECONDARY_SKEWED) then - lc = JXS(3) - 1 - do i = 1, NE_in - do j = 1, NE_out - ! read outgoing energy - table % inelastic_e_out(j,i) = XSS(lc + 1) - - ! read outgoing angles for this outgoing energy - do k = 1, NMU - table % inelastic_mu(k,j,i) = XSS(lc + 1 + k) - end do - - ! advance pointer - lc = lc + 1 + NMU - end do - end do - else if (table % secondary_mode == SAB_SECONDARY_CONT) then - ! Get the location pointers to each Ein's DistEnergySAB data - LOCC = get_int(NE_in) - ! Get the number of outgoing energies and allocate space accordingly - do i = 1, NE_in - NE_out = int(XSS(XSS_index + i - 1)) - table % inelastic_data(i) % n_e_out = NE_out - allocate(table % inelastic_data(i) % e_out (NE_out)) - allocate(table % inelastic_data(i) % e_out_pdf (NE_out)) - allocate(table % inelastic_data(i) % e_out_cdf (NE_out)) - allocate(table % inelastic_data(i) % mu (NMU, NE_out)) - end do - - ! Now we can fill the inelastic_data(i) attributes - do i = 1, NE_in - XSS_index = int(LOCC(i)) - NE_out = table % inelastic_data(i) % n_e_out - do j = 1, NE_out - table % inelastic_data(i) % e_out(j) = XSS(XSS_index + 1) - table % inelastic_data(i) % e_out_pdf(j) = XSS(XSS_index + 2) - table % inelastic_data(i) % e_out_cdf(j) = XSS(XSS_index + 3) - table % inelastic_data(i) % mu(:, j) = & - XSS(XSS_index + 4: XSS_index + 4 + NMU - 1) - XSS_index = XSS_index + 4 + NMU - 1 - end do - end do - end if - - ! read number of elastic energies and allocate arrays - JXS4 = JXS(4) - if (JXS4 /= 0) then - NE_in = int(XSS(JXS4)) - table % n_elastic_e_in = NE_in - allocate(table % elastic_e_in(NE_in)) - allocate(table % elastic_P(NE_in)) - - ! read elastic energies and P - XSS_index = JXS4 + 1 - table % elastic_e_in = get_real(NE_in) - table % elastic_P = get_real(NE_in) - - ! set threshold - table % threshold_elastic = table % elastic_e_in(NE_in) - - ! determine whether sigma=P or sigma = P/E - table % elastic_mode = NXS(5) - else - table % threshold_elastic = ZERO - table % n_elastic_e_in = 0 - end if - - ! allocate space for outgoing energy/angle for elastic scattering - NMU = NXS(6) + 1 - table % n_elastic_mu = NMU - if (NMU > 0) then - allocate(table % elastic_mu(NMU, NE_in)) - end if - - ! read equiprobable outgoing cosines for elastic scattering each - ! incoming energy - if (JXS4 /= 0 .and. NMU /= 0) then - lc = JXS(6) - 1 - do i = 1, NE_in - do j = 1, NMU - table % elastic_mu(j,i) = XSS(lc + j) - end do - lc = lc + NMU - end do - end if - - end subroutine read_thermal_data - -!=============================================================================== -! GET_INT returns an array of integers read from the current position in the XSS -! array -!=============================================================================== - - function get_int(n_values) result(array) - - integer, intent(in) :: n_values ! number of values to read - integer :: array(n_values) ! array of values - - array = int(XSS(XSS_index:XSS_index + n_values - 1)) - XSS_index = XSS_index + n_values - - end function get_int - -!=============================================================================== -! GET_REAL returns an array of real(8)s read from the current position in the -! XSS array -!=============================================================================== - - function get_real(n_values) result(array) - - integer, intent(in) :: n_values ! number of values to read - real(8) :: array(n_values) ! array of values - - array = XSS(XSS_index:XSS_index + n_values - 1) - XSS_index = XSS_index + n_values - - end function get_real - -end module ace diff --git a/src/angle_distribution.F90 b/src/angle_distribution.F90 index 282d51b73b..830ba836ca 100644 --- a/src/angle_distribution.F90 +++ b/src/angle_distribution.F90 @@ -1,7 +1,10 @@ module angle_distribution - use constants, only: ZERO, ONE - use distribution_univariate, only: DistributionContainer + use constants, only: ZERO, ONE, HISTOGRAM, LINEAR_LINEAR + use distribution_univariate, only: DistributionContainer, Tabular + use hdf5, only: HID_T, HSIZE_T + use hdf5_interface, only: read_attribute, get_shape, read_dataset, & + open_dataset, close_dataset use random_lcg, only: prn use search, only: binary_search @@ -21,6 +24,7 @@ module angle_distribution type(DistributionContainer), allocatable :: distribution(:) contains procedure :: sample => angle_sample + procedure :: from_hdf5 => angle_from_hdf5 end type AngleDistribution contains @@ -60,4 +64,68 @@ contains if (abs(mu) > ONE) mu = sign(ONE, mu) end function angle_sample + subroutine angle_from_hdf5(this, group_id) + class(AngleDistribution), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer :: i, j + integer :: n + integer :: n_energy + integer(HID_T) :: dset_id + integer(HSIZE_T) :: dims(1), dims2(2) + integer, allocatable :: offsets(:) + integer, allocatable :: interp(:) + real(8), allocatable :: temp(:,:) + + ! Get incoming energies + dset_id = open_dataset(group_id, 'energy') + call get_shape(dset_id, dims) + n_energy = int(dims(1), 4) + allocate(this%energy(n_energy)) + allocate(this%distribution(n_energy)) + call read_dataset(this%energy, dset_id) + call close_dataset(dset_id) + + ! Get outgoing energy distribution data + dset_id = open_dataset(group_id, 'mu') + call read_attribute(offsets, dset_id, 'offsets') + call read_attribute(interp, dset_id, 'interpolation') + call get_shape(dset_id, dims2) + allocate(temp(dims2(1), dims2(2))) + call read_dataset(temp, dset_id) + call close_dataset(dset_id) + + do i = 1, n_energy + ! Determine number of outgoing energies + j = offsets(i) + if (i < n_energy) then + n = offsets(i+1) - j + else + n = size(temp, 1) - j + end if + + ! Create and initialize tabular distribution + allocate(Tabular :: this%distribution(i)%obj) + select type (mudist => this%distribution(i)%obj) + type is (Tabular) + mudist % interpolation = interp(i) + allocate(mudist % x(n), mudist % p(n), mudist % c(n)) + mudist % x(:) = temp(j+1:j+n, 1) + mudist % p(:) = temp(j+1:j+n, 2) + + ! To get answers that match ACE data, for now we still use the tabulated + ! CDF values that were passed through to the HDF5 library. At a later + ! time, we can remove the CDF values from the HDF5 library and + ! reconstruct them using the PDF + if (.true.) then + mudist % c(:) = temp(j+1:j+n, 3) + else + call mudist % initialize(temp(j+1:j+n, 1), temp(j+1:j+n, 2), interp(i)) + end if + end select + + j = j + n + end do + end subroutine angle_from_hdf5 + end module angle_distribution diff --git a/src/angleenergy_header.F90 b/src/angleenergy_header.F90 index 483bad856c..60d5443c46 100644 --- a/src/angleenergy_header.F90 +++ b/src/angleenergy_header.F90 @@ -1,5 +1,7 @@ module angleenergy_header + use hdf5, only: HID_T + !=============================================================================== ! ANGLEENERGY (abstract) defines a correlated or uncorrelated angle-energy ! distribution that is a function of incoming energy. Each derived type must @@ -10,6 +12,7 @@ module angleenergy_header type, abstract :: AngleEnergy contains procedure(angleenergy_sample_), deferred :: sample + procedure(angleenergy_from_hdf5_), deferred :: from_hdf5 end type AngleEnergy abstract interface @@ -20,6 +23,12 @@ module angleenergy_header real(8), intent(out) :: E_out real(8), intent(out) :: mu end subroutine angleenergy_sample_ + + subroutine angleenergy_from_hdf5_(this, group_id) + import AngleEnergy, HID_T + class(AngleEnergy), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + end subroutine angleenergy_from_hdf5_ end interface type :: AngleEnergyContainer diff --git a/src/constants.F90 b/src/constants.F90 index b3e5ed89b1..838830887c 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -237,6 +237,13 @@ module constants ASCII = 1, & ! ASCII cross section file BINARY = 2 ! Binary cross section file + ! Library types + integer, parameter :: & + LIBRARY_NEUTRON = 1, & + LIBRARY_THERMAL = 2, & + LIBRARY_PHOTON = 3, & + LIBRARY_MULTIGROUP = 4 + ! Probability table parameters integer, parameter :: & URR_CUM_PROB = 1, & diff --git a/src/endf_header.F90 b/src/endf_header.F90 index e9a073f4e6..8b6ad63f19 100644 --- a/src/endf_header.F90 +++ b/src/endf_header.F90 @@ -2,13 +2,16 @@ module endf_header use constants, only: ZERO, HISTOGRAM, LINEAR_LINEAR, LINEAR_LOG, & LOG_LINEAR, LOG_LOG + use hdf5_interface + use hdf5, only: HID_T, HSIZE_T use search, only: binary_search -implicit none + implicit none type, abstract :: Function1D contains procedure(function1d_evaluate_), deferred :: evaluate + procedure(function1d_from_hdf5_), deferred :: from_hdf5 end type Function1D abstract interface @@ -18,6 +21,12 @@ implicit none real(8), intent(in) :: x real(8) :: y end function function1d_evaluate_ + + subroutine function1d_from_hdf5_(this, dset_id) + import Function1D, HID_T + class(Function1D), intent(inout) :: this + integer(HID_T), intent(in) :: dset_id + end subroutine function1d_from_hdf5_ end interface !=============================================================================== @@ -27,6 +36,7 @@ implicit none type, extends(Function1D) :: Constant1D real(8) :: y contains + procedure :: from_hdf5 => constant1d_from_hdf5 procedure :: evaluate => constant1d_evaluate end type Constant1D @@ -37,6 +47,7 @@ implicit none type, extends(Function1D) :: Polynomial real(8), allocatable :: coef(:) ! coefficients contains + procedure :: from_hdf5 => polynomial_from_hdf5 procedure :: evaluate => polynomial_evaluate procedure :: from_ace => polynomial_from_ace end type Polynomial @@ -54,6 +65,7 @@ implicit none real(8), allocatable :: y(:) ! values of ordinate contains procedure :: from_ace => tabulated1d_from_ace + procedure :: from_hdf5 => tabulated1d_from_hdf5 procedure :: evaluate => tabulated1d_evaluate end type Tabulated1D @@ -63,6 +75,13 @@ contains ! Constant1D implementation !=============================================================================== + subroutine constant1d_from_hdf5(this, dset_id) + class(Constant1D), intent(inout) :: this + integer(HID_T), intent(in) :: dset_id + + call read_dataset(this % y, dset_id) + end subroutine constant1d_from_hdf5 + pure function constant1d_evaluate(this, x) result(y) class(Constant1D), intent(in) :: this real(8), intent(in) :: x @@ -93,6 +112,17 @@ contains this % coef(:) = xss(idx + 1 : idx + nc) end subroutine polynomial_from_ace + subroutine polynomial_from_hdf5(this, dset_id) + class(Polynomial), intent(inout) :: this + integer(HID_T), intent(in) :: dset_id + + integer(HSIZE_T) :: dims(1) + + call get_shape(dset_id, dims) + allocate(this % coef(dims(1))) + call read_dataset(this % coef, dset_id) + end subroutine polynomial_from_hdf5 + pure function polynomial_evaluate(this, x) result(y) class(Polynomial), intent(in) :: this real(8), intent(in) :: x @@ -148,6 +178,28 @@ contains this%y(:) = xss(idx + 2*nr + 2 + ne : idx + 2*nr + 1 + 2*ne) end subroutine tabulated1d_from_ace + subroutine tabulated1d_from_hdf5(this, dset_id) + class(Tabulated1D), intent(inout) :: this + integer(HID_T), intent(in) :: dset_id + + real(8), allocatable :: xy(:,:) + integer(HSIZE_T) :: dims(2) + + call read_attribute(this%nbt, dset_id, 'breakpoints') + call read_attribute(this%int, dset_id, 'interpolation') + this%n_regions = size(this%nbt) + + call get_shape(dset_id, dims) + this%n_pairs = int(dims(1), 4) + allocate(this%x(this%n_pairs)) + allocate(this%y(this%n_pairs)) + + allocate(xy(dims(1), dims(2))) + call read_dataset(xy, dset_id) + this%x(:) = xy(:,1) + this%y(:) = xy(:,2) + end subroutine tabulated1d_from_hdf5 + pure function tabulated1d_evaluate(this, x) result(y) class(Tabulated1D), intent(in) :: this real(8), intent(in) :: x ! x value to find y at diff --git a/src/energy_distribution.F90 b/src/energy_distribution.F90 index 3a42bb73db..54ae3f90c9 100644 --- a/src/energy_distribution.F90 +++ b/src/energy_distribution.F90 @@ -1,7 +1,9 @@ module energy_distribution - use constants, only: ZERO, ONE, TWO, PI, HISTOGRAM, LINEAR_LINEAR + use constants, only: ZERO, ONE, HALF, TWO, PI, HISTOGRAM, LINEAR_LINEAR use endf_header, only: Tabulated1D + use hdf5_interface + use hdf5 use math, only: maxwell_spectrum, watt_spectrum use random_lcg, only: prn use search, only: binary_search @@ -16,6 +18,7 @@ module energy_distribution type, abstract :: EnergyDistribution contains procedure(energy_distribution_sample_), deferred :: sample + procedure(energy_distribution_from_hdf5_), deferred :: from_hdf5 end type EnergyDistribution abstract interface @@ -25,6 +28,13 @@ module energy_distribution real(8), intent(in) :: E_in real(8) :: E_out end function energy_distribution_sample_ + + subroutine energy_distribution_from_hdf5_(this, group_id) + import EnergyDistribution + import HID_T + class(EnergyDistribution), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + end subroutine energy_distribution_from_hdf5_ end interface type :: EnergyDistributionContainer @@ -50,8 +60,23 @@ module energy_distribution ! each incoming energy contains procedure :: sample => equiprobable_sample + procedure :: from_hdf5 => equiprobable_from_hdf5 end type TabularEquiprobable +!=============================================================================== +! DISCRETEPHOTON gives the energy distribution for a discrete photon (usually +! used for photon production from an incident-neutron reaction) +!=============================================================================== + + type, extends(EnergyDistribution) :: DiscretePhoton + integer :: primary_flag + real(8) :: energy + real(8) :: A + contains + procedure :: sample => discrete_photon_sample + procedure :: from_hdf5 => discrete_photon_from_hdf5 + end type DiscretePhoton + !=============================================================================== ! LEVELINELASTIC gives the energy distribution for level inelastic scattering by ! neutrons as in ENDF MT=51--90. @@ -62,6 +87,7 @@ module energy_distribution real(8) :: mass_ratio contains procedure :: sample => level_inelastic_sample + procedure :: from_hdf5 => level_inelastic_from_hdf5 end type LevelInelastic !=============================================================================== @@ -86,6 +112,7 @@ module energy_distribution type(CTTable), allocatable :: distribution(:) contains procedure :: sample => continuous_sample + procedure :: from_hdf5 => continuous_from_hdf5 end type ContinuousTabular !=============================================================================== @@ -98,6 +125,7 @@ module energy_distribution real(8) :: u ! restriction energy contains procedure :: sample => maxwellenergy_sample + procedure :: from_hdf5 => maxwellenergy_from_hdf5 end type MaxwellEnergy !=============================================================================== @@ -110,6 +138,7 @@ module energy_distribution real(8) :: u contains procedure :: sample => evaporation_sample + procedure :: from_hdf5 => evaporation_from_hdf5 end type Evaporation !=============================================================================== @@ -123,6 +152,7 @@ module energy_distribution real(8) :: u contains procedure :: sample => watt_sample + procedure :: from_hdf5 => watt_from_hdf5 end type WattEnergy contains @@ -186,6 +216,31 @@ contains end if end function equiprobable_sample + subroutine equiprobable_from_hdf5(this, group_id) + class(TabularEquiprobable), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + end subroutine equiprobable_from_hdf5 + + function discrete_photon_sample(this, E_in) result(E_out) + class(DiscretePhoton), intent(in) :: this + real(8), intent(in) :: E_in + real(8) :: E_out + + if (this % primary_flag == 2) then + E_out = this % energy + this % A/(this % A + 1)*E_in + else + E_out = this % energy + end if + end function discrete_photon_sample + + subroutine discrete_photon_from_hdf5(this, group_id) + class(DiscretePhoton), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + call read_attribute(this % primary_flag, group_id, 'primary_flag') + call read_attribute(this % energy, group_id, 'energy') + call read_attribute(this % A, group_id, 'atomic_weight_ratio') + end subroutine discrete_photon_from_hdf5 function level_inelastic_sample(this, E_in) result(E_out) class(LevelInelastic), intent(in) :: this @@ -195,6 +250,13 @@ contains E_out = this%mass_ratio*(E_in - this%threshold) end function level_inelastic_sample + subroutine level_inelastic_from_hdf5(this, group_id) + class(LevelInelastic), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + call read_attribute(this%threshold, group_id, 'threshold') + call read_attribute(this%mass_ratio, group_id, 'mass_ratio') + end subroutine level_inelastic_from_hdf5 function continuous_sample(this, E_in) result(E_out) class(ContinuousTabular), intent(in) :: this @@ -307,6 +369,111 @@ contains end if end function continuous_sample + subroutine continuous_from_hdf5(this, group_id) + class(ContinuousTabular), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer :: i, j, k + integer :: n + integer :: n_energy + integer(HID_T) :: dset_id + integer(HSIZE_T) :: dims(1), dims2(2) + integer, allocatable :: temp(:,:) + integer, allocatable :: offsets(:) + integer, allocatable :: interp(:) + integer, allocatable :: n_discrete(:) + real(8), allocatable :: eout(:,:) + + ! Open incoming energy dataset + dset_id = open_dataset(group_id, 'energy') + + ! Get interpolation parameters + call read_attribute(temp, dset_id, 'interpolation') + allocate(this%breakpoints(size(temp, 1))) + allocate(this%interpolation(size(temp, 1))) + this%breakpoints(:) = temp(:, 1) + this%interpolation(:) = temp(:, 2) + this%n_region = size(this%breakpoints) + + ! Get incoming energies + call get_shape(dset_id, dims) + n_energy = int(dims(1), 4) + allocate(this%energy(n_energy)) + allocate(this%distribution(n_energy)) + call read_dataset(this%energy, dset_id) + call close_dataset(dset_id) + + ! Get outgoing energy distribution data + dset_id = open_dataset(group_id, 'distribution') + call read_attribute(offsets, dset_id, 'offsets') + call read_attribute(interp, dset_id, 'interpolation') + call read_attribute(n_discrete, dset_id, 'n_discrete_lines') + call get_shape(dset_id, dims2) + allocate(eout(dims2(1), dims2(2))) + call read_dataset(eout, dset_id) + call close_dataset(dset_id) + + do i = 1, n_energy + ! Determine number of outgoing energies + j = offsets(i) + if (i < n_energy) then + n = offsets(i+1) - j + else + n = size(eout, 1) - j + end if + + associate (d => this % distribution(i)) + ! Assign interpolation scheme and number of discrete lines + d % interpolation = interp(i) + d % n_discrete = n_discrete(i) + + ! Allocate arrays for energies and PDF/CDF + allocate(d % e_out(n)) + allocate(d % p(n)) + allocate(d % c(n)) + + ! Copy data + d % e_out(:) = eout(j+1:j+n, 1) + d % p(:) = eout(j+1:j+n, 2) + + ! To get answers that match ACE data, for now we still use the tabulated + ! CDF values that were passed through to the HDF5 library. At a later + ! time, we can remove the CDF values from the HDF5 library and + ! reconstruct them using the PDF + if (.true.) then + d % c(:) = eout(j+1:j+n, 3) + else + ! Calculate cumulative distribution function -- discrete portion + do k = 1, n_discrete(i) + if (k == 1) then + d % c(k) = d % p(k) + else + d % c(k) = d % c(k-1) + d % p(k) + end if + end do + + ! Continuous portion + do k = d % n_discrete + 1, n + if (k == d % n_discrete + 1) then + d % c(k) = sum(d % p(1:d % n_discrete)) + else + if (d % interpolation == HISTOGRAM) then + d % c(k) = d % c(k-1) + d % p(k-1) * & + (d % e_out(k) - d % e_out(k-1)) + elseif (d % interpolation == LINEAR_LINEAR) then + d % c(k) = d % c(k-1) + HALF*(d % p(k-1) + d % p(k)) * & + (d % e_out(k) - d % e_out(k-1)) + end if + end if + end do + + ! Normalize density and distribution functions + d % p(:) = d % p(:)/d % c(n) + d % c(:) = d % c(:)/d % c(n) + end if + end associate + end do + end subroutine continuous_from_hdf5 function maxwellenergy_sample(this, E_in) result(E_out) class(MaxwellEnergy), intent(in) :: this @@ -327,6 +494,18 @@ contains end do end function maxwellenergy_sample + subroutine maxwellenergy_from_hdf5(this, group_id) + class(MaxwellEnergy), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer(HID_T) :: dset_id + + call read_attribute(this%u, group_id, 'u') + dset_id = open_dataset(group_id, 'theta') + call this%theta%from_hdf5(dset_id) + call close_dataset(dset_id) + end subroutine maxwellenergy_from_hdf5 + function evaporation_sample(this, E_in) result(E_out) class(Evaporation), intent(in) :: this real(8), intent(in) :: E_in ! incoming energy @@ -351,6 +530,18 @@ contains E_out = x*theta end function evaporation_sample + subroutine evaporation_from_hdf5(this, group_id) + class(Evaporation), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer(HID_T) :: dset_id + + call read_attribute(this%u, group_id, 'u') + dset_id = open_dataset(group_id, 'theta') + call this%theta%from_hdf5(dset_id) + call close_dataset(dset_id) + end subroutine evaporation_from_hdf5 + function watt_sample(this, E_in) result(E_out) class(WattEnergy), intent(in) :: this real(8), intent(in) :: E_in ! incoming energy @@ -373,4 +564,21 @@ contains end do end function watt_sample + subroutine watt_from_hdf5(this, group_id) + class(WattEnergy), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer(HID_T) :: dset_id + + call read_attribute(this%u, group_id, 'u') + + dset_id = open_dataset(group_id, 'a') + call this%a%from_hdf5(dset_id) + call close_dataset(dset_id) + + dset_id = open_dataset(group_id, 'b') + call this%b%from_hdf5(dset_id) + call close_dataset(dset_id) + end subroutine watt_from_hdf5 + end module energy_distribution diff --git a/src/global.F90 b/src/global.F90 index 357887199e..1b1e5632a4 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -65,11 +65,7 @@ module global ! ============================================================================ ! 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 ! Cross section caches type(NuclideMicroXS), allocatable :: micro_xs(:) ! Cache for each nuclide @@ -77,7 +73,6 @@ module global ! Dictionaries to look up cross sections and listings type(DictCharInt) :: nuclide_dict - type(DictCharInt) :: xs_listing_dict ! Default xs identifier (e.g. 70c or 300K) character(5):: default_xs @@ -107,7 +102,8 @@ module global ! Whether or not windowed multipole cross sections should be used. logical :: multipole_active = .false. - ! Total amount of nuclide ZAID and dictionary of nuclide ZAID and index + ! Total amount of nuclide ZAID and dictionary of nuclide ZAID and index -- + ! this is used when sampling unresolved resonance probability tables integer(8) :: n_nuc_zaid_total type(DictIntInt) :: nuc_zaid_dict @@ -498,7 +494,6 @@ contains end if if (allocated(sab_tables)) deallocate(sab_tables) - if (allocated(xs_listings)) deallocate(xs_listings) if (allocated(micro_xs)) deallocate(micro_xs) ! Deallocate external source @@ -553,7 +548,6 @@ contains call plot_dict % clear() call nuclide_dict % clear() call sab_dict % clear() - call xs_listing_dict % clear() ! Clear statepoint and sourcepoint batch set call statepoint_batch % clear() diff --git a/src/initialize.F90 b/src/initialize.F90 index 48b3ee61a9..37eeb1f3e5 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -1,6 +1,5 @@ module initialize - use ace, only: read_ace_xs use bank_header, only: Bank use constants use dict_header, only: DictIntInt, ElemKeyValueII @@ -109,19 +108,6 @@ contains end if if (run_mode /= MODE_PLOTTING) then - ! With the AWRs from the xs_listings, change all material specifications - ! so that they contain atom percents summing to 1 - call normalize_ao() - - ! Read ACE-format cross sections - call time_read_xs%start() - if (run_CE) then - call read_ace_xs() - else - call read_mgxs() - end if - call time_read_xs%stop() - ! Construct information needed for nuclear data if (run_CE) then ! Set undefined cell temperatures to match the material data. @@ -140,7 +126,10 @@ contains end select else ! Create material macroscopic data for MGXS + call time_read_xs%start() + call read_mgxs() call create_macro_xs() + call time_read_xs%stop() end if ! Allocate and setup tally stride, matching_bins, and tally maps @@ -800,71 +789,6 @@ contains end subroutine adjust_indices -!=============================================================================== -! NORMALIZE_AO normalizes the atom or weight percentages for each material -!=============================================================================== - - subroutine normalize_ao() - - integer :: index_list ! index in xs_listings array - integer :: i ! index in materials array - integer :: j ! index over nuclides in material - real(8) :: sum_percent ! summation - real(8) :: awr ! atomic weight ratio - real(8) :: x ! atom percent - logical :: percent_in_atom ! nuclides specified in atom percent? - logical :: density_in_atom ! density specified in atom/b-cm? - type(Material), pointer :: mat => null() - - ! first find the index in the xs_listings array for each nuclide in each - ! material - do i = 1, n_materials - mat => materials(i) - - percent_in_atom = (mat%atom_density(1) > ZERO) - density_in_atom = (mat%density > ZERO) - - sum_percent = ZERO - do j = 1, mat%n_nuclides - ! determine atomic weight ratio - index_list = xs_listing_dict%get_key(mat%names(j)) - awr = xs_listings(index_list)%awr - - ! if given weight percent, convert all values so that they are divided - ! by awr. thus, when a sum is done over the values, it's actually - ! sum(w/awr) - if (.not. percent_in_atom) then - mat%atom_density(j) = -mat%atom_density(j) / awr - end if - end do - - ! determine normalized atom percents. if given atom percents, this is - ! straightforward. if given weight percents, the value is w/awr and is - ! divided by sum(w/awr) - sum_percent = sum(mat%atom_density) - mat%atom_density = mat%atom_density / sum_percent - - ! Change density in g/cm^3 to atom/b-cm. Since all values are now in atom - ! percent, the sum needs to be re-evaluated as 1/sum(x*awr) - if (.not. density_in_atom) then - sum_percent = ZERO - do j = 1, mat%n_nuclides - index_list = xs_listing_dict%get_key(mat%names(j)) - awr = xs_listings(index_list)%awr - x = mat%atom_density(j) - sum_percent = sum_percent + x*awr - end do - sum_percent = ONE / sum_percent - mat%density = -mat%density * N_AVOGADRO & - / MASS_NEUTRON * sum_percent - end if - - ! Calculate nuclide atom densities - mat%atom_density = mat%density * mat%atom_density - end do - - end subroutine normalize_ao - !=============================================================================== ! CALCULATE_WORK determines how many particles each processor should simulate !=============================================================================== diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 3c6143e5a0..0fc96ef4b1 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -12,17 +12,22 @@ module input_xml use global use list_header, only: ListChar, ListInt, ListReal use mesh_header, only: RegularMesh + use multipole, only: multipole_read use output, only: write_message use plot_header use random_lcg, only: prn, seed use surface_header - use stl_vector, only: VectorInt - use string, only: str_to_int, str_to_real, tokenize, & - to_lower, to_str, starts_with, ends_with + use set_header, only: SetChar + use stl_vector, only: VectorInt, VectorReal, VectorChar + use string, only: to_lower, to_str, str_to_int, str_to_real, & + starts_with, ends_with, tokenize, split_string use tally_header, only: TallyObject, TallyFilter use tally_initialize, only: add_tallies use xml_interface + use hdf5 + use hdf5_interface + implicit none save @@ -39,15 +44,8 @@ contains subroutine read_input_xml() call read_settings_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_materials() call read_tallies_xml() if (cmfd_run) call configure_cmfd() @@ -127,46 +125,42 @@ contains ! 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("OPENMC_CROSS_SECTIONS", env_variable) + if (.not. check_for_node(doc, "cross_sections")) then + ! No cross_sections.xml file specified in settings.xml, check + ! environment variable + if (run_CE) then + call get_environment_variable("OPENMC_CROSS_SECTIONS", env_variable) + if (len_trim(env_variable) == 0) then + call get_environment_variable("CROSS_SECTIONS", env_variable) if (len_trim(env_variable) == 0) 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 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 - call fatal_error("No mgxs.xml file was specified in & - &settings.xml or in the OPENMC_MG_CROSS_SECTIONS environment & + 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 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.") + &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 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_node_value(doc, "cross_sections", path_cross_sections) + call get_environment_variable("OPENMC_MG_CROSS_SECTIONS", env_variable) + if (len_trim(env_variable) == 0) then + call fatal_error("No mgxs.xml file was specified in & + &settings.xml or in the OPENMC_MG_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 end if + else + call get_node_value(doc, "cross_sections", path_cross_sections) end if ! Find the windowed multipole library @@ -2060,7 +2054,55 @@ contains ! for errors and placing properly-formatted data in the right data structures !=============================================================================== - subroutine read_materials_xml() + subroutine read_materials() + integer :: i, j + type(DictCharInt) :: library_dict + type(Library), allocatable :: libraries(:) + + if (run_CE) then + call read_ce_cross_sections_xml(libraries) + else + call read_mg_cross_sections_xml(libraries) + end if + + ! Creating dictionary that maps the name of the material to the entry + do i = 1, size(libraries) + do j = 1, size(libraries(i) % materials) + call library_dict % add_key(to_lower(libraries(i) % materials(j)), i) + end do + end do + + ! Check that 0K nuclides are listed in the cross_sections.xml file + if (allocated(nuclides_0K)) then + do i = 1, size(nuclides_0K) + if (.not. library_dict % has_key(to_lower(nuclides_0K(i) % name_0K))) then + call fatal_error("Could not find resonant scatterer " & + // trim(nuclides_0K(i) % name_0K) & + // " in cross_sections.xml file!") + end if + end do + end if + + ! Parse data from materials.xml + call read_materials_xml(libraries, library_dict) + + ! Read continuous-energy cross sections + if (run_CE) then + call time_read_xs%start() + call read_ce_cross_sections(libraries, library_dict) + call time_read_xs%stop() + end if + + ! Normalize atom/weight percents + call normalize_ao() + + ! Clear dictionary + call library_dict % clear() + end subroutine read_materials + + subroutine read_materials_xml(libraries, library_dict) + type(Library), intent(in) :: libraries(:) + type(DictCharInt), intent(inout) :: library_dict integer :: i ! loop index for materials integer :: j ! loop index for nuclides @@ -2068,23 +2110,20 @@ contains 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 :: i_library ! index in libraries 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(20) :: name ! name of isotope, e.g. 92235.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 - type(ListChar) :: list_names ! temporary list of nuclide names - type(ListReal) :: list_density ! temporary list of nuclide densities - type(ListInt) :: list_iso_lab ! temporary list of isotropic lab scatterers + type(VectorChar) :: names ! temporary list of nuclide names + type(VectorReal) :: densities ! temporary list of nuclide densities + type(VectorInt) :: list_iso_lab ! temporary list of isotropic lab scatterers type(Material), pointer :: mat => null() type(Node), pointer :: doc => null() type(Node), pointer :: node_mat => null() @@ -2128,7 +2167,6 @@ 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 @@ -2153,13 +2191,6 @@ 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 - ! add to the dictionary and skip xs processing - call material_dict % add_key(mat % id, i) - cycle end if ! ======================================================================= @@ -2277,12 +2308,12 @@ contains name = to_lower(name) ! save name and density to list - call list_names % append(name) + call names % push_back(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) + call densities % push_back(ONE) else call fatal_error("Units can only be macro for macroscopic data " & // trim(name)) @@ -2318,15 +2349,15 @@ contains 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) + call list_iso_lab % push_back(1) else if (adjustl(to_lower(temp_str)) == "data") then - call list_iso_lab % append(0) + call list_iso_lab % push_back(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) + call list_iso_lab % push_back(0) end if end if @@ -2335,15 +2366,14 @@ contains 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) + call names % push_back(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) + call densities % push_back(ONE) else if (.not. check_for_node(node_nuc, "ao") .and. & .not. check_for_node(node_nuc, "wo")) then @@ -2358,10 +2388,10 @@ contains ! 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) + call densities % push_back(temp_dble) else call get_node_value(node_nuc, "wo", temp_dble) - call list_density % append(-temp_dble) + call densities % push_back(-temp_dble) end if end if end do INDIVIDUAL_NUCLIDES @@ -2408,20 +2438,20 @@ contains end if ! Get current number of nuclides - n_nuc_ele = list_names % size() + n_nuc_ele = names % size() ! Expand element into naturally-occurring isotopes if (check_for_node(node_ele, "ao")) then call get_node_value(node_ele, "ao", temp_dble) - call expand_natural_element(name, temp_str, temp_dble, & - list_names, list_density) + call expand_natural_element(name, temp_str, temp_dble, names, & + densities) else call fatal_error("The ability to expand a natural element based on & &weight percentage is not yet supported.") end if ! Compute number of new nuclides from the natural element expansion - n_nuc_ele = list_names % size() - n_nuc_ele + n_nuc_ele = names % size() - n_nuc_ele ! Check enforced isotropic lab scattering if (run_CE) then @@ -2434,9 +2464,9 @@ contains ! 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) + call list_iso_lab % push_back(1) else if (adjustl(to_lower(temp_str)) == "data") then - call list_iso_lab % append(0) + call list_iso_lab % push_back(0) else call fatal_error("Scattering must be isotropic in lab or follow& & the ACE file data") @@ -2450,7 +2480,7 @@ contains ! COPY NUCLIDES TO ARRAYS IN MATERIAL ! allocate arrays in Material object - n = list_names % size() + n = names % size() mat % n_nuclides = n allocate(mat % names(n)) allocate(mat % nuclide(n)) @@ -2459,27 +2489,21 @@ contains ALL_NUCLIDES: do j = 1, mat % n_nuclides ! Check that this nuclide is listed in the cross_sections.xml file - name = trim(list_names % get_item(j)) - if (.not. xs_listing_dict % has_key(to_lower(name))) then + name = trim(names % data(j)) + if (.not. library_dict % has_key(to_lower(name))) then call fatal_error("Could not find nuclide " // trim(name) & // " in cross_sections data file!") end if + i_library = library_dict % get_key(to_lower(name)) 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 + if (libraries(i_library) % type /= LIBRARY_NEUTRON) 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 - 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 if (.not. nuclide_dict % has_key(to_lower(name))) then @@ -2487,26 +2511,21 @@ contains mat % nuclide(j) = index_nuclide call nuclide_dict % add_key(to_lower(name), index_nuclide) - call nuclide_dict % add_key(to_lower(alias), index_nuclide) else 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) + mat % atom_density(j) = densities % data(j) ! Cast integer isotropic lab scattering flag to boolean - if (list_iso_lab % get_item(j) == 1) then - mat % p0(j) = .true. - else - mat % p0(j) = .false. + if (run_CE) then + if (list_iso_lab % data(j) == 1) then + mat % p0(j) = .true. + else + mat % p0(j) = .false. + end if end if end do ALL_NUCLIDES @@ -2523,8 +2542,8 @@ contains if (sum_density) mat % density = sum(mat % atom_density) ! Clear lists - call list_names % clear() - call list_density % clear() + call names % clear() + call densities % clear() call list_iso_lab % clear() ! ======================================================================= @@ -2562,15 +2581,22 @@ contains 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 + if (.not. library_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 + i_library = library_dict % get_key(to_lower(name)) + + if (run_CE) then + ! Check to make sure cross-section is continuous energy neutron table + if (libraries(i_library) % type /= LIBRARY_THERMAL) then + call fatal_error("Cross-section table " // trim(name) & + // " is not a S(a,b) table.") + end if + end if ! If this S(a,b) table hasn't been encountered yet, we need to add its ! name and alias to the sab_dict @@ -2592,7 +2618,6 @@ 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) @@ -3270,10 +3295,10 @@ contains ! If a specific nuclide was specified word = to_lower(sarray(j)) - ! Append default_xs specifier to nuclide if needed - if ((default_xs /= '') .and. (.not. ends_with(sarray(j), 'c'))) then - word = trim(word) // "." // trim(default_xs) - end if +!!$ ! Append default_xs specifier to nuclide if needed +!!$ if ((default_xs /= '') .and. (.not. ends_with(sarray(j), 'c'))) then +!!$ word = trim(word) // "." // trim(default_xs) +!!$ end if ! Search through nuclides pair_list => nuclide_dict % keys() @@ -4516,19 +4541,19 @@ contains ! file contains a listing of the CE and MG cross sections that may be used. !=============================================================================== - subroutine read_ce_cross_sections_xml() + subroutine read_ce_cross_sections_xml(libraries) + type(Library), allocatable, intent(out) :: libraries(:) integer :: i ! loop index - integer :: filetype ! default file type - integer :: recl ! default record length - integer :: entries ! default number of entries + integer :: n + integer :: n_libraries logical :: file_exists ! does cross_sections.xml exist? - character(MAX_WORD_LEN) :: directory ! directory with cross sections - character(MAX_LINE_LEN) :: temp_str - type(XsListing), pointer :: listing => null() - type(Node), pointer :: doc => null() - type(Node), pointer :: node_ace => null() - type(NodeList), pointer :: node_ace_list => null() + character(MAX_WORD_LEN) :: directory ! directory with cross sections + character(MAX_WORD_LEN) :: words(MAX_WORDS) + character(10000) :: temp_str + type(Node), pointer :: doc + type(Node), pointer :: node_library + type(NodeList), pointer :: node_library_list ! Check if cross_sections.xml exists inquire(FILE=path_cross_sections, EXIST=file_exists) @@ -4553,118 +4578,64 @@ contains directory = path_cross_sections(1:i) end if - ! determine whether binary/ascii - temp_str = '' - if (check_for_node(doc, "filetype")) & - call get_node_value(doc, "filetype", temp_str) - if (trim(temp_str) == 'ascii') then - filetype = ASCII - elseif (trim(temp_str) == 'binary') then - filetype = BINARY - elseif (len_trim(temp_str) == 0) then - filetype = ASCII - else - call fatal_error("Unknown filetype in cross_sections.xml: " & - // trim(temp_str)) - end if - - ! copy default record length and entries for binary files - if (filetype == BINARY) then - call get_node_value(doc, "record_length", recl) - call get_node_value(doc, "entries", entries) - end if - - ! Get node list of all - call get_node_list(doc, "ace_table", node_ace_list) - n_listings = get_list_size(node_ace_list) + ! Get node list of all + call get_node_list(doc, "library", node_library_list) + n_libraries = get_list_size(node_library_list) ! Allocate xs_listings array - if (n_listings == 0) then - call fatal_error("No ACE table listings present in cross_sections.xml & + if (n_libraries == 0) then + call fatal_error("No cross section libraries present in cross_sections.xml & &file!") else - allocate(xs_listings(n_listings)) + allocate(libraries(n_libraries)) end if - do i = 1, n_listings - listing => xs_listings(i) - + do i = 1, n_libraries ! Get pointer to ace table XML node - call get_list_item(node_ace_list, i, node_ace) + call get_list_item(node_library_list, i, node_library) - ! copy a number of attributes - call get_node_value(node_ace, "name", listing % name) - if (check_for_node(node_ace, "alias")) & - call get_node_value(node_ace, "alias", listing % alias) - call get_node_value(node_ace, "zaid", listing % zaid) - call get_node_value(node_ace, "awr", listing % awr) - if (check_for_node(node_ace, "temperature")) & - call get_node_value(node_ace, "temperature", listing % kT) - call get_node_value(node_ace, "location", listing % location) - - ! determine type of cross section - if (ends_with(listing % name, 'c')) then - listing % type = ACE_NEUTRON - elseif (ends_with(listing % name, 't')) then - listing % type = ACE_THERMAL + ! Get list of materials + if (check_for_node(node_library, "materials")) then + call get_node_value(node_library, "materials", temp_str) + call split_string(temp_str, words, n) + allocate(libraries(i) % materials(n)) + libraries(i) % materials(:) = words(1:n) end if - ! set filetype, record length, and number of entries - if (check_for_node(node_ace, "filetype")) then - temp_str = '' - call get_node_value(node_ace, "filetype", temp_str) - if (temp_str == 'ascii') then - listing % filetype = ASCII - else if (temp_str == 'binary') then - listing % filetype = BINARY - end if + ! Get type of library + if (check_for_node(node_library, "type")) then + call get_node_value(node_library, "type", temp_str) + select case(to_lower(temp_str)) + case ('neutron') + libraries(i) % type = LIBRARY_NEUTRON + case ('thermal') + libraries(i) % type = LIBRARY_THERMAL + end select else - listing % filetype = filetype - end if - - ! Set record length and entries for binary files - if (filetype == BINARY) then - listing % recl = recl - listing % entries = entries - end if - - ! determine metastable state - if (.not. check_for_node(node_ace, "metastable")) then - listing % metastable = .false. - else - listing % metastable = .true. + call fatal_error("Missing library type") end if ! determine path of cross section table - if (check_for_node(node_ace, "path")) then - call get_node_value(node_ace, "path", temp_str) + if (check_for_node(node_library, "path")) then + call get_node_value(node_library, "path", temp_str) else - call fatal_error("Path missing for isotope " // listing % name) + call fatal_error("Missing library path") end if if (starts_with(temp_str, '/')) then - listing % path = trim(temp_str) + libraries(i) % path = trim(temp_str) else if (ends_with(directory,'/')) then - listing % path = trim(directory) // trim(temp_str) + libraries(i) % path = trim(directory) // trim(temp_str) else - listing % path = trim(directory) // '/' // trim(temp_str) + libraries(i) % path = trim(directory) // '/' // trim(temp_str) end if end if - ! create dictionary entry for both name and alias - call xs_listing_dict % add_key(to_lower(listing % name), i) - if (check_for_node(node_ace, "alias")) then - call xs_listing_dict % add_key(to_lower(listing % alias), i) - end if - end do - - ! Check that 0K nuclides are listed in the cross_sections.xml file - 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!") + inquire(FILE=libraries(i) % path, EXIST=file_exists) + if (.not. file_exists) then + call warning("Cross section library " // trim(libraries(i) % path) // & + " does not exist.") end if end do @@ -4673,11 +4644,12 @@ contains end subroutine read_ce_cross_sections_xml - subroutine read_mg_cross_sections_xml() + subroutine read_mg_cross_sections_xml(libraries) + type(Library), allocatable, intent(out) :: libraries(:) integer :: i ! loop index - logical :: file_exists ! does mgxs.xml exist? - type(XsListing), pointer :: listing => null() + integer :: n_libraries + logical :: file_exists ! does cross_sections.xml exist? type(Node), pointer :: doc => null() type(Node), pointer :: node_xsdata => null() type(NodeList), pointer :: node_xsdata_list => null() @@ -4736,55 +4708,23 @@ contains ! Get node list of all call get_node_list(doc, "xsdata", node_xsdata_list) - n_listings = get_list_size(node_xsdata_list) + n_libraries = get_list_size(node_xsdata_list) ! Allocate xs_listings array - if (n_listings == 0) then + if (n_libraries == 0) then call fatal_error("At least one element must be present in & &mgxs.xml file!") else - allocate(xs_listings(n_listings)) + allocate(libraries(n_libraries)) end if - do i = 1, n_listings - listing => xs_listings(i) - + do i = 1, n_libraries ! 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 = -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 - listing % kT = 293.6_8 * K_BOLTZMANN - 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) + ! Get name of material + allocate(libraries(i) % materials(1)) + call get_node_value(node_xsdata, "name", libraries(i) % materials(1)) end do ! Close cross sections XML file @@ -4800,14 +4740,12 @@ contains ! evaluations of particular isotopes don't exist. !=============================================================================== - subroutine expand_natural_element(name, xs, density, list_names, & - list_density) - - character(*), intent(in) :: name - character(*), intent(in) :: xs - real(8), intent(in) :: density - type(ListChar), intent(inout) :: list_names - type(ListReal), intent(inout) :: list_density + subroutine expand_natural_element(name, xs, density, names, densities) + character(*), intent(in) :: name + character(*), intent(in) :: xs + real(8), intent(in) :: density + type(VectorChar), intent(inout) :: names + type(VectorReal), intent(inout) :: densities character(2) :: element_name @@ -4815,670 +4753,670 @@ contains select case (to_lower(element_name)) case ('h') - call list_names % append('1001.' // xs) - call list_density % append(density * 0.999885_8) - call list_names % append('1002.' // xs) - call list_density % append(density * 0.000115_8) + call names % push_back('H1.' // xs) + call densities % push_back(density * 0.999885_8) + call names % push_back('H2.' // xs) + call densities % push_back(density * 0.000115_8) case ('he') - call list_names % append('2003.' // xs) - call list_density % append(density * 0.00000134_8) - call list_names % append('2004.' // xs) - call list_density % append(density * 0.99999866_8) + call names % push_back('He3.' // xs) + call densities % push_back(density * 0.00000134_8) + call names % push_back('He4.' // xs) + call densities % push_back(density * 0.99999866_8) case ('li') - call list_names % append('3006.' // xs) - call list_density % append(density * 0.0759_8) - call list_names % append('3007.' // xs) - call list_density % append(density * 0.9241_8) + call names % push_back('Li6.' // xs) + call densities % push_back(density * 0.0759_8) + call names % push_back('Li7.' // xs) + call densities % push_back(density * 0.9241_8) case ('be') - call list_names % append('4009.' // xs) - call list_density % append(density) + call names % push_back('Be9.' // xs) + call densities % push_back(density) case ('b') - call list_names % append('5010.' // xs) - call list_density % append(density * 0.199_8) - call list_names % append('5011.' // xs) - call list_density % append(density * 0.801_8) + call names % push_back('B10.' // xs) + call densities % push_back(density * 0.199_8) + call names % push_back('B11.' // xs) + call densities % push_back(density * 0.801_8) case ('c') ! No evaluations split up Carbon into isotopes yet - call list_names % append('6000.' // xs) - call list_density % append(density) + call names % push_back('C0.' // xs) + call densities % push_back(density) case ('n') - call list_names % append('7014.' // xs) - call list_density % append(density * 0.99636_8) - call list_names % append('7015.' // xs) - call list_density % append(density * 0.00364_8) + call names % push_back('N14.' // xs) + call densities % push_back(density * 0.99636_8) + call names % push_back('N15.' // xs) + call densities % push_back(density * 0.00364_8) case ('o') if (default_expand == JEFF_32) then - call list_names % append('8016.' // xs) - call list_density % append(density * 0.99757_8) - call list_names % append('8017.' // xs) - call list_density % append(density * 0.00038_8) - call list_names % append('8018.' // xs) - call list_density % append(density * 0.00205_8) + call names % push_back('O16.' // xs) + call densities % push_back(density * 0.99757_8) + call names % push_back('O17.' // xs) + call densities % push_back(density * 0.00038_8) + call names % push_back('O18.' // xs) + call densities % push_back(density * 0.00205_8) elseif (default_expand >= JENDL_32 .and. default_expand <= JENDL_40) then - call list_names % append('8016.' // xs) - call list_density % append(density) + call names % push_back('O16.' // xs) + call densities % push_back(density) else - call list_names % append('8016.' // xs) - call list_density % append(density * 0.99962_8) - call list_names % append('8017.' // xs) - call list_density % append(density * 0.00038_8) + call names % push_back('O16.' // xs) + call densities % push_back(density * 0.99962_8) + call names % push_back('O17.' // xs) + call densities % push_back(density * 0.00038_8) end if case ('f') - call list_names % append('9019.' // xs) - call list_density % append(density) + call names % push_back('F19.' // xs) + call densities % push_back(density) case ('ne') - call list_names % append('10020.' // xs) - call list_density % append(density * 0.9048_8) - call list_names % append('10021.' // xs) - call list_density % append(density * 0.0027_8) - call list_names % append('10022.' // xs) - call list_density % append(density * 0.0925_8) + call names % push_back('Ne20.' // xs) + call densities % push_back(density * 0.9048_8) + call names % push_back('Ne21.' // xs) + call densities % push_back(density * 0.0027_8) + call names % push_back('Ne22.' // xs) + call densities % push_back(density * 0.0925_8) case ('na') - call list_names % append('11023.' // xs) - call list_density % append(density) + call names % push_back('Na23.' // xs) + call densities % push_back(density) case ('mg') - call list_names % append('12024.' // xs) - call list_density % append(density * 0.7899_8) - call list_names % append('12025.' // xs) - call list_density % append(density * 0.1000_8) - call list_names % append('12026.' // xs) - call list_density % append(density * 0.1101_8) + call names % push_back('Mg24.' // xs) + call densities % push_back(density * 0.7899_8) + call names % push_back('Mg25.' // xs) + call densities % push_back(density * 0.1000_8) + call names % push_back('Mg26.' // xs) + call densities % push_back(density * 0.1101_8) case ('al') - call list_names % append('13027.' // xs) - call list_density % append(density) + call names % push_back('Al27.' // xs) + call densities % push_back(density) case ('si') - call list_names % append('14028.' // xs) - call list_density % append(density * 0.92223_8) - call list_names % append('14029.' // xs) - call list_density % append(density * 0.04685_8) - call list_names % append('14030.' // xs) - call list_density % append(density * 0.03092_8) + call names % push_back('Si28.' // xs) + call densities % push_back(density * 0.92223_8) + call names % push_back('Si29.' // xs) + call densities % push_back(density * 0.04685_8) + call names % push_back('Si30.' // xs) + call densities % push_back(density * 0.03092_8) case ('p') - call list_names % append('15031.' // xs) - call list_density % append(density) + call names % push_back('P31.' // xs) + call densities % push_back(density) case ('s') - call list_names % append('16032.' // xs) - call list_density % append(density * 0.9499_8) - call list_names % append('16033.' // xs) - call list_density % append(density * 0.0075_8) - call list_names % append('16034.' // xs) - call list_density % append(density * 0.0425_8) - call list_names % append('16036.' // xs) - call list_density % append(density * 0.0001_8) + call names % push_back('S32.' // xs) + call densities % push_back(density * 0.9499_8) + call names % push_back('S33.' // xs) + call densities % push_back(density * 0.0075_8) + call names % push_back('S34.' // xs) + call densities % push_back(density * 0.0425_8) + call names % push_back('S36.' // xs) + call densities % push_back(density * 0.0001_8) case ('cl') - call list_names % append('17035.' // xs) - call list_density % append(density * 0.7576_8) - call list_names % append('17037.' // xs) - call list_density % append(density * 0.2424_8) + call names % push_back('Cl35.' // xs) + call densities % push_back(density * 0.7576_8) + call names % push_back('Cl37.' // xs) + call densities % push_back(density * 0.2424_8) case ('ar') - call list_names % append('18036.' // xs) - call list_density % append(density * 0.003336_8) - call list_names % append('18038.' // xs) - call list_density % append(density * 0.000629_8) - call list_names % append('18040.' // xs) - call list_density % append(density * 0.996035_8) + call names % push_back('Ar36.' // xs) + call densities % push_back(density * 0.003336_8) + call names % push_back('Ar38.' // xs) + call densities % push_back(density * 0.000629_8) + call names % push_back('Ar40.' // xs) + call densities % push_back(density * 0.996035_8) case ('k') - call list_names % append('19039.' // xs) - call list_density % append(density * 0.932581_8) - call list_names % append('19040.' // xs) - call list_density % append(density * 0.000117_8) - call list_names % append('19041.' // xs) - call list_density % append(density * 0.067302_8) + call names % push_back('K39.' // xs) + call densities % push_back(density * 0.932581_8) + call names % push_back('K40.' // xs) + call densities % push_back(density * 0.000117_8) + call names % push_back('K41.' // xs) + call densities % push_back(density * 0.067302_8) case ('ca') - call list_names % append('20040.' // xs) - call list_density % append(density * 0.96941_8) - call list_names % append('20042.' // xs) - call list_density % append(density * 0.00647_8) - call list_names % append('20043.' // xs) - call list_density % append(density * 0.00135_8) - call list_names % append('20044.' // xs) - call list_density % append(density * 0.02086_8) - call list_names % append('20046.' // xs) - call list_density % append(density * 0.00004_8) - call list_names % append('20048.' // xs) - call list_density % append(density * 0.00187_8) + call names % push_back('Ca40.' // xs) + call densities % push_back(density * 0.96941_8) + call names % push_back('Ca42.' // xs) + call densities % push_back(density * 0.00647_8) + call names % push_back('Ca43.' // xs) + call densities % push_back(density * 0.00135_8) + call names % push_back('Ca44.' // xs) + call densities % push_back(density * 0.02086_8) + call names % push_back('Ca46.' // xs) + call densities % push_back(density * 0.00004_8) + call names % push_back('Ca48.' // xs) + call densities % push_back(density * 0.00187_8) case ('sc') - call list_names % append('21045.' // xs) - call list_density % append(density) + call names % push_back('Sc45.' // xs) + call densities % push_back(density) case ('ti') - call list_names % append('22046.' // xs) - call list_density % append(density * 0.0825_8) - call list_names % append('22047.' // xs) - call list_density % append(density * 0.0744_8) - call list_names % append('22048.' // xs) - call list_density % append(density * 0.7372_8) - call list_names % append('22049.' // xs) - call list_density % append(density * 0.0541_8) - call list_names % append('22050.' // xs) - call list_density % append(density * 0.0518_8) + call names % push_back('Ti46.' // xs) + call densities % push_back(density * 0.0825_8) + call names % push_back('Ti47.' // xs) + call densities % push_back(density * 0.0744_8) + call names % push_back('Ti48.' // xs) + call densities % push_back(density * 0.7372_8) + call names % push_back('Ti49.' // xs) + call densities % push_back(density * 0.0541_8) + call names % push_back('Ti50.' // xs) + call densities % push_back(density * 0.0518_8) case ('v') if (default_expand == ENDF_BVII0 .or. default_expand == JEFF_311 & .or. default_expand == JEFF_32 .or. & (default_expand >= JENDL_32 .and. default_expand <= JENDL_33)) then - call list_names % append('23000.' // xs) - call list_density % append(density) + call names % push_back('V0.' // xs) + call densities % push_back(density) else - call list_names % append('23050.' // xs) - call list_density % append(density * 0.0025_8) - call list_names % append('23051.' // xs) - call list_density % append(density * 0.9975_8) + call names % push_back('V50.' // xs) + call densities % push_back(density * 0.0025_8) + call names % push_back('V51.' // xs) + call densities % push_back(density * 0.9975_8) end if case ('cr') - call list_names % append('24050.' // xs) - call list_density % append(density * 0.04345_8) - call list_names % append('24052.' // xs) - call list_density % append(density * 0.83789_8) - call list_names % append('24053.' // xs) - call list_density % append(density * 0.09501_8) - call list_names % append('24054.' // xs) - call list_density % append(density * 0.02365_8) + call names % push_back('Cr50.' // xs) + call densities % push_back(density * 0.04345_8) + call names % push_back('Cr52.' // xs) + call densities % push_back(density * 0.83789_8) + call names % push_back('Cr53.' // xs) + call densities % push_back(density * 0.09501_8) + call names % push_back('Cr54.' // xs) + call densities % push_back(density * 0.02365_8) case ('mn') - call list_names % append('25055.' // xs) - call list_density % append(density) + call names % push_back('Mn55.' // xs) + call densities % push_back(density) case ('fe') - call list_names % append('26054.' // xs) - call list_density % append(density * 0.05845_8) - call list_names % append('26056.' // xs) - call list_density % append(density * 0.91754_8) - call list_names % append('26057.' // xs) - call list_density % append(density * 0.02119_8) - call list_names % append('26058.' // xs) - call list_density % append(density * 0.00282_8) + call names % push_back('Fe54.' // xs) + call densities % push_back(density * 0.05845_8) + call names % push_back('Fe56.' // xs) + call densities % push_back(density * 0.91754_8) + call names % push_back('Fe57.' // xs) + call densities % push_back(density * 0.02119_8) + call names % push_back('Fe58.' // xs) + call densities % push_back(density * 0.00282_8) case ('co') - call list_names % append('27059.' // xs) - call list_density % append(density) + call names % push_back('Co59.' // xs) + call densities % push_back(density) case ('ni') - call list_names % append('28058.' // xs) - call list_density % append(density * 0.68077_8) - call list_names % append('28060.' // xs) - call list_density % append(density * 0.26223_8) - call list_names % append('28061.' // xs) - call list_density % append(density * 0.011399_8) - call list_names % append('28062.' // xs) - call list_density % append(density * 0.036346_8) - call list_names % append('28064.' // xs) - call list_density % append(density * 0.009255_8) + call names % push_back('Ni58.' // xs) + call densities % push_back(density * 0.68077_8) + call names % push_back('Ni60.' // xs) + call densities % push_back(density * 0.26223_8) + call names % push_back('Ni61.' // xs) + call densities % push_back(density * 0.011399_8) + call names % push_back('Ni62.' // xs) + call densities % push_back(density * 0.036346_8) + call names % push_back('Ni64.' // xs) + call densities % push_back(density * 0.009255_8) case ('cu') - call list_names % append('29063.' // xs) - call list_density % append(density * 0.6915_8) - call list_names % append('29065.' // xs) - call list_density % append(density * 0.3085_8) + call names % push_back('Cu63.' // xs) + call densities % push_back(density * 0.6915_8) + call names % push_back('Cu65.' // xs) + call densities % push_back(density * 0.3085_8) case ('zn') if (default_expand == ENDF_BVII0 .or. default_expand == & JEFF_311 .or. default_expand == JEFF_312) then - call list_names % append('30000.' // xs) - call list_density % append(density) + call names % push_back('Zn0.' // xs) + call densities % push_back(density) else - call list_names % append('30064.' // xs) - call list_density % append(density * 0.4917_8) - call list_names % append('30066.' // xs) - call list_density % append(density * 0.2773_8) - call list_names % append('30067.' // xs) - call list_density % append(density * 0.0404_8) - call list_names % append('30068.' // xs) - call list_density % append(density * 0.1845_8) - call list_names % append('30070.' // xs) - call list_density % append(density * 0.0061_8) + call names % push_back('Zn64.' // xs) + call densities % push_back(density * 0.4917_8) + call names % push_back('Zn66.' // xs) + call densities % push_back(density * 0.2773_8) + call names % push_back('Zn67.' // xs) + call densities % push_back(density * 0.0404_8) + call names % push_back('Zn68.' // xs) + call densities % push_back(density * 0.1845_8) + call names % push_back('Zn70.' // xs) + call densities % push_back(density * 0.0061_8) end if case ('ga') if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then - call list_names % append('31000.' // xs) - call list_density % append(density) + call names % push_back('Ga0.' // xs) + call densities % push_back(density) else - call list_names % append('31069.' // xs) - call list_density % append(density * 0.60108_8) - call list_names % append('31071.' // xs) - call list_density % append(density * 0.39892_8) + call names % push_back('Ha69.' // xs) + call densities % push_back(density * 0.60108_8) + call names % push_back('Ga71.' // xs) + call densities % push_back(density * 0.39892_8) end if case ('ge') - call list_names % append('32070.' // xs) - call list_density % append(density * 0.2057_8) - call list_names % append('32072.' // xs) - call list_density % append(density * 0.2745_8) - call list_names % append('32073.' // xs) - call list_density % append(density * 0.0775_8) - call list_names % append('32074.' // xs) - call list_density % append(density * 0.3650_8) - call list_names % append('32076.' // xs) - call list_density % append(density * 0.0773_8) + call names % push_back('Ge70.' // xs) + call densities % push_back(density * 0.2057_8) + call names % push_back('Ge72.' // xs) + call densities % push_back(density * 0.2745_8) + call names % push_back('Ge73.' // xs) + call densities % push_back(density * 0.0775_8) + call names % push_back('Ge74.' // xs) + call densities % push_back(density * 0.3650_8) + call names % push_back('Ge76.' // xs) + call densities % push_back(density * 0.0773_8) case ('as') - call list_names % append('33075.' // xs) - call list_density % append(density) + call names % push_back('As75.' // xs) + call densities % push_back(density) case ('se') - call list_names % append('34074.' // xs) - call list_density % append(density * 0.0089_8) - call list_names % append('34076.' // xs) - call list_density % append(density * 0.0937_8) - call list_names % append('34077.' // xs) - call list_density % append(density * 0.0763_8) - call list_names % append('34078.' // xs) - call list_density % append(density * 0.2377_8) - call list_names % append('34080.' // xs) - call list_density % append(density * 0.4961_8) - call list_names % append('34082.' // xs) - call list_density % append(density * 0.0873_8) + call names % push_back('Se74.' // xs) + call densities % push_back(density * 0.0089_8) + call names % push_back('Se76.' // xs) + call densities % push_back(density * 0.0937_8) + call names % push_back('Se77.' // xs) + call densities % push_back(density * 0.0763_8) + call names % push_back('Se78.' // xs) + call densities % push_back(density * 0.2377_8) + call names % push_back('Se80.' // xs) + call densities % push_back(density * 0.4961_8) + call names % push_back('Se82.' // xs) + call densities % push_back(density * 0.0873_8) case ('br') - call list_names % append('35079.' // xs) - call list_density % append(density * 0.5069_8) - call list_names % append('35081.' // xs) - call list_density % append(density * 0.4931_8) + call names % push_back('Br79.' // xs) + call densities % push_back(density * 0.5069_8) + call names % push_back('Br81.' // xs) + call densities % push_back(density * 0.4931_8) case ('kr') - call list_names % append('36078.' // xs) - call list_density % append(density * 0.00355_8) - call list_names % append('36080.' // xs) - call list_density % append(density * 0.02286_8) - call list_names % append('36082.' // xs) - call list_density % append(density * 0.11593_8) - call list_names % append('36083.' // xs) - call list_density % append(density * 0.11500_8) - call list_names % append('36084.' // xs) - call list_density % append(density * 0.56987_8) - call list_names % append('36086.' // xs) - call list_density % append(density * 0.17279_8) + call names % push_back('Kr78.' // xs) + call densities % push_back(density * 0.00355_8) + call names % push_back('Kr80.' // xs) + call densities % push_back(density * 0.02286_8) + call names % push_back('Kr82.' // xs) + call densities % push_back(density * 0.11593_8) + call names % push_back('Kr83.' // xs) + call densities % push_back(density * 0.11500_8) + call names % push_back('Kr84.' // xs) + call densities % push_back(density * 0.56987_8) + call names % push_back('Kr86.' // xs) + call densities % push_back(density * 0.17279_8) case ('rb') - call list_names % append('37085.' // xs) - call list_density % append(density * 0.7217_8) - call list_names % append('37087.' // xs) - call list_density % append(density * 0.2783_8) + call names % push_back('Rb85.' // xs) + call densities % push_back(density * 0.7217_8) + call names % push_back('Rb87.' // xs) + call densities % push_back(density * 0.2783_8) case ('sr') - call list_names % append('38084.' // xs) - call list_density % append(density * 0.0056_8) - call list_names % append('38086.' // xs) - call list_density % append(density * 0.0986_8) - call list_names % append('38087.' // xs) - call list_density % append(density * 0.0700_8) - call list_names % append('38088.' // xs) - call list_density % append(density * 0.8258_8) + call names % push_back('Sr84.' // xs) + call densities % push_back(density * 0.0056_8) + call names % push_back('Sr86.' // xs) + call densities % push_back(density * 0.0986_8) + call names % push_back('Sr87.' // xs) + call densities % push_back(density * 0.0700_8) + call names % push_back('Sr88.' // xs) + call densities % push_back(density * 0.8258_8) case ('y') - call list_names % append('39089.' // xs) - call list_density % append(density) + call names % push_back('Y89.' // xs) + call densities % push_back(density) case ('zr') - call list_names % append('40090.' // xs) - call list_density % append(density * 0.5145_8) - call list_names % append('40091.' // xs) - call list_density % append(density * 0.1122_8) - call list_names % append('40092.' // xs) - call list_density % append(density * 0.1715_8) - call list_names % append('40094.' // xs) - call list_density % append(density * 0.1738_8) - call list_names % append('40096.' // xs) - call list_density % append(density * 0.0280_8) + call names % push_back('Zr90.' // xs) + call densities % push_back(density * 0.5145_8) + call names % push_back('Zr91.' // xs) + call densities % push_back(density * 0.1122_8) + call names % push_back('Zr92.' // xs) + call densities % push_back(density * 0.1715_8) + call names % push_back('Zr94.' // xs) + call densities % push_back(density * 0.1738_8) + call names % push_back('Zr96.' // xs) + call densities % push_back(density * 0.0280_8) case ('nb') - call list_names % append('41093.' // xs) - call list_density % append(density) + call names % push_back('Nb93.' // xs) + call densities % push_back(density) case ('mo') - call list_names % append('42092.' // xs) - call list_density % append(density * 0.1453_8) - call list_names % append('42094.' // xs) - call list_density % append(density * 0.0915_8) - call list_names % append('42095.' // xs) - call list_density % append(density * 0.1584_8) - call list_names % append('42096.' // xs) - call list_density % append(density * 0.1667_8) - call list_names % append('42097.' // xs) - call list_density % append(density * 0.0960_8) - call list_names % append('42098.' // xs) - call list_density % append(density * 0.2439_8) - call list_names % append('42100.' // xs) - call list_density % append(density * 0.0982_8) + call names % push_back('Mo92.' // xs) + call densities % push_back(density * 0.1453_8) + call names % push_back('Mo94.' // xs) + call densities % push_back(density * 0.0915_8) + call names % push_back('Mo95.' // xs) + call densities % push_back(density * 0.1584_8) + call names % push_back('Mo96.' // xs) + call densities % push_back(density * 0.1667_8) + call names % push_back('Mo97.' // xs) + call densities % push_back(density * 0.0960_8) + call names % push_back('Mo98.' // xs) + call densities % push_back(density * 0.2439_8) + call names % push_back('Mo100.' // xs) + call densities % push_back(density * 0.0982_8) case ('ru') - call list_names % append('44096.' // xs) - call list_density % append(density * 0.0554_8) - call list_names % append('44098.' // xs) - call list_density % append(density * 0.0187_8) - call list_names % append('44099.' // xs) - call list_density % append(density * 0.1276_8) - call list_names % append('44100.' // xs) - call list_density % append(density * 0.1260_8) - call list_names % append('44101.' // xs) - call list_density % append(density * 0.1706_8) - call list_names % append('44102.' // xs) - call list_density % append(density * 0.3155_8) - call list_names % append('44104.' // xs) - call list_density % append(density * 0.1862_8) + call names % push_back('Ru96.' // xs) + call densities % push_back(density * 0.0554_8) + call names % push_back('Ru98.' // xs) + call densities % push_back(density * 0.0187_8) + call names % push_back('Ru99.' // xs) + call densities % push_back(density * 0.1276_8) + call names % push_back('Ru100.' // xs) + call densities % push_back(density * 0.1260_8) + call names % push_back('Ru101.' // xs) + call densities % push_back(density * 0.1706_8) + call names % push_back('Ru102.' // xs) + call densities % push_back(density * 0.3155_8) + call names % push_back('Ru104.' // xs) + call densities % push_back(density * 0.1862_8) case ('rh') - call list_names % append('45103.' // xs) - call list_density % append(density) + call names % push_back('Rh103.' // xs) + call densities % push_back(density) case ('pd') - call list_names % append('46102.' // xs) - call list_density % append(density * 0.0102_8) - call list_names % append('46104.' // xs) - call list_density % append(density * 0.1114_8) - call list_names % append('46105.' // xs) - call list_density % append(density * 0.2233_8) - call list_names % append('46106.' // xs) - call list_density % append(density * 0.2733_8) - call list_names % append('46108.' // xs) - call list_density % append(density * 0.2646_8) - call list_names % append('46110.' // xs) - call list_density % append(density * 0.1172_8) + call names % push_back('Pd102.' // xs) + call densities % push_back(density * 0.0102_8) + call names % push_back('Pd104.' // xs) + call densities % push_back(density * 0.1114_8) + call names % push_back('Pd105.' // xs) + call densities % push_back(density * 0.2233_8) + call names % push_back('Pd106.' // xs) + call densities % push_back(density * 0.2733_8) + call names % push_back('Pd108.' // xs) + call densities % push_back(density * 0.2646_8) + call names % push_back('Pd110.' // xs) + call densities % push_back(density * 0.1172_8) case ('ag') - call list_names % append('47107.' // xs) - call list_density % append(density * 0.51839_8) - call list_names % append('47109.' // xs) - call list_density % append(density * 0.48161_8) + call names % push_back('Ag107.' // xs) + call densities % push_back(density * 0.51839_8) + call names % push_back('Ag109.' // xs) + call densities % push_back(density * 0.48161_8) case ('cd') - call list_names % append('48106.' // xs) - call list_density % append(density * 0.0125_8) - call list_names % append('48108.' // xs) - call list_density % append(density * 0.0089_8) - call list_names % append('48110.' // xs) - call list_density % append(density * 0.1249_8) - call list_names % append('48111.' // xs) - call list_density % append(density * 0.1280_8) - call list_names % append('48112.' // xs) - call list_density % append(density * 0.2413_8) - call list_names % append('48113.' // xs) - call list_density % append(density * 0.1222_8) - call list_names % append('48114.' // xs) - call list_density % append(density * 0.2873_8) - call list_names % append('48116.' // xs) - call list_density % append(density * 0.0749_8) + call names % push_back('Cd106.' // xs) + call densities % push_back(density * 0.0125_8) + call names % push_back('Cd108.' // xs) + call densities % push_back(density * 0.0089_8) + call names % push_back('Cd110.' // xs) + call densities % push_back(density * 0.1249_8) + call names % push_back('Cd111.' // xs) + call densities % push_back(density * 0.1280_8) + call names % push_back('Cd112.' // xs) + call densities % push_back(density * 0.2413_8) + call names % push_back('Cd113.' // xs) + call densities % push_back(density * 0.1222_8) + call names % push_back('Cd114.' // xs) + call densities % push_back(density * 0.2873_8) + call names % push_back('Cd116.' // xs) + call densities % push_back(density * 0.0749_8) case ('in') - call list_names % append('49113.' // xs) - call list_density % append(density * 0.0429_8) - call list_names % append('49115.' // xs) - call list_density % append(density * 0.9571_8) + call names % push_back('In113.' // xs) + call densities % push_back(density * 0.0429_8) + call names % push_back('In115.' // xs) + call densities % push_back(density * 0.9571_8) case ('sn') - call list_names % append('50112.' // xs) - call list_density % append(density * 0.0097_8) - call list_names % append('50114.' // xs) - call list_density % append(density * 0.0066_8) - call list_names % append('50115.' // xs) - call list_density % append(density * 0.0034_8) - call list_names % append('50116.' // xs) - call list_density % append(density * 0.1454_8) - call list_names % append('50117.' // xs) - call list_density % append(density * 0.0768_8) - call list_names % append('50118.' // xs) - call list_density % append(density * 0.2422_8) - call list_names % append('50119.' // xs) - call list_density % append(density * 0.0859_8) - call list_names % append('50120.' // xs) - call list_density % append(density * 0.3258_8) - call list_names % append('50122.' // xs) - call list_density % append(density * 0.0463_8) - call list_names % append('50124.' // xs) - call list_density % append(density * 0.0579_8) + call names % push_back('Sn112.' // xs) + call densities % push_back(density * 0.0097_8) + call names % push_back('Sn114.' // xs) + call densities % push_back(density * 0.0066_8) + call names % push_back('Sn115.' // xs) + call densities % push_back(density * 0.0034_8) + call names % push_back('Sn116.' // xs) + call densities % push_back(density * 0.1454_8) + call names % push_back('Sn117.' // xs) + call densities % push_back(density * 0.0768_8) + call names % push_back('Sn118.' // xs) + call densities % push_back(density * 0.2422_8) + call names % push_back('Sn119.' // xs) + call densities % push_back(density * 0.0859_8) + call names % push_back('Sn120.' // xs) + call densities % push_back(density * 0.3258_8) + call names % push_back('Sn122.' // xs) + call densities % push_back(density * 0.0463_8) + call names % push_back('Sn124.' // xs) + call densities % push_back(density * 0.0579_8) case ('sb') - call list_names % append('51121.' // xs) - call list_density % append(density * 0.5721_8) - call list_names % append('51123.' // xs) - call list_density % append(density * 0.4279_8) + call names % push_back('Sb121.' // xs) + call densities % push_back(density * 0.5721_8) + call names % push_back('Sb123.' // xs) + call densities % push_back(density * 0.4279_8) case ('te') - call list_names % append('52120.' // xs) - call list_density % append(density * 0.0009_8) - call list_names % append('52122.' // xs) - call list_density % append(density * 0.0255_8) - call list_names % append('52123.' // xs) - call list_density % append(density * 0.0089_8) - call list_names % append('52124.' // xs) - call list_density % append(density * 0.0474_8) - call list_names % append('52125.' // xs) - call list_density % append(density * 0.0707_8) - call list_names % append('52126.' // xs) - call list_density % append(density * 0.1884_8) - call list_names % append('52128.' // xs) - call list_density % append(density * 0.3174_8) - call list_names % append('52130.' // xs) - call list_density % append(density * 0.3408_8) + call names % push_back('Te120.' // xs) + call densities % push_back(density * 0.0009_8) + call names % push_back('Te122.' // xs) + call densities % push_back(density * 0.0255_8) + call names % push_back('Te123.' // xs) + call densities % push_back(density * 0.0089_8) + call names % push_back('Te124.' // xs) + call densities % push_back(density * 0.0474_8) + call names % push_back('Te125.' // xs) + call densities % push_back(density * 0.0707_8) + call names % push_back('Te126.' // xs) + call densities % push_back(density * 0.1884_8) + call names % push_back('Te128.' // xs) + call densities % push_back(density * 0.3174_8) + call names % push_back('Te130.' // xs) + call densities % push_back(density * 0.3408_8) case ('i') - call list_names % append('53127.' // xs) - call list_density % append(density) + call names % push_back('I127.' // xs) + call densities % push_back(density) case ('xe') - call list_names % append('54124.' // xs) - call list_density % append(density * 0.000952_8) - call list_names % append('54126.' // xs) - call list_density % append(density * 0.000890_8) - call list_names % append('54128.' // xs) - call list_density % append(density * 0.019102_8) - call list_names % append('54129.' // xs) - call list_density % append(density * 0.264006_8) - call list_names % append('54130.' // xs) - call list_density % append(density * 0.040710_8) - call list_names % append('54131.' // xs) - call list_density % append(density * 0.212324_8) - call list_names % append('54132.' // xs) - call list_density % append(density * 0.269086_8) - call list_names % append('54134.' // xs) - call list_density % append(density * 0.104357_8) - call list_names % append('54136.' // xs) - call list_density % append(density * 0.088573_8) + call names % push_back('Xe124.' // xs) + call densities % push_back(density * 0.000952_8) + call names % push_back('Xe126.' // xs) + call densities % push_back(density * 0.000890_8) + call names % push_back('Xe128.' // xs) + call densities % push_back(density * 0.019102_8) + call names % push_back('Xe129.' // xs) + call densities % push_back(density * 0.264006_8) + call names % push_back('Xe130.' // xs) + call densities % push_back(density * 0.040710_8) + call names % push_back('Xe131.' // xs) + call densities % push_back(density * 0.212324_8) + call names % push_back('Xe132.' // xs) + call densities % push_back(density * 0.269086_8) + call names % push_back('Xe134.' // xs) + call densities % push_back(density * 0.104357_8) + call names % push_back('Xe136.' // xs) + call densities % push_back(density * 0.088573_8) case ('cs') - call list_names % append('55133.' // xs) - call list_density % append(density) + call names % push_back('Cs133.' // xs) + call densities % push_back(density) case ('ba') - call list_names % append('56130.' // xs) - call list_density % append(density * 0.00106_8) - call list_names % append('56132.' // xs) - call list_density % append(density * 0.00101_8) - call list_names % append('56134.' // xs) - call list_density % append(density * 0.02417_8) - call list_names % append('56135.' // xs) - call list_density % append(density * 0.06592_8) - call list_names % append('56136.' // xs) - call list_density % append(density * 0.07854_8) - call list_names % append('56137.' // xs) - call list_density % append(density * 0.11232_8) - call list_names % append('56138.' // xs) - call list_density % append(density * 0.71698_8) + call names % push_back('Ba130.' // xs) + call densities % push_back(density * 0.00106_8) + call names % push_back('Ba132.' // xs) + call densities % push_back(density * 0.00101_8) + call names % push_back('Ba134.' // xs) + call densities % push_back(density * 0.02417_8) + call names % push_back('Ba135.' // xs) + call densities % push_back(density * 0.06592_8) + call names % push_back('Ba136.' // xs) + call densities % push_back(density * 0.07854_8) + call names % push_back('Ba137.' // xs) + call densities % push_back(density * 0.11232_8) + call names % push_back('Ba138.' // xs) + call densities % push_back(density * 0.71698_8) case ('la') - call list_names % append('57138.' // xs) - call list_density % append(density * 0.0008881_8) - call list_names % append('57139.' // xs) - call list_density % append(density * 0.9991119_8) + call names % push_back('La138.' // xs) + call densities % push_back(density * 0.0008881_8) + call names % push_back('La139.' // xs) + call densities % push_back(density * 0.9991119_8) case ('ce') - call list_names % append('58136.' // xs) - call list_density % append(density * 0.00185_8) - call list_names % append('58138.' // xs) - call list_density % append(density * 0.00251_8) - call list_names % append('58140.' // xs) - call list_density % append(density * 0.88450_8) - call list_names % append('58142.' // xs) - call list_density % append(density * 0.11114_8) + call names % push_back('Ce136.' // xs) + call densities % push_back(density * 0.00185_8) + call names % push_back('Ce138.' // xs) + call densities % push_back(density * 0.00251_8) + call names % push_back('Ce140.' // xs) + call densities % push_back(density * 0.88450_8) + call names % push_back('Ce142.' // xs) + call densities % push_back(density * 0.11114_8) case ('pr') - call list_names % append('59141.' // xs) - call list_density % append(density) + call names % push_back('Pr141.' // xs) + call densities % push_back(density) case ('nd') - call list_names % append('60142.' // xs) - call list_density % append(density * 0.27152_8) - call list_names % append('60143.' // xs) - call list_density % append(density * 0.12174_8) - call list_names % append('60144.' // xs) - call list_density % append(density * 0.23798_8) - call list_names % append('60145.' // xs) - call list_density % append(density * 0.08293_8) - call list_names % append('60146.' // xs) - call list_density % append(density * 0.17189_8) - call list_names % append('60148.' // xs) - call list_density % append(density * 0.05756_8) - call list_names % append('60150.' // xs) - call list_density % append(density * 0.05638_8) + call names % push_back('Nd142.' // xs) + call densities % push_back(density * 0.27152_8) + call names % push_back('Nd143.' // xs) + call densities % push_back(density * 0.12174_8) + call names % push_back('Nd144.' // xs) + call densities % push_back(density * 0.23798_8) + call names % push_back('Nd145.' // xs) + call densities % push_back(density * 0.08293_8) + call names % push_back('Nd146.' // xs) + call densities % push_back(density * 0.17189_8) + call names % push_back('Nd148.' // xs) + call densities % push_back(density * 0.05756_8) + call names % push_back('Nd150.' // xs) + call densities % push_back(density * 0.05638_8) case ('sm') - call list_names % append('62144.' // xs) - call list_density % append(density * 0.0307_8) - call list_names % append('62147.' // xs) - call list_density % append(density * 0.1499_8) - call list_names % append('62148.' // xs) - call list_density % append(density * 0.1124_8) - call list_names % append('62149.' // xs) - call list_density % append(density * 0.1382_8) - call list_names % append('62150.' // xs) - call list_density % append(density * 0.0738_8) - call list_names % append('62152.' // xs) - call list_density % append(density * 0.2675_8) - call list_names % append('62154.' // xs) - call list_density % append(density * 0.2275_8) + call names % push_back('Sm144.' // xs) + call densities % push_back(density * 0.0307_8) + call names % push_back('Sm147.' // xs) + call densities % push_back(density * 0.1499_8) + call names % push_back('Sm148.' // xs) + call densities % push_back(density * 0.1124_8) + call names % push_back('Sm149.' // xs) + call densities % push_back(density * 0.1382_8) + call names % push_back('Sm150.' // xs) + call densities % push_back(density * 0.0738_8) + call names % push_back('Sm152.' // xs) + call densities % push_back(density * 0.2675_8) + call names % push_back('Sm154.' // xs) + call densities % push_back(density * 0.2275_8) case ('eu') - call list_names % append('63151.' // xs) - call list_density % append(density * 0.4781_8) - call list_names % append('63153.' // xs) - call list_density % append(density * 0.5219_8) + call names % push_back('Eu151.' // xs) + call densities % push_back(density * 0.4781_8) + call names % push_back('Eu153.' // xs) + call densities % push_back(density * 0.5219_8) case ('gd') - call list_names % append('64152.' // xs) - call list_density % append(density * 0.0020_8) - call list_names % append('64154.' // xs) - call list_density % append(density * 0.0218_8) - call list_names % append('64155.' // xs) - call list_density % append(density * 0.1480_8) - call list_names % append('64156.' // xs) - call list_density % append(density * 0.2047_8) - call list_names % append('64157.' // xs) - call list_density % append(density * 0.1565_8) - call list_names % append('64158.' // xs) - call list_density % append(density * 0.2484_8) - call list_names % append('64160.' // xs) - call list_density % append(density * 0.2186_8) + call names % push_back('Gd152.' // xs) + call densities % push_back(density * 0.0020_8) + call names % push_back('Gd154.' // xs) + call densities % push_back(density * 0.0218_8) + call names % push_back('Gd155.' // xs) + call densities % push_back(density * 0.1480_8) + call names % push_back('Gd156.' // xs) + call densities % push_back(density * 0.2047_8) + call names % push_back('Gd157.' // xs) + call densities % push_back(density * 0.1565_8) + call names % push_back('Gd158.' // xs) + call densities % push_back(density * 0.2484_8) + call names % push_back('Gd160.' // xs) + call densities % push_back(density * 0.2186_8) case ('tb') - call list_names % append('65159.' // xs) - call list_density % append(density) + call names % push_back('Tb159.' // xs) + call densities % push_back(density) case ('dy') - call list_names % append('66156.' // xs) - call list_density % append(density * 0.00056_8) - call list_names % append('66158.' // xs) - call list_density % append(density * 0.00095_8) - call list_names % append('66160.' // xs) - call list_density % append(density * 0.02329_8) - call list_names % append('66161.' // xs) - call list_density % append(density * 0.18889_8) - call list_names % append('66162.' // xs) - call list_density % append(density * 0.25475_8) - call list_names % append('66163.' // xs) - call list_density % append(density * 0.24896_8) - call list_names % append('66164.' // xs) - call list_density % append(density * 0.28260_8) + call names % push_back('Dy156.' // xs) + call densities % push_back(density * 0.00056_8) + call names % push_back('Dy158.' // xs) + call densities % push_back(density * 0.00095_8) + call names % push_back('Dy160.' // xs) + call densities % push_back(density * 0.02329_8) + call names % push_back('Dy161.' // xs) + call densities % push_back(density * 0.18889_8) + call names % push_back('Dy162.' // xs) + call densities % push_back(density * 0.25475_8) + call names % push_back('Dy163.' // xs) + call densities % push_back(density * 0.24896_8) + call names % push_back('Dy164.' // xs) + call densities % push_back(density * 0.28260_8) case ('ho') - call list_names % append('67165.' // xs) - call list_density % append(density) + call names % push_back('Ho165.' // xs) + call densities % push_back(density) case ('er') - call list_names % append('68162.' // xs) - call list_density % append(density * 0.00139_8) - call list_names % append('68164.' // xs) - call list_density % append(density * 0.01601_8) - call list_names % append('68166.' // xs) - call list_density % append(density * 0.33503_8) - call list_names % append('68167.' // xs) - call list_density % append(density * 0.22869_8) - call list_names % append('68168.' // xs) - call list_density % append(density * 0.26978_8) - call list_names % append('68170.' // xs) - call list_density % append(density * 0.14910_8) + call names % push_back('Er162.' // xs) + call densities % push_back(density * 0.00139_8) + call names % push_back('Er164.' // xs) + call densities % push_back(density * 0.01601_8) + call names % push_back('Er166.' // xs) + call densities % push_back(density * 0.33503_8) + call names % push_back('Er167.' // xs) + call densities % push_back(density * 0.22869_8) + call names % push_back('Er168.' // xs) + call densities % push_back(density * 0.26978_8) + call names % push_back('Er170.' // xs) + call densities % push_back(density * 0.14910_8) case ('tm') - call list_names % append('69169.' // xs) - call list_density % append(density) + call names % push_back('Tm169.' // xs) + call densities % push_back(density) case ('yb') - call list_names % append('70168.' // xs) - call list_density % append(density * 0.00123_8) - call list_names % append('70170.' // xs) - call list_density % append(density * 0.02982_8) - call list_names % append('70171.' // xs) - call list_density % append(density * 0.1409_8) - call list_names % append('70172.' // xs) - call list_density % append(density * 0.2168_8) - call list_names % append('70173.' // xs) - call list_density % append(density * 0.16103_8) - call list_names % append('70174.' // xs) - call list_density % append(density * 0.32026_8) - call list_names % append('70176.' // xs) - call list_density % append(density * 0.12996_8) + call names % push_back('Yb168.' // xs) + call densities % push_back(density * 0.00123_8) + call names % push_back('Yb170.' // xs) + call densities % push_back(density * 0.02982_8) + call names % push_back('Yb171.' // xs) + call densities % push_back(density * 0.1409_8) + call names % push_back('Yb172.' // xs) + call densities % push_back(density * 0.2168_8) + call names % push_back('Yb173.' // xs) + call densities % push_back(density * 0.16103_8) + call names % push_back('Yb174.' // xs) + call densities % push_back(density * 0.32026_8) + call names % push_back('Yb176.' // xs) + call densities % push_back(density * 0.12996_8) case ('lu') - call list_names % append('71175.' // xs) - call list_density % append(density * 0.97401_8) - call list_names % append('71176.' // xs) - call list_density % append(density * 0.02599_8) + call names % push_back('Lu175.' // xs) + call densities % push_back(density * 0.97401_8) + call names % push_back('Lu176.' // xs) + call densities % push_back(density * 0.02599_8) case ('hf') - call list_names % append('72174.' // xs) - call list_density % append(density * 0.0016_8) - call list_names % append('72176.' // xs) - call list_density % append(density * 0.0526_8) - call list_names % append('72177.' // xs) - call list_density % append(density * 0.1860_8) - call list_names % append('72178.' // xs) - call list_density % append(density * 0.2728_8) - call list_names % append('72179.' // xs) - call list_density % append(density * 0.1362_8) - call list_names % append('72180.' // xs) - call list_density % append(density * 0.3508_8) + call names % push_back('Hf174.' // xs) + call densities % push_back(density * 0.0016_8) + call names % push_back('Hf176.' // xs) + call densities % push_back(density * 0.0526_8) + call names % push_back('Hf177.' // xs) + call densities % push_back(density * 0.1860_8) + call names % push_back('Hf178.' // xs) + call densities % push_back(density * 0.2728_8) + call names % push_back('Hf179.' // xs) + call densities % push_back(density * 0.1362_8) + call names % push_back('Hf180.' // xs) + call densities % push_back(density * 0.3508_8) case ('ta') if (default_expand == ENDF_BVII0 .or. & (default_expand >= JEFF_311 .and. default_expand <= JEFF_312) .or. & (default_expand >= JENDL_32 .and. default_expand <= JENDL_40)) then - call list_names % append('73181.' // xs) - call list_density % append(density) + call names % push_back('Ta181.' // xs) + call densities % push_back(density) else - call list_names % append('73180.' // xs) - call list_density % append(density * 0.0001201_8) - call list_names % append('73181.' // xs) - call list_density % append(density * 0.9998799_8) + call names % push_back('Ta180.' // xs) + call densities % push_back(density * 0.0001201_8) + call names % push_back('Ta181.' // xs) + call densities % push_back(density * 0.9998799_8) end if case ('w') @@ -5486,139 +5424,139 @@ contains .or. default_expand == JEFF_312 .or. & (default_expand >= JENDL_32 .and. default_expand <= JENDL_33)) then ! Combine W-180 with W-182 - call list_names % append('74182.' // xs) - call list_density % append(density * 0.2662_8) - call list_names % append('74183.' // xs) - call list_density % append(density * 0.1431_8) - call list_names % append('74184.' // xs) - call list_density % append(density * 0.3064_8) - call list_names % append('74186.' // xs) - call list_density % append(density * 0.2843_8) + call names % push_back('W182.' // xs) + call densities % push_back(density * 0.2662_8) + call names % push_back('W183.' // xs) + call densities % push_back(density * 0.1431_8) + call names % push_back('W184.' // xs) + call densities % push_back(density * 0.3064_8) + call names % push_back('W186.' // xs) + call densities % push_back(density * 0.2843_8) else - call list_names % append('74180.' // xs) - call list_density % append(density * 0.0012_8) - call list_names % append('74182.' // xs) - call list_density % append(density * 0.2650_8) - call list_names % append('74183.' // xs) - call list_density % append(density * 0.1431_8) - call list_names % append('74184.' // xs) - call list_density % append(density * 0.3064_8) - call list_names % append('74186.' // xs) - call list_density % append(density * 0.2843_8) + call names % push_back('W180.' // xs) + call densities % push_back(density * 0.0012_8) + call names % push_back('W182.' // xs) + call densities % push_back(density * 0.2650_8) + call names % push_back('W183.' // xs) + call densities % push_back(density * 0.1431_8) + call names % push_back('W184.' // xs) + call densities % push_back(density * 0.3064_8) + call names % push_back('W186.' // xs) + call densities % push_back(density * 0.2843_8) end if case ('re') - call list_names % append('75185.' // xs) - call list_density % append(density * 0.3740_8) - call list_names % append('75187.' // xs) - call list_density % append(density * 0.6260_8) + call names % push_back('Re185.' // xs) + call densities % push_back(density * 0.3740_8) + call names % push_back('Re187.' // xs) + call densities % push_back(density * 0.6260_8) case ('os') if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then - call list_names % append('76000.' // xs) - call list_density % append(density) + call names % push_back('Os0.' // xs) + call densities % push_back(density) else - call list_names % append('76184.' // xs) - call list_density % append(density * 0.0002_8) - call list_names % append('76186.' // xs) - call list_density % append(density * 0.0159_8) - call list_names % append('76187.' // xs) - call list_density % append(density * 0.0196_8) - call list_names % append('76188.' // xs) - call list_density % append(density * 0.1324_8) - call list_names % append('76189.' // xs) - call list_density % append(density * 0.1615_8) - call list_names % append('76190.' // xs) - call list_density % append(density * 0.2626_8) - call list_names % append('76192.' // xs) - call list_density % append(density * 0.4078_8) + call names % push_back('Os184.' // xs) + call densities % push_back(density * 0.0002_8) + call names % push_back('Os186.' // xs) + call densities % push_back(density * 0.0159_8) + call names % push_back('Os187.' // xs) + call densities % push_back(density * 0.0196_8) + call names % push_back('Os188.' // xs) + call densities % push_back(density * 0.1324_8) + call names % push_back('Os189.' // xs) + call densities % push_back(density * 0.1615_8) + call names % push_back('Os190.' // xs) + call densities % push_back(density * 0.2626_8) + call names % push_back('Os192.' // xs) + call densities % push_back(density * 0.4078_8) end if case ('ir') - call list_names % append('77191.' // xs) - call list_density % append(density * 0.373_8) - call list_names % append('77193.' // xs) - call list_density % append(density * 0.627_8) + call names % push_back('Ir191.' // xs) + call densities % push_back(density * 0.373_8) + call names % push_back('Ir193.' // xs) + call densities % push_back(density * 0.627_8) case ('pt') if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then - call list_names % append('78000.' // xs) - call list_density % append(density) + call names % push_back('Pt0.' // xs) + call densities % push_back(density) else - call list_names % append('78190.' // xs) - call list_density % append(density * 0.00012_8) - call list_names % append('78192.' // xs) - call list_density % append(density * 0.00782_8) - call list_names % append('78194.' // xs) - call list_density % append(density * 0.3286_8) - call list_names % append('78195.' // xs) - call list_density % append(density * 0.3378_8) - call list_names % append('78196.' // xs) - call list_density % append(density * 0.2521_8) - call list_names % append('78198.' // xs) - call list_density % append(density * 0.07356_8) + call names % push_back('Pt190.' // xs) + call densities % push_back(density * 0.00012_8) + call names % push_back('Pt192.' // xs) + call densities % push_back(density * 0.00782_8) + call names % push_back('Pt194.' // xs) + call densities % push_back(density * 0.3286_8) + call names % push_back('Pt195.' // xs) + call densities % push_back(density * 0.3378_8) + call names % push_back('Pt196.' // xs) + call densities % push_back(density * 0.2521_8) + call names % push_back('Pt198.' // xs) + call densities % push_back(density * 0.07356_8) end if case ('au') - call list_names % append('79197.' // xs) - call list_density % append(density) + call names % push_back('Au197.' // xs) + call densities % push_back(density) case ('hg') - call list_names % append('80196.' // xs) - call list_density % append(density * 0.0015_8) - call list_names % append('80198.' // xs) - call list_density % append(density * 0.0997_8) - call list_names % append('80199.' // xs) - call list_density % append(density * 0.1687_8) - call list_names % append('80200.' // xs) - call list_density % append(density * 0.2310_8) - call list_names % append('80201.' // xs) - call list_density % append(density * 0.1318_8) - call list_names % append('80202.' // xs) - call list_density % append(density * 0.2986_8) - call list_names % append('80204.' // xs) - call list_density % append(density * 0.0687_8) + call names % push_back('Hg196.' // xs) + call densities % push_back(density * 0.0015_8) + call names % push_back('Hg198.' // xs) + call densities % push_back(density * 0.0997_8) + call names % push_back('Hg199.' // xs) + call densities % push_back(density * 0.1687_8) + call names % push_back('Hg200.' // xs) + call densities % push_back(density * 0.2310_8) + call names % push_back('Hg201.' // xs) + call densities % push_back(density * 0.1318_8) + call names % push_back('Hg202.' // xs) + call densities % push_back(density * 0.2986_8) + call names % push_back('Hg204.' // xs) + call densities % push_back(density * 0.0687_8) case ('tl') if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then - call list_names % append('81000.' // xs) - call list_density % append(density) + call names % push_back('Tl0.' // xs) + call densities % push_back(density) else - call list_names % append('81203.' // xs) - call list_density % append(density * 0.2952_8) - call list_names % append('81205.' // xs) - call list_density % append(density * 0.7048_8) + call names % push_back('Tl203.' // xs) + call densities % push_back(density * 0.2952_8) + call names % push_back('Tl205.' // xs) + call densities % push_back(density * 0.7048_8) end if case ('pb') - call list_names % append('82204.' // xs) - call list_density % append(density * 0.014_8) - call list_names % append('82206.' // xs) - call list_density % append(density * 0.241_8) - call list_names % append('82207.' // xs) - call list_density % append(density * 0.221_8) - call list_names % append('82208.' // xs) - call list_density % append(density * 0.524_8) + call names % push_back('Pb204.' // xs) + call densities % push_back(density * 0.014_8) + call names % push_back('Pb206.' // xs) + call densities % push_back(density * 0.241_8) + call names % push_back('Pb207.' // xs) + call densities % push_back(density * 0.221_8) + call names % push_back('Pb208.' // xs) + call densities % push_back(density * 0.524_8) case ('bi') - call list_names % append('83209.' // xs) - call list_density % append(density) + call names % push_back('Bi209.' // xs) + call densities % push_back(density) case ('th') - call list_names % append('90232.' // xs) - call list_density % append(density) + call names % push_back('Th232.' // xs) + call densities % push_back(density) case ('pa') - call list_names % append('91231.' // xs) - call list_density % append(density) + call names % push_back('Pa231.' // xs) + call densities % push_back(density) case ('u') - call list_names % append('92234.' // xs) - call list_density % append(density * 0.000054_8) - call list_names % append('92235.' // xs) - call list_density % append(density * 0.007204_8) - call list_names % append('92238.' // xs) - call list_density % append(density * 0.992742_8) + call names % push_back('U234.' // xs) + call densities % push_back(density * 0.000054_8) + call names % push_back('U235.' // xs) + call densities % push_back(density * 0.007204_8) + call names % push_back('U238.' // xs) + call densities % push_back(density * 0.992742_8) case default call fatal_error("Cannot expand element: " // name) @@ -5714,4 +5652,405 @@ contains end do end subroutine generate_rpn +!=============================================================================== +! NORMALIZE_AO normalizes the atom or weight percentages for each material +!=============================================================================== + + subroutine normalize_ao() + integer :: i ! index in materials array + integer :: j ! index over nuclides in material + real(8) :: sum_percent ! summation + real(8) :: awr ! atomic weight ratio + real(8) :: x ! atom percent + logical :: percent_in_atom ! nuclides specified in atom percent? + logical :: density_in_atom ! density specified in atom/b-cm? + + do i = 1, size(materials) + associate (mat => materials(i)) + percent_in_atom = (mat % atom_density(1) > ZERO) + density_in_atom = (mat % density > ZERO) + + sum_percent = ZERO + do j = 1, size(mat % nuclide) + ! determine atomic weight ratio + if (run_CE) then + awr = nuclides(mat % nuclide(j)) % awr + else + awr = ONE + end if + + ! if given weight percent, convert all values so that they are divided + ! by awr. thus, when a sum is done over the values, it's actually + ! sum(w/awr) + if (.not. percent_in_atom) then + mat % atom_density(j) = -mat % atom_density(j) / awr + end if + end do + + ! determine normalized atom percents. if given atom percents, this is + ! straightforward. if given weight percents, the value is w/awr and is + ! divided by sum(w/awr) + sum_percent = sum(mat % atom_density) + mat % atom_density = mat % atom_density / sum_percent + + ! Change density in g/cm^3 to atom/b-cm. Since all values are now in atom + ! percent, the sum needs to be re-evaluated as 1/sum(x*awr) + if (.not. density_in_atom) then + sum_percent = ZERO + do j = 1, mat % n_nuclides + if (run_CE) then + awr = nuclides(mat % nuclide(j)) % awr + else + awr = ONE + end if + x = mat % atom_density(j) + sum_percent = sum_percent + x*awr + end do + sum_percent = ONE / sum_percent + mat%density = -mat % density * N_AVOGADRO & + / MASS_NEUTRON * sum_percent + end if + + ! Calculate nuclide atom densities + mat % atom_density = mat % density * mat % atom_density + end associate + end do + + end subroutine normalize_ao + +!=============================================================================== +! ASSIGN_SAB_TABLES assigns S(alpha,beta) tables to specific nuclides within +! materials so the code knows when to apply bound thermal scattering data +!=============================================================================== + + subroutine assign_sab_tables() + integer :: i ! index in materials array + integer :: j ! index over nuclides in material + integer :: k ! index over S(a,b) tables in material + integer :: m ! position for sorting + integer :: temp_nuclide ! temporary value for sorting + integer :: temp_table ! temporary value for sorting + + do i = 1, size(materials) + ! Skip materials with no S(a,b) tables + if (.not. allocated(materials(i) % i_sab_tables)) cycle + + associate (mat => materials(i)) + + ASSIGN_SAB: do k = 1, size(mat % i_sab_tables) + ! In order to know which nuclide the S(a,b) table applies to, we need + ! to search through the list of nuclides for one which has a matching + ! zaid + associate (sab => sab_tables(mat % i_sab_tables(k))) + FIND_NUCLIDE: do j = 1, size(mat % nuclide) + if (any(sab % zaid == nuclides(mat % nuclide(j)) % zaid)) then + mat % i_sab_nuclides(k) = j + exit FIND_NUCLIDE + end if + end do FIND_NUCLIDE + end associate + + ! Check to make sure S(a,b) table matched a nuclide + if (mat % i_sab_nuclides(k) == NONE) then + call fatal_error("S(a,b) table " // trim(mat % & + sab_names(k)) // " did not match any nuclide on material " & + // trim(to_str(mat % id))) + end if + end do ASSIGN_SAB + + ! If there are multiple S(a,b) tables, we need to make sure that the + ! entries in i_sab_nuclides are sorted or else they won't be applied + ! correctly in the cross_section module. The algorithm here is a simple + ! insertion sort -- don't need anything fancy! + + if (size(mat % i_sab_tables) > 1) then + SORT_SAB: do k = 2, size(mat % i_sab_tables) + ! Save value to move + m = k + temp_nuclide = mat % i_sab_nuclides(k) + temp_table = mat % i_sab_tables(k) + + MOVE_OVER: do + ! Check if insertion value is greater than (m-1)th value + if (temp_nuclide >= mat % i_sab_nuclides(m-1)) exit + + ! Move values over until hitting one that's not larger + mat % i_sab_nuclides(m) = mat % i_sab_nuclides(m-1) + mat % i_sab_tables(m) = mat % i_sab_tables(m-1) + m = m - 1 + + ! Exit if we've reached the beginning of the list + if (m == 1) exit + end do MOVE_OVER + + ! Put the original value into its new position + mat % i_sab_nuclides(m) = temp_nuclide + mat % i_sab_tables(m) = temp_table + end do SORT_SAB + end if + + ! Deallocate temporary arrays for names of nuclides and S(a,b) tables + if (allocated(mat % names)) deallocate(mat % names) + end associate + end do + end subroutine assign_sab_tables + + subroutine read_ce_cross_sections(libraries, library_dict) + type(Library), intent(in) :: libraries(:) + type(DictCharInt), intent(inout) :: library_dict + + integer :: i, j + integer :: i_library + integer :: i_nuclide + integer :: i_sab + integer :: index_nuc_zaid ! index in nuclide ZAID + integer :: zaid ! ZAID of nuclide + integer(HID_T) :: file_id + integer(HID_T) :: group_id + logical :: mp_found ! if windowed multipole libraries were found + character(MAX_WORD_LEN) :: name + type(SetChar) :: already_read + + allocate(nuclides(n_nuclides_total)) + allocate(sab_tables(n_sab_tables)) +!$omp parallel + allocate(micro_xs(n_nuclides_total)) +!$omp end parallel + + index_nuc_zaid = 0 + + ! Read cross sections + do i = 1, size(materials) + do j = 1, size(materials(i) % names) + name = materials(i) % names(j) + + if (.not. already_read % contains(name)) then + i_library = library_dict % get_key(to_lower(name)) + i_nuclide = nuclide_dict % get_key(to_lower(name)) + + call write_message('Reading ' // trim(name) // ' from ' // & + trim(libraries(i_library) % path), 6) + + ! Read nuclide data from HDF5 + file_id = file_open(libraries(i_library) % path, 'r') + group_id = open_group(file_id, name) + call nuclides(i_nuclide) % from_hdf5(group_id) + call close_group(group_id) + call file_close(file_id) + + ! Assign resonant scattering data + if (treat_res_scat) call read_0K_elastic_scattering(& + nuclides(i_nuclide), libraries, library_dict) + + ! Determine if minimum/maximum energy for this nuclide is greater/less + ! than the previous + energy_min_neutron = max(energy_min_neutron, nuclides(i_nuclide) % energy(1)) + energy_max_neutron = min(energy_max_neutron, nuclides(i_nuclide) % energy(& + size(nuclides(i_nuclide) % energy))) + + ! Add name and alias to dictionary + call already_read % add(name) + + ! Construct dictionary mapping nuclide zaids to [1,N] -- used for + ! unresolved resonance probability tables + zaid = nuclides(i_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 + + ! Read multipole file into the appropriate entry on the nuclides array + if (multipole_active) call read_multipole_data(i_nuclide) + end if + + ! Check if material is fissionable + if (nuclides(materials(i) % nuclide(j)) % fissionable) then + materials(i) % fissionable = .true. + end if + end do + end do + + do i = 1, size(materials) + ! Skip materials with no S(a,b) tables + if (.not. allocated(materials(i) % sab_names)) cycle + + do j = 1, size(materials(i) % sab_names) + ! Get name of S(a,b) table + name = materials(i) % sab_names(j) + + if (.not. already_read % contains(name)) then + i_library = library_dict % get_key(to_lower(name)) + i_sab = sab_dict % get_key(to_lower(name)) + + call write_message('Reading ' // trim(name) // ' from ' // & + trim(libraries(i_library) % path), 6) + + ! Read S(a,b) data from HDF5 + file_id = file_open(libraries(i_library) % path, 'r') + group_id = open_group(file_id, name) + call sab_tables(i_sab) % from_hdf5(group_id) + call close_group(group_id) + call file_close(file_id) + + ! Add name to dictionary + call already_read % add(name) + end if + end do + end do + + n_nuc_zaid_total = index_nuc_zaid + + ! Associate S(a,b) tables with specific nuclides + call assign_sab_tables() + + ! Show which nuclide results in lowest energy for neutron transport + do i = 1, size(nuclides) + 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) + exit + 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, size(nuclides) + 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_ce_cross_sections + +!=============================================================================== +! READ_0K_ELASTIC_SCATTERING +!=============================================================================== + + subroutine read_0K_elastic_scattering(nuc, libraries, library_dict) + type(Nuclide), intent(inout) :: nuc + type(Library), intent(in) :: libraries(:) + type(DictCharInt), intent(inout) :: library_dict + + integer :: i, j + integer :: i_library + integer(HID_T) :: file_id + integer(HID_T) :: group_id + real(8) :: xs_cdf_sum + character(MAX_WORD_LEN) :: name + type(Nuclide) :: resonant_nuc + + do i = 1, size(nuclides_0K) + if (nuc % name == nuclides_0K(i) % name) then + ! Copy basic information from settings.xml + nuc % resonant = .true. + nuc % name_0K = trim(nuclides_0K(i) % name_0K) + nuc % scheme = trim(nuclides_0K(i) % scheme) + nuc % E_min = nuclides_0K(i) % E_min + nuc % E_max = nuclides_0K(i) % E_max + + ! Get index in libraries array + name = nuc % name_0K + i_library = library_dict % get_key(to_lower(name)) + + call write_message('Reading ' // trim(name) // ' 0K data from ' // & + trim(libraries(i_library) % path), 6) + + ! Read nuclide data from HDF5 + file_id = file_open(libraries(i_library) % path, 'r') + group_id = open_group(file_id, name) + call resonant_nuc % from_hdf5(group_id) + call close_group(group_id) + call file_close(file_id) + + ! Copy 0K energy grid and elastic scattering cross section + call move_alloc(TO=nuc % energy_0K, FROM=resonant_nuc % energy) + call move_alloc(TO=nuc % elastic_0K, FROM=resonant_nuc % elastic) + nuc % n_grid_0K = size(nuc % energy_0K) + + ! Build CDF for 0K elastic scattering + xs_cdf_sum = ZERO + allocate(nuc % xs_cdf(size(nuc % energy_0K))) + + do j = 1, size(nuc % energy_0K) - 1 + ! Negative cross sections result in a CDF that is not monotonically + ! increasing. Set all negative xs values to ZERO. + if (nuc % elastic_0K(j) < ZERO) nuc % elastic_0K(j) = ZERO + + ! build xs cdf + xs_cdf_sum = xs_cdf_sum & + + (sqrt(nuc % energy_0K(j)) * nuc % elastic_0K(j) & + + sqrt(nuc % energy_0K(j+1)) * nuc % elastic_0K(j+1)) / TWO & + * (nuc % energy_0K(j+1) - nuc % energy_0K(j)) + nuc % xs_cdf(j) = xs_cdf_sum + end do + + exit + end if + end do + + end subroutine read_0K_elastic_scattering + +!=============================================================================== +! READ_MULTIPOLE_DATA checks for the existence of a multipole library in the +! directory and loads it using multipole_read +!=============================================================================== + + subroutine read_multipole_data(i_table) + + integer, intent(in) :: i_table ! index in nuclides/sab_tables + + integer :: i + 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. + associate (nuc => nuclides(i_table)) + + write(zaid_string, '(I6.6)') nuc % zaid + filename = trim(path_multipole) // zaid_string // ".h5" + + ! Check if Multipole library exists and is readable + inquire(FILE=filename, EXIST=file_exists, READ=readable) + if (.not. file_exists) then + nuc % mp_present = .false. + return + elseif (readable(1:3) == 'NO') then + call fatal_error("Multipole library '" // trim(filename) // "' is not & + &readable! Change file permissions with chmod command.") + end if + + ! Display message + call write_message("Loading Multipole XS table: " // filename, 6) + + allocate(nuc % multipole) + + ! Call the read routine + call multipole_read(filename, nuc % multipole, i_table) + nuc % mp_present = .true. + + ! Recreate nu-fission cross section + if (nuc % fissionable) then + do i = 1, size(nuc % energy) + nuc % nu_fission(i) = nuc % nu(nuc % energy(i), EMISSION_TOTAL) * & + nuc % fission(i) + end do + else + nuc % nu_fission(:) = ZERO + end if + + end associate + + end subroutine read_multipole_data + end module input_xml diff --git a/src/material_header.F90 b/src/material_header.F90 index 91c4cdfb82..be4c860e22 100644 --- a/src/material_header.F90 +++ b/src/material_header.F90 @@ -27,8 +27,8 @@ module material_header integer, allocatable :: i_sab_tables(:) ! index in sab_tables ! Temporary names read during initialization - character(12), allocatable :: names(:) ! isotope names - character(12), allocatable :: sab_names(:) ! name of S(a,b) table + character(20), allocatable :: names(:) ! isotope names + character(20), allocatable :: sab_names(:) ! name of S(a,b) table ! Does this material contain fissionable nuclides? logical :: fissionable = .false. diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 38d6ebc6c5..491bd84091 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -23,10 +23,9 @@ contains integer :: i ! index in materials array integer :: j ! index over nuclides in material - integer :: i_listing ! index in xs_listings array + integer :: i_xsdata ! index in list 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 + character(20) :: name ! name of isotope, e.g. 92235.03c integer :: representation ! Data representation type(Material), pointer :: mat type(SetChar) :: already_read @@ -37,6 +36,7 @@ contains character(MAX_LINE_LEN) :: temp_str logical :: get_kfiss, get_fiss integer :: l + type(DictCharInt) :: xsdata_dict ! Check if cross_sections.xml exists inquire(FILE=path_cross_sections, EXIST=file_exists) @@ -53,7 +53,17 @@ contains ! Get node list of all call get_node_list(doc, "xsdata", node_xsdata_list) - n_listings = get_list_size(node_xsdata_list) + + ! Build dictionary mapping nuclide names to an index in the node + ! list + do i = 1, get_list_size(node_xsdata_list) + ! Get pointer to xsdata table XML node + call get_list_item(node_xsdata_list, i, node_xsdata) + + ! Get name and create pair (name, i) + call get_node_value(node_xsdata, "name", name) + call xsdata_dict % add_key(to_lower(name), i) + end do ! allocate arrays for ACE table storage and cross section cache allocate(nuclides_MG(n_nuclides_total)) @@ -89,13 +99,11 @@ contains name = mat % names(j) if (.not. already_read % contains(name)) then - i_listing = xs_listing_dict % get_key(to_lower(name)) + i_xsdata = xsdata_dict % get_key(to_lower(name)) i_nuclide = mat % nuclide(j) - name = xs_listings(i_listing) % name - alias = xs_listings(i_listing) % alias ! Get pointer to xsdata table XML node - call get_list_item(node_xsdata_list, i_listing, node_xsdata) + call get_list_item(node_xsdata_list, i_xsdata, node_xsdata) call write_message("Loading " // trim(name) // " Data...", 5) @@ -125,11 +133,10 @@ contains ! Now read in the data specific to the type we just declared call nuclides_MG(i_nuclide) % obj % init_file(node_xsdata, & - energy_groups, get_kfiss, get_fiss, max_order, i_listing) + energy_groups, get_kfiss, get_fiss, max_order) - ! Add name and alias to dictionary + ! Add name to dictionary call already_read % add(name) - call already_read % add(alias) end if end do NUCLIDE_LOOP end do MATERIAL_LOOP @@ -185,8 +192,8 @@ contains allocate(MgxsAngle :: macro_xs(i_mat) % obj) end select call macro_xs(i_mat) % obj % combine(mat, nuclides_MG, energy_groups, & - max_order, scatt_type, i_mat) + max_order, scatt_type) end do end subroutine create_macro_xs -end module mgxs_data \ No newline at end of file +end module mgxs_data diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 753f4e1498..06dd1e2138 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -21,7 +21,6 @@ module mgxs_header character(len=104) :: name ! name of dataset, 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) ! Fission information @@ -54,8 +53,8 @@ module mgxs_header !=============================================================================== abstract interface - subroutine mgxs_init_file_(this,node_xsdata,groups,get_kfiss,get_fiss, & - max_order,i_listing) + subroutine mgxs_init_file_(this, node_xsdata, groups, get_kfiss, get_fiss, & + max_order) import Mgxs, Node class(Mgxs), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml @@ -63,7 +62,6 @@ module mgxs_header logical, intent(in) :: get_kfiss ! Need Kappa-Fission? logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order - integer, intent(in) :: i_listing ! Index of listings array end subroutine mgxs_init_file_ subroutine mgxs_print_(this, unit) @@ -96,8 +94,7 @@ module mgxs_header end function mgxs_calc_f_ - subroutine mgxs_combine_(this,mat,nuclides,groups,max_order,scatt_type, & - i_listing) + subroutine mgxs_combine_(this, mat, nuclides, groups, max_order, scatt_type) import Mgxs, Material, MgxsContainer class(Mgxs), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material @@ -105,7 +102,6 @@ module mgxs_header integer, intent(in) :: groups ! Number of E groups integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? - integer, intent(in) :: i_listing ! Index in listings end subroutine mgxs_combine_ function mgxs_sample_fission_(this, gin, uvw) result(gout) @@ -201,10 +197,9 @@ module mgxs_header ! the xsdata object node itself. !=============================================================================== - subroutine mgxs_init_file(this, node_xsdata, i_listing) + subroutine mgxs_init_file(this, node_xsdata) class(Mgxs), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml - integer, intent(in) :: i_listing ! Index in listings array character(MAX_LINE_LEN) :: temp_str @@ -254,20 +249,16 @@ module mgxs_header call fatal_error("Fissionable element must be set!") end if - ! Keep track of what listing is associated with this nuclide - this % listing = i_listing - end subroutine mgxs_init_file subroutine mgxsiso_init_file(this, node_xsdata, groups, get_kfiss, get_fiss, & - max_order, i_listing) + max_order) class(MgxsIso), 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? integer, intent(in) :: max_order ! Maximum requested order - integer, intent(in) :: i_listing ! Index in listings array type(Node), pointer :: node_legendre_mu character(MAX_LINE_LEN) :: temp_str @@ -282,7 +273,7 @@ module mgxs_header integer :: legendre_mu_points, imu ! Call generic data gathering routine (will populate the metadata) - call mgxs_init_file(this, node_xsdata, i_listing) + call mgxs_init_file(this, node_xsdata) ! Load the more specific data allocate(this % nu_fission(groups)) @@ -564,14 +555,13 @@ module mgxs_header end subroutine mgxsiso_init_file subroutine mgxsang_init_file(this, node_xsdata, groups, get_kfiss, get_fiss, & - max_order, i_listing) + max_order) class(MgxsAngle), 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? integer, intent(in) :: max_order ! Maximum requested order - integer, intent(in) :: i_listing ! Index in listings array type(Node), pointer :: node_legendre_mu character(MAX_LINE_LEN) :: temp_str @@ -586,7 +576,7 @@ module mgxs_header integer :: legendre_mu_points, imu, ipol, iazi ! Call generic data gathering routine (will populate the metadata) - call mgxs_init_file(this, node_xsdata, i_listing) + call mgxs_init_file(this, node_xsdata) if (check_for_node(node_xsdata, "num_polar")) then call get_node_value(node_xsdata, "num_polar", this % n_pol) @@ -1318,11 +1308,10 @@ module mgxs_header ! objects !=============================================================================== - subroutine mgxs_combine(this, mat, scatt_type, i_listing) + subroutine mgxs_combine(this, mat, scatt_type) class(Mgxs), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material integer, intent(in) :: scatt_type ! How is data presented - integer, intent(in) :: i_listing ! Index in listings ! Fill in meta-data from material information if (mat % name == "") then @@ -1331,7 +1320,6 @@ module mgxs_header this % name = mat % name end if this % zaid = -mat % id - this % listing = i_listing this % fissionable = mat % fissionable this % scatt_type = scatt_type @@ -1342,15 +1330,13 @@ module mgxs_header end subroutine mgxs_combine - subroutine mgxsiso_combine(this, mat, nuclides, groups, max_order, scatt_type, & - i_listing) + subroutine mgxsiso_combine(this, mat, nuclides, groups, max_order, scatt_type) class(MgxsIso), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! How is data presented - integer, intent(in) :: i_listing ! Index in listings integer :: i ! loop index over nuclides integer :: gin, gout ! group indices @@ -1361,7 +1347,7 @@ module mgxs_header real(8), allocatable :: scatt_coeffs(:, :, :) ! Set the meta-data - call mgxs_combine(this, mat, scatt_type, i_listing) + call mgxs_combine(this, mat, scatt_type) ! Determine the scattering type of our data and ensure all scattering orders ! are the same. @@ -1538,15 +1524,13 @@ module mgxs_header end subroutine mgxsiso_combine - subroutine mgxsang_combine(this, mat, nuclides, groups, max_order, scatt_type, & - i_listing) + subroutine mgxsang_combine(this, mat, nuclides, groups, max_order, scatt_type) class(MgxsAngle), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? - integer, intent(in) :: i_listing ! Index in listings integer :: i ! loop index over nuclides integer :: gin, gout ! group indices @@ -1558,7 +1542,7 @@ module mgxs_header real(8), allocatable :: mult_denom(:, :, :, :), scatt_coeffs(:, :, :, :, :) ! Set the meta-data - call mgxs_combine(this, mat, scatt_type, i_listing) + call mgxs_combine(this, mat, scatt_type) ! Get the number of each polar and azi angles and make sure all the ! NuclideAngle types have the same number of these angles @@ -1939,4 +1923,4 @@ module mgxs_header end subroutine find_angle -end module mgxs_header \ No newline at end of file +end module mgxs_header diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 2c59e700d4..be61ff8b9e 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -5,13 +5,18 @@ 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 endf_header, only: Function1D, Constant1D, Polynomial, Tabulated1D use error, only: fatal_error, warning + use hdf5, only: HID_T, HSIZE_T, SIZE_T, h5iget_name_f + use h5lt, only: h5ltpath_valid_f + use hdf5_interface, only: read_attribute, open_group, close_group, & + open_dataset, read_dataset, close_dataset, get_shape use list_header, only: ListInt use math, only: evaluate_legendre use multipole_header, only: MultipoleArray use product_header, only: AngleEnergyContainer use reaction_header, only: Reaction + use secondary_uncorrelated, only: UncorrelatedAngleEnergy use stl_vector, only: VectorInt use string use urr_header, only: UrrData @@ -26,14 +31,14 @@ module nuclide_header type :: Nuclide ! Nuclide meta-data - character(12) :: name ! name of nuclide, e.g. 92235.03c + character(20) :: name ! name of nuclide, e.g. U235.71c integer :: zaid ! Z and A identifier, e.g. 92235 + integer :: metastable ! metastable state real(8) :: awr ! Atomic Weight Ratio - integer :: listing ! index in xs_listings real(8) :: kT ! temperature in MeV (k*T) ! Fission information - logical :: fissionable ! nuclide is fissionable? + logical :: fissionable = .false. ! nuclide is fissionable? ! Energy grid information integer :: n_grid ! # of nuclide grid points @@ -61,13 +66,13 @@ module nuclide_header ! Fission information logical :: has_partial_fission = .false. ! nuclide has partial fission reactions? - integer :: n_fission ! # of fission reactions + integer :: n_fission = 0 ! # of fission reactions integer :: n_precursor = 0 ! # of delayed neutron precursors integer, allocatable :: index_fission(:) ! indices in reactions class(Function1D), allocatable :: total_nu ! Unresolved resonance data - logical :: urr_present + logical :: urr_present = .false. integer :: urr_inelastic type(UrrData), pointer :: urr_data => null() @@ -84,7 +89,9 @@ module nuclide_header contains procedure :: clear => nuclide_clear procedure :: print => nuclide_print + procedure :: from_hdf5 => nuclide_from_hdf5 procedure :: nu => nuclide_nu + procedure, private :: create_derived => nuclide_create_derived end type Nuclide !=============================================================================== @@ -144,24 +151,14 @@ module nuclide_header end type MaterialMacroXS !=============================================================================== -! XSLISTING contains data read from a CE or MG cross_sections.xml file -! (or equivalent) +! LIBRARY 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 + type Library + integer :: type + character(MAX_WORD_LEN), allocatable :: materials(:) + character(MAX_FILE_LEN) :: path + end type Library contains @@ -173,18 +170,254 @@ module nuclide_header class(Nuclide), intent(inout) :: this ! The Nuclide object to clear if (associated(this % urr_data)) deallocate(this % urr_data) - - call this % reaction_index % clear() - if (associated(this % multipole)) deallocate(this % multipole) end subroutine nuclide_clear + subroutine nuclide_from_hdf5(this, group_id) + class(Nuclide), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer :: i + integer :: Z + integer :: A + integer :: n_reaction + integer :: hdf5_err + integer(HID_T) :: urr_group, nu_group + integer(HID_T) :: energy_dset + integer(HID_T) :: rx_group + integer(HID_T) :: total_nu + integer(SIZE_T) :: name_len, name_file_len + integer(HSIZE_T) :: dims(1) + character(MAX_WORD_LEN) :: temp + logical :: exists + + ! Get name of nuclide from group + name_len = len(this % name) + call h5iget_name_f(group_id, this % name, name_len, name_file_len, hdf5_err) + + ! Get rid of leading '/' + this % name = trim(this % name(2:)) + + call read_attribute(Z, group_id, 'Z') + call read_attribute(A, group_id, 'A') + call read_attribute(this % metastable, group_id, 'metastable') + this % zaid = 1000*Z + A + 400*this % metastable + call read_attribute(this % awr, group_id, 'atomic_weight_ratio') + call read_attribute(this % kT, group_id, 'temperature') + call read_attribute(n_reaction, group_id, 'n_reaction') + this % n_reaction = n_reaction + + ! Read energy grid + energy_dset = open_dataset(group_id, 'energy') + call get_shape(energy_dset, dims) + this % n_grid = int(dims(1), 4) + allocate(this % energy(this % n_grid)) + call read_dataset(this % energy, energy_dset) + call close_dataset(energy_dset) + + ! Read reactions + allocate(this % reactions(n_reaction)) + do i = 1, size(this % reactions) + rx_group = open_group(group_id, 'reaction_' // trim(to_str(i - 1))) + call this % reactions(i) % from_hdf5(rx_group) + call close_group(rx_group) + end do + + ! Read unresolved resonance probability tables if present + call h5ltpath_valid_f(group_id, 'urr', .true., exists, hdf5_err) + if (exists) then + this % urr_present = .true. + allocate(this % urr_data) + urr_group = open_group(group_id, 'urr') + call this % urr_data % from_hdf5(urr_group) + + ! if the inelastic competition flag indicates that the inelastic cross + ! section should be determined from a normal reaction cross section, we need + ! to get the index of the reaction + if (this % urr_data % inelastic_flag > 0) then + do i = 1, size(this % reactions) + if (this % reactions(i) % MT == this % urr_data % inelastic_flag) then + this % urr_inelastic = i + end if + end do + + ! Abort if no corresponding inelastic reaction was found + if (this % urr_inelastic == NONE) then + call fatal_error("Could not find inelastic reaction specified on & + &unresolved resonance probability table.") + end if + end if + + ! Check for negative values + if (any(this % urr_data % prob < ZERO)) then + call warning("Negative value(s) found on probability table & + &for nuclide " // this % name) + end if + end if + + ! Check for nu-total + call h5ltpath_valid_f(group_id, 'total_nu', .true., exists, hdf5_err) + if (exists) then + nu_group = open_group(group_id, 'total_nu') + + ! Read total nu data + total_nu = open_dataset(nu_group, 'yield') + call read_attribute(temp, total_nu, 'type') + select case (temp) + case ('constant') + allocate(Constant1D :: this % total_nu) + case ('tabulated') + allocate(Tabulated1D :: this % total_nu) + case ('polynomial') + allocate(Polynomial :: this % total_nu) + end select + call this % total_nu % from_hdf5(total_nu) + call close_dataset(total_nu) + + call close_group(nu_group) + end if + + ! Create derived cross section data + call this % create_derived() + + end subroutine nuclide_from_hdf5 + + subroutine nuclide_create_derived(this) + class(Nuclide), intent(inout) :: this + + integer :: i + integer :: j + integer :: k + integer :: m + integer :: n + integer :: i_fission + type(ListInt) :: MTs + + ! Allocate and initialize derived cross sections + allocate(this % total(this % n_grid)) + allocate(this % elastic(this % n_grid)) + allocate(this % fission(this % n_grid)) + allocate(this % nu_fission(this % n_grid)) + allocate(this % absorption(this % n_grid)) + this % total(:) = ZERO + this % elastic(:) = ZERO + this % fission(:) = ZERO + this % nu_fission(:) = ZERO + this % absorption(:) = ZERO + + i_fission = 0 + + do i = 1, size(this % reactions) + call MTs % append(this % reactions(i) % MT) + call this % reaction_index % add_key(this % reactions(i) % MT, i) + + associate (rx => this % reactions(i)) + j = rx % threshold + n = size(rx % sigma) + + ! Skip total inelastic level scattering, gas production cross sections + ! (MT=200+), etc. + if (rx % MT == N_LEVEL .or. rx % MT == N_NONELASTIC) cycle + if (rx % MT > N_5N2P .and. rx % MT < N_P0) cycle + + ! Skip level cross sections if total is available + if (rx % MT >= N_P0 .and. rx % MT <= N_PC .and. MTs % contains(N_P)) cycle + if (rx % MT >= N_D0 .and. rx % MT <= N_DC .and. MTs % contains(N_D)) cycle + if (rx % MT >= N_T0 .and. rx % MT <= N_TC .and. MTs % contains(N_T)) cycle + if (rx % MT >= N_3HE0 .and. rx % MT <= N_3HEC .and. MTs % contains(N_3HE)) cycle + if (rx % MT >= N_A0 .and. rx % MT <= N_AC .and. MTs % contains(N_A)) cycle + if (rx % MT >= N_2N0 .and. rx % MT <= N_2NC .and. MTs % contains(N_2N)) cycle + + ! Copy elastic + if (rx % MT == ELASTIC) this % elastic(:) = rx % sigma + + ! Add contribution to total cross section + this % total(j:j+n-1) = this % total(j:j+n-1) + rx % sigma + + ! Add contribution to absorption cross section + if (is_disappearance(rx % MT)) then + this % absorption(j:j+n-1) = this % absorption(j:j+n-1) + rx % sigma + end if + + ! Information about fission reactions + if (rx % MT == N_FISSION) then + allocate(this % index_fission(1)) + elseif (rx % MT == N_F) then + allocate(this % index_fission(PARTIAL_FISSION_MAX)) + this % has_partial_fission = .true. + end if + + ! Add contribution to fission cross section + if (is_fission(rx % MT)) then + this % fissionable = .true. + this % fission(j:j+n-1) = this % fission(j:j+n-1) + rx % sigma + + ! Also need to add fission cross sections to absorption + this % absorption(j:j+n-1) = this % absorption(j:j+n-1) + rx % sigma + + ! If total fission reaction is present, there's no need to store the + ! reaction cross-section since it was copied to this % fission + if (rx % MT == N_FISSION) deallocate(rx % sigma) + + ! Keep track of this reaction for easy searching later + i_fission = i_fission + 1 + this % index_fission(i_fission) = i + this % n_fission = this % n_fission + 1 + + ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< + ! Before the secondary distribution refactor, when the angle/energy + ! distribution was uncorrelated, no angle was actually sampled. With + ! the refactor, an angle is always sampled for an uncorrelated + ! 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. + do k = 1, size(rx % products) + if (rx % products(k) % particle == NEUTRON) then + do m = 1, size(rx % products(k) % distribution) + associate (aedist => rx % products(k) % distribution(m) % obj) + select type (aedist) + type is (UncorrelatedAngleEnergy) + aedist % fission = .true. + end select + end associate + end do + end if + end do + ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< + end if + end associate + end do + + ! Determine number of delayed neutron precursors + if (this % fissionable) then + do i = 1, size(this % reactions(this % index_fission(1)) % products) + if (this % reactions(this % index_fission(1)) % products(i) % & + emission_mode == EMISSION_DELAYED) then + this % n_precursor = this % n_precursor + 1 + end if + end do + end if + + ! Calculate nu-fission cross section + if (this % fissionable) then + do i = 1, size(this % energy) + this % nu_fission(i) = this % nu(this % energy(i), EMISSION_TOTAL) * & + this % fission(i) + end do + else + this % nu_fission(:) = ZERO + end if + + ! Clear MTs set + call MTs % clear() + end subroutine nuclide_create_derived + !=============================================================================== ! NUCLIDE_NU is an interface to the number of fission neutrons produced !=============================================================================== - function nuclide_nu(this, E, emission_mode, group) result(nu) + pure function nuclide_nu(this, E, emission_mode, group) result(nu) class(Nuclide), intent(in) :: this real(8), intent(in) :: E integer, intent(in) :: emission_mode @@ -237,8 +470,8 @@ module nuclide_header 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) + associate (product => this % reactions(this % index_fission(1)) % products(1)) + nu = product % yield % evaluate(E) end associate end if end select diff --git a/src/output.F90 b/src/output.F90 index d7dfe7e1c2..09df23f0d5 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -741,7 +741,6 @@ contains integer :: filter_index ! index in results array for filters integer :: score_index ! scoring bin index integer :: i_nuclide ! index in nuclides array - integer :: i_listing ! index in xs_listings array integer :: n_order ! loop index for moment orders integer :: nm_order ! loop index for Ynm moment orders integer :: unit_tally ! tallies.out file unit @@ -908,13 +907,8 @@ contains write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & "Total Material" else - if (run_CE) then - i_listing = nuclides(i_nuclide) % listing - else - i_listing = nuclides_MG(i_nuclide) % obj % listing - end if write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & - trim(xs_listings(i_listing) % alias) + trim(nuclides(i_nuclide) % name) end if indent = indent + 2 diff --git a/src/product_header.F90 b/src/product_header.F90 index e20c173b4c..fbe0ee71f0 100644 --- a/src/product_header.F90 +++ b/src/product_header.F90 @@ -4,7 +4,15 @@ module product_header use constants, only: ZERO, MAX_WORD_LEN, EMISSION_PROMPT, EMISSION_DELAYED, & EMISSION_TOTAL, NEUTRON, PHOTON use endf_header, only: Tabulated1D, Function1D, Constant1D, Polynomial + use hdf5, only: HID_T + use hdf5_interface, only: read_attribute, open_group, close_group, & + open_dataset, close_dataset, read_dataset use random_lcg, only: prn + 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 !=============================================================================== ! REACTIONPRODUCT stores a data for a reaction product including its yield and @@ -23,6 +31,7 @@ module product_header type(AngleEnergyContainer), allocatable :: distribution(:) contains procedure :: sample => reactionproduct_sample + procedure :: from_hdf5 => reactionproduct_from_hdf5 end type ReactionProduct contains @@ -59,4 +68,89 @@ contains end subroutine reactionproduct_sample + subroutine reactionproduct_from_hdf5(this, group_id) + class(ReactionProduct), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer :: i + integer :: n + integer(HID_T) :: dgroup + integer(HID_T) :: app + integer(HID_T) :: yield + character(MAX_WORD_LEN) :: temp + + ! Read particle type + call read_attribute(temp, group_id, 'particle') + select case (temp) + case ('neutron') + this % particle = NEUTRON + case ('photon') + this % particle = PHOTON + end select + + ! Read emission mode and decay rate + call read_attribute(temp, group_id, 'emission_mode') + select case (temp) + case ('prompt') + this % emission_mode = EMISSION_PROMPT + case ('delayed') + this % emission_mode = EMISSION_DELAYED + case ('total') + this % emission_mode = EMISSION_TOTAL + end select + + ! Read decay rate for delayed emission + if (this % emission_mode == EMISSION_DELAYED) then + call read_attribute(this % decay_rate, group_id, 'decay_rate') + end if + + ! Read secondary particle yield + yield = open_dataset(group_id, 'yield') + call read_attribute(temp, yield, 'type') + select case (temp) + case ('constant') + allocate(Constant1D :: this % yield) + case ('tabulated') + allocate(Tabulated1D :: this % yield) + case ('polynomial') + allocate(Polynomial :: this % yield) + end select + call this % yield % from_hdf5(yield) + call close_dataset(yield) + + call read_attribute(n, group_id, 'n_distribution') + allocate(this%applicability(n)) + allocate(this%distribution(n)) + + do i = 1, n + dgroup = open_group(group_id, trim('distribution_' // to_str(i - 1))) + + ! Read applicability + if (n > 1) then + app = open_dataset(dgroup, 'applicability') + call this%applicability(i)%from_hdf5(app) + call close_dataset(app) + end if + + ! Read type of distribution and allocate accordingly + call read_attribute(temp, dgroup, 'type') + select case (temp) + case ('uncorrelated') + allocate(UncorrelatedAngleEnergy :: this%distribution(i)%obj) + case ('correlated') + allocate(CorrelatedAngleEnergy :: this%distribution(i)%obj) + case ('nbody') + allocate(NBodyPhaseSpace :: this%distribution(i)%obj) + case ('kalbach-mann') + allocate(KalbachMann :: this%distribution(i)%obj) + end select + + ! Read distribution data + call this%distribution(i)%obj%from_hdf5(dgroup) + + call close_group(dgroup) + end do + + end subroutine reactionproduct_from_hdf5 + end module product_header diff --git a/src/reaction_header.F90 b/src/reaction_header.F90 index 160ad63239..8af75b3cf2 100644 --- a/src/reaction_header.F90 +++ b/src/reaction_header.F90 @@ -1,6 +1,10 @@ module reaction_header + use hdf5, only: HID_T, HSIZE_T + use hdf5_interface, only: read_attribute, open_group, close_group, & + open_dataset, read_dataset, close_dataset, get_shape use product_header, only: ReactionProduct + use string, only: to_str implicit none @@ -16,6 +20,44 @@ module reaction_header logical :: scatter_in_cm ! scattering system in center-of-mass? real(8), allocatable :: sigma(:) ! Cross section values type(ReactionProduct), allocatable :: products(:) + contains + procedure :: from_hdf5 => reaction_from_hdf5 end type Reaction +contains + + subroutine reaction_from_hdf5(this, group_id) + class(Reaction), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer :: i + integer :: cm + integer :: n_product + integer(HID_T) :: pgroup + integer(HID_T) :: xs + integer(HSIZE_T) :: dims(1) + + call read_attribute(this % Q_value, group_id, 'Q_value') + call read_attribute(this % MT, group_id, 'MT') + call read_attribute(this % threshold, group_id, 'threshold_idx') + call read_attribute(cm, group_id, 'center_of_mass') + this % scatter_in_cm = (cm == 1) + + ! Read cross section + xs = open_dataset(group_id, 'xs') + call get_shape(xs, dims) + allocate(this % sigma(dims(1))) + call read_dataset(this % sigma, xs) + call close_dataset(xs) + + ! Read products + call read_attribute(n_product, group_id, 'n_product') + allocate(this % products(n_product)) + do i = 1, n_product + pgroup = open_group(group_id, 'product_' // trim(to_str(i - 1))) + call this % products(i) % from_hdf5(pgroup) + call close_group(pgroup) + end do + end subroutine reaction_from_hdf5 + end module reaction_header diff --git a/src/relaxng/materials.rnc b/src/relaxng/materials.rnc index 21b36c07e1..1b5b7c705a 100644 --- a/src/relaxng/materials.rnc +++ b/src/relaxng/materials.rnc @@ -11,8 +11,7 @@ element materials { } & element nuclide { - (element name { xsd:string { maxLength = "7" } } | - attribute name { xsd:string { maxLength = "7" } }) & + (element name { xsd:string } | attribute name { xsd:string }) & (element xs { xsd:string { maxLength = "5" } } | attribute xs { xsd:string { maxLength = "5" } })? & (element scattering { ( "data" | "iso-in-lab" ) } | @@ -44,8 +43,7 @@ element materials { }* & element sab { - (element name { xsd:string { maxLength = "7" } } | - attribute name { xsd:string { maxLength = "7" } }) & + (element name { xsd:string } | attribute name { xsd:string }) & (element xs { xsd:string { maxLength = "5" } } | attribute xs { xsd:string { maxLength = "5" } })? }* diff --git a/src/relaxng/materials.rng b/src/relaxng/materials.rng index 6a4bc39645..e93f201655 100644 --- a/src/relaxng/materials.rng +++ b/src/relaxng/materials.rng @@ -57,26 +57,22 @@ - - 7 - + - - 7 - + - 3 + 5 - 3 + 5 @@ -123,25 +119,21 @@ - - 7 - + - - 7 - + - 3 + 5 - 3 + 5 @@ -167,12 +159,12 @@ - 3 + 5 - 3 + 5 @@ -219,26 +211,22 @@ - - 7 - + - - 7 - + - 3 + 5 - 3 + 5 @@ -252,7 +240,7 @@ - 3 + 5 diff --git a/src/sab_header.F90 b/src/sab_header.F90 index 695f735c05..3e9e18fab3 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -3,6 +3,12 @@ module sab_header use, intrinsic :: ISO_FORTRAN_ENV use constants + use distribution_univariate, only: Tabular + use hdf5, only: HID_T, HSIZE_T + use h5lt, only: h5ltpath_valid_f + use hdf5_interface, only: read_attribute, get_shape, open_group, close_group, & + open_dataset, read_dataset, close_dataset + use secondary_correlated, only: CorrelatedAngleEnergy use string, only: to_str implicit none @@ -27,10 +33,10 @@ module sab_header !=============================================================================== 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 + character(100) :: 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) @@ -61,90 +67,247 @@ module sab_header real(8), allocatable :: elastic_P(:) real(8), allocatable :: elastic_mu(:,:) contains - procedure :: print => print_sab_table + procedure :: print => salphabeta_print + procedure :: from_hdf5 => salphabeta_from_hdf5 end type SAlphaBeta - contains +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, intent(in), optional :: unit + subroutine salphabeta_print(this, unit) + 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 this % zaid - integer :: char_count ! Counter for the number of characters on a line + integer :: size_sab ! memory used by S(a,b) table + integer :: unit_ ! unit to write to + 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 - if (present(unit)) then - unit_ = unit + ! 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 - unit_ = OUTPUT_UNIT + ! Don't include a comma, since we are all done + write(unit_,'(A)',advance="no") trim(to_str(this % zaid(i))) 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)) - 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)) - ! 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 - ! 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)) + ! 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 salphabeta_print + + subroutine salphabeta_from_hdf5(this, group_id) + class(SAlphaBeta), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer :: i, j + integer :: n_energy, n_energy_out, n_mu + integer :: hdf5_err + integer(HID_T) :: elastic_group + integer(HID_T) :: inelastic_group + integer(HID_T) :: dset_id + integer(HSIZE_T) :: dims2(2) + integer(HSIZE_T) :: dims3(3) + real(8), allocatable :: temp(:,:) + character(20) :: type + logical :: exists + type(CorrelatedAngleEnergy) :: correlated_dist + + call read_attribute(this % awr, group_id, 'atomic_weight_ratio') + call read_attribute(this % kT, group_id, 'temperature') + call read_attribute(this % zaid, group_id, 'zaids') + this % n_zaid = size(this % zaid) + + ! Coherent elastic data + call h5ltpath_valid_f(group_id, 'elastic', .true., exists, hdf5_err) + if (exists) then + ! Read cross section data + elastic_group = open_group(group_id, 'elastic') + dset_id = open_dataset(elastic_group, 'xs') + call read_attribute(type, dset_id, 'type') + call get_shape(dset_id, dims2) + allocate(temp(dims2(1), dims2(2))) + call read_dataset(temp, dset_id) + call close_dataset(dset_id) + + ! Set cross section data and type + this % n_elastic_e_in = int(dims2(1), 4) + allocate(this % elastic_e_in(this % n_elastic_e_in)) + allocate(this % elastic_P(this % n_elastic_e_in)) + this % elastic_e_in(:) = temp(:, 1) + this % elastic_P(:) = temp(:, 2) + select case (type) + case ('tab1') + this % elastic_mode = SAB_ELASTIC_DISCRETE + case ('bragg') + this % elastic_mode = SAB_ELASTIC_EXACT + end select + deallocate(temp) + + ! Set elastic threshold + this % threshold_elastic = this % elastic_e_in(this % n_elastic_e_in) + + ! Read angle distribution + if (this % elastic_mode /= SAB_ELASTIC_EXACT) then + dset_id = open_dataset(elastic_group, 'mu_out') + call get_shape(dset_id, dims2) + this % n_elastic_mu = int(dims2(1), 4) + allocate(this % elastic_mu(dims2(1), dims2(2))) + call read_dataset(this % elastic_mu, dset_id) + call close_dataset(dset_id) 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' + call close_group(elastic_group) + end if - ! Blank line at end - write(unit_,*) + ! Inelastic data + call h5ltpath_valid_f(group_id, 'inelastic', .true., exists, hdf5_err) + if (exists) then + ! Read type of inelastic data + inelastic_group = open_group(group_id, 'inelastic') + call read_attribute(type, inelastic_group, 'secondary_mode') + select case (type) + case ('equal') + this % secondary_mode = SAB_SECONDARY_EQUAL + case ('skewed') + this % secondary_mode = SAB_SECONDARY_SKEWED + case ('continuous') + this % secondary_mode = SAB_SECONDARY_CONT + end select - end subroutine print_sab_table + ! Read cross section data + dset_id = open_dataset(inelastic_group, 'xs') + call get_shape(dset_id, dims2) + allocate(temp(dims2(1), dims2(2))) + call read_dataset(temp, dset_id) + call close_dataset(dset_id) + + ! Set cross section data + this % n_inelastic_e_in = int(dims2(1), 4) + allocate(this % inelastic_e_in(this % n_inelastic_e_in)) + allocate(this % inelastic_sigma(this % n_inelastic_e_in)) + this % inelastic_e_in(:) = temp(:, 1) + this % inelastic_sigma(:) = temp(:, 2) + deallocate(temp) + + ! Set inelastic threshold + this % threshold_inelastic = this % inelastic_e_in(this % n_inelastic_e_in) + + if (this % secondary_mode /= SAB_SECONDARY_CONT) then + ! Read energy distribution + dset_id = open_dataset(inelastic_group, 'energy_out') + call get_shape(dset_id, dims2) + this % n_inelastic_e_out = int(dims2(1), 4) + allocate(this % inelastic_e_out(dims2(1), dims2(2))) + call read_dataset(this % inelastic_e_out, dset_id) + call close_dataset(dset_id) + + ! Read angle distribution + dset_id = open_dataset(inelastic_group, 'mu_out') + call get_shape(dset_id, dims3) + this % n_inelastic_mu = int(dims3(1), 4) + allocate(this % inelastic_mu(dims3(1), dims3(2), dims3(3))) + call read_dataset(this % inelastic_mu, dset_id) + call close_dataset(dset_id) + else + ! Read correlated angle-energy distribution + call correlated_dist % from_hdf5(inelastic_group) + + ! Convert to S(a,b) native format + n_energy = size(correlated_dist % energy) + allocate(this % inelastic_data(n_energy)) + do i = 1, n_energy + associate (edist => correlated_dist % distribution(i)) + ! Get number of outgoing energies for incoming energy i + n_energy_out = size(edist % e_out) + this % inelastic_data(i) % n_e_out = n_energy_out + allocate(this % inelastic_data(i) % e_out(n_energy_out)) + allocate(this % inelastic_data(i) % e_out_pdf(n_energy_out)) + allocate(this % inelastic_data(i) % e_out_cdf(n_energy_out)) + + ! Copy outgoing energy distribution + this % inelastic_data(i) % e_out(:) = edist % e_out + this % inelastic_data(i) % e_out_pdf(:) = edist % p + this % inelastic_data(i) % e_out_cdf(:) = edist % c + + do j = 1, n_energy_out + select type (adist => edist % angle(j) % obj) + type is (Tabular) + ! On first pass, allocate space for angles + if (j == 1) then + n_mu = size(adist % x) + this % n_inelastic_mu = n_mu + allocate(this % inelastic_data(i) % mu(n_mu, n_energy_out)) + end if + + ! Copy outgoing angles + this % inelastic_data(i) % mu(:, j) = adist % x + end select + end do + end associate + end do + end if + + call close_group(inelastic_group) + end if + end subroutine salphabeta_from_hdf5 end module sab_header diff --git a/src/secondary_correlated.F90 b/src/secondary_correlated.F90 index b556d02dc5..0576b28f63 100644 --- a/src/secondary_correlated.F90 +++ b/src/secondary_correlated.F90 @@ -1,8 +1,11 @@ module secondary_correlated use angleenergy_header, only: AngleEnergy - use constants, only: ZERO, ONE, TWO, HISTOGRAM, LINEAR_LINEAR - use distribution_univariate, only: DistributionContainer + use constants, only: ZERO, ONE, HALF, TWO, HISTOGRAM, LINEAR_LINEAR + use distribution_univariate, only: DistributionContainer, Tabular + use hdf5, only: HID_T, HSIZE_T + use hdf5_interface, only: get_shape, read_attribute, open_dataset, & + read_dataset, close_dataset use random_lcg, only: prn use search, only: binary_search @@ -28,6 +31,7 @@ module secondary_correlated type(AngleEnergyTable), allocatable :: distribution(:) ! outgoing E/mu distributions contains procedure :: sample => correlated_sample + procedure :: from_hdf5 => correlated_from_hdf5 end type CorrelatedAngleEnergy contains @@ -145,4 +149,156 @@ contains end if end subroutine correlated_sample + subroutine correlated_from_hdf5(this, group_id) + class(CorrelatedAngleEnergy), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer :: i, j, k + integer :: n_energy + integer :: m, n + integer :: offset_mu + integer :: interp_mu + integer(HID_T) :: dset_id + integer(HSIZE_T) :: dims(1), dims2(2) + integer, allocatable :: temp(:,:) + integer, allocatable :: offsets(:) + integer, allocatable :: interp(:) + integer, allocatable :: n_discrete(:) + real(8), allocatable :: eout(:,:) + real(8), allocatable :: mu(:,:) + + ! Open incoming energy dataset + dset_id = open_dataset(group_id, 'energy') + + ! Get interpolation parameters + call read_attribute(temp, dset_id, 'interpolation') + allocate(this%breakpoints(size(temp, 1))) + allocate(this%interpolation(size(temp, 1))) + this%breakpoints(:) = temp(:, 1) + this%interpolation(:) = temp(:, 2) + this%n_region = size(this%breakpoints) + deallocate(temp) + + ! Get incoming energies + call get_shape(dset_id, dims) + n_energy = int(dims(1), 4) + allocate(this%energy(n_energy)) + allocate(this%distribution(n_energy)) + call read_dataset(this%energy, dset_id) + call close_dataset(dset_id) + + ! Get outgoing energy distribution data + dset_id = open_dataset(group_id, 'energy_out') + call read_attribute(offsets, dset_id, 'offsets') + call read_attribute(interp, dset_id, 'interpolation') + call read_attribute(n_discrete, dset_id, 'n_discrete_lines') + call get_shape(dset_id, dims2) + allocate(eout(dims2(1), dims2(2))) + call read_dataset(eout, dset_id) + call close_dataset(dset_id) + + ! Get outgoing angle data + dset_id = open_dataset(group_id, 'mu') + call get_shape(dset_id, dims2) + allocate(mu(dims2(1), dims2(2))) + call read_dataset(mu, dset_id) + call close_dataset(dset_id) + + do i = 1, n_energy + ! Determine number of outgoing energies + j = offsets(i) + if (i < n_energy) then + n = offsets(i+1) - j + else + n = size(eout, 1) - j + end if + + associate (d => this % distribution(i)) + ! Assign interpolation scheme and number of discrete lines + d % interpolation = interp(i) + d % n_discrete = n_discrete(i) + + ! Allocate arrays for energies and PDF/CDF + allocate(d % e_out(n)) + allocate(d % p(n)) + allocate(d % c(n)) + allocate(d % angle(n)) + + ! Copy data + d % e_out(:) = eout(j+1:j+n, 1) + d % p(:) = eout(j+1:j+n, 2) + d % c(:) = eout(j+1:j+n, 3) + + ! To get answers that match ACE data, for now we still use the tabulated + ! CDF values that were passed through to the HDF5 library. At a later + ! time, we can remove the CDF values from the HDF5 library and + ! reconstruct them using the PDF + if (.false.) then + ! Calculate cumulative distribution function -- discrete portion + do k = 1, d % n_discrete + if (k == 1) then + d % c(k) = d % p(k) + else + d % c(k) = d % c(k-1) + d % p(k) + end if + end do + + ! Continuous portion + do k = d % n_discrete + 1, n + if (k == d % n_discrete + 1) then + d % c(k) = sum(d % p(1:d % n_discrete)) + else + if (d % interpolation == HISTOGRAM) then + d % c(k) = d % c(k-1) + d % p(k-1) * & + (d % e_out(k) - d % e_out(k-1)) + elseif (d % interpolation == LINEAR_LINEAR) then + d % c(k) = d % c(k-1) + HALF*(d % p(k-1) + d % p(k)) * & + (d % e_out(k) - d % e_out(k-1)) + end if + end if + end do + + ! Normalize density and distribution functions + d % p(:) = d % p(:)/d % c(n) + d % c(:) = d % c(:)/d % c(n) + end if + end associate + + do j = 1, n + allocate(Tabular :: this%distribution(i)%angle(j)%obj) + select type(mudist => this%distribution(i)%angle(j)%obj) + type is (Tabular) + ! Get interpolation scheme + interp_mu = nint(eout(offsets(i)+j, 4)) + + ! Determine offset and size of distribution + offset_mu = nint(eout(offsets(i)+j, 5)) + if (offsets(i) + j < size(eout, 1)) then + m = nint(eout(offsets(i)+j+1, 5)) - offset_mu + else + m = size(mu, 1) - offset_mu + end if + + ! To get answers that match ACE data, for now we still use the tabulated + ! CDF values that were passed through to the HDF5 library. At a later + ! time, we can remove the CDF values from the HDF5 library and + ! reconstruct them using the PDF + if (.true.) then + mudist % interpolation = interp_mu + allocate(mudist % x(m)) + allocate(mudist % p(m)) + allocate(mudist % c(m)) + mudist % x(:) = mu(offset_mu+1:offset_mu+m, 1) + mudist % p(:) = mu(offset_mu+1:offset_mu+m, 2) + mudist % c(:) = mu(offset_mu+1:offset_mu+m, 3) + else + ! Initialize tabular distribution + call mudist % initialize(mu(offset_mu+1:offset_mu+m, 1), & + mu(offset_mu+1:offset_mu+m, 2), interp_mu) + end if + end select + end do + end do + end subroutine correlated_from_hdf5 + end module secondary_correlated diff --git a/src/secondary_kalbach.F90 b/src/secondary_kalbach.F90 index 668917d62a..920d17869c 100644 --- a/src/secondary_kalbach.F90 +++ b/src/secondary_kalbach.F90 @@ -1,7 +1,10 @@ module secondary_kalbach use angleenergy_header, only: AngleEnergy - use constants, only: ZERO, ONE, TWO, HISTOGRAM, LINEAR_LINEAR + use constants, only: ZERO, HALF, ONE, TWO, HISTOGRAM, LINEAR_LINEAR + use hdf5, only: HID_T, HSIZE_T + use hdf5_interface, only: read_attribute, read_dataset, open_dataset, & + close_dataset, get_shape use random_lcg, only: prn use search, only: binary_search @@ -29,6 +32,7 @@ module secondary_kalbach type(KalbachMannTable), allocatable :: distribution(:) ! outgoing E/mu parameters contains procedure :: sample => kalbachmann_sample + procedure :: from_hdf5 => kalbachmann_from_hdf5 end type KalbachMann contains @@ -161,4 +165,116 @@ contains end subroutine kalbachmann_sample + subroutine kalbachmann_from_hdf5(this, group_id) + class(KalbachMann), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer :: i, j, k + integer :: n + integer :: n_energy + integer(HID_T) :: dset_id + integer(HSIZE_T) :: dims(1), dims2(2) + integer, allocatable :: temp(:,:) + integer, allocatable :: offsets(:) + integer, allocatable :: interp(:) + integer, allocatable :: n_discrete(:) + real(8), allocatable :: eout(:,:) + + ! Open incoming energy dataset + dset_id = open_dataset(group_id, 'energy') + + ! Get interpolation parameters + call read_attribute(temp, dset_id, 'interpolation') + allocate(this%breakpoints(size(temp, 1))) + allocate(this%interpolation(size(temp, 1))) + this%breakpoints(:) = temp(:, 1) + this%interpolation(:) = temp(:, 2) + this%n_region = size(this%breakpoints) + + ! Get incoming energies + call get_shape(dset_id, dims) + n_energy = int(dims(1), 4) + allocate(this%energy(n_energy)) + allocate(this%distribution(n_energy)) + call read_dataset(this%energy, dset_id) + call close_dataset(dset_id) + + ! Get outgoing energy distribution data + dset_id = open_dataset(group_id, 'distribution') + call read_attribute(offsets, dset_id, 'offsets') + call read_attribute(interp, dset_id, 'interpolation') + call read_attribute(n_discrete, dset_id, 'n_discrete_lines') + call get_shape(dset_id, dims2) + allocate(eout(dims2(1), dims2(2))) + call read_dataset(eout, dset_id) + call close_dataset(dset_id) + + do i = 1, n_energy + ! Determine number of outgoing energies + j = offsets(i) + if (i < n_energy) then + n = offsets(i+1) - j + else + n = size(eout, 1) - j + end if + + associate (d => this%distribution(i)) + ! Assign interpolation scheme and number of discrete lines + d % interpolation = interp(i) + d % n_discrete = n_discrete(i) + + ! Allocate arrays for energies and PDF/CDF + allocate(d % e_out(n)) + allocate(d % p(n)) + allocate(d % c(n)) + allocate(d % r(n)) + allocate(d % a(n)) + + ! Copy data + d % e_out(:) = eout(j+1:j+n, 1) + d % p(:) = eout(j+1:j+n, 2) + d % c(:) = eout(j+1:j+n, 3) + d % r(:) = eout(j+1:j+n, 4) + d % a(:) = eout(j+1:j+n, 5) + + + ! To get answers that match ACE data, for now we still use the tabulated + ! CDF values that were passed through to the HDF5 library. At a later + ! time, we can remove the CDF values from the HDF5 library and + ! reconstruct them using the PDF + if (.false.) then + ! Calculate cumulative distribution function -- discrete portion + do k = 1, d % n_discrete + if (k == 1) then + d % c(k) = d % p(k) + else + d % c(k) = d % c(k-1) + d % p(k) + end if + end do + + ! Continuous portion + do k = d % n_discrete + 1, n + if (k == d % n_discrete + 1) then + d % c(k) = sum(d % p(1:d % n_discrete)) + else + if (d % interpolation == HISTOGRAM) then + d % c(k) = d % c(k-1) + d % p(k-1) * & + (d % e_out(k) - d % e_out(k-1)) + elseif (d % interpolation == LINEAR_LINEAR) then + d % c(k) = d % c(k-1) + HALF*(d % p(k-1) + d % p(k)) * & + (d % e_out(k) - d % e_out(k-1)) + end if + end if + end do + + ! Normalize density and distribution functions + d % p(:) = d % p(:)/d % c(n) + d % c(:) = d % c(:)/d % c(n) + end if + end associate + + j = j + n + end do + end subroutine kalbachmann_from_hdf5 + end module secondary_kalbach diff --git a/src/secondary_nbody.F90 b/src/secondary_nbody.F90 index 71cae6fa2a..d45c598793 100644 --- a/src/secondary_nbody.F90 +++ b/src/secondary_nbody.F90 @@ -2,6 +2,8 @@ module secondary_nbody use angleenergy_header, only: AngleEnergy use constants, only: ONE, TWO, PI + use hdf5, only: HID_T + use hdf5_interface, only: read_attribute use math, only: maxwell_spectrum use random_lcg, only: prn @@ -18,6 +20,7 @@ module secondary_nbody real(8) :: Q contains procedure :: sample => nbody_sample + procedure :: from_hdf5 => nbody_from_hdf5 end type NBodyPhaseSpace contains @@ -67,4 +70,14 @@ contains E_out = E_max * v end subroutine nbody_sample + subroutine nbody_from_hdf5(this, group_id) + class(NBodyPhaseSpace), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + call read_attribute(this%mass_ratio, group_id, 'total_mass') + call read_attribute(this%n_bodies, group_id, 'n_particles') + call read_attribute(this%A, group_id, 'atomic_weight_ratio') + call read_attribute(this%Q, group_id, 'q_value') + end subroutine nbody_from_hdf5 + end module secondary_nbody diff --git a/src/secondary_uncorrelated.F90 b/src/secondary_uncorrelated.F90 index 7bc8fa13d9..3158913cc6 100644 --- a/src/secondary_uncorrelated.F90 +++ b/src/secondary_uncorrelated.F90 @@ -2,8 +2,13 @@ module secondary_uncorrelated use angle_distribution, only: AngleDistribution use angleenergy_header, only: AngleEnergy - use constants, only: ONE, TWO - use energy_distribution, only: EnergyDistribution + use constants, only: ONE, TWO, MAX_WORD_LEN + use energy_distribution, only: EnergyDistribution, LevelInelastic, & + ContinuousTabular, MaxwellEnergy, Evaporation, WattEnergy, DiscretePhoton + use error, only: warning + use h5lt, only: h5ltpath_valid_f + use hdf5, only: HID_T + use hdf5_interface, only: read_attribute, open_group, close_group use random_lcg, only: prn !=============================================================================== @@ -18,6 +23,7 @@ module secondary_uncorrelated class(EnergyDistribution), allocatable :: energy contains procedure :: sample => uncorrelated_sample + procedure :: from_hdf5 => uncorrelated_from_hdf5 end type UncorrelatedAngleEnergy contains @@ -45,4 +51,55 @@ contains E_out = this%energy%sample(E_in) end subroutine uncorrelated_sample + subroutine uncorrelated_from_hdf5(this, group_id) + class(UncorrelatedAngleEnergy), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + logical :: exists + integer :: hdf5_err + integer(HID_T) :: energy_group + integer(HID_T) :: angle_group + character(MAX_WORD_LEN) :: type + + ! Check if energy group is present + call h5ltpath_valid_f(group_id, 'angle', .true., exists, hdf5_err) + + if (exists) then + angle_group = open_group(group_id, 'angle') + call this%angle%from_hdf5(angle_group) + call close_group(angle_group) + end if + + ! Check if energy group is present + call h5ltpath_valid_f(group_id, 'energy', .true., exists, hdf5_err) + + if (exists) then + energy_group = open_group(group_id, 'energy') + call read_attribute(type, energy_group, 'type') + select case (type) + case ('discrete_photon') + allocate(DiscretePhoton :: this%energy) + case ('level') + allocate(LevelInelastic :: this%energy) + case ('continuous') + allocate(ContinuousTabular :: this%energy) + case ('maxwell') + allocate(MaxwellEnergy :: this%energy) + case ('evaporation') + allocate(Evaporation :: this%energy) + case ('watt') + allocate(WattEnergy :: this%energy) + case default + call warning("Energy distribution type '" // trim(type) & + // "' not implemented.") + end select + + if (allocated(this % energy)) then + call this%energy%from_hdf5(energy_group) + end if + + call close_group(energy_group) + end if + end subroutine uncorrelated_from_hdf5 + end module secondary_uncorrelated diff --git a/src/state_point.F90 b/src/state_point.F90 index f379501343..87ef4ead77 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -43,7 +43,7 @@ contains subroutine write_state_point() integer :: i, j, k - integer :: i_list, i_xs + integer :: i_xs integer :: n_order ! loop index for moment orders integer :: nm_order ! loop index for Ynm moment orders integer, allocatable :: id_array(:) @@ -295,20 +295,11 @@ contains 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 - if (run_CE) then - i_list = nuclides(tally % nuclide_bins(j)) % listing - else - i_list = nuclides_MG(tally % nuclide_bins(j)) % obj % listing - end if - - ! 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(nuclides(tally % nuclide_bins(j)) % name, '.') if (i_xs > 0) then - str_array(j) = xs_listings(i_list) % alias(1:i_xs - 1) + str_array(j) = nuclides(tally % nuclide_bins(j)) % name(1 : i_xs-1) else - str_array(j) = xs_listings(i_list) % alias + str_array(j) = nuclides(tally % nuclide_bins(j)) % name end if else str_array(j) = 'total' diff --git a/src/stl_vector.F90 b/src/stl_vector.F90 index 8038628fb6..c7f2246ff8 100644 --- a/src/stl_vector.F90 +++ b/src/stl_vector.F90 @@ -38,6 +38,7 @@ module stl_vector implicit none private + integer, parameter :: VECTOR_CHAR_LEN = 255 real(8), parameter :: GROWTH_FACTOR = 1.5 type, public :: VectorInt @@ -76,6 +77,24 @@ module stl_vector procedure :: size => size_real end type VectorReal + type, public :: VectorChar + integer, private :: size_ = 0 + integer, private :: capacity_ = 0 + character(VECTOR_CHAR_LEN), allocatable :: data(:) + contains + procedure :: capacity => capacity_char + procedure :: clear => clear_char + generic :: initialize => & + initialize_fill_char + procedure, private :: initialize_fill_char + procedure :: pop_back => pop_back_char + procedure :: push_back => push_back_char + procedure :: reserve => reserve_char + procedure :: resize => resize_char + procedure :: shrink_to_fit => shrink_to_fit_char + procedure :: size => size_char + end type VectorChar + contains !=============================================================================== @@ -348,4 +367,143 @@ contains size = this%size_ end function size_real +!=============================================================================== +! Implementation of VectorChar +!=============================================================================== + + pure function capacity_char(this) result(capacity) + class(VectorChar), intent(in) :: this + integer :: capacity + + capacity = this%capacity_ + end function capacity_char + + subroutine clear_char(this) + class(VectorChar), intent(inout) :: this + + ! Since char is trivially destructible, we only need to set size to zero and + ! can leave capacity as is + this%size_ = 0 + end subroutine clear_char + + subroutine initialize_fill_char(this, n, val) + class(VectorChar), intent(inout) :: this + integer, intent(in) :: n + character(*), optional, intent(in) :: val + + integer :: i + character(VECTOR_CHAR_LEN) :: val_ + + ! If no value given, fill the vector with empty strings + if (present(val)) then + val_ = val + else + val_ = '' + end if + + if (allocated(this%data)) deallocate(this%data) + + allocate(this%data(n)) + do i = 1, n + this%data(i) = val_ + end do + this%size_ = n + this%capacity_ = n + end subroutine initialize_fill_char + + subroutine pop_back_char(this) + class(VectorChar), intent(inout) :: this + if (this%size_ > 0) this%size_ = this%size_ - 1 + end subroutine pop_back_char + + subroutine push_back_char(this, val) + class(VectorChar), intent(inout) :: this + character(*), intent(in) :: val + + integer :: capacity + character(VECTOR_CHAR_LEN), allocatable :: data(:) + + if (this%capacity_ == this%size_) then + ! Create new data array that is GROWTH_FACTOR larger. Note that + if (this%capacity_ == 0) then + capacity = 8 + else + capacity = int(GROWTH_FACTOR*this%capacity_) + end if + allocate(data(capacity)) + + ! Copy existing elements + if (this%size_ > 0) data(1:this%size_) = this%data + + ! Move allocation + call move_alloc(FROM=data, TO=this%data) + this%capacity_ = capacity + end if + + ! Increase size of vector by one and set new element + this%size_ = this%size_ + 1 + this%data(this%size_) = val + end subroutine push_back_char + + subroutine reserve_char(this, n) + class(VectorChar), intent(inout) :: this + integer, intent(in) :: n + + character(VECTOR_CHAR_LEN), allocatable :: data(:) + + if (n > this%capacity_) then + allocate(data(n)) + + ! Copy existing elements + if (this%size_ > 0) data(1:this%size_) = this%data(1:this%size_) + + ! Move allocation + call move_alloc(FROM=data, TO=this%data) + this%capacity_ = n + end if + end subroutine reserve_char + + subroutine resize_char(this, n, val) + class(VectorChar), intent(inout) :: this + integer, intent(in) :: n + character(*), intent(in), optional :: val + + if (n < this%size_) then + this%size_ = n + elseif (n > this%size_) then + ! If requested size is greater than capacity, first reserve that many + ! elements + if (n > this%capacity_) call this%reserve(n) + + ! Fill added elements with specified value and increase size + if (present(val)) this%data(this%size_ + 1 : n) = val + this%size_ = n + end if + + end subroutine resize_char + + subroutine shrink_to_fit_char(this) + class(VectorChar), intent(inout) :: this + + character(VECTOR_CHAR_LEN), allocatable :: data(:) + + if (this%capacity_ > this%size_) then + if (this%size_ > 0) then + allocate(data(this%size_)) + data(:) = this%data(1:this%size_) + call move_alloc(FROM=data, TO=this%data) + this%capacity_ = this%size_ + else + if (allocated(this%data)) deallocate(this%data) + end if + end if + end subroutine shrink_to_fit_char + + pure function size_char(this) result(size) + class(VectorChar), intent(in) :: this + integer :: size + + size = this%size_ + end function size_char + end module stl_vector diff --git a/src/summary.F90 b/src/summary.F90 index 2ec96042c1..9ad9aa23c0 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -128,11 +128,11 @@ contains allocate(zaids(n_nuclides_total)) do i = 1, n_nuclides_total if (run_CE) then - nucnames(i) = xs_listings(nuclides(i) % listing) % alias + nucnames(i) = nuclides(i) % name awrs(i) = nuclides(i) % awr zaids(i) = nuclides(i) % zaid else - nucnames(i) = xs_listings(nuclides_MG(i) % obj % listing) % alias + nucnames(i) = nuclides_MG(i) % obj % name awrs(i) = nuclides_MG(i) % obj % awr zaids(i) = nuclides_MG(i) % obj % zaid end if @@ -508,8 +508,7 @@ contains integer :: i integer :: j - integer :: i_list - character(12), allocatable :: nucnames(:) + character(20), allocatable :: nucnames(:) integer(HID_T) :: materials_group integer(HID_T) :: material_group type(Material), pointer :: m @@ -540,11 +539,10 @@ contains allocate(nucnames(m%n_nuclides)) do j = 1, m%n_nuclides if (run_CE) then - i_list = nuclides(m%nuclide(j))%listing + nucnames(j) = nuclides(m%nuclide(j))%name else - i_list = nuclides_MG(m%nuclide(j))%obj%listing + nucnames(j) = nuclides_MG(m%nuclide(j))%obj%name end if - nucnames(j) = xs_listings(i_list)%alias end do ! Write temporary array to 'nuclides' @@ -575,7 +573,7 @@ contains integer(HID_T), intent(in) :: file_id integer :: i, j, k - integer :: i_list, i_xs + integer :: i_xs integer :: n_order ! loop index for moment orders integer :: nm_order ! loop index for Ynm moment orders integer(HID_T) :: tallies_group @@ -705,16 +703,11 @@ contains allocate(str_array(t%n_nuclide_bins)) NUCLIDE_LOOP: do j = 1, t%n_nuclide_bins if (t%nuclide_bins(j) > 0) then - if (run_CE) then - i_list = nuclides(t % nuclide_bins(j)) % listing - else - i_list = nuclides_MG(t % nuclide_bins(j)) % obj % listing - end if - i_xs = index(xs_listings(i_list)%alias, '.') + i_xs = index(nuclides(t%nuclide_bins(j))%name, '.') if (i_xs > 0) then - str_array(j) = xs_listings(i_list)%alias(1:i_xs - 1) + str_array(j) = nuclides(t%nuclide_bins(j))%name(1 : i_xs-1) else - str_array(j) = xs_listings(i_list)%alias + str_array(j) = nuclides(t%nuclide_bins(j))%name end if else str_array(j) = 'total' diff --git a/src/urr_header.F90 b/src/urr_header.F90 index 96e182d2e3..cc41d43ccc 100644 --- a/src/urr_header.F90 +++ b/src/urr_header.F90 @@ -1,5 +1,9 @@ module urr_header + use hdf5, only: HID_T, HSIZE_T + use hdf5_interface, only: read_attribute, open_dataset, read_dataset, & + close_dataset, get_shape + implicit none !=============================================================================== @@ -15,6 +19,55 @@ module urr_header logical :: multiply_smooth ! multiply by smooth cross section? real(8), allocatable :: energy(:) ! incident energies real(8), allocatable :: prob(:,:,:) ! actual probabibility tables + contains + procedure :: from_hdf5 => urr_from_hdf5 end type UrrData +contains + + subroutine urr_from_hdf5(this, group_id) + class(UrrData), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + + integer :: i, j, k + integer(HID_T) :: energy + integer(HID_T) :: table + integer(HSIZE_T) :: dims(1) + integer(HSIZE_T) :: dims3(3) + real(8), allocatable :: temp(:,:,:) + + ! Read interpolation and other flags + call read_attribute(this % interp, group_id, 'interpolation') + call read_attribute(this % inelastic_flag, group_id, 'inelastic') + call read_attribute(this % absorption_flag, group_id, 'absorption') + call read_attribute(i, group_id, 'multiply_smooth') + this % multiply_smooth = (i == 1) + + ! Read energies at which tables exist + energy = open_dataset(group_id, 'energy') + call get_shape(energy, dims) + this % n_energy = int(dims(1), 4) + allocate(this % energy(this % n_energy)) + call read_dataset(this % energy, energy) + call close_dataset(energy) + + ! Read URR tables + table = open_dataset(group_id, 'table') + call get_shape(table, dims3) + this % n_prob = int(dims3(1), 4) + allocate(temp(this % n_prob, 6, this % n_energy)) + call read_dataset(temp, table) + call close_dataset(table) + + ! Swap first and last indices + allocate(this % prob(this % n_energy, 6, this % n_prob)) + do i = 1, this % n_energy + do j = 1, 6 + do k = 1, this % n_prob + this % prob(i, j, k) = temp(k, j, i) + end do + end do + end do + end subroutine urr_from_hdf5 + end module urr_header diff --git a/tests/input_set.py b/tests/input_set.py index 13c0e99a72..827484022d 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -24,250 +24,250 @@ class InputSet(object): # Define materials. fuel = openmc.Material(name='Fuel', material_id=1) fuel.set_density('g/cm3', 10.062) - fuel.add_nuclide("U-234", 4.9476e-6) - fuel.add_nuclide("U-235", 4.8218e-4) - fuel.add_nuclide("U-236", 9.0402e-5) - fuel.add_nuclide("U-238", 2.1504e-2) - fuel.add_nuclide("Np-237", 7.3733e-6) - fuel.add_nuclide("Pu-238", 1.5148e-6) - fuel.add_nuclide("Pu-239", 1.3955e-4) - fuel.add_nuclide("Pu-240", 3.4405e-5) - fuel.add_nuclide("Pu-241", 2.1439e-5) - fuel.add_nuclide("Pu-242", 3.7422e-6) - fuel.add_nuclide("Am-241", 4.5041e-7) - fuel.add_nuclide("Am-242m", 9.2301e-9) - fuel.add_nuclide("Am-243", 4.7878e-7) - fuel.add_nuclide("Cm-242", 1.0485e-7) - fuel.add_nuclide("Cm-243", 1.4268e-9) - fuel.add_nuclide("Cm-244", 8.8756e-8) - fuel.add_nuclide("Cm-245", 3.5285e-9) - fuel.add_nuclide("Mo-95", 2.6497e-5) - fuel.add_nuclide("Tc-99", 3.2772e-5) - fuel.add_nuclide("Ru-101", 3.0742e-5) - fuel.add_nuclide("Ru-103", 2.3505e-6) - fuel.add_nuclide("Ag-109", 2.0009e-6) - fuel.add_nuclide("Xe-135", 1.0801e-8) - fuel.add_nuclide("Cs-133", 3.4612e-5) - fuel.add_nuclide("Nd-143", 2.6078e-5) - fuel.add_nuclide("Nd-145", 1.9898e-5) - fuel.add_nuclide("Sm-147", 1.6128e-6) - fuel.add_nuclide("Sm-149", 1.1627e-7) - fuel.add_nuclide("Sm-150", 7.1727e-6) - fuel.add_nuclide("Sm-151", 5.4947e-7) - fuel.add_nuclide("Sm-152", 3.0221e-6) - fuel.add_nuclide("Eu-153", 2.6209e-6) - fuel.add_nuclide("Gd-155", 1.5369e-9) - fuel.add_nuclide("O-16", 4.5737e-2) + fuel.add_nuclide("U234", 4.9476e-6) + fuel.add_nuclide("U235", 4.8218e-4) + fuel.add_nuclide("U236", 9.0402e-5) + fuel.add_nuclide("U238", 2.1504e-2) + fuel.add_nuclide("Np237", 7.3733e-6) + fuel.add_nuclide("Pu238", 1.5148e-6) + fuel.add_nuclide("Pu239", 1.3955e-4) + fuel.add_nuclide("Pu240", 3.4405e-5) + fuel.add_nuclide("Pu241", 2.1439e-5) + fuel.add_nuclide("Pu242", 3.7422e-6) + fuel.add_nuclide("Am241", 4.5041e-7) + fuel.add_nuclide("Am242_m1", 9.2301e-9) + fuel.add_nuclide("Am243", 4.7878e-7) + fuel.add_nuclide("Cm242", 1.0485e-7) + fuel.add_nuclide("Cm243", 1.4268e-9) + fuel.add_nuclide("Cm244", 8.8756e-8) + fuel.add_nuclide("Cm245", 3.5285e-9) + fuel.add_nuclide("Mo95", 2.6497e-5) + fuel.add_nuclide("Tc99", 3.2772e-5) + fuel.add_nuclide("Ru101", 3.0742e-5) + fuel.add_nuclide("Ru103", 2.3505e-6) + fuel.add_nuclide("Ag109", 2.0009e-6) + fuel.add_nuclide("Xe135", 1.0801e-8) + fuel.add_nuclide("Cs133", 3.4612e-5) + fuel.add_nuclide("Nd143", 2.6078e-5) + fuel.add_nuclide("Nd145", 1.9898e-5) + fuel.add_nuclide("Sm147", 1.6128e-6) + fuel.add_nuclide("Sm149", 1.1627e-7) + fuel.add_nuclide("Sm150", 7.1727e-6) + fuel.add_nuclide("Sm151", 5.4947e-7) + fuel.add_nuclide("Sm152", 3.0221e-6) + fuel.add_nuclide("Eu153", 2.6209e-6) + fuel.add_nuclide("Gd155", 1.5369e-9) + fuel.add_nuclide("O16", 4.5737e-2) clad = openmc.Material(name='Cladding', material_id=2) clad.set_density('g/cm3', 5.77) - clad.add_nuclide("Zr-90", 0.5145) - clad.add_nuclide("Zr-91", 0.1122) - clad.add_nuclide("Zr-92", 0.1715) - clad.add_nuclide("Zr-94", 0.1738) - clad.add_nuclide("Zr-96", 0.0280) + clad.add_nuclide("Zr90", 0.5145) + clad.add_nuclide("Zr91", 0.1122) + clad.add_nuclide("Zr92", 0.1715) + clad.add_nuclide("Zr94", 0.1738) + clad.add_nuclide("Zr96", 0.0280) cold_water = openmc.Material(name='Cold borated water', material_id=3) cold_water.set_density('atom/b-cm', 0.07416) - cold_water.add_nuclide("H-1", 2.0) - cold_water.add_nuclide("O-16", 1.0) - cold_water.add_nuclide("B-10", 6.490e-4) - cold_water.add_nuclide("B-11", 2.689e-3) - cold_water.add_s_alpha_beta('HH2O', '71t') + cold_water.add_nuclide("H1", 2.0) + cold_water.add_nuclide("O16", 1.0) + cold_water.add_nuclide("B10", 6.490e-4) + cold_water.add_nuclide("B11", 2.689e-3) + cold_water.add_s_alpha_beta('c_H_in_H2O', '71t') hot_water = openmc.Material(name='Hot borated water', material_id=4) hot_water.set_density('atom/b-cm', 0.06614) - hot_water.add_nuclide("H-1", 2.0) - hot_water.add_nuclide("O-16", 1.0) - hot_water.add_nuclide("B-10", 6.490e-4) - hot_water.add_nuclide("B-11", 2.689e-3) - hot_water.add_s_alpha_beta('HH2O', '71t') + hot_water.add_nuclide("H1", 2.0) + hot_water.add_nuclide("O16", 1.0) + hot_water.add_nuclide("B10", 6.490e-4) + hot_water.add_nuclide("B11", 2.689e-3) + hot_water.add_s_alpha_beta('c_H_in_H2O', '71t') rpv_steel = openmc.Material(name='Reactor pressure vessel steel', material_id=5) rpv_steel.set_density('g/cm3', 7.9) - rpv_steel.add_nuclide("Fe-54", 0.05437098, 'wo') - rpv_steel.add_nuclide("Fe-56", 0.88500663, 'wo') - rpv_steel.add_nuclide("Fe-57", 0.0208008, 'wo') - rpv_steel.add_nuclide("Fe-58", 0.00282159, 'wo') - rpv_steel.add_nuclide("Ni-58", 0.0067198, 'wo') - rpv_steel.add_nuclide("Ni-60", 0.0026776, 'wo') - rpv_steel.add_nuclide("Ni-61", 0.0001183, 'wo') - rpv_steel.add_nuclide("Ni-62", 0.0003835, 'wo') - rpv_steel.add_nuclide("Ni-64", 0.0001008, 'wo') - rpv_steel.add_nuclide("Mn-55", 0.01, 'wo') - rpv_steel.add_nuclide("Mo-92", 0.000849, 'wo') - rpv_steel.add_nuclide("Mo-94", 0.0005418, 'wo') - rpv_steel.add_nuclide("Mo-95", 0.0009438, 'wo') - rpv_steel.add_nuclide("Mo-96", 0.0010002, 'wo') - rpv_steel.add_nuclide("Mo-97", 0.0005796, 'wo') - rpv_steel.add_nuclide("Mo-98", 0.0014814, 'wo') - rpv_steel.add_nuclide("Mo-100", 0.0006042, 'wo') - rpv_steel.add_nuclide("Si-28", 0.00367464, 'wo') - rpv_steel.add_nuclide("Si-29", 0.00019336, 'wo') - rpv_steel.add_nuclide("Si-30", 0.000132, 'wo') - rpv_steel.add_nuclide("Cr-50", 0.00010435, 'wo') - rpv_steel.add_nuclide("Cr-52", 0.002092475, 'wo') - rpv_steel.add_nuclide("Cr-53", 0.00024185, 'wo') - rpv_steel.add_nuclide("Cr-54", 6.1325e-05, 'wo') - rpv_steel.add_nuclide("C-Nat", 0.0025, 'wo') - rpv_steel.add_nuclide("Cu-63", 0.0013696, 'wo') - rpv_steel.add_nuclide("Cu-65", 0.0006304, 'wo') + rpv_steel.add_nuclide("Fe54", 0.05437098, 'wo') + rpv_steel.add_nuclide("Fe56", 0.88500663, 'wo') + rpv_steel.add_nuclide("Fe57", 0.0208008, 'wo') + rpv_steel.add_nuclide("Fe58", 0.00282159, 'wo') + rpv_steel.add_nuclide("Ni58", 0.0067198, 'wo') + rpv_steel.add_nuclide("Ni60", 0.0026776, 'wo') + rpv_steel.add_nuclide("Ni61", 0.0001183, 'wo') + rpv_steel.add_nuclide("Ni62", 0.0003835, 'wo') + rpv_steel.add_nuclide("Ni64", 0.0001008, 'wo') + rpv_steel.add_nuclide("Mn55", 0.01, 'wo') + rpv_steel.add_nuclide("Mo92", 0.000849, 'wo') + rpv_steel.add_nuclide("Mo94", 0.0005418, 'wo') + rpv_steel.add_nuclide("Mo95", 0.0009438, 'wo') + rpv_steel.add_nuclide("Mo96", 0.0010002, 'wo') + rpv_steel.add_nuclide("Mo97", 0.0005796, 'wo') + rpv_steel.add_nuclide("Mo98", 0.0014814, 'wo') + rpv_steel.add_nuclide("Mo100", 0.0006042, 'wo') + rpv_steel.add_nuclide("Si28", 0.00367464, 'wo') + rpv_steel.add_nuclide("Si29", 0.00019336, 'wo') + rpv_steel.add_nuclide("Si30", 0.000132, 'wo') + rpv_steel.add_nuclide("Cr50", 0.00010435, 'wo') + rpv_steel.add_nuclide("Cr52", 0.002092475, 'wo') + rpv_steel.add_nuclide("Cr53", 0.00024185, 'wo') + rpv_steel.add_nuclide("Cr54", 6.1325e-05, 'wo') + rpv_steel.add_nuclide("C0", 0.0025, 'wo') + rpv_steel.add_nuclide("Cu63", 0.0013696, 'wo') + rpv_steel.add_nuclide("Cu65", 0.0006304, 'wo') lower_rad_ref = openmc.Material(name='Lower radial reflector', material_id=6) lower_rad_ref.set_density('g/cm3', 4.32) - lower_rad_ref.add_nuclide("H-1", 0.0095661, 'wo') - lower_rad_ref.add_nuclide("O-16", 0.0759107, 'wo') - lower_rad_ref.add_nuclide("B-10", 3.08409e-5, 'wo') - lower_rad_ref.add_nuclide("B-11", 1.40499e-4, 'wo') - lower_rad_ref.add_nuclide("Fe-54", 0.035620772088, 'wo') - lower_rad_ref.add_nuclide("Fe-56", 0.579805982228, 'wo') - lower_rad_ref.add_nuclide("Fe-57", 0.01362750048, 'wo') - lower_rad_ref.add_nuclide("Fe-58", 0.001848545204, 'wo') - lower_rad_ref.add_nuclide("Ni-58", 0.055298376566, 'wo') - lower_rad_ref.add_nuclide("Ni-60", 0.022034425592, 'wo') - lower_rad_ref.add_nuclide("Ni-61", 0.000973510811, 'wo') - lower_rad_ref.add_nuclide("Ni-62", 0.003155886695, 'wo') - lower_rad_ref.add_nuclide("Ni-64", 0.000829500336, 'wo') - lower_rad_ref.add_nuclide("Mn-55", 0.0182870, 'wo') - lower_rad_ref.add_nuclide("Si-28", 0.00839976771, 'wo') - lower_rad_ref.add_nuclide("Si-29", 0.00044199679, 'wo') - lower_rad_ref.add_nuclide("Si-30", 0.0003017355, 'wo') - lower_rad_ref.add_nuclide("Cr-50", 0.007251360806, 'wo') - lower_rad_ref.add_nuclide("Cr-52", 0.145407678031, 'wo') - lower_rad_ref.add_nuclide("Cr-53", 0.016806340306, 'wo') - lower_rad_ref.add_nuclide("Cr-54", 0.004261520857, 'wo') - lower_rad_ref.add_s_alpha_beta('HH2O', '71t') + lower_rad_ref.add_nuclide("H1", 0.0095661, 'wo') + lower_rad_ref.add_nuclide("O16", 0.0759107, 'wo') + lower_rad_ref.add_nuclide("B10", 3.08409e-5, 'wo') + lower_rad_ref.add_nuclide("B11", 1.40499e-4, 'wo') + lower_rad_ref.add_nuclide("Fe54", 0.035620772088, 'wo') + lower_rad_ref.add_nuclide("Fe56", 0.579805982228, 'wo') + lower_rad_ref.add_nuclide("Fe57", 0.01362750048, 'wo') + lower_rad_ref.add_nuclide("Fe58", 0.001848545204, 'wo') + lower_rad_ref.add_nuclide("Ni58", 0.055298376566, 'wo') + lower_rad_ref.add_nuclide("Ni60", 0.022034425592, 'wo') + lower_rad_ref.add_nuclide("Ni61", 0.000973510811, 'wo') + lower_rad_ref.add_nuclide("Ni62", 0.003155886695, 'wo') + lower_rad_ref.add_nuclide("Ni64", 0.000829500336, 'wo') + lower_rad_ref.add_nuclide("Mn55", 0.0182870, 'wo') + lower_rad_ref.add_nuclide("Si28", 0.00839976771, 'wo') + lower_rad_ref.add_nuclide("Si29", 0.00044199679, 'wo') + lower_rad_ref.add_nuclide("Si30", 0.0003017355, 'wo') + lower_rad_ref.add_nuclide("Cr50", 0.007251360806, 'wo') + lower_rad_ref.add_nuclide("Cr52", 0.145407678031, 'wo') + lower_rad_ref.add_nuclide("Cr53", 0.016806340306, 'wo') + lower_rad_ref.add_nuclide("Cr54", 0.004261520857, 'wo') + lower_rad_ref.add_s_alpha_beta('c_H_in_H2O', '71t') upper_rad_ref = openmc.Material(name='Upper radial reflector /' 'Top plate region', material_id=7) upper_rad_ref.set_density('g/cm3', 4.28) - upper_rad_ref.add_nuclide("H-1", 0.0086117, 'wo') - upper_rad_ref.add_nuclide("O-16", 0.0683369, 'wo') - upper_rad_ref.add_nuclide("B-10", 2.77638e-5, 'wo') - upper_rad_ref.add_nuclide("B-11", 1.26481e-4, 'wo') - upper_rad_ref.add_nuclide("Fe-54", 0.035953677186, 'wo') - upper_rad_ref.add_nuclide("Fe-56", 0.585224740891, 'wo') - upper_rad_ref.add_nuclide("Fe-57", 0.01375486056, 'wo') - upper_rad_ref.add_nuclide("Fe-58", 0.001865821363, 'wo') - upper_rad_ref.add_nuclide("Ni-58", 0.055815129186, 'wo') - upper_rad_ref.add_nuclide("Ni-60", 0.022240333032, 'wo') - upper_rad_ref.add_nuclide("Ni-61", 0.000982608081, 'wo') - upper_rad_ref.add_nuclide("Ni-62", 0.003185377845, 'wo') - upper_rad_ref.add_nuclide("Ni-64", 0.000837251856, 'wo') - upper_rad_ref.add_nuclide("Mn-55", 0.0184579, 'wo') - upper_rad_ref.add_nuclide("Si-28", 0.00847831314, 'wo') - upper_rad_ref.add_nuclide("Si-29", 0.00044612986, 'wo') - upper_rad_ref.add_nuclide("Si-30", 0.000304557, 'wo') - upper_rad_ref.add_nuclide("Cr-50", 0.00731912987, 'wo') - upper_rad_ref.add_nuclide("Cr-52", 0.146766614995, 'wo') - upper_rad_ref.add_nuclide("Cr-53", 0.01696340737, 'wo') - upper_rad_ref.add_nuclide("Cr-54", 0.004301347765, 'wo') - upper_rad_ref.add_s_alpha_beta('HH2O', '71t') + upper_rad_ref.add_nuclide("H1", 0.0086117, 'wo') + upper_rad_ref.add_nuclide("O16", 0.0683369, 'wo') + upper_rad_ref.add_nuclide("B10", 2.77638e-5, 'wo') + upper_rad_ref.add_nuclide("B11", 1.26481e-4, 'wo') + upper_rad_ref.add_nuclide("Fe54", 0.035953677186, 'wo') + upper_rad_ref.add_nuclide("Fe56", 0.585224740891, 'wo') + upper_rad_ref.add_nuclide("Fe57", 0.01375486056, 'wo') + upper_rad_ref.add_nuclide("Fe58", 0.001865821363, 'wo') + upper_rad_ref.add_nuclide("Ni58", 0.055815129186, 'wo') + upper_rad_ref.add_nuclide("Ni60", 0.022240333032, 'wo') + upper_rad_ref.add_nuclide("Ni61", 0.000982608081, 'wo') + upper_rad_ref.add_nuclide("Ni62", 0.003185377845, 'wo') + upper_rad_ref.add_nuclide("Ni64", 0.000837251856, 'wo') + upper_rad_ref.add_nuclide("Mn55", 0.0184579, 'wo') + upper_rad_ref.add_nuclide("Si28", 0.00847831314, 'wo') + upper_rad_ref.add_nuclide("Si29", 0.00044612986, 'wo') + upper_rad_ref.add_nuclide("Si30", 0.000304557, 'wo') + upper_rad_ref.add_nuclide("Cr50", 0.00731912987, 'wo') + upper_rad_ref.add_nuclide("Cr52", 0.146766614995, 'wo') + upper_rad_ref.add_nuclide("Cr53", 0.01696340737, 'wo') + upper_rad_ref.add_nuclide("Cr54", 0.004301347765, 'wo') + upper_rad_ref.add_s_alpha_beta('c_H_in_H2O', '71t') bot_plate = openmc.Material(name='Bottom plate region', material_id=8) bot_plate.set_density('g/cm3', 7.184) - bot_plate.add_nuclide("H-1", 0.0011505, 'wo') - bot_plate.add_nuclide("O-16", 0.0091296, 'wo') - bot_plate.add_nuclide("B-10", 3.70915e-6, 'wo') - bot_plate.add_nuclide("B-11", 1.68974e-5, 'wo') - bot_plate.add_nuclide("Fe-54", 0.03855611055, 'wo') - bot_plate.add_nuclide("Fe-56", 0.627585036425, 'wo') - bot_plate.add_nuclide("Fe-57", 0.014750478, 'wo') - bot_plate.add_nuclide("Fe-58", 0.002000875025, 'wo') - bot_plate.add_nuclide("Ni-58", 0.059855207342, 'wo') - bot_plate.add_nuclide("Ni-60", 0.023850159704, 'wo') - bot_plate.add_nuclide("Ni-61", 0.001053732407, 'wo') - bot_plate.add_nuclide("Ni-62", 0.003415945715, 'wo') - bot_plate.add_nuclide("Ni-64", 0.000897854832, 'wo') - bot_plate.add_nuclide("Mn-55", 0.0197940, 'wo') - bot_plate.add_nuclide("Si-28", 0.00909197802, 'wo') - bot_plate.add_nuclide("Si-29", 0.00047842098, 'wo') - bot_plate.add_nuclide("Si-30", 0.000326601, 'wo') - bot_plate.add_nuclide("Cr-50", 0.007848910646, 'wo') - bot_plate.add_nuclide("Cr-52", 0.157390026871, 'wo') - bot_plate.add_nuclide("Cr-53", 0.018191270146, 'wo') - bot_plate.add_nuclide("Cr-54", 0.004612692337, 'wo') - bot_plate.add_s_alpha_beta('HH2O', '71t') + bot_plate.add_nuclide("H1", 0.0011505, 'wo') + bot_plate.add_nuclide("O16", 0.0091296, 'wo') + bot_plate.add_nuclide("B10", 3.70915e-6, 'wo') + bot_plate.add_nuclide("B11", 1.68974e-5, 'wo') + bot_plate.add_nuclide("Fe54", 0.03855611055, 'wo') + bot_plate.add_nuclide("Fe56", 0.627585036425, 'wo') + bot_plate.add_nuclide("Fe57", 0.014750478, 'wo') + bot_plate.add_nuclide("Fe58", 0.002000875025, 'wo') + bot_plate.add_nuclide("Ni58", 0.059855207342, 'wo') + bot_plate.add_nuclide("Ni60", 0.023850159704, 'wo') + bot_plate.add_nuclide("Ni61", 0.001053732407, 'wo') + bot_plate.add_nuclide("Ni62", 0.003415945715, 'wo') + bot_plate.add_nuclide("Ni64", 0.000897854832, 'wo') + bot_plate.add_nuclide("Mn55", 0.0197940, 'wo') + bot_plate.add_nuclide("Si28", 0.00909197802, 'wo') + bot_plate.add_nuclide("Si29", 0.00047842098, 'wo') + bot_plate.add_nuclide("Si30", 0.000326601, 'wo') + bot_plate.add_nuclide("Cr50", 0.007848910646, 'wo') + bot_plate.add_nuclide("Cr52", 0.157390026871, 'wo') + bot_plate.add_nuclide("Cr53", 0.018191270146, 'wo') + bot_plate.add_nuclide("Cr54", 0.004612692337, 'wo') + bot_plate.add_s_alpha_beta('c_H_in_H2O', '71t') bot_nozzle = openmc.Material(name='Bottom nozzle region', material_id=9) bot_nozzle.set_density('g/cm3', 2.53) - bot_nozzle.add_nuclide("H-1", 0.0245014, 'wo') - bot_nozzle.add_nuclide("O-16", 0.1944274, 'wo') - bot_nozzle.add_nuclide("B-10", 7.89917e-5, 'wo') - bot_nozzle.add_nuclide("B-11", 3.59854e-4, 'wo') - bot_nozzle.add_nuclide("Fe-54", 0.030411411144, 'wo') - bot_nozzle.add_nuclide("Fe-56", 0.495012237964, 'wo') - bot_nozzle.add_nuclide("Fe-57", 0.01163454624, 'wo') - bot_nozzle.add_nuclide("Fe-58", 0.001578204652, 'wo') - bot_nozzle.add_nuclide("Ni-58", 0.047211231662, 'wo') - bot_nozzle.add_nuclide("Ni-60", 0.018811987544, 'wo') - bot_nozzle.add_nuclide("Ni-61", 0.000831139127, 'wo') - bot_nozzle.add_nuclide("Ni-62", 0.002694352115, 'wo') - bot_nozzle.add_nuclide("Ni-64", 0.000708189552, 'wo') - bot_nozzle.add_nuclide("Mn-55", 0.0156126, 'wo') - bot_nozzle.add_nuclide("Si-28", 0.007171335558, 'wo') - bot_nozzle.add_nuclide("Si-29", 0.000377356542, 'wo') - bot_nozzle.add_nuclide("Si-30", 0.0002576079, 'wo') - bot_nozzle.add_nuclide("Cr-50", 0.006190885148, 'wo') - bot_nozzle.add_nuclide("Cr-52", 0.124142524198, 'wo') - bot_nozzle.add_nuclide("Cr-53", 0.014348496148, 'wo') - bot_nozzle.add_nuclide("Cr-54", 0.003638294506, 'wo') - bot_nozzle.add_s_alpha_beta('HH2O', '71t') + bot_nozzle.add_nuclide("H1", 0.0245014, 'wo') + bot_nozzle.add_nuclide("O16", 0.1944274, 'wo') + bot_nozzle.add_nuclide("B10", 7.89917e-5, 'wo') + bot_nozzle.add_nuclide("B11", 3.59854e-4, 'wo') + bot_nozzle.add_nuclide("Fe54", 0.030411411144, 'wo') + bot_nozzle.add_nuclide("Fe56", 0.495012237964, 'wo') + bot_nozzle.add_nuclide("Fe57", 0.01163454624, 'wo') + bot_nozzle.add_nuclide("Fe58", 0.001578204652, 'wo') + bot_nozzle.add_nuclide("Ni58", 0.047211231662, 'wo') + bot_nozzle.add_nuclide("Ni60", 0.018811987544, 'wo') + bot_nozzle.add_nuclide("Ni61", 0.000831139127, 'wo') + bot_nozzle.add_nuclide("Ni62", 0.002694352115, 'wo') + bot_nozzle.add_nuclide("Ni64", 0.000708189552, 'wo') + bot_nozzle.add_nuclide("Mn55", 0.0156126, 'wo') + bot_nozzle.add_nuclide("Si28", 0.007171335558, 'wo') + bot_nozzle.add_nuclide("Si29", 0.000377356542, 'wo') + bot_nozzle.add_nuclide("Si30", 0.0002576079, 'wo') + bot_nozzle.add_nuclide("Cr50", 0.006190885148, 'wo') + bot_nozzle.add_nuclide("Cr52", 0.124142524198, 'wo') + bot_nozzle.add_nuclide("Cr53", 0.014348496148, 'wo') + bot_nozzle.add_nuclide("Cr54", 0.003638294506, 'wo') + bot_nozzle.add_s_alpha_beta('c_H_in_H2O', '71t') top_nozzle = openmc.Material(name='Top nozzle region', material_id=10) top_nozzle.set_density('g/cm3', 1.746) - top_nozzle.add_nuclide("H-1", 0.0358870, 'wo') - top_nozzle.add_nuclide("O-16", 0.2847761, 'wo') - top_nozzle.add_nuclide("B-10", 1.15699e-4, 'wo') - top_nozzle.add_nuclide("B-11", 5.27075e-4, 'wo') - top_nozzle.add_nuclide("Fe-54", 0.02644016154, 'wo') - top_nozzle.add_nuclide("Fe-56", 0.43037146399, 'wo') - top_nozzle.add_nuclide("Fe-57", 0.0101152584, 'wo') - top_nozzle.add_nuclide("Fe-58", 0.00137211607, 'wo') - top_nozzle.add_nuclide("Ni-58", 0.04104621835, 'wo') - top_nozzle.add_nuclide("Ni-60", 0.0163554502, 'wo') - top_nozzle.add_nuclide("Ni-61", 0.000722605975, 'wo') - top_nozzle.add_nuclide("Ni-62", 0.002342513875, 'wo') - top_nozzle.add_nuclide("Ni-64", 0.0006157116, 'wo') - top_nozzle.add_nuclide("Mn-55", 0.0135739, 'wo') - top_nozzle.add_nuclide("Si-28", 0.006234853554, 'wo') - top_nozzle.add_nuclide("Si-29", 0.000328078746, 'wo') - top_nozzle.add_nuclide("Si-30", 0.0002239677, 'wo') - top_nozzle.add_nuclide("Cr-50", 0.005382452306, 'wo') - top_nozzle.add_nuclide("Cr-52", 0.107931450781, 'wo') - top_nozzle.add_nuclide("Cr-53", 0.012474806806, 'wo') - top_nozzle.add_nuclide("Cr-54", 0.003163190107, 'wo') - top_nozzle.add_s_alpha_beta('HH2O', '71t') + top_nozzle.add_nuclide("H1", 0.0358870, 'wo') + top_nozzle.add_nuclide("O16", 0.2847761, 'wo') + top_nozzle.add_nuclide("B10", 1.15699e-4, 'wo') + top_nozzle.add_nuclide("B11", 5.27075e-4, 'wo') + top_nozzle.add_nuclide("Fe54", 0.02644016154, 'wo') + top_nozzle.add_nuclide("Fe56", 0.43037146399, 'wo') + top_nozzle.add_nuclide("Fe57", 0.0101152584, 'wo') + top_nozzle.add_nuclide("Fe58", 0.00137211607, 'wo') + top_nozzle.add_nuclide("Ni58", 0.04104621835, 'wo') + top_nozzle.add_nuclide("Ni60", 0.0163554502, 'wo') + top_nozzle.add_nuclide("Ni61", 0.000722605975, 'wo') + top_nozzle.add_nuclide("Ni62", 0.002342513875, 'wo') + top_nozzle.add_nuclide("Ni64", 0.0006157116, 'wo') + top_nozzle.add_nuclide("Mn55", 0.0135739, 'wo') + top_nozzle.add_nuclide("Si28", 0.006234853554, 'wo') + top_nozzle.add_nuclide("Si29", 0.000328078746, 'wo') + top_nozzle.add_nuclide("Si30", 0.0002239677, 'wo') + top_nozzle.add_nuclide("Cr50", 0.005382452306, 'wo') + top_nozzle.add_nuclide("Cr52", 0.107931450781, 'wo') + top_nozzle.add_nuclide("Cr53", 0.012474806806, 'wo') + top_nozzle.add_nuclide("Cr54", 0.003163190107, 'wo') + top_nozzle.add_s_alpha_beta('c_H_in_H2O', '71t') top_fa = openmc.Material(name='Top of fuel assemblies', material_id=11) top_fa.set_density('g/cm3', 3.044) - top_fa.add_nuclide("H-1", 0.0162913, 'wo') - top_fa.add_nuclide("O-16", 0.1292776, 'wo') - top_fa.add_nuclide("B-10", 5.25228e-5, 'wo') - top_fa.add_nuclide("B-11", 2.39272e-4, 'wo') - top_fa.add_nuclide("Zr-90", 0.43313403903, 'wo') - top_fa.add_nuclide("Zr-91", 0.09549277374, 'wo') - top_fa.add_nuclide("Zr-92", 0.14759527104, 'wo') - top_fa.add_nuclide("Zr-94", 0.15280552077, 'wo') - top_fa.add_nuclide("Zr-96", 0.02511169542, 'wo') - top_fa.add_s_alpha_beta('HH2O', '71t') + top_fa.add_nuclide("H1", 0.0162913, 'wo') + top_fa.add_nuclide("O16", 0.1292776, 'wo') + top_fa.add_nuclide("B10", 5.25228e-5, 'wo') + top_fa.add_nuclide("B11", 2.39272e-4, 'wo') + top_fa.add_nuclide("Zr90", 0.43313403903, 'wo') + top_fa.add_nuclide("Zr91", 0.09549277374, 'wo') + top_fa.add_nuclide("Zr92", 0.14759527104, 'wo') + top_fa.add_nuclide("Zr94", 0.15280552077, 'wo') + top_fa.add_nuclide("Zr96", 0.02511169542, 'wo') + top_fa.add_s_alpha_beta('c_H_in_H2O', '71t') bot_fa = openmc.Material(name='Bottom of fuel assemblies', material_id=12) bot_fa.set_density('g/cm3', 1.762) - bot_fa.add_nuclide("H-1", 0.0292856, 'wo') - bot_fa.add_nuclide("O-16", 0.2323919, 'wo') - bot_fa.add_nuclide("B-10", 9.44159e-5, 'wo') - bot_fa.add_nuclide("B-11", 4.30120e-4, 'wo') - bot_fa.add_nuclide("Zr-90", 0.3741373658, 'wo') - bot_fa.add_nuclide("Zr-91", 0.0824858164, 'wo') - bot_fa.add_nuclide("Zr-92", 0.1274914944, 'wo') - bot_fa.add_nuclide("Zr-94", 0.1319920622, 'wo') - bot_fa.add_nuclide("Zr-96", 0.0216912612, 'wo') - bot_fa.add_s_alpha_beta('HH2O', '71t') + bot_fa.add_nuclide("H1", 0.0292856, 'wo') + bot_fa.add_nuclide("O16", 0.2323919, 'wo') + bot_fa.add_nuclide("B10", 9.44159e-5, 'wo') + bot_fa.add_nuclide("B11", 4.30120e-4, 'wo') + bot_fa.add_nuclide("Zr90", 0.3741373658, 'wo') + bot_fa.add_nuclide("Zr91", 0.0824858164, 'wo') + bot_fa.add_nuclide("Zr92", 0.1274914944, 'wo') + bot_fa.add_nuclide("Zr94", 0.1319920622, 'wo') + bot_fa.add_nuclide("Zr96", 0.0216912612, 'wo') + bot_fa.add_s_alpha_beta('c_H_in_H2O', '71t') # Define the materials file. self.materials.default_xs = '71c' @@ -592,26 +592,26 @@ class PinCellInputSet(object): # Define materials. fuel = openmc.Material(name='Fuel') fuel.set_density('g/cm3', 10.29769) - fuel.add_nuclide("U-234", 4.4843e-6) - fuel.add_nuclide("U-235", 5.5815e-4) - fuel.add_nuclide("U-238", 2.2408e-2) - fuel.add_nuclide("O-16", 4.5829e-2) + fuel.add_nuclide("U234", 4.4843e-6) + fuel.add_nuclide("U235", 5.5815e-4) + fuel.add_nuclide("U238", 2.2408e-2) + fuel.add_nuclide("O16", 4.5829e-2) clad = openmc.Material(name='Cladding') clad.set_density('g/cm3', 6.55) - clad.add_nuclide("Zr-90", 2.1827e-2) - clad.add_nuclide("Zr-91", 4.7600e-3) - clad.add_nuclide("Zr-92", 7.2758e-3) - clad.add_nuclide("Zr-94", 7.3734e-3) - clad.add_nuclide("Zr-96", 1.1879e-3) + clad.add_nuclide("Zr90", 2.1827e-2) + clad.add_nuclide("Zr91", 4.7600e-3) + clad.add_nuclide("Zr92", 7.2758e-3) + clad.add_nuclide("Zr94", 7.3734e-3) + clad.add_nuclide("Zr96", 1.1879e-3) hot_water = openmc.Material(name='Hot borated water') hot_water.set_density('g/cm3', 0.740582) - hot_water.add_nuclide("H-1", 4.9457e-2) - hot_water.add_nuclide("O-16", 2.4672e-2) - hot_water.add_nuclide("B-10", 8.0042e-6) - hot_water.add_nuclide("B-11", 3.2218e-5) - hot_water.add_s_alpha_beta('HH2O', '71t') + hot_water.add_nuclide("H1", 4.9457e-2) + hot_water.add_nuclide("O16", 2.4672e-2) + hot_water.add_nuclide("B10", 8.0042e-6) + hot_water.add_nuclide("B11", 3.2218e-5) + hot_water.add_s_alpha_beta('c_H_in_H2O', '71t') # Define the materials file. self.materials.default_xs = '71c' diff --git a/tests/test_asymmetric_lattice/inputs_true.dat b/tests/test_asymmetric_lattice/inputs_true.dat index f40e661b33..d503a3a0bb 100644 --- a/tests/test_asymmetric_lattice/inputs_true.dat +++ b/tests/test_asymmetric_lattice/inputs_true.dat @@ -1 +1 @@ -9b859eb5501c05b6a652d299bd0cadc0a924ffae31117babbdc9f7f8ca87689322c275818eb0dde0ff5fa78317d8d8f1585b18dcc772e3ff4ed499de8a491dc3 \ No newline at end of file +a55899cd2ed0a8ec5d44003139da639f87f5f03ee76b2d6577db6a8c2014849e4277f8e68fa874ac6795e4cbc4eb6e4031d726cafe6e663e84787d1ecd8e7f86 \ No newline at end of file diff --git a/tests/test_cmfd_feed/materials.xml b/tests/test_cmfd_feed/materials.xml index 7b4baf9e15..8f32169d92 100644 --- a/tests/test_cmfd_feed/materials.xml +++ b/tests/test_cmfd_feed/materials.xml @@ -4,9 +4,9 @@ - - - + + + diff --git a/tests/test_cmfd_nofeed/materials.xml b/tests/test_cmfd_nofeed/materials.xml index 7b4baf9e15..8f32169d92 100644 --- a/tests/test_cmfd_nofeed/materials.xml +++ b/tests/test_cmfd_nofeed/materials.xml @@ -4,9 +4,9 @@ - - - + + + diff --git a/tests/test_complex_cell/materials.xml b/tests/test_complex_cell/materials.xml index 60ec996735..a9e69b8bc6 100644 --- a/tests/test_complex_cell/materials.xml +++ b/tests/test_complex_cell/materials.xml @@ -5,11 +5,11 @@ - + - + diff --git a/tests/test_confidence_intervals/materials.xml b/tests/test_confidence_intervals/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_confidence_intervals/materials.xml +++ b/tests/test_confidence_intervals/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_density/materials.xml b/tests/test_density/materials.xml index 36947d066d..c474c5c65c 100644 --- a/tests/test_density/materials.xml +++ b/tests/test_density/materials.xml @@ -3,24 +3,24 @@ - + - + - + - - - + + + diff --git a/tests/test_distribmat/inputs_true.dat b/tests/test_distribmat/inputs_true.dat index 9c8a86bfa7..1212a28e59 100644 --- a/tests/test_distribmat/inputs_true.dat +++ b/tests/test_distribmat/inputs_true.dat @@ -1 +1 @@ -96c54eb4f1da175445bf2187449ee32c9ff435d8c60e9421a4a16497aae9f233e3e494f531892dd55f6ac1a06e0240799503ff19e14e2436a0b0f0d83ba56cb8 \ No newline at end of file +46df57157980545d90b482acfb01f525b84c0e623fa93a5d9c08a65723d677ef1c092360219a3c7fcf5110c6ba32f1eacbd5c5eaed40be4bfe154f302400c0a4 \ No newline at end of file diff --git a/tests/test_distribmat/test_distribmat.py b/tests/test_distribmat/test_distribmat.py index 96d41c3fbe..a8d013996e 100644 --- a/tests/test_distribmat/test_distribmat.py +++ b/tests/test_distribmat/test_distribmat.py @@ -17,16 +17,16 @@ class DistribmatTestHarness(PyAPITestHarness): moderator = openmc.Material(material_id=1) moderator.set_density('g/cc', 1.0) - moderator.add_nuclide('H-1', 2.0) - moderator.add_nuclide('O-16', 1.0) + moderator.add_nuclide('H1', 2.0) + moderator.add_nuclide('O16', 1.0) dense_fuel = openmc.Material(material_id=2) dense_fuel.set_density('g/cc', 4.5) - dense_fuel.add_nuclide('U-235', 1.0) + dense_fuel.add_nuclide('U235', 1.0) light_fuel = openmc.Material(material_id=3) light_fuel.set_density('g/cc', 2.0) - light_fuel.add_nuclide('U-235', 1.0) + light_fuel.add_nuclide('U235', 1.0) mats_file = openmc.Materials([moderator, dense_fuel, light_fuel]) mats_file.default_xs = '71c' diff --git a/tests/test_eigenvalue_genperbatch/materials.xml b/tests/test_eigenvalue_genperbatch/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_eigenvalue_genperbatch/materials.xml +++ b/tests/test_eigenvalue_genperbatch/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_eigenvalue_no_inactive/materials.xml b/tests/test_eigenvalue_no_inactive/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_eigenvalue_no_inactive/materials.xml +++ b/tests/test_eigenvalue_no_inactive/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_energy_grid/materials.xml b/tests/test_energy_grid/materials.xml index 45ccc65540..ed9b38d901 100644 --- a/tests/test_energy_grid/materials.xml +++ b/tests/test_energy_grid/materials.xml @@ -3,9 +3,9 @@ - - - + + + diff --git a/tests/test_energy_laws/materials.xml b/tests/test_energy_laws/materials.xml index 97f9b84be1..c70e071cff 100644 --- a/tests/test_energy_laws/materials.xml +++ b/tests/test_energy_laws/materials.xml @@ -3,9 +3,9 @@ 71c - - - - + + + + diff --git a/tests/test_entropy/materials.xml b/tests/test_entropy/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_entropy/materials.xml +++ b/tests/test_entropy/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_filter_distribcell/case-1/materials.xml b/tests/test_filter_distribcell/case-1/materials.xml index 0bb9a35a3e..891cc9fd0e 100644 --- a/tests/test_filter_distribcell/case-1/materials.xml +++ b/tests/test_filter_distribcell/case-1/materials.xml @@ -6,13 +6,13 @@ - + - - + + diff --git a/tests/test_filter_distribcell/case-2/materials.xml b/tests/test_filter_distribcell/case-2/materials.xml index 0bb9a35a3e..891cc9fd0e 100644 --- a/tests/test_filter_distribcell/case-2/materials.xml +++ b/tests/test_filter_distribcell/case-2/materials.xml @@ -6,13 +6,13 @@ - + - - + + diff --git a/tests/test_filter_distribcell/case-3/materials.xml b/tests/test_filter_distribcell/case-3/materials.xml index 8f50a6a60c..6a5916a837 100644 --- a/tests/test_filter_distribcell/case-3/materials.xml +++ b/tests/test_filter_distribcell/case-3/materials.xml @@ -6,120 +6,120 @@ - - - + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + diff --git a/tests/test_filter_distribcell/case-4/materials.xml b/tests/test_filter_distribcell/case-4/materials.xml index 19678c2a15..ab9f8688ed 100644 --- a/tests/test_filter_distribcell/case-4/materials.xml +++ b/tests/test_filter_distribcell/case-4/materials.xml @@ -3,16 +3,16 @@ 71c - + - - - + + + - + diff --git a/tests/test_filter_mesh_2d/materials.xml b/tests/test_filter_mesh_2d/materials.xml index 9c0b74f3f1..f5a9e61bea 100644 --- a/tests/test_filter_mesh_2d/materials.xml +++ b/tests/test_filter_mesh_2d/materials.xml @@ -6,267 +6,267 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + diff --git a/tests/test_filter_mesh_3d/materials.xml b/tests/test_filter_mesh_3d/materials.xml index 9c0b74f3f1..f5a9e61bea 100644 --- a/tests/test_filter_mesh_3d/materials.xml +++ b/tests/test_filter_mesh_3d/materials.xml @@ -6,267 +6,267 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + diff --git a/tests/test_fixed_source/materials.xml b/tests/test_fixed_source/materials.xml index ab7a76bc00..6c52b25015 100644 --- a/tests/test_fixed_source/materials.xml +++ b/tests/test_fixed_source/materials.xml @@ -3,8 +3,8 @@ - - + + diff --git a/tests/test_infinite_cell/materials.xml b/tests/test_infinite_cell/materials.xml index 2e5b48381a..1c2d649420 100644 --- a/tests/test_infinite_cell/materials.xml +++ b/tests/test_infinite_cell/materials.xml @@ -3,12 +3,12 @@ - + - + diff --git a/tests/test_iso_in_lab/inputs_true.dat b/tests/test_iso_in_lab/inputs_true.dat index bd722c9f67..34f522872e 100644 --- a/tests/test_iso_in_lab/inputs_true.dat +++ b/tests/test_iso_in_lab/inputs_true.dat @@ -1 +1 @@ -85faac9b8c725ec9242ebc3793b70dcd1c8e58aeb4296345aefd8031304263bd66eaad0c6f1c61a1c644b73f397699856ab3d76d2b397295176650b4069acc9e \ No newline at end of file +c05fdb7815ccc1dcd2f260429b9139ad96ad4a7d1643e2bb938e3cd61268451363538ef4e41c5eaf73a64dbace43b2bd4489d5ff012a33104c2c1d6fa61146eb \ No newline at end of file diff --git a/tests/test_lattice/materials.xml b/tests/test_lattice/materials.xml index 4edf926d56..67240c4c9d 100644 --- a/tests/test_lattice/materials.xml +++ b/tests/test_lattice/materials.xml @@ -15,127 +15,127 @@ - - - - - - - - - - - + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - + + - + - - - + + + - - - - + + + + - + - - - - - + + + + + - + - - - - + + + + diff --git a/tests/test_lattice_hex/materials.xml b/tests/test_lattice_hex/materials.xml index 987a25ab14..92d10fa815 100644 --- a/tests/test_lattice_hex/materials.xml +++ b/tests/test_lattice_hex/materials.xml @@ -4,39 +4,39 @@ - - - + + + - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + diff --git a/tests/test_lattice_mixed/materials.xml b/tests/test_lattice_mixed/materials.xml index 987a25ab14..92d10fa815 100644 --- a/tests/test_lattice_mixed/materials.xml +++ b/tests/test_lattice_mixed/materials.xml @@ -4,39 +4,39 @@ - - - + + + - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + diff --git a/tests/test_lattice_multiple/materials.xml b/tests/test_lattice_multiple/materials.xml index 9c0b74f3f1..f5a9e61bea 100644 --- a/tests/test_lattice_multiple/materials.xml +++ b/tests/test_lattice_multiple/materials.xml @@ -6,267 +6,267 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat index 9633a46a80..332c2df5fd 100644 --- a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -1 +1 @@ -34d5891f6f17c2d4b686b814ba61ba0045bc4289e278b1c3c47dbba59b83837fcfe15f2b8d58e7a2b07627b73d51e40348d70e9ed36dbb7cc94468d61c068c4c \ No newline at end of file +fb9c9180f692198548ca14543b29a8b623b382a19932999b2140ca4dd440f2102ba2fdbcb500ede3b8829aa85e1b4498151d280f1422d2d6b1bb5789aff34d71 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index 79ca0ec660..d92cc888a7 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ No newline at end of file +855919f7a333acff6423527b82656d6a472ea8416002fb475c2d21c676e2f75f5c040d209a3e9a3a6118cf944f2c1bfb8cf2318273b890861d790b1927791a35 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index dc67b7c562..9c33eeab44 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -88849ac150f9c389e67de96356dfceb0bde08643f68ca25699e67d263995b95893d7340a2b08b2f0f5075fc5020f73553c5287ec6c56ace2f35ce0214961e123 \ No newline at end of file +3a3b7f75b326c94a8e5c7efe3046b2fdb887e9f75ecf6eb27587f9450c77cf8fd6acc4198c15bffb4e7ceead6d7b4327c19536bbf9cc35dfaae3f4ce4c26cc1a \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index 79ca0ec660..d92cc888a7 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ No newline at end of file +855919f7a333acff6423527b82656d6a472ea8416002fb475c2d21c676e2f75f5c040d209a3e9a3a6118cf944f2c1bfb8cf2318273b890861d790b1927791a35 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index 79ca0ec660..d92cc888a7 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ No newline at end of file +855919f7a333acff6423527b82656d6a472ea8416002fb475c2d21c676e2f75f5c040d209a3e9a3a6118cf944f2c1bfb8cf2318273b890861d790b1927791a35 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 8dbb564c65..ea7655c916 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -eebb1469278f470b5859ed83e9b6526e7c4e3fed503bd22e414c6dc13b19b8e4cb6a44e3c14269e6e173f43056eda78268f455662ae119280bc18ea6a071dac7 \ No newline at end of file +739796983940a1bad601998cf9ea2f90453a994477c7f675c2fd404d1864fe04a7fbfb5a15c5fe7cf9bad016b78432ba0910baba6f9cc026143761e9f526b62a \ 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 4f47bd417f..d8ebe19a1b 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -a631b8a347f344d822e6300ed2576caa7c05a74daedeb4aaaabfb89570942cff1bbd47ad7f81306e668e12266404f7abdcf680fdfeb5a4835579892e32bf57e8 \ No newline at end of file +d56c6bae6bf3cd8950d3f50f089458c1c6c807be780fc97570532c6af6eb7e3057968d3345bd3c363f01315271129ef7b2ca028b05767353e601dc37b035f8a7 \ No newline at end of file diff --git a/tests/test_multipole/inputs_true.dat b/tests/test_multipole/inputs_true.dat index 5890332edf..801536d07e 100644 --- a/tests/test_multipole/inputs_true.dat +++ b/tests/test_multipole/inputs_true.dat @@ -1 +1 @@ -28df9e4c4729798d35741e6e9a4f910f3386c831acc54325d0e583bd989065a487cea6981068d8669bc80c3388b166c002c2127446936733f8f3f0da3e154bae \ No newline at end of file +c727431ebef7a5987dade28f4cd940c566142f97b5ce01fbf9343d680caf9056623f0fac550db64f8f1043fa2cd8230155cfcbbcaffd1ae92cede723974596d7 \ No newline at end of file diff --git a/tests/test_multipole/test_multipole.py b/tests/test_multipole/test_multipole.py index 7c3615ad72..bd6822bdf5 100644 --- a/tests/test_multipole/test_multipole.py +++ b/tests/test_multipole/test_multipole.py @@ -16,12 +16,12 @@ class MultipoleTestHarness(PyAPITestHarness): moderator = openmc.Material(material_id=1) moderator.set_density('g/cc', 1.0) - moderator.add_nuclide('H-1', 2.0) - moderator.add_nuclide('O-16', 1.0) + moderator.add_nuclide('H1', 2.0) + moderator.add_nuclide('O16', 1.0) dense_fuel = openmc.Material(material_id=2) dense_fuel.set_density('g/cc', 4.5) - dense_fuel.add_nuclide('U-235', 1.0) + dense_fuel.add_nuclide('U235', 1.0) mats_file = openmc.Materials([moderator, dense_fuel]) mats_file.default_xs = '71c' diff --git a/tests/test_natural_element/materials.xml b/tests/test_natural_element/materials.xml index 5a3b3bbc6d..60d60b81ff 100644 --- a/tests/test_natural_element/materials.xml +++ b/tests/test_natural_element/materials.xml @@ -8,9 +8,9 @@ - - - + + + @@ -18,7 +18,7 @@ - + diff --git a/tests/test_output/materials.xml b/tests/test_output/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_output/materials.xml +++ b/tests/test_output/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_particle_restart_eigval/materials.xml b/tests/test_particle_restart_eigval/materials.xml index 1fd2fb1c75..5ff4b736f5 100644 --- a/tests/test_particle_restart_eigval/materials.xml +++ b/tests/test_particle_restart_eigval/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_particle_restart_fixed/materials.xml b/tests/test_particle_restart_fixed/materials.xml index deddaef97f..f132f97630 100644 --- a/tests/test_particle_restart_fixed/materials.xml +++ b/tests/test_particle_restart_fixed/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_periodic/inputs_true.dat b/tests/test_periodic/inputs_true.dat index d50d0b8592..56d3e01bfe 100644 --- a/tests/test_periodic/inputs_true.dat +++ b/tests/test_periodic/inputs_true.dat @@ -1 +1 @@ -af589996f2930337afe34ba9894098ff5efe3b29b6e927117220b718bf29b630ffdbc931754d465a8e8100125a8aa997dbe10aab322b43f69d59710573996a6d \ No newline at end of file +0766f3e0ac9b3d26bf5529eb3c92e0337698994d663b6a68dd8c1340807d6941c7589d777430782bc7b78590adced55f0f55b1de71a7c70d453f78d4ca469d8d \ No newline at end of file diff --git a/tests/test_periodic/test_periodic.py b/tests/test_periodic/test_periodic.py index 558514575a..0260711043 100644 --- a/tests/test_periodic/test_periodic.py +++ b/tests/test_periodic/test_periodic.py @@ -11,13 +11,13 @@ class PeriodicTest(PyAPITestHarness): def _build_inputs(self): # Define materials water = openmc.Material(1) - water.add_nuclide('H-1', 2.0) - water.add_nuclide('O-16', 1.0) - water.add_s_alpha_beta('HH2O', '71t') + water.add_nuclide('H1', 2.0) + water.add_nuclide('O16', 1.0) + water.add_s_alpha_beta('c_H_in_H2O', '71t') water.set_density('g/cc', 1.0) fuel = openmc.Material(2) - fuel.add_nuclide('U-235', 1.0) + fuel.add_nuclide('U235', 1.0) fuel.set_density('g/cc', 4.5) materials = openmc.Materials((water, fuel)) diff --git a/tests/test_plot/materials.xml b/tests/test_plot/materials.xml index f90a5e7f81..826f670a48 100644 --- a/tests/test_plot/materials.xml +++ b/tests/test_plot/materials.xml @@ -3,17 +3,17 @@ - + - + - + diff --git a/tests/test_ptables_off/materials.xml b/tests/test_ptables_off/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_ptables_off/materials.xml +++ b/tests/test_ptables_off/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_quadric_surfaces/materials.xml b/tests/test_quadric_surfaces/materials.xml index 0150332b3c..606253bec0 100644 --- a/tests/test_quadric_surfaces/materials.xml +++ b/tests/test_quadric_surfaces/materials.xml @@ -3,8 +3,8 @@ - - + + diff --git a/tests/test_reflective_plane/materials.xml b/tests/test_reflective_plane/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_reflective_plane/materials.xml +++ b/tests/test_reflective_plane/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_resonance_scattering/inputs_true.dat b/tests/test_resonance_scattering/inputs_true.dat index f2a875c7eb..fdfb2b84e3 100644 --- a/tests/test_resonance_scattering/inputs_true.dat +++ b/tests/test_resonance_scattering/inputs_true.dat @@ -1 +1 @@ -ece83bb075ed8144af89ce7cebf1577dcb2489d2e9ce4afbe61a3e4398837e7a9aaa2ae0cea0a6542f51ca5e0d119b570c675ed1dca0d74237cd5fdce0b606a3 \ No newline at end of file +a97844ec7ab45b9e8c1d5849c99414dfa1408956fd951fa783ffa99f78770cd4644a3fb5abe038b0f835ef233ccea2b014e8bd7448f06769944383035ef38ac6 \ No newline at end of file diff --git a/tests/test_resonance_scattering/test_resonance_scattering.py b/tests/test_resonance_scattering/test_resonance_scattering.py index b752cf7f3b..0d70c0d8d6 100644 --- a/tests/test_resonance_scattering/test_resonance_scattering.py +++ b/tests/test_resonance_scattering/test_resonance_scattering.py @@ -12,10 +12,10 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): # 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) + mat.add_nuclide('U238', 1.0) + mat.add_nuclide('U235', 0.02) + mat.add_nuclide('Pu239', 0.02) + mat.add_nuclide('H1', 20.0) mats_file = openmc.Materials([mat]) mats_file.default_xs = '71c' @@ -37,8 +37,7 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): geometry.export_to_xml() # Settings - nuclide = openmc.Nuclide('U-238', '71c') - nuclide.zaid = 92238 + nuclide = openmc.Nuclide('U238', '71c') res_scatt_dbrc = openmc.ResonanceScattering() res_scatt_dbrc.nuclide = nuclide res_scatt_dbrc.nuclide_0K = nuclide # This is a bad idea! Just for tests @@ -46,8 +45,7 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): res_scatt_dbrc.E_min = 1e-6 res_scatt_dbrc.E_max = 210e-6 - nuclide = openmc.Nuclide('U-235', '71c') - nuclide.zaid = 92235 + nuclide = openmc.Nuclide('U235', '71c') res_scatt_wcm = openmc.ResonanceScattering() res_scatt_wcm.nuclide = nuclide res_scatt_wcm.nuclide_0K = nuclide @@ -55,8 +53,7 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): res_scatt_wcm.E_min = 1e-6 res_scatt_wcm.E_max = 210e-6 - nuclide = openmc.Nuclide('Pu-239', '71c') - nuclide.zaid = 94239 + nuclide = openmc.Nuclide('Pu239', '71c') res_scatt_ares = openmc.ResonanceScattering() res_scatt_ares.nuclide = nuclide res_scatt_ares.nuclide_0K = nuclide diff --git a/tests/test_rotation/materials.xml b/tests/test_rotation/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_rotation/materials.xml +++ b/tests/test_rotation/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_salphabeta/materials.xml b/tests/test_salphabeta/materials.xml index b51395f184..2bc401e49c 100644 --- a/tests/test_salphabeta/materials.xml +++ b/tests/test_salphabeta/materials.xml @@ -5,39 +5,39 @@ - - - + + + - - - + + + - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + diff --git a/tests/test_score_current/materials.xml b/tests/test_score_current/materials.xml index 9c0b74f3f1..f5a9e61bea 100644 --- a/tests/test_score_current/materials.xml +++ b/tests/test_score_current/materials.xml @@ -6,267 +6,267 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + diff --git a/tests/test_seed/materials.xml b/tests/test_seed/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_seed/materials.xml +++ b/tests/test_seed/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_source/inputs_true.dat b/tests/test_source/inputs_true.dat index 69a1e2ea84..f11998e6cf 100644 --- a/tests/test_source/inputs_true.dat +++ b/tests/test_source/inputs_true.dat @@ -1 +1 @@ -526c91551d9a80dc01216e5cb04162253f12ec684cc2b4912ca18cfc510f1ea2e5303029f1c1607882082b0c2c8a47f25dd5be14678f449a1579e3601d1bdec5 \ No newline at end of file +27ceb546499a4134eac08ffb22d02ce21d67f12617d43a02991b443e9aca7b7eca818d03e146676c0b352abaef6505423e48edef24cfd7a8fdb148cb3dbcdb1f \ No newline at end of file diff --git a/tests/test_source/test_source.py b/tests/test_source/test_source.py index 0abae4344e..09a13efaae 100644 --- a/tests/test_source/test_source.py +++ b/tests/test_source/test_source.py @@ -15,7 +15,7 @@ class SourceTestHarness(PyAPITestHarness): def _build_inputs(self): mat1 = openmc.Material(material_id=1) mat1.set_density('g/cm3', 4.5) - mat1.add_nuclide(openmc.Nuclide('U-235', '71c'), 1.0) + mat1.add_nuclide(openmc.Nuclide('U235', '71c'), 1.0) materials = openmc.Materials([mat1]) materials.export_to_xml() diff --git a/tests/test_source_file/materials.xml b/tests/test_source_file/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_source_file/materials.xml +++ b/tests/test_source_file/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_sourcepoint_batch/materials.xml b/tests/test_sourcepoint_batch/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_sourcepoint_batch/materials.xml +++ b/tests/test_sourcepoint_batch/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_sourcepoint_interval/materials.xml b/tests/test_sourcepoint_interval/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_sourcepoint_interval/materials.xml +++ b/tests/test_sourcepoint_interval/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_sourcepoint_latest/materials.xml b/tests/test_sourcepoint_latest/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_sourcepoint_latest/materials.xml +++ b/tests/test_sourcepoint_latest/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_sourcepoint_restart/materials.xml b/tests/test_sourcepoint_restart/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_sourcepoint_restart/materials.xml +++ b/tests/test_sourcepoint_restart/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_statepoint_batch/materials.xml b/tests/test_statepoint_batch/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_statepoint_batch/materials.xml +++ b/tests/test_statepoint_batch/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_statepoint_interval/materials.xml b/tests/test_statepoint_interval/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_statepoint_interval/materials.xml +++ b/tests/test_statepoint_interval/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_statepoint_restart/materials.xml b/tests/test_statepoint_restart/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_statepoint_restart/materials.xml +++ b/tests/test_statepoint_restart/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_statepoint_sourcesep/materials.xml b/tests/test_statepoint_sourcesep/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_statepoint_sourcesep/materials.xml +++ b/tests/test_statepoint_sourcesep/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_survival_biasing/materials.xml b/tests/test_survival_biasing/materials.xml index 1748e09fda..facad016bf 100644 --- a/tests/test_survival_biasing/materials.xml +++ b/tests/test_survival_biasing/materials.xml @@ -3,8 +3,8 @@ - - + + diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index e3d37be300..ddab630f25 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -ea09926d8f5c6c96529bf5529f4deb3be78eda2da80adbbf3440147c337587358c2b1823bc72df9463676135573eb481dcd361b735f18365216645ee81092f1e \ No newline at end of file +a392a7a8f27fd2f959b06a6809df29b3482e215da175b19846c248af44dc2ee7e2b05269b802dd9d6ed434506b05092f349436a0048411adab6b296dba0bd683 \ No newline at end of file diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index 9e40d4185d..e51e4616f5 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -155,7 +155,7 @@ class TalliesTestHarness(PyAPITestHarness): total_tallies[0].scores = ['total'] for t in total_tallies[1:]: t.scores = ['total-y4'] - t.nuclides = ['U-235', 'total'] + t.nuclides = ['U235', 'total'] total_tallies[1].estimator = 'tracklength' total_tallies[2].estimator = 'analog' total_tallies[3].estimator = 'collision' diff --git a/tests/test_tally_aggregation/inputs_true.dat b/tests/test_tally_aggregation/inputs_true.dat index 055ac76fd4..9c79787555 100644 --- a/tests/test_tally_aggregation/inputs_true.dat +++ b/tests/test_tally_aggregation/inputs_true.dat @@ -1 +1 @@ -f819f1b3564ca1df1e235f120f4bd65003cd80935fa8261f0a5982b7e7ec5b2e7497716673c142fab99f3fb26c174ac7a12e145b9a6f2caf707d2a07702f6eb2 \ No newline at end of file +67daf0d74cddb40ecbbc7e3793a3302866adcb1617fe2dc454dd161c06105e65027523f5e5954d80b961ba6c6abf14114b8be5c4d5b7682eaddffc1288d3e7c8 \ No newline at end of file diff --git a/tests/test_tally_aggregation/test_tally_aggregation.py b/tests/test_tally_aggregation/test_tally_aggregation.py index fdc086e682..76284ef9dc 100644 --- a/tests/test_tally_aggregation/test_tally_aggregation.py +++ b/tests/test_tally_aggregation/test_tally_aggregation.py @@ -16,9 +16,9 @@ class TallyAggregationTestHarness(PyAPITestHarness): self._input_set.settings.output = {'summary': True} # Initialize the nuclides - u235 = openmc.Nuclide('U-235') - u238 = openmc.Nuclide('U-238') - pu239 = openmc.Nuclide('Pu-239') + u235 = openmc.Nuclide('U235') + u238 = openmc.Nuclide('U238') + pu239 = openmc.Nuclide('Pu239') # Initialize the filters energy_filter = openmc.Filter(type='energy', bins=[0.0, 0.253e-6, @@ -60,7 +60,7 @@ class TallyAggregationTestHarness(PyAPITestHarness): outstr += ', '.join(map(str, tally_sum.std_dev)) # Sum across all nuclides - tally_sum = tally.summation(nuclides=['U-235', 'U-238', 'Pu-239']) + tally_sum = tally.summation(nuclides=['U235', 'U238', 'Pu239']) outstr += ', '.join(map(str, tally_sum.mean)) outstr += ', '.join(map(str, tally_sum.std_dev)) diff --git a/tests/test_tally_arithmetic/inputs_true.dat b/tests/test_tally_arithmetic/inputs_true.dat index d7b854a51d..b56c17b6b6 100644 --- a/tests/test_tally_arithmetic/inputs_true.dat +++ b/tests/test_tally_arithmetic/inputs_true.dat @@ -1 +1 @@ -bb7e730630f7bb4694a27fd77c3c0171f70c78df2681acc26b0ef88bcff367523b11335f487b46269325adbcee7faeb756484af64055c3c91b0103f7ed962053 \ No newline at end of file +c8772a174e2162030f0315a318991085f1a5c0b054883a5f071d520e34f9ecf7d309f25700067bea8685e2b6324a19a003bd6f6ab38161ee87c95257b5a6ae69 \ No newline at end of file diff --git a/tests/test_tally_arithmetic/test_tally_arithmetic.py b/tests/test_tally_arithmetic/test_tally_arithmetic.py index a5919909f3..20f86d97bf 100644 --- a/tests/test_tally_arithmetic/test_tally_arithmetic.py +++ b/tests/test_tally_arithmetic/test_tally_arithmetic.py @@ -19,9 +19,9 @@ class TallyArithmeticTestHarness(PyAPITestHarness): tallies_file = openmc.Tallies() # Initialize the nuclides - u235 = openmc.Nuclide('U-235') - u238 = openmc.Nuclide('U-238') - pu239 = openmc.Nuclide('Pu-239') + u235 = openmc.Nuclide('U235') + u238 = openmc.Nuclide('U238') + pu239 = openmc.Nuclide('Pu239') # Initialize Mesh mesh = openmc.Mesh(mesh_id=1) diff --git a/tests/test_tally_assumesep/materials.xml b/tests/test_tally_assumesep/materials.xml index 9c0b74f3f1..f5a9e61bea 100644 --- a/tests/test_tally_assumesep/materials.xml +++ b/tests/test_tally_assumesep/materials.xml @@ -6,267 +6,267 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + diff --git a/tests/test_tally_nuclides/materials.xml b/tests/test_tally_nuclides/materials.xml index 2761be30cf..e9667b41f4 100644 --- a/tests/test_tally_nuclides/materials.xml +++ b/tests/test_tally_nuclides/materials.xml @@ -6,7 +6,7 @@ - + diff --git a/tests/test_tally_nuclides/tallies.xml b/tests/test_tally_nuclides/tallies.xml index cf20668c83..3440dbf217 100644 --- a/tests/test_tally_nuclides/tallies.xml +++ b/tests/test_tally_nuclides/tallies.xml @@ -7,7 +7,7 @@
- Pu-239 + Pu239 total absorption fission scatter diff --git a/tests/test_tally_slice_merge/inputs_true.dat b/tests/test_tally_slice_merge/inputs_true.dat index 771a1de8e8..16d11b6d2b 100644 --- a/tests/test_tally_slice_merge/inputs_true.dat +++ b/tests/test_tally_slice_merge/inputs_true.dat @@ -1 +1 @@ -8e54df241233bf8d5424afa0a22cc23c614a3541e5d7cc64036b5284edd28fe2353905ffdfebb446a4dd0202dda6a7da6d0110af00b4ca79117ec1dbe0584ba7 \ No newline at end of file +a17354ce54bcb5ce93e861ae95fd932c45fe60c733d999aa180d5dee636f43130fac5b003c615e23c65d44fe55f376ef4c86596b78603ab217d7e37fd694074d \ 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 index f986a91def..89d415b0d6 100644 --- a/tests/test_tally_slice_merge/results_true.dat +++ b/tests/test_tally_slice_merge/results_true.dat @@ -1,67 +1,67 @@ cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 21 0.00e+00 6.25e-07 U-235 fission 1.08e-01 7.94e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 21 0.00e+00 6.25e-07 U-235 nu-fission 2.64e-01 1.94e-02 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 21 0.00e+00 6.25e-07 U-238 fission 1.51e-07 1.00e-08 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 21 0.00e+00 6.25e-07 U-238 nu-fission 3.76e-07 2.50e-08 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 21 6.25e-07 2.00e+01 U-235 fission 3.12e-02 2.56e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 21 6.25e-07 2.00e+01 U-235 nu-fission 7.65e-02 6.24e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 21 6.25e-07 2.00e+01 U-238 fission 2.00e-02 1.30e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 21 6.25e-07 2.00e+01 U-238 nu-fission 5.56e-02 3.78e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 27 0.00e+00 6.25e-07 U-235 fission 4.43e-02 7.21e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 27 0.00e+00 6.25e-07 U-235 nu-fission 1.08e-01 1.76e-02 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 27 0.00e+00 6.25e-07 U-238 fission 6.14e-08 9.64e-09 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 27 0.00e+00 6.25e-07 U-238 nu-fission 1.53e-07 2.40e-08 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 27 6.25e-07 2.00e+01 U-235 fission 1.39e-02 1.06e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 27 6.25e-07 2.00e+01 U-235 nu-fission 3.40e-02 2.61e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 27 6.25e-07 2.00e+01 U-238 fission 9.72e-03 1.21e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 27 6.25e-07 2.00e+01 U-238 nu-fission 2.71e-02 3.80e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 21 0.00e+00 6.25e-07 U-235 fission 1.08e-01 7.94e-03 -1 21 0.00e+00 6.25e-07 U-235 nu-fission 2.64e-01 1.94e-02 -2 21 0.00e+00 6.25e-07 U-238 fission 1.51e-07 1.00e-08 -3 21 0.00e+00 6.25e-07 U-238 nu-fission 3.76e-07 2.50e-08 -4 21 6.25e-07 2.00e+01 U-235 fission 3.12e-02 2.56e-03 -5 21 6.25e-07 2.00e+01 U-235 nu-fission 7.65e-02 6.24e-03 -6 21 6.25e-07 2.00e+01 U-238 fission 2.00e-02 1.30e-03 -7 21 6.25e-07 2.00e+01 U-238 nu-fission 5.56e-02 3.78e-03 -8 27 0.00e+00 6.25e-07 U-235 fission 4.43e-02 7.21e-03 -9 27 0.00e+00 6.25e-07 U-235 nu-fission 1.08e-01 1.76e-02 -10 27 0.00e+00 6.25e-07 U-238 fission 6.14e-08 9.64e-09 -11 27 0.00e+00 6.25e-07 U-238 nu-fission 1.53e-07 2.40e-08 -12 27 6.25e-07 2.00e+01 U-235 fission 1.39e-02 1.06e-03 -13 27 6.25e-07 2.00e+01 U-235 nu-fission 3.40e-02 2.61e-03 -14 27 6.25e-07 2.00e+01 U-238 fission 9.72e-03 1.21e-03 -15 27 6.25e-07 2.00e+01 U-238 nu-fission 2.71e-02 3.80e-03 +0 21 0.00e+00 6.25e-07 U235 fission 1.08e-01 7.94e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 0.00e+00 6.25e-07 U235 nu-fission 2.64e-01 1.94e-02 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 0.00e+00 6.25e-07 U238 fission 1.51e-07 1.00e-08 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 0.00e+00 6.25e-07 U238 nu-fission 3.76e-07 2.50e-08 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 6.25e-07 2.00e+01 U235 fission 3.12e-02 2.56e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 6.25e-07 2.00e+01 U235 nu-fission 7.65e-02 6.24e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 6.25e-07 2.00e+01 U238 fission 2.00e-02 1.30e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 6.25e-07 2.00e+01 U238 nu-fission 5.56e-02 3.78e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 0.00e+00 6.25e-07 U235 fission 4.43e-02 7.21e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 0.00e+00 6.25e-07 U235 nu-fission 1.08e-01 1.76e-02 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 0.00e+00 6.25e-07 U238 fission 6.14e-08 9.64e-09 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 0.00e+00 6.25e-07 U238 nu-fission 1.53e-07 2.40e-08 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 6.25e-07 2.00e+01 U235 fission 1.39e-02 1.06e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 6.25e-07 2.00e+01 U235 nu-fission 3.40e-02 2.61e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 6.25e-07 2.00e+01 U238 fission 9.72e-03 1.21e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 27 6.25e-07 2.00e+01 U238 nu-fission 2.71e-02 3.80e-03 cell energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 21 0.00e+00 6.25e-07 U235 fission 1.08e-01 7.94e-03 +1 21 0.00e+00 6.25e-07 U235 nu-fission 2.64e-01 1.94e-02 +2 21 0.00e+00 6.25e-07 U238 fission 1.51e-07 1.00e-08 +3 21 0.00e+00 6.25e-07 U238 nu-fission 3.76e-07 2.50e-08 +4 21 6.25e-07 2.00e+01 U235 fission 3.12e-02 2.56e-03 +5 21 6.25e-07 2.00e+01 U235 nu-fission 7.65e-02 6.24e-03 +6 21 6.25e-07 2.00e+01 U238 fission 2.00e-02 1.30e-03 +7 21 6.25e-07 2.00e+01 U238 nu-fission 5.56e-02 3.78e-03 +8 27 0.00e+00 6.25e-07 U235 fission 4.43e-02 7.21e-03 +9 27 0.00e+00 6.25e-07 U235 nu-fission 1.08e-01 1.76e-02 +10 27 0.00e+00 6.25e-07 U238 fission 6.14e-08 9.64e-09 +11 27 0.00e+00 6.25e-07 U238 nu-fission 1.53e-07 2.40e-08 +12 27 6.25e-07 2.00e+01 U235 fission 1.39e-02 1.06e-03 +13 27 6.25e-07 2.00e+01 U235 nu-fission 3.40e-02 2.61e-03 +14 27 6.25e-07 2.00e+01 U238 fission 9.72e-03 1.21e-03 +15 27 6.25e-07 2.00e+01 U238 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 -3 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U-238 nu-fission 0.00e+00 0.00e+00 -4 (0, 100, 2000, 30000) 6.25e-07 2.00e+01 U-235 fission 0.00e+00 0.00e+00 -5 (0, 100, 2000, 30000) 6.25e-07 2.00e+01 U-235 nu-fission 0.00e+00 0.00e+00 -6 (0, 100, 2000, 30000) 6.25e-07 2.00e+01 U-238 fission 0.00e+00 0.00e+00 -7 (0, 100, 2000, 30000) 6.25e-07 2.00e+01 U-238 nu-fission 0.00e+00 0.00e+00 -8 (500, 5000, 50000) 0.00e+00 6.25e-07 U-235 fission 0.00e+00 0.00e+00 -9 (500, 5000, 50000) 0.00e+00 6.25e-07 U-235 nu-fission 0.00e+00 0.00e+00 -10 (500, 5000, 50000) 0.00e+00 6.25e-07 U-238 fission 0.00e+00 0.00e+00 -11 (500, 5000, 50000) 0.00e+00 6.25e-07 U-238 nu-fission 0.00e+00 0.00e+00 -12 (500, 5000, 50000) 6.25e-07 2.00e+01 U-235 fission 0.00e+00 0.00e+00 -13 (500, 5000, 50000) 6.25e-07 2.00e+01 U-235 nu-fission 0.00e+00 0.00e+00 -14 (500, 5000, 50000) 6.25e-07 2.00e+01 U-238 fission 0.00e+00 0.00e+00 -15 (500, 5000, 50000) 6.25e-07 2.00e+01 U-238 nu-fission 0.00e+00 0.00e+00 +0 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U235 fission 0.00e+00 0.00e+00 +1 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U235 nu-fission 0.00e+00 0.00e+00 +2 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U238 fission 0.00e+00 0.00e+00 +3 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U238 nu-fission 0.00e+00 0.00e+00 +4 (0, 100, 2000, 30000) 6.25e-07 2.00e+01 U235 fission 0.00e+00 0.00e+00 +5 (0, 100, 2000, 30000) 6.25e-07 2.00e+01 U235 nu-fission 0.00e+00 0.00e+00 +6 (0, 100, 2000, 30000) 6.25e-07 2.00e+01 U238 fission 0.00e+00 0.00e+00 +7 (0, 100, 2000, 30000) 6.25e-07 2.00e+01 U238 nu-fission 0.00e+00 0.00e+00 +8 (500, 5000, 50000) 0.00e+00 6.25e-07 U235 fission 0.00e+00 0.00e+00 +9 (500, 5000, 50000) 0.00e+00 6.25e-07 U235 nu-fission 0.00e+00 0.00e+00 +10 (500, 5000, 50000) 0.00e+00 6.25e-07 U238 fission 0.00e+00 0.00e+00 +11 (500, 5000, 50000) 0.00e+00 6.25e-07 U238 nu-fission 0.00e+00 0.00e+00 +12 (500, 5000, 50000) 6.25e-07 2.00e+01 U235 fission 0.00e+00 0.00e+00 +13 (500, 5000, 50000) 6.25e-07 2.00e+01 U235 nu-fission 0.00e+00 0.00e+00 +14 (500, 5000, 50000) 6.25e-07 2.00e+01 U238 fission 0.00e+00 0.00e+00 +15 (500, 5000, 50000) 6.25e-07 2.00e+01 U238 nu-fission 0.00e+00 0.00e+00 sum(mesh) energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U-235 fission 9.18e-03 1.62e-03 -1 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U-235 nu-fission 2.24e-02 3.94e-03 -2 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U-238 fission 1.31e-08 2.08e-09 -3 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U-238 nu-fission 3.26e-08 5.19e-09 -4 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U-235 fission 8.40e-04 2.13e-04 -5 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U-235 nu-fission 2.06e-03 5.17e-04 -6 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U-238 fission 7.05e-04 3.42e-04 -7 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U-238 nu-fission 1.99e-03 1.01e-03 -8 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U-235 fission 8.77e-03 1.30e-03 -9 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U-235 nu-fission 2.14e-02 3.18e-03 -10 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U-238 fission 1.24e-08 1.74e-09 -11 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U-238 nu-fission 3.08e-08 4.33e-09 -12 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U-235 fission 2.30e-03 6.20e-04 -13 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U-235 nu-fission 5.63e-03 1.52e-03 -14 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U-238 fission 1.45e-03 7.19e-04 -15 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U-238 nu-fission 3.97e-03 1.98e-03 +0 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U235 fission 9.18e-03 1.62e-03 +1 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U235 nu-fission 2.24e-02 3.94e-03 +2 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U238 fission 1.31e-08 2.08e-09 +3 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U238 nu-fission 3.26e-08 5.19e-09 +4 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U235 fission 8.40e-04 2.13e-04 +5 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U235 nu-fission 2.06e-03 5.17e-04 +6 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U238 fission 7.05e-04 3.42e-04 +7 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U238 nu-fission 1.99e-03 1.01e-03 +8 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U235 fission 8.77e-03 1.30e-03 +9 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U235 nu-fission 2.14e-02 3.18e-03 +10 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U238 fission 1.24e-08 1.74e-09 +11 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U238 nu-fission 3.08e-08 4.33e-09 +12 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U235 fission 2.30e-03 6.20e-04 +13 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U235 nu-fission 5.63e-03 1.52e-03 +14 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U238 fission 1.45e-03 7.19e-04 +15 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U238 nu-fission 3.97e-03 1.98e-03 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 78ea4fe9d5..2794539d24 100644 --- a/tests/test_tally_slice_merge/test_tally_slice_merge.py +++ b/tests/test_tally_slice_merge/test_tally_slice_merge.py @@ -1,5 +1,7 @@ #!/usr/bin/env python +from __future__ import division + import os import sys import glob @@ -20,7 +22,7 @@ class TallySliceMergeTestHarness(PyAPITestHarness): tallies_file = openmc.Tallies() # Define nuclides and scores to add to both tallies - self.nuclides = ['U-235', 'U-238'] + self.nuclides = ['U235', 'U238'] self.scores = ['fission', 'nu-fission'] # Define filters for energy and spatial domain @@ -60,7 +62,7 @@ class TallySliceMergeTestHarness(PyAPITestHarness): # Merge all cell tallies together while len(tallies) != 1: - halfway = int(len(tallies) / 2) + halfway = len(tallies) // 2 zip_split = zip(tallies[:halfway], tallies[halfway:]) tallies = list(map(lambda xy: xy[0].merge(xy[1]), zip_split)) diff --git a/tests/test_trace/materials.xml b/tests/test_trace/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_trace/materials.xml +++ b/tests/test_trace/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_track_output/materials.xml b/tests/test_track_output/materials.xml index e2b96cb534..017797aa1e 100644 --- a/tests/test_track_output/materials.xml +++ b/tests/test_track_output/materials.xml @@ -4,92 +4,92 @@ - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + diff --git a/tests/test_translation/materials.xml b/tests/test_translation/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_translation/materials.xml +++ b/tests/test_translation/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_trigger_batch_interval/materials.xml b/tests/test_trigger_batch_interval/materials.xml index 2761be30cf..e9667b41f4 100644 --- a/tests/test_trigger_batch_interval/materials.xml +++ b/tests/test_trigger_batch_interval/materials.xml @@ -6,7 +6,7 @@ - + diff --git a/tests/test_trigger_batch_interval/tallies.xml b/tests/test_trigger_batch_interval/tallies.xml index cf20668c83..3440dbf217 100644 --- a/tests/test_trigger_batch_interval/tallies.xml +++ b/tests/test_trigger_batch_interval/tallies.xml @@ -7,7 +7,7 @@
- Pu-239 + Pu239 total absorption fission scatter diff --git a/tests/test_trigger_no_batch_interval/materials.xml b/tests/test_trigger_no_batch_interval/materials.xml index 2761be30cf..e9667b41f4 100644 --- a/tests/test_trigger_no_batch_interval/materials.xml +++ b/tests/test_trigger_no_batch_interval/materials.xml @@ -6,7 +6,7 @@ - + diff --git a/tests/test_trigger_no_batch_interval/tallies.xml b/tests/test_trigger_no_batch_interval/tallies.xml index cf20668c83..3440dbf217 100644 --- a/tests/test_trigger_no_batch_interval/tallies.xml +++ b/tests/test_trigger_no_batch_interval/tallies.xml @@ -7,7 +7,7 @@ - Pu-239 + Pu239 total absorption fission scatter diff --git a/tests/test_trigger_no_status/materials.xml b/tests/test_trigger_no_status/materials.xml index 2761be30cf..e9667b41f4 100644 --- a/tests/test_trigger_no_status/materials.xml +++ b/tests/test_trigger_no_status/materials.xml @@ -6,7 +6,7 @@ - + diff --git a/tests/test_trigger_no_status/tallies.xml b/tests/test_trigger_no_status/tallies.xml index cf20668c83..3440dbf217 100644 --- a/tests/test_trigger_no_status/tallies.xml +++ b/tests/test_trigger_no_status/tallies.xml @@ -7,7 +7,7 @@ - Pu-239 + Pu239 total absorption fission scatter diff --git a/tests/test_trigger_tallies/materials.xml b/tests/test_trigger_tallies/materials.xml index 2761be30cf..e9667b41f4 100644 --- a/tests/test_trigger_tallies/materials.xml +++ b/tests/test_trigger_tallies/materials.xml @@ -6,7 +6,7 @@ - + diff --git a/tests/test_trigger_tallies/tallies.xml b/tests/test_trigger_tallies/tallies.xml index 2dbc836ee5..0d66e1538e 100644 --- a/tests/test_trigger_tallies/tallies.xml +++ b/tests/test_trigger_tallies/tallies.xml @@ -7,7 +7,7 @@ - Pu-239 + Pu239 total absorption fission scatter diff --git a/tests/test_triso/inputs_true.dat b/tests/test_triso/inputs_true.dat index 3e54e5e6fe..04119a2dc8 100644 --- a/tests/test_triso/inputs_true.dat +++ b/tests/test_triso/inputs_true.dat @@ -1 +1 @@ -2dcfd1a17cba671874e60192a7355deb57e2e51467a474fd168c8b51e454a977edb34df07ae11625c0a43906112152c75113e442a9a8f240a4c9d1a11ee4771d \ No newline at end of file +f33e6653b883200457df2ff2ba9cf715d5ddaa1296dd71d277c6f1d9d5b7831cc92aaf1e97509d26e5a93235cd9f775c0cfaa5ebc3dfe8fc71469bac166d362b \ No newline at end of file diff --git a/tests/test_triso/test_triso.py b/tests/test_triso/test_triso.py index d1ac4e5cdc..9a8fb0c3be 100644 --- a/tests/test_triso/test_triso.py +++ b/tests/test_triso/test_triso.py @@ -19,35 +19,35 @@ class TRISOTestHarness(PyAPITestHarness): # Define TRISO matrials fuel = openmc.Material() fuel.set_density('g/cm3', 10.5) - fuel.add_nuclide('U-235', 0.14154) - fuel.add_nuclide('U-238', 0.85846) - fuel.add_nuclide('C-Nat', 0.5) - fuel.add_nuclide('O-16', 1.5) + fuel.add_nuclide('U235', 0.14154) + fuel.add_nuclide('U238', 0.85846) + fuel.add_nuclide('C0', 0.5) + fuel.add_nuclide('O16', 1.5) porous_carbon = openmc.Material() porous_carbon.set_density('g/cm3', 1.0) - porous_carbon.add_nuclide('C-Nat', 1.0) - porous_carbon.add_s_alpha_beta('Graph', '71t') + porous_carbon.add_nuclide('C0', 1.0) + porous_carbon.add_s_alpha_beta('c_Graphite', '71t') ipyc = openmc.Material() ipyc.set_density('g/cm3', 1.90) - ipyc.add_nuclide('C-Nat', 1.0) - ipyc.add_s_alpha_beta('Graph', '71t') + ipyc.add_nuclide('C0', 1.0) + ipyc.add_s_alpha_beta('c_Graphite', '71t') sic = openmc.Material() sic.set_density('g/cm3', 3.20) sic.add_element('Si', 1.0) - sic.add_nuclide('C-Nat', 1.0) + sic.add_nuclide('C0', 1.0) opyc = openmc.Material() opyc.set_density('g/cm3', 1.87) - opyc.add_nuclide('C-Nat', 1.0) - opyc.add_s_alpha_beta('Graph', '71t') + opyc.add_nuclide('C0', 1.0) + opyc.add_s_alpha_beta('c_Graphite', '71t') graphite = openmc.Material() graphite.set_density('g/cm3', 1.1995) - graphite.add_nuclide('C-Nat', 1.0) - graphite.add_s_alpha_beta('Graph', '71t') + graphite.add_nuclide('C0', 1.0) + graphite.add_s_alpha_beta('c_Graphite', '71t') # Create TRISO particles spheres = [openmc.Sphere(R=r*1e-4) diff --git a/tests/test_uniform_fs/materials.xml b/tests/test_uniform_fs/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_uniform_fs/materials.xml +++ b/tests/test_uniform_fs/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_union_energy_grids/materials.xml b/tests/test_union_energy_grids/materials.xml index 45ccc65540..ed9b38d901 100644 --- a/tests/test_union_energy_grids/materials.xml +++ b/tests/test_union_energy_grids/materials.xml @@ -3,9 +3,9 @@ - - - + + + diff --git a/tests/test_universe/materials.xml b/tests/test_universe/materials.xml index 315c0fa848..23d7f969db 100644 --- a/tests/test_universe/materials.xml +++ b/tests/test_universe/materials.xml @@ -3,7 +3,7 @@ - + diff --git a/tests/test_void/materials.xml b/tests/test_void/materials.xml index b8f9938246..4768bad0bc 100644 --- a/tests/test_void/materials.xml +++ b/tests/test_void/materials.xml @@ -8,56 +8,56 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - - + + From 9230203efb8f78523fc058873b96546d61350b1a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 13 May 2016 22:09:36 -0500 Subject: [PATCH 163/417] Remove unused table types in openmc.data.ace --- openmc/data/ace.py | 367 +-------------------------------------------- 1 file changed, 1 insertion(+), 366 deletions(-) diff --git a/openmc/data/ace.py b/openmc/data/ace.py index 16c18dfb49..358d987896 100644 --- a/openmc/data/ace.py +++ b/openmc/data/ace.py @@ -1856,371 +1856,6 @@ class Reaction(object): return rxn -class DosimetryTable(Table): - def __init__(self, name, atomic_weight_ratio, temperature): - super(DosimetryTable, self).__init__( - name, atomic_weight_ratio, temperature) - - def __repr__(self): - if hasattr(self, 'name'): - return "".format(self.name) - else: - return "" - - -class NeutronDiscreteTable(Table): - - def __init__(self, name, atomic_weight_ratio, temperature): - super(NeutronDiscreteTable, self).__init__( - name, atomic_weight_ratio, temperature) - - def __repr__(self): - if hasattr(self, 'name'): - return "".format(self.name) - else: - return "" - - -class NeutronMGTable(Table): - - def __init__(self, name, atomic_weight_ratio, temperature): - super(NeutronMGTable, self).__init__( - name, atomic_weight_ratio, temperature) - - def __repr__(self): - if hasattr(self, 'name'): - return "".format(self.name) - else: - return "" - - -class PhotoatomicTable(Table): - - def __init__(self, name, atomic_weight_ratio, temperature): - super(PhotoatomicTable, self).__init__( - name, atomic_weight_ratio, temperature) - - def __repr__(self): - if hasattr(self, 'name'): - return "".format(self.name) - else: - return "" - - def _read_all(self): - self._read_eszg() - self._read_jinc() - self._read_jcoh() - self._read_heating() - self._read_compton_data() - - def _read_eszg(self): - # Determine number of energies on common energy grid - n_energies = self._nxs[3] - - # Read cross sections - idx = self._jxs[1] - data = np.asarray(self._xss[idx:idx + 5*n_energies]) - data.shape = (5, n_energies) - self.energy = data[0] - self.incoherent = data[1] - self.coherent = data[2] - self.photoelectric = data[3] - self.pairproduction = data[4] - - def _read_jinc(self): - # Read incoherent scattering function - idx = self._jxs[2] - self.incoherent_scattering = self._xss[idx:idx + 21] - - def _read_jcoh(self): - # Read coherent form factors and integrated coherent form factors - idx = self._jxs[3] - self.int_coherent_form_factors = self._xss[idx:idx + 55] - self.coherent_form_factors = self._xss[idx + 55:idx + 2*55] - - def _read_jflo(self): - raise NotImplementedError - - def _read_heating(self): - idx = self._jxs[5] - self.avg_heating = self._xss[idx:idx + self._nxs[3]] - - def _read_compton_data(self): - # Determine number of Compton profiles - n_shells = self._nxs[5] - - if n_shells > 0: - # Number of electrons per shell - idx = self._jxs[6] - self.electrons_per_shell = np.asarray( - self._xss[idx:idx + n_shells], dtype=int) - - # Binding energy per shell - idx = self._jxs[7] - self.binding_energy_per_shell = self._xss[idx:idx + n_shells] - - # Probability of interaction per shell - idx = self._jxs[8] - self.probability_per_shell = self._xss[idx:idx + n_shells] - - # Initialize arrays for Compton profile data - self.compton_profile_interp = np.zeros(n_shells) - self.compton_profile_momentum = [] - self.compton_profile_pdf = [] - self.compton_profile_cdf = [] - - for i in range(n_shells): - # Get locator for SWD block - loca = int(self._xss[self._jxs[9] + i]) - idx = self._jxs[10] + loca - 1 - - # Get interpolation parameter and number of momentum entries - self.compton_profile_interp[i] = int(self._xss[idx]) - n_momentum = int(self._xss[idx + 1]) - idx += 2 - - # Get momentum entries, PDF, and CDF - data = self._xss[idx:idx + 3*n_momentum] - data.shape = (3, n_momentum) - self.compton_profile_momentum.append(data[0]) - self.compton_profile_pdf.append(data[1]) - self.compton_profile_cdf.append(data[2]) - - -class PhotoatomicMGTable(Table): - - def __init__(self, name, atomic_weight_ratio, temperature): - super(PhotoatomicMGTable, self).__init__( - name, atomic_weight_ratio, temperature) - - def __repr__(self): - if hasattr(self, 'name'): - return "".format(self.name) - else: - return "" - - -class ElectronTable(Table): - - def __init__(self, name, atomic_weight_ratio, temperature): - super(ElectronTable, self).__init__( - name, atomic_weight_ratio, temperature) - - def __repr__(self): - if hasattr(self, 'name'): - return "".format(self.name) - else: - return "" - - -class PhotonuclearTable(Table): - - def __init__(self, name, atomic_weight_ratio, temperature): - super(PhotonuclearTable, self).__init__( - name, atomic_weight_ratio, temperature) - self.reactions = OrderedDict() - - def __repr__(self): - if hasattr(self, 'name'): - return "".format(self.name) - else: - return "" - - def _read_all(self): - self._read_basic() - self._read_cross_sections() - self._read_secondaries() - self._read_angular_distributions() - self._read_energy_distributions() - - def _read_basic(self): - n_energies = self._nxs[3] - - # Read energy mesh - idx = self._jxs[1] - self.energy = self._xss[idx:idx + n_energies] - - # Read total cross section - idx = self._jxs[2] - self.total_xs = self._xss[idx:idx + n_energies] - - # Read non-elastic and elastic cross section - if self._jxs[4] > 0: - idx = self._jxs[3] - self.non_elastic_xs = self._xss[idx:idx + n_energies] - idx = self._jxs[4] - self.elastic_xs = self._xss[idx:idx + n_energies] - else: - self.non_elastic_xs = self.total_xs.copy() - self.elastic_xs = np.zeros(n_energies) - - # Read heating numbers - idx = self._jxs[5] - if idx > 0: - self.heating_number = self._xss[idx:idx + n_energies] - else: - self.heating_number = np.zeros(n_energies) - - def _read_cross_sections(self): - # Determine number of reactions - n_reactions = self._nxs[4] - - # Read list of MT numbers and Q values - mts = np.asarray(self._xss[self._jxs[6]:self._jxs[6] + - n_reactions], dtype=int) - qvalues = np.asarray(self._xss[self._jxs[7]:self._jxs[7] + - n_reactions]) - - # Create reactions in dictionary - reactions = [(mt, Reaction(mt, self)) for mt in mts] - self.reactions.update(reactions) - - for i, rx in enumerate(self.reactions.values()): - # Copy Q values - rx.Q_value = qvalues[i] - - # Determine starting index on energy grid and number of energies - idx = self._jxs[9] + int(self._xss[self._jxs[8] + i]) - 1 - rx.threshold_idx = int(self._xss[idx]) - n_energies = int(self._xss[idx + 1]) - energy = self.energy[rx.threshold_idx:rx.threshold_idx + n_energies] - idx += 2 - - # Read reaction cross setion - xs = self._xss[idx:idx + n_energies] - rx.xs = Tabulated1D(energy, xs, [], []) - - def _read_secondaries(self): - names = {1: 'neutron', 2: 'photon', 3: 'electron', - 9: 'proton', 31: 'deuteron', 32: 'triton', - 33: 'helium3', 34: 'alpha'} - - n_particles = self._nxs[5] - n_entries = self._nxs[7] - - idx = self._jxs[10] - ixs = np.asarray(self._xss[idx:idx + n_particles*n_entries], dtype=int) - ixs.shape = (n_particles, n_entries) - self.ixs = ixs.transpose() - - self.particles = [] - - for j in range(n_particles): - # Create dictionary for particle - particle = {} - self.particles.append(particle) - - # Get secondary particle type/name - particle['ipt'] = self.ixs[0, j] - particle['name'] = names[particle['ipt']] - - # Number of reactions that produce secondary particle - n_producing = self.ixs[1, j] - - # Particle-production cross section - idx = self.ixs[2, j] - particle['ie_production'] = int(self._xss[idx]) - ne = int(self._xss[idx + 1]) - idx += 2 - particle['production'] = self._xss[idx:idx + ne] - - # Average heating numbers - idx = self.ixs[3, j] - particle['ie_heating'] = int(self._xss[idx]) - ne = int(self._xss[idx + 1]) - idx += 2 - particle['heating_number'] = self._xss[idx:idx + ne] - - # MTs of particle production reactions - idx = self.ixs[4, j] - particle['mt_producing'] = np.asarray( - self._xss[idx:idx + n_producing], dtype=int) - - # Coordinate system of reaction producing secondary particle - idx = self.ixs[5, j] - particle['center_of_mass'] = [i < 0 for i in - self._xss[idx:idx + n_producing]] - - # Reaction yields - particle['yield'] = {} - for k in range(n_producing): - # Create dictionary for yield data - yieldData = {} - - # Read reaction yield data for a single MT - idx = self.ixs[7, j] + int(self._xss[self.ixs[6, j] + k]) - 1 - - yieldData['mftype'] = int(self._xss[idx]) - idx += 1 - - if yieldData['mftype'] in (6, 12, 16): - # Yield data from ENDF File 6 or 12 - mtmult = int(self._xss[idx]) - assert mtmult == particle['mt_producing'][k] - - # Read yield as function of energy - yieldData['multiplicity'] = _get_tabulated_1d( - self._xss, idx + 1) - - elif yieldData['mftype'] == 13: - # Production cross section for corresponding MT - yieldData['ie'] = int(self._xss[idx]) - ne = int(self._xss[idx + 1]) - idx += 2 - yieldData['cross_section'] = self._xss[idx:idx + ne] - - # Add reaction yield data to dictionary - mt = particle['mt_producing'][k] - particle['yield'][mt] = yieldData - - def _read_angular_distributions(self): - for j, particle in enumerate(self.particles): - # Create dictionary for angular distributions - angular_dists = {} - particle['angular_distribution'] = angular_dists - - for k, mt in enumerate(particle['mt_producing']): - landp = int(self._xss[self.ixs[8, j] + k]) - - # check if angular distribution data exists - if landp == -1: - # Angular distribution data are specified through the - # DLWP block - continue - elif landp == 0: - # No angular distribution data are given for this - # reaction, isotropic scattering is assumed - ie = self.reactions[mt].threshold_idx - ne = len(self.reactions[mt].sigma) - angular_dists[mt] = AngularDistribution.isotropic( - np.array([self.energy[ie], self.energy[ie + ne - 1]])) - continue - - idx = self.ixs[9, j] + landp - 1 - - angular_dists[mt] = AngularDistribution() - angular_dists[mt].read(self._xss, idx, self.ixs[9, j]) - - def _read_energy_distributions(self): - for j, particle in enumerate(self.particles): - # Create dictionary for energy distributions - energy_dists = {} - particle['energy_distribution'] = energy_dists - - for k, mt in enumerate(particle['mt_producing']): - # Determine locator for kth energy distribution - ldlwp = int(self._xss[self.ixs[10, j] + k]) - - # Read energy distribution data - energy_dists[mt] = self._get_energy_distribution( - self.ixs[11, j], ldlwp) table_types = { "c": NeutronTable, - "t": SabTable, - "y": DosimetryTable, - "d": NeutronDiscreteTable, - "p": PhotoatomicTable, - "m": NeutronMGTable, - "g": PhotoatomicMGTable, - "e": ElectronTable, - "u": PhotonuclearTable} + "t": SabTable} From e19291118e1398f399e780db5c6f661c265a9fc7 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 9 Jun 2016 14:52:58 -0500 Subject: [PATCH 164/417] Refactor use of ACE tables to generate neutron/thermal scattering data --- data/convert_hdf5.py | 96 - data/cross_sections.xml | 2076 --------------------- data/cross_sections_ascii.xml | 2066 --------------------- data/cross_sections_nndc.xml | 870 --------- data/cross_sections_serpent.xml | 2707 ---------------------------- data/get_nndc_data.py | 50 +- docs/source/index.rst | 6 +- docs/source/methods/physics.rst | 410 ++--- docs/source/pythonapi/index.rst | 8 +- openmc/data/__init__.py | 3 + openmc/data/ace.py | 1573 +--------------- openmc/data/angle_distribution.py | 68 +- openmc/data/angle_energy.py | 70 + openmc/data/container.py | 39 + openmc/data/correlated.py | 117 +- openmc/data/energy_distribution.py | 227 ++- openmc/data/kalbach_mann.py | 94 +- openmc/data/library.py | 47 + openmc/data/nbody.py | 24 + openmc/data/neutron.py | 405 +++++ openmc/data/reaction.py | 512 ++++++ openmc/data/thermal.py | 305 +++- openmc/data/urr.py | 39 + openmc/mgxs/library.py | 4 +- openmc/mgxs/mgxs.py | 70 +- openmc/mgxs_library.py | 2 +- openmc/nuclide.py | 6 +- openmc/tallies.py | 14 +- scripts/openmc-ace-to-hdf5 | 139 ++ scripts/openmc-ascii-to-binary | 13 - scripts/openmc-update-inputs | 66 + scripts/openmc-xsdata-to-xml | 148 -- scripts/openmc-xsdir-to-xml | 288 --- src/reaction_header.F90 | 2 +- src/relaxng/cross_sections.rnc | 29 +- src/relaxng/cross_sections.rng | 112 +- 36 files changed, 2467 insertions(+), 10238 deletions(-) delete mode 100644 data/convert_hdf5.py delete mode 100644 data/cross_sections.xml delete mode 100644 data/cross_sections_ascii.xml delete mode 100644 data/cross_sections_nndc.xml delete mode 100644 data/cross_sections_serpent.xml create mode 100644 openmc/data/library.py create mode 100644 openmc/data/neutron.py create mode 100644 openmc/data/reaction.py create mode 100755 scripts/openmc-ace-to-hdf5 delete mode 100755 scripts/openmc-ascii-to-binary delete mode 100755 scripts/openmc-xsdata-to-xml delete mode 100755 scripts/openmc-xsdir-to-xml diff --git a/data/convert_hdf5.py b/data/convert_hdf5.py deleted file mode 100644 index 3f5fcfdb74..0000000000 --- a/data/convert_hdf5.py +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/env python - -import glob -import os -from xml.dom.minidom import getDOMImplementation - -import openmc.data.ace - - -if not os.path.isdir('nndc_hdf5'): - os.mkdir('nndc_hdf5') - -nndc_files = glob.glob('nndc/293.6K/*.ace') -nndc_thermal_files = glob.glob('nndc/tsl/*.acer') - -thermal_names = {'al': 'c_Al27', - 'be': 'c_Be', - 'bebeo': 'c_Be_in_BeO', - 'benzine': 'c_Benzine', - 'dd2o': 'c_D_in_D2O', - 'fe': 'c_Fe56', - 'graphite': 'c_Graphite', - 'hch2': 'c_H_in_CH2', - 'hh2o': 'c_H_in_H2O', - 'hzrh': 'c_H_in_ZrH', - 'lch4': 'c_liquid_CH4', - 'obeo': 'c_O_in_BeO', - 'orthod': 'c_ortho_D', - 'orthoh': 'c_ortho_H', - 'ouo2': 'c_O_in_UO2', - 'parad': 'c_para_D', - 'parah': 'c_para_H', - 'sch4': 'c_solid_CH4', - 'uuo2': 'c_U_in_UO2', - 'zrzrh': 'c_Zr_in_ZrH'} - -impl = getDOMImplementation() -doc = impl.createDocument(None, "cross_sections", None) -doc_root = doc.documentElement - -for f in sorted(nndc_files): - print('Converting {}...'.format(f)) - - # Deterine output file name - dirname, basename = os.path.split(f) - root, ext = os.path.splitext(basename) - outfile = os.path.join('nndc_hdf5', root + '.h5') - if os.path.exists(outfile): - os.remove(outfile) - - # Determine elemental symbol, mass number and metastable state - element, mass_number, temp = basename.split('_') - metastable = int(mass_number[-1]) if 'm' in mass_number else 0 - mass_number = int(mass_number[:3]) - - # Parse ACE file, create HDF5 file - t = openmc.data.ace.get_table(f) - t.export_to_hdf5(outfile, element, mass_number, metastable) - xs = t.name.split('.')[1] - if metastable > 0: - name = "{}{}_m{}.{}".format(element, mass_number, metastable, xs) - else: - name = "{}{}.{}".format(element, mass_number, xs) - - # Add entry to XML listing - libraryNode = doc.createElement("library") - libraryNode.setAttribute("path", root + '.h5') - libraryNode.setAttribute("materials", name) - libraryNode.setAttribute("type", "neutron") - doc_root.appendChild(libraryNode) - -for f in sorted(nndc_thermal_files): - print('Converting {}...'.format(f)) - - # Deterine output file name - dirname, basename = os.path.split(f) - root, ext = os.path.splitext(basename) - outfile = os.path.join('nndc_hdf5', root + '.h5') - if os.path.exists(outfile): - os.remove(outfile) - - # Parse ACE file, create HDF5 file - t = openmc.data.ace.get_table(f) - t.export_to_hdf5(outfile, thermal_names[root]) - xs = t.name.split('.')[1] - - # Add entry to XML listing - libraryNode = doc.createElement("library") - libraryNode.setAttribute("path", root + '.h5') - libraryNode.setAttribute("materials", thermal_names[root] + '.' + xs) - libraryNode.setAttribute("type", "thermal") - doc_root.appendChild(libraryNode) - -# Write cross_sections.xml -lines = doc.toprettyxml(indent=' ') -open(os.path.join('nndc_hdf5', 'cross_sections.xml'), 'w').write(lines) diff --git a/data/cross_sections.xml b/data/cross_sections.xml deleted file mode 100644 index 180021064c..0000000000 --- a/data/cross_sections.xml +++ /dev/null @@ -1,2076 +0,0 @@ - - - - /opt/mcnp/data - - - binary - - - 4096 - - - 512 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/cross_sections_ascii.xml b/data/cross_sections_ascii.xml deleted file mode 100644 index b0f083bb27..0000000000 --- a/data/cross_sections_ascii.xml +++ /dev/null @@ -1,2066 +0,0 @@ - - - /opt/mcnp/data - ascii - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/cross_sections_nndc.xml b/data/cross_sections_nndc.xml deleted file mode 100644 index 3a7a5ca72e..0000000000 --- a/data/cross_sections_nndc.xml +++ /dev/null @@ -1,870 +0,0 @@ - - - ascii - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/cross_sections_serpent.xml b/data/cross_sections_serpent.xml deleted file mode 100644 index 9597903090..0000000000 --- a/data/cross_sections_serpent.xml +++ /dev/null @@ -1,2707 +0,0 @@ - - - - /opt/serpent/xsdata/endfb7/acedata - - ascii - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/get_nndc_data.py b/data/get_nndc_data.py index 844abea812..a0429fba5d 100755 --- a/data/get_nndc_data.py +++ b/data/get_nndc_data.py @@ -20,10 +20,6 @@ try: except ImportError: from urllib2 import urlopen -cwd = os.getcwd() -sys.path.insert(0, os.path.join(cwd, '..')) -from openmc.data.ace import ascii_to_binary - baseUrl = 'http://www.nndc.bnl.gov/endf/b7.1/aceFiles/' files = ['ENDF-B-VII.1-neutron-293.6K.tar.gz', 'ENDF-B-VII.1-tsl.tar.gz'] @@ -114,12 +110,6 @@ text = text.replace('6012', '6000', 1) with open(graphite, 'w') as fh: fh.write(text) -# ============================================================================== -# COPY CROSS_SECTIONS.XML - -print('Copying cross_sections_nndc.xml...') -shutil.copyfile('cross_sections_nndc.xml', 'nndc/cross_sections.xml') - # ============================================================================== # PROMPT USER TO DELETE .TAR.GZ FILES @@ -140,44 +130,26 @@ if not response or response.lower().startswith('y'): os.remove(f) # ============================================================================== -# PROMPT USER TO CONVERT ASCII TO BINARY +# PROMPT USER TO GENERATE HDF5 LIBRARY # Ask user to convert if not args.batch: if sys.version_info[0] < 3: - response = raw_input('Convert ACE files to binary? ([y]/n) ') + response = raw_input('Generate HDF5 library? ([y]/n) ') else: - response = input('Convert ACE files to binary? ([y]/n) ') + response = input('Generate HDF5 library? ([y]/n) ') else: response = 'y' # Convert files if requested if not response or response.lower().startswith('y'): + # get a list of all ACE files + ace_files = sorted(glob.glob(os.path.join('nndc', '**', '*.ace*'))) - # get a list of directories - ace_dirs = glob.glob(os.path.join('nndc', '*K')) - ace_dirs += glob.glob(os.path.join('nndc', 'tsl')) + # Ensure 'import openmc.data' works in the openmc-ace-to-xml script + cwd = os.getcwd() + env = os.environ.copy() + env['PYTHONPATH'] = os.path.join(cwd, '..') - # loop around ace directories - for d in ace_dirs: - print('Converting {0}...'.format(d)) - - # get a list of files to convert - ace_files = glob.glob(os.path.join(d, '*.ace*')) - - # convert files - for f in ace_files: - print(' Converting {0}...'.format(os.path.split(f)[1])) - ascii_to_binary(f, f) - - # Change cross_sections.xml file - xs_file = os.path.join('nndc', 'cross_sections.xml') - asc_str = "ascii" - bin_str = " binary \n " - bin_str += " 4096 \n " - bin_str += " 512 " - with open(xs_file) as fh: - text = fh.read() - text = text.replace(asc_str, bin_str) - with open(xs_file, 'w') as fh: - fh.write(text) + subprocess.call(['../scripts/openmc-ace-to-hdf5', '-d', 'nndc_hdf5'] + + ace_files, env=env) diff --git a/docs/source/index.rst b/docs/source/index.rst index 413107c343..8fe680a702 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -5,9 +5,9 @@ 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. 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. +continuous-energy or multi-group transport. The continuous-energy particle +interaction data is based on a native HDF5 format that can be generated from ACE +files used by 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/methods/physics.rst b/docs/source/methods/physics.rst index b246584c8b..530d4ac418 100644 --- a/docs/source/methods/physics.rst +++ b/docs/source/methods/physics.rst @@ -279,9 +279,9 @@ idiosyncrasies in treating fission. In an eigenvalue calculation, secondary neutrons from fission are only "banked" for use in the next generation rather than being tracked as secondary neutrons from elastic and inelastic scattering would be. On top of this, fission is sometimes broken into first-chance fission, -second-chance fission, etc. An ACE table either lists the partial fission -reactions with secondary energy distributions for each one, or a total fission -reaction with a single secondary energy distribution. +second-chance fission, etc. The nuclear data file either lists the partial +fission reactions with secondary energy distributions for each one, or a total +fission reaction with a single secondary energy distribution. When a fission reaction is sampled in OpenMC (either total fission or, if data exists, first- or second-chance fission), the following algorithm is used to @@ -290,7 +290,7 @@ number of prompt and delayed neutrons must be determined to decide whether the secondary neutrons will be prompt or delayed. This is important because delayed neutrons have a markedly different spectrum from prompt neutrons, one that has a lower average energy of emission. The total number of neutrons emitted -:math:`\nu_t` is given as a function of incident energy in the ACE format. Two +:math:`\nu_t` is given as a function of incident energy in the ENDF format. Two representations exist for :math:`\nu_t`. The first is a polynomial of order :math:`N` with coefficients :math:`c_0,c_1,\dots,c_N`. If :math:`\nu_t` has this format, we can evaluate it at incoming energy :math:`E` by using the equation @@ -347,26 +347,52 @@ provided as group-wise data instead of in a continuous-energy format. In this case, the outgoing energy of the fission neutrons are represented as histograms by way of either the nu-fission matrix or chi vector. ------------------------------------------ -Secondary Angles and Energy Distributions ------------------------------------------ +------------------------------------ +Secondary Angle-Energy Distributions +------------------------------------ Note that this section is specific to continuous-energy mode since the multi-group scattering process has already been described including the secondary energy and angle sampling. -For any reactions with secondary neutrons, it is necessary to sample secondary -angle and energy distributions. This includes elastic and inelastic scattering, -fission, and :math:`(n,xn)` reactions. In some cases, the angle and energy -distributions may be specified separately, and in other cases, they may be -specified as a correlated angle-energy distribution. In the following sections, -we will outline the methods used to sample secondary distributions as well as -how they are used to modify the state of a particle. +For a reaction with secondary products, it is necessary to determine the +outgoing angle and energy of the products. For any reaction other than elastic +and level inelastic scattering, the outgoing energy must be determined based on +tabulated or parameterized data. The `ENDF-6 Format`_ specifies a variety of +ways that the secondary energy distribution can be represented. ENDF File 5 +contains uncorrelated energy distribution whereas ENDF File 6 contains +correlated energy-angle distributions. The ACE format specifies its own +representations based loosely on the formats given in ENDF-6. OpenMC's HDF5 +nuclear data files use a combination of ENDF and ACE distributions; in this +section, we will describe how the outgoing angle and energy of secondary +particles are sampled. + +One of the subtleties in the nuclear data format is the fact that a single +reaction product can have multiple angle-energy distributions. This is mainly +useful for reactions with multiple products of the same type in the exit channel +such as :math:`(n,2n)` or :math:`(n,3n)`. In these types of reactions, each +neutron is emitted corresponding to a different excitation level of the compound +nucleus, and thus in general the neutrons will originate from different energy +distributions. If multiple angle-energy distributions are present, they are +assigned incoming-energy-dependent probabilities that can then be used to +randomly select one. + +Once a distribution has been selected, the procedure for determining the +outgoing angle and energy will depend on the type of the distribution. + +Uncorrelated Angle-Energy Distributions +--------------------------------------- + +The first set of distributions we will look at are uncorrelated angle-energy +distributions, where angle and energy are specified separately. For these +distributions, OpenMC first samples the angular distribution as described +:ref:`sample-angle` and then samples an energy as described in +:ref:`sample-energy`. .. _sample-angle: -Sampling Secondary Angle Distributions --------------------------------------- +Sampling Angular Distributions +++++++++++++++++++++++++++++++ For elastic scattering, it is only necessary to specific a secondary angle distribution since the outgoing energy can be determined analytically. Other @@ -374,15 +400,14 @@ reactions may also have separate secondary angle and secondary energy distributions that are uncorrelated. In these cases, the secondary angle distribution is represented as either -- An Isotropic angular distribution, -- An equiprobable distribution with 32 bins, or +- An isotropic angular distribution, - A tabular distribution. Isotropic Angular Distribution -++++++++++++++++++++++++++++++ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In the first case, no data needs to be stored on the ACE table, and the cosine -of the scattering angle is simply calculated as +In the first case, no data is stored in the nuclear data file, and the cosine of +the scattering angle is simply calculated as .. math:: :label: isotropic-angle @@ -392,42 +417,17 @@ of the scattering angle is simply calculated as where :math:`\mu` is the cosine of the scattering angle and :math:`\xi` is a random number sampled uniformly on :math:`[0,1)`. -Equiprobable Angle Bin Distribution -+++++++++++++++++++++++++++++++++++ - -For a 32 equiprobable bin distribution, we select a random number :math:`\xi` to -sample a cosine bin :math:`i` such that - -.. math:: - :label: equiprobable-bin - - i = 1 + \lfloor 32\xi \rfloor. - -The same random number can then also be used to interpolate between neighboring -:math:`\mu` values to get the final scattering cosine: - -.. math:: - :label: equiprobable-cosine - - \mu = \mu_i + (32\xi - i) (\mu_{i+1} - \mu_i) - -where :math:`\mu_i` is the :math:`i`-th scattering cosine. - .. _angle-tabular: Tabular Angular Distribution -++++++++++++++++++++++++++++ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -As the `MCNP Manual`_ points out, using an equiprobable bin distribution works -well for high-probability regions of the scattering cosine probability, but for -low-probability regions it is not very accurate. Thus, a more accurate method is -to represent the scattering cosine with a tabular distribution. In this case, we -have a table of cosines and their corresponding values for a probability -distribution function and cumulative distribution function. For each incoming -neutron energy :math:`E_i`, let us call :math:`p_{i,j}` the j-th value in the -probability distribution function and :math:`c_{i,j}` the j-th value in the -cumulative distribution function. We first find the interpolation factor on the -incoming energy grid: +In this case, we have a table of cosines and their corresponding values for a +probability distribution function and cumulative distribution function. For each +incoming neutron energy :math:`E_i`, let us call :math:`p_{i,j}` the j-th value +in the probability distribution function and :math:`c_{i,j}` the j-th value in +the cumulative distribution function. We first find the interpolation factor on +the incoming energy grid: .. math:: :label: interpolation-factor @@ -545,89 +545,11 @@ linear-linear interpolation: .. _sample-energy: -Sampling Secondary Energy and Correlated Angle/Energy Distributions -------------------------------------------------------------------- +Sampling Energy Distributions ++++++++++++++++++++++++++++++ -For a reaction with secondary neutrons, it is necessary to determine the -outgoing energy of the neutrons. For any reaction other than elastic scattering, -the outgoing energy must be determined based on tabulated or parameterized -data. The `ENDF-6 Format`_ specifies a variety of ways that the secondary energy -distribution can be represented. ENDF File 5 contains uncorrelated energy -distribution where ENDF File 6 contains correlated energy-angle -distributions. The ACE format specifies its own representations based loosely on -the formats given in ENDF-6. In this section, we will describe how the outgoing -energy of secondary particles is determined based on each ACE law. - -One of the subtleties in the ACE format is the fact that a single reaction can -have multiple secondary energy distributions. This is mainly useful for -reactions with multiple neutrons in the exit channel such as :math:`(n,2n)` or -:math:`(n,3n)`. In these types of reactions, each neutron is emitted -corresponding to a different excitation level of the compound nucleus, and thus -in general the neutrons will originate from different energy distributions. If -multiple energy distributions are present, they are assigned probabilities that -can then be used to randomly select one. - -Once a secondary energy distribution has been sampled, the procedure for -determining the outgoing energy will depend on which ACE law has been specified -for the data. - -.. _ace-law-1: - -ACE Law 1 - Tabular Equiprobable Energy Bins -++++++++++++++++++++++++++++++++++++++++++++ - -In the tabular equiprobable bin representation, an array of equiprobable -outgoing energy bins is given for a number of incident energies. While the -representation itself is simple, the complexity lies in how one interpolates -between incident as well as outgoing energies on such a table. If one performs -simple interpolation between tables for neighboring incident energies, it is -possible that the resulting energies would violate laws governing the -kinematics, i.e. the outgoing energy may be outside the range of available -energy in the reaction. - -To avoid this situation, the accepted practice is to use a process known as -scaled interpolation [Doyas]_. First, we find the tabulated incident energies -which bound the actual incoming energy of the particle, i.e. find :math:`i` such -that :math:`E_i < E < E_{i+1}` and calculate the interpolation factor :math:`f` -via :eq:`interpolation-factor`. Then, we interpolate between the minimum and -maximum energies of the outgoing energy distributions corresponding to -:math:`E_i` and :math:`E_{i+1}`: - -.. math:: - :label: ace-law-1-minmax - - E_{min} = E_{i,1} + f ( E_{i+1,1} - E_i ) \\ - E_{max} = E_{i,M} + f ( E_{i+1,M} - E_M ) - -where :math:`E_{min}` and :math:`E_{max}` are the minimum and maximum outgoing -energies of a scaled distribution, :math:`E_{i,j}` is the j-th outgoing energy -corresponding to the incoming energy :math:`E_i`, and :math:`M` is the number of -outgoing energy bins. Next, statistical interpolation is performed to choose -between using the outgoing energy distributions corresponding to energy -:math:`E_i` and :math:`E_{i+1}`. Let :math:`\ell` be the chosen table where -:math:`\ell = i` if :math:`\xi_1 > f` and :math:`\ell = i + 1` otherwise, and -:math:`\xi_1` is a random number. Now, we randomly sample an equiprobable -outgoing energy bin :math:`j` and interpolate between successive values on the -outgoing energy distribution: - -.. math:: - :label: ace-law-1-intermediate - - \hat{E} = E_{\ell,j} + \xi_2 (E_{\ell,j+1} - E_{\ell,j}) - -where :math:`\xi_2` is a random number sampled uniformly on :math:`[0,1)`. Since -this outgoing energy may violate reaction kinematics, we then scale it to the -minimum and maximum energies we calculated earlier to get the final outgoing -energy: - -.. math:: - :label: ace-law-1-energy - - E' = E_{min} + \frac{\hat{E} - E_{\ell,1}}{E_{\ell,M} - E_{\ell,1}} - (E_{max} - E_{min}) - -ACE Law 3 - Inelastic Level Scattering -++++++++++++++++++++++++++++++++++++++ +Inelastic Level Scattering +^^^^^^^^^^^^^^^^^^^^^^^^^^ It can be shown (see Foderaro_) that in inelastic level scattering, the outgoing energy of the neutron :math:`E'` can be related to the Q-value of the reaction @@ -640,31 +562,50 @@ and the incoming energy: where :math:`A` is the mass of the target nucleus measured in neutron masses. -.. _ace-law-4: +.. _continuous-tabular: -ACE Law 4 - Continuous Tabular Distribution -+++++++++++++++++++++++++++++++++++++++++++ +Continuous Tabular Distribution +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -This representation is very similar to :ref:`ace-law-1` except that instead of -equiprobable outgoing energy bins, the outgoing energy distribution for each -incoming energy is represented with a probability distribution function. For -each incoming neutron energy :math:`E_i`, let us call :math:`p_{i,j}` the j-th -value in the probability distribution function, :math:`c_{i,j}` the j-th value -in the cumulative distribution function, and :math:`E_{i,j}` the j-th outgoing -energy. +In a continuous tabular distribution, a tabulated energy distribution is +provided for each of a set of incoming energies. While the representation itself +is simple, the complexity lies in how one interpolates between incident as well +as outgoing energies on such a table. If one performs simple interpolation +between tables for neighboring incident energies, it is possible that the +resulting energies would violate laws governing the kinematics, i.e., the +outgoing energy may be outside the range of available energy in the reaction. -We proceed first as we did for ACE Law 1, determining the bounding energies of -the particle's incoming energy such that :math:`E_i < E < E_{i+1}` and -calculating an interpolation factor :math:`f` with equation -:eq:`interpolation-factor`. Next, statistical interpolation is performed to -choose between using the outgoing energy distributions corresponding to energy -:math:`E_i` and :math:`E_{i+1}`. Let :math:`\ell` be the chosen table where -:math:`\ell = i` if :math:`\xi_1 > f` and :math:`\ell = i + 1` otherwise, and -:math:`\xi_1` is a random number. Then, we sample an outgoing energy bin +To avoid this situation, the accepted practice is to use a process known as +scaled interpolation [Doyas]_. First, we find the tabulated incident energies +which bound the actual incoming energy of the particle, i.e., find :math:`i` +such that :math:`E_i < E < E_{i+1}` and calculate the interpolation factor +:math:`f` via :eq:`interpolation-factor`. Then, we interpolate between the +minimum and maximum energies of the outgoing energy distributions corresponding +to :math:`E_i` and :math:`E_{i+1}`: + +.. math:: + :label: continuous-minmax + + E_{min} = E_{i,1} + f ( E_{i+1,1} - E_{i,1} ) \\ + E_{max} = E_{i,M} + f ( E_{i+1,M} - E_{i,M} ) + +where :math:`E_{min}` and :math:`E_{max}` are the minimum and maximum outgoing +energies of a scaled distribution, :math:`E_{i,j}` is the j-th outgoing energy +corresponding to the incoming energy :math:`E_i`, and :math:`M` is the number of +outgoing energy bins. + +Next, statistical interpolation is performed to choose between using the +outgoing energy distributions corresponding to energy :math:`E_i` and +:math:`E_{i+1}`. Let :math:`\ell` be the chosen table where :math:`\ell = i` if +:math:`\xi_1 > f` and :math:`\ell = i + 1` otherwise, and :math:`\xi_1` is a +random number. For each incoming neutron energy :math:`E_i`, let us call +:math:`p_{i,j}` the j-th value in the probability distribution function, +:math:`c_{i,j}` the j-th value in the cumulative distribution function, and +:math:`E_{i,j}` the j-th outgoing energy. We then sample an outgoing energy bin :math:`j` using the cumulative distribution function: .. math:: - :label: ace-law-4-sample-cdf + :label: continuous-sample-cdf c_{\ell,j} < \xi_2 < c_{\ell,j+1} @@ -692,22 +633,22 @@ If linear-linear interpolation is to be used, the outgoing energy on the \right ). Since this outgoing energy may violate reaction kinematics, we then scale it to -minimum and maximum energies interpolated between the neighboring outgoing -energy distributions to get the final outgoing energy: +minimum and maximum energies calculated in equation :eq:`continuous-minmax` to +get the final outgoing energy: .. math:: - :label: ace-law-4-energy + :label: continuous-eout E' = E_{min} + \frac{\hat{E} - E_{\ell,1}}{E_{\ell,M} - E_{\ell,1}} (E_{max} - E_{min}) where :math:`E_{min}` and :math:`E_{max}` are defined the same as in equation -:eq:`ace-law-1-minmax`. +:eq:`continuous-minmax`. .. _maxwell: -ACE Law 7 - Maxwell Fission Spectrum -++++++++++++++++++++++++++++++++++++ +Maxwell Fission Spectrum +^^^^^^^^^^^^^^^^^^^^^^^^ One representation of the secondary energies for neutrons from fission is the so-called Maxwell spectrum. A probability distribution for the Maxwell spectrum @@ -720,7 +661,7 @@ can be written in the form where :math:`E` is the incoming energy of the neutron and :math:`T` is the so-called nuclear temperature, which is a function of the incoming energy of the -neutron. The ACE format contains a list of nuclear temperatures versus incoming +neutron. The ENDF format contains a list of nuclear temperatures versus incoming energies. The nuclear temperature is interpolated between neighboring incoming energies using a specified interpolation law. Once the temperature :math:`T` is determined, we then calculate a candidate outgoing energy based on rule C64 in @@ -740,12 +681,12 @@ interval. The outgoing energy is only accepted if 0 \le E' \le E - U -where :math:`U` is called the restriction energy and is specified on the ACE -table. If the outgoing energy is rejected, it is resampled using equation +where :math:`U` is called the restriction energy and is specified in the ENDF +data. If the outgoing energy is rejected, it is resampled using equation :eq:`maxwell-E-candidate`. -ACE Law 9 - Evaporation Spectrum -++++++++++++++++++++++++++++++++ +Evaporation Spectrum +^^^^^^^^^^^^^^^^^^^^ Evaporation spectra are primarily used in compound nucleus processes where a secondary particle can "evaporate" from the compound nucleus if it has @@ -759,7 +700,7 @@ be written in the form where :math:`E` is the incoming energy of the neutron and :math:`T` is the nuclear temperature, which is a function of the incoming energy of the -neutron. The ACE format contains a list of nuclear temperatures versus incoming +neutron. The ENDF format contains a list of nuclear temperatures versus incoming energies. The nuclear temperature is interpolated between neighboring incoming energies using a specified interpolation law. Once the temperature :math:`T` is determined, we then calculate a candidate outgoing energy based on the algorithm @@ -777,11 +718,11 @@ energy as in equation :eq:`maxwell-restriction`. This algorithm has a much higher rejection efficiency than the standard technique, i.e. rule C45 in the `Monte Carlo Sampler`_. -ACE Law 11 - Energy-Dependent Watt Spectrum -+++++++++++++++++++++++++++++++++++++++++++ +Energy-Dependent Watt Spectrum +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The probability distribution for a Watt fission spectrum can be written in the -form +The probability distribution for a [Watt]_ fission spectrum can be written in +the form .. math:: :label: watt-spectrum @@ -805,29 +746,37 @@ where :math:`\xi` is a random number sampled on the interval :math:`[0,1)`. The outgoing energy is only accepted according to a specified restriction energy :math:`U` as defined in equation :eq:`maxwell-restriction`. -This algorithm can be found in Forrest Brown's lectures_ on Monte Carlo methods -and is an unpublished sampling scheme based on the original Watt spectrum -derivation [Watt]_. +A derivation of the algorithm described here can be found in a paper by Romano_. -ACE Law 44 - Kalbach-Mann Correlated Scattering -+++++++++++++++++++++++++++++++++++++++++++++++ +Product Angle-Energy Distributions +---------------------------------- -This law is very similar to ACE Law 4 except now the outgoing angle of the -neutron is correlated to the outgoing energy and is not sampled from a separate -distribution. For each incident neutron energy :math:`E_i` tabulated, there is -an array of precompound factors :math:`R_{i,j}` and angular distribution slopes -:math:`A_{i,j}` corresponding to each outgoing energy bin :math:`j` in addition -to the outgoing energies and distribution functions as in ACE Law 4. +If the secondary distribution for a product was given in file 6 in ENDF, the +angle and energy are correlated with one another and cannot be sampled +separately. Several representations exist in ENDF/ACE for correlated +angle-energy distributions. + +Kalbach-Mann Correlated Scattering +++++++++++++++++++++++++++++++++++ + +This law is very similar to the uncorrelated continuous tabular energy +distribution except now the outgoing angle of the neutron is correlated to the +outgoing energy and is not sampled from a separate distribution. For each +incident neutron energy :math:`E_i` tabulated, there is an array of precompound +factors :math:`R_{i,j}` and angular distribution slopes :math:`A_{i,j}` +corresponding to each outgoing energy bin :math:`j` in addition to the outgoing +energies and distribution functions as in :ref:`continuous-tabular`. The calculation of the outgoing energy of the neutron proceeds exactly the same -as in the algorithm described in :ref:`ace-law-4`. In that algorithm, we found -an interpolation factor :math:`f`, statistically sampled an incoming energy bin -:math:`\ell`, and sampled an outgoing energy bin :math:`j` based on the -tabulated cumulative distribution function. Once the outgoing energy has been -determined with equation :eq:`ace-law-4-energy`, we then need to calculate the -outgoing angle based on the tabulated Kalbach-Mann parameters. These parameters -themselves are subject to either histogram or linear-linear interpolation on the -outgoing energy grid. For histogram interpolation, the parameters are +as in the algorithm described in :ref:`continuous-tabular`. In that algorithm, +we found an interpolation factor :math:`f`, statistically sampled an incoming +energy bin :math:`\ell`, and sampled an outgoing energy bin :math:`j` based on +the tabulated cumulative distribution function. Once the outgoing energy has +been determined with equation :eq:`continuous-eout`, we then need to calculate +the outgoing angle based on the tabulated Kalbach-Mann parameters. These +parameters themselves are subject to either histogram or linear-linear +interpolation on the outgoing energy grid. For histogram interpolation, the +parameters are .. math:: :label: KM-parameters-histogram @@ -873,52 +822,55 @@ outgoing angle is \mu = \frac{1}{A} \ln \left ( \xi_4 e^A + (1 - \xi_4) e^{-A} \right ). -.. _ace-law-61: +.. _correlated-energy-angle: -ACE Law 61 - Correlated Energy and Angle Distribution -+++++++++++++++++++++++++++++++++++++++++++++++++++++ +Correlated Energy and Angle Distribution +++++++++++++++++++++++++++++++++++++++++ -This law is very similar to ACE Law 44 in the sense that the outgoing angle of -the neutron is correlated to the outgoing energy and is not sampled from a -separate distribution. In this case though, rather than being determined from an -analytical distribution function, the cosine of the scattering angle is -determined from a tabulated distribution. For each incident energy :math:`i` and -outgoing energy :math:`j`, there is a tabulated angular distribution. +This distribution is very similar to a Kalbach-Mann distribution in the sense +that the outgoing angle of the neutron is correlated to the outgoing energy and +is not sampled from a separate distribution. In this case though, rather than +being determined from an analytical distribution function, the cosine of the +scattering angle is determined from a tabulated distribution. For each incident +energy :math:`i` and outgoing energy :math:`j`, there is a tabulated angular +distribution. The calculation of the outgoing energy of the neutron proceeds exactly the same -as in the algorithm described in :ref:`ace-law-4`. In that algorithm, we found -an interpolation factor :math:`f`, statistically sampled an incoming energy bin -:math:`\ell`, and sampled an outgoing energy bin :math:`j` based on the -tabulated cumulative distribution function. Once the outgoing energy has been -determined with equation :eq:`ace-law-4-energy`, we then need to decide which -angular distribution to use. If histogram interpolation was used on the outgoing -energy bins, then we use the angular distribution corresponding to incoming -energy bin :math:`\ell` and outgoing energy bin :math:`j`. If linear-linear -interpolation was used on the outgoing energy bins, then we use the whichever -angular distribution was closer to the sampled value of the cumulative -distribution function for the outgoing energy. The actual algorithm used to -sample the chosen tabular angular distribution has been previously described in -:ref:`angle-tabular`. +as in the algorithm described in :ref:`continuous-tabular`. In that algorithm, +we found an interpolation factor :math:`f`, statistically sampled an incoming +energy bin :math:`\ell`, and sampled an outgoing energy bin :math:`j` based on +the tabulated cumulative distribution function. Once the outgoing energy has +been determined with equation :eq:`continuous-eout`, we then need to decide +which angular distribution to use. If histogram interpolation was used on the +outgoing energy bins, then we use the angular distribution corresponding to +incoming energy bin :math:`\ell` and outgoing energy bin :math:`j`. If +linear-linear interpolation was used on the outgoing energy bins, then we use +the whichever angular distribution was closer to the sampled value of the +cumulative distribution function for the outgoing energy. The actual algorithm +used to sample the chosen tabular angular distribution has been previously +described in :ref:`angle-tabular`. -ACE Law 66 - N-Body Phase Space Distribution -++++++++++++++++++++++++++++++++++++++++++++ +N-Body Phase Space Distribution ++++++++++++++++++++++++++++++++ Reactions in which there are more than two products of similar masses are sometimes best treated by using what's known as an N-body phase distribution. This distribution has the following probability density function -for outgoing energy of the :math:`i`-th particle in the center-of-mass system: +for outgoing energy and angle of the :math:`i`-th particle in the center-of-mass +system: .. math:: :label: n-body-pdf - p_i(E') dE' = C_n \sqrt{E'} (E_i^{max} - E')^{(3n/2) - 4} dE' + p_i(\mu, E') dE' d\mu = C_n \sqrt{E'} (E_i^{max} - E')^{(3n/2) - 4} dE' d\mu where :math:`n` is the number of outgoing particles, :math:`C_n` is a normalization constant, :math:`E_i^{max}` is the maximum center-of-mass energy -for particle :math:`i`, and :math:`E'` is the outgoing energy. The algorithm for -sampling the outgoing energy is based on algorithms R28, C45, and C64 in the -`Monte Carlo Sampler`_. First we calculate the maximum energy in the -center-of-mass using the following equation: +for particle :math:`i`, and :math:`E'` is the outgoing energy. We see in +equation :eq:`n-body-pdf` that the angle is simply isotropic in the +center-of-mass system. The algorithm for sampling the outgoing energy is based +on algorithms R28, C45, and C64 in the `Monte Carlo Sampler`_. First we +calculate the maximum energy in the center-of-mass using the following equation: .. math:: :label: n-body-emax @@ -961,7 +913,7 @@ distribution. First, the documentation (and code) for MCNP5-1.60 has a mistake in the algorithm for :math:`n = 4`. That being said, there are no existing nuclear data evaluations which use an N-body phase space distribution with :math:`n = 4`, so the error would not affect any calculations. In the -ENDF/B-VII.0 nuclear data evaluation, only one reaction uses an N-body phase +ENDF/B-VII.1 nuclear data evaluation, only one reaction uses an N-body phase space distribution at all, the :math:`(n,2n)` reaction with H-2. .. _transform-coordinates: @@ -1527,16 +1479,16 @@ accordingly. Continuous Outgoing Energies ++++++++++++++++++++++++++++ -If the thermal data was processed with :math:`iwt=2` in NJOY, then the -outgoing energy spectra is represented by a continuous outgoing energy spectra -in tabular form with linear-linear interpolation. The sampling of the outgoing -energy portion of this format is very similar to :ref:`ACE Law 61`, -but the sampling of the correlated angle is performed as it was in the other -two representations discussed in this sub-section. In the Law 61 algorithm, -we found an interpolation factor :math:`f`, statistically sampled an incoming +If the thermal data was processed with :math:`iwt=2` in NJOY, then the outgoing +energy spectra is represented by a continuous outgoing energy spectra in tabular +form with linear-linear interpolation. The sampling of the outgoing energy +portion of this format is very similar to :ref:`correlated-energy-angle`, but +the sampling of the correlated angle is performed as it was in the other two +representations discussed in this sub-section. In the Law 61 algorithm, we +found an interpolation factor :math:`f`, statistically sampled an incoming energy bin :math:`\ell`, and sampled an outgoing energy bin :math:`j` based on the tabulated cumulative distribution function. Once the outgoing energy has -been determined with equation :eq:`ace-law-4-energy`, we then need to decide +been determined with equation :eq:`continuous-eout`, we then need to decide which angular distribution data to use. Like the linear-linear interpolation case in Law 61, the angular distribution closest to the sampled value of the cumulative distribution function for the outgoing energy is utilized. The @@ -1723,6 +1675,8 @@ another. .. _MC21: http://www.osti.gov/bridge/servlets/purl/903083-HT5p1o/903083.pdf +.. _Romano: http://dx.doi.org/10.1016/j.cpc.2014.11.001 + .. _Sutton and Brown: http://www.osti.gov/bridge/product.biblio.jsp?osti_id=307911 .. _lectures: https://laws.lanl.gov/vhosts/mcnp.lanl.gov/pdf_files/la-ur-05-4983.pdf diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index a17af8ac67..854c2bc4c1 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -328,8 +328,11 @@ Core Classes :nosignatures: :template: myclass.rst + openmc.data.IncidentNeutron + openmc.data.Reaction openmc.data.Product openmc.data.Tabulated1D + openmc.data.ThermalScattering openmc.data.CoherentElastic Angle-Energy Distributions @@ -370,11 +373,6 @@ Classes openmc.data.ace.Library openmc.data.ace.Table - openmc.data.ace.NeutronTable - openmc.data.ace.SabTable - openmc.data.ace.PhotoatomicTable - openmc.data.ace.PhotonuclearTable - openmc.data.ace.Reaction Functions +++++++++ diff --git a/openmc/data/__init__.py b/openmc/data/__init__.py index 32de3b598e..c6a1baf9df 100644 --- a/openmc/data/__init__.py +++ b/openmc/data/__init__.py @@ -1,4 +1,6 @@ from .data import * +from .neutron import * +from .reaction import * from .ace import * from .angle_distribution import * from .container import * @@ -11,3 +13,4 @@ from .kalbach_mann import * from .nbody import * from .thermal import * from .urr import * +from .library import * diff --git a/openmc/data/ace.py b/openmc/data/ace.py index 358d987896..2a39e208a2 100644 --- a/openmc/data/ace.py +++ b/openmc/data/ace.py @@ -21,26 +21,9 @@ from os import SEEK_CUR import struct import sys from warnings import warn -from collections import OrderedDict -from copy import deepcopy import numpy as np -from numpy.polynomial import Polynomial -import h5py -from . import atomic_number, atomic_symbol, reaction_name -from .container import Tabulated1D, interpolation_scheme -from .angle_distribution import AngleDistribution -from .energy_distribution import * -from .product import Product -from .angle_energy import AngleEnergy -from .kalbach_mann import KalbachMann -from .uncorrelated import UncorrelatedAngleEnergy -from .correlated import CorrelatedAngleEnergy -from .nbody import NBodyPhaseSpace -from .thermal import CoherentElastic -from .urr import ProbabilityTables -from openmc.stats import Tabular, Discrete, Uniform, Mixture if sys.version_info[0] >= 3: basestring = str @@ -120,47 +103,6 @@ def ascii_to_binary(ascii_file, binary_file): binary.close() -def _get_tabulated_1d(array, idx=0): - """Create a Tabulated1D object from array. - - Parameters - ---------- - array : numpy.ndarray - Array is formed as a 1 dimensional array as follows: [number of regions, - final pair for each region, interpolation parameters, number of pairs, - x-values, y-values] - idx : int, optional - Offset to read from in array (default of zero) - - Returns - ------- - openmc.data.Tabulated1D - Tabulated data object - - """ - - # Get number of regions and pairs - n_regions = int(array[idx]) - n_pairs = int(array[idx + 1 + 2*n_regions]) - - # Get interpolation information - idx += 1 - if n_regions > 0: - nbt = np.asarray(array[idx:idx + n_regions], dtype=int) - interp = np.asarray(array[idx + n_regions:idx + 2*n_regions], dtype=int) - else: - # NR=0 regions implies linear-linear interpolation by default - nbt = np.array([n_pairs]) - interp = np.array([2]) - - # Get (x,y) pairs - idx += 2*n_regions + 1 - x = array[idx:idx + n_pairs] - y = array[idx + n_pairs:idx + 2*n_pairs] - - return Tabulated1D(x, y, nbt, interp) - - def get_table(filename, name=None): """Read a single table from an ACE file @@ -181,30 +123,14 @@ def get_table(filename, name=None): lib = Library(filename) if name is None: - return list(lib.tables.values())[0] + return lib.tables[0] else: - return lib.tables[name] - - -def get_all_tables(filename): - """Read all tables from an ACE file - - Parameters - ---------- - filename : str - Path of the ACE library to load table from - name : str, optional - Name of table to load, e.g. '92235.71c' - - Returns - ------- - list of openmc.data.ace.Table - ACE tables read from the file - - """ - - lib = Library(filename) - return list(lib.tables.values()) + for table in lib.tables: + if table.name == name: + return table + else: + raise ValueError('Could not find ACE table with name: {}' + .format(name)) class Library(object): @@ -224,10 +150,8 @@ class Library(object): Attributes ---------- - tables : dict - Dictionary whose keys are the names of the ACE tables and whose values - are the instances of subclasses of :class:`Table` - (e.g. :class:`NeutronTable`) + tables : list + List of :class:`Table` instances """ @@ -237,7 +161,7 @@ class Library(object): if table_names is not None: table_names = set(table_names) - self.tables = {} + self.tables = [] # Determine whether file is ASCII or binary try: @@ -291,10 +215,11 @@ class Library(object): # material name, atomic_weight_ratio, temperature, date, comment, mat = \ struct.unpack(str('=10sdd10s70s10s'), fh.read(116)) - name = name.strip() + name = name.decode().strip() # Read ZAID/awr combinations - izaw_pairs = struct.unpack(str('=' + 16*'id'), fh.read(192)) + data = struct.unpack(str('=' + 16*'id'), fh.read(192)) + pairs = list(zip(data[::2], data[1::2])) # Read NXS nxs = list(struct.unpack(str('=16i'), fh.read(64))) @@ -303,30 +228,14 @@ class Library(object): length = nxs[0] n_records = (length + entries - 1)//entries - # name is bytes, make it a string - name = name.decode() # verify that we are supposed to read this table in if (table_names is not None) and (name not in table_names): fh.seek(start_position + recl_length*(n_records + 1)) continue - # ensure we have a valid table type - if len(name) == 0 or name[-1] not in table_types: - warn("Unsupported table: " + name, RuntimeWarning) - fh.seek(start_position + recl_length*(n_records + 1)) - continue - - # get the table - table = table_types[name[-1]](name, atomic_weight_ratio, temperature) - if verbose: temperature_in_K = round(temperature * 1e6 / 8.617342e-5) print("Loading nuclide {0} at {1} K".format(name, temperature_in_K)) - self.tables[name] = table - - # If table is S(a,b), add zaids - zaids = np.array(izaw_pairs[::2]) - table.zaids = zaids[np.nonzero(zaids)] # Read JXS jxs = list(struct.unpack(str('=32i'), fh.read(128))) @@ -336,20 +245,22 @@ class Library(object): xss = list(struct.unpack(str('={0}d'.format(length)), fh.read(length*8))) - # Insert empty object at beginning of NXS, JXS, and XSS arrays so - # that the indexing will be the same as Fortran. This makes it - # easier to follow the ACE format specification. + # Insert zeros at beginning of NXS, JXS, and XSS arrays so that the + # indexing will be the same as Fortran. This makes it easier to + # follow the ACE format specification. nxs.insert(0, 0) - table._nxs = np.array(nxs, dtype=int) + nxs = np.array(nxs, dtype=int) jxs.insert(0, 0) - table._jxs = np.array(jxs, dtype=int) + jxs = np.array(jxs, dtype=int) xss.insert(0, 0.0) - table._xss = np.array(xss) + xss = np.array(xss) - # Read all data blocks - table._read_all() + # Create ACE table with data read in + table = Table(name, atomic_weight_ratio, temperature, pairs, + nxs, jxs, xss) + self.tables.append(table) # Advance to next record fh.seek(start_position + recl_length*(n_records + 1)) @@ -397,7 +308,9 @@ class Library(object): atomic_weight_ratio = float(words[1]) temperature = float(words[2]) - izaw_pairs = (' '.join(lines[2:6])).split() + datastr = ' '.join(lines[2:6]).split() + pairs = list(zip(map(int, datastr[::2]), + map(float, datastr[1::2]))) datastr = '0 ' + ' '.join(lines[6:8]) nxs = np.fromstring(datastr, sep=' ', dtype=int) @@ -417,14 +330,6 @@ class Library(object): lines = [fh.readline() for i in range(13)] continue - # ensure we have a valid table type - if len(name) == 0 or name[-1] not in table_types: - warn("Unsupported table: " + name, RuntimeWarning) - fh.seek(n_bytes, SEEK_CUR) - fh.readline() - lines = [fh.readline() for i in range(13)] - continue - # read and fix over-shoot lines += fh.readlines(n_bytes) if 12 + n_lines < len(lines): @@ -432,41 +337,32 @@ class Library(object): lines = lines[:12+n_lines] fh.seek(-goback, SEEK_CUR) - # get the table - table = table_types[name[-1]](name, atomic_weight_ratio, temperature) - if verbose: temperature_in_K = round(temperature * 1e6 / 8.617342e-5) print("Loading nuclide {0} at {1} K".format(name, temperature_in_K)) - self.tables[name] = table # Read comment - table.comment = lines[1].strip() - - # If table is S(a,b), add zaids - if isinstance(table, SabTable): - zaids = np.fromiter(map(int, izaw_pairs[::2]), int) - table.zaids = zaids[np.nonzero(zaids)] - - # Add NXS, JXS, and XSS arrays to table Insert empty object at - # beginning of NXS, JXS, and XSS arrays so that the indexing will be - # the same as Fortran. This makes it easier to follow the ACE format - # specification. - table._nxs = nxs + comment = lines[1].strip() + # Insert zeros at beginning of NXS, JXS, and XSS arrays so that the + # indexing will be the same as Fortran. This makes it easier to + # follow the ACE format specification. datastr = '0 ' + ' '.join(lines[8:12]) - table._jxs = np.fromstring(datastr, dtype=int, sep=' ') + jxs = np.fromstring(datastr, dtype=int, sep=' ') datastr = '0.0 ' + ''.join(lines[12:12+n_lines]) - table._xss = np.fromstring(datastr, sep=' ') + xss = np.fromstring(datastr, sep=' ') + + table = Table(name, atomic_weight_ratio, temperature, pairs, + nxs, jxs, xss) + self.tables.append(table) # Read all data blocks - table._read_all() lines = [fh.readline() for i in range(13)] class Table(object): - """Abstract superclass of all other classes for cross section tables. + """ACE cross section table Parameters ---------- @@ -475,1387 +371,28 @@ class Table(object): atomic_weight_ratio : float Atomic mass ratio of the target nuclide. temperature : float - Temperature of the target nuclide in eV. - - Attributes - ---------- - name : str - ZAID identifier of the table, e.g. '92235.70c'. - atomic_weight_ratio : float - Atomic mass ratio of the target nuclide. - temperature : float - Temperature of the target nuclide in eV. + Temperature of the target nuclide in MeV. + pairs : list of tuple + 16 pairs of ZAIDs and atomic weight ratios. Used for thermal scattering + tables to indicate what isotopes scattering is applied to. + nxs : numpy.ndarray + Array that defines various lengths with in the table + jxs : numpy.ndarray + Array that gives locations in the ``xss`` array for various blocks of + data + xss : numpy.ndarray + Raw data for the ACE table """ - - def __init__(self, name, atomic_weight_ratio, temperature): + def __init__(self, name, atomic_weight_ratio, temperature, pairs, + nxs, jxs, xss): self.name = name self.atomic_weight_ratio = atomic_weight_ratio self.temperature = temperature - - def _read_all(self): - raise NotImplementedError - - def _get_continuous_tabular(self, idx, ldis): - """Get continuous tabular energy distribution (ACE law 4) starting at specified - index in the XSS array. - - Parameters - ---------- - idx : int - Index in XSS array of the start of the energy distribution data - (LDIS + LOCC - 1) - ldis : int - Index in XSS array of the start of the energy distribution block - (e.g. JXS[11]) - - Returns - ------- - openmc.data.energy_distribution.ContinuousTabular - Continuous tabular energy distribution - - """ - - # Read number of interpolation regions and incoming energies - n_regions = int(self._xss[idx]) - n_energy_in = int(self._xss[idx + 1 + 2*n_regions]) - - # Get interpolation information - idx += 1 - if n_regions > 0: - breakpoints = np.asarray(self._xss[idx:idx + n_regions], dtype=int) - interpolation = np.asarray(self._xss[idx + n_regions: - idx + 2*n_regions], dtype=int) - else: - breakpoints = np.array([n_energy_in]) - interpolation = np.array([2]) - - # Incoming energies at which distributions exist - idx += 2 * n_regions + 1 - energy = self._xss[idx:idx + n_energy_in] - - # Location of distributions - idx += n_energy_in - loc_dist = np.asarray(self._xss[idx:idx + n_energy_in], dtype=int) - - # Initialize variables - energy_out = [] - - # Read each outgoing energy distribution - for i in range(n_energy_in): - idx = ldis + loc_dist[i] - 1 - - # intt = interpolation scheme (1=hist, 2=lin-lin) - INTTp = int(self._xss[idx]) - intt = INTTp % 10 - n_discrete_lines = (INTTp - intt)//10 - if intt not in (1, 2): - warn("Interpolation scheme for continuous tabular distribution " - "is not histogram or linear-linear.") - intt = 2 - - n_energy_out = int(self._xss[idx + 1]) - data = self._xss[idx + 2:idx + 2 + 3*n_energy_out] - data.shape = (3, n_energy_out) - - # Create continuous distribution - eout_continuous = Tabular(data[0][n_discrete_lines:], - data[1][n_discrete_lines:], - interpolation_scheme[intt]) - eout_continuous.c = data[2][n_discrete_lines:] - - # If discrete lines are present, create a mixture distribution - if n_discrete_lines > 0: - eout_discrete = Discrete(data[0][:n_discrete_lines], - data[1][:n_discrete_lines]) - eout_discrete.c = data[2][:n_discrete_lines] - if n_discrete_lines == n_energy_out: - eout_i = eout_discrete - else: - p_discrete = min(sum(eout_discrete.p), 1.0) - eout_i = Mixture([p_discrete, 1. - p_discrete], - [eout_discrete, eout_continuous]) - else: - eout_i = eout_continuous - - energy_out.append(eout_i) - - return ContinuousTabular(breakpoints, interpolation, energy, - energy_out) - - def _get_general_evaporation(self, idx): - # Read nuclear temperature as Tabulated1D - theta = _get_tabulated_1d(array, idx) - - # X-function - nr = int(array[idx]) - ne = int(array[idx + 1 + 2*nr]) - idx += 2 + 2*nr + 2*ne - net = int(array[idx]) - x = array[idx + 1:idx + 1 + net] - - raise NotImplementedError("Where'd you get this ACE file from?") - - def _get_maxwell_energy(self, idx): - # Read nuclear temperature as Tabulated1D - theta = _get_tabulated_1d(self._xss, idx) - - # Restriction energy - nr = int(self._xss[idx]) - ne = int(self._xss[idx + 1 + 2*nr]) - u = self._xss[idx + 2 + 2*nr + 2*ne] - - return MaxwellEnergy(theta, u) - - def _get_evaporation(self, idx): - # Read nuclear temperature as Tabulated1D - theta = _get_tabulated_1d(self._xss, idx) - - # Restriction energy - nr = int(self._xss[idx]) - ne = int(self._xss[idx + 1 + 2*nr]) - u = self._xss[idx + 2 + 2*nr + 2*ne] - - return Evaporation(theta, u) - - def _get_watt_energy(self, idx): - # Energy-dependent a parameter - a = _get_tabulated_1d(self._xss, idx) - - # Advance index - nr = int(self._xss[idx]) - ne = int(self._xss[idx + 1 + 2*nr]) - idx += 2 + 2*nr + 2*ne - - # Energy-dependent b parameter - b = _get_tabulated_1d(self._xss, idx) - - # Advance index - nr = int(self._xss[idx]) - ne = int(self._xss[idx + 1 + 2*nr]) - idx += 2 + 2*nr + 2*ne - - # Restriction energy - u = self._xss[idx] - - return WattEnergy(a, b, u) - - def _get_kalbach_mann(self, idx, ldis): - # Read number of interpolation regions and incoming energies - n_regions = int(self._xss[idx]) - n_energy_in = int(self._xss[idx + 1 + 2*n_regions]) - - # Get interpolation information - idx += 1 - if n_regions > 0: - breakpoints = np.asarray(self._xss[idx:idx + n_regions], dtype=int) - interpolation = np.asarray(self._xss[idx + n_regions: - idx + 2*n_regions], dtype=int) - else: - breakpoints = np.array([n_energy_in]) - interpolation = np.array([2]) - - # Incoming energies at which distributions exist - idx += 2 * n_regions + 1 - energy = self._xss[idx:idx + n_energy_in] - - # Location of distributions - idx += n_energy_in - loc_dist = np.asarray(self._xss[idx:idx + n_energy_in], dtype=int) - - # Initialize variables - energy_out = [] - km_r = [] - km_a = [] - - # Read each outgoing energy distribution - for i in range(n_energy_in): - idx = ldis + loc_dist[i] - 1 - - # intt = interpolation scheme (1=hist, 2=lin-lin) - INTTp = int(self._xss[idx]) - intt = INTTp % 10 - n_discrete_lines = (INTTp - intt)//10 - if intt not in (1, 2): - warn("Interpolation scheme for continuous tabular distribution " - "is not histogram or linear-linear.") - intt = 2 - - n_energy_out = int(self._xss[idx + 1]) - data = self._xss[idx + 2:idx + 2 + 5*n_energy_out] - data.shape = (5, n_energy_out) - - # Create continuous distribution - eout_continuous = Tabular(data[0][n_discrete_lines:], - data[1][n_discrete_lines:], - interpolation_scheme[intt]) - eout_continuous.c = data[2][n_discrete_lines:] - - # If discrete lines are present, create a mixture distribution - if n_discrete_lines > 0: - eout_discrete = Discrete(data[0][:n_discrete_lines], - data[1][:n_discrete_lines]) - eout_discrete.c = data[2][:n_discrete_lines] - if n_discrete_lines == n_energy_out: - eout_i = eout_discrete - else: - p_discrete = min(sum(eout_discrete.p), 1.0) - eout_i = Mixture([p_discrete, 1. - p_discrete], - [eout_discrete, eout_continuous]) - else: - eout_i = eout_continuous - - energy_out.append(eout_i) - km_r.append(Tabulated1D(data[0], data[3])) - km_a.append(Tabulated1D(data[0], data[4])) - - return KalbachMann(breakpoints, interpolation, energy, energy_out, - km_r, km_a) - - def _get_correlated(self, idx, ldis): - # Read number of interpolation regions and incoming energies - n_regions = int(self._xss[idx]) - n_energy_in = int(self._xss[idx + 1 + 2*n_regions]) - - # Get interpolation information - idx += 1 - if n_regions > 0: - breakpoints = np.asarray(self._xss[idx:idx + n_regions], dtype=int) - interpolation = np.asarray(self._xss[idx + n_regions: - idx + 2*n_regions], dtype=int) - else: - breakpoints = np.array([n_energy_in]) - interpolation = np.array([2]) - - # Incoming energies at which distributions exist - idx += 2 * n_regions + 1 - energy = self._xss[idx:idx + n_energy_in] - - # Location of distributions - idx += n_energy_in - loc_dist = np.asarray(self._xss[idx:idx + n_energy_in], dtype=int) - - # Initialize list of distributions - energy_out = [] - mu = [] - - # Read each outgoing energy distribution - for i in range(n_energy_in): - idx = ldis + loc_dist[i] - 1 - - # intt = interpolation scheme (1=hist, 2=lin-lin) - INTTp = int(self._xss[idx]) - intt = INTTp % 10 - n_discrete_lines = (INTTp - intt)//10 - if intt not in (1, 2): - warn("Interpolation scheme for continuous tabular distribution " - "is not histogram or linear-linear.") - intt = 2 - - # Secondary energy distribution - n_energy_out = int(self._xss[idx + 1]) - data = self._xss[idx + 2:idx + 2 + 4*n_energy_out] - data.shape = (4, n_energy_out) - - # Create continuous distribution - eout_continuous = Tabular(data[0][n_discrete_lines:], - data[1][n_discrete_lines:], - interpolation_scheme[intt], - ignore_negative=True) - eout_continuous.c = data[2][n_discrete_lines:] - - # If discrete lines are present, create a mixture distribution - if n_discrete_lines > 0: - eout_discrete = Discrete(data[0][:n_discrete_lines], - data[1][:n_discrete_lines]) - eout_discrete.c = data[2][:n_discrete_lines] - if n_discrete_lines == n_energy_out: - eout_i = eout_discrete - else: - p_discrete = min(sum(eout_discrete.p), 1.0) - eout_i = Mixture([p_discrete, 1. - p_discrete], - [eout_discrete, eout_continuous]) - else: - eout_i = eout_continuous - - energy_out.append(eout_i) - - lc = np.asarray(data[3], dtype=int) - - # Secondary angular distributions - mu_i = [] - for j in range(n_energy_out): - if lc[j] > 0: - idx = ldis + abs(lc[j]) - 1 - - intt = int(self._xss[idx]) - n_cosine = int(self._xss[idx + 1]) - data = self._xss[idx + 2:idx + 2 + 3*n_cosine] - data.shape = (3, n_cosine) - - mu_ij = Tabular(data[0], data[1], interpolation_scheme[intt]) - mu_ij.c = data[2] - else: - # Isotropic distribution - mu_ij = Uniform(-1., 1.) - - mu_i.append(mu_ij) - - # Add cosine distributions for this incoming energy to list - mu.append(mu_i) - - return CorrelatedAngleEnergy(breakpoints, interpolation, energy, - energy_out, mu) - - def _get_energy_distribution(self, location_dist, location_start, rx=None): - """Returns an EnergyDistribution object from data read in starting at - location_start. - - Parameters - ---------- - location_dist : int - Index in the XSS array corresponding to the start of a block, - e.g. JXS(11) for the the DLW block. - location_start : int - Index in the XSS array corresponding to the start of an energy - distribution array - rx : Reaction - Reaction this energy distribution will be associated with - - Returns - ------- - distribution : openmc.data.AngleEnergy - Secondary angle-energy distribution - - """ - - # Set starting index for energy distribution - idx = location_dist + location_start - 1 - - law = int(self._xss[idx + 1]) - location_data = int(self._xss[idx + 2]) - - # Position index for reading law data - idx = location_dist + location_data - 1 - - # Parse energy distribution data - if law == 2: - primary_flag = int(self._xss[idx]) - energy = self._xss[idx + 1] - distribution = UncorrelatedAngleEnergy() - distribution.energy = DiscretePhoton(primary_flag, energy, - self.atomic_weight_ratio) - elif law in (3, 33): - threshold, mass_ratio = self._xss[idx:idx + 2] - distribution = UncorrelatedAngleEnergy() - distribution.energy = LevelInelastic(threshold, mass_ratio) - elif law == 4: - distribution = UncorrelatedAngleEnergy() - distribution.energy = self._get_continuous_tabular(idx, location_dist) - elif law == 5: - distribution = UncorrelatedAngleEnergy() - distribution.energy = self._get_general_evaporation(idx) - elif law == 7: - distribution = UncorrelatedAngleEnergy() - distribution.energy = self._get_maxwell_energy(idx) - elif law == 9: - distribution = UncorrelatedAngleEnergy() - distribution.energy = self._get_evaporation(idx) - elif law == 11: - distribution = UncorrelatedAngleEnergy() - distribution.energy = self._get_watt_energy(idx) - elif law == 44: - distribution = self._get_kalbach_mann(idx, location_dist) - elif law == 61: - distribution = self._get_correlated(idx, location_dist) - elif law == 66: - n_particles = int(self._xss[idx]) - total_mass = self._xss[idx + 1] - distribution = NBodyPhaseSpace(total_mass, n_particles, - self.atomic_weight_ratio, rx.Q_value) - else: - raise IOError("Unsupported ACE secondary energy " - "distribution law {0}".format(law)) - - return distribution - - -class NeutronTable(Table): - """A NeutronTable object contains continuous-energy neutron interaction data - read from an ACE-formatted table. These objects are not normally - instantiated by the user but rather created when reading data using a - Library object and stored within the :attr:`Library.tables` attribute. - - Parameters - ---------- - name : str - ZAID identifier of the table, e.g. '92235.70c'. - atomic_weight_ratio : float - Atomic mass ratio of the target nuclide. - temperature : float - Temperature of the target nuclide in eV. - - Attributes - ---------- - absorption_xs : numpy.ndarray - The microscopic absorption cross section for each value on the energy - grid. - atomic_weight_ratio : float - Atomic weight ratio of the target nuclide. - energy : numpy.ndarray - The energy values (MeV) at which reaction cross-sections are tabulated. - heating_number : numpy.ndarray - The total heating number for each value on the energy grid in MeV-b. - name : str - ZAID identifier of the table, e.g. 92235.70c. - reactions : collections.OrderedDict - Contains the cross sections, secondary angle and energy distributions, - and other associated data for each reaction. The keys are the MT values - and the values are Reaction objects. - temperature : float - Temperature of the target nuclide in eV. - total_xs : numpy.ndarray - The microscopic total cross section for each value on the energy grid in b. - urr : None or openmc.data.ProbabilityTables - Unresolved resonance region probability tables - - """ - - def __init__(self, name, atomic_weight_ratio, temperature): - super(NeutronTable, self).__init__(name, atomic_weight_ratio, temperature) - self.absorption_xs = None - self.energy = None - self.heating_number = None - self.total_xs = None - self.reactions = OrderedDict() - self.urr = None + self.pairs = pairs + self.nxs = nxs + self.jxs = jxs + self.xss = xss def __repr__(self): - if hasattr(self, 'name'): - return "".format(self.name) - else: - return "" - - def __iter__(self): - return iter(self.reactions.values()) - - def _read_all(self): - self._read_cross_sections() - self._read_nu() - self._read_secondaries() - self._read_photon_production_data() - self._read_unr() - - def _read_cross_sections(self): - """Read reaction cross sections and other data. - - Reads and parses the ESZ, MTR, LQR, TRY, LSIG, and SIG blocks. These - blocks contain the energy grid, all reaction cross sections, the total - cross section, average heating numbers, and a list of reactions with - their Q-values and multiplicites. - """ - - # Determine number of energies on nuclide grid and number of reactions - # excluding elastic scattering - n_energies = self._nxs[3] - n_reactions = self._nxs[4] - - # Read energy grid and total, absorption, elastic scattering, and - # heating cross sections -- note that this appear separate from the rest - # of the reaction cross sections - arr = self._xss[self._jxs[1]:self._jxs[1] + 5*n_energies] - arr.shape = (5, n_energies) - self.energy, self.total_xs, self.absorption_xs, \ - elastic_xs, self.heating_number = arr - - # Create elastic scattering reaction - elastic_scatter = Reaction(2, self) - elastic_scatter.products.append(Product('neutron')) - elastic_scatter.xs = Tabulated1D(self.energy, elastic_xs) - self.reactions[2] = elastic_scatter - - # Create all other reactions with MT values - mts = np.asarray(self._xss[self._jxs[3]:self._jxs[3] + n_reactions], dtype=int) - qvalues = np.asarray(self._xss[self._jxs[4]:self._jxs[4] + - n_reactions], dtype=float) - tys = np.asarray(self._xss[self._jxs[5]:self._jxs[5] + n_reactions], dtype=int) - - # Create all reactions other than elastic scatter - reactions = [(mt, Reaction(mt, self)) for mt in mts] - self.reactions.update(reactions) - - # Loop over all reactions other than elastic scattering - for i, rx in enumerate(list(self.reactions.values())[1:]): - # Copy Q values determine if scattering should be treated in the - # center-of-mass or lab system - rx.Q_value = qvalues[i] - rx.center_of_mass = (tys[i] < 0) - - # For neutron-producing reactions, get yield - if rx.MT < 100: - if tys[i] != 19: - if abs(tys[i]) > 100: - # Energy-dependent neutron yield - idx = self._jxs[11] + abs(tys[i]) - 101 - yield_ = _get_tabulated_1d(self._xss, idx) - else: - yield_ = abs(tys[i]) - - neutron = Product('neutron') - neutron.yield_ = yield_ - rx.products.append(neutron) - - # Get locator for cross-section data - loc = int(self._xss[self._jxs[6] + i]) - - # Determine starting index on energy grid - rx.threshold_idx = int(self._xss[self._jxs[7] + loc - 1]) - 1 - - # Determine number of energies in reaction - n_energies = int(self._xss[self._jxs[7] + loc]) - energy = self.energy[rx.threshold_idx:rx.threshold_idx + n_energies] - - # Read reaction cross section - xs = self._xss[self._jxs[7] + loc + 1:self._jxs[7] + loc + 1 + n_energies] - rx.xs = Tabulated1D(energy, xs) - - def _read_nu(self): - """Read the NU block -- this contains information on the prompt and delayed - neutron precursor yields, decay constants, etc - - """ - # No NU block - if self._jxs[2] == 0: - return - - products = [] - derived_products = [] - - # Either prompt nu or total nu is given - if self._xss[self._jxs[2]] > 0: - whichnu = 'prompt' if self._jxs[24] > 0 else 'total' - - neutron = Product('neutron') - neutron.emission_mode = whichnu - - idx = self._jxs[2] - LNU = int(self._xss[idx]) - if LNU == 1: - # Polynomial function form of nu - NC = int(self._xss[idx+1]) - coefficients = self._xss[idx+2 : idx+2+NC] - neutron.yield_ = Polynomial(coefficients) - elif LNU == 2: - # Tabular data form of nu - neutron.yield_ = _get_tabulated_1d(self._xss, idx + 1) - - products.append(neutron) - - # Both prompt nu and total nu - elif self._xss[self._jxs[2]] < 0: - # Read prompt neutron yield - prompt_neutron = Product('neutron') - prompt_neutron.emission_mode = 'prompt' - - idx = self._jxs[2] + 1 - LNU = int(self._xss[idx]) - if LNU == 1: - # Polynomial function form of nu - NC = int(self._xss[idx+1]) - coefficients = self._xss[idx+2 : idx+2+NC] - prompt_neutron.yield_ = Polynomial(coefficients) - elif LNU == 2: - # Tabular data form of nu - prompt_neutron.yield_ = _get_tabulated_1d(self._xss, idx + 1) - - # Read total neutron yield - total_neutron = Product('neutron') - total_neutron.emission_mode = 'total' - - idx = self._jxs[2] + int(abs(self._xss[self._jxs[2]])) + 1 - LNU = int(self._xss[idx]) - - if LNU == 1: - # Polynomial function form of nu - NC = int(self._xss[idx+1]) - coefficients = self._xss[idx+2 : idx+2+NC] - total_neutron.yield_ = Polynomial(coefficients) - elif LNU == 2: - # Tabular data form of nu - total_neutron.yield_ = _get_tabulated_1d(self._xss, idx + 1) - - products.append(prompt_neutron) - derived_products.append(total_neutron) - - # Check for delayed nu data - if self._jxs[24] > 0: - yield_delayed = _get_tabulated_1d(self._xss, self._jxs[24] + 1) - - # Delayed neutron precursor distribution - idx = self._jxs[25] - n_group = self._nxs[8] - total_group_probability = 0. - for i, group in enumerate(range(n_group)): - delayed_neutron = Product('neutron') - delayed_neutron.emission_mode = 'delayed' - delayed_neutron.decay_rate = self._xss[idx] - - group_probability = _get_tabulated_1d(self._xss, idx + 1) - if np.all(group_probability.y == group_probability.y[0]): - delayed_neutron.yield_ = deepcopy(yield_delayed) - delayed_neutron.yield_.y *= group_probability.y[0] - total_group_probability += group_probability.y[0] - else: - raise NotImplementedError( - 'Delayed neutron with energy-dependent ' - 'group probability') - - # Advance position - nr = int(self._xss[idx + 1]) - ne = int(self._xss[idx + 2 + 2*nr]) - idx += 3 + 2*nr + 2*ne - - # Energy distribution for delayed fission neutrons - location_start = int(self._xss[self._jxs[26] + group]) - delayed_neutron.distribution.append( - self._get_energy_distribution(self._jxs[27], location_start)) - - products.append(delayed_neutron) - - # Renormalize delayed neutron yields to reflect fact that in ACE - # file, the sum of the group probabilities is not exactly one - for product in products[1:]: - product.yield_.y /= total_group_probability - - # Copy fission neutrons to reactions - for MT, rx in self.reactions.items(): - if MT in (18, 19, 20, 21, 38): - rx.products = deepcopy(products) - if derived_products: - rx.derived_products = deepcopy(derived_products) - - def _get_angle_distribution(self, location_dist, location_start): - # Set starting index for angle distribution - idx = location_dist + location_start - 1 - - # Number of energies at which angular distributions are tabulated - n_energies = int(self._xss[idx]) - idx += 1 - - # Incoming energy grid - energy = self._xss[idx:idx + n_energies] - idx += n_energies - - # Read locations for angular distributions - lc = np.asarray(self._xss[idx:idx + n_energies], dtype=int) - idx += n_energies - - mu = [] - for i in range(n_energies): - if lc[i] > 0: - # Equiprobable 32 bin distribution - idx = location_dist + abs(lc[i]) - 1 - cos = self._xss[idx:idx + 33] - pdf = np.zeros(33) - pdf[:32] = 1.0/(32.0*np.diff(cos)) - cdf = np.linspace(0.0, 1.0, 33) - - mu_i = Tabular(cos, pdf, 'histogram', ignore_negative=True) - mu_i.c = cdf - elif lc[i] < 0: - # Tabular angular distribution - idx = location_dist + abs(lc[i]) - 1 - intt = int(self._xss[idx]) - n_points = int(self._xss[idx + 1]) - data = self._xss[idx + 2:idx + 2 + 3*n_points] - data.shape = (3, n_points) - - mu_i = Tabular(data[0], data[1], interpolation_scheme[intt]) - mu_i.c = data[2] - else: - # Isotropic angular distribution - mu_i = Uniform(-1., 1.) - - mu.append(mu_i) - - return AngleDistribution(energy, mu) - - def _read_secondaries(self): - """Read angle/energy distributions for each reaction MT - """ - - # Number of reactions with secondary neutrons (including elastic - # scattering) - n_reactions = self._nxs[5] + 1 - - for i, rx in enumerate(list(self.reactions.values())[:n_reactions]): - if rx.MT == 18: - for p in rx.products: - if p.emission_mode == 'prompt': - neutron = p - break - else: - neutron = rx.products[0] - - if i > 0: - # Determine locator for ith energy distribution - lnw = int(self._xss[self._jxs[10] + i - 1]) - - while lnw > 0: - # Applicability of this distribution - neutron.applicability.append(_get_tabulated_1d( - self._xss, self._jxs[11] + lnw + 2)) - - # Read energy distribution data - neutron.distribution.append(self._get_energy_distribution( - self._jxs[11], lnw, rx)) - - lnw = int(self._xss[self._jxs[11] + lnw - 1]) - else: - # No energy distribution for elastic scattering - neutron.distribution.append(UncorrelatedAngleEnergy()) - - # Check if angular distribution data exist - loc = int(self._xss[self._jxs[8] + i]) - if loc == -1: - # Angular distribution data are given as part of product - # angle-energy distribution - continue - elif loc == 0: - # No angular distribution data are given for this - # reaction, isotropic scattering is asssumed - angle_dist = None - else: - angle_dist = self._get_angle_distribution(self._jxs[9], loc) - - # Apply angular distribution to each uncorrelated angle-energy - # distribution - if angle_dist is not None: - for d in neutron.distribution: - d.angle = angle_dist - - def _read_photon_production_data(self): - """Read cross sections for each photon-production reaction""" - - n_photon_reactions = self._nxs[6] - photon_mts = np.asarray(self._xss[self._jxs[13]:self._jxs[13] + - n_photon_reactions], dtype=int) - - for i, rx in enumerate(photon_mts): - # Determine corresponding reaction - mt = photon_mts[i] // 1000 - reactions = [] - if mt not in self.reactions: - # If the photon is assigned to MT=18 but the file splits fission - # into MT=19,20,21,38, assign the photon product to each of the - # individual reactions - if mt == 18: - for mt_fiss in (19, 20, 21, 38): - if mt_fiss in self.reactions: - reactions.append(self.reactions[mt_fiss]) - if not reactions: - reactions.append(Reaction(mt, self)) - else: - reactions.append(self.reactions[mt]) - - # Create photon product and assign to reactions - photon = Product('photon') - for rx in reactions: - rx.products.append(photon) - - # ================================================================== - # Read photon yield / production cross section - - loca = int(self._xss[self._jxs[14] + i]) - idx = self._jxs[15] + loca - 1 - mftype = int(self._xss[idx]) - idx += 1 - - if mftype in (12, 16): - # Yield data taken from ENDF File 12 or 6 - mtmult = int(self._xss[idx]) - assert mtmult == mt - - # Read photon yield as function of energy - photon.yield_ = _get_tabulated_1d(self._xss, idx + 1) - - elif mftype == 13: - # Cross section data from ENDF File 13 - - # Energy grid index at which data starts - threshold_idx = int(self._xss[idx]) - 1 - - # Get photon production cross section - n_energy = int(self._xss[idx + 1]) - photon._xs = self._xss[idx + 2:idx + 2 + n_energy] - - # Determine yield based on ratio of cross sections - energy = self.energy[threshold_idx:threshold_idx + n_energy] - photon.yield_ = Tabulated1D(energy, photon._xs) - - else: - raise ValueError("MFTYPE must be 12, 13, 16. Got {0}".format( - mftype)) - - # ================================================================== - # Read photon energy distribution - - location_start = int(self._xss[self._jxs[18] + i]) - - # Read energy distribution data - distribution = self._get_energy_distribution( - self._jxs[19], location_start) - assert isinstance(distribution, UncorrelatedAngleEnergy) - - # ================================================================== - # Read photon angular distribution - loc = int(self._xss[self._jxs[16] + i]) - - if loc == 0: - # No angular distribution data are given for this reaction, - # isotropic scattering is asssumed in LAB - energy = np.array([photon.yield_.x[0], photon.yield_.x[-1]]) - mu_isotropic = Uniform(-1., 1.) - distribution.angle = AngleDistribution( - energy, [mu_isotropic, mu_isotropic]) - else: - distribution.angle = self._get_angle_distribution(self._jxs[17], loc) - - # Add to list of distributions - photon.distribution.append(distribution) - - def _read_unr(self): - """Read the unresolved resonance range probability tables if present. - """ - - # Check if URR probability tables are present - idx = self._jxs[23] - if idx == 0: - return - - N = int(self._xss[idx]) # Number of incident energies - M = int(self._xss[idx+1]) # Length of probability table - interpolation = int(self._xss[idx+2]) - inelastic_flag = int(self._xss[idx+3]) - absorption_flag = int(self._xss[idx+4]) - multiply_smooth = (int(self._xss[idx+5]) == 1) - idx += 6 - - # Get energies at which tables exist - energy = self._xss[idx : idx+N] - idx += N - - # Get probability tables - table = self._xss[idx:idx+N*6*M] - table.shape = (N, 6, M) - - # Create object - self.urr = ProbabilityTables(energy, table, interpolation, inelastic_flag, - absorption_flag, multiply_smooth) - - def export_to_hdf5(self, path, element=None, mass_number=None, metastable=0): - """Export table to an HDF5 file. - - Parameters - ---------- - path : str - Path to write HDF5 file to - element : str or None - Elemental symbol, e.g. Zr. If not specified, the atomic - number/symbol are inferred from the name of the table. - mass_number : int or None - Mass number of the nuclide. For natural elements, a value of zero - should be given. If not specified, the mass number is inferred from - the name of the table. - metastable : int - Metastable level of the nuclide. Defaults to 0. - - """ - - f = h5py.File(path, 'a') - - # If element and/or mass number haven't been specified, make an educated - # guess - zaid, xs = self.name.split('.') - if element is None: - Z = int(zaid) // 1000 - element = atomic_symbol[Z] - else: - Z = atomic_number[element] - if mass_number is None: - mass_number = int(zaid) % 1000 - - # Write basic data - if metastable > 0: - name = '{}{}_m{}.{}'.format(element, mass_number, metastable, xs) - else: - name = '{}{}.{}'.format(element, mass_number, xs) - g = f.create_group(name) - g.attrs['Z'] = Z - g.attrs['A'] = mass_number - g.attrs['metastable'] = metastable - g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio - g.attrs['temperature'] = self.temperature - g.attrs['n_reaction'] = len(self.reactions) - - # Write energy grid - g.create_dataset('energy', data=self.energy) - - # Write reaction data - for i, rx in enumerate(self.reactions.values()): - rx_group = g.create_group('reaction_{}'.format(i)) - rx.to_hdf5(rx_group) - - # Write total nu data if available - if hasattr(rx, 'derived_products') and 'total_nu' not in g: - tgroup = g.create_group('total_nu') - rx.derived_products[0].to_hdf5(tgroup) - - # Write unresolved resonance probability tables - if self.urr is not None: - urr_group = g.create_group('urr') - self.urr.to_hdf5(urr_group) - - f.close() - - @classmethod - def from_hdf5(self, group): - """Generate continuous-energy neutron interaction data from HDF5 group - - Parameters - ---------- - group : h5py.Group - HDF5 group containing interaction data - - Returns - ------- - openmc.data.ace.NeutronTable - Continuous-energy neutron interaction data - - """ - name = group.name[1:] - atomic_weight_ratio = group.attrs['atomic_weight_ratio'] - temperature = group.attrs['temperature'] - table = NeutronTable(name, atomic_weight_ratio, temperature) - - # Read energy grid - table.energy = group['energy'].value - - # Read reaction data - n_reaction = group.attrs['n_reaction'] - - # Write reaction data - for i in range(n_reaction): - rx_group = group['reaction_{}'.format(i)] - rx = Reaction.from_hdf5(rx_group, table) - table.reactions[rx.MT] = rx - - # Read total nu data if available - if 'total_nu' in rx_group: - tgroup = rx_group['total_nu'] - rx.derived_products = [Product.from_hdf5(tgroup)] - - # Read unresolved resonance probability tables - if 'urr' in group: - urr_group = group['urr'] - table.urr = ProbabilityTables.from_hdf5(urr_group) - - return table - - -class SabTable(Table): - """A SabTable object contains thermal scattering data as represented by - an S(alpha, beta) table. - - Parameters - ---------- - name : str - ZAID identifier of the table, e.g. lwtr.10t. - atomic_weight_ratio : float - Atomic mass ratio of the target nuclide. - temperature : float - Temperature of the target nuclide in eV. - - Attributes - ---------- - atomic_weight_ratio : float - Atomic mass ratio of the target nuclide. - elastic_xs : openmc.data.Tabulated1D or openmc.data.CoherentElastic - Elastic scattering cross section derived in the coherent or incoherent - approximation - inelastic_xs : openmc.data.Tabulated1D - Inelastic scattering cross section derived in the incoherent - approximation - name : str - ZAID identifier of the table, e.g. 92235.70c. - temperature : float - Temperature of the target nuclide in eV. - - """ - - def __init__(self, name, atomic_weight_ratio, temperature): - super(SabTable, self).__init__(name, atomic_weight_ratio, temperature) - self.elastic_xs = None - self.elastic_mu_out = None - - self.inelastic_xs = None - self.inelastic_e_out = None - self.inelastic_mu_out = None - self.secondary_mode = None - - def __repr__(self): - if hasattr(self, 'name'): - return "".format(self.name) - else: - return "" - - def _read_all(self): - self._read_itie() - self._read_itce() - self._read_itxe() - self._read_itca() - - def _read_itie(self): - """Read energy-dependent inelastic scattering cross sections. - """ - idx = self._jxs[1] - n_energies = int(self._xss[idx]) - energy = self._xss[idx+1 : idx+1+n_energies] - xs = self._xss[idx+1+n_energies : idx+1+2*n_energies] - self.inelastic_xs = Tabulated1D(energy, xs) - - def _read_itce(self): - """Read energy-dependent elastic scattering cross sections. - """ - # Determine if ITCE block exists - idx = self._jxs[4] - if idx == 0: - return - - # Read values - n_energies = int(self._xss[idx]) - energy = self._xss[idx+1 : idx+1+n_energies] - P = self._xss[idx+1+n_energies : idx+1+2*n_energies] - - if self._nxs[5] == 4: - self.elastic_xs = CoherentElastic(energy, P) - else: - self.elastic_xs = Tabulated1D(energy, P) - - def _read_itxe(self): - """Read coupled energy/angle distributions for inelastic scattering. - """ - # Determine number of energies and angles - NE_in = len(self.inelastic_xs) - NE_out = self._nxs[4] - - if self._nxs[7] == 0: - self.secondary_mode = 'equal' - elif self._nxs[7] == 1: - self.secondary_mode = 'skewed' - elif self._nxs[7] == 2: - self.secondary_mode = 'continuous' - - if self.secondary_mode in ('equal', 'skewed'): - NMU = self._nxs[3] - idx = self._jxs[3] - self.inelastic_e_out = self._xss[idx:idx+NE_in*NE_out*(NMU+2):NMU+2] - self.inelastic_e_out.shape = (NE_in, NE_out) - - self.inelastic_mu_out = self._xss[idx:idx+NE_in*NE_out*(NMU+2)] - self.inelastic_mu_out.shape = (NE_in, NE_out, NMU+2) - self.inelastic_mu_out = self.inelastic_mu_out[:, :, 1:] - else: - NMU = self._nxs[3] - 1 - idx = self._jxs[3] - locc = self._xss[idx:idx + NE_in].astype(int) - NE_out = self._xss[idx + NE_in:idx + 2*NE_in].astype(int) - energy_out = [] - mu_out = [] - for i in range(NE_in): - idx = locc[i] - - # Outgoing energy distribution for incoming energy i - e = self._xss[idx + 1:idx + 1 + NE_out[i]*(NMU + 3):NMU + 3] - p = self._xss[idx + 2:idx + 2 + NE_out[i]*(NMU + 3):NMU + 3] - c = self._xss[idx + 3:idx + 3 + NE_out[i]*(NMU + 3):NMU + 3] - eout_i = Tabular(e, p, 'linear-linear', ignore_negative=True) - eout_i.c = c - - # Outgoing angle distribution for each (incoming, outgoing) energy pair - mu_i = [] - for j in range(NE_out[i]): - mu = self._xss[idx + 4:idx + 4 + NMU] - p_mu = 1./NMU*np.ones(NMU) - mu_ij = Discrete(mu, p_mu) - mu_ij.c = np.cumsum(p_mu) - mu_i.append(mu_ij) - idx += 3 + NMU - - energy_out.append(eout_i) - mu_out.append(mu_i) - - # Create correlated angle-energy distribution - breakpoints = [NE_in] - interpolation = [2] - energy = self.inelastic_xs.x - self.inelastic_dist = CorrelatedAngleEnergy( - breakpoints, interpolation, energy, energy_out, mu_out) - - def _read_itca(self): - """Read angular distributions for elastic scattering. - """ - NMU = self._nxs[6] - if self._jxs[4] == 0 or NMU == -1: - return - idx = self._jxs[6] - - NE = len(self.elastic_xs) - self.elastic_mu_out = self._xss[idx:idx+NE*NMU] - self.elastic_mu_out.shape = (NE, NMU) - - def export_to_hdf5(self, path, name): - """Export table to an HDF5 file. - - Parameters - ---------- - path : str - Path to write HDF5 file to - name : str - Name of compound (used as first group in HDF5 file) - - """ - - f = h5py.File(path, 'a') - - # Write basic data - g = f.create_group('{}.{}'.format(name, self.name.split('.')[1])) - g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio - g.attrs['temperature'] = self.temperature - g.attrs['zaids'] = self.zaids - - # Write thermal elastic scattering - if self.elastic_xs is not None: - elastic_group = g.create_group('elastic') - self.elastic_xs.to_hdf5(elastic_group, 'xs') - if self.elastic_mu_out is not None: - elastic_group.create_dataset('mu_out', data=self.elastic_mu_out) - - # Write thermal inelastic scattering - if self.inelastic_xs is not None: - inelastic_group = g.create_group('inelastic') - self.inelastic_xs.to_hdf5(inelastic_group, 'xs') - inelastic_group.attrs['secondary_mode'] = np.string_(self.secondary_mode) - if self.secondary_mode in ('equal', 'skewed'): - inelastic_group.create_dataset('energy_out', data=self.inelastic_e_out) - inelastic_group.create_dataset('mu_out', data=self.inelastic_mu_out) - elif self.secondary_mode == 'continuous': - self.inelastic_dist.to_hdf5(inelastic_group) - - @classmethod - def from_hdf5(self, group): - """Generate thermal scattering data from HDF5 group - - Parameters - ---------- - group : h5py.Group - HDF5 group to read from - - Returns - ------- - openmc.data.SabTable - Neutron thermal scattering data - - """ - name = group.name[1:] - atomic_weight_ratio = group.attrs['atomic_weight_ratio'] - temperature = group.attrs['temperature'] - table = SabTable(name, atomic_weight_ratio, temperature) - table.zaids = group.attrs['zaids'] - - # Read thermal elastic scattering - if 'elastic' in group: - elastic_group = group['elastic'] - - # Cross section - elastic_xs_type = elastic_group['xs'].attrs['type'].decode() - if elastic_xs_type == 'tab1': - table.elastic_xs = Tabulated1D.from_hdf5(elastic_group['xs']) - elif elastic_xs_type == 'bragg': - table.elastic_xs = CoherentElastic.from_hdf5(elastic_group['xs']) - - # Angular distribution - if 'mu_out' in elastic_group: - table.elastic_mu_out = elastic_group['mu_out'].value - - # Read thermal inelastic scattering - if 'inelastic' in group: - inelastic_group = group['inelastic'] - table.secondary_mode = inelastic_group.attrs['secondary_mode'].decode() - table.inelastic_xs = Tabulated1D.from_hdf5(inelastic_group['xs']) - if table.secondary_mode in ('equal', 'skewed'): - table.inelastic_e_out = inelastic_group['energy_out'] - table.inelastic_mu_out = inelastic_group['mu_out'] - elif table.secondary_mode == 'continuous': - table.inelastic_dist = AngleEnergy.from_hdf5(inelastic_group) - - return table - - -class Reaction(object): - """Reaction(MT, table=None) - - A Reaction object represents a single reaction channel for a nuclide with - an associated cross section and, if present, a secondary angle and energy - distribution. These objects are stored within the ``reactions`` attribute on - subclasses of Table, e.g. NeutronTable. - - Parameters - ---------- - MT : int - The ENDF MT number for this reaction. On occasion, MCNP uses MT numbers - that don't correspond exactly to the ENDF specification. - table : openmc.data.ace.Table - The ACE table which contains this reaction. This is useful if data on - the parent nuclide is needed (for instance, the energy grid at which - cross sections are tabulated) - - Attributes - ---------- - center_of_mass : bool - Indicates whether scattering kinematics should be performed in the - center-of-mass or laboratory reference frame. - grid above the threshold value in barns. - MT : int - The ENDF MT number for this reaction. - Q_value : float - The Q-value of this reaction in MeV. - table : openmc.data.ace.Table - The ACE table which contains this reaction. - threshold : float - Threshold of the reaction in MeV - threshold_idx : int - The index on the energy grid corresponding to the threshold of this - reaction. - xs : openmc.data.Tabulated1D - Microscopic cross section for this reaction as a function of incident - energy - products : Iterable of openmc.data.Product - Reaction products - - """ - - def __init__(self, MT, table=None): - self.center_of_mass = True - self.table = table - self.MT = MT - self.Q_value = 0. - self.threshold_idx = 0 - self._xs = None - self.products = [] - - def __repr__(self): - if self.MT in reaction_name: - return "".format(self.MT, reaction_name[self.MT]) - else: - return "".format(self.MT) - - @property - def center_of_mass(self): - return self._center_of_mass - - @property - def products(self): - return self._products - - @property - def threshold(self): - return self.xs.x[0] - - @property - def xs(self): - return self._xs - - @center_of_mass.setter - def center_of_mass(self, center_of_mass): - cv.check_type('center of mass', center_of_mass, (bool, np.bool_)) - self._center_of_mass = center_of_mass - - @products.setter - def products(self, products): - cv.check_type('reaction products', products, Iterable, Product) - self._products = products - - @xs.setter - def xs(self, xs): - cv.check_type('reaction cross section', xs, Tabulated1D) - for y in xs.y: - cv.check_greater_than('reaction cross section', y, 0.0, True) - self._xs = xs - - def to_hdf5(self, group): - """Write reaction to an HDF5 group - - Parameters - ---------- - group : h5py.Group - HDF5 group to write to - - """ - - group.attrs['MT'] = self.MT - if self.MT in reaction_name: - group.attrs['label'] = np.string_(reaction_name[self.MT]) - else: - group.attrs['label'] = np.string_(self.MT) - group.attrs['Q_value'] = self.Q_value - group.attrs['threshold_idx'] = self.threshold_idx + 1 - group.attrs['center_of_mass'] = 1 if self.center_of_mass else 0 - group.attrs['n_product'] = len(self.products) - if self.xs is not None: - group.create_dataset('xs', data=self.xs.y) - for i, p in enumerate(self.products): - pgroup = group.create_group('product_{}'.format(i)) - p.to_hdf5(pgroup) - - @classmethod - def from_hdf5(cls, group, table): - """Generate reaction from an HDF5 group - - Parameters - ---------- - group : h5py.Group - HDF5 group to write to - - Returns - ------- - openmc.data.ace.Reaction - Reaction data - - """ - MT = group.attrs['MT'] - rxn = cls(MT) - rxn.table = table - rxn.Q_value = group.attrs['Q_value'] - rxn.threshold_idx = group.attrs['threshold_idx'] - 1 - rxn.center_of_mass = bool(group.attrs['center_of_mass']) - - # Read cross section - if 'xs' in group: - xs = group['xs'].value - rxn.xs = Tabulated1D(table.energy, xs) - - # Read reaction products - n_product = group.attrs['n_product'] - products = [] - for i in range(n_product): - pgroup = group['product_{}'.format(i)] - products.append(Product.from_hdf5(pgroup)) - rxn.products = products - - return rxn - - -table_types = { - "c": NeutronTable, - "t": SabTable} + return "".format(self.name) diff --git a/openmc/data/angle_distribution.py b/openmc/data/angle_distribution.py index 5f19450bc7..3f086a99cc 100644 --- a/openmc/data/angle_distribution.py +++ b/openmc/data/angle_distribution.py @@ -4,7 +4,7 @@ from numbers import Real import numpy as np import openmc.checkvalue as cv -from openmc.stats import Univariate, Tabular +from openmc.stats import Univariate, Tabular, Uniform from .container import interpolation_scheme @@ -132,3 +132,69 @@ class AngleDistribution(object): mu.append(mu_i) return cls(energy, mu) + + @classmethod + def from_ace(cls, ace, location_dist, location_start): + """Generate an angular distribution from ACE data + + Parameters + ---------- + ace : openmc.data.ace.Table + ACE table to read from + location_dist : int + Index in the XSS array corresponding to the start of a block, + e.g. JXS(9). + location_start : int + Index in the XSS array corresponding to the start of an angle + distribution array + + Returns + ------- + openmc.data.AngleDistribution + Angular distribution + + """ + # Set starting index for angle distribution + idx = location_dist + location_start - 1 + + # Number of energies at which angular distributions are tabulated + n_energies = int(ace.xss[idx]) + idx += 1 + + # Incoming energy grid + energy = ace.xss[idx:idx + n_energies] + idx += n_energies + + # Read locations for angular distributions + lc = ace.xss[idx:idx + n_energies].astype(int) + idx += n_energies + + mu = [] + for i in range(n_energies): + if lc[i] > 0: + # Equiprobable 32 bin distribution + idx = location_dist + abs(lc[i]) - 1 + cos = ace.xss[idx:idx + 33] + pdf = np.zeros(33) + pdf[:32] = 1.0/(32.0*np.diff(cos)) + cdf = np.linspace(0.0, 1.0, 33) + + mu_i = Tabular(cos, pdf, 'histogram', ignore_negative=True) + mu_i.c = cdf + elif lc[i] < 0: + # Tabular angular distribution + idx = location_dist + abs(lc[i]) - 1 + intt = int(ace.xss[idx]) + n_points = int(ace.xss[idx + 1]) + data = ace.xss[idx + 2:idx + 2 + 3*n_points] + data.shape = (3, n_points) + + mu_i = Tabular(data[0], data[1], interpolation_scheme[intt]) + mu_i.c = data[2] + else: + # Isotropic angular distribution + mu_i = Uniform(-1., 1.) + + mu.append(mu_i) + + return cls(energy, mu) diff --git a/openmc/data/angle_energy.py b/openmc/data/angle_energy.py index fc17d7bece..ff9f41a441 100644 --- a/openmc/data/angle_energy.py +++ b/openmc/data/angle_energy.py @@ -38,3 +38,73 @@ class AngleEnergy(object): return openmc.data.KalbachMann.from_hdf5(group) elif dist_type == 'nbody': return openmc.data.NBodyPhaseSpace.from_hdf5(group) + + @staticmethod + def from_ace(ace, location_dist, location_start, rx=None): + """Generate an AngleEnergy object from ACE data + + Parameters + ---------- + ace : openmc.data.ace.Table + ACE table to read from + location_dist : int + Index in the XSS array corresponding to the start of a block, + e.g. JXS(11) for the the DLW block. + location_start : int + Index in the XSS array corresponding to the start of an energy + distribution array + rx : Reaction + Reaction this energy distribution will be associated with + + Returns + ------- + distribution : openmc.data.AngleEnergy + Secondary angle-energy distribution + + """ + # Set starting index for energy distribution + idx = location_dist + location_start - 1 + + law = int(ace.xss[idx + 1]) + location_data = int(ace.xss[idx + 2]) + + # Position index for reading law data + idx = location_dist + location_data - 1 + + # Parse energy distribution data + if law == 2: + distribution = openmc.data.UncorrelatedAngleEnergy() + distribution.energy = openmc.data.DiscretePhoton.from_ace(ace, idx) + elif law in (3, 33): + distribution = openmc.data.UncorrelatedAngleEnergy() + distribution.energy = openmc.data.LevelInelastic.from_ace(ace, idx) + elif law == 4: + distribution = openmc.data.UncorrelatedAngleEnergy() + distribution.energy = openmc.data.ContinuousTabular.from_ace( + ace, idx, location_dist) + elif law == 5: + distribution = openmc.data.UncorrelatedAngleEnergy() + distribution.energy = openmc.data.GeneralEvaporation.from_ace(ace, idx) + elif law == 7: + distribution = openmc.data.UncorrelatedAngleEnergy() + distribution.energy = openmc.data.MaxwellEnergy.from_ace(ace, idx) + elif law == 9: + distribution = openmc.data.UncorrelatedAngleEnergy() + distribution.energy = openmc.data.Evaporation.from_ace(ace, idx) + elif law == 11: + distribution = openmc.data.UncorrelatedAngleEnergy() + distribution.energy = openmc.data.WattEnergy.from_ace(ace, idx) + elif law == 44: + distribution = openmc.data.KalbachMann.from_ace( + ace, idx, location_dist) + elif law == 61: + distribution = openmc.data.CorrelatedAngleEnergy.from_ace( + ace, idx, location_dist) + elif law == 66: + distribution = openmc.data.NBodyPhaseSpace.from_ace( + ace, idx, rx.q_value) + else: + raise IOError("Unsupported ACE secondary energy " + "distribution law {0}".format(law)) + + return distribution diff --git a/openmc/data/container.py b/openmc/data/container.py index 4bd293c365..b2b323ddd0 100644 --- a/openmc/data/container.py +++ b/openmc/data/container.py @@ -267,3 +267,42 @@ class Tabulated1D(object): breakpoints = dataset.attrs['breakpoints'] interpolation = dataset.attrs['interpolation'] return cls(x, y, breakpoints, interpolation) + + @classmethod + def from_ace(cls, ace, idx=0): + """Create a Tabulated1D object from an ACE table. + + Parameters + ---------- + ace : openmc.data.ace.Table + An ACE table + idx : int + Offset to read from in XSS array (default of zero) + + Returns + ------- + openmc.data.Tabulated1D + Tabulated data object + + """ + + # Get number of regions and pairs + n_regions = int(ace.xss[idx]) + n_pairs = int(ace.xss[idx + 1 + 2*n_regions]) + + # Get interpolation information + idx += 1 + if n_regions > 0: + breakpoints = ace.xss[idx:idx + n_regions].astype(int) + interpolation = ace.xss[idx + n_regions:idx + 2*n_regions].astype(int) + else: + # 0 regions implies linear-linear interpolation by default + breakpoints = np.array([n_pairs]) + interpolation = np.array([2]) + + # Get (x,y) pairs + idx += 2*n_regions + 1 + x = ace.xss[idx:idx + n_pairs] + y = ace.xss[idx + n_pairs:idx + 2*n_pairs] + + return Tabulated1D(x, y, breakpoints, interpolation) diff --git a/openmc/data/correlated.py b/openmc/data/correlated.py index 58a90da9d6..f82a28b75a 100644 --- a/openmc/data/correlated.py +++ b/openmc/data/correlated.py @@ -203,8 +203,8 @@ class CorrelatedAngleEnergy(AngleEnergy): """ interp_data = group['energy'].attrs['interpolation'] - energy_breakpoints = interp_data[0,:] - energy_interpolation = interp_data[1,:] + energy_breakpoints = interp_data[0, :] + energy_interpolation = interp_data[1, :] energy = group['energy'].value offsets = group['energy_out'].attrs['offsets'] @@ -289,3 +289,116 @@ class CorrelatedAngleEnergy(AngleEnergy): return cls(energy_breakpoints, energy_interpolation, energy, energy_out, mu) + + @classmethod + def from_ace(cls, ace, idx, ldis): + """Generate correlated angle-energy distribution from ACE data + + Parameters + ---------- + ace : openmc.data.ace.Table + ACE table to read from + idx : int + Index in XSS array of the start of the energy distribution data + (LDIS + LOCC - 1) + ldis : int + Index in XSS array of the start of the energy distribution block + (e.g. JXS[11]) + + Returns + ------- + openmc.data.CorrelatedAngleEnergy + Correlated angle-energy distribution + + """ + # Read number of interpolation regions and incoming energies + n_regions = int(ace.xss[idx]) + n_energy_in = int(ace.xss[idx + 1 + 2*n_regions]) + + # Get interpolation information + idx += 1 + if n_regions > 0: + breakpoints = ace.xss[idx:idx + n_regions].astype(int) + interpolation = ace.xss[idx + n_regions:idx + 2*n_regions].astype(int) + else: + breakpoints = np.array([n_energy_in]) + interpolation = np.array([2]) + + # Incoming energies at which distributions exist + idx += 2*n_regions + 1 + energy = ace.xss[idx:idx + n_energy_in] + + # Location of distributions + idx += n_energy_in + loc_dist = ace.xss[idx:idx + n_energy_in].astype(int) + + # Initialize list of distributions + energy_out = [] + mu = [] + + # Read each outgoing energy distribution + for i in range(n_energy_in): + idx = ldis + loc_dist[i] - 1 + + # intt = interpolation scheme (1=hist, 2=lin-lin) + INTTp = int(ace.xss[idx]) + intt = INTTp % 10 + n_discrete_lines = (INTTp - intt)//10 + if intt not in (1, 2): + warn("Interpolation scheme for continuous tabular distribution " + "is not histogram or linear-linear.") + intt = 2 + + # Secondary energy distribution + n_energy_out = int(ace.xss[idx + 1]) + data = ace.xss[idx + 2:idx + 2 + 4*n_energy_out] + data.shape = (4, n_energy_out) + + # Create continuous distribution + eout_continuous = Tabular(data[0][n_discrete_lines:], + data[1][n_discrete_lines:], + interpolation_scheme[intt], + ignore_negative=True) + eout_continuous.c = data[2][n_discrete_lines:] + + # If discrete lines are present, create a mixture distribution + if n_discrete_lines > 0: + eout_discrete = Discrete(data[0][:n_discrete_lines], + data[1][:n_discrete_lines]) + eout_discrete.c = data[2][:n_discrete_lines] + if n_discrete_lines == n_energy_out: + eout_i = eout_discrete + else: + p_discrete = min(sum(eout_discrete.p), 1.0) + eout_i = Mixture([p_discrete, 1. - p_discrete], + [eout_discrete, eout_continuous]) + else: + eout_i = eout_continuous + + energy_out.append(eout_i) + + lc = data[3].astype(int) + + # Secondary angular distributions + mu_i = [] + for j in range(n_energy_out): + if lc[j] > 0: + idx = ldis + abs(lc[j]) - 1 + + intt = int(ace.xss[idx]) + n_cosine = int(ace.xss[idx + 1]) + data = ace.xss[idx + 2:idx + 2 + 3*n_cosine] + data.shape = (3, n_cosine) + + mu_ij = Tabular(data[0], data[1], interpolation_scheme[intt]) + mu_ij.c = data[2] + else: + # Isotropic distribution + mu_ij = Uniform(-1., 1.) + + mu_i.append(mu_ij) + + # Add cosine distributions for this incoming energy to list + mu.append(mu_i) + + return cls(breakpoints, interpolation, energy, energy_out, mu) diff --git a/openmc/data/energy_distribution.py b/openmc/data/energy_distribution.py index afbc390141..09b0c6ebf7 100644 --- a/openmc/data/energy_distribution.py +++ b/openmc/data/energy_distribution.py @@ -1,6 +1,7 @@ from abc import ABCMeta, abstractmethod from collections import Iterable from numbers import Integral, Real +from warnings import warn import h5py import numpy as np @@ -200,6 +201,33 @@ class MaxwellEnergy(EnergyDistribution): u = group.attrs['u'] return cls(theta, u) + @classmethod + def from_ace(cls, ace, idx=0): + """Create a Maxwell distribution from an ACE table + + Parameters + ---------- + ace : openmc.data.ace.Table + An ACE table + idx : int + Offset to read from in XSS array (default of zero) + + Returns + ------- + openmc.data.MaxwellEnergy + Maxwell distribution + + """ + # Read nuclear temperature + theta = Tabulated1D.from_ace(ace, idx) + + # Restriction energy + nr = int(ace.xss[idx]) + ne = int(ace.xss[idx + 1 + 2*nr]) + u = ace.xss[idx + 2 + 2*nr + 2*ne] + + return cls(theta, u) + class Evaporation(EnergyDistribution): r"""Evaporation spectrum represented as @@ -273,13 +301,40 @@ class Evaporation(EnergyDistribution): Returns ------- openmc.data.Evaporation - Evaporation spectrum distribution + Evaporation spectrum """ theta = Tabulated1D.from_hdf5(group['theta']) u = group.attrs['u'] return cls(theta, u) + @classmethod + def from_ace(cls, ace, idx=0): + """Create an evaporation spectrum from an ACE table + + Parameters + ---------- + ace : openmc.data.ace.Table + An ACE table + idx : int + Offset to read from in XSS array (default of zero) + + Returns + ------- + openmc.data.Evaporation + Evaporation spectrum + + """ + # Read nuclear temperature + theta = Tabulated1D.from_ace(ace, idx) + + # Restriction energy + nr = int(ace.xss[idx]) + ne = int(ace.xss[idx + 1 + 2*nr]) + u = ace.xss[idx + 2 + 2*nr + 2*ne] + + return cls(theta, u) + class WattEnergy(EnergyDistribution): r"""Energy-dependent Watt spectrum represented as @@ -375,6 +430,45 @@ class WattEnergy(EnergyDistribution): u = group.attrs['u'] return cls(a, b, u) + @classmethod + def from_ace(cls, ace, idx): + """Create a Watt fission spectrum from an ACE table + + Parameters + ---------- + ace : openmc.data.ace.Table + An ACE table + idx : int + Offset to read from in XSS array (default of zero) + + Returns + ------- + openmc.data.WattEnergy + Watt fission spectrum + + """ + # Energy-dependent a parameter + a = Tabulated1D.from_ace(ace, idx) + + # Advance index + nr = int(ace.xss[idx]) + ne = int(ace.xss[idx + 1 + 2*nr]) + idx += 2 + 2*nr + 2*ne + + # Energy-dependent b parameter + b = Tabulated1D.from_ace(ace, idx) + + # Advance index + nr = int(ace.xss[idx]) + ne = int(ace.xss[idx + 1 + 2*nr]) + idx += 2 + 2*nr + 2*ne + + # Restriction energy + u = ace.xss[idx] + + return cls(a, b, u) + + class MadlandNix(EnergyDistribution): r"""Energy-dependent fission neutron spectrum (Madland and Nix) given in ENDF MF=5, LF=12 represented as @@ -574,6 +668,27 @@ class DiscretePhoton(EnergyDistribution): awr = group.attrs['atomic_weight_ratio'] return cls(primary_flag, energy, awr) + @classmethod + def from_ace(cls, ace, idx): + """Generate discrete photon energy distribution from an ACE table + + Parameters + ---------- + ace : openmc.data.ace.Table + An ACE table + idx : int + Offset to read from in XSS array (default of zero) + + Returns + ------- + openmc.data.DiscretePhoton + Discrete photon energy distribution + + """ + primary_flag = int(ace.xss[idx]) + energy = ace.xss[idx + 1] + return cls(primary_flag, energy, ace.atomic_weight_ratio) + class LevelInelastic(EnergyDistribution): r"""Level inelastic scattering @@ -650,6 +765,26 @@ class LevelInelastic(EnergyDistribution): mass_ratio = group.attrs['mass_ratio'] return cls(threshold, mass_ratio) + @classmethod + def from_ace(cls, ace, idx): + """Generate level inelastic distribution from an ACE table + + Parameters + ---------- + ace : openmc.data.ace.Table + An ACE table + idx : int + Offset to read from in XSS array (default of zero) + + Returns + ------- + openmc.data.LevelInelastic + Level inelastic scattering distribution + + """ + threshold, mass_ratio = ace.xss[idx:idx + 2] + return cls(threshold, mass_ratio) + class ContinuousTabular(EnergyDistribution): """Continuous tabular distribution @@ -802,8 +937,8 @@ class ContinuousTabular(EnergyDistribution): """ interp_data = group['energy'].attrs['interpolation'] - energy_breakpoints = interp_data[0,:] - energy_interpolation = interp_data[1,:] + energy_breakpoints = interp_data[0, :] + energy_interpolation = interp_data[1, :] energy = group['energy'].value data = group['distribution'] @@ -848,3 +983,89 @@ class ContinuousTabular(EnergyDistribution): return cls(energy_breakpoints, energy_interpolation, energy, energy_out) + + @classmethod + def from_ace(cls, ace, idx, ldis): + """Generate continuous tabular energy distribution from ACE data + + Parameters + ---------- + ace : openmc.data.ace.Table + ACE table to read from + idx : int + Index in XSS array of the start of the energy distribution data + (LDIS + LOCC - 1) + ldis : int + Index in XSS array of the start of the energy distribution block + (e.g. JXS[11]) + + Returns + ------- + openmc.data.ContinuousTabular + Continuous tabular energy distribution + + """ + # Read number of interpolation regions and incoming energies + n_regions = int(ace.xss[idx]) + n_energy_in = int(ace.xss[idx + 1 + 2*n_regions]) + + # Get interpolation information + idx += 1 + if n_regions > 0: + breakpoints = ace.xss[idx:idx + n_regions].astype(int) + interpolation = ace.xss[idx + n_regions:idx + 2*n_regions].astype(int) + else: + breakpoints = np.array([n_energy_in]) + interpolation = np.array([2]) + + # Incoming energies at which distributions exist + idx += 2*n_regions + 1 + energy = ace.xss[idx:idx + n_energy_in] + + # Location of distributions + idx += n_energy_in + loc_dist = ace.xss[idx:idx + n_energy_in].astype(int) + + # Initialize variables + energy_out = [] + + # Read each outgoing energy distribution + for i in range(n_energy_in): + idx = ldis + loc_dist[i] - 1 + + # intt = interpolation scheme (1=hist, 2=lin-lin) + INTTp = int(ace.xss[idx]) + intt = INTTp % 10 + n_discrete_lines = (INTTp - intt)//10 + if intt not in (1, 2): + warn("Interpolation scheme for continuous tabular distribution " + "is not histogram or linear-linear.") + intt = 2 + + n_energy_out = int(ace.xss[idx + 1]) + data = ace.xss[idx + 2:idx + 2 + 3*n_energy_out] + data.shape = (3, n_energy_out) + + # Create continuous distribution + eout_continuous = Tabular(data[0][n_discrete_lines:], + data[1][n_discrete_lines:], + interpolation_scheme[intt]) + eout_continuous.c = data[2][n_discrete_lines:] + + # If discrete lines are present, create a mixture distribution + if n_discrete_lines > 0: + eout_discrete = Discrete(data[0][:n_discrete_lines], + data[1][:n_discrete_lines]) + eout_discrete.c = data[2][:n_discrete_lines] + if n_discrete_lines == n_energy_out: + eout_i = eout_discrete + else: + p_discrete = min(sum(eout_discrete.p), 1.0) + eout_i = Mixture([p_discrete, 1. - p_discrete], + [eout_discrete, eout_continuous]) + else: + eout_i = eout_continuous + + energy_out.append(eout_i) + + return cls(breakpoints, interpolation, energy, energy_out) diff --git a/openmc/data/kalbach_mann.py b/openmc/data/kalbach_mann.py index a8fc8d4c68..7899ae2a6a 100644 --- a/openmc/data/kalbach_mann.py +++ b/openmc/data/kalbach_mann.py @@ -197,8 +197,8 @@ class KalbachMann(AngleEnergy): """ interp_data = group['energy'].attrs['interpolation'] - energy_breakpoints = interp_data[0,:] - energy_interpolation = interp_data[1,:] + energy_breakpoints = interp_data[0, :] + energy_interpolation = interp_data[1, :] energy = group['energy'].value data = group['distribution'] @@ -251,3 +251,93 @@ class KalbachMann(AngleEnergy): return cls(energy_breakpoints, energy_interpolation, energy, energy_out, precompound, slope) + + @classmethod + def from_ace(cls, ace, idx, ldis): + """Generate Kalbach-Mann energy-angle distribution from ACE data + + Parameters + ---------- + ace : openmc.data.ace.Table + ACE table to read from + idx : int + Index in XSS array of the start of the energy distribution data + (LDIS + LOCC - 1) + ldis : int + Index in XSS array of the start of the energy distribution block + (e.g. JXS[11]) + + Returns + ------- + openmc.data.KalbachMann + Kalbach-Mann energy-angle distribution + + """ + # Read number of interpolation regions and incoming energies + n_regions = int(ace.xss[idx]) + n_energy_in = int(ace.xss[idx + 1 + 2*n_regions]) + + # Get interpolation information + idx += 1 + if n_regions > 0: + breakpoints = ace.xss[idx:idx + n_regions].astype(int) + interpolation = ace.xss[idx + n_regions:idx + 2*n_regions].astype(int) + else: + breakpoints = np.array([n_energy_in]) + interpolation = np.array([2]) + + # Incoming energies at which distributions exist + idx += 2*n_regions + 1 + energy = ace.xss[idx:idx + n_energy_in] + + # Location of distributions + idx += n_energy_in + loc_dist = ace.xss[idx:idx + n_energy_in].astype(int) + + # Initialize variables + energy_out = [] + km_r = [] + km_a = [] + + # Read each outgoing energy distribution + for i in range(n_energy_in): + idx = ldis + loc_dist[i] - 1 + + # intt = interpolation scheme (1=hist, 2=lin-lin) + INTTp = int(ace.xss[idx]) + intt = INTTp % 10 + n_discrete_lines = (INTTp - intt)//10 + if intt not in (1, 2): + warn("Interpolation scheme for continuous tabular distribution " + "is not histogram or linear-linear.") + intt = 2 + + n_energy_out = int(ace.xss[idx + 1]) + data = ace.xss[idx + 2:idx + 2 + 5*n_energy_out] + data.shape = (5, n_energy_out) + + # Create continuous distribution + eout_continuous = Tabular(data[0][n_discrete_lines:], + data[1][n_discrete_lines:], + interpolation_scheme[intt]) + eout_continuous.c = data[2][n_discrete_lines:] + + # If discrete lines are present, create a mixture distribution + if n_discrete_lines > 0: + eout_discrete = Discrete(data[0][:n_discrete_lines], + data[1][:n_discrete_lines]) + eout_discrete.c = data[2][:n_discrete_lines] + if n_discrete_lines == n_energy_out: + eout_i = eout_discrete + else: + p_discrete = min(sum(eout_discrete.p), 1.0) + eout_i = Mixture([p_discrete, 1. - p_discrete], + [eout_discrete, eout_continuous]) + else: + eout_i = eout_continuous + + energy_out.append(eout_i) + km_r.append(Tabulated1D(data[0], data[3])) + km_a.append(Tabulated1D(data[0], data[4])) + + return cls(breakpoints, interpolation, energy, energy_out, km_r, km_a) diff --git a/openmc/data/library.py b/openmc/data/library.py new file mode 100644 index 0000000000..58f32609ea --- /dev/null +++ b/openmc/data/library.py @@ -0,0 +1,47 @@ +import os +import xml.etree.ElementTree as ET + +import h5py + +from openmc.clean_xml import clean_xml_indentation + +class DataLibrary(object): + def __init__(self): + self.libraries = [] + + def register_file(self, filename, filetype='neutron'): + h5file = h5py.File(filename, 'r') + + materials = [] + for name, group in h5file.items(): + materials.append(name) + + library = {'path': filename, 'type': filetype, 'materials': materials} + self.libraries.append(library) + + def export_to_xml(self, path='cross_sections.xml'): + root = ET.Element('cross_sections') + + # Determine common directory for library paths + common_dir = os.path.commonpath([lib['path'] for lib in self.libraries]) + if common_dir == '': + common_dir = '.' + + directory = os.path.relpath(common_dir, os.path.dirname(path)) + if directory != '.': + dir_element = ET.SubElement(root, "directory") + dir_element.text = directory + + for library in self.libraries: + lib_element = ET.SubElement(root, "library") + lib_element.set('materials', ' '.join(library['materials'])) + lib_element.set('path', os.path.relpath(library['path'], common_dir)) + lib_element.set('type', library['type']) + + # Clean the indentation to be user-readable + clean_xml_indentation(root) + + # Write XML file + tree = ET.ElementTree(root) + tree.write(path, xml_declaration=True, encoding='utf-8', + method='xml') diff --git a/openmc/data/nbody.py b/openmc/data/nbody.py index 4fa3d05b21..a34380dc93 100644 --- a/openmc/data/nbody.py +++ b/openmc/data/nbody.py @@ -116,3 +116,27 @@ class NBodyPhaseSpace(AngleEnergy): awr = group.attrs['atomic_weight_ratio'] q_value = group.attrs['q_value'] return cls(total_mass, n_particles, awr, q_value) + + @classmethod + def from_ace(cls, ace, idx, q_value): + """Generate N-body phase space distribution from ACE data + + Parameters + ---------- + ace : openmc.data.ace.Table + ACE table to read from + idx : int + Index in XSS array of the start of the energy distribution data + (LDIS + LOCC - 1) + q_value : float + Q-value for reaction in MeV + + Returns + ------- + openmc.data.NBodyPhaseSpace + N-body phase space distribution + + """ + n_particles = int(ace.xss[idx]) + total_mass = ace.xss[idx + 1] + return cls(total_mass, n_particles, ace.atomic_weight_ratio, q_value) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py new file mode 100644 index 0000000000..ad5e370f1e --- /dev/null +++ b/openmc/data/neutron.py @@ -0,0 +1,405 @@ +from __future__ import division, unicode_literals +import io +import sys +from warnings import warn +from collections import OrderedDict, Iterable, Mapping +from copy import deepcopy +from numbers import Integral, Real +import sys + +import numpy as np +from numpy.polynomial import Polynomial +import h5py + +from . import atomic_number, atomic_symbol +from .ace import Table, get_table +from .container import Tabulated1D +from .energy_distribution import * +from .product import Product +from .reaction import Reaction, _get_photon_products +from .thermal import CoherentElastic +from .urr import ProbabilityTables +from openmc.stats import Tabular, Discrete, Uniform, Mixture +import openmc.checkvalue as cv + +if sys.version_info[0] >= 3: + basestring = str + + +class IncidentNeutron(object): + """Continuous-energy neutron interaction data. + + Instances of this class are not normally instantiated by the user but rather + created using the factory methods :meth:`IncidentNeutron.from_hdf5` and + :meth:`IncidentNeutron.from_ace`. + + Parameters + ---------- + name : str + Name of the table + atomic_number : int + Number of protons in the nucleus + mass_number : int + Number of nucleons in the nucleus + metastable : int + Metastable state of the nucleus. A value of zero indicates ground state. + atomic_weight_ratio : float + Atomic mass ratio of the target nuclide. + temperature : float + Temperature of the target nuclide in eV. + + Attributes + ---------- + atomic_number : int + Number of protons in the nucleus + atomic_symbol : str + Atomic symbol of the nuclide, e.g., 'Zr' + atomic_weight_ratio : float + Atomic weight ratio of the target nuclide. + energy : numpy.ndarray + The energy values (MeV) at which reaction cross-sections are tabulated. + mass_number : int + Number of nucleons in the nucleus + metastable : int + Metastable state of the nucleus. A value of zero indicates ground state. + name : str + ZAID identifier of the table, e.g. 92235.70c. + reactions : collections.OrderedDict + Contains the cross sections, secondary angle and energy distributions, + and other associated data for each reaction. The keys are the MT values + and the values are Reaction objects. + summed_reactions : collections.OrderedDict + Contains summed cross sections, e.g., the total cross section. The keys + are the MT values and the values are Reaction objects. + temperature : float + Temperature of the target nuclide in eV. + urr : None or openmc.data.ProbabilityTables + Unresolved resonance region probability tables + + """ + + def __init__(self, name, atomic_number, mass_number, metastable, + atomic_weight_ratio, temperature): + self.name = name + self.atomic_number = atomic_number + self.mass_number = mass_number + self.metastable = metastable + self.atomic_weight_ratio = atomic_weight_ratio + self.temperature = temperature + + self._energy = None + self.reactions = OrderedDict() + self.summed_reactions = OrderedDict() + self.urr = None + + def __repr__(self): + return "".format(self.name) + + def __iter__(self): + return iter(self.reactions.values()) + + @property + def name(self): + return self._name + + @property + def atomic_number(self): + return self._atomic_number + + @property + def mass_number(self): + return self._mass_number + + @property + def metastable(self): + return self._metastable + + @property + def atomic_weight_ratio(self): + return self._atomic_weight_ratio + + @property + def energy(self): + return self._energy + + @property + def temperature(self): + return self._temperature + + @property + def reactions(self): + return self._reactions + + @property + def summed_reactions(self): + return self._summed_reactions + + @property + def urr(self): + return self._urr + + @name.setter + def name(self, name): + cv.check_type('name', name, basestring) + self._name = name + + @property + def atomic_symbol(self): + return atomic_symbol[self.atomic_number] + + @atomic_number.setter + def atomic_number(self, atomic_number): + cv.check_type('atomic number', atomic_number, Integral) + cv.check_greater_than('atomic number', atomic_number, 0) + self._atomic_number = atomic_number + + @mass_number.setter + def mass_number(self, mass_number): + cv.check_type('mass number', mass_number, Integral) + cv.check_greater_than('mass number', mass_number, 0, True) + self._mass_number = mass_number + + @metastable.setter + def metastable(self, metastable): + cv.check_type('metastable', metastable, Integral) + cv.check_greater_than('metastable', metastable, 0, True) + self._metastable = metastable + + @atomic_weight_ratio.setter + def atomic_weight_ratio(self, atomic_weight_ratio): + cv.check_type('atomic weight ratio', atomic_weight_ratio, Real) + cv.check_greater_than('atomic weight ratio', atomic_weight_ratio, 0.0) + self._atomic_weight_ratio = atomic_weight_ratio + + @temperature.setter + def temperature(self, temperature): + cv.check_type('temperature', temperature, Real) + cv.check_greater_than('temperature', temperature, 0.0) + self._temperature = temperature + + @energy.setter + def energy(self, energy): + cv.check_type('energy grid', energy, Iterable, Real) + self._energy = energy + + @reactions.setter + def reactions(self, reactions): + cv.check_type('reactions', reactions, Mapping) + self._reactions = reactions + + @summed_reactions.setter + def summed_reactions(self, summed_reactions): + cv.check_type('summed reactions', summed_reactions, Mapping) + self._summed_reactions = summed_reactions + + @urr.setter + def urr(self, urr): + cv.check_type('probability tables', urr, + (ProbabilityTables, type(None))) + self._urr = urr + + def export_to_hdf5(self, path, mode='a'): + """Export table to an HDF5 file. + + Parameters + ---------- + path : str + Path to write HDF5 file to + mode : {'r', r+', 'w', 'x', 'a'} + Mode that is used to open the HDF5 file. This is the second argument + to the :class:`h5py.File` constructor. + + """ + + f = h5py.File(path, mode) + + # Write basic data + g = f.create_group(self.name) + g.attrs['Z'] = self.atomic_number + g.attrs['A'] = self.mass_number + g.attrs['metastable'] = self.metastable + g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio + g.attrs['temperature'] = self.temperature + g.attrs['n_reaction'] = len(self.reactions) + + # Write energy grid + g.create_dataset('energy', data=self.energy) + + # Write reaction data + for i, rx in enumerate(self.reactions.values()): + rx_group = g.create_group('reaction_{}'.format(i)) + rx.to_hdf5(rx_group) + + # Write total nu data if available + if len(rx.derived_products) > 0 and 'total_nu' not in g: + tgroup = g.create_group('total_nu') + rx.derived_products[0].to_hdf5(tgroup) + + # Write unresolved resonance probability tables + if self.urr is not None: + urr_group = g.create_group('urr') + self.urr.to_hdf5(urr_group) + + f.close() + + @classmethod + def from_hdf5(self, group_or_filename): + """Generate continuous-energy neutron interaction data from HDF5 group + + Parameters + ---------- + group_or_filename : h5py.Group or str + HDF5 group containing interaction data. If given as a string, it is + assumed to be the filename for the HDF5 file, and the first group is + used to read from. + + Returns + ------- + openmc.data.ace.IncidentNeutron + Continuous-energy neutron interaction data + + """ + if isinstance(group_or_filename, h5py.Group): + group = group_or_filename + else: + h5file = h5py.File(group_or_filename, 'r') + group = list(h5file.values())[0] + + name = group.name[1:] + atomic_number = group.attrs['Z'] + mass_number = group.attrs['A'] + metastable = group.attrs['metastable'] + atomic_weight_ratio = group.attrs['atomic_weight_ratio'] + temperature = group.attrs['temperature'] + + data = IncidentNeutron(name, atomic_number, mass_number, metastable, + atomic_weight_ratio, temperature) + + # Read energy grid + data.energy = group['energy'].value + + # Read reaction data + n_reaction = group.attrs['n_reaction'] + + # Write reaction data + for i in range(n_reaction): + rx_group = group['reaction_{}'.format(i)] + rx = Reaction.from_hdf5(rx_group, data.energy) + data.reactions[rx.mt] = rx + + # Read total nu data if available + if 'total_nu' in rx_group: + tgroup = rx_group['total_nu'] + rx.derived_products = [Product.from_hdf5(tgroup)] + + # Read unresolved resonance probability tables + if 'urr' in group: + urr_group = group['urr'] + data.urr = ProbabilityTables.from_hdf5(urr_group) + + return data + + @classmethod + def from_ace(cls, ace_or_filename, metastable_scheme='nndc'): + """Generate incident neutron continuous-energy data from an ACE table + + Parameters + ---------- + ace : openmc.data.ace.Table or str + ACE table to read from. If given as a string, it is assumed to be + the filename for the ACE file. + metastable_scheme : {'nndc', 'mcnp'} + Determine how ZAID identifiers are to be interpreted in the case of + a metastable nuclide. Because the normal ZAID (=1000*Z + A) does not + encode metastable information, different conventions are used among + different libraries. In MCNP libraries, the convention is to add 400 + for a metastable nuclide except for Am242m, for which 95242 is + metastable and 95642 (or 1095242 in newer libraries) is the ground + state. For NNDC libraries, ZAID is given as 1000*Z + A + 100*m. + + Returns + ------- + openmc.data.IncidentNeutron + Incident neutron continuous-energy data + + """ + if isinstance(ace_or_filename, Table): + ace = ace_or_filename + else: + ace = get_table(ace_or_filename) + + # If mass number hasn't been specified, make an educated guess + zaid, xs = ace.name.split('.') + zaid = int(zaid) + Z = zaid // 1000 + mass_number = zaid % 1000 + + if metastable_scheme == 'mcnp': + if zaid > 1000000: + # New SZA format + Z = Z % 1000 + if zaid == 1095242: + metastable = 0 + else: + metastable = zaid // 1000000 + else: + if zaid == 95242: + metastable = 1 + elif zaid == 95642: + metastable = 0 + else: + metastable = 1 if mass_number > 300 else 0 + elif metastable_scheme == 'nndc': + metastable = 1 if mass_number > 300 else 0 + + while mass_number > 3*Z: + mass_number -= 100 + + # Determine name for group + element = atomic_symbol[Z] + if metastable > 0: + name = '{}{}_m{}.{}'.format(element, mass_number, metastable, xs) + else: + name = '{}{}.{}'.format(element, mass_number, xs) + + data = IncidentNeutron(name, Z, mass_number, metastable, + ace.atomic_weight_ratio, ace.temperature) + + # Read energy grid + n_energy = ace.nxs[3] + energy = ace.xss[ace.jxs[1]:ace.jxs[1] + n_energy] + data.energy = energy + total_xs = ace.xss[ace.jxs[1] + n_energy:ace.jxs[1] + 2*n_energy] + absorption_xs = ace.xss[ace.jxs[1] + 2*n_energy:ace.jxs[1] + 3*n_energy] + + # Create summed reactions (total and absorption) + total = Reaction(1) + total.xs = Tabulated1D(energy, total_xs) + data.summed_reactions[1] = total + absorption = Reaction(27) + absorption.xs = Tabulated1D(energy, absorption_xs) + data.summed_reactions[27] = absorption + + # Read each reaction + n_reaction = ace.nxs[4] + 1 + for i in range(n_reaction): + rx = Reaction.from_ace(ace, i) + data.reactions[rx.mt] = rx + + # Some photon production reactions may be assigned to MTs that don't + # exist, usually MT=4. In this case, we create a new reaction and add + # them + n_photon_reactions = ace.nxs[6] + photon_mts = ace.xss[ace.jxs[13]:ace.jxs[13] + + n_photon_reactions].astype(int) + + for mt in np.unique(photon_mts // 1000): + if mt not in data.reactions: + rx = Reaction(mt) + rx.products += _get_photon_products(ace, mt) + data.summed_reactions[mt] = rx + + # Read unresolved resonance probability tables + data.urr = ProbabilityTables.from_ace(ace) + + return data diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py new file mode 100644 index 0000000000..40e0910baa --- /dev/null +++ b/openmc/data/reaction.py @@ -0,0 +1,512 @@ +from __future__ import division, unicode_literals +from collections import Iterable +from copy import deepcopy +from numbers import Real + +import numpy as np +from numpy.polynomial import Polynomial + +import openmc.checkvalue as cv +from openmc.stats import Uniform +from .angle_distribution import AngleDistribution +from .angle_energy import AngleEnergy +from .container import Tabulated1D +from .data import reaction_name +from .product import Product +from .uncorrelated import UncorrelatedAngleEnergy + + +def _get_fission_products(ace): + """Generate fission products from an ACE table + + Parameters + ---------- + ace : openmc.data.ace.Table + ACE table to read from + + Returns + ------- + products : list of openmc.data.Product + Prompt and delayed fission neutrons + derived_products : list of openmc.data.Product + "Total" fission neutron + + """ + # No NU block + if ace.jxs[2] == 0: + return None, None + + products = [] + derived_products = [] + + # Either prompt nu or total nu is given + if ace.xss[ace.jxs[2]] > 0: + whichnu = 'prompt' if ace.jxs[24] > 0 else 'total' + + neutron = Product('neutron') + neutron.emission_mode = whichnu + + idx = ace.jxs[2] + LNU = int(ace.xss[idx]) + if LNU == 1: + # Polynomial function form of nu + NC = int(ace.xss[idx+1]) + coefficients = ace.xss[idx+2 : idx+2+NC] + neutron.yield_ = Polynomial(coefficients) + elif LNU == 2: + # Tabular data form of nu + neutron.yield_ = Tabulated1D.from_ace(ace, idx + 1) + + products.append(neutron) + + # Both prompt nu and total nu + elif ace.xss[ace.jxs[2]] < 0: + # Read prompt neutron yield + prompt_neutron = Product('neutron') + prompt_neutron.emission_mode = 'prompt' + + idx = ace.jxs[2] + 1 + LNU = int(ace.xss[idx]) + if LNU == 1: + # Polynomial function form of nu + NC = int(ace.xss[idx+1]) + coefficients = ace.xss[idx+2 : idx+2+NC] + prompt_neutron.yield_ = Polynomial(coefficients) + elif LNU == 2: + # Tabular data form of nu + prompt_neutron.yield_ = Tabulated1D.from_ace(ace, idx + 1) + + # Read total neutron yield + total_neutron = Product('neutron') + total_neutron.emission_mode = 'total' + + idx = ace.jxs[2] + int(abs(ace.xss[ace.jxs[2]])) + 1 + LNU = int(ace.xss[idx]) + + if LNU == 1: + # Polynomial function form of nu + NC = int(ace.xss[idx+1]) + coefficients = ace.xss[idx+2 : idx+2+NC] + total_neutron.yield_ = Polynomial(coefficients) + elif LNU == 2: + # Tabular data form of nu + total_neutron.yield_ = Tabulated1D.from_ace(ace, idx + 1) + + products.append(prompt_neutron) + derived_products.append(total_neutron) + + # Check for delayed nu data + if ace.jxs[24] > 0: + yield_delayed = Tabulated1D.from_ace(ace, ace.jxs[24] + 1) + + # Delayed neutron precursor distribution + idx = ace.jxs[25] + n_group = ace.nxs[8] + total_group_probability = 0. + for i, group in enumerate(range(n_group)): + delayed_neutron = Product('neutron') + delayed_neutron.emission_mode = 'delayed' + delayed_neutron.decay_rate = ace.xss[idx] + + group_probability = Tabulated1D.from_ace(ace, idx + 1) + if np.all(group_probability.y == group_probability.y[0]): + delayed_neutron.yield_ = deepcopy(yield_delayed) + delayed_neutron.yield_.y *= group_probability.y[0] + total_group_probability += group_probability.y[0] + else: + raise NotImplementedError( + 'Delayed neutron with energy-dependent group probability') + + # Advance position + nr = int(ace.xss[idx + 1]) + ne = int(ace.xss[idx + 2 + 2*nr]) + idx += 3 + 2*nr + 2*ne + + # Energy distribution for delayed fission neutrons + location_start = int(ace.xss[ace.jxs[26] + group]) + delayed_neutron.distribution.append( + AngleEnergy.from_ace(ace, ace.jxs[27], location_start)) + + products.append(delayed_neutron) + + # Renormalize delayed neutron yields to reflect fact that in ACE + # file, the sum of the group probabilities is not exactly one + for product in products[1:]: + product.yield_.y /= total_group_probability + + return products, derived_products + + +def _get_photon_products(ace, mt): + """Generate photon products from an ACE table + + Parameters + ---------- + ace : openmc.data.ace.Table + ACE table to read from + mt : int + MT number for the desired reaction + + Returns + ------- + photons : list of openmc.Products + Photons produced from reaction with given MT + + """ + n_photon_reactions = ace.nxs[6] + photon_mts = ace.xss[ace.jxs[13]:ace.jxs[13] + + n_photon_reactions].astype(int) + + photons = [] + for i in range(n_photon_reactions): + # Determine corresponding reaction + neutron_mt = photon_mts[i] // 1000 + + # Restrict to photons that match the requested MT. Note that if the + # photon is assigned to MT=18 but the file splits fission into + # MT=19,20,21,38, we assign the photon product to each of the individual + # reactions + if neutron_mt == 18: + if mt not in (18, 19, 20, 21, 38): + continue + elif neutron_mt != mt: + continue + + # Create photon product and assign to reactions + photon = Product('photon') + + # ================================================================== + # Photon yield / production cross section + + loca = int(ace.xss[ace.jxs[14] + i]) + idx = ace.jxs[15] + loca - 1 + mftype = int(ace.xss[idx]) + idx += 1 + + if mftype in (12, 16): + # Yield data taken from ENDF File 12 or 6 + mtmult = int(ace.xss[idx]) + assert mtmult == neutron_mt + + # Read photon yield as function of energy + photon.yield_ = Tabulated1D.from_ace(ace, idx + 1) + + elif mftype == 13: + # Cross section data from ENDF File 13 + + # Energy grid index at which data starts + threshold_idx = int(ace.xss[idx]) - 1 + + # Get photon production cross section + n_energy = int(ace.xss[idx + 1]) + photon._xs = ace.xss[idx + 2:idx + 2 + n_energy] + + # Determine yield based on ratio of cross sections + energy = ace.xss[ace.jxs[1] + threshold_idx: + ace.jxs[1] + threshold_idx + n_energy] + photon.yield_ = Tabulated1D(energy, photon._xs) + + else: + raise ValueError("MFTYPE must be 12, 13, 16. Got {0}".format( + mftype)) + + # ================================================================== + # Photon energy distribution + + location_start = int(ace.xss[ace.jxs[18] + i]) + distribution = AngleEnergy.from_ace(ace, ace.jxs[19], location_start) + assert isinstance(distribution, UncorrelatedAngleEnergy) + + # ================================================================== + # Photon angular distribution + loc = int(ace.xss[ace.jxs[16] + i]) + + if loc == 0: + # No angular distribution data are given for this reaction, + # isotropic scattering is asssumed in LAB + energy = np.array([photon.yield_.x[0], photon.yield_.x[-1]]) + mu_isotropic = Uniform(-1., 1.) + distribution.angle = AngleDistribution( + energy, [mu_isotropic, mu_isotropic]) + else: + distribution.angle = AngleDistribution.from_ace(ace, ace.jxs[17], loc) + + # Add to list of distributions + photon.distribution.append(distribution) + photons.append(photon) + + return photons + + +class Reaction(object): + """A nuclear reaction + + A Reaction object represents a single reaction channel for a nuclide with + an associated cross section and, if present, a secondary angle and energy + distribution. + + Parameters + ---------- + mt : int + The ENDF MT number for this reaction. On occasion, MCNP uses MT numbers + that don't correspond exactly to the ENDF specification. + + Attributes + ---------- + center_of_mass : bool + Indicates whether scattering kinematics should be performed in the + center-of-mass or laboratory reference frame. + grid above the threshold value in barns. + mt : int + The ENDF MT number for this reaction. + q_value : float + The Q-value of this reaction in MeV. + table : openmc.data.ace.Table + The ACE table which contains this reaction. + threshold : float + Threshold of the reaction in MeV + threshold_idx : int + The index on the energy grid corresponding to the threshold of this + reaction. + xs : openmc.data.Tabulated1D + Microscopic cross section for this reaction as a function of incident + energy + products : Iterable of openmc.data.Product + Reaction products + derived_products : Iterable of openmc.data.Product + Derived reaction products. Used for 'total' fission neutron data when + prompt/delayed data also exists. + + """ + + def __init__(self, mt): + self.center_of_mass = True + self.mt = mt + self.q_value = 0. + self.threshold_idx = 0 + self._xs = None + self.products = [] + self.derived_products = [] + + def __repr__(self): + if self.mt in reaction_name: + return "".format(self.mt, reaction_name[self.mt]) + else: + return "".format(self.mt) + + @property + def center_of_mass(self): + return self._center_of_mass + + @property + def q_value(self): + return self._q_value + + @property + def products(self): + return self._products + + @property + def threshold(self): + return self.xs.x[0] + + @property + def xs(self): + return self._xs + + @center_of_mass.setter + def center_of_mass(self, center_of_mass): + cv.check_type('center of mass', center_of_mass, (bool, np.bool_)) + self._center_of_mass = center_of_mass + + @q_value.setter + def q_value(self, q_value): + cv.check_type('Q value', q_value, Real) + self._q_value = q_value + + @products.setter + def products(self, products): + cv.check_type('reaction products', products, Iterable, Product) + self._products = products + + @xs.setter + def xs(self, xs): + cv.check_type('reaction cross section', xs, Tabulated1D) + for y in xs.y: + cv.check_greater_than('reaction cross section', y, 0.0, True) + self._xs = xs + + def to_hdf5(self, group): + """Write reaction to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + group.attrs['mt'] = self.mt + if self.mt in reaction_name: + group.attrs['label'] = np.string_(reaction_name[self.mt]) + else: + group.attrs['label'] = np.string_(self.mt) + group.attrs['Q_value'] = self.q_value + group.attrs['threshold_idx'] = self.threshold_idx + 1 + group.attrs['center_of_mass'] = 1 if self.center_of_mass else 0 + group.attrs['n_product'] = len(self.products) + if self.xs is not None: + group.create_dataset('xs', data=self.xs.y) + for i, p in enumerate(self.products): + pgroup = group.create_group('product_{}'.format(i)) + p.to_hdf5(pgroup) + + @classmethod + def from_hdf5(cls, group, energy): + """Generate reaction from an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + energy : Iterable of float + Array of energies at which cross sections are tabulated at + + Returns + ------- + openmc.data.ace.Reaction + Reaction data + + """ + mt = group.attrs['mt'] + rx = cls(mt) + rx.q_value = group.attrs['Q_value'] + rx.threshold_idx = group.attrs['threshold_idx'] - 1 + rx.center_of_mass = bool(group.attrs['center_of_mass']) + + # Read cross section + if 'xs' in group: + xs = group['xs'].value + rx.xs = Tabulated1D(energy, xs) + + # Read reaction products + n_product = group.attrs['n_product'] + products = [] + for i in range(n_product): + pgroup = group['product_{}'.format(i)] + products.append(Product.from_hdf5(pgroup)) + rx.products = products + + return rx + + @classmethod + def from_ace(cls, ace, i_reaction): + # Get nuclide energy grid + n_grid = ace.nxs[3] + grid = ace.xss[ace.jxs[1]:ace.jxs[1] + n_grid] + + if i_reaction > 0: + mt = int(ace.xss[ace.jxs[3] + i_reaction - 1]) + rx = cls(mt) + + # Get Q-value of reaction + rx.q_value = ace.xss[ace.jxs[4] + i_reaction - 1] + + # ================================================================== + # CROSS SECTION + + # Get locator for cross-section data + loc = int(ace.xss[ace.jxs[6] + i_reaction - 1]) + + # Determine starting index on energy grid + rx.threshold_idx = int(ace.xss[ace.jxs[7] + loc - 1]) - 1 + + # Determine number of energies in reaction + n_energy = int(ace.xss[ace.jxs[7] + loc]) + energy = grid[rx.threshold_idx:rx.threshold_idx + n_energy] + + # Read reaction cross section + xs = ace.xss[ace.jxs[7] + loc + 1:ace.jxs[7] + loc + 1 + n_energy] + rx.xs = Tabulated1D(energy, xs) + + # ================================================================== + # YIELD AND ANGLE-ENERGY DISTRIBUTION + + # Determine multiplicity + ty = ace.xss[ace.jxs[5] + i_reaction - 1] + rx.center_of_mass = (ty < 0) + if i_reaction < ace.nxs[5] + 1: + if ty != 19: + if abs(ty) > 100: + # Energy-dependent neutron yield + idx = ace.jxs[11] + abs(ty) - 101 + yield_ = Tabulated1D.from_ace(ace, idx) + else: + yield_ = abs(ty) + + neutron = Product('neutron') + neutron.yield_ = yield_ + rx.products.append(neutron) + else: + assert mt in (18, 19, 20, 21, 38) + rx.products, rx.derived_products = _get_fission_products(ace) + + for p in rx.products: + if p.emission_mode in ('prompt', 'total'): + neutron = p + break + else: + raise Exception("Couldn't find prompt/total fission neutron") + + # Determine locator for ith energy distribution + lnw = int(ace.xss[ace.jxs[10] + i_reaction - 1]) + while lnw > 0: + # Applicability of this distribution + neutron.applicability.append(Tabulated1D.from_ace( + ace, ace.jxs[11] + lnw + 2)) + + # Read energy distribution data + neutron.distribution.append(AngleEnergy.from_ace( + ace, ace.jxs[11], lnw, rx)) + + lnw = int(ace.xss[ace.jxs[11] + lnw - 1]) + + else: + # Elastic scattering + mt = 2 + rx = cls(mt) + + elastic_xs = ace.xss[ace.jxs[1] + 3*n_grid:ace.jxs[1] + 4*n_grid] + rx.xs = Tabulated1D(grid, elastic_xs) + + # No energy distribution for elastic scattering + neutron = Product('neutron') + neutron.distribution.append(UncorrelatedAngleEnergy()) + rx.products.append(neutron) + + # ====================================================================== + # ANGLE DISTRIBUTION (FOR UNCORRELATED) + + if i_reaction < ace.nxs[5] + 1: + # Check if angular distribution data exist + loc = int(ace.xss[ace.jxs[8] + i_reaction]) + if loc <= 0: + # Angular distribution is either given as part of a product + # angle-energy distribution or is not given at all (in which + # case isotropic scattering is assumed) + angle_dist = None + else: + angle_dist = AngleDistribution.from_ace(ace, ace.jxs[9], loc) + + # Apply angular distribution to each uncorrelated angle-energy + # distribution + if angle_dist is not None: + for d in neutron.distribution: + d.angle = angle_dist + + # ====================================================================== + # PHOTON PRODUCTION + + rx.products += _get_photon_products(ace, mt) + + return rx diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 663b6472c7..63e573a010 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -1,9 +1,39 @@ from collections import Iterable +from difflib import get_close_matches from numbers import Real +from warnings import warn import numpy as np +import h5py import openmc.checkvalue as cv +from .ace import Table, get_table +from .container import Tabulated1D + + +_THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27', + 'be': 'c_Be', + 'bebeo': 'c_Be_in_BeO', 'be-o': 'c_Be_in_BeO', + 'benz': 'c_Benzine', + 'cah': 'c_Ca_in_CaH2', + 'dd2o': 'c_D_in_D2O', 'hwtr': 'c_D_in_D2O', + 'fe': 'c_Fe56', 'fe56': 'c_Fe56', + 'graph': 'c_Graphite', 'grph': 'c_Graphite', + 'hca': 'c_H_in_CaH2', + 'hch2': 'c_H_in_CH2', 'poly': 'c_H_in_CH2', + 'hh2o': 'c_H_in_H2O', 'lwtr': 'c_H_in_H2O', + 'hzrh': 'c_H_in_ZrH', 'h-zr': 'c_H_in_ZrH', + 'lch4': 'c_liquid_CH4', 'lmeth': 'c_liquid_CH4', + 'mg': 'c_Mg24', + 'obeo': 'c_O_in_BeO', 'o-be': 'c_O_in_BeO', + 'orthod': 'c_ortho_D', 'dortho': 'c_ortho_D', + 'orthoh': 'c_ortho_H', 'hortho': 'c_ortho_H', + 'ouo2': 'c_O_in_UO2', 'o2-u': 'c_O_in_UO2', + 'parad': 'c_para_D', 'dpara': 'c_para_D', + 'parah': 'c_para_H', 'hpara': 'c_para_H', + 'sch4': 'c_solid_CH4', 'smeth': 'c_solid_CH4', + 'uuo2': 'c_U_in_UO2', 'u-o2': 'c_U_in_UO2', + 'zrzrh': 'c_Zr_in_ZrH', 'zr-h': 'c_Zr_in_ZrH'} class CoherentElastic(object): @@ -87,6 +117,277 @@ class CoherentElastic(object): Coherent elastic scattering cross section """ - bragg_edges = dataset.value[0,:] - factors = dataset.value[1,:] + bragg_edges = dataset.value[0, :] + factors = dataset.value[1, :] return cls(bragg_edges, factors) + + +class ThermalScattering(object): + """A ThermalScattering object contains thermal scattering data as represented by + an S(alpha, beta) table. + + Parameters + ---------- + name : str + ZAID identifier of the table, e.g. lwtr.10t. + atomic_weight_ratio : float + Atomic mass ratio of the target nuclide. + temperature : float + Temperature of the target nuclide in eV. + + Attributes + ---------- + atomic_weight_ratio : float + Atomic mass ratio of the target nuclide. + elastic_xs : openmc.data.Tabulated1D or openmc.data.CoherentElastic + Elastic scattering cross section derived in the coherent or incoherent + approximation + inelastic_xs : openmc.data.Tabulated1D + Inelastic scattering cross section derived in the incoherent + approximation + name : str + Name of the table, e.g. lwtr.20t. + temperature : float + Temperature of the target nuclide in eV. + zaids : Iterable of int + ZAID identifiers that the thermal scattering data applies to + + """ + + def __init__(self, name, atomic_weight_ratio, temperature): + self.name = name + self.atomic_weight_ratio = atomic_weight_ratio + self.temperature = temperature + self.elastic_xs = None + self.elastic_mu_out = None + self.inelastic_xs = None + self.inelastic_e_out = None + self.inelastic_mu_out = None + self.secondary_mode = None + self.zaids = [] + + def __repr__(self): + if hasattr(self, 'name'): + return "".format(self.name) + else: + return "" + + def export_to_hdf5(self, path, mode='a'): + """Export table to an HDF5 file. + + Parameters + ---------- + path : str + Path to write HDF5 file to + mode : {'r', r+', 'w', 'x', 'a'} + Mode that is used to open the HDF5 file. This is the second argument + to the :class:`h5py.File` constructor. + + """ + + f = h5py.File(path, mode) + + # Write basic data + g = f.create_group(self.name) + g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio + g.attrs['temperature'] = self.temperature + g.attrs['zaids'] = self.zaids + + # Write thermal elastic scattering + if self.elastic_xs is not None: + elastic_group = g.create_group('elastic') + self.elastic_xs.to_hdf5(elastic_group, 'xs') + if self.elastic_mu_out is not None: + elastic_group.create_dataset('mu_out', data=self.elastic_mu_out) + + # Write thermal inelastic scattering + if self.inelastic_xs is not None: + inelastic_group = g.create_group('inelastic') + self.inelastic_xs.to_hdf5(inelastic_group, 'xs') + inelastic_group.attrs['secondary_mode'] = np.string_(self.secondary_mode) + if self.secondary_mode in ('equal', 'skewed'): + inelastic_group.create_dataset('energy_out', data=self.inelastic_e_out) + inelastic_group.create_dataset('mu_out', data=self.inelastic_mu_out) + elif self.secondary_mode == 'continuous': + self.inelastic_dist.to_hdf5(inelastic_group) + + @classmethod + def from_hdf5(self, group): + """Generate thermal scattering data from HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.ThermalScattering + Neutron thermal scattering data + + """ + name = group.name[1:] + atomic_weight_ratio = group.attrs['atomic_weight_ratio'] + temperature = group.attrs['temperature'] + table = ThermalScattering(name, atomic_weight_ratio, temperature) + table.zaids = group.attrs['zaids'] + + # Read thermal elastic scattering + if 'elastic' in group: + elastic_group = group['elastic'] + + # Cross section + elastic_xs_type = elastic_group['xs'].attrs['type'].decode() + if elastic_xs_type == 'tab1': + table.elastic_xs = Tabulated1D.from_hdf5(elastic_group['xs']) + elif elastic_xs_type == 'bragg': + table.elastic_xs = CoherentElastic.from_hdf5(elastic_group['xs']) + + # Angular distribution + if 'mu_out' in elastic_group: + table.elastic_mu_out = elastic_group['mu_out'].value + + # Read thermal inelastic scattering + if 'inelastic' in group: + inelastic_group = group['inelastic'] + table.secondary_mode = inelastic_group.attrs['secondary_mode'].decode() + table.inelastic_xs = Tabulated1D.from_hdf5(inelastic_group['xs']) + if table.secondary_mode in ('equal', 'skewed'): + table.inelastic_e_out = inelastic_group['energy_out'] + table.inelastic_mu_out = inelastic_group['mu_out'] + elif table.secondary_mode == 'continuous': + table.inelastic_dist = AngleEnergy.from_hdf5(inelastic_group) + + return table + + @classmethod + def from_ace(cls, ace_or_filename, name=None): + """Generate thermal scattering data from an ACE table + + Parameters + ---------- + ace : openmc.data.ace.Table or str + ACE table to read from. If given as a string, it is assumed to be + the filename for the ACE file. + name : str + GND-conforming name of the material, e.g. c_H_in_H2O. If none is + passed, the appropriate name is guessed based on the name of the ACE + table. + + Returns + ------- + openmc.data.ThermalScattering + Thermal scattering data + + """ + if isinstance(ace_or_filename, Table): + ace = ace_or_filename + else: + ace = get_table(ace_or_filename) + + # Get new name that is GND-consistent + ace_name, xs = ace.name.split('.') + if name is None: + if ace_name.lower() in _THERMAL_NAMES: + name = _THERMAL_NAMES[ace_name.lower()] + '.' + xs + else: + # Make an educated guess?? This actually works well for JEFF-3.2 + # which stupidly uses names like lw00.32t, lw01.32t, etc. for + # different temperatures + matches = get_close_matches( + ace_name.lower(), _THERMAL_NAMES.keys(), cutoff=0.5) + if len(matches) > 0: + name = _THERMAL_NAMES[matches[0]] + '.' + xs + else: + # OK, we give up. Just use the ACE name. + name = 'c_' + ace.name + warn('Thermal scattering material "{}" is not recognized. ' + 'Assigning a name of {}.'.format(ace.name, name)) + + table = cls(name, ace.atomic_weight_ratio, ace.temperature) + + # Incoherent inelastic scattering cross section + idx = ace.jxs[1] + n_energy = int(ace.xss[idx]) + energy = ace.xss[idx+1 : idx+1+n_energy] + xs = ace.xss[idx+1+n_energy : idx+1+2*n_energy] + table.inelastic_xs = Tabulated1D(energy, xs) + + if ace.nxs[7] == 0: + table.secondary_mode = 'equal' + elif ace.nxs[7] == 1: + table.secondary_mode = 'skewed' + elif ace.nxs[7] == 2: + table.secondary_mode = 'continuous' + + n_energy_out = ace.nxs[4] + if table.secondary_mode in ('equal', 'skewed'): + n_mu = ace.nxs[3] + idx = ace.jxs[3] + table.inelastic_e_out = ace.xss[idx:idx+n_energy*n_energy_out*(n_mu+2):n_mu+2] + table.inelastic_e_out.shape = (n_energy, n_energy_out) + + table.inelastic_mu_out = ace.xss[idx:idx+n_energy*n_energy_out*(n_mu+2)] + table.inelastic_mu_out.shape = (n_energy, n_energy_out, n_mu+2) + table.inelastic_mu_out = table.inelastic_mu_out[:, :, 1:] + else: + n_mu = ace.nxs[3] - 1 + idx = ace.jxs[3] + locc = ace.xss[idx:idx + n_energy].astype(int) + n_energy_out = ace.xss[idx + n_energy:idx + 2*n_energy].astype(int) + energy_out = [] + mu_out = [] + for i in range(n_energy): + idx = locc[i] + + # Outgoing energy distribution for incoming energy i + e = ace.xss[idx + 1:idx + 1 + n_energy_out[i]*(n_mu + 3):n_mu + 3] + p = ace.xss[idx + 2:idx + 2 + n_energy_out[i]*(n_mu + 3):n_mu + 3] + c = ace.xss[idx + 3:idx + 3 + n_energy_out[i]*(n_mu + 3):n_mu + 3] + eout_i = Tabular(e, p, 'linear-linear', ignore_negative=True) + eout_i.c = c + + # Outgoing angle distribution for each (incoming, outgoing) energy pair + mu_i = [] + for j in range(n_energy_out[i]): + mu = ace.xss[idx + 4:idx + 4 + n_mu] + p_mu = 1./n_mu*np.ones(n_mu) + mu_ij = Discrete(mu, p_mu) + mu_ij.c = np.cumsum(p_mu) + mu_i.append(mu_ij) + idx += 3 + n_mu + + energy_out.append(eout_i) + mu_out.append(mu_i) + + # Create correlated angle-energy distribution + breakpoints = [n_energy] + interpolation = [2] + energy = inelastic_xs.x + table.inelastic_dist = CorrelatedAngleEnergy( + breakpoints, interpolation, energy, energy_out, mu_out) + + # Incoherent/coherent elastic scattering cross section + idx = ace.jxs[4] + if idx != 0: + n_energy = int(ace.xss[idx]) + energy = ace.xss[idx+1 : idx+1+n_energy] + P = ace.xss[idx+1+n_energy : idx+1+2*n_energy] + + if ace.nxs[5] == 4: + table.elastic_xs = CoherentElastic(energy, P) + else: + table.elastic_xs = Tabulated1D(energy, P) + + # Angular distribution + n_mu = ace.nxs[6] + if n_mu != -1: + idx = ace.jxs[6] + table.elastic_mu_out = ace.xss[idx:idx + n_energy*n_mu] + table.elastic_mu_out.shape = (n_energy, n_mu) + + # Get relevant ZAIDs + pairs = np.fromiter(map(lambda p: p[0], ace.pairs), int) + table.zaids = pairs[np.nonzero(pairs)] + + return table diff --git a/openmc/data/urr.py b/openmc/data/urr.py index 308a459178..b010a6c47c 100644 --- a/openmc/data/urr.py +++ b/openmc/data/urr.py @@ -169,3 +169,42 @@ class ProbabilityTables(object): return cls(energy, table, interpolation, inelastic_flag, absorption_flag, multiply_smooth) + + @classmethod + def from_ace(cls, ace): + """Generate probability tables from an ACE table + + Parameters + ---------- + ace : openmc.data.ace.Table + ACE table to read from + + Returns + ------- + openmc.data.ProbabilityTables + Unresolved resonance region probability tables + + """ + # Check if URR probability tables are present + idx = ace.jxs[23] + if idx == 0: + return None + + N = int(ace.xss[idx]) # Number of incident energies + M = int(ace.xss[idx+1]) # Length of probability table + interpolation = int(ace.xss[idx+2]) + inelastic_flag = int(ace.xss[idx+3]) + absorption_flag = int(ace.xss[idx+4]) + multiply_smooth = (int(ace.xss[idx+5]) == 1) + idx += 6 + + # Get energies at which tables exist + energy = ace.xss[idx : idx+N] + idx += N + + # Get probability tables + table = ace.xss[idx : idx+N*6*M] + table.shape = (N, 6, M) + + return cls(energy, table, interpolation, inelastic_flag, + absorption_flag, multiply_smooth) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 9df9d150dd..179b473301 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -625,7 +625,7 @@ class Library(object): in the report. Defaults to 'all'. nuclides : {'all', 'sum'} The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + may be a list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will report the cross sections for all nuclides in the spatial domain. The special string 'sum' will report the cross sections summed over all nuclides. Defaults to 'all'. @@ -758,7 +758,7 @@ class Library(object): xsdata_name : str Name to apply to the "xsdata" entry produced by this method nuclide : str - A nuclide name string (e.g., 'U-235'). Defaults to 'total' to + A nuclide name string (e.g., 'U235'). Defaults to 'total' to obtain a material-wise macroscopic cross section. xs_type: {'macro', 'micro'} Provide the macro or micro cross section in units of cm^-1 or diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2c0cb21c60..8e6d123f72 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -120,7 +120,7 @@ class MGXS(object): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -494,7 +494,7 @@ class MGXS(object): ------- list of str A list of the string names for each nuclide in the spatial domain - (e.g., ['U-235', 'U-238', 'O-16']) + (e.g., ['U235', 'U238', 'O16']) Raises ------ @@ -522,7 +522,7 @@ class MGXS(object): Parameters ---------- nuclide : str - A nuclide name string (e.g., 'U-235') + A nuclide name string (e.g., 'U235') Returns ------- @@ -557,7 +557,7 @@ class MGXS(object): Parameters ---------- nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + A list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will return the atom densities for all nuclides in the spatial domain. The special string 'sum' will return the atom density summed across all nuclides in the spatial domain. Defaults @@ -716,7 +716,7 @@ class MGXS(object): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + A list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will return the cross sections for all nuclides in the spatial domain. The special string 'sum' will return the cross section summed over all nuclides. Defaults to 'all'. @@ -954,7 +954,7 @@ class MGXS(object): ---------- nuclides : list of str A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is []) + (e.g., ['U235', 'U238']; default is []) groups : list of int A list of energy group indices starting at 1 for the high energies (e.g., [1, 2, 3]; default is []) @@ -1111,7 +1111,7 @@ class MGXS(object): Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + may be a list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will report the cross sections for all nuclides in the spatial domain. The special string 'sum' will report the cross sections summed over all nuclides. Defaults to 'all'. @@ -1215,7 +1215,7 @@ class MGXS(object): Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + may be a list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will report the cross sections for all nuclides in the spatial domain. The special string 'sum' will report the cross sections summed over all nuclides. Defaults to 'all'. @@ -1414,7 +1414,7 @@ class MGXS(object): Energy groups of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' The nuclides of the cross-sections to include in the dataframe. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + may be a list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will include the cross sections for all nuclides in the spatial domain. The special string 'sum' will include the cross sections summed over all nuclides. Defaults @@ -1603,7 +1603,7 @@ class MatrixMGXS(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -1652,7 +1652,7 @@ class MatrixMGXS(MGXS): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + A list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will return the cross sections for all nuclides in the spatial domain. The special string 'sum' will return the cross section summed over all nuclides. Defaults to @@ -1790,7 +1790,7 @@ class MatrixMGXS(MGXS): ---------- nuclides : list of str A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is []) + (e.g., ['U235', 'U238']; default is []) 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 []) @@ -1840,7 +1840,7 @@ class MatrixMGXS(MGXS): Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + may be a list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will report the cross sections for all nuclides in the spatial domain. The special string 'sum' will report the cross sections summed over all nuclides. Defaults to @@ -2024,7 +2024,7 @@ class TotalXS(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -2142,7 +2142,7 @@ class TransportXS(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -2272,7 +2272,7 @@ class NuTransportXS(TransportXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -2393,7 +2393,7 @@ class AbsorptionXS(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -2509,7 +2509,7 @@ class CaptureXS(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -2631,7 +2631,7 @@ class FissionXS(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -2742,7 +2742,7 @@ class NuFissionXS(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -2858,7 +2858,7 @@ class KappaFissionXS(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -2971,7 +2971,7 @@ class ScatterXS(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -3086,7 +3086,7 @@ class NuScatterXS(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -3220,7 +3220,7 @@ class ScatterMatrixXS(MatrixMGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -3383,7 +3383,7 @@ class ScatterMatrixXS(MatrixMGXS): ---------- nuclides : list of str A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is []) + (e.g., ['U235', 'U238']; default is []) 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 []) @@ -3465,7 +3465,7 @@ class ScatterMatrixXS(MatrixMGXS): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + A list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will return the cross sections for all nuclides in the spatial domain. The special string 'sum' will return the cross section summed over all nuclides. Defaults to 'all'. @@ -3612,7 +3612,7 @@ class ScatterMatrixXS(MatrixMGXS): Energy groups of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' The nuclides of the cross-sections to include in the dataframe. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + may be a list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will include the cross sections for all nuclides in the spatial domain. The special string 'sum' will include the cross sections summed over all nuclides. Defaults @@ -3679,7 +3679,7 @@ class ScatterMatrixXS(MatrixMGXS): Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + may be a list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will report the cross sections for all nuclides in the spatial domain. The special string 'sum' will report the cross sections summed over all nuclides. Defaults to 'all'. @@ -3869,7 +3869,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -3991,7 +3991,7 @@ class MultiplicityMatrixXS(MatrixMGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -4138,7 +4138,7 @@ class NuFissionMatrixXS(MatrixMGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -4253,7 +4253,7 @@ class Chi(MGXS): being tracked. This is unity if the by_nuclide attribute 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 + sections (e.g., 'U238', 'O16'). 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 @@ -4331,7 +4331,7 @@ class Chi(MGXS): ---------- nuclides : list of str A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is []) + (e.g., ['U235', 'U238']; 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 []) @@ -4442,7 +4442,7 @@ class Chi(MGXS): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + A list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will return the cross sections for all nuclides in the spatial domain. The special string 'sum' will return the cross section summed over all nuclides. Defaults to 'all'. @@ -4575,7 +4575,7 @@ class Chi(MGXS): Energy groups of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' The nuclides of the cross-sections to include in the dataframe. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + may be a list of nuclide name strings (e.g., ['U235', 'U238']). The special string 'all' will include the cross sections for all nuclides in the spatial domain. The special string 'sum' will include the cross sections summed over all nuclides. Defaults to diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 8a572c8748..6f8188b101 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -100,7 +100,7 @@ class XSdata(object): alias : str Separate unique identifier for the xsdata object zaid : int - 1000*(atomic number) + mass number. As an example, the zaid of U-235 + 1000*(atomic number) + mass number. As an example, the zaid of U235 would be 92235. awr : float Atomic weight ratio of an isotope. That is, the ratio of the mass diff --git a/openmc/nuclide.py b/openmc/nuclide.py index bfeff93113..14609161fe 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -13,18 +13,18 @@ class Nuclide(object): Parameters ---------- name : str - Name of the nuclide, e.g. U-235 + Name of the nuclide, e.g. U235 xs : str Cross section identifier, e.g. 71c Attributes ---------- name : str - Name of the nuclide, e.g. U-235 + Name of the nuclide, e.g. U235 xs : str Cross section identifier, e.g. 71c zaid : int - 1000*(atomic number) + mass number. As an example, the zaid of U-235 + 1000*(atomic number) + mass number. As an example, the zaid of U235 would be 92235. scattering : 'data' or 'iso-in-lab' or None The type of angular scattering distribution to use diff --git a/openmc/tallies.py b/openmc/tallies.py index fab88e2f73..79e7c56bcb 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -520,7 +520,7 @@ class Tally(object): Nuclide to add to the tally. The nuclide should be a Nuclide object when a user is adding nuclides to a Tally for input file generation. The nuclide is a str when a Tally is created from a StatePoint file - (e.g., 'H-1', 'U-235') unless a Summary has been linked with the + (e.g., 'H1', 'U235') unless a Summary has been linked with the StatePoint. The nuclide may be a CrossNuclide or AggregateNuclide for derived tallies created by tally arithmetic. @@ -1166,7 +1166,7 @@ class Tally(object): Parameters ---------- nuclide : str - The name of the Nuclide (e.g., 'H-1', 'U-238') + The name of the Nuclide (e.g., 'H1', 'U238') Returns ------- @@ -1342,7 +1342,7 @@ class Tally(object): ---------- nuclides : list of str A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is []) + (e.g., ['U235', 'U238']; default is []) Returns ------- @@ -1435,7 +1435,7 @@ class Tally(object): the filter_types parameter. nuclides : list of str A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is []) + (e.g., ['U235', 'U238']; default is []) value : str A string for the type of value to return - 'mean' (default), 'std_dev', 'rel_err', 'sum', or 'sum_sq' are accepted @@ -2887,7 +2887,7 @@ class Tally(object): correspond to the filter_types parameter. nuclides : list of str A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is []) + (e.g., ['U235', 'U238']; default is []) Returns ------- @@ -3025,7 +3025,7 @@ class Tally(object): interest. nuclides : list of str A list of nuclide name strings to sum across - (e.g., ['U-235', 'U-238']; default is []) + (e.g., ['U235', 'U238']; default is []) remove_filter : bool If a filter is being summed over, this bool indicates whether to remove that filter in the returned tally. Default is False. @@ -3173,7 +3173,7 @@ class Tally(object): interest. nuclides : list of str A list of nuclide name strings to average across - (e.g., ['U-235', 'U-238']; default is []) + (e.g., ['U235', 'U238']; 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. diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 new file mode 100755 index 0000000000..743cf4a509 --- /dev/null +++ b/scripts/openmc-ace-to-hdf5 @@ -0,0 +1,139 @@ +#!/usr/bin/env python + +import argparse +import os +import xml.etree.ElementTree as ET +import warnings + +import openmc.data + +description = """ +This script can be used to create HDF5 nuclear data libraries used by +OpenMC. There are four different ways you can specify ACE libraries that are to +be converted: + +1. List each ACE library as a positional argument. This is very useful in + conjunction with the usual shell utilities (ls, find, etc.). +2. Use the --xml option to specify a pre-v0.9 cross_sections.xml file. +3. Use the --xsdir option to specify a MCNP xsdir file. +4. Use the --xsdata option to specify a Serpent xsdata file. + +The script does not use any extra information from cross_sections.xml/ xsdir/ +xsdata files to determine whether the nuclide is metastable. Instead, the +--metastable argument can be used to specify whether the ZAID naming convention +follows the NNDC data convention (1000*Z + A + 300 + 100*m), or the MCNP data +convention (essentially the same as NNDC, except that the first metastable state +of Am242 is 95242 and the ground state is 95642). + +""" + +class CustomFormatter(argparse.ArgumentDefaultsHelpFormatter, + argparse.RawDescriptionHelpFormatter): + pass + +parser = argparse.ArgumentParser( + description=description, + formatter_class=CustomFormatter +) +parser.add_argument('libraries', nargs='*', + help='ACE libraries to convert to HDF5') +parser.add_argument('-d', '--destination', default='.', + help='Directory to create new library in') +parser.add_argument('-m', '--metastable', choices=['mcnp', 'nndc'], default='nndc', + help='How to interpret ZAIDs for metastable nuclides') +parser.add_argument('--xml', help='Old-style cross_sections.xml that ' + 'lists ACE libraries') +parser.add_argument('--xsdir', help='MCNP xsdir file that lists ' + 'ACE libraries') +parser.add_argument('--xsdata', help='Serpent xsdata file that lists ' + 'ACE libraries') +args = parser.parse_args() + +if not os.path.isdir(args.destination): + os.mkdir(args.destination) + +# If the --xml argument was given, get the list of ACE libraries directory from +# elements within the specified cross_sections.xml file +ace_libraries = [] +if args.xml is not None: + tree = ET.parse(args.xml) + root = tree.getroot() + if root.find('directory') is not None: + directory = root.find('directory').text + else: + directory = os.path.dirname(args.xml) + + for ace_table in root.findall('ace_table'): + ace_libraries.append(os.path.join(directory, ace_table.attrib['path'])) + +elif args.xsdir is not None: + # Find 'directory' section + lines = open(args.xsdir, 'r').readlines() + for index, line in enumerate(lines): + if line.strip().lower() == 'directory': + break + else: + raise IOError("Could not find 'directory' section in MCNP xsdir file") + + # Create list of ACE libraries + for line in lines[index + 1:]: + words = line.split() + if len(words) < 3: + continue + + path = os.path.join(os.path.dirname(args.xsdir), words[2]) + if path not in ace_libraries: + ace_libraries.append(path) + +elif args.xsdata is not None: + with open(args.xsdata, 'r') as xsdata: + for line in xsdata: + words = line.split() + if len(words) >= 9: + path = os.path.join(os.path.dirname(args.xsdata, words[8])) + if path not in ace_libraries: + ace_libraries.append(path) + +else: + ace_libraries = args.libraries + +library = openmc.data.DataLibrary() + +for filename in ace_libraries: + # Check that ACE library exists + if not os.path.exists(filename): + warnings.warn("ACE library '{}' does not exist.".format(filename)) + continue + + lib = openmc.data.ace.Library(filename) + for table in lib.tables: + if table.name.endswith('c'): + # Continuous-energy neutron data + neutron = openmc.data.IncidentNeutron.from_ace( + table, args.metastable) + print(neutron.name) + + # Determine filename + outfile = os.path.join(args.destination, + neutron.name.replace('.', '_') + '.h5') + neutron.export_to_hdf5(outfile) + + # Register with library + library.register_file(outfile) + + elif table.name.endswith('t'): + # Thermal scattering data + thermal = openmc.data.ThermalScattering.from_ace(table) + print(thermal.name) + + # Determine filename + outfile = os.path.join(args.destination, + thermal.name.replace('.', '_') + '.h5') + thermal.export_to_hdf5(outfile) + + # Register with library + library.register_file(outfile, 'thermal') + +# Write cross_sections.xml +libpath = os.path.join(args.destination, 'cross_sections.xml') +library.export_to_xml(libpath) diff --git a/scripts/openmc-ascii-to-binary b/scripts/openmc-ascii-to-binary deleted file mode 100755 index e707e2a857..0000000000 --- a/scripts/openmc-ascii-to-binary +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env python - -from openmc.ace import ascii_to_binary -import sys - - -if __name__ == '__main__': - # Check for proper number of arguments - if len(sys.argv) < 3: - sys.exit('Usage: {0} ascii_file binary_file'.format(sys.argv[0])) - - # Convert ASCII file - ascii_to_binary(sys.argv[1], sys.argv[2]) diff --git a/scripts/openmc-update-inputs b/scripts/openmc-update-inputs index 2a8097854d..5b5bf0978f 100755 --- a/scripts/openmc-update-inputs +++ b/scripts/openmc-update-inputs @@ -22,11 +22,14 @@ optional arguments: from __future__ import print_function import argparse +from difflib import get_close_matches from itertools import chain from random import randint from shutil import move import xml.etree.ElementTree as ET +import openmc.data +from openmc.data.thermal import _THERMAL_NAMES description = "Update OpenMC's input XML files to the latest format." epilog = """\ @@ -40,6 +43,11 @@ geometry.xml: Lattices containing 'outside' attributes/tags will be replaced with lattices containing 'outer' attributes, and the appropriate cells/universes will be added. Any 'surfaces' attributes/elements on a cell will be renamed 'region'. + +materials.xml: Nuclide names will be changed from ACE aliases (e.g., Am-242m) to + HDF5/GND names (e.g., Am242_m1). Thermal scattering table names will be + changed from ACE aliases (e.g., HH2O) to HDF5/GND names (e.g., c_H_in_H2O). + """ @@ -245,6 +253,62 @@ def update_geometry(geometry_root): return was_updated +def get_thermal_name(name): + """Get proper S(a,b) table name, e.g. 'HH2O' -> 'c_H_in_H2O'""" + if name.lower() in _THERMAL_NAMES: + return _THERMAL_NAMES[name.lower()] + else: + # Make an educated guess?? This actually works well for + # JEFF-3.2 which stupidly uses names like lw00.32t, + # lw01.32t, etc. for different temperatures + matches = get_close_matches( + name.lower(), _THERMAL_NAMES.keys(), cutoff=0.5) + if len(matches) > 0: + return _THERMAL_NAMES[matches[0]] + '.' + xs + else: + # OK, we give up. Just use the ACE name. + return 'c_' + name + return name + +def update_materials(root): + """Update the given XML materials tree. Return True if changes were made.""" + was_updated = False + + for material in root.findall('material'): + for nuclide in material.findall('nuclide'): + if 'name' in nuclide.attrib: + nucname = nuclide.attrib['name'] + nucname = nucname.replace('-', '') + nucname = nucname.replace('Nat', '0') + if nucname.endswith('m'): + nucname = nucname[:-1] + '_m1' + nuclide.set('name', nucname) + was_updated = True + + elif nuclide.find('name') is not None: + name_elem = nuclide.find('name') + nucname = name_elem.text + nucname = nucname.replace('-', '') + nucname = nucname.replace('Nat', '0') + if nucname.endswith('m'): + nucname = nucname[:-1] + '_m1' + name_elem.text = nucname + was_updated = True + + for sab in material.findall('sab'): + if 'name' in sab.attrib: + sabname = sab.attrib['name'] + sab.set('name', get_thermal_name(sabname)) + was_updated = True + + elif sab.find('name') is not None: + name_elem = sab.find('name') + sabname = name_elem.text + name_elem.text = get_thermal(sabname) + was_updated = True + + return was_updated + if __name__ == '__main__': args = parse_args() @@ -256,6 +320,8 @@ if __name__ == '__main__': if root.tag == 'geometry': was_updated = update_geometry(root) + elif root.tag == 'materials': + was_updated = update_materials(root) if was_updated: # Move the original geometry file to preserve it. diff --git a/scripts/openmc-xsdata-to-xml b/scripts/openmc-xsdata-to-xml deleted file mode 100755 index 708a196f97..0000000000 --- a/scripts/openmc-xsdata-to-xml +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -from xml.dom.minidom import getDOMImplementation - -types = {1: "neutron", 2: "dosimetry", 3: "thermal"} - - -class Xsdata(object): - - def __init__(self, filename): - self._table_dict = {} - self.tables = [] - - for line in open(filename, 'r'): - words = line.split() - - # If this listing is just an alias listing, only assign the alias - # attribute - name = words[1] - alias = words[0] - table = self.find_table(name) - if table: - if name not in table.alias: - table.alias.append(alias) - continue - - table = XsdataTable() - table.name = name - table.type = types[int(words[2])] - table.zaid = int(words[3]) - table.metastable = int(words[4]) - table.awr = float(words[5]) - table.temperature = 8.6173423e-11 * float(words[6]) - table.binary = int(words[7]) - table.path = words[8] - - self.tables.append(table) - self._table_dict[name] = table - - # Check for common directory - self.directory = os.path.dirname(self.tables[0].path) - for table in self.tables: - if not table.path.startswith(self.directory): - self.directory = None - break - - def to_xml(self): - # Create XML document - impl = getDOMImplementation() - doc = impl.createDocument(None, "cross_sections", None) - - # Get root element - root = doc.documentElement - - # Add a directory node - if self.directory: - directoryNode = doc.createElement("directory") - text = doc.createTextNode(self.directory) - directoryNode.appendChild(text) - root.appendChild(directoryNode) - - for table in self.tables: - table.path = os.path.basename(table.path) - - # Add a node for each table - for table in self.tables: - node = table.to_xml_node(doc) - root.appendChild(node) - - return doc - - def find_table(self, name): - if name in self._table_dict: - return self._table_dict[name] - else: - return None - - -class XsdataTable(object): - - def __init__(self): - self.alias = [] - - def to_xml_node(self, doc): - node = doc.createElement("ace_table") - node.setAttribute("name", self.name) - for attribute in ["alias", "zaid", "type", "metastable", - "awr", "temperature", "binary", "path"]: - if hasattr(self, attribute): - # Join string for alias attribute - if attribute == "alias": - if not self.alias: - continue - string = " ".join(self.alias) - else: - string = "{0}".format(getattr(self, attribute)) - - # Skip metastable and binary if 0 - if attribute == "metastable" and self.metastable == 0: - continue - if attribute == "binary" and self.binary == 0: - continue - - # Create attribute node - # nodeAttr = doc.createElement(attribute) - # text = doc.createTextNode(string) - # nodeAttr.appendChild(text) - # node.appendChild(nodeAttr) - node.setAttribute(attribute, string) - return node - - -if __name__ == '__main__': - # Read command line arguments - if len(sys.argv) < 3: - sys.exit("Usage: convert_xsdata.py xsdataFile xmlFile") - xsdataFile = sys.argv[1] - xmlFile = sys.argv[2] - - # Read xsdata and create XML document object - xsdataObject = Xsdata(xsdataFile) - doc = xsdataObject.to_xml() - - # Reduce number of lines - lines = doc.toprettyxml(indent=' ') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - lines = lines.replace('\n ', '') - - # Write document in pretty XML to specified file - f = open(xmlFile, 'w') - f.write(lines) - f.close() diff --git a/scripts/openmc-xsdir-to-xml b/scripts/openmc-xsdir-to-xml deleted file mode 100755 index 7e1606fc4c..0000000000 --- a/scripts/openmc-xsdir-to-xml +++ /dev/null @@ -1,288 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -from xml.dom.minidom import getDOMImplementation - -elements = [None, "H", "He", "Li", "Be", "B", "C", "N", "O", "F", "Ne", "Na", - "Mg", "Al", "Si", "P", "S", "Cl", "Ar", "K", "Ca", "Sc", "Ti", "V", - "Cr", "Mn", "Fe", "Co", "Ni", "Cu", "Zn", "Ga", "Ge", "As", "Se", - "Br", "Kr", "Rb", "Sr", "Y", "Zr", "Nb", "Mo", "Tc", "Ru", "Rh", - "Pd", "Ag", "Cd", "In", "Sn", "Sb", "Te", "I", "Xe", "Cs", "Ba", - "La", "Ce", "Pr", "Nd", "Pm", "Sm", "Eu", "Gd", "Tb", "Dy", "Ho", - "Er", "Tm", "Yb", "Lu", "Hf", "Ta", "W", "Re", "Os", "Ir", "Pt", - "Au", "Hg", "Tl", "Pb", "Bi", "Po", "At", "Rn", "Fr", "Ra", "Ac", - "Th", "Pa", "U", "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm", - "Md", "No", "Lr", "Rf", "Db", "Sg", "Bh", "Hs", "Mt", "Ds", "Rg", - "Cn"] - - -class Xsdir(object): - - def __init__(self, filename): - self.f = open(filename, 'r') - self.filename = os.path.abspath(filename) - self.directory = os.path.dirname(filename) - self.awr = {} - self.tables = [] - - self.filetype = set() - self.recordlength = set() - self.entries = set() - - # Read first section (DATAPATH) - line = self.f.readline() - words = line.split() - if words: - if words[0].lower().startswith('datapath'): - if '=' in words[0]: - index = line.index('=') - self.datapath = line[index+1:].strip() - else: - if len(line.strip()) > 8: - self.datapath = line[8:].strip() - else: - self.f.seek(0) - - # Read second section - line = self.f.readline() - words = line.split() - assert len(words) == 3 - assert words[0].lower() == 'atomic' - assert words[1].lower() == 'weight' - assert words[2].lower() == 'ratios' - - while True: - line = self.f.readline() - words = line.split() - - # Check for end of second section - if len(words) % 2 != 0 or words[0] == 'directory': - break - - for zaid, awr in zip(words[::2], words[1::2]): - self.awr[zaid] = awr - - # Read third section - while words[0] != 'directory': - words = self.f.readline().split() - - while True: - words = self.f.readline().split() - if not words: - break - - # Handle continuation lines - while words[-1] == '+': - extraWords = self.f.readline().split() - words = words[:-1] + extraWords - assert len(words) >= 7 - - # Create XsdirTable object and add to line - table = XsdirTable(self.directory) - self.tables.append(table) - - # All tables have at least 7 attributes - table.name = words[0] - table.awr = float(words[1]) - table.filename = words[2] - table.access = words[3] - table.filetype = int(words[4]) - table.location = int(words[5]) - table.length = int(words[6]) - - self.filetype.add(table.filetype) - - if len(words) > 7: - table.recordlength = int(words[7]) - self.recordlength.add(table.recordlength) - if len(words) > 8: - table.entries = int(words[8]) - self.entries.add(table.entries) - if len(words) > 9: - table.temperature = float(words[9]) - if len(words) > 10: - table.ptable = (words[10] == 'ptable') - - if len(self.filetype) == 1: - if 1 in self.filetype: - self.filetype = 'ascii' - elif 2 in self.filetype: - self.filetype = 'binary' - else: - self.filetype = None - - if len(self.recordlength) == 1: - self.recordlength = list(self.recordlength)[0] - else: - self.recordlength = None - if len(self.entries) == 1: - self.entries = list(self.entries)[0] - else: - self.recordlength = None - - def to_xml(self): - # Create XML document - impl = getDOMImplementation() - doc = impl.createDocument(None, "cross_sections", None) - - # Get root element - root = doc.documentElement - - # Add a directory node - if self.directory: - directoryNode = doc.createElement("directory") - text = doc.createTextNode(self.directory) - directoryNode.appendChild(text) - root.appendChild(directoryNode) - - for table in self.tables: - table.path = os.path.basename(table.path) - - # Add filetype, record_length and entries nodes - if self.filetype: - node = doc.createElement("filetype") - text = doc.createTextNode(self.filetype) - node.appendChild(text) - root.appendChild(node) - if self.recordlength: - node = doc.createElement("record_length") - text = doc.createTextNode(str(self.recordlength)) - node.appendChild(text) - root.appendChild(node) - if self.entries: - node = doc.createElement("entries") - text = doc.createTextNode(str(self.entries)) - node.appendChild(text) - root.appendChild(node) - - # Add a node for each table - for table in self.tables: - if table.name[-1] in ['e', 'p', 'u', 'h', 'g', 'm', 'd']: - continue - node = table.to_xml_node(doc) - root.appendChild(node) - - return doc - - -class XsdirTable(object): - - def __init__(self, directory=None): - self.directory = None - self.name = None - self.awr = None - self.filename = None - self.access = None - self.filetype = None - self.location = None - self.length = None - self.recordlength = None - self.entries = None - self.temperature = None - self.ptable = False - - @property - def path(self): - if self.directory: - return os.path.join(self.directory, self.filename) - else: - return self.filename - - @path.setter - def path(self, value): - self.diretory = '' - self.filename = value - - @property - def metastable(self): - # Only valid for neutron cross-sections - if not self.name.endswith('c'): - return - - # Handle special case of Am-242 and Am-242m - if self.zaid == '95242': - return 1 - elif self.zaid == '95642': - return 0 - - # All other cases - A = int(self.zaid) % 1000 - if A > 300: - return 1 - else: - return 0 - - @property - def alias(self): - zaid = self.zaid - if zaid: - Z = int(zaid[:-3]) - A = zaid[-3:] - - if A == '000': - s = 'Nat' - elif zaid == '95242': - s = '242m' - elif zaid == '95642': - s = '242' - elif int(A) > 300: - s = str(int(A) - 400) + "m" - else: - s = str(int(A)) - - return "{0}-{1}.{2}".format(elements[Z], s, self.xs) - else: - return None - - @property - def zaid(self): - if self.name.endswith('c'): - return self.name[:self.name.find('.')] - else: - return 0 - - @property - def xs(self): - return self.name[self.name.find('.')+1:] - - def to_xml_node(self, doc): - node = doc.createElement("ace_table") - node.setAttribute("name", self.name) - for attribute in ["alias", "zaid", "type", "metastable", "awr", - "temperature", "path", "location"]: - if hasattr(self, attribute): - string = str(getattr(self, attribute)) - - # Skip metastable and binary if 0 - if attribute == "metastable" and self.metastable == 0: - continue - - # Skip any attribute that is none - if getattr(self, attribute) is None: - continue - - # Create attribute node - node.setAttribute(attribute, string) - - return node - - -if __name__ == '__main__': - # Read command line arguments - if len(sys.argv) < 3: - sys.exit("Usage: convert_xsdir.py xsdirFile xmlFile") - xsdirFile = sys.argv[1] - xmlFile = sys.argv[2] - - # Read xsdata and create XML document object - xsdirObject = Xsdir(xsdirFile) - doc = xsdirObject.to_xml() - - # Reduce number of lines - lines = doc.toprettyxml(indent=' ') - - # Write document in pretty XML to specified file - f = open(xmlFile, 'w') - f.write(lines) - f.close() diff --git a/src/reaction_header.F90 b/src/reaction_header.F90 index 8af75b3cf2..74198dd78b 100644 --- a/src/reaction_header.F90 +++ b/src/reaction_header.F90 @@ -38,7 +38,7 @@ contains integer(HSIZE_T) :: dims(1) call read_attribute(this % Q_value, group_id, 'Q_value') - call read_attribute(this % MT, group_id, 'MT') + call read_attribute(this % MT, group_id, 'mt') call read_attribute(this % threshold, group_id, 'threshold_idx') call read_attribute(cm, group_id, 'center_of_mass') this % scatter_in_cm = (cm == 1) diff --git a/src/relaxng/cross_sections.rnc b/src/relaxng/cross_sections.rnc index 75c0ea29c2..7fbc610a28 100644 --- a/src/relaxng/cross_sections.rnc +++ b/src/relaxng/cross_sections.rnc @@ -1,25 +1,12 @@ element cross_sections { - element ace_table { - (element name { xsd:string { maxLength = "15" } } | - attribute name { xsd:string { maxLength = "15" } }) & - (element alias { xsd:string { maxLength = "15" } } | - attribute alias { xsd:string { maxLength = "15" } })? & - (element zaid { xsd:int } | attribute zaid { xsd:int }) & - (element metastable { xsd:int } | attribute metastable { xsd:int })? & - (element awr { xsd:double } | attribute awr { xsd:double }) & - (element temperature { xsd:double } | attribute temperature { xsd:double }) & - (element path { xsd:string { maxLength = "255" } } | - attribute path { xsd:string { maxLength = "255" } }) & - (element location { xsd:int } | attribute location { xsd:int })? & - (element filetype { ( "ascii" | "binary" ) } | - attribute filetype { ( "ascii" | "binary" ) })? + element library { + (element materials { xsd:string } | + attribute materials { xsd:string }) & + (element type { xsd:string } | + attribute type { xsd:string }) & + (element path { xsd:string } | + attribute path { xsd:string }) }* & - element directory { xsd:string { maxLength = "255" } }? & - - element filetype { ( "ascii" | "binary" ) } & - - element record_length { xsd:int }? & - - element entries { xsd:int }? + element directory { xsd:string { maxLength = "255" } }? } \ No newline at end of file diff --git a/src/relaxng/cross_sections.rng b/src/relaxng/cross_sections.rng index 5e531e0132..435f7fa843 100644 --- a/src/relaxng/cross_sections.rng +++ b/src/relaxng/cross_sections.rng @@ -2,106 +2,32 @@ - + - - - 15 - + + - - - 15 - - - - - - - - 15 - - - - - 15 - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - 255 - + - - 255 - + - - - - - - - - - - - - - - - ascii - binary - - - - - ascii - binary - - - - @@ -112,21 +38,5 @@
- - - ascii - binary - - - - - - - - - - - - From 436f88170dc1290a2e83ce0d47f5123629b4c292 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 13 Jul 2016 08:24:47 -0500 Subject: [PATCH 165/417] Use shared box.com link for NNDC HDF5 data in Travis runs --- .travis.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 46f5e91bf2..86a2fbb4cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ cache: - $HOME/mpich_install - $HOME/hdf5_install - $HOME/phdf5_install + - $HOME/nndc_hdf5 before_install: # ============== Handle Python third-party packages ============== @@ -40,11 +41,12 @@ before_install: install: true before_script: + - if [[ ! -e $HOME/nndc_hdf5/cross_sections.xml ]]; then + wget https://anl.box.com/shared/static/b3373ozjaiarcndy1ikotm4yuawxomwa.xz -O - | tar -C $HOME -xvJ; + fi + - export OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml + - cd data - - git clone --branch=master git://github.com/paulromano/nndc-hdf5 - - cat nndc-hdf5/nndc_hdf5.tar.xz? | tar xJvf - - - rm -rf nndc-hdf5 - - export OPENMC_CROSS_SECTIONS=$PWD/nndc_hdf5/cross_sections.xml - 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 From ef7eb3cc6495e170d63ba77c53c7705054daf104 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 8 Jun 2016 10:18:34 -0500 Subject: [PATCH 166/417] Add example notebook for nuclear data --- .../pythonapi/examples/nuclear-data.ipynb | 630 ++++++++++++++++++ .../pythonapi/examples/nuclear-data.rst | 13 + docs/source/pythonapi/index.rst | 1 + 3 files changed, 644 insertions(+) create mode 100644 docs/source/pythonapi/examples/nuclear-data.ipynb create mode 100644 docs/source/pythonapi/examples/nuclear-data.rst diff --git a/docs/source/pythonapi/examples/nuclear-data.ipynb b/docs/source/pythonapi/examples/nuclear-data.ipynb new file mode 100644 index 0000000000..78a71cd290 --- /dev/null +++ b/docs/source/pythonapi/examples/nuclear-data.ipynb @@ -0,0 +1,630 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this notebook, we will go through the salient features of the `openmc.data` package in the Python API. This package enables inspection, analysis, and conversion of nuclear data from ACE files. Most importantly, the package provides a mean to generate HDF5 nuclear data libraries that are used by the transport solver." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import os\n", + "from pprint import pprint\n", + "\n", + "import h5py\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.cm\n", + "from matplotlib.patches import Rectangle\n", + "\n", + "import openmc.data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first thing we want to do is to read an ACE file into memory and instantiate a `IncidentNeutron` object. The easiest way to do this is with the `openmc.data.IncidentNeutron.from_ace(...)` factory method." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get filename for Gd-157\n", + "filename ='/opt/data/ace/nndc/293.6K/Gd_157_293.6K.ace'\n", + "\n", + "# Load ACE table into object\n", + "gd157 = openmc.data.IncidentNeutron.from_ace(filename)\n", + "gd157" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have our ACE table, we can look at its contents. Let's start off by plotting the total cross section." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "total = gd157.summed_reactions[1]\n", + "plt.loglog(total.xs.x, total.xs.y)\n", + "plt.xlabel('Energy (MeV)')\n", + "plt.ylabel('Cross section (b)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reaction Data\n", + "\n", + "Most of the interesting data for an `IncidentNeutron` instance is contained within the `reactions` attribute, which is a dictionary mapping MT values to `Reaction` objects." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]\n" + ] + } + ], + "source": [ + "pprint(list(gd157.reactions.values())[:10])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's suppose we want to look more closely at the (n,2n) reaction." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Threshold = 6.400881 MeV\n" + ] + }, + { + "data": { + "image/png": "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\n9zC0aV7vrgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "n2n = gd157.reactions[16]\n", + "plt.plot(n2n.xs.x, n2n.xs.y)\n", + "plt.xlabel('Energy (MeV)')\n", + "plt.ylabel('Cross section (b)')\n", + "plt.xlim((n2n.xs.x[0], n2n.xs.x[-1]))\n", + "print('Threshold = {} MeV'.format(n2n.threshold))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To get information on the energy and angle distribution of the neutrons emitted in the reaction, we need to look at the `products` attribute." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "n2n.products" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "neutron = n2n.products[0]\n", + "neutron.distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the neutrons emitted have a correlated angle-energy distribution. Let's look at the `energy_out` attribute to see what the outgoing energy distributions are." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dist = neutron.distribution[0]\n", + "dist.energy_out" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we see we have a tabulated outgoing energy distribution for each incoming energy. Note that the same probability distribution classes that we could use to create a source definition are also used within the `openmc.data` package. Let's plot every fifth distribution to get an idea of what they look like." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nMAzDMAyv/B9ZBCMoWOfF0wAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for e_in, e_out_dist in zip(dist.energy[::5], dist.energy_out[::5]):\n", + " plt.semilogy(e_out_dist.x, e_out_dist.p, label='E={:.2f} MeV'.format(e_in))\n", + "plt.ylim(ymax=10)\n", + "plt.legend()\n", + "plt.xlabel('Outgoing energy (MeV)')\n", + "plt.ylabel('Probability/MeV')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Unresolved resonance probability tables\n", + "\n", + "We can also look at unresolved resonance probability tables which are stored in a `ProbabilityTables` object. In the following example, we'll create a plot showing what the total cross section probability tables look like as a function of incoming energy." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEWCAYAAABIVsEJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXecVNXd/z9net2+C9tg6b0ICGJQeChBQ1CxgprYe4xR\nY9RfNDGJ8VHzWBKNiIoNgtg1FoiIohFUegcpskvZZdll++zMTju/P2bvzNx7z+zcmblTdjnv14sX\ne8/ccubOzPnebyeUUnA4HA6HEyuadE+Aw+FwON0TLkA4HA6HExdcgHA4HA4nLrgA4XA4HE5ccAHC\n4XA4nLjgAoTD4XA4ccEFCIfD4XDiggsQDofD4cRFxgsQQoiFELKBEPKzdM+Fw+FwOCEyXoAAuBfA\nm+meBIfD4XDEpFSAEEIWE0JqCSHbJePnEEL2EkL2EULuDRufCWA3gDoAJJVz5XA4HE7XkFTWwiKE\nTAHQBuB1SunozjENgH0AZgCoBrABwHxK6V5CyMMALABGAGinlM5L2WQ5HA6H0yW6VF6MUvoNIaSv\nZHgigP2U0ioAIIQsB3A+gL2U0gc6x34JoD6Vc+VwOBxO16RUgESgFMCRsO2jCAiVIJTS1yMdTAjh\n5YQ5HA4nDiilCbkGuoMTPSqUUtX+/fGPf1R1/65eZ70mHYtl+8ILL+T3gt+LHnMvlI7zexHfthpk\nggA5BqBP2HZZ55hiHnroIaxZs0aVyUybNk3V/bt6nfWadCzWbTXh9yL+c/N7oXz/SK8rHef3Irbt\nNWvW4KGHHupyHkpJqRMdAAghFQA+opSO6tzWAvgBASd6DYD1ABZQSvcoPB9N9XvIVC666CK8++67\n6Z5GRsDvRQh+L0LwexGCEALanUxYhJBlANYBGEwIOUwIuYZS6gNwO4DPAOwCsFyp8OCIGTZsWLqn\nkDHwexGC34sQ/F6oS6qjsC6PML4CwIp4z/vQQw9h2rRpSVVVuwPDhw9P9xQyBn4vQvB7EYLfC2DN\nmjWqmfwzIQorYdSy53E4HE5PR3jY/tOf/pTwuTLBiZ4wajrRT0Vyc3OxdOnSdE+Dw+GkADWd6D1G\ngJzq5qtEaGpqwldffZXuaXA4nBQwbdo0LkA46tLR0ZHuKXA4nG5GjxAg3ISVOF6vN91T4HA4KUBN\nExZ3onMABGLCORxOz4c70TkcDoeTdrgA4XA4HE5c9AgBwn0gHA6HowwexiuBh/EmB0IIPvnkk3RP\ng8PhqAgP4+WkjJ07d6Z7ChwOJ0PhAoTTJT6fL91T4HA4GUqPECDcB5I8eooAqaysxJNPPpnuaXA4\naYf7QCRwH0jy6CkCZNGiRbj77rvTPQ0OJ+1wHwgnZfSUBMOe8j44nEyCCxBOl/SUhbenvA8OJ5Pg\nAoTD4XA4ccEFCKdLkv3kXlVVhba2tqReA+AaCIeTDHqEAOFRWN2XiooK3HzzzUm/DhcgHE4AXo1X\nAq/G272pra1N+jW4AOFwAvBqvJyUkYqFl1Iq2v7rX/+K+fPnq3oNLkA4HPXhAoSTcbz66qt48803\n0z0NDocTBS5AOBmHRqP+15JrIByO+nABwsk4tFqt6ufkAoTDUR8uQDhdko6Fl2sgHE73oEcIEB7G\n27OQOtU5HI568DBeCTyMN3nwJ3cOp2fBw3g5nBjhgpDDUR8uQOLgxIkTqKurS/c0OApIRZkUDudU\nhQuQOLjkkkt4/5Fugt1ux44dO5gaiNfrxbFjx9IwKw6nZ8AFSBx8/fXX2Lt3b7qnwVFIfX09c/zp\np59GWVmZonOsWbMGr7zySnD7jjvuwJAhQ1SZH4fTXekRTvR0kIxchUyku/oOOjo6sGPHjoiv+/1+\n7Ny5U/H5brvtNuzevRvXXHMNgIBA2bdvX9Tjbr/6bbQ0uYLbWTkmPPPqJYqvy+FkMlyAxInH40n3\nFFRBCJmNFDrbXQXIhx9+iGuvvRZA4L1J38eiRYvw2muvKT6f9PhI9+W2695Fc3NIYGi9ftHr4cKE\nw+nuZLQJixAylBCykBDyFiEk+TW/FZKMRLd04fcHFrhU5l7U1dXh5MmTSb2G2+0O/s0SILfeemtM\n51N6f5pbuIDgnDpk9EpIKd1LKb0FwGUAzkz3fAR6UqKbIEB8Pl/KrjlixAiMHz8+4uuJ3t+6ujrR\nOVL5eXl1Gnj1oX+yK2u6p0bH4bBIqQmLELIYwM8B1FJKR4eNnwPgaQQE2mJK6WNhr80FcDOAJamc\na1f0JAEiCA5BkAhEM20lQl1dXVK1uKKiItG29L2pgVLTnsuqV/3aHE6mkGofyCsAngHwujBACNEA\neBbADADVADYQQj6klO4FAErpRwA+IoR8DGB5iufb44mkgUQSLGpfN1Vkii9H3+HDlRf/SzSWnW3C\nPxdflKYZcTjxk1IBQin9hhDSVzI8EcB+SmkVABBClgM4H8BeQshUABcCMAL4JJVzjYTf7wchBJRS\n+Hy+bh+NFUlQCNvJenrv7lpcJIHk12ug8US+Z6yjwp3uHE53IhOisEoBHAnbPoqAUAGl9CsAX6Vj\nUpFwOp0wm82glMLlcsFqtaZ7SgkRSVAkU4BoNJqU+lyAxDUQpcdXDs0XbVfsEuegUDCESGYoRxxO\nzGSCAEmYiy4Kqf/Dhg3D8OHDk3at5uZmaLVaUEqxdOlS2O32pF0rVtauXRvzMQ6HAwBw5MgRLFu2\nLDje0dEBANi2bZtoXA0E7UM47/Hjx0XXaG5uFr2eKF988QUqKysjnlPJdaRzamxsjHCs2P/i0xJo\nfSFty2OUa6wGpxe/uHCpfNwIzJibuK8onu9FT+VUvhe7d+/Gnj17VD0nSbUpodOE9ZHgRCeEnAHg\nIUrpOZ3b9wGg4Y70KOejqXwPlZWVmDp1Knw+H7799luUl5en7NrRWLZsGS6//PKYjqmvr0dhYSFm\nz56NlStXBsfb2tpgt9vxwAMP4C9/+Yuq89TpdPD5fMHw2unTp2P16tXB14cPH449e/bEbeaSagsr\nV67Eli1bcP/99wfPGb6PkuuMHDkSu3btCu47fvx4bN68WXbsxEc+F8/FJ3697155+LLR6Y143SXv\nXRl1btGI53vRU+H3IkSnKTkh/TcdYbwEYqV9A4CBhJC+hBADgPkA/h3LCVPZD6S9vR1WqxVmsxlO\npzMl10wmkUxVgokp1aamZMDKA+FwTlXU7AeSUgFCCFkGYB2AwYSQw4SQayilPgC3A/gMwC4Ayyml\nMelZDz30UMqKG7a3t8NisfQYARJJUCTTBxLtib+7O9i7wquTCzJ/JNnGc0Y4SWDatGnds6EUpZSp\nO1JKVwBYEe95BQGSCiEiCBCtVtsjBEg6nOixcvLkSRiNRthstrjPEa8Gctttt+HQoUOqne/wiELZ\nWDnDrMXhJIs1a9aoZrHpEU70VHYkFASIRqPpEQIkmgaSCSasgoICzJo1C5999llcxyei0bzzzjs4\nceIERo4cGfc54sXk8ODyy+QO/uxsExa+cGHK58PpGajZkbBHCJBU0t7eDrPZDEJIjxAg3UEDAYDD\nhw/LxioqKrBw4UKce+65XR773nvvqf5ZRdJAzEY/nB3JtQy31rfLorayc0x49uWLk3pdDkdKjxAg\nqTZhmc1mAIDL1f0TwNIhQOLRCFjHVFVVYc2aNVEFyEsvvRTz9eLlotniTpX/er8owp4hpKG+wXEd\nWxAZGYmKzbzKL0ch3IQlIZUmLJfLFRQgPUEDiWTC6i5RWJmiIUXCbPTB2dF1tYLqAbnM8f47eNtk\njvpwE1YaETLRhb+7O/FoIBs3bkRpaSmKi4uTP8FOImkt6RIgSp3ol88VO8hf+Cjxe8az2TmZQo8Q\nIKk0YfU0ARKPE/3000/HjBkz8Pnnn8teSzVSAbJq1aqEzkcpxbZt2zB27FgA6hdhNOh9cHuU1U/z\n6gh0Xrng9DKy2bUev6hIIy/QyIkEN2FJSKUJS1oLq7sTrw8kvGFTKuiqY+L27dvRt29fZGdn46c/\n/WlC11m1ahVmz54tu57SjoTRmPYTuVnqsy96Mfc9OqqAOd5/0wnZmHQ2vEAjJxJqmrAyuqFUJiII\nkJ6SSBgtEz2SAFEz2U96rljPPWbMGNx9992qzEWoAZbJsJIROZx00GM0kFSasHr37g1KKVpbW5N+\nvWTj8/mCtanCiZYHkmrfQzSh0t7entD5J06ciBdeeCGhc6SKw2PkyYiDvjsu1kK4jOFEgJuwJKTa\nhGUymeD3+3HihNyU0N3wer0wGAwxm7BSHZ2ldvmTs88+G19//XVwe8OGDfjkk08UmyXV9I0YDD64\n3Yn1lZFW+aUEuOQXb3ZuafH+isDf2dkmvPTs+Qldi9O94VFYaaSn+UB8Ph9TgCSzI2Eyal3FOs9+\n/fqJBAgA/P3vf0ddXepDZ2dNrWeOr/iS7RtRRAQBx30jHDXhAiRGhDwQSmmP8IEIGkisJiw1n8CV\nCJRoYbyxChDW/FmBAZHeZ6ZV95VFbFHKFCI6t4+XR+GoBhcgMRKugfQEARJJA8m0UiaR+Pvf/w4g\nMa1m+fLlUfdRIjAeffRRdIzUIKdviSoCxmzwwanQtHV4mDhiq/+OuoAQkRBpVlwz4cRDjxAg6cgD\n8fv9PUKACBqI1ytuahQtEz3VT+DJLPG+YMECVc5z//33AwD++eLNuOKXUwEAbx6M31d0zWy2Oe25\nj3rHfc5IEB/leSSnCGo60XtEGG8q+4GEh/H2BB9IvE50NVFDOMR6DiUCsKvPt6vjb7vh+eDfZq36\nPzGDPrpQ8mnZ84t0l3geyalDt+0H0hPoaRpIvCasZGogLGGgdhRWtPkfPnwYffv2Re/eiT3t/2KQ\n+PhHthxHGyO7PBZ+cobc6b5a4nCPVF+r7EAjc7yrtrocTiS4AImRniZA4nWi93Sam5sBALW1tczX\n4xWg954mzy7/8+bEI79MBh9cCYQCs+prhZu0AG7W4sjhAiRGBAHi8/l6hABJRxhvPKRaAxk9enRc\n5xXYtOEAxp8+MK5j4+HKc8RC6LW35cmGQOTS8VRLROYtDWMfbtbiSOkRAiTVTnSTyQSfz9djfCB6\nvT6tJqx09ECPdf6x7v+fFVsUCxCLDmhPkQWptm82c7yvkra6fsobWfUAeCa6hFRmore1tcFut/cY\nE5aggWS6CUttDSRRogmUWKbzq+Em5vjbP8b//TIZ/XAl0BmRZdJivWPeyKr7wTPR04TX60VHRwcs\nFgvcbnePECDC+4nVhJVMDSRdSXqZlhyYCOfPYWsUb7/DrvArNW1JTVoAoPWnXlPkZDZcgMSAw+GA\n1WoFIQQmk6lHCJB3330XBw4cYGogGo0mLRoIayFXSwOhlIIQ0i2EhUlL4GL4IpLB0UF5om2WSYs3\nsuJI4QIkBlpbW2G32wEAJpMJbrc7uNB2VzZu3Ih+/fqhsrJSNO73+5m+EYFMW4BTLUBS8f7n9WP7\nKx7b2gxHnD4To9GPDgWmLZ+GyDQOv777fs85ySGqACGElAGYD+AsACUAnAB2AvgEwApKaWaE6aSA\ntrY22Gw2AAhqIS6XCxaLJc0zi5+ZM2diypQp2Lhxo2jc7/dDp9OlRYCkOseku/GbUfKf7bIDHkXH\nXnBeA3P8zbfFpi2Ws73kUJNszE+A+QvekI1nZ5uw6Pl5iubE6b50+UhBCHkFwMsA3AAeA7AAwK0A\nPgdwDoBvCCFnJ3uSmUK4BgKgRzSV8ng8sFgs8HjEC5DP54Ner09LKZN4zh2LBhLPNdTqSJipGIzR\nnwOZjax41d9TmmgayBOU0p2M8Z0A3iOEGAD0UX9amYkQgSXQE/wgHo8HRqMRhBD4fD5otYFktGgm\nLDVJpBpvvNdKtgBItaZj0gKuBNxVZ88WZ6h/9XaObJ8fRxXJxgZuU94T57br3hUJFp6Y2P3pUoCE\nC49OYTEUAV/aD5RSN6XUDeBAcqcYnVTlgbS2tgZNWABgs9ngcDiSes1k4/F4oNfrYTAY4Ha7YTab\nAXQ/E5bSBTtViZF7/3cL3nu0Gdf4HkjJ9S4bYBNtL9rTltD5DEY/3Ap8JUzHeidS05bOI773XEtJ\nDynPAyGEzAHwPICDCHxf+hFCbqKUrlBlFgmSqjwQqQZit9u7fVvbSAIkmgkrUcKFRCqLKaqlGSgV\ncs7aNph72aLvqDIWLUF7AhFcUy9okY29/x95gyu3mb2E8NpamUs68kCeAPA/lNIDAEAIGYBOJ3rC\nM+hGSDWQrKwstLTIf2jdCUGA6PV6UUOlnhyFBaRu/h8Nfka0PffgrTAUWJN+3RsH5zPH/7GX3f0w\nXfB6W90bpQKkVRAenfwIoHs/eseB1ImelZXVozSQcEe6YMLaunUrysvLsXnzZowcOTJicUE1SXYe\nSKRrxDKn8O3i4mIcO3ZM0Xl2zF4sGxvx/TUxzSVdxNS7PUJHxGhws1b3oksBQggRelxuJIR8CuAt\nBMyelwDYkOS5ZRyNjY3IywslXNnt9m6vgbjdbpEJS0AwYQHA0aNHUVVVhRMnlDtMoxGrKUltJ7qa\n1zh+/DjD1Kf8XO66dhgKUxMKbtFq0O6Lzw/E6t2+5UcDtIzy9BoKWT2XrvwlnO5JNA1kbtjftQCm\ndv5dB4BdwKcH09DQgLKysuB2TzFhGQwGmQDx+/0wGo3BbZ1O/FXJtFImsTrRM8kEt27CUub4zCO3\nq36t64ey+5v8cXNNXOerHpjHHB+86bhsTOov4X6S7k+0KKzuoVuniIaGBpEG0pNMWFIfiJAfIiAV\nIN2VrkxYiVQUSEbYrrvOAUNh8v0lAGDVETgSbHQVTqSy8eHw0ijdn2gmrAcA/JNSymxjRgiZDsBC\nKf04GZNTSlNTE3Jy5HHrasMSID1BA2H5QLxeL6zW0OIlXVxTXc490j4lJSWorq5OeRSWwO9+9zsA\nwKFDh1Q9LwB8N/lV5vjp318GTY5Z1Wv9brj49/PknkY4EwjAO8boiFhc2Sza9jFKo2g9fpljHeDO\n9Uwl2mPlDgAfE0JcADYjZLoaBGAsAhnpjyRrcoSQ8wHMAWAH8DKldBVrv9/+9rd46aWXkjWNIFIB\nYrfbUV1dnfTrJhNpGG/4OKtES7x5FK+++iruvPNONDayW6qGE4twys7OjukzUDuM91//Cix2Q4cO\nVeW8Smj/9ZuysdylN6l6jWuHyj+Dp3bI753R4EOHQsc6q76WlEifPHeuZybRTFgfAviQEDIIwE8A\nFANoAbAUwI2U0qSmYYddPwfA3wAwBciqVauwatUqzJo1K5nTQUNDA3JzQ09WPcmEJRUgUg1E2h8k\nVg3k+++/R1OTvJZSoggCQY0orK7OEen9Rjom1RW3Ok44YCxKrrnLqoOsiOPPprLb8X7+cQ48brGG\nUVshrq9VfLARuhhyVXjIb+ahyLBNKd0PYH+iFyOELAbwcwC1lNLRYePnAHgagdpciymlj0kOfQDA\nPyOdd9GiRbjxxhuxY8cOUZ6G2vREE5bQkTCaD0QQHPEmFsbiX0hmGK8gCFn7x6OdZEpxxs+Hvyra\nvrj+btWvcfsIuYB6cge7EsOEWfKHhXUrxLkpR4bIc1UGbjuh2A3CtZL0o+hXTQgZTAh5gRDyGSHk\nC+FfHNd7BcBsybk1AJ7tHB8BYAEhZGjY648C+JRSujXSSc855xxMnToV/+///b84pqQMj8eD9vZ2\nZGVlBcd6igDR6XRME1a4BiIIDq838ciZdLbD7Upj6WpeR48eVeX6qcJ1IvNK7BgVFGz06TXwMv5x\nMhOloTVvI1DK5CUAcbvWKKXfEEL6SoYnAthPKa0CAELIcgDnA9hLCLkdwAwAWYSQgZTSFyKd+8kn\nn8SoUaNw6aWXYsqUKfFOMSLHjx9HUVGR6Ek6Ozs7KWaZVOLxeIICROpEN5lCkdpqC5DwhTdTSpl0\n9Vp4Dkzv3r2D9ypVtbViZeWYRczxC07cl+KZhJjzc3Ep+bc+lBdnjASzxW7YQHihRm7aSh1KBYiX\nUrowSXMoBXAkbPsoAkIFlNJnADzDOkhKXl4enn32WVx33XXYsmWL6j06ampqUFJSIhrLz8/HyZPs\n1qHdBcGExdJAhERCILRQqiFA0kmsPhMWqcjGTxbO420w9059bS4WWr0fPo9Yu/BqCdMvwmqxG064\nOYubtlKHUgHyESHkVgDvA+gQBiml7O40Keaii0JPG3q9HvPmzcNVV12l6jU2btwIv9+PZcuWBcec\nTieOHz8uGksna9eujfkYl8uF9957D9XV1fjyyy+DQmTbtm0wGAzB/VasCJQ9e+uttwAg5ve9b98+\nAMCyZcuCi7dwfF1dnehcglYnvdes6wkmRKXzeffdd5GdnR2cTzjSnigspNdwubrXYrW89Gnm+DUd\nv43rfFYt4GDYJJTklQwYKzf/7gO7hteAnXJnvUevwSW/CESkGSWvRfouxPMb6Sns3r0be/bsUfWc\nRMmTGCGEFeROKaX9Y75gwIT1keBEJ4ScAeAhSuk5ndv3dZ5b6kiPdD4a/h4aGxsxZswYLF68WNWo\nrOeeew7bt2/H888/HxyjlMJkMqG5uVlk7kkXy5Ytw+WXXx7TMSaTCU1NTbjpppswbdo0XHNNIHf0\nd7/7HfLz83HffQGTx9dff42zzz4bR44cQXl5OWbNmoXPPvtM8XVuu+02PPfcc6CUQqfTwefzBdvL\nTpo0Cd99911w33HjxmHLli2iiKnCwkJZKRVCCAYNGoT9+/dj+vTpWL16dVT/SnV1NYqLi3Hrrbdi\n4UKxUq3Ep7V+/XpMnDgxuB1JC52DvriIDIDVJg5xrRgoXeqAuuNswWUwsm3/IybJx9atFGuGOj37\nPjSeZGuQl1XdAkvvkM+ricpNs0aNXKs3e9lzpEaWw12c7b612iDbZ98Gdj4XU4AYQvfW4PQGTVyE\nAEvevoJ5nnh+Iz2VTlNyQg5JpVFY/RK5iAQCsTlzA4CBnYKlBoH2uQtiOWF4P5Dc3Fy8/PLLuOaa\na7Bt2zZR1FQisExYhJDgAlJaWqrKdVKN4EQ3m82ip2nBtCWQqU50gVh9IPGasMKFR0/izb5iYXpu\n5eUw9c6cVs1eHYFOqtGEFWzsysT1q2vfQXNT6Lu94p1A6ZjsHBOeffniZEw3o0lHPxA9gFsACO1r\n1wBYRClV1og5dJ5lAKYByCeEHAbwR0rpK53O8s8QCuONSc+S9gOZOXMmLrzwQtx222144w15v+Z4\nqK6uxhlnnCEbLygoQH19fbcUIJTSYBdCi8Ui6q4oONcFBNNWpvlA4s0DSXZxRp2ewGzQwO+n0GhC\nAtProRG1g0xiRYXcBDTf/euEzqmkR4nB4IfbLddqKk+TO9z7bzoBVsZNuGkLAEwO9jIVLlROJdLR\nD2QhAD2A5zq3f9E5dn0sF6OUMnXHzsZUcfcWYXUkfPTRRzFu3Di88cYbWLAgJoWGSVVVFS699FLZ\nuCBAuiOC9kEIgcViQXt7e/A1qRO9o6MjeAygbvhqIqVM1BQgydCMnO3iKK39e+SLVlGxDv7k9O1S\nlUSrBt8yWFze5Lb6NrS4xftMn8kOSlnxpbyZVTh+PYHG0/mZZlChzEwk5RoIgNMppWPCtr8ghGxT\nZQYqwOpIaDabsWTJEvzsZz/DlClTUF5entA1Dhw4gIEDB8rGu3MkliBAAMBisaCtrY35GhASIMnq\nUBhOMivlpirsNhbxOnC43BcAAAf3eKDVyu+F3w8kUPcxbjZPlVcN/p/tN8d9vv87W/6+H93G1hZY\nJVPCI7YaZoTys7K/aAWvyhiZdGggPkLIAErpQQAghPRHAvkgahOpJ/qECRNw9913Y8GCBfjyyy9F\nT9Sx0NHRgZqaGvTp00f2Wk/QQICAAAl3Uks1EME/oqYGooY5Sc1EwlRcPxZqjrqZ4wNHqltIsTvw\ns7Plv7EPnIXBv7MRuld6t/ghwU86+5NIoBpyShZuVFMDUfoccw+ALwkhawghXwH4AoD6tRLiRBAg\nLO655x7Y7Xb84Q9/iPv8lZWVKCsrYwqggoIC1NWx6wFlOuF+DqkJS+pET4YA6aqsSKwoPUdX81e3\nlElmZqhnOhat+vetLdeMljz5v0j09DySadOmMa028aA0Cmt1Z0HFIZ1DP1BKO7o6JlPQaDR4/fXX\nMW7cOEydOhXnnHNOzOfYuXMnRowYwXytpKQEW7dGrLKS0YRrIGazmelE37hxI6ZMmZIUH4hgDlNi\nVormA1GKklyPWIhUiSDV4kOrA3xpiG9w1jpg7iUP2XWecMAcR3HHG4ZRsO7eoj3yZ12j0Y+OjsC4\nTuuH1xf4W0kvEo46ROsHMp1S+kVYa1uBgZ0xxO8lcW6KiWTCEigsLMTSpUsxf/58bNiwQdRVUAlb\ntmzB2LFjma+VlZXh44/T2g4lbsK1jEhO9PHjx6NXr15J0UAiFWhMZkdCQYAku4bVR54qVPsdGEHz\nMQr5yCfJzRMaNlr8RL13R2qeopf3e1HxvvEmK0bi3J+GfI/tYc8F//1BnEuSXc8uGt5Vi91w01ZP\nM2ml0ok+FQFz1VzGaxRAxgiQaEydOhV33HEH5s2bh6+//hpms3I78pYtW3D99eyAs7KysoiF9jKd\nrkxYLpcreI90Op2qGohwrCA4pFpBLAIkVp9GVwJEbaEyWdcbG311eA8/IosaMBJ5GE3zMRg5MBBl\nPTTURqNF2iK+3PUOGArCWgQ0O6HJVvY7tGiBdoXz1hn98HaENJZIGom0xa6AtNVuTzNppcyJTin9\nY+eff6aUirLRCSFqJhemhHvvvRfbt2/HDTfcgCVLlihaqCil2LRpE5577jnm66WlpTh27JjaU00J\nTqczKCSkAsTpdAaz6/V6fVI1kEhmJSFTXU26EiBqX+snut4Y5y6Cn1IcQgt2oQEf+A/hKNowCDkY\nSfIwiuSDUnPKerT3G8DWhKoOueBV17onY+uc10TbReXyzyDrrfnMY28abpeNPbWD3Ytn6E/F1QTW\nf8sOAe67TVnwi18DXH6ZOC8mO9uEhS9IDTOnHkqjsN4FME4y9g6A8epOJ7kQQrB48WKcddZZePzx\nx3HvvfdGPWbXrl2wWCzo21daRDhAQUEBWltbRYtxd6ErAeJyuZIuQATfh1SACOf2eDzBelxq5YGo\n7QNRgoapAklJAAAgAElEQVQQDEA2BiAbF2j6w0E92I0G7KAN+I//MJ75L8FZ+UU4q6AQk/MKkRVn\ntGAijJ0gLrC4+fs2SF1TGi2F35c54bEWHUF7An3cmdntYJi2GMK9p2kl8RLNBzIUgR4d2RI/SBYC\nrW0zgmg+kHDMZjM++OADTJ48GWVlZbjiCnbNHIH//Oc/mDlzZsTXNRpNUAth5YlkMlIBEu5ElwoQ\nqQkrkXwK4Wk7kgYSLliiCRCBTDRhRcJK9DgdvXA66QVKKXqN8+O/J0/graOHcd/OrRhiz8JZ+UWw\nUzsqYIcmDYlxJeXyml39h8nnUXlA3ev6m5yK+73fOjyUmPjktia0ednfSbPBByej7e6RYQXM/Qdv\nOi5244eVTBHIHDEaO6n0gQxBoINgDsR+kFYAN6gyAxWINSStrKwMK1euxIwZM5CVlYW5c1kungBL\nly7F3/72t6jnO3r0aLcTIOFCwmKxwOFwMF/T6XRBDSTePhgsE00kARKugUQjVg1EKMmSTgESDiEE\nA212DLTZcU3fAXD5fNjYeBJfn6zD29iDFrgxnOZiJPIxAnnIJfKFvSfhvOUD5rjl7a4TFu89LWSm\nuu/7GrSFuTGuP4cdZv/3D4oVzUnjB1iRYd21xW4qfSBCT/LJlNJvE75aBjFixAj8+9//xty5c/HU\nU08xK3SuX78eDQ0NmD59epfnqqiowKFDhxRpQJlEuAYirUQb7kQPN2Gp2UjJ5/PJGlmFnzu8P4la\npMOEFQsmrRZTCoowpaAIZx+uQAN1YScasB0n8Sb2I4cace7uIpxVWIjT8/Jg0qbHGZ/J/L/TxMva\nh5WxfeY+PYHWE/vDxKlo1lLqA7mZELKH0kCNZ0JILoAnKKXXJm9qyWfixIlYvXo1zj33XOzduxcP\nPvhgMKzV4/HgzjvvxO9///uo/bwHDx7M7C+R6YQLkOzsbDQ3Nwcd15FMWMICnEhJk/AoLJPJpEgD\nUdsHkqpaWImSR0w4GyU4GyVBZ7xD14p/7NuPvS0tGJeXi7MKCjHJ1guDrPaUvwe9AfAw5LxGA5kP\nJRFctQ6YGPkmiWAy+OBimLZqzhRX8C77sl6WyR6tQ+KpglIBMloQHgBAKW0khJyWpDnFTCw+ECkj\nR47E999/jxtuuAHjx4/H7bffjuLiYjzzzDPIzc3FddddF/UcgwcPxptvvhl1v0wjXIAIJd3b2tpg\nt9tlJixBgAhaQawCJJIJS+inEk4k5zqLni5AwhGc8WcP6I1fDx6EFo8H3508ia/r6vD6ofXo8Psw\nObcQZ+QWoMBnR6E2+UEdp09hdzc8fFBdTe/9Mnm+yfwTt0KXF12oGDVAB0OYzZt+Qj4I4MNvxL4R\np11es8vs8DCTRaXRWkDmRWylo5iihhCSSyltBABCSF4MxyadRNPyS0pK8PHHH+Pjjz/GG2+8gZMn\nT+KnP/0pfv3rX0OrwEQwePBg7N+/P6E5pIPwUF0AyMnJQVNTk0yAhJuw4hUgLAQBIq0lFi28NxFS\n7UQnJOCDjbQtXDcW4dXWKHwntThDV4ozikvxYH+gqr0N3zfV478NJ7C2aRcsRIfRhnyM0udhpD4X\nOZr0+k+8XgqdLvQ+/b5AXkq81F73SvDvXotuitiq95w+7Ki2F/eyv196nR+e8EZZBgASLSuWbPdM\nM22lo5jiEwC+JYS83bl9CYC/Jnz1DIIQgrlz53bpUI/EwIEDceDAAfj9/qjmrkwi3M8BBMxYTU1N\nKCsrg9vthtEYWHD0en3QP6KGCUvA7/dDr9fD7/eL7p3Qo0SJDySTw3h1OoLCXuLFy8OwreuN7PId\nsSX9UfS12NDXYsOlJRXYva0dR/wObPc04OuOGjzfthv5GhNO9xZgnCUfYyx5sGtTGy58aL+4+pFO\nL9eQCkvj+14tLwm16p175BeKys6btYCTcbkzT2sUbe8rlQecHt2cJRsr/+Eks2gj0HPzSJTWwnqd\nELIRgOBNvpBSujt50+pe2Gw25OXl4fDhw6ioqEj3dBTT3t4uEiCCBtLe3g6j0Rh8KlZDAwl/wg4P\n49VqtdDr9fB4PEGB5fV6YTabFflAYp2Dx+OBz+fD0qXy0uSZRlkf5RqDVAg52ijyYME0WDANZfDp\n/KiibajWteCDpio8XLMVfYw2jLPkY5wlH1OyC2DVpT7/RE5XBUaUsWXKW6LtST9czdzv6iFs89f/\nbmlnjkfDaWN/XtZWedlAxwkHrrpgSXA7K8eEZ169JK7rppNYzFB5ABydHQQLCSH9pNnppzJjx47F\nli1bupUAaWlpQXZ2dnA7JycHzc3NaG1tFY2zfCCJRGGFO9FZAiSSc72rcykRMIJQitRVMR1hvKlC\nSzToT7Iwo6gIv8BAuP0+7HE2Y3N7PZY2HMQfqzdjiCUb4+0FGGvLQx9ih4mKl4cOF4XRlFw/kd7E\n1sYSwd/ohCZXuT/IqgMcYV+RLANkja9MRj9cHcqsDUyHu2S7hdEd8far35aNZ5qgUdrS9o8AJiCQ\nF/IKAt0JlwL4SfKm1r0YN24cNm/ejHnz5qV7KoppaWlBcXEoFl7QQFpaWpCVFVLR9Xp9MEtd0ETU\n8oGECxCBWDSQWASIUqF0KmDQaDHGmocx1jxcUwhQgx/bHY3Y0FqPxTX78IOzGf2sNkzIy8X43DxM\nyM3Df1fKHxrOnM72O2QSrbe8xRzPf4udyvarkWJNwqSVayqvDWH0J3nKDA3DL8ISuTKhwpBFLKHC\nGksnSjWQeQBOA7AZACil1YQQeXGaNJFIFJZajB8/HosWLUrb9eNBKihyc3Nx8uRJtLS0wG4Pfbyp\nFiA+nw82my0mH4gSzGZzUJPiiDFrdZiUVYhJWYEmTdYCL3a2NGNTYyP+fewY/rhzB7RUi0HIxiDk\nYCCyUQJ1w2q7QqcDpIpjohqRu74dhoL4W/RKqemXzRwfuK22Mxkx7NoRCjmmgnREYbkppZQQQgGA\nEJK6b44C1GqOkgjjx4/Hpk2bklIAMFk0NzeLTFW9e/fG8ePHk6KBKPGBCMTjA1EiSOx2O9rb23u0\nqUotjFotxufmYXxuHtB/ACileHNFPfajGfvRhJU4DAc8mLA1D+Ny8jE+Ow+jsnJg7Ixa1OopfB7x\n70CWGxKDu2PYaPmSs25VqHKCTo9gMUifjzJbAUvZ9BO2H2zS3uih+yYNhcsvvobB4IObkVfSXCCf\ne3a92M/iJ8ClVywXXwOM26PC0pKOKKy3CCGLAOQQQm4AcC0A5Y0ATgFKS0uh1Wrx448/YsCAAeme\njiKkgqKkpARfffWVbFyn06G9vR2EEDidTmg0moQ0EJ1OB6/XC7/fHxQg4dpGPD4QJXABEj+EEBQT\nK4phxdkoAQA00w64szuwrbUBj9TswiFXKwaaszDWloeZQ7MxoSAH+aZQDsXOb8VOer2ekRvkDTTH\nipWJZ4VMad+tcYheG3pabOHLtLkdJDukmXTUt8Mo0VQuL5Cb8yrPYlf33bTcAuoWv1clYcB+HcOu\n5af4xYVLkZ1jwrMvX9zl8alAaRTW/xFCZgFoQcAP8gdK6aqkzqybQQjB9OnTsXr16m4lQMI1kOLi\nYlRXVzM1EKfTCavVCpfLBaPRmJATXcit8fl80Gg0MJlMItOS1+uN2V+hRChkZWXB4XB0ewGSKVVx\ns4kRo3LzMD034Edz+rzY1d6ErW0NeHXfYfxq3Xb0NhtxemEuJhbmINeThxKdpUsNvbYqCZFgWgAx\nPO/4H3hdtP3Nv+Vaxc92yksfmbQULsbnkj1NfvEft+aLtvvtrpcnCDEQzt6cIb4QpU50K4AvKKWr\nCCFDAAwhhOgppdwjGcbMmTOxYsUK3HjjjemeiiJYGkhNTQ1OnDiBoqKi4HhubqDqqdD21mg0Roxk\nigRr0ejo6IBWq4XVahUVchR8IOHVgSMtOmpqIN1FsPQZKe+wV1+V/OLY0cqTmLU6TLAXYIK9AOVD\nPfD5KfY0tWJ9XSPW1NRjbfUBeODHSGMuRppycZa1EEOt2dAnOXeqYAT7u7Nvm7qf95y+bP/aY8fl\nGpBW54cvLFmRVVrepyHQ+sVjQatf+p8fACg3YX0N4KzOGlgrAWwEcBmArmuhn2LMmDED99xzT7dJ\nKGxubpYJkKNHj6Kmpga9e/cOjguRWmazGS6XC1arFa2t7GY+kQgXAILwcTgcMBgMIISIepH4fD5k\nZ2eLhEo0v5JSH4jD4VClEKSauDsoDEb5+/P7KTQaZSuF201hMIT2jbTYR/LRycflDoqi3vKSHl2h\n1RCMzMvCyLwsXDukL3Z+S1DrdWKnqxG7XI3408FtOOpyYKgtGyOtORhuy8FQcw7KjHIthRAKSsVj\nLMd6TPNLoI+8q84JU6Gy0OBsA9AsiQfpO7JNtH1QKy8tb2uSC6TeVc2ysXSiVIAQSmk7IeQ6AAsp\npY8TQrYmc2LdkfLychQVFeG7777DmWeeme7pREWqgeTn50Ov12Pz5s249tpQnUxBmOTm5sLpdCIr\nKwsnTrDrCCnB6/XCYrGgra0NBoMBBoNBJCy8Xq9iARJLGG9WVhYaGhrSqoGwhMK6z9nmCHuW8jof\n330p1koqBrI1ksCCK3+fJrP4gcdoTUzIejoo9Ayh2EtnRi+bGTNsJSgo1KGNerG7rQm72pqw6mQN\nnm7bA4fPi2HWbAy35mB45/9DeptkxQpHjw/5Pfw+Ck2n45xoAKpg+gMiaCbSEiusz2zFmfJu3gM3\nngd/llyoPD9dHul10xftotySSA54KYJWQhUECaQCxQKEEDIZAY1DCFHgdaQZXHrppXjrrbcyXoA4\nHA5oNBpRJjohBKNHj8bq1avxyCOPBMdLSgJO0/z8fLhcLlgsFni93mAUVSxQSuHz+WA2m+FwOKDX\n60VRXpRS+P3+oL8ifG7S84T/L/2bhaCBpEqAlJQb0NEhPueJ4z3M6ksoQOWL2eb/AlJBZc8iotIs\nDQ0+AAQDkYuBxlycbwSyBmjQ4HVjj6MJux1N+Kj+KB6r2gm6h2JUVjZGZecE/mVlw4LQwtxYH5IY\nOXniZc3rAnQxWPgaq8U715+QZ6Zn58qXzrKH/80+4fO/kQ09NUP8u/m/0pOyfdZ+YIfHJRbs9aUZ\nkz0BQLkAuQPA/QDep5TuIoT0B/Bl8qYVG5mQByJw2WWXYcaMGXjiiSdiXlxTidTPIXDmmWdi9erV\nGDVqVHBsxIgRAIB+/fph+/bt0Ov1QX+IzRZbIpnX64VOp4PRaAxqIOHNrATHus1mUyRABHMUpVSR\nAJH6QIYNG4aDBw/C7XZ3Gx9IJpGVw34Srj4qH+s3TLwYHtojv9+eDsAOAyaaijDRVATkdz505Luw\ns7kZ25ubsKSqEjtbmmAg2qCWUqGxY5A5C4UMSfHjV+zfYW4vL0icluZYzIvOWgfMUUrRW7UUDokD\n/ozz5Wbite/YQT0EmgRiDVKeB0Ip/RoBP4iw/SOAX6syAxXIhDwQgaFDh6K0tBQrV67EnDlz0j2d\niNTV1aGwsFA2fs8992DOnDkiwWA2m1FbW4u33noL69atQ69evYL+EKUCRFic3W43dDod9Hp90AcS\n3o/d5/NBp9PBarWKqvQq0UCi+TZYGohGo4m7TW9JSQmqq6tjOoYTO4QQ9DaaUdzLjFm9AuZUSil+\nqHVil6MZu9ua8E5TJfY5W0BBUaG1o0JnRz9dFvrp7Cjx65mOek+kUiQkem+P1mZ5ZJXXrYOO4SZa\n3mehbOy8w9fC3DskVO7qKy/h8rcqLRwSx3r2+AScPp2kIw+EEwO33nor/vnPf2a0AImkgdjtdkya\nNEk2XlRUBJ1Oh5aWFgwYMCCogSglXIDo9XoYDIagBhIeheX1epmRWUo0kGgCICcnBy0tLSIB4vP5\ngv6YWMuc6HTp+fl43IFGTsmE+iF7Olc7SZZV2r6rfcXbBGUmG8pMNszOL4XRHJhfnbsD6yobcLCj\nFds66vFu64+o2+hEP7Mdgy1ZGGjJwgCzHQMtWbBSPfP9SIf0ekDJV+PH7ZE+FPmi/+8+L4u2rzw4\nHzpJva7fjekNKddWN6G5A8jOkM7GXIAkgcsuuwz33Xcftm/fjtGjR6d7OkwiaSBdodPp0NzcDKvV\nCpPJFJMAERb3jo4O6HS6oOO8Kw2kKwEiJDLGooEUFhaisbFRdozdbkdbW1vMJqx0mSj3bZCvHoQ4\nRYuxz0uh1Slf7KUmGdbTudvtQyKFDqXRZlk58vvndsV/fkIIiowmTLIWYZI19HBkyKI44GzFvvZm\nHGxvxZqG4zjobIUfFIPtdgyy2TDIZsdgmx2D7HYUWgygYVnmE34i17LX/7cNSnNpTVkauFq6/m4e\n+ZXcf9L/k7tkY8+emxnOcwEuQJKA2WzGfffdhwcffBAffvhhuqfDJJIG0hU6nQ4OhwNWqzVowlJK\neJ9zwXEeroEI/UYEDcRms6GtrU12vIAgQLrSQDQajWgsJycHLpcrmPU+adIk3H333XjggQdQU1Oj\n+L0IqCVAtFowF6NYnvgtVvFcjlSycxIGDWOHnjaeFD8l5xcre2+s8FoAMJvlAmjrOvFj/MBhseSu\nsOqesGuhSEOYzVodRtlyMcqWK9qvxe/GQWcrDrS3YE9DKz46WoMD7a0wGQiG5loxLM+GYblWFLbl\nY5A1C1n6kONh4FD5fZQ2zBK49Lli2diSXx4TRYr5/YF5h+Opd0AvLYPS5gRsZsDhBNilt1KK0kTC\nxwE8DMCJQB7IaAB3Ukozv6lCmrj55pvxxBNPYN26dRkZkVVbWxuMrlKKEPJrs9lEWoMSWBpIW1sb\nevfujdzcXBw+fBhAQMAYDAbk5uaisTHU2EdqXpJqIKzyKn/+859hMpnw29/+FkBAAAoFIwHgzjvv\nxCWXXILHHntM8fsIRyg/3xVSTYAlLFiLEQAcPtQBtUubq01+ObvgZdUBdbUzk13+BN/WFFrQw81t\nxeXia/s8bF+H3mNEvsGIidmhHAxKKbQVjdjX7MDuxjZsOtGCbdXHcbC9FVatDn3NNvQz21BEzehr\ntKGP0YZigxk6osH+PWyNfLw7CxqDeE4Wi3jb45Tfry0/lRdnHXVu2JfnrwuY10slSjWQn1JKf0cI\nmQegEsCFCDjVuQCJgMlkwuOPP46bbroJmzZtgsGQZKN1jFRVVeGMM86I6Zg+ffoAAHr16oWcnBzR\nAh+NcA1EasLKz88POsw7OjpgNBpRUFCAurq64PHSyryCqUs4r1TbAAKaYHh/Fq1Wi7y8vKAAEZ7u\nCwrkSVxKCK9YzKK1xYfqI+J5DxmR/D7lmYpUM4glkikp82HmUhBYWrMxVpONsfkA8oGWXC00OqDW\n7UJleysqnW3YXtOMb5vqcMzbjgZfB3ppzSigZvSGBb1hQS+Y0RtWZEGPjh31smvpDQFflgDrXjA1\nUJ0G8PoBQ2YYj5TOQthvDoC3KaXNqag4SwjpB+D3ALIopZcm/YIqM3/+fCxduhSPPPJIRkWKAQEB\n0rdv35iO6d+/P4BA4ciCggJZL/OukDrRTSYTmpqaoNfrkZ+fH1zUBQFSWFgoOn8kASKclxDCNGGF\n93yXXksgVk1M4K677sKll7K/lufbYru3sRDJVJLIsdLFSqkTnWV6AdiZ8EW9xbGnrc1yrcJqixQZ\nJc83CX8vREODfovwpMLOmYNl6opUtZdSsSP9h10hzSILNoyGDZOzQ98ZN/Wh2tuOo552HPM5cNjb\ngm99x1HtdcAPin8usWBgjgUDsy3ol2VBvywz+k3KQl5nFQYAOHZQfi+8Hgq/pJSJcXIf9v1JE0oF\nyMeEkL0ImLBuIYQUAkh6Na/OjofXE0LYHWEyHEIIXnzxRUyYMAFTpkzBzJkz0z2lIPEIkLy8PLz6\n6qs477zzsGXLFtlC3BVSE1ZWVhaOHDkCo9EoWtRdLhdMJhPy8vLQ1NQUzAth+UD0en2wCCPLhKXV\nakUCxGg0Ii8vTyb4SktLFb2Hq666Cq+99lpwOz8/P+K+F2QlT4BIe4sDgM2uEZnGIkU4HdrP/tkG\nFvfQAZ4OuUmlwyUPNXW1sjXrgiL50tLcGH8Iam6Z3Em0dmXofNMvCq34e9eL30t+IXuZqznKNr8N\nGqkT3TvWvbTYQvfHAi1yYEA/pz1YUl6gxe9GwaRWHGxtx8HmdnxSeQKVLU782OyEnwJ9rGb0tVqQ\n67ai1GhFqcGCUoMFvQ1m9CqXfwa+dh+0Fi18Tj+rB1XKUZoHcl+nH6SZUuojhDgAnB/rxQghiwH8\nHEAtpXR02Pg5AJ5GoC/XYkppfEbpDKSkpARLly7FFVdcgW+++SYjKvU6HA60tbXF7EQHAosogJg1\nEKkAsdvtqKmpgd1uZ2ogWq0WOTk5OHnypEhQCAgaiOCHYWkgLAGSn58fLMMiPP0p1UCkOS9d1TsL\nLjgEojWX+ilIEsw2g4eLTWMH97EFhdRZnnFI7peAtLwIIPYned0I5mBIS5nINZIAkTQQqZbGihZj\nMXIiGDXNjGiqtaGfjmBmp0kMAI4fdaPR5UWNtx3VnnbUwoldrU343FONak+nWWy/CX0sFpRbLCg3\nW9HHbEH/fzRgcLYNRo0OfTKg+alSJ/olAFZ2Co8HAIxDwKl+PMbrvQLgGQDBesmEEA2AZwHMAFAN\nYAMh5ENK6d7wKcR4nYxi+vTp+MMf/oDZs2fjm2++ERUqTAeVlZXo06dPQgUfi4uLsXbtWsX7C4u7\n0+mEyWSC3W5HS0sLbDZbUIBQSoMCBAhoBkePHg0eG146xefzwWg0iqKxlAiQ4uLiYMSVIEDC2/o+\n8MADWLt2Lb78Ul5oQZr30VUUlk/rh05HYJVER7k9gHSFzMtn/wwj+wdSULMrwqLLnouyn6c0oIBV\n68uWxT6Xo16+b98BIZPYj9tDn31+oXjfE9VsoVlbzU7u0OnEwREs/4TFSkShvgCwfjX7fBUDdbLe\nJ2On+wA/AFgAWHB0jxF6Q+j36Pb78Z9vGnCi1YUTLU7spg6sofWo0TswMbcAfx50GvNaqUapCetB\nSunbhJApAGYC+BuAhQDkGWddQCn9hhAi1e0nAthPKa0CAELIcgS0m72EkDwAfwUwlhByb3fWTG65\n5RacPHkS06ZNw2effRZ0SKeDXbt2BcuTxMugQYPw6quvKt5fWNzb2tpgsVhkEV1GoxGNjY0iAdK/\nf38cOHAAHo9HVAkYCJmwBIQaW+FotVpRrovBYEBJSQn27Nkj2q+8vDz4d21tbUTNjBCCO++8E089\n9RSAgEBZuHAhbrnlFtF+Y015KIql+FKMsMN+xQt5JBNWtJLsAuG1pULHyhd3SzY7GaL5hLzWRuWP\nYi1y1DhWeQ/lAincJ6PVUfi8gb89bgq9Ifo5wrsYhiO9dyxfzaCR8qXzeDX7fHt2yKOzBl9ghzZM\nYGx9vQluidLYy2BGnseMoQiFH/9gr8f61jrUHPVgJOM9pRqlAkT4lswB8AKl9BNCyMMqzaEUwJGw\n7aMICBVQShsA3MI6qDvywAMPwGq14qyzzsKnn36a8CIeLzt37kz42oMHD8YPP/ygOFdBcHY7HA6Y\nzeZgBJMgECoqKlBZWSkTIHv37oXBYAhqLML+Qr6IyWSCy+WCz+djaiDl5eX49ttvMXnyZFgsFpSU\nlODYsWMAQhrIaaedhk8//RTvvPMOzj777IialUajEQl+s9mM8ePHy/b7v5KYnqsQadGMVFV26Ch5\ndVdbnnhHaV6IQKQKv2pXuPd6/NDpxRquVPB5PH7oJfuwwnWF+cnyJNwhn8zgCSEt4z/LxecYFCHf\n5HRGgiAQqMcVTmODV1QEEgAoKIjkMxsx3sA0iX33pVMm8Ju3O0W/mxnz9LL352rTysx2ezsVY6lz\nPV0oFSDHOlvazgLwGCHECGSEDwcAcNFFFwX/HjZsGIYPH57G2XRNr169MGfOHEyePBlXXXUVJk+e\nrNq5lZqUVqxYgTPOOAPLli2L+1rCE//TTz+NXr16Rd3/4MGDAAKF3E6ePIkff/wRALBp0ya0tbVB\nr9djyZIloJSivr4ey5YtQ0NDA9auXQutVguDwYDXXnstuIDX1NQE2+sCgcz6994Tl9hev349jEYj\n3G43Kioq8O6772Lfvn3BuXzzzTci38qMGTMAhBpoSTlw4IDIbLVq1SqUlpbihRdewPLly/HFF18A\nCITvCkht4qwoI0sWwDJLRTJtJYJSDYQlvFj9N1jRWgCwc6v8qbv/YLGfZi/jyfx/Stlhzm0nWdUD\n2W9EOvfIDzlswS0VbBUDDbIOkHqDH4SIP7Nje9k1tEr7GOWChfpEWo6zlRF0UKeRzbut1Yt2jx/1\ntCPm3+/u3btl2neiKP2GXgrgHAD/RyltIoQUA7hHpTkcAxBuzynrHFPMu+++q9JUUsPll1+OG264\nARdddBG8Xi8ef/zxqDkFsZy7KyiluOuuu/D222+LciTi4dNPP4XNZot6TSD0GQ0fPhwulwtXXHEF\nXnzxRVx99dXo168f1q9fj7KyMuTm5qKpqQmXX345BgwYgAsuuAB2ux2DBg3C6aefHlzk9+zZgxdf\nfBEajQbt7e3QarU477zz8JvfhEpnT5kyJTi3q6++GkDA/yMUkZs2bRrOP58dC/Lwww9j7Nix2LFj\nR3DspZdeQnt7O/72t78BAC6++GL069cPQCBEWBAg4SjrTcFeyCItfF4PhU5iU5c6fiP5MEor2D/5\n+uPiSfYqkx+b30u+uPu87Iz3eOlwURhNyhZ7gzG0yIc72XMlpdYD+RZyAa03sse3rREnyM6+VJ4w\n2uGQS02X0888Hyv6bOBpWpH8Y32m7Q6/zGx42plavLO+EUsLdiD/00/Ru3dv9OnTB+Xl5SgvL0dZ\nWVmwr0801EjFUBqF1U4IOQhgNiFkNoD/Uko/i/OaBOJvwgYAAzt9IzUA5gOIKcUyk8q5K+W0007D\n5s2bcffdd2PkyJF4/vnnce655yb9ugcPHoROp4s5hJfFeeedhxdeeAE33HBD1H2FPI7W1lZYLBaM\nHXbl47wAABwqSURBVDsWl19+eXAeQ4cOxYYNGzBy5Mhgn/YxY8bg+PHj6Nu3L4qKilBbWxs8n+BQ\nFxzbbW1tTB+IlHCHuWAOY6HRaFBcXIwdO3YEy6pYrVZR0qHFEjIlhWu94Qt3US/xD5nVz1yrA1gL\nT6SFr/qo/Mm9pMwg2vd4BAdx34HKnhlZAoidQ8IWfgYj4JbIFqlvQbpgAsC6Vezosf+Za4b8XoQW\n8aaa0CLv97tFC2+k3JdIvhKNFiKTFUvLYi34Oj2F18Muzij1R9kH6KENu/am5zqgkeXYyJ33c08v\nQC+7Hq0eL3yzZ6Ompgb79u3D6tWrcfjwYRw7dgwNDQ2w2+0oLCyU/ROiJ4XKD4miNArrDgA3ABBs\nBEsJIS9QSp+J5WKEkGUApgHIJ4QcBvBHSukrhJDbAXyGUBhvTHpWpiXpKSUnJweLFy/G559/jptu\nugnDhw/H//7v/2LkyOS5x1auXIkZM2ao8vQxb9483HHHHdi6dSvGjh3b5b5CKZL6+nqYzWZkZ2fj\nX//6V/D1cePGYdGiRSgvLw8KEJPJhH79+sHpdKKioiJo9gJCfUUEExarVS0ryiy8/IigzURCcKZf\nfPHFePXVV0EIASEElZWVqKioEAkTQYAs7yXO9ZGGipYMkKsjjiYN03YeqeWq3ii30yutbBtJq5Eu\nVg0n5PvUHZfnTUwdynain/Uz+RNw60lJP5AD8uNYggeIkMQoEnIhQaa0adfRKrYVvqRMrHFQP5Fp\nkQd2yj/HSbPZquaWNfJltmGH+L41NSirzGgyaHF2aR6g0yD7F79g7uP3+9HY2Ii6ujrRP0Fw1NXV\nJdRRNBylJqzrAEyilDoAgBDyGIBvEQjJVQyllGnroJSuALAilnP1JGbOnIndu3dj4cKFmDFjBs49\n91zcd999GDp0qOrXevvtt4O1oRLFYDDgT3/6E371q1/hq6++6jKsVdBAjh49yhSQo0aNwg8//IBj\nx46JXl+5ciU8Hg+2bNmCjz/+ODguJBwK+Hw+OJ1ODBkyBBs3buzSJCiUoo8mRIcNGwYAePnll1FV\nVRUUPn379oXH4xG9X5vNhkOHDmHXmTeLznGyXiwBygZrZI7RumMAS9MYOIL987QyXDTH9ov3PVnH\nDl3V6dnXam4UL2CFvZV1LJJmbXc5LskmZwmLWRezr+t2AtJ519WG3mNeL73s9XjR5xjhYfQjD8eQ\nb4b7pFgT9FmN0Drkx2nzDPA1SISv3QC0hsaMhWZ01InPZywwo6NePKYdUQCD2w2PKXIdNo1Gg/z8\nfOTn53e5hqTMhIWAaA//hvmQQbkZ3dGEJcVoNOI3v/kNrrnmGjz11FOYOnUqJk6ciLvuugvTpk1T\n5cPes2cP9u7di1mzZqkw4wDXX3893nzzTfz+97/Ho48+GnE/oYRJVVUVpk6dKnvdbDZj3LhxWLx4\nMd5///3g+ODBgwEEvuwPPvhg8EnU5XLBbDYHk/tsNhsaGhpgMpmCY5HKsxcXF4u0mUjcddddmD9/\nPgghMv8GqxdIRUUF9uo18HlCT6LSxEFHo3yB9Pm8TA0kUpkQlp9AbqaJUL4jQpl3qbbDMp+wtByp\nMBTwuOQvmG3iJ/Tp8+T3UEkvcxYkywTaEjB/GQtN6KgLmcKk2wKGAjPc9XJz4NTPxX6x6t99BNos\nPn7G1ttlx+1vYahUAIYyZKKGiO/PeQZ5bph0HwD47kSoavQU5tWik/KOhAgkAH5PCBF+2RcAWKzK\nDFSgu5qwWGRnZ+Ohhx7Cvffei6VLl+K2226D1+vFL3/5S1x55ZUJOb7/9Kc/4fbbbxc9uSeKVqvF\nW2+9hcmTJyM7Oxv3338/cz+Xy4W8vDxUVVVFLAGyYMECrF27FmPGjJG9NmzYMPh8PuzduxfDhg0L\nJiT+9a9/xe7du/Hggw/i+PHjoqKVUp+IQJ8+fRQJEJPJFKz/pZR+g8SrxZbvxA5ZVvbzscPskhrZ\nuWwfzfoV8irIZgtL45AL0ONH5OVIAGDAMHFJksp98vNJe40HSCCz3WYC2iQLu90EtDL8IJIndgDQ\n55vgORnYt+j1kNt0DhXvpyPscis6TYSn+KY60aZt4SXs/SS0ewksOvm9bXMDNkPXYy6fHyZt9MBW\np4fArKdwMnwtSkl5R0JK6ZOEkDUICb1rKKVbEr66SvQEDUSK2WzGDTfcgOuvvx7r16/H66+/jgkT\nJmDIkCGYO3cufv7zn2PEiBGKNZPXXnsNmzdvxssvvxx95xgpKCjAV199hVmzZuHYsWN48sknZdWH\nW1paUF5ejo0bN0bMxL/55psxefJkppAkhOCiiy7CkiVL8MgjjwRNWOPHj8f48ePx3HPPicxMACI2\nzEpnEmd9jcIuRN0FqwVwyAUayTKCtkjMOVlGIGzM9PQV8uMiZQd4m2VDk3XqRC5KafUC9rCVsd1L\nYZFobS1uH7IkJdoX7ZHn5wCAk6GNSZnZV/7+ftYnD3ZJnsxLm0PveVa59AhlpFQDIYRoAeyilA4F\nsFmVq6pMT9JApBBCMGnSJEyaNAlPPvkk1qxZg48++ijYLnfKlCk488wzMXnyZFnFWgA4duwYnn76\naSxbtgyrVq0SRQ6pSUlJCb755htcddVVmDp1KpYvXy6K9GpsbMTMmTOxceNGDBkyhHkOrVaLcePG\nRbzGLbfcgilTpuDBBx8MaiDh16+srAwKrldeeSWiqS7S9dVAm2uBrzG0oBoLLeioC23r8szwNkht\n3RZ01MsXYW22Gb5muYnFUGiCW2KSkZpjDAUmuOvlT/K6XDO8jfJzShd8fZ4ZHsk8tblG+BrFQsH8\nyK9l5wKAHK+81L+fJk94tnkobJ1RUQ4PhTUsQir8tXBaOiiyZLWrgPv2ix9+Sq1yra2yRaylAAB8\nBHqDegl+j26V30PqNoEYALCVVkWkVAPprH/1AyGkD6VUndgvTlwYjUbMnj0bs2fPxjPPPIMffvgB\n69atw7fffouFCxdi3759uP/++1FcXAytVou6ujo0NTVhwYIF2LRpU9JrcOXm5uKDDz7AE088gQkT\nJuDhhx/GjTfeCLfbjdbWVlx55ZU4dOhQ3Ga4wYMH46yzzsI//vEP2Gw2UcJfSUkJ9u/fH9RAuuq/\ncuuttyYt0m3gsl+KtodISpr4GCYfDdhPqNJMZ4FitzxNyqITt6eLtFhbCNss1uwTV1buo5U/3bt8\nrcxj44X1ZB9psXd4AKvElxC+72PbQoLNKgmLPtnBdog3NrIX+wh5pCK8bgKdRFjs/iqPuW//Sc2y\nfX0dgDbMgtbuJLCYowuf9i/C7o0yy1pSUeoDyQWwixCyHkCwUTWl9LykzCpGeqIJKxqEEAwdOhRD\nhw7FtddeCwBYunQppk2bhtraWvh8PuTn56OioiKlvbs1Gg3uuecezJkzB1dffTXeeOMNzJkzB4MG\nDcKZZ56JFSsSC7Z75JFHMGXKFMyfP19koqqoqMB7772HiRMnRj1HTk4OzjsvOV/dNi+FLc5eHd2R\nVo8Pdr38+yXVAgC5cHhut1yY1rGb+kFDWH670PGG6O6DuOlwERhN4sV97zq5sND4/QCjXti+TXKJ\nZGsWC7UqxnFjz22GXmow6AxvS+TtpsOJ/qAqV0sSPdmEFQsajQZlZWUoKytL91QwfPhwrFu3Dq+9\n9hr+9a9/4S9/+Ysq5x0yZAgWLFiAZ555BkuWLAmOjxkzBtXV1cjLYz8Fpoq/7W4Sbd8zqgi2sAW2\n3euHRSf++bd5fKJ9Qvv6YNHJx51ewBzll8t6ug9cyw+bXr78yM0+8v1YQuEPG9k9YUyMZ5ZWSSXi\nQhWbM7rdBIYYzUc+D6BlREh5XUC44vj1h4zm44y5Wxzs/JOWXLnwIz4/aBSn+YE35McZ3YmX40+Z\nCYsQMhBAL0rpV5LxKQhkjXM4EdHpdLjuuutw3XXXqXrexx9/HIMGDcK8eaGGCELklrRnR7p5bk+t\naJtVIb2pg62x9LawF0SHV77/dUP8sIYt+Isi9Od2edl97N1+IHxx91O5uSpw+swo4gcAng4CvTEw\nn+++D9VjmzG5FoYwjUEqEASqt7DNeWaHxPyZhG7UeSfEn0NDbyv8CqKwMo1oGsjTAFhxmc2dr81V\nfUYcThRMJhNuv10ch19YWIif//znzByTU4Hn9zii75RhdLgJjBKtweMh0OtZZV3kDupdX4aZhsJc\nNt+uyBHtZ3RFeGqPXMkmKhqvH36dsgVfyb5FR+UCuy2bIfX8FNAkZsJSk2gCpBeldId0kFK6gxBS\nkZQZxcGp6APhyPnoo4/SPQW43RoYDKFsOFcHgcmYOU/tqYJlUpIKga/XF0gPg9fDXhr9DBlggrKS\nJZFQKgRY5qbSH5tk+zUVmJlmqX575WY+r5awU/ijYG5P3ISVSh9IThevqWjBTAzuA+FkCl98Lk6S\n9BnFzoB5047DJHHIujsIDAwh43IR2b6AMqHU0UFgZOwTyVcgnYNSn0IkjWHdGrlw0Eh6WJCuVpcU\nUFIpz70AgJPFYjNoYXWbovNJzVJdYXCLU+79iro/qkMqw3g3EkJuoJS+GD5ICLkewKaEr87hnGJ8\n+ok8C98foXWtvoMdiuuyyT2/558rLo636j/sbH+axX7iJi2SBY0xp7Om1ot8CwCwcUOE7o0RenUk\ni3BtQuPzi/wJShzWaYdRPKw7zDuaAPkNgPcJIVcgJDAmIOBWyoCW7hwOBwA6nARGBXkEibB+JUNl\nUDnoLRbfQvgCW76vITguFbw6D1uYeRnRaIBcADGJVEUyTvRu+RxzOuSBED6F9yZVdClAKKW1AM4k\nhPwPEGzB+wmlVN45J41wHwgnU9D5/PCm4anx639LQk0zxsAcG8X75L4FADgyWC6piqtagn/7IgiD\neCg6InZodzBipo0uuXboMaYg36pTcGWzHOwKSXkeCKX0SwBfqnLFJMB9IJxMoXS/uPzEj2PYJp5M\nJxZNIBXn1Hp88DFyZRJCZS0ilvOxayVHR+ujeO2DK+M4MkTKiylyOJz4kC58rEU0Vlu3koU40jk1\nHj/8jKd14veDhtWOL6mSO5hP9lKeq8AyA0md1jWjc+BXmEI+YGe9bMwb6R5IFvJIi7XOy65MLKMz\ndDYaercfS96TL+5XXLZMfhUtwdI3Q+2Rbr/6bbQ0sbsxZjJcgHA4SaTvbnamdjiRTB8NhRamEOjz\nQ4Ns7ER5lmi7sJqdF6Lxs/0BHmP0pYCVq3DYns8USJEinMIp2yx/HyxzUawoFgwKMTvlobORAh+Y\n84kQDBHOM6/KC1tdPW+JrP+KmgqTGnABwuFkKAW1ypMDFTl+k0CfnWwBqaZPQhEKtYTuBKsfmpK2\nxamECxAOR0UI0lPsQ6odOK1JqL+RwaiRYBcTDH9Hdo56jdq6Cz1CgPAoLE6mIA0hdaciMudURW0n\neAxoKPDa+4k5s6ORlWOS+UWyVBBS6ajGm9HwKCwOpxugZMGPwRQVHkpL1TRfpVEwhcPyi6gBj8Li\ncE5lVF6IFV8jwYVV74me7W5tY9e3irXUx9J3Qu1yb7vuXTQ3yyOcCGH7FDT0/7d357FylWUcx7+/\nsliKWAJ/GGhDNSlbFYOaIMhWdiIhQIuyFoILEZLyhwEh0WgDxoAaSCyIEipL9VKLpewEECmEGgmL\nUOG2gspWMOACKEtY2sc/zrmd6enMvXPPnDnnzNzfJ2nunfcs886T2/vc867Ur7OhppxAzHop+4u8\ngL9uN1+36Sij7C/jrd9uvefpu9lt/dpoNTM6Wctq4/dtO5S2Rq5YNHfD90NDQ5x88smjnA2nH7t4\n1OPW4ARi1kPZIaCt/upuO4N5AEcWDYoi+iIGgROIWYGmTp3csrkkjyltmnO6GiLbJin1w8J9Vbru\n5nlVV6GWnEDMCtTcXAKdNYdofXTfCdxh09hH/9u6aSur63Wdin56qknHtm1sIBKIh/FaP9vmjfda\nlo9ntnO2z6L0iXwZrRJVN0mpVZ/M+jZ9S90sNNgLvRqOm5eH8WZ4GK/ZxKaAxctOGfvECvRqOG5e\nRQ7jdaOnmeW3vovhrh4q2/cG4gnErG8U0ZZfo/6AVgsNdqrVnhp12zDJRucEYlaiVktgjHfewWYf\nBotv2ri5Zt6cX3VdN7Pxcro3s3IU3WTVdL+JuJBhHfgJxKyHsiNwSht9020zV4vr2y390akt3l+/\n0XyKbmd8l7GgoY3OCcSsh6oagdPczNW8fEenTV3tdtfL8rIfE1utm7AkTZF0raRfSBp9ARszswJk\nnxK9bEl7dX8CmQPcGBF3SFoCDFVdITMbbHWbt1FnpT6BSFok6VVJqzLlR0paI+kZSec3HZoOvJR+\nP/bGwmaDpE2HQ6sO42yZO5WtDGU/gVwDLASuHymQNAm4HDgEeAV4RNItEbGGJHlMB1aR7BZqNmGM\np5P48l8e3+PalKRGc1xsbKUmkIh4SNKMTPFewLMR8QJA2lR1DLAGWA5cLuko4LYy62o2iKZuO5k3\n3yhmteBe2GxdcN3NmyZNd9bXUx36QKbRaKYCWEuSVIiId4CvVlEps0HU7knFExEtjzokkK7NndtY\nQnv33Xdn1qxZFdamOitXrqy6CrUxKLEYGup+3EjeWBTx3nnuOZ73HW8dB+XnIo/h4WFWr15d6D3r\nkEBeBnZqej09LevYsmXLCq1QPxtru86JpF9icffS9s0zRX2Gse5z1283fQLp5L1Hq/tY9Wh3bav3\nHc+546nDRKYC+pqqmAciNu4QfwSYKWmGpC2BE4Fbx3PDBQsWFLa+vdlE5FFcE8eKFSsK2wKj1CcQ\nSUPAbGB7SS8C34+IayTNB+4hSWiLImJcz1neD8SsOwMzisvGVOR+IGWPwmr57BgRdwF35b2vdyQ0\nM+uMdyTM8BOImVlnvCOhmU0ordaj8hpV1RuYJxA3YVm/yi753lxuCa9PVRw3YWW4Ccv6mX85Wpnc\nhGVmZpUbiATieSBm9ecmuXro23kgveImLLP6ad6+1urDTVhmZla5gUggbsIyM+tMkU1YA5NAPITX\nrHzt+jXc31Ffs2fPdh+ImVXPQ5AntoF4AjEzs/I5gZiZWS4DkUDciW5m1hnPA8nwPBAzs854HoiZ\nmVXOCcTMzHJxAjEzs1wGIoG4E93MrDPuRM9wJ7qZWWfciW5mZpVzAjEzs1ycQMzMLBcnEDMzy8UJ\nxMzMcnECMTOzXAYigXgeiJlZZzwPJMPzQMzMOuN5IGZmVjknEDMzy8UJxMzMcnECMTOzXJxAzMws\nFycQMzPLpbYJRNInJV0taWnVdTEzs03VNoFExHMR8fWq69FPhoeHq65CbTgWDY5Fg2NRrJ4nEEmL\nJL0qaVWm/EhJayQ9I+n8XtdjIli9enXVVagNx6LBsWhwLIpVxhPINcARzQWSJgGXp+WfAk6StFt6\nbJ6kSyXtMHJ6CXXcYLxLoox1/mjHWx3Llo33dZEci/z3dizynz/WdYMci04/c7vysmPR8wQSEQ8B\nr2eK9wKejYgXIuIDYAlwTHr+4oj4FvCepCuBPct8QvEvivz3diw6P9+xyH/dIMei3xKIIqLQG7Z8\nE2kGcFtEfCZ9PRc4IiLOTF+fCuwVEefkuHfvP4CZ2QCKiK5aePp+McVuA2BmZvlUNQrrZWCnptfT\n0zIzM+sTZSUQsXFn+CPATEkzJG0JnAjcWlJdzMysAGUM4x0C/gDsIulFSWdExDpgPnAP8DSwJCI8\nvs7MrI+U0oluZmaDp7Yz0buhxA8k/VTSvKrrUyVJB0p6UNKVkg6ouj5VkzRF0iOSvlR1Xaokabf0\nZ2KppG9WXZ8qSTpG0lWSbpB0WNX1qdJ4l5AayARCMqdkOvA+sLbiulQtgP8BH8GxADgf+E3Vlaha\nRKyJiLOAE4AvVl2fKkXELemUgrOAr1RdnyqNdwmpWieQLpZB2RVYGRHnAmeXUtkeyxuLiHgwIo4C\nLgAuLKu+vZQ3FpIOBYaBf1LyCge90s1SQZKOBm4H7iyjrr1WwLJJ3wWu6G0ty1HaElIRUdt/wH7A\nnsCqprJJwF+BGcAWwBPAbumxecCl6dfj07IlVX+OimOxQ/p6S2Bp1Z+jwlhcBixKY3I3sLzqz1GH\nn4u07PaqP0fFsdgRuBg4uOrPUINYjPy+uLGT96n1RMKIeCidxd5swzIoAJJGlkFZExGLgcWStgIW\nStofeKDUSvdIF7E4TtIRwFSS9cf6Xt5YjJwo6TTgX2XVt5e6+Lk4UNIFJE2bd5Ra6R7pIhbzgUOA\nj0maGRFXlVrxHugiFts1LyEVEZeM9j61TiBtTANeanq9liQwG0TEu8BEWAq+k1gsB5aXWamKjBmL\nERFxfSk1qk4nPxcPMCB/XI2hk1gsBBaWWamKdBKL/5D0BXWk1n0gZmZWX/2YQLwMSoNj0eBYNDgW\nDY5FQ+Gx6IcE4mVQGhyLBseiwbFocCwaeh6LWicQL4PS4Fg0OBYNjkWDY9FQViy8lImZmeVS6ycQ\nMzOrLycQMzPLxQnEzMxycQIxM7NcnEDMzCwXJxAzM8vFCcTMzHJxArGBJGmdpMcl/Sn9+u2q6zRC\n0o2SPpF+/7ykBzLHn8ju49DiHn+TtHOm7DJJ50n6tKRriq63WVY/rsZr1om3I+JzRd5Q0mbpbN5u\n7jELmBQRz6dFAWwjaVpEvCxpt7RsLDeQLEVxUXpfAccD+0TEWknTJE2PCO9CaT3jJxAbVC13HJT0\nnKQFkh6T9KSkXdLyKekubn9Mjx2dlp8u6RZJ9wG/U+JnkoYl3SPpDklzJB0kaXnT+xwq6aYWVTgF\nuCVTtpQkGQCcBAw13WeSpB9Jejh9MvlGemhJ0zUABwDPNyWM2zPHzQrnBGKDaqtME9aXm469FhGf\nB34OnJuWfQe4LyL2Bg4GfpJuTAbwWWBORBwEzAF2iohZJLu47QMQEfcDu0raPr3mDJIdELP2BR5r\neh3AMuC49PXRwG1Nx78GvBERXyDZu+FMSTMi4ilgnaQ90vNOJHkqGfEosP9oATLrlpuwbFC9M0oT\n1siTwmM0fnEfDhwt6bz09ZY0lr6+NyLeTL/fD7gRICJelXR/030XA6dKuhbYmyTBZO1Asid7s38D\nr0s6gWTP9nebjh0O7NGUAD8G7Ay8QPoUImkYOBb4XtN1r5Fs1WrWM04gNhG9l35dR+P/gIC5EfFs\n84mS9gbe7vC+15I8PbxHsqf0+hbnvANMblG+FLgCOC1TLmB+RNzb4polJCurPgg8GRHNiWkyGyci\ns8K5CcsGVcs+kFHcDZyz4WJpzzbnrQTmpn0hHwdmjxyIiH8Ar5A0h7UbBbUamNminsuBS0gSQrZe\nZ0vaPK3XziNNaxHxd5K93S9m4+YrgF2Ap9rUwawQTiA2qCZn+kB+mJa3G+F0EbCFpFWSngIubHPe\nMpK9pJ8GridpBnuz6fivgZci4i9trr8TOKjpdQBExFsR8eOI+DBz/tUkzVqPS/ozSb9Nc8vBDcCu\nQLbD/iDgjjZ1MCuE9wMxGydJW0fE25K2Ax4G9o2I19JjC4HHI6LlE4ikycDv02t68p8v3W1uBbBf\nm2Y0s0I4gZiNU9pxvi2wBXBJRCxOyx8F3gIOi4gPRrn+MGB1r+ZoSJoJ7BgRD/bi/mYjnEDMzCwX\n94GYmVkuTiBmZpaLE4iZmeXiBGJmZrk4gZiZWS5OIGZmlsv/AdxFToNdtvqoAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "cm = matplotlib.cm.Spectral_r\n", + "\n", + "# Determine size of probability tables\n", + "urr = gd157.urr\n", + "n_energy = urr.table.shape[0]\n", + "n_band = urr.table.shape[2]\n", + "\n", + "for i in range(n_energy):\n", + " # Get bounds on energy\n", + " if i > 0:\n", + " e_left = urr.energy[i] - 0.5*(urr.energy[i] - urr.energy[i-1])\n", + " else:\n", + " e_left = urr.energy[i] - 0.5*(urr.energy[i+1] - urr.energy[i])\n", + "\n", + " if i < n_energy - 1:\n", + " e_right = urr.energy[i] + 0.5*(urr.energy[i+1] - urr.energy[i])\n", + " else:\n", + " e_right = urr.energy[i] + 0.5*(urr.energy[i] - urr.energy[i-1])\n", + " \n", + " for j in range(n_band):\n", + " # Determine maximum probability for a single band\n", + " max_prob = np.diff(urr.table[i,0,:]).max()\n", + " \n", + " # Determine bottom of band\n", + " if j > 0:\n", + " xs_bottom = urr.table[i,1,j] - 0.5*(urr.table[i,1,j] - urr.table[i,1,j-1])\n", + " value = (urr.table[i,0,j] - urr.table[i,0,j-1])/max_prob\n", + " else:\n", + " xs_bottom = urr.table[i,1,j] - 0.5*(urr.table[i,1,j+1] - urr.table[i,1,j])\n", + " value = urr.table[i,0,j]/max_prob\n", + "\n", + " # Determine top of band\n", + " if j < n_band - 1:\n", + " xs_top = urr.table[i,1,j] + 0.5*(urr.table[i,1,j+1] - urr.table[i,1,j])\n", + " else:\n", + " xs_top = urr.table[i,1,j] + 0.5*(urr.table[i,1,j] - urr.table[i,1,j-1])\n", + " \n", + " # Draw rectangle with appropriate color\n", + " ax.add_patch(Rectangle((e_left, xs_bottom), e_right - e_left, xs_top - xs_bottom,\n", + " color=cm(value)))\n", + "\n", + "# Overlay total cross section\n", + "ax.plot(total.xs.x, total.xs.y, 'k')\n", + "\n", + "# Make plot pretty and labeled\n", + "ax.set_xlim(1e-6, 1e-1)\n", + "ax.set_ylim(1e-1, 1e4)\n", + "ax.set_xscale('log')\n", + "ax.set_yscale('log')\n", + "ax.set_xlabel('Energy (MeV)')\n", + "ax.set_ylabel('Cross section(b)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exporting to HDF5\n", + "\n", + "To create an HDF5 nuclear data file for a nuclide, we can use the `export_to_hdf5()` method." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "gd157.export_to_hdf5('gd157.h5', 'w')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's see what's in the HDF5 file." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['Gd157.71c']" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h5file = h5py.File('gd157.h5', 'r')\n", + "list(h5file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "While the groups containing reaction data are only labeled sequentially, we can look at the group attributes to figure out what they actually are." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "reaction_0, MT=2 (n,elastic)\n", + "reaction_1, MT=16 (n,2n)\n", + "reaction_10, MT=54 (n,n4)\n", + "reaction_11, MT=55 (n,n5)\n", + "reaction_12, MT=56 (n,n6)\n", + "reaction_13, MT=57 (n,n7)\n", + "reaction_14, MT=58 (n,n8)\n", + "reaction_15, MT=59 (n,n9)\n", + "reaction_16, MT=60 (n,n10)\n" + ] + } + ], + "source": [ + "main_group = h5file['Gd157.71c']\n", + "for name, obj in list(main_group.items())[:10]:\n", + " if 'mt' in obj.attrs:\n", + " print('{}, MT={} {}'.format(name, obj.attrs['mt'],\n", + " obj.attrs['label'].decode()))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[,\n", + " ,\n", + " ]\n" + ] + } + ], + "source": [ + "n2n_group = main_group['reaction_1']\n", + "pprint(list(n2n_group.values()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So we see that the hierarchy of data within the HDF5 mirrors the hierarchy of Python objects that we manipulated before." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.00000000e+00, 3.02679600e-13, 1.29110100e-02,\n", + " 6.51111000e-02, 3.92627000e-01, 5.75226800e-01,\n", + " 6.96960000e-01, 7.39937800e-01, 9.63545000e-01,\n", + " 1.14213000e+00, 1.30802000e+00, 1.46350000e+00,\n", + " 1.55760000e+00, 1.64055000e+00, 1.68896000e+00,\n", + " 1.71140000e+00, 1.73945000e+00, 1.78207000e+00,\n", + " 1.81665000e+00, 1.84528000e+00, 1.86540900e+00,\n", + " 1.86724000e+00, 1.88155800e+00, 1.88156000e+00,\n", + " 1.88180000e+00, 1.89447000e+00, 1.86957000e+00,\n", + " 1.82120000e+00, 1.71600000e+00, 1.60054000e+00,\n", + " 1.43162000e+00, 1.28346000e+00, 1.10166000e+00,\n", + " 1.06530000e+00, 9.30730000e-01, 8.02980000e-01,\n", + " 7.77740000e-01])" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "n2n_group['xs'].value" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that we can go the other direction, converting data from an HDF5 file into a `NeutronTable` object:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gd157_reconstructed = openmc.data.IncidentNeutron.from_hdf5(main_group)\n", + "gd157.reactions[16].xs.y - gd157_reconstructed.reactions[16].xs.y" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/docs/source/pythonapi/examples/nuclear-data.rst b/docs/source/pythonapi/examples/nuclear-data.rst new file mode 100644 index 0000000000..aa048eeb3a --- /dev/null +++ b/docs/source/pythonapi/examples/nuclear-data.rst @@ -0,0 +1,13 @@ +.. _notebook_nuclear_data: + +============ +Nuclear Data +============ + +.. only:: html + + .. notebook:: nuclear-data.ipynb + +.. only:: latex + + IPython notebooks must be viewed in the online HTML documentation. diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 854c2bc4c1..36f161b3c3 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -27,6 +27,7 @@ Example Jupyter Notebooks examples/mgxs-part-ii examples/mgxs-part-iii examples/mgxs-part-iv + examples/nuclear-data ------------------------------------ :mod:`openmc` -- Basic Functionality From 495556a2f5ae9a2c13372322c41bbfc4bfb048f7 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 15 Jul 2016 08:21:57 -0500 Subject: [PATCH 167/417] Cleanup openmc.data based on pylint --- openmc/data/ace.py | 65 +++++++++++++----------------- openmc/data/angle_distribution.py | 6 +-- openmc/data/angle_energy.py | 2 - openmc/data/container.py | 6 +-- openmc/data/correlated.py | 15 ++++--- openmc/data/data.py | 12 +++--- openmc/data/energy_distribution.py | 21 +++++++--- openmc/data/kalbach_mann.py | 9 +++-- openmc/data/library.py | 2 +- openmc/data/neutron.py | 22 ++++------ openmc/data/reaction.py | 6 +-- openmc/data/thermal.py | 11 +++-- openmc/data/urr.py | 6 +-- 13 files changed, 89 insertions(+), 94 deletions(-) diff --git a/openmc/data/ace.py b/openmc/data/ace.py index 2a39e208a2..1a56c165ef 100644 --- a/openmc/data/ace.py +++ b/openmc/data/ace.py @@ -20,7 +20,6 @@ import io from os import SEEK_CUR import struct import sys -from warnings import warn import numpy as np @@ -170,7 +169,7 @@ class Library(object): sb = b''.join([fh.readline() for i in range(10)]) # Try to decode it with ascii - sd = sb.decode('ascii') + sb.decode('ascii') # No exception so proceed with ASCII - reopen in non-binary fh.close() @@ -182,13 +181,13 @@ class Library(object): fh = open(filename, 'rb') self._read_binary(fh, table_names, verbose) - def _read_binary(self, fh, table_names, verbose=False, + def _read_binary(self, ace_file, table_names, verbose=False, recl_length=4096, entries=512): """Read a binary (Type 2) ACE table. Parameters ---------- - fh : file + ace_file : file Open ACE file table_names : None, str, or iterable Tables from the file to read in. If None, reads in all of the @@ -204,25 +203,25 @@ class Library(object): """ while True: - start_position = fh.tell() + start_position = ace_file.tell() # Check for end-of-file - if len(fh.read(1)) == 0: + if len(ace_file.read(1)) == 0: return - fh.seek(start_position) + ace_file.seek(start_position) # Read name, atomic mass ratio, temperature, date, comment, and # material name, atomic_weight_ratio, temperature, date, comment, mat = \ - struct.unpack(str('=10sdd10s70s10s'), fh.read(116)) + struct.unpack(str('=10sdd10s70s10s'), ace_file.read(116)) name = name.decode().strip() # Read ZAID/awr combinations - data = struct.unpack(str('=' + 16*'id'), fh.read(192)) + data = struct.unpack(str('=' + 16*'id'), ace_file.read(192)) pairs = list(zip(data[::2], data[1::2])) # Read NXS - nxs = list(struct.unpack(str('=16i'), fh.read(64))) + nxs = list(struct.unpack(str('=16i'), ace_file.read(64))) # Determine length of XSS and number of records length = nxs[0] @@ -230,20 +229,20 @@ class Library(object): # verify that we are supposed to read this table in if (table_names is not None) and (name not in table_names): - fh.seek(start_position + recl_length*(n_records + 1)) + ace_file.seek(start_position + recl_length*(n_records + 1)) continue if verbose: - temperature_in_K = round(temperature * 1e6 / 8.617342e-5) - print("Loading nuclide {0} at {1} K".format(name, temperature_in_K)) + kelvin = round(temperature * 1e6 / 8.617342e-5) + print("Loading nuclide {0} at {1} K".format(name, kelvin)) # Read JXS - jxs = list(struct.unpack(str('=32i'), fh.read(128))) + jxs = list(struct.unpack(str('=32i'), ace_file.read(128))) # Read XSS - fh.seek(start_position + recl_length) + ace_file.seek(start_position + recl_length) xss = list(struct.unpack(str('={0}d'.format(length)), - fh.read(length*8))) + ace_file.read(length*8))) # Insert zeros at beginning of NXS, JXS, and XSS arrays so that the # indexing will be the same as Fortran. This makes it easier to @@ -263,14 +262,14 @@ class Library(object): self.tables.append(table) # Advance to next record - fh.seek(start_position + recl_length*(n_records + 1)) + ace_file.seek(start_position + recl_length*(n_records + 1)) - def _read_ascii(self, fh, table_names, verbose=False): + def _read_ascii(self, ace_file, table_names, verbose=False): """Read an ASCII (Type 1) ACE table. Parameters ---------- - fh : file + ace_file : file Open ACE file table_names : None, str, or iterable Tables from the file to read in. If None, reads in all of the @@ -282,26 +281,23 @@ class Library(object): tables_seen = set() - lines = [fh.readline() for i in range(13)] + lines = [ace_file.readline() for i in range(13)] - while (0 != len(lines)) and (lines[0] != ''): + while len(lines) != 0 and lines[0] != '': # Read name of table, atomic mass ratio, and temperature. If first # line is empty, we are at end of file # check if it's a 2.0 style header if lines[0].split()[0][1] == '.': words = lines[0].split() - version = words[0] name = words[1] - if len(words) == 3: - source = words[2] words = lines[1].split() atomic_weight_ratio = float(words[0]) temperature = float(words[1]) commentlines = int(words[3]) for i in range(commentlines): lines.pop(0) - lines.append(fh.readline()) + lines.append(ace_file.readline()) else: words = lines[0].split() name = words[0] @@ -325,24 +321,21 @@ class Library(object): # verify that we are suppossed to read this table in if (table_names is not None) and (name not in table_names): - fh.seek(n_bytes, SEEK_CUR) - fh.readline() - lines = [fh.readline() for i in range(13)] + ace_file.seek(n_bytes, SEEK_CUR) + ace_file.readline() + lines = [ace_file.readline() for i in range(13)] continue # read and fix over-shoot - lines += fh.readlines(n_bytes) + lines += ace_file.readlines(n_bytes) if 12 + n_lines < len(lines): goback = sum([len(line) for line in lines[12+n_lines:]]) lines = lines[:12+n_lines] - fh.seek(-goback, SEEK_CUR) + ace_file.seek(-goback, SEEK_CUR) if verbose: - temperature_in_K = round(temperature * 1e6 / 8.617342e-5) - print("Loading nuclide {0} at {1} K".format(name, temperature_in_K)) - - # Read comment - comment = lines[1].strip() + kelvin = round(temperature * 1e6 / 8.617342e-5) + print("Loading nuclide {0} at {1} K".format(name, kelvin)) # Insert zeros at beginning of NXS, JXS, and XSS arrays so that the # indexing will be the same as Fortran. This makes it easier to @@ -358,7 +351,7 @@ class Library(object): self.tables.append(table) # Read all data blocks - lines = [fh.readline() for i in range(13)] + lines = [ace_file.readline() for i in range(13)] class Table(object): diff --git a/openmc/data/angle_distribution.py b/openmc/data/angle_distribution.py index 3f086a99cc..709be84962 100644 --- a/openmc/data/angle_distribution.py +++ b/openmc/data/angle_distribution.py @@ -5,7 +5,7 @@ import numpy as np import openmc.checkvalue as cv from openmc.stats import Univariate, Tabular, Uniform -from .container import interpolation_scheme +from .container import INTERPOLATION_SCHEME class AngleDistribution(object): @@ -125,7 +125,7 @@ class AngleDistribution(object): else: n = data.shape[1] - j - interp = interpolation_scheme[interpolation[i]] + interp = INTERPOLATION_SCHEME[interpolation[i]] mu_i = Tabular(data[0, j:j+n], data[1, j:j+n], interp) mu_i.c = data[2, j:j+n] @@ -189,7 +189,7 @@ class AngleDistribution(object): data = ace.xss[idx + 2:idx + 2 + 3*n_points] data.shape = (3, n_points) - mu_i = Tabular(data[0], data[1], interpolation_scheme[intt]) + mu_i = Tabular(data[0], data[1], INTERPOLATION_SCHEME[intt]) mu_i.c = data[2] else: # Isotropic angular distribution diff --git a/openmc/data/angle_energy.py b/openmc/data/angle_energy.py index ff9f41a441..c20c5f0ff9 100644 --- a/openmc/data/angle_energy.py +++ b/openmc/data/angle_energy.py @@ -1,7 +1,5 @@ from abc import ABCMeta, abstractmethod -import numpy as np - import openmc.data diff --git a/openmc/data/container.py b/openmc/data/container.py index b2b323ddd0..d9902794cf 100644 --- a/openmc/data/container.py +++ b/openmc/data/container.py @@ -5,7 +5,7 @@ import numpy as np import openmc.checkvalue as cv -interpolation_scheme = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log', +INTERPOLATION_SCHEME = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log', 4: 'log-linear', 5: 'log-log'} @@ -262,8 +262,8 @@ class Tabulated1D(object): Function read from dataset """ - x = dataset.value[0,:] - y = dataset.value[1,:] + x = dataset.value[0, :] + y = dataset.value[1, :] breakpoints = dataset.attrs['breakpoints'] interpolation = dataset.attrs['interpolation'] return cls(x, y, breakpoints, interpolation) diff --git a/openmc/data/correlated.py b/openmc/data/correlated.py index f82a28b75a..c93a0d706d 100644 --- a/openmc/data/correlated.py +++ b/openmc/data/correlated.py @@ -1,11 +1,12 @@ from collections import Iterable from numbers import Real, Integral +from warnings import warn import numpy as np import openmc.checkvalue as cv -from openmc.stats import Tabular, Univariate, Discrete, Mixture -from .container import interpolation_scheme +from openmc.stats import Tabular, Univariate, Discrete, Mixture, Uniform +from .container import INTERPOLATION_SCHEME from .angle_energy import AngleEnergy @@ -237,7 +238,7 @@ class CorrelatedAngleEnergy(AngleEnergy): # Create continuous distribution if m < n: - interp = interpolation_scheme[interpolation[i]] + interp = INTERPOLATION_SCHEME[interpolation[i]] x = dset_eout[0, offset_e+m:offset_e+n] p = dset_eout[1, offset_e+m:offset_e+n] @@ -275,7 +276,7 @@ class CorrelatedAngleEnergy(AngleEnergy): if interp_code == 0: mu_ij = Discrete(x, p) else: - mu_ij = Tabular(x, p, interpolation_scheme[interp_code], + mu_ij = Tabular(x, p, INTERPOLATION_SCHEME[interp_code], ignore_negative=True) mu_ij.c = c mu_i.append(mu_ij) @@ -285,8 +286,6 @@ class CorrelatedAngleEnergy(AngleEnergy): energy_out.append(eout_i) mu.append(mu_i) - j += n - return cls(energy_breakpoints, energy_interpolation, energy, energy_out, mu) @@ -357,7 +356,7 @@ class CorrelatedAngleEnergy(AngleEnergy): # Create continuous distribution eout_continuous = Tabular(data[0][n_discrete_lines:], data[1][n_discrete_lines:], - interpolation_scheme[intt], + INTERPOLATION_SCHEME[intt], ignore_negative=True) eout_continuous.c = data[2][n_discrete_lines:] @@ -390,7 +389,7 @@ class CorrelatedAngleEnergy(AngleEnergy): data = ace.xss[idx + 2:idx + 2 + 3*n_cosine] data.shape = (3, n_cosine) - mu_ij = Tabular(data[0], data[1], interpolation_scheme[intt]) + mu_ij = Tabular(data[0], data[1], INTERPOLATION_SCHEME[intt]) mu_ij.c = data[2] else: # Isotropic distribution diff --git a/openmc/data/data.py b/openmc/data/data.py index e5aa55285f..42c92cff98 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -150,9 +150,9 @@ reaction_name = {1: '(n,total)', 2: '(n,elastic)', 4: '(n,level)', 5: '(n,misc)' 198: '(n,n3p)', 199: '(n,3n2pa)', 200: '(n,5n2p)', 444: '(n,damage)', 649: '(n,pc)', 699: '(n,dc)', 749: '(n,tc)', 799: '(n,3Hec)', 849: '(n,ac)'} -reaction_name.update({i: '(n,n{})'.format(i-50) for i in range(50,91)}) -reaction_name.update({i: '(n,p{})'.format(i-600) for i in range(600,649)}) -reaction_name.update({i: '(n,d{})'.format(i-650) for i in range(650,699)}) -reaction_name.update({i: '(n,t{})'.format(i-700) for i in range(700,749)}) -reaction_name.update({i: '(n,3He{})'.format(i-750) for i in range(750,799)}) -reaction_name.update({i: '(n,a{})'.format(i-800) for i in range(800,849)}) +reaction_name.update({i: '(n,n{})'.format(i-50) for i in range(50, 91)}) +reaction_name.update({i: '(n,p{})'.format(i-600) for i in range(600, 649)}) +reaction_name.update({i: '(n,d{})'.format(i-650) for i in range(650, 699)}) +reaction_name.update({i: '(n,t{})'.format(i-700) for i in range(700, 749)}) +reaction_name.update({i: '(n,3He{})'.format(i-750) for i in range(750, 799)}) +reaction_name.update({i: '(n,a{})'.format(i-800) for i in range(800, 849)}) diff --git a/openmc/data/energy_distribution.py b/openmc/data/energy_distribution.py index 09b0c6ebf7..a82a6c64a0 100644 --- a/openmc/data/energy_distribution.py +++ b/openmc/data/energy_distribution.py @@ -3,10 +3,9 @@ from collections import Iterable from numbers import Integral, Real from warnings import warn -import h5py import numpy as np -from openmc.data.container import Tabulated1D, interpolation_scheme +from openmc.data.container import Tabulated1D, INTERPOLATION_SCHEME from openmc.stats.univariate import Univariate, Tabular, Discrete, Mixture import openmc.checkvalue as cv @@ -78,11 +77,12 @@ class ArbitraryTabulated(EnergyDistribution): """ def __init__(self, energy, pdf): + super(ArbitraryTabulated, self).__init__() self.energy = energy self.pdf = pdf def to_hdf5(self, group): - NotImplementedError + raise NotImplementedError class GeneralEvaporation(EnergyDistribution): @@ -114,6 +114,7 @@ class GeneralEvaporation(EnergyDistribution): """ def __init__(self, theta, g, u): + super(GeneralEvaporation, self).__init__() self.theta = theta self.g = g self.u = u @@ -121,6 +122,10 @@ class GeneralEvaporation(EnergyDistribution): def to_hdf5(self, group): raise NotImplementedError + @classmethod + def from_ace(cls, ace, idx=0): + raise NotImplementedError + class MaxwellEnergy(EnergyDistribution): r"""Simple Maxwellian fission spectrum represented as @@ -147,6 +152,7 @@ class MaxwellEnergy(EnergyDistribution): """ def __init__(self, theta, u): + super(MaxwellEnergy, self).__init__() self.theta = theta self.u = u @@ -254,6 +260,7 @@ class Evaporation(EnergyDistribution): """ def __init__(self, theta, u): + super(Evaporation, self).__init__() self.theta = theta self.u = u @@ -364,6 +371,7 @@ class WattEnergy(EnergyDistribution): """ def __init__(self, a, b, u): + super(WattEnergy, self).__init__() self.a = a self.b = b self.u = u @@ -504,6 +512,7 @@ class MadlandNix(EnergyDistribution): """ def __init__(self, efl, efh, tm): + super(MadlandNix, self).__init__() self.efl = efl self.efh = efh self.tm = tm @@ -966,7 +975,7 @@ class ContinuousTabular(EnergyDistribution): # Create continuous distribution if m < n: - interp = interpolation_scheme[interpolation[i]] + interp = INTERPOLATION_SCHEME[interpolation[i]] eout_continuous = Tabular(data[0, j+m:j+n], data[1, j+m:j+n], interp) eout_continuous.c = data[2, j+m:j+n] @@ -1048,8 +1057,8 @@ class ContinuousTabular(EnergyDistribution): # Create continuous distribution eout_continuous = Tabular(data[0][n_discrete_lines:], - data[1][n_discrete_lines:], - interpolation_scheme[intt]) + data[1][n_discrete_lines:], + INTERPOLATION_SCHEME[intt]) eout_continuous.c = data[2][n_discrete_lines:] # If discrete lines are present, create a mixture distribution diff --git a/openmc/data/kalbach_mann.py b/openmc/data/kalbach_mann.py index 7899ae2a6a..8799831bf0 100644 --- a/openmc/data/kalbach_mann.py +++ b/openmc/data/kalbach_mann.py @@ -1,11 +1,12 @@ from collections import Iterable from numbers import Real, Integral +from warnings import warn import numpy as np import openmc.checkvalue as cv from openmc.stats import Tabular, Univariate, Discrete, Mixture -from .container import Tabulated1D, interpolation_scheme +from .container import Tabulated1D, INTERPOLATION_SCHEME from .angle_energy import AngleEnergy @@ -228,7 +229,7 @@ class KalbachMann(AngleEnergy): # Create continuous distribution if m < n: - interp = interpolation_scheme[interpolation[i]] + interp = INTERPOLATION_SCHEME[interpolation[i]] eout_continuous = Tabular(data[0, j+m:j+n], data[1, j+m:j+n], interp) eout_continuous.c = data[2, j+m:j+n] @@ -318,8 +319,8 @@ class KalbachMann(AngleEnergy): # Create continuous distribution eout_continuous = Tabular(data[0][n_discrete_lines:], - data[1][n_discrete_lines:], - interpolation_scheme[intt]) + data[1][n_discrete_lines:], + INTERPOLATION_SCHEME[intt]) eout_continuous.c = data[2][n_discrete_lines:] # If discrete lines are present, create a mixture distribution diff --git a/openmc/data/library.py b/openmc/data/library.py index 58f32609ea..748a018891 100644 --- a/openmc/data/library.py +++ b/openmc/data/library.py @@ -13,7 +13,7 @@ class DataLibrary(object): h5file = h5py.File(filename, 'r') materials = [] - for name, group in h5file.items(): + for name in h5file: materials.append(name) library = {'path': filename, 'type': filetype, 'materials': materials} diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index ad5e370f1e..463aa26bb0 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -1,25 +1,17 @@ from __future__ import division, unicode_literals -import io import sys -from warnings import warn from collections import OrderedDict, Iterable, Mapping -from copy import deepcopy from numbers import Integral, Real -import sys import numpy as np -from numpy.polynomial import Polynomial import h5py -from . import atomic_number, atomic_symbol +from . import atomic_symbol from .ace import Table, get_table from .container import Tabulated1D -from .energy_distribution import * from .product import Product from .reaction import Reaction, _get_photon_products -from .thermal import CoherentElastic from .urr import ProbabilityTables -from openmc.stats import Tabular, Discrete, Uniform, Mixture import openmc.checkvalue as cv if sys.version_info[0] >= 3: @@ -243,7 +235,7 @@ class IncidentNeutron(object): f.close() @classmethod - def from_hdf5(self, group_or_filename): + def from_hdf5(cls, group_or_filename): """Generate continuous-energy neutron interaction data from HDF5 group Parameters @@ -255,7 +247,7 @@ class IncidentNeutron(object): Returns ------- - openmc.data.ace.IncidentNeutron + openmc.data.IncidentNeutron Continuous-energy neutron interaction data """ @@ -272,8 +264,8 @@ class IncidentNeutron(object): atomic_weight_ratio = group.attrs['atomic_weight_ratio'] temperature = group.attrs['temperature'] - data = IncidentNeutron(name, atomic_number, mass_number, metastable, - atomic_weight_ratio, temperature) + data = cls(name, atomic_number, mass_number, metastable, + atomic_weight_ratio, temperature) # Read energy grid data.energy = group['energy'].value @@ -362,8 +354,8 @@ class IncidentNeutron(object): else: name = '{}{}.{}'.format(element, mass_number, xs) - data = IncidentNeutron(name, Z, mass_number, metastable, - ace.atomic_weight_ratio, ace.temperature) + data = cls(name, Z, mass_number, metastable, + ace.atomic_weight_ratio, ace.temperature) # Read energy grid n_energy = ace.nxs[3] diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 40e0910baa..195dcc341e 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -103,7 +103,7 @@ def _get_fission_products(ace): idx = ace.jxs[25] n_group = ace.nxs[8] total_group_probability = 0. - for i, group in enumerate(range(n_group)): + for group in range(n_group): delayed_neutron = Product('neutron') delayed_neutron.emission_mode = 'delayed' delayed_neutron.decay_rate = ace.xss[idx] @@ -201,14 +201,14 @@ def _get_photon_products(ace, mt): n_energy = int(ace.xss[idx + 1]) photon._xs = ace.xss[idx + 2:idx + 2 + n_energy] - # Determine yield based on ratio of cross sections + # TODO: Determine yield based on ratio of cross sections energy = ace.xss[ace.jxs[1] + threshold_idx: ace.jxs[1] + threshold_idx + n_energy] photon.yield_ = Tabulated1D(energy, photon._xs) else: raise ValueError("MFTYPE must be 12, 13, 16. Got {0}".format( - mftype)) + mftype)) # ================================================================== # Photon energy distribution diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 63e573a010..71ef190ab7 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -8,7 +8,10 @@ import h5py import openmc.checkvalue as cv from .ace import Table, get_table +from .angle_energy import AngleEnergy from .container import Tabulated1D +from .correlated import CorrelatedAngleEnergy +from openmc.stats import Discrete, Tabular _THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27', @@ -37,7 +40,7 @@ _THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27', class CoherentElastic(object): - """Coherent elastic scattering data from a crystalline material + r"""Coherent elastic scattering data from a crystalline material Parameters ---------- @@ -212,7 +215,7 @@ class ThermalScattering(object): self.inelastic_dist.to_hdf5(inelastic_group) @classmethod - def from_hdf5(self, group): + def from_hdf5(cls, group): """Generate thermal scattering data from HDF5 group Parameters @@ -229,7 +232,7 @@ class ThermalScattering(object): name = group.name[1:] atomic_weight_ratio = group.attrs['atomic_weight_ratio'] temperature = group.attrs['temperature'] - table = ThermalScattering(name, atomic_weight_ratio, temperature) + table = cls(name, atomic_weight_ratio, temperature) table.zaids = group.attrs['zaids'] # Read thermal elastic scattering @@ -363,7 +366,7 @@ class ThermalScattering(object): # Create correlated angle-energy distribution breakpoints = [n_energy] interpolation = [2] - energy = inelastic_xs.x + energy = table.inelastic_xs.x table.inelastic_dist = CorrelatedAngleEnergy( breakpoints, interpolation, energy, energy_out, mu_out) diff --git a/openmc/data/urr.py b/openmc/data/urr.py index b010a6c47c..052da66126 100644 --- a/openmc/data/urr.py +++ b/openmc/data/urr.py @@ -7,7 +7,7 @@ import openmc.checkvalue as cv class ProbabilityTables(object): - """Unresolved resonance region probability tables. + r"""Unresolved resonance region probability tables. Parameters ---------- @@ -18,7 +18,7 @@ class ProbabilityTables(object): where N is the number of energies and M is the number of bands. The second dimension indicates whether the value is for the cumulative probability (0), total (1), elastic (2), fission (3), :math:`(n,\gamma)` - (4), or heating number (6). + (4), or heating number (5). interpolation : {2, 5} Interpolation scheme between tables inelastic_flag : int @@ -45,7 +45,7 @@ class ProbabilityTables(object): where N is the number of energies and M is the number of bands. The second dimension indicates whether the value is for the cumulative probability (0), total (1), elastic (2), fission (3), :math:`(n,\gamma)` - (4), or heating number (6). + (4), or heating number (5). interpolation : {2, 5} Interpolation scheme between tables inelastic_flag : int From f3378f52064593e0bf90f0506e8a3969d004467b Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 15 Jul 2016 23:35:12 -0500 Subject: [PATCH 168/417] Style fixes; remove t % n_filters --- openmc/filter.py | 2 +- src/cmfd_data.F90 | 48 ++- src/cmfd_input.F90 | 11 +- src/initialize.F90 | 8 +- src/input_xml.F90 | 702 +++++++++++++++++++-------------------- src/output.F90 | 55 +-- src/state_point.F90 | 4 +- src/summary.F90 | 4 +- src/tally.F90 | 95 +++--- src/tally_header.F90 | 4 - src/tally_initialize.F90 | 6 +- src/trigger.F90 | 30 +- 12 files changed, 499 insertions(+), 470 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index d2615fba1a..b1c040a324 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -166,7 +166,7 @@ class Filter(object): # If the bin is 0D numpy array, promote to 1D elif isinstance(bins, np.ndarray): if bins.shape == (): - bins = bins.reshape((1,)) + bins.shape = (1,) # If the bins are in a collection, convert it to a list else: diff --git a/src/cmfd_data.F90 b/src/cmfd_data.F90 index 61e74716c9..0f1d9420be 100644 --- a/src/cmfd_data.F90 +++ b/src/cmfd_data.F90 @@ -145,7 +145,7 @@ contains TALLY: if (ital == 1) then ! Reset all bins to 1 - matching_bins(1:t%n_filters) = 1 + matching_bins(1:size(t % filters)) = 1 ! Set ijk as mesh indices ijk = (/ i, j, k /) @@ -159,7 +159,8 @@ contains end if ! Calculate score index from bins - score_index = sum((matching_bins(1:t%n_filters) - 1) * t%stride) + 1 + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t%stride) + 1 ! Get flux flux = t % results(1,score_index) % sum @@ -188,7 +189,7 @@ contains INGROUP: do g = 1, ng ! Reset all bins to 1 - matching_bins(1:t%n_filters) = 1 + matching_bins(1:size(t % filters)) = 1 ! Set ijk as mesh indices ijk = (/ i, j, k /) @@ -205,7 +206,8 @@ contains end if ! Calculate score index from bins - score_index = sum((matching_bins(1:t%n_filters) - 1) * t%stride) + 1 + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t%stride) + 1 ! Get scattering cmfd % scattxs(h,g,i,j,k) = t % results(1,score_index) % sum /& @@ -227,7 +229,7 @@ contains else if (ital == 3) then ! Initialize and filter for energy - matching_bins(1:t%n_filters) = 1 + matching_bins(1:size(t % filters)) = 1 if (i_filter_ein > 0) then matching_bins(i_filter_ein) = ng - h + 1 end if @@ -236,60 +238,72 @@ contains matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i-1, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_RIGHT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t%stride) + 1 ! outgoing cmfd % current(1,h,i,j,k) = t % results(1,score_index) % sum matching_bins(i_filter_surf) = OUT_RIGHT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! incoming cmfd % current(2,h,i,j,k) = t % results(1,score_index) % sum ! Right surface matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_RIGHT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! incoming cmfd % current(3,h,i,j,k) = t % results(1,score_index) % sum matching_bins(i_filter_surf) = OUT_RIGHT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! outgoing cmfd % current(4,h,i,j,k) = t % results(1,score_index) % sum ! Back surface matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j-1, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_FRONT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! outgoing cmfd % current(5,h,i,j,k) = t % results(1,score_index) % sum matching_bins(i_filter_surf) = OUT_FRONT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! incoming cmfd % current(6,h,i,j,k) = t % results(1,score_index) % sum ! Front surface matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_FRONT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! incoming cmfd % current(7,h,i,j,k) = t % results(1,score_index) % sum matching_bins(i_filter_surf) = OUT_FRONT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! outgoing cmfd % current(8,h,i,j,k) = t % results(1,score_index) % sum ! Bottom surface matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k-1 /) + 1, .true.) matching_bins(i_filter_surf) = IN_TOP - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! outgoing cmfd % current(9,h,i,j,k) = t % results(1,score_index) % sum matching_bins(i_filter_surf) = OUT_TOP - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! incoming cmfd % current(10,h,i,j,k) = t % results(1,score_index) % sum ! Top surface matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_TOP - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! incoming cmfd % current(11,h,i,j,k) = t % results(1,score_index) % sum matching_bins(i_filter_surf) = OUT_TOP - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! outgoing cmfd % current(12,h,i,j,k) = t % results(1,score_index) % sum end if TALLY diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index 69b9eb6c02..baa08e76e8 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -412,7 +412,7 @@ contains ! Set up mesh filter n_filters = 1 - allocate(MeshFilter::filters(n_filters) % obj) + allocate(MeshFilter :: filters(n_filters) % obj) select type (filt => filters(n_filters) % obj) type is (MeshFilter) filt % n_bins = product(m % dimension) @@ -423,7 +423,7 @@ contains ! Read and set incoming energy mesh filter if (check_for_node(node_mesh, "energy")) then n_filters = n_filters + 1 - allocate(EnergyFilter::filters(n_filters) % obj) + allocate(EnergyFilter :: filters(n_filters) % obj) select type (filt => filters(n_filters) % obj) type is (EnergyFilter) ng = get_arraysize_double(node_mesh, "energy") @@ -454,7 +454,6 @@ contains t % type = TALLY_VOLUME ! Allocate and set filters - t % n_filters = n_filters allocate(t % filters(n_filters)) do j = 1, n_filters call move_alloc(filters(j) % obj, t % filters(j) % obj) @@ -489,7 +488,7 @@ contains ! read and set outgoing energy mesh filter if (check_for_node(node_mesh, "energy")) then n_filters = n_filters + 1 - allocate(EnergyoutFilter::filters(n_filters) % obj) + allocate(EnergyoutFilter :: filters(n_filters) % obj) select type (filt => filters(n_filters) % obj) type is (EnergyoutFilter) ng = get_arraysize_double(node_mesh, "energy") @@ -501,7 +500,6 @@ contains end if ! Allocate and set filters - t % n_filters = n_filters allocate(t % filters(n_filters)) do j = 1, n_filters call move_alloc(filters(j) % obj, t % filters(j) % obj) @@ -530,7 +528,7 @@ contains ! Add extra filter for surface n_filters = n_filters + 1 - allocate(SurfaceFilter::filters(n_filters) % obj) + allocate(SurfaceFilter :: filters(n_filters) % obj) select type(filt => filters(n_filters) % obj) type is(SurfaceFilter) filt % n_bins = 2 * m % n_dimension @@ -545,7 +543,6 @@ contains t % find_filter(FILTER_SURFACE) = n_filters ! Allocate and set filters - t % n_filters = n_filters allocate(t % filters(n_filters)) do j = 1, n_filters call move_alloc(filters(j) % obj, t % filters(j) % obj) diff --git a/src/initialize.F90 b/src/initialize.F90 index 3c1e44ff7a..1972ea3664 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -723,7 +723,7 @@ contains ! ======================================================================= ! ADJUST INDICES FOR EACH TALLY FILTER - FILTER_LOOP: do j = 1, t % n_filters + FILTER_LOOP: do j = 1, size(t % filters) select type(filt => t % filters(j) % obj) type is (SurfaceFilter) @@ -910,7 +910,7 @@ contains ! We need distribcell if any tallies have distribcell filters. do i = 1, n_tallies - do j = 1, tallies(i) % n_filters + do j = 1, size(tallies(i) % filters) select type(filt => tallies(i) % filters(j) % obj) type is (DistribcellFilter) distribcell_active = .true. @@ -937,7 +937,7 @@ contains ! Set the number of bins in all distribcell filters. do i = 1, n_tallies - do j = 1, tallies(i) % n_filters + do j = 1, size(tallies(i) % filters) select type(filt => tallies(i) % filters(j) % obj) type is (DistribcellFilter) ! Set the number of bins to the number of instances of the cell. @@ -1002,7 +1002,7 @@ contains ! List all cells referenced in distribcell filters. do i = 1, n_tallies - do j = 1, tallies(i) % n_filters + do j = 1, size(tallies(i) % filters) select type(filt => tallies(i) % filters(j) % obj) type is (DistribcellFilter) call cell_list % add(filt % cell) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index c8e5b28aff..f0b442c889 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2883,360 +2883,352 @@ contains call get_node_list(node_tal, "filter", node_filt_list) n_filters = get_list_size(node_filt_list) - if (n_filters /= 0) then + ! Allocate filters array + allocate(t % filters(n_filters)) - ! Allocate filters array - t % n_filters = n_filters - allocate(t % filters(n_filters)) + READ_FILTERS: do j = 1, n_filters + ! Get pointer to filter xml node + call get_list_item(node_filt_list, j, node_filt) - READ_FILTERS: do j = 1, n_filters - ! Get pointer to filter xml node - call get_list_item(node_filt_list, j, node_filt) + ! Convert filter type to lower case + temp_str = '' + if (check_for_node(node_filt, "type")) & + call get_node_value(node_filt, "type", temp_str) + temp_str = to_lower(temp_str) - ! Convert filter type to lower case - temp_str = '' - if (check_for_node(node_filt, "type")) & - call get_node_value(node_filt, "type", temp_str) - temp_str = to_lower(temp_str) - - ! Determine number of bins - if (check_for_node(node_filt, "bins")) then - 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") - else - n_words = get_arraysize_integer(node_filt, "bins") - end if + ! Determine number of bins + if (check_for_node(node_filt, "bins")) then + 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") else - call fatal_error("Bins not set in filter on tally " & - // trim(to_str(t % id))) + n_words = get_arraysize_integer(node_filt, "bins") end if - - ! Determine type of filter - select case (temp_str) - - case ('distribcell') - ! Allocate and declare the filter type - allocate(DistribcellFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (DistribcellFilter) - if (n_words /= 1) call fatal_error("Only one cell can be & - &specified per distribcell filter.") - ! Store bins - call get_node_value(node_filt, "bins", filt % cell) - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_DISTRIBCELL) = j - - case ('cell') - ! Allocate and declare the filter type - allocate(CellFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (CellFilter) - ! Allocate and store bins - filt % n_bins = n_words - allocate(filt % cells(n_words)) - call get_node_array(node_filt, "bins", filt % cells) - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_CELL) = j - - case ('cellborn') - ! Allocate and declare the filter type - allocate(CellbornFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (CellbornFilter) - ! Allocate and store bins - filt % n_bins = n_words - allocate(filt % cells(n_words)) - call get_node_array(node_filt, "bins", filt % cells) - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_CELLBORN) = j - - case ('material') - ! Allocate and declare the filter type - allocate(MaterialFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (MaterialFilter) - ! Allocate and store bins - filt % n_bins = n_words - allocate(filt % materials(n_words)) - call get_node_array(node_filt, "bins", filt % materials) - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_MATERIAL) = j - - case ('universe') - ! Allocate and declare the filter type - allocate(UniverseFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (UniverseFilter) - ! Allocate and store bins - filt % n_bins = n_words - allocate(filt % universes(n_words)) - call get_node_array(node_filt, "bins", filt % universes) - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_UNIVERSE) = j - - case ('surface') - call fatal_error("Surface filter is not yet supported!") - ! Allocate and declare the filter type - allocate(SurfaceFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (SurfaceFilter) - ! Allocate and store bins - filt % n_bins = n_words - allocate(filt % surfaces(n_words)) - call get_node_array(node_filt, "bins", filt % surfaces) - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_SURFACE) = j - - case ('mesh') - ! Allocate and declare the filter type - allocate(MeshFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (MeshFilter) - if (n_words /= 1) call fatal_error("Only one mesh can be & - &specified per mesh filter.") - - ! Determine id of mesh - call get_node_value(node_filt, "bins", id) - - ! Get pointer to mesh - if (mesh_dict % has_key(id)) then - i_mesh = mesh_dict % get_key(id) - m => meshes(i_mesh) - else - call fatal_error("Could not find mesh " // trim(to_str(id)) & - // " specified on tally " // trim(to_str(t % id))) - end if - - ! Determine number of bins -- this is assuming that the tally is - ! a volume tally and not a surface current tally. If it is a - ! surface current tally, the number of bins will get reset later - filt % n_bins = product(m % dimension) - - ! Store the index of the mesh - filt % mesh = i_mesh - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_MESH) = j - - case ('energy') - ! Allocate and declare the filter type - allocate(EnergyFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (EnergyFilter) - ! Allocate and store bins - filt % n_bins = n_words - 1 - allocate(filt % bins(n_words)) - call get_node_array(node_filt, "bins", filt % bins) - - ! We can save tallying time if we know that the tally bins match - ! the energy group structure. In that case, the matching bin - ! index is simply the group (after flipping for the different - ! ordering of the library and tallying systems). - if (.not. run_CE) then - if (n_words == energy_groups + 1) then - if (all(filt % bins == energy_bins(energy_groups + 1:1:-1))) & - then - filt % matches_transport_groups = .true. - end if - end if - end if - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_ENERGYIN) = j - - case ('energyout') - ! Allocate and declare the filter type - allocate(EnergyoutFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (EnergyoutFilter) - ! Allocate and store bins - filt % n_bins = n_words - 1 - allocate(filt % bins(n_words)) - call get_node_array(node_filt, "bins", filt % bins) - - ! We can save tallying time if we know that the tally bins match - ! the energy group structure. In that case, the matching bin - ! index is simply the group (after flipping for the different - ! ordering of the library and tallying systems). - if (.not. run_CE) then - if (n_words == energy_groups + 1) then - if (all(filt % bins == energy_bins(energy_groups + 1:1:-1))) & - then - filt % matches_transport_groups = .true. - end if - end if - end if - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_ENERGYOUT) = j - - ! 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 - - ! Allocate and declare the filter type - allocate(DelayedGroupFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (DelayedGroupFilter) - ! Allocate and store bins - filt % n_bins = n_words - allocate(filt % groups(n_words)) - call get_node_array(node_filt, "bins", filt % groups) - - ! Check that bins are all are between 1 and MAX_DELAYED_GROUPS - do d = 1, n_words - if (filt % groups(d) < 1 .or. & - filt % groups(d) > MAX_DELAYED_GROUPS) then - call fatal_error("Encountered delayedgroup bin with index " & - // trim(to_str(filt % groups(d))) // " that is outside & - &the range of 1 to MAX_DELAYED_GROUPS ( " & - // trim(to_str(MAX_DELAYED_GROUPS)) // ")") - end if - end do - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_DELAYEDGROUP) = j - - case ('mu') - ! Allocate and declare the filter type - allocate(MuFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (MuFilter) - ! Allocate and store bins - filt % n_bins = n_words - 1 - allocate(filt % bins(n_words)) - call get_node_array(node_filt, "bins", filt % bins) - - ! Allow a user to input a lone number which will mean that you - ! subdivide [-1,1] evenly with the input being the number of bins - if (n_words == 1) then - Nangle = int(filt % bins(1)) - if (Nangle > 1) then - filt % n_bins = Nangle - dangle = TWO / real(Nangle,8) - deallocate(filt % bins) - allocate(filt % bins(Nangle + 1)) - do iangle = 1, Nangle - filt % bins(iangle) = -ONE + (iangle - 1) * dangle - end do - filt % bins(Nangle + 1) = ONE - else - call fatal_error("Number of bins for mu filter must be& - & greater than 1 on tally " & - // trim(to_str(t % id)) // ".") - end if - end if - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_MU) = j - - ! Set to analog estimator - t % estimator = ESTIMATOR_ANALOG - - case ('polar') - ! Allocate and declare the filter type - allocate(PolarFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (PolarFilter) - ! Allocate and store bins - filt % n_bins = n_words - 1 - allocate(filt % bins(n_words)) - call get_node_array(node_filt, "bins", filt % bins) - - ! Allow a user to input a lone number which will mean that you - ! subdivide [0,pi] evenly with the input being the number of bins - if (n_words == 1) then - Nangle = int(filt % bins(1)) - if (Nangle > 1) then - filt % n_bins = Nangle - dangle = PI / real(Nangle,8) - deallocate(filt % bins) - allocate(filt % bins(Nangle + 1)) - do iangle = 1, Nangle - filt % bins(iangle) = (iangle - 1) * dangle - end do - filt % bins(Nangle + 1) = PI - else - call fatal_error("Number of bins for mu filter must be& - & greater than 1 on tally " & - // trim(to_str(t % id)) // ".") - end if - end if - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_POLAR) = j - - case ('azimuthal') - ! Allocate and declare the filter type - allocate(AzimuthalFilter::t % filters(j) % obj) - select type (filt => t % filters(j) % obj) - type is (AzimuthalFilter) - ! Allocate and store bins - filt % n_bins = n_words - 1 - allocate(filt % bins(n_words)) - call get_node_array(node_filt, "bins", filt % bins) - - ! Allow a user to input a lone number which will mean that you - ! subdivide [-pi,pi) evenly with the input being the number of - ! bins - if (n_words == 1) then - Nangle = int(filt % bins(1)) - if (Nangle > 1) then - filt % n_bins = Nangle - dangle = TWO * PI / real(Nangle,8) - deallocate(filt % bins) - allocate(filt % bins(Nangle + 1)) - do iangle = 1, Nangle - filt % bins(iangle) = -PI + (iangle - 1) * dangle - end do - filt % bins(Nangle + 1) = PI - else - call fatal_error("Number of bins for mu filter must be& - & greater than 1 on tally " & - // trim(to_str(t % id)) // ".") - end if - end if - end select - ! Set the filter index in the tally find_filter array - t % find_filter(FILTER_AZIMUTHAL) = j - - 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)) // ".") - - end select - - end do READ_FILTERS - - ! Check that both cell and surface weren't specified - if (t % find_filter(FILTER_CELL) > 0 .and. & - t % find_filter(FILTER_SURFACE) > 0) then - call fatal_error("Cannot specify both cell and surface filters for & - &tally " // trim(to_str(t % id))) + else + call fatal_error("Bins not set in filter on tally " & + // trim(to_str(t % id))) end if - else - ! No filters were specified - t % n_filters = 0 + ! Determine type of filter + select case (temp_str) + + case ('distribcell') + ! Allocate and declare the filter type + allocate(DistribcellFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (DistribcellFilter) + if (n_words /= 1) call fatal_error("Only one cell can be & + &specified per distribcell filter.") + ! Store bins + call get_node_value(node_filt, "bins", filt % cell) + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_DISTRIBCELL) = j + + case ('cell') + ! Allocate and declare the filter type + allocate(CellFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (CellFilter) + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % cells(n_words)) + call get_node_array(node_filt, "bins", filt % cells) + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_CELL) = j + + case ('cellborn') + ! Allocate and declare the filter type + allocate(CellbornFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (CellbornFilter) + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % cells(n_words)) + call get_node_array(node_filt, "bins", filt % cells) + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_CELLBORN) = j + + case ('material') + ! Allocate and declare the filter type + allocate(MaterialFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (MaterialFilter) + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % materials(n_words)) + call get_node_array(node_filt, "bins", filt % materials) + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_MATERIAL) = j + + case ('universe') + ! Allocate and declare the filter type + allocate(UniverseFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (UniverseFilter) + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % universes(n_words)) + call get_node_array(node_filt, "bins", filt % universes) + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_UNIVERSE) = j + + case ('surface') + call fatal_error("Surface filter is not yet supported!") + ! Allocate and declare the filter type + allocate(SurfaceFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (SurfaceFilter) + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % surfaces(n_words)) + call get_node_array(node_filt, "bins", filt % surfaces) + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_SURFACE) = j + + case ('mesh') + ! Allocate and declare the filter type + allocate(MeshFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (MeshFilter) + if (n_words /= 1) call fatal_error("Only one mesh can be & + &specified per mesh filter.") + + ! Determine id of mesh + call get_node_value(node_filt, "bins", id) + + ! Get pointer to mesh + if (mesh_dict % has_key(id)) then + i_mesh = mesh_dict % get_key(id) + m => meshes(i_mesh) + else + call fatal_error("Could not find mesh " // trim(to_str(id)) & + // " specified on tally " // trim(to_str(t % id))) + end if + + ! Determine number of bins -- this is assuming that the tally is + ! a volume tally and not a surface current tally. If it is a + ! surface current tally, the number of bins will get reset later + filt % n_bins = product(m % dimension) + + ! Store the index of the mesh + filt % mesh = i_mesh + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_MESH) = j + + case ('energy') + ! Allocate and declare the filter type + allocate(EnergyFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (EnergyFilter) + ! Allocate and store bins + filt % n_bins = n_words - 1 + allocate(filt % bins(n_words)) + call get_node_array(node_filt, "bins", filt % bins) + + ! We can save tallying time if we know that the tally bins match + ! the energy group structure. In that case, the matching bin + ! index is simply the group (after flipping for the different + ! ordering of the library and tallying systems). + if (.not. run_CE) then + if (n_words == energy_groups + 1) then + if (all(filt % bins == energy_bins(energy_groups + 1:1:-1))) & + then + filt % matches_transport_groups = .true. + end if + end if + end if + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_ENERGYIN) = j + + case ('energyout') + ! Allocate and declare the filter type + allocate(EnergyoutFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (EnergyoutFilter) + ! Allocate and store bins + filt % n_bins = n_words - 1 + allocate(filt % bins(n_words)) + call get_node_array(node_filt, "bins", filt % bins) + + ! We can save tallying time if we know that the tally bins match + ! the energy group structure. In that case, the matching bin + ! index is simply the group (after flipping for the different + ! ordering of the library and tallying systems). + if (.not. run_CE) then + if (n_words == energy_groups + 1) then + if (all(filt % bins == energy_bins(energy_groups + 1:1:-1))) & + then + filt % matches_transport_groups = .true. + end if + end if + end if + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_ENERGYOUT) = j + + ! 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 + + ! Allocate and declare the filter type + allocate(DelayedGroupFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (DelayedGroupFilter) + ! Allocate and store bins + filt % n_bins = n_words + allocate(filt % groups(n_words)) + call get_node_array(node_filt, "bins", filt % groups) + + ! Check that bins are all are between 1 and MAX_DELAYED_GROUPS + do d = 1, n_words + if (filt % groups(d) < 1 .or. & + filt % groups(d) > MAX_DELAYED_GROUPS) then + call fatal_error("Encountered delayedgroup bin with index " & + // trim(to_str(filt % groups(d))) // " that is outside & + &the range of 1 to MAX_DELAYED_GROUPS ( " & + // trim(to_str(MAX_DELAYED_GROUPS)) // ")") + end if + end do + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_DELAYEDGROUP) = j + + case ('mu') + ! Allocate and declare the filter type + allocate(MuFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (MuFilter) + ! Allocate and store bins + filt % n_bins = n_words - 1 + allocate(filt % bins(n_words)) + call get_node_array(node_filt, "bins", filt % bins) + + ! Allow a user to input a lone number which will mean that you + ! subdivide [-1,1] evenly with the input being the number of bins + if (n_words == 1) then + Nangle = int(filt % bins(1)) + if (Nangle > 1) then + filt % n_bins = Nangle + dangle = TWO / real(Nangle,8) + deallocate(filt % bins) + allocate(filt % bins(Nangle + 1)) + do iangle = 1, Nangle + filt % bins(iangle) = -ONE + (iangle - 1) * dangle + end do + filt % bins(Nangle + 1) = ONE + else + call fatal_error("Number of bins for mu filter must be& + & greater than 1 on tally " & + // trim(to_str(t % id)) // ".") + end if + end if + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_MU) = j + + ! Set to analog estimator + t % estimator = ESTIMATOR_ANALOG + + case ('polar') + ! Allocate and declare the filter type + allocate(PolarFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (PolarFilter) + ! Allocate and store bins + filt % n_bins = n_words - 1 + allocate(filt % bins(n_words)) + call get_node_array(node_filt, "bins", filt % bins) + + ! Allow a user to input a lone number which will mean that you + ! subdivide [0,pi] evenly with the input being the number of bins + if (n_words == 1) then + Nangle = int(filt % bins(1)) + if (Nangle > 1) then + filt % n_bins = Nangle + dangle = PI / real(Nangle,8) + deallocate(filt % bins) + allocate(filt % bins(Nangle + 1)) + do iangle = 1, Nangle + filt % bins(iangle) = (iangle - 1) * dangle + end do + filt % bins(Nangle + 1) = PI + else + call fatal_error("Number of bins for mu filter must be& + & greater than 1 on tally " & + // trim(to_str(t % id)) // ".") + end if + end if + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_POLAR) = j + + case ('azimuthal') + ! Allocate and declare the filter type + allocate(AzimuthalFilter::t % filters(j) % obj) + select type (filt => t % filters(j) % obj) + type is (AzimuthalFilter) + ! Allocate and store bins + filt % n_bins = n_words - 1 + allocate(filt % bins(n_words)) + call get_node_array(node_filt, "bins", filt % bins) + + ! Allow a user to input a lone number which will mean that you + ! subdivide [-pi,pi) evenly with the input being the number of + ! bins + if (n_words == 1) then + Nangle = int(filt % bins(1)) + if (Nangle > 1) then + filt % n_bins = Nangle + dangle = TWO * PI / real(Nangle,8) + deallocate(filt % bins) + allocate(filt % bins(Nangle + 1)) + do iangle = 1, Nangle + filt % bins(iangle) = -PI + (iangle - 1) * dangle + end do + filt % bins(Nangle + 1) = PI + else + call fatal_error("Number of bins for mu filter must be& + & greater than 1 on tally " & + // trim(to_str(t % id)) // ".") + end if + end if + end select + ! Set the filter index in the tally find_filter array + t % find_filter(FILTER_AZIMUTHAL) = j + + 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)) // ".") + + end select + + end do READ_FILTERS + + ! Check that both cell and surface weren't specified + if (t % find_filter(FILTER_CELL) > 0 .and. & + t % find_filter(FILTER_SURFACE) > 0) then + call fatal_error("Cannot specify both cell and surface filters for & + &tally " // trim(to_str(t % id))) end if ! ======================================================================= @@ -3272,7 +3264,7 @@ contains if (trim(sarray(j)) == 'total') then ! Check if a delayedgroup filter is present for this tally - do l = 1, t % n_filters + do l = 1, size(t % filters) select type(filt => t % filters(l) % obj) type is (DelayedGroupFilter) call warning("A delayedgroup filter was used on a total & @@ -3337,7 +3329,7 @@ contains t % n_nuclide_bins = 1 ! Check if a delayedgroup filter is present for this tally - do l = 1, t % n_filters + do l = 1, size(t % filters) select type(filt => t % filters(l) % obj) type is (DelayedGroupFilter) call warning("A delayedgroup filter was used on a total nuclide & @@ -3671,17 +3663,17 @@ contains end select ! Copy filters to temporary array - allocate(filters(t % n_filters + 1)) - filters(1:t % n_filters) = t % filters + allocate(filters(size(t % filters) + 1)) + filters(1:size(t % filters)) = t % filters ! Move allocation back -- filters becomes deallocated during ! this call call move_alloc(FROM=filters, TO=t%filters) ! Add surface filter - t % n_filters = t % n_filters + 1 - allocate(SurfaceFilter::t % filters(t % n_filters) % obj) - select type (filt => t % filters(t % n_filters) % obj) + n_filters = size(t % filters) + allocate(SurfaceFilter :: t % filters(n_filters) % obj) + select type (filt => t % filters(size(t % filters)) % obj) type is (SurfaceFilter) filt % n_bins = 2 * m % n_dimension allocate(filt % surfaces(2 * m % n_dimension)) @@ -3692,7 +3684,7 @@ contains IN_TOP, OUT_TOP /) end if end select - t % find_filter(FILTER_SURFACE) = t % n_filters + t % find_filter(FILTER_SURFACE) = size(t % filters) case ('events') t % score_bins(j) = SCORE_EVENTS diff --git a/src/output.F90 b/src/output.F90 index c9c0cffbeb..7717593a7e 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -825,14 +825,14 @@ contains ! to be used for a given tally. ! Initialize bins, filter level, and indentation - matching_bins(1:t%n_filters) = 0 + matching_bins(1:size(t % filters)) = 0 j = 1 indent = 0 print_bin: do find_bin: do ! Check for no filters - if (t % n_filters == 0) exit find_bin + if (size(t % filters) == 0) exit find_bin ! Increment bin combination matching_bins(j) = matching_bins(j) + 1 @@ -853,7 +853,7 @@ contains else ! Check if this is last filter - if (j == t % n_filters) exit find_bin + if (j == size(t % filters)) exit find_bin ! Print current filter information write(UNIT=unit_tally, FMT='(1X,2A)') repeat(" ", indent), & @@ -865,7 +865,7 @@ contains end do find_bin ! Print filter information - if (t % n_filters > 0) then + if (size(t % filters) > 0) then write(UNIT=unit_tally, FMT='(1X,2A)') repeat(" ", indent), & trim(t % filters(j) % obj % text_label(matching_bins(j))) end if @@ -874,15 +874,16 @@ contains ! in the score_tally subroutine, we have to use max(bins,1) since all ! bins below the lowest filter level will be zeros - if (t % n_filters > 0) then - filter_index = sum((max(matching_bins(1:t%n_filters),1) - 1) * t % stride) + 1 + if (size(t % filters) > 0) then + filter_index = sum((max(matching_bins(1:size(t % filters)),1) - 1) & + * t % stride) + 1 else filter_index = 1 end if ! Write results for this filter bin combination score_index = 0 - if (t % n_filters > 0) indent = indent + 2 + if (size(t % filters) > 0) indent = indent + 2 do n = 1, t % n_nuclide_bins ! Write label for nuclide i_nuclide = t % nuclide_bins(n) @@ -959,7 +960,7 @@ contains end do indent = indent - 2 - if (t % n_filters == 0) exit print_bin + if (size(t % filters) == 0) exit print_bin end do print_bin @@ -1002,7 +1003,7 @@ contains end select ! initialize bins array - matching_bins(1:t%n_filters) = 1 + matching_bins(1:size(t % filters)) = 1 ! determine how many energy in bins there are i_filter_ein = t % find_filter(FILTER_ENERGYIN) @@ -1040,14 +1041,16 @@ contains matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i-1, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_RIGHT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Outgoing Current to Left", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) matching_bins(i_filter_surf) = OUT_RIGHT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Incoming Current from Left", & to_str(t % results(1,filter_index) % sum), & @@ -1057,14 +1060,16 @@ contains matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_RIGHT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Incoming Current from Right", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) matching_bins(i_filter_surf) = OUT_RIGHT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Outgoing Current to Right", & to_str(t % results(1,filter_index) % sum), & @@ -1074,14 +1079,16 @@ contains matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j-1, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_FRONT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Outgoing Current to Back", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) matching_bins(i_filter_surf) = OUT_FRONT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Incoming Current from Back", & to_str(t % results(1,filter_index) % sum), & @@ -1091,14 +1098,16 @@ contains matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_FRONT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Incoming Current from Front", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) matching_bins(i_filter_surf) = OUT_FRONT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Outgoing Current to Front", & to_str(t % results(1,filter_index) % sum), & @@ -1108,14 +1117,16 @@ contains matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k-1 /) + 1, .true.) matching_bins(i_filter_surf) = IN_TOP - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Outgoing Current to Bottom", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) matching_bins(i_filter_surf) = OUT_TOP - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Incoming Current from Bottom", & to_str(t % results(1,filter_index) % sum), & @@ -1125,14 +1136,16 @@ contains matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_TOP - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Incoming Current from Top", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) matching_bins(i_filter_surf) = OUT_TOP - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Outgoing Current to Top", & to_str(t % results(1,filter_index) % sum), & diff --git a/src/state_point.F90 b/src/state_point.F90 index 68905ca4ad..0529fb54b4 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -237,10 +237,10 @@ contains 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_filters", size(tally % filters)) ! Write filter information - FILTER_LOOP: do j = 1, tally % n_filters + FILTER_LOOP: do j = 1, size(tally % filters) filter_group = create_group(tally_group, "filter " // & trim(to_str(j))) call tally % filters(j) % obj % to_statepoint(filter_group) diff --git a/src/summary.F90 b/src/summary.F90 index 52b4ad9dd4..6f8c190670 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -625,9 +625,9 @@ contains call write_dataset(tally_group, "name", t%name) ! Write number of filters - call write_dataset(tally_group, "n_filters", t%n_filters) + call write_dataset(tally_group, "n_filters", size(t % filters)) - FILTER_LOOP: do j = 1, t % n_filters + FILTER_LOOP: do j = 1, size(t % filters) filter_group = create_group(tally_group, "filter " // trim(to_str(j))) call t % filters(j) % obj % to_summary(filter_group) call close_group(filter_group) diff --git a/src/tally.F90 b/src/tally.F90 index fed64324b3..361b4a3bf1 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1367,7 +1367,7 @@ contains ! Find the first bin in each filter. There may be more than one matching ! bin per filter, but we'll deal with those later. - do i_filt = 1, t % n_filters + do i_filt = 1, size(t % filters) call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & NO_BIN_FOUND, matching_bins(i_filt), filter_weights(i_filt)) ! If there are no valid bins for this filter, then there is nothing to @@ -1382,8 +1382,9 @@ contains FILTER_LOOP: do ! Determine scoring index and weight for this filter combination - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - filter_weight = product(filter_weights(:t % n_filters)) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + filter_weight = product(filter_weights(:size(t % filters))) ! ====================================================================== ! Nuclide logic @@ -1434,13 +1435,13 @@ contains ! Filter logic ! If there are no filters, then we are done. - if (t % n_filters == 0) exit FILTER_LOOP + if (size(t % filters) == 0) exit FILTER_LOOP ! Increment the filter bins, starting with the last filter. If we get a ! NO_BIN_FOUND for the last filter, it means we finished all valid bins ! for that filter, but next-to-last filter might have more than one ! valid bin so we need to increment that one as well, and so on. - do i_filt = t % n_filters, 1, -1 + do i_filt = size(t % filters), 1, -1 call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & matching_bins(i_filt), matching_bins(i_filt), & filter_weights(i_filt)) @@ -1449,11 +1450,12 @@ contains ! If we got all NO_BIN_FOUNDs, then we have finished all valid bins for ! each of the filters. Exit the loop. - if (all(matching_bins(:t % n_filters) == NO_BIN_FOUND)) exit FILTER_LOOP + if (all(matching_bins(:size(t % filters)) == NO_BIN_FOUND)) & + exit FILTER_LOOP ! Reset all the filters with NO_BIN_FOUND. This will set them back to ! their first valid bin. - do i_filt = 1, t % n_filters + do i_filt = 1, size(t % filters) if (matching_bins(i_filt) == NO_BIN_FOUND) then call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & matching_bins(i_filt), matching_bins(i_filt), & @@ -1506,7 +1508,7 @@ contains ! Find the first bin in each filter. There may be more than one matching ! bin per filter, but we'll deal with those later. - do i_filt = 1, t % n_filters + do i_filt = 1, size(t % filters) call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & NO_BIN_FOUND, matching_bins(i_filt), filter_weights(i_filt)) ! If there are no valid bins for this filter, then there is nothing to @@ -1521,8 +1523,9 @@ contains FILTER_LOOP: do ! Determine scoring index and weight for this filter combination - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - filter_weight = product(filter_weights(:t % n_filters)) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + filter_weight = product(filter_weights(:size(t % filters))) ! ====================================================================== ! Nuclide logic @@ -1554,13 +1557,13 @@ contains ! Filter logic ! If there are no filters, then we are done. - if (t % n_filters == 0) exit FILTER_LOOP + if (size(t % filters) == 0) exit FILTER_LOOP ! Increment the filter bins, starting with the last filter. If we get a ! NO_BIN_FOUND for the last filter, it means we finished all valid bins ! for that filter, but next-to-last filter might have more than one ! valid bin so we need to increment that one as well, and so on. - do i_filt = t % n_filters, 1, -1 + do i_filt = size(t % filters), 1, -1 call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & matching_bins(i_filt), matching_bins(i_filt), & filter_weights(i_filt)) @@ -1569,11 +1572,12 @@ contains ! If we got all NO_BIN_FOUNDs, then we have finished all valid bins for ! each of the filters. Exit the loop. - if (all(matching_bins(:t % n_filters) == NO_BIN_FOUND)) exit FILTER_LOOP + if (all(matching_bins(:size(t % filters)) == NO_BIN_FOUND)) & + exit FILTER_LOOP ! Reset all the filters with NO_BIN_FOUND. This will set them back to ! their first valid bin. - do i_filt = 1, t % n_filters + do i_filt = 1, size(t % filters) if (matching_bins(i_filt) == NO_BIN_FOUND) then call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & matching_bins(i_filt), matching_bins(i_filt), & @@ -1647,7 +1651,7 @@ contains matching_bins(i) = binary_search(filt % bins, n, E_out) ! determine scoring index - i_filter = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + i_filter = sum((matching_bins(1:size(t%filters)) - 1) * t % stride) + 1 ! Add score to tally !$omp atomic @@ -1729,7 +1733,7 @@ contains end if ! determine scoring index - i_filter = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + i_filter = sum((matching_bins(1:size(t%filters)) - 1) * t % stride) + 1 ! Add score to tally !$omp atomic @@ -1832,7 +1836,8 @@ contains else ! determine scoring index - i_filter = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + i_filter = sum((matching_bins(1:size(t%filters)) - 1) * t % stride)& + + 1 ! Add score to tally !$omp atomic @@ -1868,7 +1873,8 @@ contains matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = d_bin ! Compute the filter index based on the modified matching_bins - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic t % results(score_index, filter_index) % value = & @@ -1917,7 +1923,7 @@ contains ! Find the first bin in each filter. There may be more than one matching ! bin per filter, but we'll deal with those later. - do i_filt = 1, t % n_filters + do i_filt = 1, size(t % filters) call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & NO_BIN_FOUND, matching_bins(i_filt), filter_weights(i_filt)) ! If there are no valid bins for this filter, then there is nothing to @@ -1932,8 +1938,9 @@ contains FILTER_LOOP: do ! Determine scoring index and weight for this filter combination - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - filter_weight = product(filter_weights(:t % n_filters)) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + filter_weight = product(filter_weights(:size(t % filters))) ! ====================================================================== ! Nuclide logic @@ -1984,13 +1991,13 @@ contains ! Filter logic ! If there are no filters, then we are done. - if (t % n_filters == 0) exit FILTER_LOOP + if (size(t % filters) == 0) exit FILTER_LOOP ! Increment the filter bins, starting with the last filter. If we get a ! NO_BIN_FOUND for the last filter, it means we finished all valid bins ! for that filter, but next-to-last filter might have more than one ! valid bin so we need to increment that one as well, and so on. - do i_filt = t % n_filters, 1, -1 + do i_filt = size(t % filters), 1, -1 call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & matching_bins(i_filt), matching_bins(i_filt), & filter_weights(i_filt)) @@ -1999,11 +2006,12 @@ contains ! If we got all NO_BIN_FOUNDs, then we have finished all valid bins for ! each of the filters. Exit the loop. - if (all(matching_bins(:t % n_filters) == NO_BIN_FOUND)) exit FILTER_LOOP + if (all(matching_bins(:size(t % filters)) == NO_BIN_FOUND)) & + exit FILTER_LOOP ! Reset all the filters with NO_BIN_FOUND. This will set them back to ! their first valid bin. - do i_filt = 1, t % n_filters + do i_filt = 1, size(t % filters) if (matching_bins(i_filt) == NO_BIN_FOUND) then call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & matching_bins(i_filt), matching_bins(i_filt), & @@ -2070,7 +2078,7 @@ contains ! Find the first bin in each filter. There may be more than one matching ! bin per filter, but we'll deal with those later. - do i_filt = 1, t % n_filters + do i_filt = 1, size(t % filters) call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & NO_BIN_FOUND, matching_bins(i_filt), filter_weights(i_filt)) ! If there are no valid bins for this filter, then there is nothing to @@ -2085,8 +2093,9 @@ contains FILTER_LOOP: do ! Determine scoring index and weight for this filter combination - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - filter_weight = product(filter_weights(:t % n_filters)) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + filter_weight = product(filter_weights(:size(t % filters))) ! ====================================================================== ! Nuclide logic @@ -2137,13 +2146,13 @@ contains ! Filter logic ! If there are no filters, then we are done. - if (t % n_filters == 0) exit FILTER_LOOP + if (size(t % filters) == 0) exit FILTER_LOOP ! Increment the filter bins, starting with the last filter. If we get a ! NO_BIN_FOUND for the last filter, it means we finished all valid bins ! for that filter, but next-to-last filter might have more than one ! valid bin so we need to increment that one as well, and so on. - do i_filt = t % n_filters, 1, -1 + do i_filt = size(t % filters), 1, -1 call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & matching_bins(i_filt), matching_bins(i_filt), & filter_weights(i_filt)) @@ -2152,11 +2161,12 @@ contains ! If we got all NO_BIN_FOUNDs, then we have finished all valid bins for ! each of the filters. Exit the loop. - if (all(matching_bins(:t % n_filters) == NO_BIN_FOUND)) exit FILTER_LOOP + if (all(matching_bins(:size(t % filters)) == NO_BIN_FOUND)) & + exit FILTER_LOOP ! Reset all the filters with NO_BIN_FOUND. This will set them back to ! their first valid bin. - do i_filt = 1, t % n_filters + do i_filt = 1, size(t % filters) if (matching_bins(i_filt) == NO_BIN_FOUND) then call t % filters(i_filt) % obj % get_next_bin(p, t % estimator, & matching_bins(i_filt), matching_bins(i_filt), & @@ -2280,7 +2290,8 @@ contains matching_bins(i_filter_surf) = OUT_TOP matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt @@ -2293,7 +2304,8 @@ contains matching_bins(i_filter_surf) = IN_TOP matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt @@ -2310,7 +2322,8 @@ contains matching_bins(i_filter_surf) = OUT_FRONT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt @@ -2323,7 +2336,8 @@ contains matching_bins(i_filter_surf) = IN_FRONT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt @@ -2340,7 +2354,8 @@ contains matching_bins(i_filter_surf) = OUT_RIGHT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt @@ -2353,7 +2368,8 @@ contains matching_bins(i_filter_surf) = IN_RIGHT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0 + 1, .true.) - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt @@ -2469,7 +2485,8 @@ contains ! Determine scoring index if (matching_bins(i_filter_surf) > 0) then - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 ! Check for errors if (filter_index <= 0 .or. filter_index > & diff --git a/src/tally_header.F90 b/src/tally_header.F90 index b786d9c298..fe385458b2 100644 --- a/src/tally_header.F90 +++ b/src/tally_header.F90 @@ -32,10 +32,6 @@ module tally_header integer :: type ! volume, surface current integer :: estimator ! collision, track-length real(8) :: volume ! volume of region - - ! Information about what filters should be used - - integer :: n_filters ! Number of filters type(TallyFilterContainer), allocatable :: filters(:) ! The stride attribute is used for determining the index in the results diff --git a/src/tally_initialize.F90 b/src/tally_initialize.F90 index a48faeead1..1ae403bd65 100644 --- a/src/tally_initialize.F90 +++ b/src/tally_initialize.F90 @@ -44,15 +44,15 @@ contains t => tallies(i) ! Allocate stride and matching_bins arrays - allocate(t % stride(t % n_filters)) - max_n_filters = max(max_n_filters, t % n_filters) + allocate(t % stride(size(t % filters))) + max_n_filters = max(max_n_filters, size(t % filters)) ! The filters are traversed in opposite order so that the last filter has ! the shortest stride in memory and the first filter has the largest ! stride n = 1 - STRIDE: do j = t % n_filters, 1, -1 + STRIDE: do j = size(t % filters), 1, -1 t % stride(j) = n n = n * t % filters(j) % obj % n_bins end do STRIDE diff --git a/src/trigger.F90 b/src/trigger.F90 index 9756dd5a7b..2fd0e2a121 100644 --- a/src/trigger.F90 +++ b/src/trigger.F90 @@ -166,7 +166,7 @@ contains else ! Initialize bins, filter level - matching_bins(1:t % n_filters) = 0 + matching_bins(1:size(t % filters)) = 0 FILTER_LOOP: do filter_index = 1, t % total_filter_bins @@ -266,7 +266,7 @@ contains end if end if end do NUCLIDE_LOOP - if (t % n_filters == 0) exit FILTER_LOOP + if (size(t % filters) == 0) exit FILTER_LOOP end do FILTER_LOOP end if end do TRIGGER_LOOP @@ -307,7 +307,7 @@ contains end select ! initialize bins array - matching_bins(1:t % n_filters) = 1 + matching_bins(1:size(t % filters)) = 1 ! determine how many energyin bins there are i_filter_ein = t % find_filter(FILTER_ENERGYIN) @@ -333,7 +333,7 @@ contains mesh_indices_to_bin(m, (/ i-1, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_RIGHT filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -345,7 +345,7 @@ contains matching_bins(i_filter_surf) = OUT_RIGHT filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -360,7 +360,7 @@ contains mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_RIGHT filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -372,7 +372,7 @@ contains matching_bins(i_filter_surf) = OUT_RIGHT filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -387,7 +387,7 @@ contains mesh_indices_to_bin(m, (/ i, j-1, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_FRONT filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -400,7 +400,7 @@ contains matching_bins(i_filter_surf) = OUT_FRONT filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -415,7 +415,7 @@ contains mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_FRONT filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -427,7 +427,7 @@ contains matching_bins(i_filter_surf) = OUT_FRONT filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -442,7 +442,7 @@ contains mesh_indices_to_bin(m, (/ i, j, k-1 /) + 1, .true.) matching_bins(i_filter_surf) = IN_TOP filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -454,7 +454,7 @@ contains matching_bins(i_filter_surf) = OUT_TOP filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -469,7 +469,7 @@ contains mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) matching_bins(i_filter_surf) = IN_TOP filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev @@ -481,7 +481,7 @@ contains matching_bins(i_filter_surf) = OUT_TOP filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) if (trigger % std_dev < std_dev) then trigger % std_dev = std_dev From e9acaba58ce431f249cde83419cc86b721214bd5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 18 Jul 2016 11:00:37 -0500 Subject: [PATCH 169/417] Respond to @smharper comments on #684 --- openmc/data/library.py | 3 ++- src/angle_distribution.F90 | 13 ++++++------ src/endf_header.F90 | 39 +++++++++++++++++----------------- src/energy_distribution.F90 | 3 ++- src/hdf5_interface.F90 | 6 +++--- src/input_xml.F90 | 15 +++++-------- src/nuclide_header.F90 | 5 +++-- src/product_header.F90 | 3 ++- src/reaction_header.F90 | 1 + src/secondary_correlated.F90 | 3 ++- src/secondary_kalbach.F90 | 3 ++- src/secondary_nbody.F90 | 3 ++- src/secondary_uncorrelated.F90 | 5 +++-- 13 files changed, 54 insertions(+), 48 deletions(-) diff --git a/openmc/data/library.py b/openmc/data/library.py index 748a018891..dba5eabc16 100644 --- a/openmc/data/library.py +++ b/openmc/data/library.py @@ -23,7 +23,8 @@ class DataLibrary(object): root = ET.Element('cross_sections') # Determine common directory for library paths - common_dir = os.path.commonpath([lib['path'] for lib in self.libraries]) + common_dir = os.path.dirname(os.path.commonprefix( + [lib['path'] for lib in self.libraries])) if common_dir == '': common_dir = '.' diff --git a/src/angle_distribution.F90 b/src/angle_distribution.F90 index 830ba836ca..a4fea6ff77 100644 --- a/src/angle_distribution.F90 +++ b/src/angle_distribution.F90 @@ -1,8 +1,9 @@ module angle_distribution + use hdf5, only: HID_T, HSIZE_T + use constants, only: ZERO, ONE, HISTOGRAM, LINEAR_LINEAR use distribution_univariate, only: DistributionContainer, Tabular - use hdf5, only: HID_T, HSIZE_T use hdf5_interface, only: read_attribute, get_shape, read_dataset, & open_dataset, close_dataset use random_lcg, only: prn @@ -81,9 +82,9 @@ contains dset_id = open_dataset(group_id, 'energy') call get_shape(dset_id, dims) n_energy = int(dims(1), 4) - allocate(this%energy(n_energy)) - allocate(this%distribution(n_energy)) - call read_dataset(this%energy, dset_id) + allocate(this % energy(n_energy)) + allocate(this % distribution(n_energy)) + call read_dataset(this % energy, dset_id) call close_dataset(dset_id) ! Get outgoing energy distribution data @@ -105,8 +106,8 @@ contains end if ! Create and initialize tabular distribution - allocate(Tabular :: this%distribution(i)%obj) - select type (mudist => this%distribution(i)%obj) + allocate(Tabular :: this % distribution(i) % obj) + select type (mudist => this % distribution(i) % obj) type is (Tabular) mudist % interpolation = interp(i) allocate(mudist % x(n), mudist % p(n), mudist % c(n)) diff --git a/src/endf_header.F90 b/src/endf_header.F90 index 8b6ad63f19..c4b4ef3ad8 100644 --- a/src/endf_header.F90 +++ b/src/endf_header.F90 @@ -1,9 +1,10 @@ module endf_header + use hdf5, only: HID_T, HSIZE_T + use constants, only: ZERO, HISTOGRAM, LINEAR_LINEAR, LINEAR_LOG, & LOG_LINEAR, LOG_LOG use hdf5_interface - use hdf5, only: HID_T, HSIZE_T use search, only: binary_search implicit none @@ -157,25 +158,25 @@ contains ! Determine number of regions nr = nint(xss(idx)) - this%n_regions = nr + this % n_regions = nr ! Read interpolation region data if (nr > 0) then - allocate(this%nbt(nr)) - allocate(this%int(nr)) - this%nbt(:) = nint(xss(idx + 1 : idx + nr)) - this%int(:) = nint(xss(idx + nr + 1 : idx + 2*nr)) + allocate(this % nbt(nr)) + allocate(this % int(nr)) + this % nbt(:) = nint(xss(idx + 1 : idx + nr)) + this % int(:) = nint(xss(idx + nr + 1 : idx + 2*nr)) end if ! Determine number of pairs ne = int(XSS(idx + 2*nr + 1)) - this%n_pairs = ne + this % n_pairs = ne ! Read (x,y) pairs - allocate(this%x(ne)) - 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) + allocate(this % x(ne)) + 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 tabulated1d_from_ace subroutine tabulated1d_from_hdf5(this, dset_id) @@ -185,19 +186,19 @@ contains real(8), allocatable :: xy(:,:) integer(HSIZE_T) :: dims(2) - call read_attribute(this%nbt, dset_id, 'breakpoints') - call read_attribute(this%int, dset_id, 'interpolation') - this%n_regions = size(this%nbt) + call read_attribute(this % nbt, dset_id, 'breakpoints') + call read_attribute(this % int, dset_id, 'interpolation') + this % n_regions = size(this % nbt) call get_shape(dset_id, dims) - this%n_pairs = int(dims(1), 4) - allocate(this%x(this%n_pairs)) - allocate(this%y(this%n_pairs)) + this % n_pairs = int(dims(1), 4) + allocate(this % x(this % n_pairs)) + allocate(this % y(this % n_pairs)) allocate(xy(dims(1), dims(2))) call read_dataset(xy, dset_id) - this%x(:) = xy(:,1) - this%y(:) = xy(:,2) + this % x(:) = xy(:,1) + this % y(:) = xy(:,2) end subroutine tabulated1d_from_hdf5 pure function tabulated1d_evaluate(this, x) result(y) diff --git a/src/energy_distribution.F90 b/src/energy_distribution.F90 index 54ae3f90c9..c45762bb0a 100644 --- a/src/energy_distribution.F90 +++ b/src/energy_distribution.F90 @@ -1,9 +1,10 @@ module energy_distribution + use hdf5 + use constants, only: ZERO, ONE, HALF, TWO, PI, HISTOGRAM, LINEAR_LINEAR use endf_header, only: Tabulated1D use hdf5_interface - use hdf5 use math, only: maxwell_spectrum, watt_spectrum use random_lcg, only: prn use search, only: binary_search diff --git a/src/hdf5_interface.F90 b/src/hdf5_interface.F90 index 0bfe04051f..d745f3201c 100644 --- a/src/hdf5_interface.F90 +++ b/src/hdf5_interface.F90 @@ -10,13 +10,13 @@ module hdf5_interface ! can be combined into one simply accepting an assumed-shape array. !============================================================================== - use error, only: fatal_error - use tally_header, only: TallyResult + use, intrinsic :: ISO_C_BINDING use hdf5 use h5lt - use, intrinsic :: ISO_C_BINDING + use error, only: fatal_error + use tally_header, only: TallyResult #ifdef PHDF5 use message_passing, only: MPI_COMM_WORLD, MPI_INFO_NULL #endif diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 0fc96ef4b1..3c8291e9c8 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1,5 +1,7 @@ module input_xml + use hdf5 + use cmfd_input, only: configure_cmfd use constants use dict_header, only: DictIntInt, ElemKeyValueCI @@ -10,6 +12,7 @@ module input_xml use error, only: fatal_error, warning use geometry_header, only: Cell, Lattice, RectLattice, HexLattice use global + use hdf5_interface use list_header, only: ListChar, ListInt, ListReal use mesh_header, only: RegularMesh use multipole, only: multipole_read @@ -25,9 +28,6 @@ module input_xml use tally_initialize, only: add_tallies use xml_interface - use hdf5 - use hdf5_interface - implicit none save @@ -2087,14 +2087,14 @@ contains call read_materials_xml(libraries, library_dict) ! Read continuous-energy cross sections - if (run_CE) then + if (run_CE .and. run_mode /= MODE_PLOTTING) then call time_read_xs%start() call read_ce_cross_sections(libraries, library_dict) call time_read_xs%stop() end if ! Normalize atom/weight percents - call normalize_ao() + if (run_mode /= MODE_PLOTTING) call normalize_ao() ! Clear dictionary call library_dict % clear() @@ -3295,11 +3295,6 @@ contains ! If a specific nuclide was specified word = to_lower(sarray(j)) -!!$ ! Append default_xs specifier to nuclide if needed -!!$ if ((default_xs /= '') .and. (.not. ends_with(sarray(j), 'c'))) then -!!$ word = trim(word) // "." // trim(default_xs) -!!$ end if - ! Search through nuclides pair_list => nuclide_dict % keys() do while (associated(pair_list)) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index be61ff8b9e..9cff8a5d58 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -2,13 +2,14 @@ module nuclide_header use, intrinsic :: ISO_FORTRAN_ENV + use hdf5, only: HID_T, HSIZE_T, SIZE_T, h5iget_name_f + use h5lt, only: h5ltpath_valid_f + use constants use dict_header, only: DictIntInt use endf, only: reaction_name, is_fission, is_disappearance use endf_header, only: Function1D, Constant1D, Polynomial, Tabulated1D use error, only: fatal_error, warning - use hdf5, only: HID_T, HSIZE_T, SIZE_T, h5iget_name_f - use h5lt, only: h5ltpath_valid_f use hdf5_interface, only: read_attribute, open_group, close_group, & open_dataset, read_dataset, close_dataset, get_shape use list_header, only: ListInt diff --git a/src/product_header.F90 b/src/product_header.F90 index fbe0ee71f0..f20adf0d40 100644 --- a/src/product_header.F90 +++ b/src/product_header.F90 @@ -1,10 +1,11 @@ module product_header + use hdf5, only: HID_T + use angleenergy_header, only: AngleEnergyContainer use constants, only: ZERO, MAX_WORD_LEN, EMISSION_PROMPT, EMISSION_DELAYED, & EMISSION_TOTAL, NEUTRON, PHOTON use endf_header, only: Tabulated1D, Function1D, Constant1D, Polynomial - use hdf5, only: HID_T use hdf5_interface, only: read_attribute, open_group, close_group, & open_dataset, close_dataset, read_dataset use random_lcg, only: prn diff --git a/src/reaction_header.F90 b/src/reaction_header.F90 index 74198dd78b..9829f6e8f6 100644 --- a/src/reaction_header.F90 +++ b/src/reaction_header.F90 @@ -1,6 +1,7 @@ module reaction_header use hdf5, only: HID_T, HSIZE_T + use hdf5_interface, only: read_attribute, open_group, close_group, & open_dataset, read_dataset, close_dataset, get_shape use product_header, only: ReactionProduct diff --git a/src/secondary_correlated.F90 b/src/secondary_correlated.F90 index 0576b28f63..e163fdcc24 100644 --- a/src/secondary_correlated.F90 +++ b/src/secondary_correlated.F90 @@ -1,9 +1,10 @@ module secondary_correlated + use hdf5, only: HID_T, HSIZE_T + use angleenergy_header, only: AngleEnergy use constants, only: ZERO, ONE, HALF, TWO, HISTOGRAM, LINEAR_LINEAR use distribution_univariate, only: DistributionContainer, Tabular - use hdf5, only: HID_T, HSIZE_T use hdf5_interface, only: get_shape, read_attribute, open_dataset, & read_dataset, close_dataset use random_lcg, only: prn diff --git a/src/secondary_kalbach.F90 b/src/secondary_kalbach.F90 index 920d17869c..4b5e690b5d 100644 --- a/src/secondary_kalbach.F90 +++ b/src/secondary_kalbach.F90 @@ -1,8 +1,9 @@ module secondary_kalbach + use hdf5, only: HID_T, HSIZE_T + use angleenergy_header, only: AngleEnergy use constants, only: ZERO, HALF, ONE, TWO, HISTOGRAM, LINEAR_LINEAR - use hdf5, only: HID_T, HSIZE_T use hdf5_interface, only: read_attribute, read_dataset, open_dataset, & close_dataset, get_shape use random_lcg, only: prn diff --git a/src/secondary_nbody.F90 b/src/secondary_nbody.F90 index d45c598793..14ae949a9e 100644 --- a/src/secondary_nbody.F90 +++ b/src/secondary_nbody.F90 @@ -1,8 +1,9 @@ module secondary_nbody + use hdf5, only: HID_T + use angleenergy_header, only: AngleEnergy use constants, only: ONE, TWO, PI - use hdf5, only: HID_T use hdf5_interface, only: read_attribute use math, only: maxwell_spectrum use random_lcg, only: prn diff --git a/src/secondary_uncorrelated.F90 b/src/secondary_uncorrelated.F90 index 3158913cc6..fc215484a9 100644 --- a/src/secondary_uncorrelated.F90 +++ b/src/secondary_uncorrelated.F90 @@ -1,13 +1,14 @@ module secondary_uncorrelated + use h5lt, only: h5ltpath_valid_f + use hdf5, only: HID_T + use angle_distribution, only: AngleDistribution use angleenergy_header, only: AngleEnergy use constants, only: ONE, TWO, MAX_WORD_LEN use energy_distribution, only: EnergyDistribution, LevelInelastic, & ContinuousTabular, MaxwellEnergy, Evaporation, WattEnergy, DiscretePhoton use error, only: warning - use h5lt, only: h5ltpath_valid_f - use hdf5, only: HID_T use hdf5_interface, only: read_attribute, open_group, close_group use random_lcg, only: prn From 202bdfab3df03508864b980c7b9885624354e625 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 18 Jul 2016 17:56:27 -0500 Subject: [PATCH 170/417] Use libver='latest' for opening HDF5 files --- openmc/data/neutron.py | 2 +- openmc/data/thermal.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 463aa26bb0..d9d8222316 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -203,7 +203,7 @@ class IncidentNeutron(object): """ - f = h5py.File(path, mode) + f = h5py.File(path, mode, libver='latest') # Write basic data g = f.create_group(self.name) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 71ef190ab7..8cad814177 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -188,7 +188,7 @@ class ThermalScattering(object): """ - f = h5py.File(path, mode) + f = h5py.File(path, mode, libver='latest') # Write basic data g = f.create_group(self.name) From 65f1c4baaf62971a56d64d4ccf8d145a8819f98b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 19 Jul 2016 08:45:28 -0500 Subject: [PATCH 171/417] When installing OpenMC locally, set PYTHONPATH to avoid error --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 73f0afccc2..dcaf30a1d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -317,6 +317,7 @@ if(PYTHONINTERP_FOUND) --root=debian/openmc --install-layout=deb WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})") else() + install(CODE "set(ENV{PYTHONPATH} \"${CMAKE_INSTALL_PREFIX}/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages\")") install(CODE "execute_process( COMMAND ${PYTHON_EXECUTABLE} setup.py install --prefix=${CMAKE_INSTALL_PREFIX} From 5647db18b60d6d80b685835adc8585785e7e5735 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 19 Jul 2016 12:02:07 -0500 Subject: [PATCH 172/417] Some fixes for JEFF 3.2 data (most notably supporting energy-dependent delayed neutron group probabilities) --- .gitignore | 6 ++++++ openmc/data/correlated.py | 3 +++ openmc/data/kalbach_mann.py | 6 +++++- openmc/data/reaction.py | 30 +++++++++++++++++++++++++++--- 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 9597171308..ca58065a22 100644 --- a/.gitignore +++ b/.gitignore @@ -60,8 +60,14 @@ src/install_manifest.txt # Nuclear data data/nndc +data/nndc_hdf5 data/wmp data/multipole_lib.tar.gz +data/ENDF-B-VII.1-*.tar.gz +data/JEFF32-ACE-*.tar.gz +data/TSLs.tar.gz +data/jeff-3.2 +data/jeff-3.2-hdf5 # Images *.ppm diff --git a/openmc/data/correlated.py b/openmc/data/correlated.py index c93a0d706d..45ad42ced7 100644 --- a/openmc/data/correlated.py +++ b/openmc/data/correlated.py @@ -359,6 +359,9 @@ class CorrelatedAngleEnergy(AngleEnergy): INTERPOLATION_SCHEME[intt], ignore_negative=True) eout_continuous.c = data[2][n_discrete_lines:] + if np.any(data[1][n_discrete_lines:] < 0.0): + warn("Correlated angle-energy distribution has negative " + "probabilities.") # If discrete lines are present, create a mixture distribution if n_discrete_lines > 0: diff --git a/openmc/data/kalbach_mann.py b/openmc/data/kalbach_mann.py index 8799831bf0..5a5dc073cc 100644 --- a/openmc/data/kalbach_mann.py +++ b/openmc/data/kalbach_mann.py @@ -320,8 +320,12 @@ class KalbachMann(AngleEnergy): # Create continuous distribution eout_continuous = Tabular(data[0][n_discrete_lines:], data[1][n_discrete_lines:], - INTERPOLATION_SCHEME[intt]) + INTERPOLATION_SCHEME[intt], + ignore_negative=True) eout_continuous.c = data[2][n_discrete_lines:] + if np.any(data[1][n_discrete_lines:] < 0.0): + warn("Kalbach-Mann energy distribution has negative " + "probabilities.") # If discrete lines are present, create a mixture distribution if n_discrete_lines > 0: diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 195dcc341e..53d399b6ee 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -2,6 +2,7 @@ from __future__ import division, unicode_literals from collections import Iterable from copy import deepcopy from numbers import Real +from warnings import warn import numpy as np from numpy.polynomial import Polynomial @@ -114,8 +115,15 @@ def _get_fission_products(ace): delayed_neutron.yield_.y *= group_probability.y[0] total_group_probability += group_probability.y[0] else: - raise NotImplementedError( - 'Delayed neutron with energy-dependent group probability') + # Get union energy grid and ensure energies are within + # interpolable range of both functions + max_energy = min(yield_delayed.x[-1], group_probability.x[-1]) + energy = np.union1d(yield_delayed.x, group_probability.x) + energy = energy[energy <= max_energy] + + # Calculate group yield + group_yield = yield_delayed(energy) * group_probability(energy) + delayed_neutron.yield_ = Tabulated1D(energy, group_yield) # Advance position nr = int(ace.xss[idx + 1]) @@ -132,7 +140,8 @@ def _get_fission_products(ace): # Renormalize delayed neutron yields to reflect fact that in ACE # file, the sum of the group probabilities is not exactly one for product in products[1:]: - product.yield_.y /= total_group_probability + if total_group_probability > 0.: + product.yield_.y /= total_group_probability return products, derived_products @@ -427,6 +436,13 @@ class Reaction(object): # Read reaction cross section xs = ace.xss[ace.jxs[7] + loc + 1:ace.jxs[7] + loc + 1 + n_energy] + + # Fix negatives -- known issue for Y89 in JEFF 3.2 + if np.any(xs < 0.0): + warn("Negative cross sections found for MT={} in {}. Setting " + "to zero.".format(rx.mt, ace.name)) + xs[xs < 0.0] = 0.0 + rx.xs = Tabulated1D(energy, xs) # ================================================================== @@ -476,7 +492,15 @@ class Reaction(object): mt = 2 rx = cls(mt) + # Get elastic cross section values elastic_xs = ace.xss[ace.jxs[1] + 3*n_grid:ace.jxs[1] + 4*n_grid] + + # Fix negatives -- known issue for Ti46,49,50 in JEFF 3.2 + if np.any(elastic_xs < 0.0): + warn("Negative elastic scattering cross section found for {}. " + "Setting to zero.".format(ace.name)) + elastic_xs[elastic_xs < 0.0] = 0.0 + rx.xs = Tabulated1D(grid, elastic_xs) # No energy distribution for elastic scattering From a53f830e0c5a9f5c18c89b214684816bd5c60cdc Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Tue, 19 Jul 2016 15:58:21 -0500 Subject: [PATCH 173/417] Use filter weights with analog tallies Currently, this doesn't do anything because filter weights are only relevant for tracklength tallies with mesh filters. --- src/tally.F90 | 148 ++++++++++++++++++++++++++------------------------ 1 file changed, 77 insertions(+), 71 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index 361b4a3bf1..45c9e5ea33 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -69,8 +69,10 @@ 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 -! atom_density and flux are not used for analog tallies. +! nuclide. This function is called by all volume tallies. For analog tallies, +! the flux estimate depends on the score type so the flux argument is really +! just used for filter weights. The atom_density argument is not used for +! analog tallies. !=============================================================================== subroutine score_general_ce(p, t, start_index, filter_index, i_nuclide, & @@ -128,7 +130,7 @@ contains else score = p % last_wgt end if - score = score / material_xs % total + score = score / material_xs % total * flux else ! For flux, we need no cross section @@ -144,9 +146,9 @@ contains if (survival_biasing) then ! We need to account for the fact that some weight was already ! absorbed - score = p % last_wgt + p % absorb_wgt + score = p % last_wgt + p % absorb_wgt * flux else - score = p % last_wgt + score = p % last_wgt * flux end if else @@ -181,7 +183,7 @@ contains ! Score the flux weighted inverse velocity with velocity in units of ! cm/s score = score / material_xs % total & - / (sqrt(TWO * E / (MASS_NEUTRON_MEV)) * C_LIGHT * 100.0_8) + / (sqrt(TWO * E / (MASS_NEUTRON_MEV)) * C_LIGHT * 100.0_8) * flux else ! For inverse velocity, we don't need a cross section. The velocity is @@ -197,7 +199,7 @@ contains ! 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 + score = p % last_wgt * flux else ! Note SCORE_SCATTER_N not available for tracklength/collision. @@ -220,7 +222,7 @@ contains ! 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 + score = p % last_wgt * flux case (SCORE_SCATTER_YN) @@ -233,7 +235,7 @@ contains ! 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 + score = p % last_wgt * flux case (SCORE_NU_SCATTER, SCORE_NU_SCATTER_N) @@ -247,7 +249,7 @@ contains (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 + score = p % last_wgt * flux else m = nuclides(p%event_nuclide)%reaction_index% & get_key(p % event_MT) @@ -257,11 +259,11 @@ contains select type (yield => rxn % products(1) % yield) type is (Constant1D) ! Grab the yield from the reaction - score = p % last_wgt * yield % y + score = p % last_wgt * yield % y * flux class default ! the yield was already incorporated in to p % wgt per the ! scattering routine - score = p % wgt + score = p % wgt * flux end select end associate end if @@ -281,7 +283,7 @@ contains (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 + score = p % last_wgt * flux else m = nuclides(p%event_nuclide)%reaction_index% & get_key(p % event_MT) @@ -291,11 +293,11 @@ contains select type (yield => rxn % products(1) % yield) type is (Constant1D) ! Grab the yield from the reaction - score = p % last_wgt * yield % y + score = p % last_wgt * yield % y * flux class default ! the yield was already incorporated in to p % wgt per the ! scattering routine - score = p % wgt + score = p % wgt * flux end select end associate end if @@ -315,7 +317,7 @@ contains (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 + score = p % last_wgt * flux else m = nuclides(p%event_nuclide)%reaction_index% & get_key(p % event_MT) @@ -325,11 +327,11 @@ contains select type (yield => rxn % products(1) % yield) type is (Constant1D) ! Grab the yield from the reaction - score = p % last_wgt * yield % y + score = p % last_wgt * yield % y * flux class default ! the yield was already incorporated in to p % wgt per the ! scattering routine - score = p % wgt + score = p % wgt * flux end select end associate end if @@ -340,13 +342,13 @@ contains 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 + score = p % absorb_wgt * flux 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 + score = p % last_wgt * flux end if else @@ -366,7 +368,7 @@ contains ! fission if (micro_xs(p % event_nuclide) % absorption > ZERO) then score = p % absorb_wgt * micro_xs(p % event_nuclide) % fission & - / micro_xs(p % event_nuclide) % absorption + / micro_xs(p % event_nuclide) % absorption * flux else score = ZERO end if @@ -377,7 +379,7 @@ contains ! particle's weight entering the collision as the estimate for the ! fission reaction rate score = p % last_wgt * micro_xs(p % event_nuclide) % fission & - / micro_xs(p % event_nuclide) % absorption + / micro_xs(p % event_nuclide) % absorption * flux end if else @@ -408,7 +410,7 @@ contains ! nu-fission if (micro_xs(p % event_nuclide) % absorption > ZERO) then score = p % absorb_wgt * micro_xs(p % event_nuclide) % & - nu_fission / micro_xs(p % event_nuclide) % absorption + nu_fission / micro_xs(p % event_nuclide) % absorption * flux else score = ZERO end if @@ -420,7 +422,7 @@ contains ! 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 + score = keff * p % wgt_bank * flux end if else @@ -640,7 +642,7 @@ contains score = p%absorb_wgt * & nuc%reactions(nuc%index_fission(1))%Q_value * & micro_xs(p%event_nuclide)%fission / & - micro_xs(p%event_nuclide)%absorption + micro_xs(p%event_nuclide)%absorption * flux end if end associate else @@ -654,7 +656,7 @@ contains score = p%last_wgt * & nuc%reactions(nuc%index_fission(1))%Q_value * & micro_xs(p%event_nuclide)%fission / & - micro_xs(p%event_nuclide)%absorption + micro_xs(p%event_nuclide)%absorption * flux end if end associate end if @@ -692,7 +694,7 @@ contains if (t % estimator == ESTIMATOR_ANALOG) then ! Check if event MT matches if (p % event_MT /= ELASTIC) cycle SCORE_LOOP - score = p % last_wgt + score = p % last_wgt * flux else if (i_nuclide > 0) then @@ -707,7 +709,7 @@ contains ! Any other score is assumed to be a MT number. Thus, we just need ! to check if it matches the MT number of the event if (p % event_MT /= score_bin) cycle SCORE_LOOP - score = p % last_wgt + score = p % last_wgt * flux else ! Any other cross section has to be calculated on-the-fly. For @@ -863,7 +865,7 @@ contains else score = p % last_wgt end if - score = score / material_xs % total + score = score / material_xs % total * flux else ! For flux, we need no cross section @@ -886,7 +888,7 @@ contains if (i_nuclide > 0) then score = score * atom_density * & nucxs % get_xs('total', p_g, UVW=p_uvw) / & - matxs % get_xs('total', p_g, UVW=p_uvw) + matxs % get_xs('total', p_g, UVW=p_uvw) * flux end if else @@ -912,7 +914,7 @@ contains else score = p % last_wgt end if - score = score * inverse_velocities(p_g) / material_xs % total + score = score * inverse_velocities(p_g) / material_xs % total * flux else ! For inverse velocity, we need no cross section @@ -935,7 +937,7 @@ contains ! 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 + score = p % last_wgt * flux ! Since we transport based on material data, the angle selected ! was not selected from the f(mu) for the nuclide. Therefore @@ -978,7 +980,7 @@ 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 + score = p % wgt * flux ! Since we transport based on material data, the angle selected ! was not selected from the f(mu) for the nuclide. Therefore @@ -1008,13 +1010,13 @@ contains 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 + score = p % absorb_wgt * flux 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 + score = p % last_wgt * flux end if if (i_nuclide > 0) then score = score * atom_density * & @@ -1037,24 +1039,24 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! fission - score = p % absorb_wgt + score = p % absorb_wgt * flux 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 + score = p % last_wgt * flux end if if (i_nuclide > 0) then - score = score * atom_density * & - nucxs % get_xs('fission', p_g, UVW=p_uvw) / & - matxs % get_xs('absorption', p_g, UVW=p_uvw) - else - score = score * & - matxs % get_xs('fission', p_g, UVW=p_uvw) / & - matxs % get_xs('absorption', p_g, UVW=p_uvw) - end if + score = score * atom_density * & + nucxs % get_xs('fission', p_g, UVW=p_uvw) / & + matxs % get_xs('absorption', p_g, UVW=p_uvw) + else + score = score * & + matxs % get_xs('fission', p_g, UVW=p_uvw) / & + matxs % get_xs('absorption', p_g, UVW=p_uvw) + end if else if (i_nuclide > 0) then score = nucxs % get_xs('fission', p_g, UVW=p_uvw) * & @@ -1084,7 +1086,7 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! nu-fission - score = p % absorb_wgt + score = p % absorb_wgt * flux if (i_nuclide > 0) then score = score * atom_density * & nucxs % get_xs('nu_fission', p_g, UVW=p_uvw) / & @@ -1102,7 +1104,7 @@ contains ! 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 + score = keff * p % wgt_bank * flux if (i_nuclide > 0) then score = score * atom_density * & nucxs % get_xs('fission', p_g, UVW=p_uvw) / & @@ -1126,14 +1128,14 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! fission - score = p % absorb_wgt + score = p % absorb_wgt * flux 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 + score = p % last_wgt * flux end if if (i_nuclide > 0) then score = score * atom_density * & @@ -1354,7 +1356,7 @@ contains ! position during the loop integer :: filter_index ! single index for single bin integer :: i_nuclide ! index in nuclides array - real(8) :: filter_weight + real(8) :: filter_weight ! combined weight of all filters type(TallyObject), pointer :: t ! A loop over all tallies is necessary because we need to simultaneously @@ -1378,7 +1380,6 @@ contains ! ======================================================================== ! Loop until we've covered all valid bins on each of the filters. - filter_weight = ONE FILTER_LOOP: do ! Determine scoring index and weight for this filter combination @@ -1427,7 +1428,7 @@ contains ! Determine score for each bin call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & - i_nuclide, ZERO, ZERO) + i_nuclide, ZERO, filter_weight) end do NUCLIDE_LOOP @@ -1489,7 +1490,7 @@ contains ! position during the loop integer :: filter_index ! single index for single bin integer :: i_nuclide ! index in nuclides array - real(8) :: filter_weight + real(8) :: filter_weight ! combined weight of all filters real(8) :: atom_density type(TallyObject), pointer :: t type(Material), pointer :: mat @@ -1519,7 +1520,6 @@ contains ! ======================================================================== ! Loop until we've covered all valid bins on each of the filters. - filter_weight = ONE FILTER_LOOP: do ! Determine scoring index and weight for this filter combination @@ -1549,7 +1549,7 @@ contains ! Determine score for each bin call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & - i_nuclide, atom_density, ZERO) + i_nuclide, atom_density, filter_weight) end do NUCLIDE_LOOP @@ -1617,6 +1617,7 @@ contains 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) :: filter_weight ! combined weight of all filters real(8) :: score ! actual score real(8) :: E_out ! energy of fission bank site @@ -1650,13 +1651,14 @@ contains ! change outgoing energy bin matching_bins(i) = binary_search(filt % bins, n, E_out) - ! determine scoring index + ! determine scoring index and weight for this filter combination i_filter = sum((matching_bins(1:size(t%filters)) - 1) * t % stride) + 1 + filter_weight = product(filter_weights(:size(t % filters))) ! Add score to tally !$omp atomic t % results(i_score, i_filter) % value = & - t % results(i_score, i_filter) % value + score + t % results(i_score, i_filter) % value + score * filter_weight end do end select @@ -1677,6 +1679,7 @@ contains 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) :: filter_weight ! combined weight of all filters real(8) :: score ! actual score integer :: gout ! energy group of fission bank site integer :: gin ! energy group of incident particle @@ -1732,13 +1735,14 @@ contains matching_bins(i) = binary_search(filt % bins, n, E_out) end if - ! determine scoring index + ! determine scoring index and weight for this filter combination i_filter = sum((matching_bins(1:size(t%filters)) - 1) * t % stride) + 1 + filter_weight = product(filter_weights(:size(t % filters))) ! Add score to tally !$omp atomic t % results(i_score, i_filter) % value = & - t % results(i_score, i_filter) % value + score + t % results(i_score, i_filter) % value + score * filter_weight end do ! reset outgoing energy bin and score index @@ -1769,6 +1773,7 @@ contains 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) :: filter_weight ! combined weight of all filters real(8) :: score ! actual score real(8) :: E_out ! energy of fission bank site @@ -1835,14 +1840,15 @@ contains ! if the delayed group filter is not present, add score to tally else - ! determine scoring index + ! determine scoring index and weight for this filter combination i_filter = sum((matching_bins(1:size(t%filters)) - 1) * t % stride)& + 1 + filter_weight = product(filter_weights(:size(t % filters))) ! Add score to tally !$omp atomic t % results(i_score, i_filter) % value = & - t % results(i_score, i_filter) % value + score + t % results(i_score, i_filter) % value + score * filter_weight end if end if end do @@ -1861,24 +1867,26 @@ contains subroutine score_fission_delayed_dg(t, d_bin, score, score_index) type(TallyObject), intent(inout) :: t - integer, intent(in) :: score_index ! index for score - real(8), intent(in) :: score ! actual score integer, intent(in) :: d_bin ! delayed group bin index + real(8), intent(in) :: score ! actual score + integer, intent(in) :: score_index ! index for score integer :: bin_original ! original bin index integer :: filter_index ! index for matching filter bin combination + real(8) :: filter_weight ! combined weight of all filters ! save original delayed group bin bin_original = matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = d_bin - ! Compute the filter index based on the modified matching_bins - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 + ! determine scoring index and weight on the modified matching_bins + filter_index = sum((matching_bins(1:size(t % filters)) - 1) * t % stride) & + + 1 + filter_weight = product(filter_weights(:size(t % filters))) !$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 * filter_weight ! reset original delayed group bin matching_bins(t % find_filter(FILTER_DELAYEDGROUP)) = bin_original @@ -1906,7 +1914,7 @@ contains integer :: i_nuclide ! index in nuclides array (from bins) real(8) :: flux ! tracklength estimate of flux real(8) :: atom_density ! atom density of single nuclide in atom/b-cm - real(8) :: filter_weight + real(8) :: filter_weight ! combined weight of all filters type(TallyObject), pointer :: t type(Material), pointer :: mat @@ -1934,7 +1942,6 @@ contains ! ======================================================================== ! Loop until we've covered all valid bins on each of the filters. - filter_weight = ONE FILTER_LOOP: do ! Determine scoring index and weight for this filter combination @@ -2056,7 +2063,7 @@ contains real(8) :: flux ! collision estimate of flux real(8) :: atom_density ! atom density of single nuclide ! in atom/b-cm - real(8) :: filter_weight + real(8) :: filter_weight ! combined weight of all filters type(TallyObject), pointer :: t type(Material), pointer :: mat @@ -2089,7 +2096,6 @@ contains ! ======================================================================== ! Loop until we've covered all valid bins on each of the filters. - filter_weight = ONE FILTER_LOOP: do ! Determine scoring index and weight for this filter combination From cf59208f349a875102d414357e5f7da4ce49b3e5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 19 Jul 2016 21:41:41 -0500 Subject: [PATCH 174/417] Rename openmc.data.container to openmc.data.function --- openmc/data/__init__.py | 2 +- openmc/data/angle_distribution.py | 2 +- openmc/data/correlated.py | 2 +- openmc/data/energy_distribution.py | 2 +- openmc/data/{container.py => function.py} | 0 openmc/data/kalbach_mann.py | 2 +- openmc/data/neutron.py | 2 +- openmc/data/product.py | 2 +- openmc/data/reaction.py | 2 +- openmc/data/thermal.py | 2 +- 10 files changed, 9 insertions(+), 9 deletions(-) rename openmc/data/{container.py => function.py} (100%) diff --git a/openmc/data/__init__.py b/openmc/data/__init__.py index c6a1baf9df..ae8ea8191f 100644 --- a/openmc/data/__init__.py +++ b/openmc/data/__init__.py @@ -3,7 +3,7 @@ from .neutron import * from .reaction import * from .ace import * from .angle_distribution import * -from .container import * +from .function import * from .energy_distribution import * from .product import * from .angle_energy import * diff --git a/openmc/data/angle_distribution.py b/openmc/data/angle_distribution.py index 709be84962..316559c50d 100644 --- a/openmc/data/angle_distribution.py +++ b/openmc/data/angle_distribution.py @@ -5,7 +5,7 @@ import numpy as np import openmc.checkvalue as cv from openmc.stats import Univariate, Tabular, Uniform -from .container import INTERPOLATION_SCHEME +from .function import INTERPOLATION_SCHEME class AngleDistribution(object): diff --git a/openmc/data/correlated.py b/openmc/data/correlated.py index 45ad42ced7..97a96c17c1 100644 --- a/openmc/data/correlated.py +++ b/openmc/data/correlated.py @@ -6,7 +6,7 @@ import numpy as np import openmc.checkvalue as cv from openmc.stats import Tabular, Univariate, Discrete, Mixture, Uniform -from .container import INTERPOLATION_SCHEME +from .function import INTERPOLATION_SCHEME from .angle_energy import AngleEnergy diff --git a/openmc/data/energy_distribution.py b/openmc/data/energy_distribution.py index a82a6c64a0..677d31af2d 100644 --- a/openmc/data/energy_distribution.py +++ b/openmc/data/energy_distribution.py @@ -5,7 +5,7 @@ from warnings import warn import numpy as np -from openmc.data.container import Tabulated1D, INTERPOLATION_SCHEME +from .function import Tabulated1D, INTERPOLATION_SCHEME from openmc.stats.univariate import Univariate, Tabular, Discrete, Mixture import openmc.checkvalue as cv diff --git a/openmc/data/container.py b/openmc/data/function.py similarity index 100% rename from openmc/data/container.py rename to openmc/data/function.py diff --git a/openmc/data/kalbach_mann.py b/openmc/data/kalbach_mann.py index 5a5dc073cc..5aca17ba9f 100644 --- a/openmc/data/kalbach_mann.py +++ b/openmc/data/kalbach_mann.py @@ -6,7 +6,7 @@ import numpy as np import openmc.checkvalue as cv from openmc.stats import Tabular, Univariate, Discrete, Mixture -from .container import Tabulated1D, INTERPOLATION_SCHEME +from .function import Tabulated1D, INTERPOLATION_SCHEME from .angle_energy import AngleEnergy diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index d9d8222316..94e1b2aad5 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -8,7 +8,7 @@ import h5py from . import atomic_symbol from .ace import Table, get_table -from .container import Tabulated1D +from .function import Tabulated1D from .product import Product from .reaction import Reaction, _get_photon_products from .urr import ProbabilityTables diff --git a/openmc/data/product.py b/openmc/data/product.py index 6a331dc243..dd276daac3 100644 --- a/openmc/data/product.py +++ b/openmc/data/product.py @@ -6,7 +6,7 @@ import numpy as np from numpy.polynomial.polynomial import Polynomial import openmc.checkvalue as cv -from .container import Tabulated1D +from .function import Tabulated1D from .angle_energy import AngleEnergy if sys.version_info[0] >= 3: diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 53d399b6ee..0692982161 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -11,7 +11,7 @@ import openmc.checkvalue as cv from openmc.stats import Uniform from .angle_distribution import AngleDistribution from .angle_energy import AngleEnergy -from .container import Tabulated1D +from .function import Tabulated1D from .data import reaction_name from .product import Product from .uncorrelated import UncorrelatedAngleEnergy diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 8cad814177..158ce39853 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -9,7 +9,7 @@ import h5py import openmc.checkvalue as cv from .ace import Table, get_table from .angle_energy import AngleEnergy -from .container import Tabulated1D +from .function import Tabulated1D from .correlated import CorrelatedAngleEnergy from openmc.stats import Discrete, Tabular From 20a2499587c6f933f5add9811327ae7b88b89627 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 19 Jul 2016 21:49:05 -0500 Subject: [PATCH 175/417] Make module-level variables in openmc.data.data uppercase --- openmc/data/data.py | 20 ++++++++++---------- openmc/data/neutron.py | 4 ++-- openmc/data/reaction.py | 10 +++++----- openmc/element.py | 4 ++-- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/openmc/data/data.py b/openmc/data/data.py index 42c92cff98..52043e3923 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -1,7 +1,7 @@ # Isotopic abundances from M. Berglund and M. E. Wieser, "Isotopic compositions # of the elements 2009 (IUPAC Technical Report)", Pure. Appl. Chem. 83 (2), # pp. 397--410 (2011). -natural_abundance = { +NATURAL_ABUNDANCE = { 'H-1': 0.999885, 'H-2': 0.000115, 'He-3': 1.34e-06, 'He-4': 0.99999866, 'Li-6': 0.0759, 'Li-7': 0.9241, 'Be-9': 1.0, 'B-10': 0.199, 'B-11': 0.801, @@ -100,7 +100,7 @@ natural_abundance = { 'U-234': 5.4e-05, 'U-235': 0.007204, 'U-238': 0.992742 } -atomic_symbol = {1: 'H', 2: 'He', 3: 'Li', 4: 'Be', 5: 'B', 6: 'C', 7: 'N', +ATOMIC_SYMBOL = {1: 'H', 2: 'He', 3: 'Li', 4: 'Be', 5: 'B', 6: 'C', 7: 'N', 8: 'O', 9: 'F', 10: 'Ne', 11: 'Na', 12: 'Mg', 13: 'Al', 14: 'Si', 15: 'P', 16: 'S', 17: 'Cl', 18: 'Ar', 19: 'K', 20: 'Ca', 21: 'Sc', 22: 'Ti', 23: 'V', 24: 'Cr', 25: 'Mn', @@ -120,9 +120,9 @@ atomic_symbol = {1: 'H', 2: 'He', 3: 'Li', 4: 'Be', 5: 'B', 6: 'C', 7: 'N', 103: 'Lr', 104: 'Rf', 105: 'Db', 106: 'Sg', 107: 'Bh', 108: 'Hs', 109: 'Mt', 110: 'Ds', 111: 'Rg', 112: 'Cn', 114: 'Fl', 116: 'Lv'} -atomic_number = {value: key for key, value in atomic_symbol.items()} +ATOMIC_NUMBER = {value: key for key, value in ATOMIC_SYMBOL.items()} -reaction_name = {1: '(n,total)', 2: '(n,elastic)', 4: '(n,level)', 5: '(n,misc)', 11: '(n,2nd)', +REACTION_NAME = {1: '(n,total)', 2: '(n,elastic)', 4: '(n,level)', 5: '(n,misc)', 11: '(n,2nd)', 16: '(n,2n)', 17: '(n,3n)', 18: '(n,fission)', 19: '(n,f)', 20: '(n,nf)', 21: '(n,2nf)', 22: '(n,na)', 23: '(n,n3a)', 24: '(n,2na)', 25: '(n,3na)', 28: '(n,np)', 29: '(n,n2a)', @@ -150,9 +150,9 @@ reaction_name = {1: '(n,total)', 2: '(n,elastic)', 4: '(n,level)', 5: '(n,misc)' 198: '(n,n3p)', 199: '(n,3n2pa)', 200: '(n,5n2p)', 444: '(n,damage)', 649: '(n,pc)', 699: '(n,dc)', 749: '(n,tc)', 799: '(n,3Hec)', 849: '(n,ac)'} -reaction_name.update({i: '(n,n{})'.format(i-50) for i in range(50, 91)}) -reaction_name.update({i: '(n,p{})'.format(i-600) for i in range(600, 649)}) -reaction_name.update({i: '(n,d{})'.format(i-650) for i in range(650, 699)}) -reaction_name.update({i: '(n,t{})'.format(i-700) for i in range(700, 749)}) -reaction_name.update({i: '(n,3He{})'.format(i-750) for i in range(750, 799)}) -reaction_name.update({i: '(n,a{})'.format(i-800) for i in range(800, 849)}) +REACTION_NAME.update({i: '(n,n{})'.format(i-50) for i in range(50, 91)}) +REACTION_NAME.update({i: '(n,p{})'.format(i-600) for i in range(600, 649)}) +REACTION_NAME.update({i: '(n,d{})'.format(i-650) for i in range(650, 699)}) +REACTION_NAME.update({i: '(n,t{})'.format(i-700) for i in range(700, 749)}) +REACTION_NAME.update({i: '(n,3He{})'.format(i-750) for i in range(750, 799)}) +REACTION_NAME.update({i: '(n,a{})'.format(i-800) for i in range(800, 849)}) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 94e1b2aad5..30c1dbb5b1 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -6,7 +6,7 @@ from numbers import Integral, Real import numpy as np import h5py -from . import atomic_symbol +from . import ATOMIC_SYMBOL from .ace import Table, get_table from .function import Tabulated1D from .product import Product @@ -348,7 +348,7 @@ class IncidentNeutron(object): mass_number -= 100 # Determine name for group - element = atomic_symbol[Z] + element = ATOMIC_SYMBOL[Z] if metastable > 0: name = '{}{}_m{}.{}'.format(element, mass_number, metastable, xs) else: diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 0692982161..91d18bdce3 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -12,7 +12,7 @@ from openmc.stats import Uniform from .angle_distribution import AngleDistribution from .angle_energy import AngleEnergy from .function import Tabulated1D -from .data import reaction_name +from .data import REACTION_NAME from .product import Product from .uncorrelated import UncorrelatedAngleEnergy @@ -298,8 +298,8 @@ class Reaction(object): self.derived_products = [] def __repr__(self): - if self.mt in reaction_name: - return "".format(self.mt, reaction_name[self.mt]) + if self.mt in REACTION_NAME: + return "".format(self.mt, REACTION_NAME[self.mt]) else: return "".format(self.mt) @@ -356,8 +356,8 @@ class Reaction(object): """ group.attrs['mt'] = self.mt - if self.mt in reaction_name: - group.attrs['label'] = np.string_(reaction_name[self.mt]) + if self.mt in REACTION_NAME: + group.attrs['label'] = np.string_(REACTION_NAME[self.mt]) else: group.attrs['label'] = np.string_(self.mt) group.attrs['Q_value'] = self.q_value diff --git a/openmc/element.py b/openmc/element.py index c877c27a12..f116c43ebb 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -2,7 +2,7 @@ import sys import openmc from openmc.checkvalue import check_type, check_length -from openmc.data import natural_abundance +from openmc.data import NATURAL_ABUNDANCE if sys.version_info[0] >= 3: basestring = str @@ -123,7 +123,7 @@ class Element(object): """ isotopes = [] - for isotope, abundance in sorted(natural_abundance.items()): + for isotope, abundance in sorted(NATURAL_ABUNDANCE.items()): if isotope.startswith(self.name + '-'): nuc = openmc.Nuclide(isotope, self.xs) isotopes.append((nuc, abundance)) From 976349cb516d0f950e9391bfe0f1039f30bcf9f4 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 19 Jul 2016 22:32:24 -0500 Subject: [PATCH 176/417] Calculate photon production yields properly for MF=13 data --- openmc/data/data.py | 18 ++++++++++++ openmc/data/function.py | 37 +++++++++++++++++++++++- openmc/data/neutron.py | 62 ++++++++++++++++++++++++++++++++++++++--- openmc/data/reaction.py | 39 +++++++++++++++----------- 4 files changed, 134 insertions(+), 22 deletions(-) diff --git a/openmc/data/data.py b/openmc/data/data.py index 52043e3923..5f83d31c0c 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -156,3 +156,21 @@ REACTION_NAME.update({i: '(n,d{})'.format(i-650) for i in range(650, 699)}) REACTION_NAME.update({i: '(n,t{})'.format(i-700) for i in range(700, 749)}) REACTION_NAME.update({i: '(n,3He{})'.format(i-750) for i in range(750, 799)}) REACTION_NAME.update({i: '(n,a{})'.format(i-800) for i in range(800, 849)}) + +SUM_RULES = {1: [2, 3], + 3: [4, 5, 11, 16, 17, 22, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 35, + 36, 37, 41, 42, 44, 45, 152, 153, 154, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 183, 184, 185, + 186, 187, 188, 189, 190, 194, 195, 196, 198, 199, 200], + 4: list(range(50, 92)), + 16: list(range(875, 892)), + 18: [19, 20, 21, 38], + 27: [18, 101], + 101: [102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 113, 114, + 115, 116, 117, 155, 182, 191, 192, 193, 197], + 103: list(range(600, 650)), + 104: list(range(650, 700)), + 105: list(range(700, 750)), + 106: list(range(750, 800)), + 107: list(range(800, 850))} diff --git a/openmc/data/function.py b/openmc/data/function.py index d9902794cf..e2efb4c101 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -1,4 +1,4 @@ -from collections import Iterable +from collections import Iterable, Callable from numbers import Real, Integral import numpy as np @@ -306,3 +306,38 @@ class Tabulated1D(object): y = ace.xss[idx + n_pairs:idx + 2*n_pairs] return Tabulated1D(x, y, breakpoints, interpolation) + + +class Sum(object): + """Sum of multiple functions. + + This class allows you to create a callable object which represents the sum + of other callable objects. This is used for summed reactions whereby the + cross section is defined as the sum of other cross sections. + + Parameters + ---------- + functions : Iterable of Callable + Functions which are to be added together + + Attributes + ---------- + functions : Iterable of Callable + Functions which are to be added together + + """ + + def __init__(self, functions): + self.functions = functions + + def __call__(self, x): + return sum(f(x) for f in self.functions) + + @property + def functions(self): + return self._functions + + @functions.setter + def functions(self, functions): + cv.check_type('functions', functions, Iterable, Callable) + self._functions = functions diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 30c1dbb5b1..c77ea86a1e 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -2,13 +2,14 @@ from __future__ import division, unicode_literals import sys from collections import OrderedDict, Iterable, Mapping from numbers import Integral, Real +from warnings import warn import numpy as np import h5py -from . import ATOMIC_SYMBOL +from .data import ATOMIC_SYMBOL, SUM_RULES from .ace import Table, get_table -from .function import Tabulated1D +from .function import Tabulated1D, Sum from .product import Product from .reaction import Reaction, _get_photon_products from .urr import ProbabilityTables @@ -84,6 +85,17 @@ class IncidentNeutron(object): self.summed_reactions = OrderedDict() self.urr = None + def __contains__(self, mt): + return mt in self.reactions or mt in self.summed_reactions + + def __getitem__(self, mt): + if mt in self.reactions: + return self.reactions[mt] + elif mt in self.summed_reactions: + return self.summed_reactions[mt] + else: + raise KeyError('No reaction with MT={}.'.format(mt)) + def __repr__(self): return "".format(self.name) @@ -190,6 +202,38 @@ class IncidentNeutron(object): (ProbabilityTables, type(None))) self._urr = urr + def get_reaction_components(self, mt): + """Determine what reactions make up summed reaction. + + Parameters + ---------- + mt : int + ENDF MT number of the reaction to find components of. + + Returns + ------- + mts : list of int + ENDF MT numbers of reactions that make up the summed reaction and + have cross sections provided. + + """ + if mt in self.reactions: + return [mt] + elif mt in SUM_RULES: + mts = SUM_RULES[mt] + complete = False + while not complete: + new_mts = [] + complete = True + for i, mt_i in enumerate(mts): + if mt_i in self.reactions: + new_mts.append(mt_i) + elif mt_i in SUM_RULES: + new_mts += SUM_RULES[mt_i] + complete = False + mts = new_mts + return mts + def export_to_hdf5(self, path, mode='a'): """Export table to an HDF5 file. @@ -386,9 +430,19 @@ class IncidentNeutron(object): n_photon_reactions].astype(int) for mt in np.unique(photon_mts // 1000): - if mt not in data.reactions: + if mt not in data: + if mt not in SUM_RULES: + warn('Photon production is present for MT={} but no ' + 'cross section is given.'.format(mt)) + continue + + # Create summed reaction with appropriate cross section rx = Reaction(mt) - rx.products += _get_photon_products(ace, mt) + mts = data.get_reaction_components(mt) + rx.xs = Sum([data.reactions[mt_i].xs for mt_i in mts]) + + # Determine summed cross section + rx.products += _get_photon_products(ace, rx) data.summed_reactions[mt] = rx # Read unresolved resonance probability tables diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 91d18bdce3..8fb79f109d 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -1,5 +1,5 @@ from __future__ import division, unicode_literals -from collections import Iterable +from collections import Iterable, Callable from copy import deepcopy from numbers import Real from warnings import warn @@ -146,15 +146,15 @@ def _get_fission_products(ace): return products, derived_products -def _get_photon_products(ace, mt): +def _get_photon_products(ace, rx): """Generate photon products from an ACE table Parameters ---------- ace : openmc.data.ace.Table ACE table to read from - mt : int - MT number for the desired reaction + rx : openmc.data.Reaction + Reaction that generates photons Returns ------- @@ -176,9 +176,9 @@ def _get_photon_products(ace, mt): # MT=19,20,21,38, we assign the photon product to each of the individual # reactions if neutron_mt == 18: - if mt not in (18, 19, 20, 21, 38): + if rx.mt not in (18, 19, 20, 21, 38): continue - elif neutron_mt != mt: + elif neutron_mt != rx.mt: continue # Create photon product and assign to reactions @@ -205,15 +205,19 @@ def _get_photon_products(ace, mt): # Energy grid index at which data starts threshold_idx = int(ace.xss[idx]) - 1 - - # Get photon production cross section n_energy = int(ace.xss[idx + 1]) - photon._xs = ace.xss[idx + 2:idx + 2 + n_energy] - - # TODO: Determine yield based on ratio of cross sections energy = ace.xss[ace.jxs[1] + threshold_idx: ace.jxs[1] + threshold_idx + n_energy] - photon.yield_ = Tabulated1D(energy, photon._xs) + + # Get photon production cross section + photon_prod_xs = ace.xss[idx + 2:idx + 2 + n_energy] + neutron_xs = rx.xs(energy) + idx = np.where(neutron_xs > 0.) + + # Calculate photon yield + yield_ = np.zeros_like(photon_prod_xs) + yield_[idx] = photon_prod_xs[idx] / neutron_xs[idx] + photon.yield_ = Tabulated1D(energy, yield_) else: raise ValueError("MFTYPE must be 12, 13, 16. Got {0}".format( @@ -277,7 +281,7 @@ class Reaction(object): threshold_idx : int The index on the energy grid corresponding to the threshold of this reaction. - xs : openmc.data.Tabulated1D + xs : callable Microscopic cross section for this reaction as a function of incident energy products : Iterable of openmc.data.Product @@ -340,9 +344,10 @@ class Reaction(object): @xs.setter def xs(self, xs): - cv.check_type('reaction cross section', xs, Tabulated1D) - for y in xs.y: - cv.check_greater_than('reaction cross section', y, 0.0, True) + cv.check_type('reaction cross section', xs, Callable) + if isinstance(xs, Tabulated1D): + for y in xs.y: + cv.check_greater_than('reaction cross section', y, 0.0, True) self._xs = xs def to_hdf5(self, group): @@ -531,6 +536,6 @@ class Reaction(object): # ====================================================================== # PHOTON PRODUCTION - rx.products += _get_photon_products(ace, mt) + rx.products += _get_photon_products(ace, rx) return rx From 3d68c07625e33cd64188df03ee03e9c31b3d4b74 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 20 Jul 2016 21:38:57 -0500 Subject: [PATCH 177/417] Add script to download and setup JEFF 3.2 multi-temp library --- .gitignore | 1 + data/get_jeff_data.py | 200 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 201 insertions(+) create mode 100755 data/get_jeff_data.py diff --git a/.gitignore b/.gitignore index ca58065a22..2ca1c7d145 100644 --- a/.gitignore +++ b/.gitignore @@ -65,6 +65,7 @@ data/wmp data/multipole_lib.tar.gz data/ENDF-B-VII.1-*.tar.gz data/JEFF32-ACE-*.tar.gz +data/JEFF32-ACE-*.zip data/TSLs.tar.gz data/jeff-3.2 data/jeff-3.2-hdf5 diff --git a/data/get_jeff_data.py b/data/get_jeff_data.py new file mode 100755 index 0000000000..59023d9a27 --- /dev/null +++ b/data/get_jeff_data.py @@ -0,0 +1,200 @@ +#!/usr/bin/env python + +from __future__ import print_function +import os +import shutil +import subprocess +import sys +import tarfile +import zipfile +import glob +import hashlib +import argparse + +import openmc.data + +try: + from urllib.request import urlopen +except ImportError: + from urllib2 import urlopen + + +thermal_suffix = {20: '01t', 100: '02t', 293: '03t', 296: '03t', 323: '04t', + 350: '05t', 373: '06t', 400: '07t', 423: '08t', 473: '09t', + 500: '10t', 523: '11t', 573: '12t', 600: '13t', 623: '14t', + 643: '15t', 647: '15t', 700: '16t', 773: '17t', 800: '18t', + 1000: '19t', 1200: '20t', 1600: '21t', 2000: '22t', + 3000: '23t'} + + + +parser = argparse.ArgumentParser() +parser.add_argument('-b', '--batch', action='store_true', + help='supresses standard in') +args = parser.parse_args() + +base_url = 'https://www.oecd-nea.org/dbforms/data/eva/evatapes/jeff_32/Processed/' +files = ['JEFF32-ACE-293K.tar.gz', + 'JEFF32-ACE-400K.tar.gz', + 'JEFF32-ACE-500K.tar.gz', + 'JEFF32-ACE-600K.tar.gz', + 'JEFF32-ACE-700K.tar.gz', + 'JEFF32-ACE-800K.zip', + 'JEFF32-ACE-900K.tar.gz', + 'JEFF32-ACE-1000K.tar.gz', + 'JEFF32-ACE-1200K.tar.gz', + 'JEFF32-ACE-1500K.tar.gz', + 'JEFF32-ACE-1800K.tar.gz', + 'TSLs.tar.gz'] + +block_size = 16384 + +# ============================================================================== +# DOWNLOAD FILES FROM OECD SITE + +files_complete = [] +for f in files: + # Establish connection to URL + url = base_url + f + req = urlopen(url) + + # Get file size from header + if sys.version_info[0] < 3: + file_size = int(req.info().getheaders('Content-Length')[0]) + else: + file_size = req.length + downloaded = 0 + + # Check if file already downloaded + if os.path.exists(f): + if os.path.getsize(f) == file_size: + print('Skipping {}, already downloaded'.format(f)) + files_complete.append(f) + continue + else: + if sys.version_info[0] < 3: + overwrite = raw_input('Overwrite {}? ([y]/n) '.format(f)) + else: + overwrite = input('Overwrite {}? ([y]/n) '.format(f)) + if overwrite.lower().startswith('n'): + continue + + # Copy file to disk + print('Downloading {}... '.format(f), end='') + with open(f, 'wb') as fh: + while True: + chunk = req.read(block_size) + if not chunk: break + fh.write(chunk) + downloaded += len(chunk) + status = '{:10} [{:3.2f}%]'.format(downloaded, downloaded * 100. / file_size) + print(status + chr(8)*len(status), end='') + print('') + files_complete.append(f) + +# ============================================================================== +# EXTRACT FILES FROM TGZ + +for f in files: + if f not in files_complete: + continue + + # Extract files + if f.endswith('.zip'): + with zipfile.ZipFile(f, 'r') as zipf: + print('Extracting {}...'.format(f)) + zipf.extractall('jeff-3.2') + + else: + suffix = 'ACEs_293K' if '293' in f else '' + with tarfile.open(f, 'r') as tgz: + print('Extracting {}...'.format(f)) + tgz.extractall(os.path.join('jeff-3.2', suffix)) + + # Remove thermal scattering tables from 293K data since they are + # redundant + if '293' in f: + for path in glob.glob(os.path.join('jeff-3.2', 'ACEs_293K', '*-293.ACE')): + os.remove(path) + +# ============================================================================== +# FIX ERRORS + +# A few nuclides at 400K has 03c instead of 04c +print('Assigning new cross section identifiers...') +wrong_nuclides = ['Mn55', 'Mo95', 'Nb93', 'Pd105', 'Pu239', 'Pu240', 'U235', + 'U238', 'Y89'] +for nuc in wrong_nuclides: + path = os.path.join('jeff-3.2', 'ACEs_400K', nuc + '.ACE') + print(' Fixing {} (03c --> 04c)...'.format(path)) + if os.path.isfile(path): + text = open(path, 'r').read() + text = text[:7] + '04c' + text[10:] + open(path, 'w').write(text) + +# ============================================================================== +# CHANGE ZAID FOR METASTABLES + +metastables = glob.glob(os.path.join('jeff-3.2', '**', '*M.ACE')) +for path in metastables: + print(' Fixing {} (ensure metastable)...'.format(path)) + text = open(path, 'r').read() + mass_first_digit = int(text[3]) + if mass_first_digit <= 2: + text = text[:3] + str(mass_first_digit + 4) + text[4:] + open(path, 'w').write(text) + +# ============================================================================== +# CHANGE IDENTIFIER FOR S(A,B) TABLES + +thermals = glob.glob(os.path.join('jeff-3.2', 'ANNEX_6_3_STLs', '**', '*.ace')) +for path in thermals: + print(' Fixing {} (unique suffix)...'.format(path)) + basename = os.path.basename(path) + temperature = int(basename.split('-')[1][:-4]) + text = open(path, 'r').read() + text = text[:7] + thermal_suffix[temperature] + text[10:] + open(path, 'w').write(text) + +# ============================================================================== +# CONVERT TO BINARY TO SAVE DISK SPACE + +# get a list of all ACE files +ace_files = (glob.glob(os.path.join('jeff-3.2', '**', '*.ACE')) + + glob.glob(os.path.join('jeff-3.2', 'ANNEX_6_3_STLs', '**', '*.ace'))) + +# Ask user to convert +if not args.batch: + if sys.version_info[0] < 3: + response = raw_input('Convert ACE files to binary? ([y]/n) ') + else: + response = input('Convert ACE files to binary? ([y]/n) ') +else: + response = 'y' + +# Convert files if requested +if not response or response.lower().startswith('y'): + for f in ace_files: + print(' Converting {}...'.format(f)) + openmc.data.ace.ascii_to_binary(f, f) + +# ============================================================================== +# PROMPT USER TO GENERATE HDF5 LIBRARY + +# Ask user to convert +if not args.batch: + if sys.version_info[0] < 3: + response = raw_input('Generate HDF5 library? ([y]/n) ') + else: + response = input('Generate HDF5 library? ([y]/n) ') +else: + response = 'y' + +# Convert files if requested +if not response or response.lower().startswith('y'): + # Ensure 'import openmc.data' works in the openmc-ace-to-xml script + env = os.environ.copy() + env['PYTHONPATH'] = os.path.join(os.getcwd(), os.pardir) + + subprocess.call(['../scripts/openmc-ace-to-hdf5', '-d', 'jeff-3.2-hdf5'] + + sorted(ace_files), env=env) From 5d4bd3079cb6fc6e68599775ff5f39adcb517e06 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 20 Jul 2016 22:20:41 -0500 Subject: [PATCH 178/417] Ensure offset argument in h5tinsert_f is integer(SIZE_T) --- src/hdf5_interface.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hdf5_interface.F90 b/src/hdf5_interface.F90 index 0bfe04051f..44541a50e1 100644 --- a/src/hdf5_interface.F90 +++ b/src/hdf5_interface.F90 @@ -2383,8 +2383,8 @@ contains ! Insert the 'r' and 'i' identifiers call h5tcreate_f(H5T_COMPOUND_F, size_double, dtype_real, hdf5_err) call h5tcreate_f(H5T_COMPOUND_F, size_double, dtype_imag, hdf5_err) - call h5tinsert_f(dtype_real, "r", 0_8, H5T_NATIVE_DOUBLE, hdf5_err) - call h5tinsert_f(dtype_imag, "i", 0_8, H5T_NATIVE_DOUBLE, hdf5_err) + call h5tinsert_f(dtype_real, "r", 0_SIZE_T, H5T_NATIVE_DOUBLE, hdf5_err) + call h5tinsert_f(dtype_imag, "i", 0_SIZE_T, H5T_NATIVE_DOUBLE, hdf5_err) ! Set up collective vs. independent I/O data_xfer_mode = H5FD_MPIO_COLLECTIVE_F From 9b1292fc1523fdc45b075a16c9f9b2d8b453157a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 21 Jul 2016 09:52:47 -0500 Subject: [PATCH 179/417] Remove -flto flag for GCC optimize=on. Apparently causes trouble with gcc 5.4 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dcaf30a1d6..64eee2e9f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,7 +126,7 @@ if(CMAKE_Fortran_COMPILER_ID STREQUAL GNU) list(APPEND ldflags -pg) endif() if(optimize) - list(APPEND f90flags -O3 -flto -fuse-linker-plugin) + list(APPEND f90flags -O3) list(APPEND cflags -O3) endif() if(openmp) From 8952865c099c2d710ede4033aaf174182bd6d2bf Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 22 Jul 2016 15:35:17 -0500 Subject: [PATCH 180/417] Remove n_reaction and n_product attributes in HDF5 data. Add /nuclide/reactions/ group, change reaction group names (reaction_MT). --- docs/source/io_formats/nuclear_data.rst | 9 ++++--- openmc/data/neutron.py | 26 +++++++++---------- openmc/data/reaction.py | 12 +++++---- src/multipole.F90 | 2 +- src/nuclide_header.F90 | 34 ++++++++++++++++++------- src/physics.F90 | 2 +- src/reaction_header.F90 | 22 +++++++++++++--- 7 files changed, 70 insertions(+), 37 deletions(-) diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index e7d4f2d32a..ba6a54eb1e 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -12,15 +12,16 @@ Incident Neutron Data **//** :Attributes: - **Z** (*int*) -- Atomic number - - **A** (*int*) -- Mass number - - **metastable** (*int*) -- Metastable state + - **A** (*int*) -- Mass number. For a natural element, A=0 is given. + - **metastable** (*int*) -- Metastable state (0=ground, 1=first + excited, etc.) - **atomic_weight_ratio** (*double*) -- Mass in units of neutron masses - **temperature** (*double*) -- Temperature in MeV - **n_reaction** (*int*) -- Number of reactions :Datasets: - **energy** (*double[]*) -- Energy points at which cross sections are tabulated -**//reaction_/** +**//reactions/reaction_/** :Attributes: - **mt** (*int*) -- ENDF MT reaction number - **label** (*char[]*) -- Name of the reaction @@ -33,7 +34,7 @@ Incident Neutron Data :Datasets: - **xs** (*double[]*) -- Cross section values tabulated against the nuclide energy grid -**//reaction_/product_/** +**//reactions/reaction_/product_/** Reaction product data is described in :ref:`product`. diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index c77ea86a1e..b6a4f03b5c 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -256,14 +256,14 @@ class IncidentNeutron(object): g.attrs['metastable'] = self.metastable g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio g.attrs['temperature'] = self.temperature - g.attrs['n_reaction'] = len(self.reactions) # Write energy grid g.create_dataset('energy', data=self.energy) # Write reaction data - for i, rx in enumerate(self.reactions.values()): - rx_group = g.create_group('reaction_{}'.format(i)) + rxs_group = g.create_group('reactions') + for rx in self.reactions.values(): + rx_group = rxs_group.create_group('reaction_{:03}'.format(rx.mt)) rx.to_hdf5(rx_group) # Write total nu data if available @@ -315,18 +315,16 @@ class IncidentNeutron(object): data.energy = group['energy'].value # Read reaction data - n_reaction = group.attrs['n_reaction'] + rxs_group = group['reactions'] + for name, obj in sorted(rxs_group.items()): + if name.startswith('reaction_'): + rx = Reaction.from_hdf5(obj, data.energy) + data.reactions[rx.mt] = rx - # Write reaction data - for i in range(n_reaction): - rx_group = group['reaction_{}'.format(i)] - rx = Reaction.from_hdf5(rx_group, data.energy) - data.reactions[rx.mt] = rx - - # Read total nu data if available - if 'total_nu' in rx_group: - tgroup = rx_group['total_nu'] - rx.derived_products = [Product.from_hdf5(tgroup)] + # Read total nu data if available + if rx.mt in (18, 19, 20, 21, 38) and 'total_nu' in group: + tgroup = group['total_nu'] + rx.derived_products.append(Product.from_hdf5(tgroup)) # Read unresolved resonance probability tables if 'urr' in group: diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 8fb79f109d..cadab0bf77 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -368,7 +368,6 @@ class Reaction(object): group.attrs['Q_value'] = self.q_value group.attrs['threshold_idx'] = self.threshold_idx + 1 group.attrs['center_of_mass'] = 1 if self.center_of_mass else 0 - group.attrs['n_product'] = len(self.products) if self.xs is not None: group.create_dataset('xs', data=self.xs.y) for i, p in enumerate(self.products): @@ -403,13 +402,16 @@ class Reaction(object): xs = group['xs'].value rx.xs = Tabulated1D(energy, xs) + # Determine number of products + n_product = 0 + for name in group: + if name.startswith('product_'): + n_product += 1 + # Read reaction products - n_product = group.attrs['n_product'] - products = [] for i in range(n_product): pgroup = group['product_{}'.format(i)] - products.append(Product.from_hdf5(pgroup)) - rx.products = products + rx.products.append(Product.from_hdf5(pgroup)) return rx diff --git a/src/multipole.F90 b/src/multipole.F90 index 3820025369..770121b9d5 100644 --- a/src/multipole.F90 +++ b/src/multipole.F90 @@ -133,7 +133,7 @@ contains accumulated_fission = .true. case default ! Search through all of our secondary reactions - do j = 1, nuc % n_reaction + do j = 1, size(nuc % reactions) if (nuc % reactions(j) % MT == MT(i)) then ! Match found diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 9cff8a5d58..9f55941389 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -1,8 +1,9 @@ module nuclide_header use, intrinsic :: ISO_FORTRAN_ENV + use, intrinsic :: ISO_C_BINDING - use hdf5, only: HID_T, HSIZE_T, SIZE_T, h5iget_name_f + use hdf5 use h5lt, only: h5ltpath_valid_f use constants @@ -82,7 +83,6 @@ module nuclide_header type(MultipoleArray), pointer :: multipole => null() ! Reactions - integer :: n_reaction ! # of reactions type(Reaction), allocatable :: reactions(:) type(DictIntInt) :: reaction_index ! map MT values to index in reactions ! array; used at tally-time @@ -182,15 +182,20 @@ module nuclide_header integer :: i integer :: Z integer :: A - integer :: n_reaction + integer :: storage_type + integer :: max_corder + integer :: n_links integer :: hdf5_err integer(HID_T) :: urr_group, nu_group integer(HID_T) :: energy_dset + integer(HID_T) :: rxs_group integer(HID_T) :: rx_group integer(HID_T) :: total_nu integer(SIZE_T) :: name_len, name_file_len + integer(HSIZE_T) :: j integer(HSIZE_T) :: dims(1) character(MAX_WORD_LEN) :: temp + type(VectorInt) :: MTs logical :: exists ! Get name of nuclide from group @@ -206,8 +211,6 @@ module nuclide_header this % zaid = 1000*Z + A + 400*this % metastable call read_attribute(this % awr, group_id, 'atomic_weight_ratio') call read_attribute(this % kT, group_id, 'temperature') - call read_attribute(n_reaction, group_id, 'n_reaction') - this % n_reaction = n_reaction ! Read energy grid energy_dset = open_dataset(group_id, 'energy') @@ -217,13 +220,26 @@ module nuclide_header call read_dataset(this % energy, energy_dset) call close_dataset(energy_dset) + ! Get MT values based on group names + rxs_group = open_group(group_id, 'reactions') + call h5gget_info_f(rxs_group, storage_type, n_links, max_corder, hdf5_err) + do j = 0, n_links - 1 + call h5lget_name_by_idx_f(rxs_group, ".", H5_INDEX_NAME_F, H5_ITER_INC_F, & + j, temp, hdf5_err, name_len) + if (starts_with(temp, "reaction_")) then + call MTs % push_back(int(str_to_int(temp(10:12)))) + end if + end do + ! Read reactions - allocate(this % reactions(n_reaction)) + allocate(this % reactions(MTs % size())) do i = 1, size(this % reactions) - rx_group = open_group(group_id, 'reaction_' // trim(to_str(i - 1))) + rx_group = open_group(rxs_group, 'reaction_' // trim(& + zero_padded(MTs % data(i), 3))) call this % reactions(i) % from_hdf5(rx_group) call close_group(rx_group) end do + call close_group(rxs_group) ! Read unresolved resonance probability tables if present call h5ltpath_valid_f(group_id, 'urr', .true., exists, hdf5_err) @@ -513,11 +529,11 @@ module nuclide_header 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)) + write(unit_,*) ' # of reactions = ' // trim(to_str(size(this % reactions))) ! Information on each reaction write(unit_,*) ' Reaction Q-value COM IE' - do i = 1, this % n_reaction + do i = 1, size(this % reactions) 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, & diff --git a/src/physics.F90 b/src/physics.F90 index 09a43aa99f..a9f2263955 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -346,7 +346,7 @@ contains i = i + 1 ! Check to make sure inelastic scattering reaction sampled - if (i > nuc % n_reaction) then + if (i > size(nuc % reactions)) then call write_particle_restart(p) call fatal_error("Did not sample any reaction for nuclide " & &// trim(nuc % name)) diff --git a/src/reaction_header.F90 b/src/reaction_header.F90 index 9829f6e8f6..185945563d 100644 --- a/src/reaction_header.F90 +++ b/src/reaction_header.F90 @@ -1,11 +1,12 @@ module reaction_header - use hdf5, only: HID_T, HSIZE_T + use hdf5 + use constants, only: MAX_WORD_LEN use hdf5_interface, only: read_attribute, open_group, close_group, & open_dataset, read_dataset, close_dataset, get_shape use product_header, only: ReactionProduct - use string, only: to_str + use string, only: to_str, starts_with implicit none @@ -34,9 +35,16 @@ contains integer :: i integer :: cm integer :: n_product + integer :: storage_type + integer :: max_corder + integer :: n_links + integer :: hdf5_err integer(HID_T) :: pgroup integer(HID_T) :: xs + integer(SIZE_T) :: name_len integer(HSIZE_T) :: dims(1) + integer(HSIZE_T) :: j + character(MAX_WORD_LEN) :: name call read_attribute(this % Q_value, group_id, 'Q_value') call read_attribute(this % MT, group_id, 'mt') @@ -51,8 +59,16 @@ contains call read_dataset(this % sigma, xs) call close_dataset(xs) + ! Determine number of products + call h5gget_info_f(group_id, storage_type, n_links, max_corder, hdf5_err) + n_product = 0 + do j = 0, n_links - 1 + call h5lget_name_by_idx_f(group_id, ".", H5_INDEX_NAME_F, H5_ITER_INC_F, & + j, name, hdf5_err, name_len) + if (starts_with(name, "product_")) n_product = n_product + 1 + end do + ! Read products - call read_attribute(n_product, group_id, 'n_product') allocate(this % products(n_product)) do i = 1, n_product pgroup = open_group(group_id, 'product_' // trim(to_str(i - 1))) From e2112b86ae1caca7cfddbc5674a6cb595ad7fba2 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Jul 2016 06:33:37 -0500 Subject: [PATCH 181/417] Respond to @smharper comments on #684 --- data/get_jeff_data.py | 35 +- .../pythonapi/examples/mgxs-part-i.ipynb | 95 ++- .../pythonapi/examples/mgxs-part-ii.ipynb | 752 +++++++++--------- .../pythonapi/examples/mgxs-part-iii.ipynb | 214 ++--- .../pythonapi/examples/mgxs-part-iv.ipynb | 110 ++- .../pythonapi/examples/nuclear-data.ipynb | 144 ++-- .../examples/pandas-dataframes.ipynb | 577 +++++++------- .../pythonapi/examples/post-processing.ipynb | 78 +- .../pythonapi/examples/tally-arithmetic.ipynb | 152 ++-- openmc/data/angle_energy.py | 4 +- openmc/data/data.py | 192 ++--- openmc/data/energy_distribution.py | 3 + openmc/data/neutron.py | 2 +- openmc/data/reaction.py | 4 +- openmc/element.py | 4 +- openmc/opencg_compatible.py | 2 +- 16 files changed, 1183 insertions(+), 1185 deletions(-) diff --git a/data/get_jeff_data.py b/data/get_jeff_data.py index 59023d9a27..fa93948504 100755 --- a/data/get_jeff_data.py +++ b/data/get_jeff_data.py @@ -18,6 +18,20 @@ try: except ImportError: from urllib2 import urlopen +if sys.version_info[0] < 3: + askuser = raw_input +else: + askuser = input + + +download_warning = """ +WARNING: This script will download approximately 9 GB of data. Extracting and +processing the data may require as much as 30 GB of additional free disk +space. Note that if you don't need all 11 temperatures, you can modify the +'files' list in the script to download only the data you want. + +Are you sure you want to continue? ([y]/n) +""" thermal_suffix = {20: '01t', 100: '02t', 293: '03t', 296: '03t', 323: '04t', 350: '05t', 373: '06t', 400: '07t', 423: '08t', 473: '09t', @@ -26,13 +40,15 @@ thermal_suffix = {20: '01t', 100: '02t', 293: '03t', 296: '03t', 323: '04t', 1000: '19t', 1200: '20t', 1600: '21t', 2000: '22t', 3000: '23t'} - - parser = argparse.ArgumentParser() parser.add_argument('-b', '--batch', action='store_true', help='supresses standard in') args = parser.parse_args() +response = askuser(download_warning) if not args.batch else 'y' +if response.lower().startswith('n'): + sys.exit() + base_url = 'https://www.oecd-nea.org/dbforms/data/eva/evatapes/jeff_32/Processed/' files = ['JEFF32-ACE-293K.tar.gz', 'JEFF32-ACE-400K.tar.gz', @@ -72,10 +88,7 @@ for f in files: files_complete.append(f) continue else: - if sys.version_info[0] < 3: - overwrite = raw_input('Overwrite {}? ([y]/n) '.format(f)) - else: - overwrite = input('Overwrite {}? ([y]/n) '.format(f)) + overwrite = askuser('Overwrite {}? ([y]/n) '.format(f)) if overwrite.lower().startswith('n'): continue @@ -165,10 +178,7 @@ ace_files = (glob.glob(os.path.join('jeff-3.2', '**', '*.ACE')) + # Ask user to convert if not args.batch: - if sys.version_info[0] < 3: - response = raw_input('Convert ACE files to binary? ([y]/n) ') - else: - response = input('Convert ACE files to binary? ([y]/n) ') + response = askuser('Convert ACE files to binary? ([y]/n) ') else: response = 'y' @@ -183,10 +193,7 @@ if not response or response.lower().startswith('y'): # Ask user to convert if not args.batch: - if sys.version_info[0] < 3: - response = raw_input('Generate HDF5 library? ([y]/n) ') - else: - response = input('Generate HDF5 library? ([y]/n) ') + response = askuser('Generate HDF5 library? ([y]/n) ') else: response = 'y' diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index ea75bec722..b95bea4627 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -165,11 +165,11 @@ "outputs": [], "source": [ "# Instantiate some Nuclides\n", - "h1 = openmc.Nuclide('H-1')\n", - "o16 = openmc.Nuclide('O-16')\n", - "u235 = openmc.Nuclide('U-235')\n", - "u238 = openmc.Nuclide('U-238')\n", - "zr90 = openmc.Nuclide('Zr-90')" + "h1 = openmc.Nuclide('H1')\n", + "o16 = openmc.Nuclide('O16')\n", + "u235 = openmc.Nuclide('U235')\n", + "u238 = openmc.Nuclide('U238')\n", + "zr90 = openmc.Nuclide('Zr90')" ] }, { @@ -419,24 +419,22 @@ "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\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", - ")])" + " \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)])" ] }, "execution_count": 13, @@ -513,26 +511,25 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", - " Date/Time: 2016-05-13 10:19:16\n", - " MPI Processes: 1\n", + " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", + " Date/Time: 2016-07-22 21:03:18\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", " ===========================================================================\n", "\n", " Reading settings XML file...\n", - " Reading cross sections XML file...\n", " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", " Reading materials XML file...\n", + " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", + " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", + " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", + " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for H1.71c\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", - " Loading ACE cross section table: 1001.71c\n", - " Loading ACE cross section table: 8016.71c\n", - " Loading ACE cross section table: 92235.71c\n", - " Loading ACE cross section table: 92238.71c\n", - " Loading ACE cross section table: 40090.71c\n", - " Maximum neutron transport energy: 20.0000 MeV for 1001.71c\n", " Initializing source particles...\n", "\n", " ===========================================================================\n", @@ -600,20 +597,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.2300E-01 seconds\n", - " Reading cross sections = 9.3000E-02 seconds\n", - " Total time in simulation = 1.6549E+01 seconds\n", - " Time in transport only = 1.6535E+01 seconds\n", - " Time in inactive batches = 2.3650E+00 seconds\n", - " Time in active batches = 1.4184E+01 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 3.2300E-01 seconds\n", + " Reading cross sections = 1.6900E-01 seconds\n", + " Total time in simulation = 1.9882E+01 seconds\n", + " Time in transport only = 1.9869E+01 seconds\n", + " Time in inactive batches = 2.6590E+00 seconds\n", + " Time in active batches = 1.7223E+01 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 4.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 = 1.6981E+01 seconds\n", - " Calculation Rate (inactive) = 10570.8 neutrons/second\n", - " Calculation Rate (active) = 7050.20 neutrons/second\n", + " Total time elapsed = 2.0217E+01 seconds\n", + " Calculation Rate (inactive) = 9402.03 neutrons/second\n", + " Calculation Rate (active) = 5806.19 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1167,21 +1164,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index b882e949c5..cb4df0fadf 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -8,9 +8,9 @@ "\n", "* Creation of multi-group cross sections on a **heterogeneous geometry**\n", "* Calculation of cross sections on a **nuclide-by-nuclide basis**\n", - "* The use of **[tally precision triggers](https://mit-crpg.github.io/openmc/usersguide/input.html#trigger-element)** with multi-group cross sections\n", + "* The use of **[tally precision triggers](http://openmc.readthedocs.io/en/latest/usersguide/input.html#trigger-element)** with multi-group cross sections\n", "* Built-in features for **energy condensation** in downstream data processing\n", - "* The use of **[PyNE](http://pyne.io/) to plot** continuous-energy vs. multi-group cross sections\n", + "* The use of the **`openmc.data`** module to plot continuous-energy vs. multi-group cross sections\n", "* **Validation** of multi-group cross sections with **[OpenMOC](https://mit-crpg.github.io/OpenMOC/)**\n", "\n", "**Note:** This Notebook was created using [OpenMOC](https://mit-crpg.github.io/OpenMOC/) to verify the multi-group cross-sections generated by OpenMC. In order to run this Notebook in its entirety, you must have [OpenMOC](https://mit-crpg.github.io/OpenMOC/) installed on your system, along with OpenCG to convert the OpenMC geometries into OpenMOC geometries. In addition, this Notebook illustrates the use of [Pandas](http://pandas.pydata.org/) `DataFrames` to containerize multi-group cross section data." @@ -34,16 +34,12 @@ "name": "stderr", "output_type": "stream", "text": [ - "/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", + "/home/romano/miniconda3/envs/default/lib/python3.5/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: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" + " warnings.warn(_use_error_msg)\n" ] } ], @@ -52,11 +48,12 @@ "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", - "import openmc\n", - "import openmc.mgxs as mgxs\n", "import openmoc\n", "from openmoc.opencg_compatible import get_openmoc_geometry\n", - "import pyne.ace\n", + "\n", + "import openmc\n", + "import openmc.mgxs as mgxs\n", + "import openmc.data\n", "\n", "%matplotlib inline" ] @@ -77,11 +74,11 @@ "outputs": [], "source": [ "# Instantiate some Nuclides\n", - "h1 = openmc.Nuclide('H-1')\n", - "o16 = openmc.Nuclide('O-16')\n", - "u235 = openmc.Nuclide('U-235')\n", - "u238 = openmc.Nuclide('U-238')\n", - "zr90 = openmc.Nuclide('Zr-90')" + "h1 = openmc.Nuclide('H1')\n", + "o16 = openmc.Nuclide('O16')\n", + "u235 = openmc.Nuclide('U235')\n", + "u238 = openmc.Nuclide('U238')\n", + "zr90 = openmc.Nuclide('Zr90')" ] }, { @@ -444,26 +441,25 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", - " Date/Time: 2016-05-13 10:13:48\n", - " MPI Processes: 1\n", + " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", + " Date/Time: 2016-07-22 21:32:41\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", " ===========================================================================\n", "\n", " Reading settings XML file...\n", - " Reading cross sections XML file...\n", " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", " Reading materials XML file...\n", + " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", + " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", + " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235.71c\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", @@ -522,7 +518,7 @@ " 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 10051\n", + " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10054\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", @@ -548,7 +544,7 @@ " 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 10051\n", + " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10054\n", " The estimated number of batches is 74\n", " 74/1 1.22437 1.22487 +/- 0.00188\n", " Triggers satisfied for batch 74\n", @@ -561,20 +557,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7400E-01 seconds\n", - " Reading cross sections = 1.2600E-01 seconds\n", - " Total time in simulation = 2.6256E+02 seconds\n", - " Time in transport only = 2.6250E+02 seconds\n", - " Time in inactive batches = 2.2890E+01 seconds\n", - " Time in active batches = 2.3967E+02 seconds\n", - " Time synchronizing fission bank = 3.4000E-02 seconds\n", - " Sampling source sites = 2.1000E-02 seconds\n", + " Total time for initialization = 4.3000E-01 seconds\n", + " Reading cross sections = 2.6000E-01 seconds\n", + " Total time in simulation = 3.4077E+02 seconds\n", + " Time in transport only = 3.4068E+02 seconds\n", + " Time in inactive batches = 2.3968E+01 seconds\n", + " Time in active batches = 3.1680E+02 seconds\n", + " Time synchronizing fission bank = 3.0000E-02 seconds\n", + " Sampling source sites = 1.7000E-02 seconds\n", " SEND/RECV source sites = 1.3000E-02 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.3000E-02 seconds\n", - " Total time elapsed = 2.6320E+02 seconds\n", - " Calculation Rate (inactive) = 4368.72 neutrons/second\n", - " Calculation Rate (active) = 1668.93 neutrons/second\n", + " Time accumulating tallies = 3.0000E-03 seconds\n", + " Total time for finalization = 1.6000E-02 seconds\n", + " Total time elapsed = 3.4129E+02 seconds\n", + " Calculation Rate (inactive) = 4172.23 neutrons/second\n", + " Calculation Rate (active) = 1262.62 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -685,7 +681,7 @@ "\tReaction Type =\tnu-fission\n", "\tDomain Type =\tcell\n", "\tDomain ID =\t10000\n", - "\tNuclide =\tU-235\n", + "\tNuclide =\tU235\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", @@ -696,7 +692,7 @@ " 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", + "\tNuclide =\tU238\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", @@ -714,7 +710,7 @@ ], "source": [ "nufission = xs_library[fuel_cell.id]['nu-fission']\n", - "nufission.print_xs(xs_type='micro', nuclides=['U-235', 'U-238'])" + "nufission.print_xs(xs_type='micro', nuclides=['U235', 'U238'])" ] }, { @@ -795,7 +791,7 @@ " 10002\n", " 1\n", " 1\n", - " H-1\n", + " H1\n", " 0.234115\n", " 0.003568\n", " \n", @@ -804,7 +800,7 @@ " 10002\n", " 1\n", " 1\n", - " O-16\n", + " O16\n", " 1.563707\n", " 0.005953\n", " \n", @@ -813,7 +809,7 @@ " 10002\n", " 1\n", " 2\n", - " H-1\n", + " H1\n", " 1.594129\n", " 0.002369\n", " \n", @@ -822,7 +818,7 @@ " 10002\n", " 1\n", " 2\n", - " O-16\n", + " O16\n", " 0.285761\n", " 0.001676\n", " \n", @@ -831,7 +827,7 @@ " 10002\n", " 1\n", " 3\n", - " H-1\n", + " H1\n", " 0.011089\n", " 0.000248\n", " \n", @@ -840,7 +836,7 @@ " 10002\n", " 1\n", " 3\n", - " O-16\n", + " O16\n", " 0.000000\n", " 0.000000\n", " \n", @@ -849,7 +845,7 @@ " 10002\n", " 1\n", " 4\n", - " H-1\n", + " H1\n", " 0.000000\n", " 0.000000\n", " \n", @@ -858,7 +854,7 @@ " 10002\n", " 1\n", " 4\n", - " O-16\n", + " O16\n", " 0.000000\n", " 0.000000\n", " \n", @@ -867,7 +863,7 @@ " 10002\n", " 1\n", " 5\n", - " H-1\n", + " H1\n", " 0.000000\n", " 0.000000\n", " \n", @@ -876,7 +872,7 @@ " 10002\n", " 1\n", " 5\n", - " O-16\n", + " O16\n", " 0.000000\n", " 0.000000\n", " \n", @@ -886,16 +882,16 @@ ], "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" + "126 10002 1 1 H1 0.234115 0.003568\n", + "127 10002 1 1 O16 1.563707 0.005953\n", + "124 10002 1 2 H1 1.594129 0.002369\n", + "125 10002 1 2 O16 0.285761 0.001676\n", + "122 10002 1 3 H1 0.011089 0.000248\n", + "123 10002 1 3 O16 0.000000 0.000000\n", + "120 10002 1 4 H1 0.000000 0.000000\n", + "121 10002 1 4 O16 0.000000 0.000000\n", + "118 10002 1 5 H1 0.000000 0.000000\n", + "119 10002 1 5 O16 0.000000 0.000000" ] }, "execution_count": 19, @@ -953,17 +949,17 @@ "\tReaction Type =\ttransport\n", "\tDomain Type =\tcell\n", "\tDomain ID =\t10000\n", - "\tNuclide =\tU-235\n", + "\tNuclide =\tU235\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", + "\tNuclide =\tU238\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", + "\tNuclide =\tO16\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", @@ -1004,7 +1000,7 @@ " 3\n", " 10000\n", " 1\n", - " U-235\n", + " U235\n", " 20.611692\n", " 0.104237\n", " \n", @@ -1012,7 +1008,7 @@ " 4\n", " 10000\n", " 1\n", - " U-238\n", + " U238\n", " 9.585358\n", " 0.013808\n", " \n", @@ -1020,7 +1016,7 @@ " 5\n", " 10000\n", " 1\n", - " O-16\n", + " O16\n", " 3.164190\n", " 0.005049\n", " \n", @@ -1028,7 +1024,7 @@ " 0\n", " 10000\n", " 2\n", - " U-235\n", + " U235\n", " 485.413426\n", " 0.996410\n", " \n", @@ -1036,7 +1032,7 @@ " 1\n", " 10000\n", " 2\n", - " U-238\n", + " U238\n", " 11.190386\n", " 0.028731\n", " \n", @@ -1044,7 +1040,7 @@ " 2\n", " 10000\n", " 2\n", - " O-16\n", + " O16\n", " 3.794859\n", " 0.011139\n", " \n", @@ -1054,12 +1050,12 @@ ], "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" + "3 10000 1 U235 20.611692 0.104237\n", + "4 10000 1 U238 9.585358 0.013808\n", + "5 10000 1 O16 3.164190 0.005049\n", + "0 10000 2 U235 485.413426 0.996410\n", + "1 10000 2 U238 11.190386 0.028731\n", + "2 10000 2 O16 3.794859 0.011139" ] }, "execution_count": 22, @@ -1166,81 +1162,81 @@ "[ 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 3:\tk_eff = 0.658941\tres = 2.793E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.852E-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.569028\tres = 3.164E-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.536034\tres = 3.044E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.536035\tres = 3.044E-02\n", "[ NORMAL ] Iteration 11:\tk_eff = 0.522274\tres = 2.841E-02\n", "[ NORMAL ] Iteration 12:\tk_eff = 0.510609\tres = 2.567E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.501105\tres = 2.234E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", "[ NORMAL ] Iteration 14:\tk_eff = 0.493831\tres = 1.861E-02\n", "[ NORMAL ] Iteration 15:\tk_eff = 0.488780\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.485922\tres = 1.023E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.485209\tres = 5.846E-03\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.485923\tres = 1.023E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485210\tres = 5.846E-03\n", "[ NORMAL ] Iteration 18:\tk_eff = 0.486569\tres = 1.467E-03\n", "[ NORMAL ] Iteration 19:\tk_eff = 0.489903\tres = 2.801E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.495102\tres = 6.853E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495103\tres = 6.852E-03\n", "[ NORMAL ] Iteration 21:\tk_eff = 0.502053\tres = 1.061E-02\n", "[ NORMAL ] Iteration 22:\tk_eff = 0.510627\tres = 1.404E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.520692\tres = 1.708E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.532116\tres = 1.971E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.544763\tres = 2.194E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.558500\tres = 2.377E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.520693\tres = 1.708E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532117\tres = 1.971E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.544764\tres = 2.194E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558501\tres = 2.377E-02\n", "[ NORMAL ] Iteration 27:\tk_eff = 0.573195\tres = 2.522E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.588717\tres = 2.631E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.604945\tres = 2.708E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.588718\tres = 2.631E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.604946\tres = 2.708E-02\n", "[ NORMAL ] Iteration 30:\tk_eff = 0.621759\tres = 2.756E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.639046\tres = 2.779E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656701\tres = 2.780E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639047\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656702\tres = 2.780E-02\n", "[ NORMAL ] Iteration 33:\tk_eff = 0.674624\tres = 2.763E-02\n", "[ NORMAL ] Iteration 34:\tk_eff = 0.692722\tres = 2.729E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.710909\tres = 2.683E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.729109\tres = 2.626E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.710910\tres = 2.683E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729109\tres = 2.625E-02\n", "[ NORMAL ] Iteration 37:\tk_eff = 0.747248\tres = 2.560E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.765262\tres = 2.488E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.783093\tres = 2.411E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.800689\tres = 2.330E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.818004\tres = 2.247E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.765263\tres = 2.488E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783094\tres = 2.411E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.800690\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.818005\tres = 2.247E-02\n", "[ NORMAL ] Iteration 42:\tk_eff = 0.834999\tres = 2.163E-02\n", "[ NORMAL ] Iteration 43:\tk_eff = 0.851638\tres = 2.078E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.867891\tres = 1.993E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883735\tres = 1.909E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.899148\tres = 1.826E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914114\tres = 1.744E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.928621\tres = 1.664E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.867892\tres = 1.993E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883736\tres = 1.909E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.899149\tres = 1.826E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914115\tres = 1.744E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928622\tres = 1.664E-02\n", "[ NORMAL ] Iteration 49:\tk_eff = 0.942659\tres = 1.587E-02\n", "[ NORMAL ] Iteration 50:\tk_eff = 0.956221\tres = 1.512E-02\n", "[ NORMAL ] Iteration 51:\tk_eff = 0.969305\tres = 1.439E-02\n", "[ NORMAL ] Iteration 52:\tk_eff = 0.981909\tres = 1.368E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.994034\tres = 1.300E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.994035\tres = 1.300E-02\n", "[ NORMAL ] Iteration 54:\tk_eff = 1.005685\tres = 1.235E-02\n", "[ NORMAL ] Iteration 55:\tk_eff = 1.016866\tres = 1.172E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.027583\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037845\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.027584\tres = 1.112E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037846\tres = 1.054E-02\n", "[ NORMAL ] Iteration 58:\tk_eff = 1.047661\tres = 9.986E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.057040\tres = 9.458E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.065993\tres = 8.952E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057040\tres = 9.457E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.065994\tres = 8.953E-03\n", "[ NORMAL ] Iteration 61:\tk_eff = 1.074533\tres = 8.470E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.082670\tres = 8.011E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082671\tres = 8.011E-03\n", "[ NORMAL ] Iteration 63:\tk_eff = 1.090418\tres = 7.573E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.097789\tres = 7.156E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.104796\tres = 6.760E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.111452\tres = 6.383E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.097790\tres = 7.156E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104797\tres = 6.760E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.111453\tres = 6.383E-03\n", "[ NORMAL ] Iteration 67:\tk_eff = 1.117770\tres = 6.025E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.123764\tres = 5.685E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.129445\tres = 5.362E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123764\tres = 5.684E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129446\tres = 5.362E-03\n", "[ NORMAL ] Iteration 70:\tk_eff = 1.134828\tres = 5.056E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139924\tres = 4.766E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139924\tres = 4.765E-03\n", "[ NORMAL ] Iteration 72:\tk_eff = 1.144746\tres = 4.491E-03\n", "[ NORMAL ] Iteration 73:\tk_eff = 1.149306\tres = 4.230E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.153617\tres = 3.984E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.157689\tres = 3.750E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153617\tres = 3.983E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.157688\tres = 3.751E-03\n", "[ NORMAL ] Iteration 76:\tk_eff = 1.161534\tres = 3.530E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.165163\tres = 3.321E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165163\tres = 3.322E-03\n", "[ NORMAL ] Iteration 78:\tk_eff = 1.168586\tres = 3.124E-03\n", "[ NORMAL ] Iteration 79:\tk_eff = 1.171813\tres = 2.938E-03\n", "[ NORMAL ] Iteration 80:\tk_eff = 1.174855\tres = 2.762E-03\n", @@ -1248,84 +1244,84 @@ "[ NORMAL ] Iteration 82:\tk_eff = 1.180419\tres = 2.439E-03\n", "[ NORMAL ] Iteration 83:\tk_eff = 1.182960\tres = 2.291E-03\n", "[ NORMAL ] Iteration 84:\tk_eff = 1.185350\tres = 2.152E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.187598\tres = 2.021E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.189712\tres = 1.897E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.191699\tres = 1.780E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.187599\tres = 2.021E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.189713\tres = 1.897E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191700\tres = 1.780E-03\n", "[ NORMAL ] Iteration 88:\tk_eff = 1.193567\tres = 1.670E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.195320\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195321\tres = 1.567E-03\n", "[ NORMAL ] Iteration 90:\tk_eff = 1.196967\tres = 1.469E-03\n", "[ NORMAL ] Iteration 91:\tk_eff = 1.198513\tres = 1.378E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.199964\tres = 1.292E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.199964\tres = 1.291E-03\n", "[ NORMAL ] Iteration 93:\tk_eff = 1.201326\tres = 1.211E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.202602\tres = 1.134E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.203800\tres = 1.063E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.204922\tres = 9.955E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.205974\tres = 9.323E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.206959\tres = 8.730E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.207883\tres = 8.173E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.208747\tres = 7.649E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.209557\tres = 7.159E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.210315\tres = 6.698E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.211024\tres = 6.266E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.211688\tres = 5.861E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.212309\tres = 5.481E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.212890\tres = 5.125E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.213433\tres = 4.791E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.213941\tres = 4.479E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.214416\tres = 4.186E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.214860\tres = 3.912E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.215275\tres = 3.655E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.215662\tres = 3.414E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.216024\tres = 3.189E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.216362\tres = 2.979E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.216678\tres = 2.781E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.216973\tres = 2.597E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.217249\tres = 2.425E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.217506\tres = 2.263E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.217746\tres = 2.112E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.217970\tres = 1.971E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.218179\tres = 1.840E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.218374\tres = 1.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.218556\tres = 1.601E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.218726\tres = 1.494E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.218884\tres = 1.393E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.219032\tres = 1.299E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.219170\tres = 1.212E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.219298\tres = 1.130E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.219418\tres = 1.053E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.219529\tres = 9.821E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.219633\tres = 9.155E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.219730\tres = 8.534E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.219821\tres = 7.954E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.219905\tres = 7.412E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.219984\tres = 6.907E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.220057\tres = 6.436E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.220125\tres = 5.997E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.220188\tres = 5.587E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.220248\tres = 5.205E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.220303\tres = 4.848E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.220354\tres = 4.516E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.220402\tres = 4.206E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.220446\tres = 3.917E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.220488\tres = 3.648E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.220526\tres = 3.397E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.220562\tres = 3.163E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.220596\tres = 2.945E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.220627\tres = 2.742E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.220656\tres = 2.552E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.220683\tres = 2.376E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.220708\tres = 2.212E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.220732\tres = 2.059E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.220753\tres = 1.916E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.220774\tres = 1.783E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.220792\tres = 1.660E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.220810\tres = 1.545E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.220826\tres = 1.437E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.220841\tres = 1.337E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.220856\tres = 1.244E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.220869\tres = 1.158E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.220881\tres = 1.077E-05\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.220892\tres = 1.002E-05\n" + "[ NORMAL ] Iteration 94:\tk_eff = 1.202602\tres = 1.135E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203800\tres = 1.062E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.204922\tres = 9.959E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.205974\tres = 9.321E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.206961\tres = 8.732E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207884\tres = 8.175E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208748\tres = 7.646E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209558\tres = 7.159E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210316\tres = 6.699E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211025\tres = 6.262E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211689\tres = 5.864E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212310\tres = 5.481E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212891\tres = 5.124E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213434\tres = 4.792E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.213942\tres = 4.477E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214416\tres = 4.189E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214861\tres = 3.907E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215275\tres = 3.660E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215663\tres = 3.414E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216025\tres = 3.188E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216363\tres = 2.981E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216679\tres = 2.776E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.216974\tres = 2.599E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217250\tres = 2.427E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217507\tres = 2.263E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217747\tres = 2.115E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.217970\tres = 1.970E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218180\tres = 1.834E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218375\tres = 1.718E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218557\tres = 1.602E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218726\tres = 1.496E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218885\tres = 1.387E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219032\tres = 1.301E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219169\tres = 1.211E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219298\tres = 1.127E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219418\tres = 1.058E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219529\tres = 9.828E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219633\tres = 9.100E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219730\tres = 8.530E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219820\tres = 7.940E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.219904\tres = 7.409E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.219983\tres = 6.876E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220056\tres = 6.455E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220124\tres = 5.969E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220187\tres = 5.603E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220246\tres = 5.166E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220301\tres = 4.829E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220352\tres = 4.510E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220400\tres = 4.199E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220445\tres = 3.939E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220486\tres = 3.630E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220525\tres = 3.362E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220561\tres = 3.181E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220594\tres = 2.977E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220626\tres = 2.745E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220655\tres = 2.569E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220682\tres = 2.376E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220707\tres = 2.201E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220730\tres = 2.071E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220752\tres = 1.925E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220772\tres = 1.793E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220791\tres = 1.669E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220809\tres = 1.554E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220826\tres = 1.457E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220841\tres = 1.372E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220855\tres = 1.249E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220868\tres = 1.138E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220881\tres = 1.104E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220892\tres = 1.028E-05\n" ] } ], @@ -1436,22 +1432,22 @@ "[ 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.518300\tres = 1.244E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.509211\tres = 7.027E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.496489\tres = 1.754E-02\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.496490\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.478834\tres = 6.465E-03\n", "[ NORMAL ] Iteration 9:\tk_eff = 0.479871\tres = 1.960E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.482684\tres = 2.166E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.487084\tres = 5.861E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.482684\tres = 2.165E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.487084\tres = 5.860E-03\n", "[ NORMAL ] Iteration 12:\tk_eff = 0.492900\tres = 9.116E-03\n", "[ NORMAL ] Iteration 13:\tk_eff = 0.499971\tres = 1.194E-02\n", "[ NORMAL ] Iteration 14:\tk_eff = 0.508153\tres = 1.435E-02\n", "[ NORMAL ] Iteration 15:\tk_eff = 0.517312\tres = 1.637E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.527324\tres = 1.802E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.538079\tres = 1.935E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.527325\tres = 1.802E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.538079\tres = 1.936E-02\n", "[ NORMAL ] Iteration 18:\tk_eff = 0.549472\tres = 2.039E-02\n", "[ NORMAL ] Iteration 19:\tk_eff = 0.561410\tres = 2.117E-02\n", "[ NORMAL ] Iteration 20:\tk_eff = 0.573807\tres = 2.173E-02\n", @@ -1471,200 +1467,200 @@ "[ NORMAL ] Iteration 34:\tk_eff = 0.762510\tres = 1.812E-02\n", "[ NORMAL ] Iteration 35:\tk_eff = 0.775514\tres = 1.759E-02\n", "[ NORMAL ] Iteration 36:\tk_eff = 0.788326\tres = 1.705E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800934\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800935\tres = 1.652E-02\n", "[ NORMAL ] Iteration 38:\tk_eff = 0.813328\tres = 1.599E-02\n", "[ NORMAL ] Iteration 39:\tk_eff = 0.825497\tres = 1.547E-02\n", "[ NORMAL ] Iteration 40:\tk_eff = 0.837433\tres = 1.496E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.849131\tres = 1.446E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.860584\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871789\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.849130\tres = 1.446E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.860583\tres = 1.397E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871788\tres = 1.349E-02\n", "[ NORMAL ] Iteration 44:\tk_eff = 0.882742\tres = 1.302E-02\n", "[ NORMAL ] Iteration 45:\tk_eff = 0.893442\tres = 1.256E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.903888\tres = 1.212E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914078\tres = 1.169E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.924013\tres = 1.127E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.933694\tres = 1.087E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.903887\tres = 1.212E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914077\tres = 1.169E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.924012\tres = 1.127E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.933693\tres = 1.087E-02\n", "[ NORMAL ] Iteration 50:\tk_eff = 0.943122\tres = 1.048E-02\n", "[ NORMAL ] Iteration 51:\tk_eff = 0.952299\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.961228\tres = 9.731E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969911\tres = 9.376E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961228\tres = 9.730E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969911\tres = 9.377E-03\n", "[ NORMAL ] Iteration 54:\tk_eff = 0.978351\tres = 9.033E-03\n", "[ NORMAL ] Iteration 55:\tk_eff = 0.986552\tres = 8.702E-03\n", "[ NORMAL ] Iteration 56:\tk_eff = 0.994517\tres = 8.382E-03\n", "[ NORMAL ] Iteration 57:\tk_eff = 1.002250\tres = 8.074E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.009756\tres = 7.776E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.009755\tres = 7.776E-03\n", "[ NORMAL ] Iteration 59:\tk_eff = 1.017037\tres = 7.488E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.024100\tres = 7.211E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.030948\tres = 6.944E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.037585\tres = 6.687E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.044017\tres = 6.438E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.050248\tres = 6.199E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.056282\tres = 5.968E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.024099\tres = 7.211E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.030947\tres = 6.944E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.037584\tres = 6.687E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.044016\tres = 6.438E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.050247\tres = 6.199E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056282\tres = 5.969E-03\n", "[ NORMAL ] Iteration 66:\tk_eff = 1.062125\tres = 5.746E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.067782\tres = 5.532E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.073256\tres = 5.325E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.078553\tres = 5.127E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.083677\tres = 4.935E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.088633\tres = 4.751E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067781\tres = 5.531E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.073255\tres = 5.326E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078552\tres = 5.126E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083676\tres = 4.936E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.088632\tres = 4.751E-03\n", "[ NORMAL ] Iteration 72:\tk_eff = 1.093425\tres = 4.573E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.098059\tres = 4.402E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.102538\tres = 4.238E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106867\tres = 4.079E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.111050\tres = 3.926E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.115091\tres = 3.779E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.118996\tres = 3.638E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.122767\tres = 3.501E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.098058\tres = 4.403E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.102537\tres = 4.237E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106866\tres = 4.079E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.111049\tres = 3.926E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.115090\tres = 3.779E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.118995\tres = 3.638E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.122766\tres = 3.501E-03\n", "[ NORMAL ] Iteration 80:\tk_eff = 1.126408\tres = 3.370E-03\n", "[ NORMAL ] Iteration 81:\tk_eff = 1.129925\tres = 3.244E-03\n", "[ NORMAL ] Iteration 82:\tk_eff = 1.133320\tres = 3.122E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.136598\tres = 3.005E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.139762\tres = 2.892E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142815\tres = 2.784E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.145762\tres = 2.679E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.148605\tres = 2.578E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.136597\tres = 3.005E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.139761\tres = 2.892E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142815\tres = 2.783E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.145761\tres = 2.679E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148605\tres = 2.579E-03\n", "[ NORMAL ] Iteration 88:\tk_eff = 1.151348\tres = 2.482E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.153995\tres = 2.388E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.156548\tres = 2.299E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.159010\tres = 2.212E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.153994\tres = 2.388E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156547\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.159009\tres = 2.212E-03\n", "[ NORMAL ] Iteration 92:\tk_eff = 1.161384\tres = 2.129E-03\n", "[ NORMAL ] Iteration 93:\tk_eff = 1.163674\tres = 2.049E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165883\tres = 1.972E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165882\tres = 1.972E-03\n", "[ NORMAL ] Iteration 95:\tk_eff = 1.168012\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.170064\tres = 1.826E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.170064\tres = 1.827E-03\n", "[ NORMAL ] Iteration 97:\tk_eff = 1.172043\tres = 1.757E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173951\tres = 1.691E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173951\tres = 1.692E-03\n", "[ NORMAL ] Iteration 99:\tk_eff = 1.175790\tres = 1.628E-03\n", "[ NORMAL ] Iteration 100:\tk_eff = 1.177562\tres = 1.566E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.179270\tres = 1.507E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179269\tres = 1.507E-03\n", "[ NORMAL ] Iteration 102:\tk_eff = 1.180916\tres = 1.450E-03\n", "[ NORMAL ] Iteration 103:\tk_eff = 1.182502\tres = 1.396E-03\n", "[ NORMAL ] Iteration 104:\tk_eff = 1.184030\tres = 1.343E-03\n", "[ NORMAL ] Iteration 105:\tk_eff = 1.185503\tres = 1.292E-03\n", "[ NORMAL ] Iteration 106:\tk_eff = 1.186922\tres = 1.244E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.188289\tres = 1.197E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.189605\tres = 1.152E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.188288\tres = 1.197E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.189606\tres = 1.151E-03\n", "[ NORMAL ] Iteration 109:\tk_eff = 1.190874\tres = 1.108E-03\n", "[ NORMAL ] Iteration 110:\tk_eff = 1.192096\tres = 1.066E-03\n", "[ NORMAL ] Iteration 111:\tk_eff = 1.193273\tres = 1.026E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.194407\tres = 9.873E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.195498\tres = 9.500E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.196550\tres = 9.141E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.197563\tres = 8.796E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.198538\tres = 8.464E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.199477\tres = 8.144E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.200381\tres = 7.836E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.201252\tres = 7.539E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.202091\tres = 7.254E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202898\tres = 6.980E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.203675\tres = 6.715E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.204423\tres = 6.461E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194407\tres = 9.870E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195499\tres = 9.504E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196550\tres = 9.140E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197563\tres = 8.792E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198538\tres = 8.468E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199477\tres = 8.140E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200382\tres = 7.837E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201253\tres = 7.539E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202091\tres = 7.257E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202898\tres = 6.979E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203676\tres = 6.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204424\tres = 6.465E-04\n", "[ NORMAL ] Iteration 124:\tk_eff = 1.205144\tres = 6.217E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205837\tres = 5.981E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.206505\tres = 5.755E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.207148\tres = 5.537E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.207766\tres = 5.327E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.208362\tres = 5.125E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208935\tres = 4.931E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205838\tres = 5.979E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206505\tres = 5.760E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207148\tres = 5.532E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207767\tres = 5.325E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208363\tres = 5.125E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208936\tres = 4.935E-04\n", "[ NORMAL ] Iteration 131:\tk_eff = 1.209487\tres = 4.744E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.210018\tres = 4.564E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.210529\tres = 4.391E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.211021\tres = 4.225E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.211495\tres = 4.064E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211950\tres = 3.910E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.212389\tres = 3.762E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212811\tres = 3.619E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.213217\tres = 3.482E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.213608\tres = 3.349E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.213984\tres = 3.222E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.214346\tres = 3.100E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.214695\tres = 2.982E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.215030\tres = 2.869E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.215353\tres = 2.760E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.215663\tres = 2.655E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215962\tres = 2.554E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.216249\tres = 2.457E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.216526\tres = 2.364E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216792\tres = 2.274E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.217048\tres = 2.187E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.217294\tres = 2.104E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.210018\tres = 4.559E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210529\tres = 4.392E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.211021\tres = 4.223E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211495\tres = 4.060E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211951\tres = 3.914E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212390\tres = 3.763E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212812\tres = 3.623E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213217\tres = 3.480E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213608\tres = 3.344E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.213984\tres = 3.223E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214347\tres = 3.097E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214695\tres = 2.985E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.215031\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215352\tres = 2.763E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215663\tres = 2.648E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215962\tres = 2.552E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216249\tres = 2.460E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216526\tres = 2.362E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216792\tres = 2.279E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.217048\tres = 2.188E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217294\tres = 2.100E-04\n", "[ NORMAL ] Iteration 153:\tk_eff = 1.217531\tres = 2.024E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.217759\tres = 1.947E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.217979\tres = 1.873E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.218190\tres = 1.802E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217759\tres = 1.948E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.217978\tres = 1.872E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218189\tres = 1.799E-04\n", "[ NORMAL ] Iteration 157:\tk_eff = 1.218393\tres = 1.733E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.218588\tres = 1.667E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.218776\tres = 1.604E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218957\tres = 1.543E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219131\tres = 1.484E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.219298\tres = 1.427E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.219459\tres = 1.373E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218588\tres = 1.668E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218776\tres = 1.600E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218957\tres = 1.544E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219131\tres = 1.485E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219298\tres = 1.428E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219459\tres = 1.374E-04\n", "[ NORMAL ] Iteration 164:\tk_eff = 1.219614\tres = 1.321E-04\n", "[ NORMAL ] Iteration 165:\tk_eff = 1.219763\tres = 1.270E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219907\tres = 1.222E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.220045\tres = 1.176E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.220177\tres = 1.131E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.220305\tres = 1.088E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.220428\tres = 1.046E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.220546\tres = 1.006E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.220660\tres = 9.680E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.220769\tres = 9.311E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220874\tres = 8.956E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.220975\tres = 8.614E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.221073\tres = 8.286E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.221166\tres = 7.970E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.221256\tres = 7.666E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.221343\tres = 7.373E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.221426\tres = 7.092E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.221506\tres = 6.822E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.221583\tres = 6.562E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.221658\tres = 6.311E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.221729\tres = 6.070E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221797\tres = 5.839E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221863\tres = 5.616E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221927\tres = 5.402E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.221988\tres = 5.196E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.222047\tres = 4.997E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.222103\tres = 4.807E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.222158\tres = 4.623E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.222210\tres = 4.447E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.222260\tres = 4.277E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.222308\tres = 4.114E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.222355\tres = 3.957E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.222400\tres = 3.805E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.222443\tres = 3.660E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.222484\tres = 3.520E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.222524\tres = 3.386E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.222562\tres = 3.257E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.222599\tres = 3.132E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.222635\tres = 3.013E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.222669\tres = 2.898E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.222701\tres = 2.787E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.222733\tres = 2.680E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.222763\tres = 2.578E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222792\tres = 2.480E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222820\tres = 2.385E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222847\tres = 2.294E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222873\tres = 2.206E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222898\tres = 2.122E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222922\tres = 2.041E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222945\tres = 1.963E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222968\tres = 1.888E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.222989\tres = 1.816E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.223009\tres = 1.746E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.223029\tres = 1.680E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.223048\tres = 1.615E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.223067\tres = 1.554E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.223084\tres = 1.494E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.223101\tres = 1.437E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.223117\tres = 1.382E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.223133\tres = 1.329E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.223148\tres = 1.279E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.223162\tres = 1.230E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.223176\tres = 1.183E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.223190\tres = 1.137E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.223203\tres = 1.094E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.223215\tres = 1.052E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.223227\tres = 1.012E-05\n" + "[ NORMAL ] Iteration 166:\tk_eff = 1.219906\tres = 1.221E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.220044\tres = 1.175E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220177\tres = 1.130E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220304\tres = 1.084E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220427\tres = 1.045E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220545\tres = 1.007E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220659\tres = 9.678E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220768\tres = 9.304E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220874\tres = 8.984E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.220975\tres = 8.640E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.221073\tres = 8.326E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221166\tres = 7.985E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221256\tres = 7.662E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221343\tres = 7.371E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221426\tres = 7.091E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221506\tres = 6.827E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221583\tres = 6.560E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221657\tres = 6.320E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221729\tres = 6.067E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221797\tres = 5.829E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221863\tres = 5.641E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221927\tres = 5.382E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.221987\tres = 5.196E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.222046\tres = 4.968E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222102\tres = 4.810E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222157\tres = 4.617E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222209\tres = 4.456E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222260\tres = 4.287E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222308\tres = 4.122E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222355\tres = 3.971E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222399\tres = 3.805E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222442\tres = 3.657E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222484\tres = 3.521E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222523\tres = 3.381E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222561\tres = 3.262E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222598\tres = 3.107E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222634\tres = 2.985E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222668\tres = 2.902E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222700\tres = 2.804E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222732\tres = 2.639E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222762\tres = 2.577E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222792\tres = 2.487E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222820\tres = 2.400E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222847\tres = 2.291E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222872\tres = 2.200E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222897\tres = 2.121E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222921\tres = 2.040E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222944\tres = 1.964E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222967\tres = 1.882E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.222988\tres = 1.821E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.223009\tres = 1.763E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.223029\tres = 1.690E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.223048\tres = 1.630E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.223067\tres = 1.572E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223084\tres = 1.507E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223101\tres = 1.427E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223117\tres = 1.394E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223133\tres = 1.330E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223148\tres = 1.298E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223163\tres = 1.241E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223177\tres = 1.167E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223190\tres = 1.151E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223203\tres = 1.073E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223215\tres = 1.050E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223227\tres = 1.000E-05\n" ] } ], @@ -1732,7 +1728,7 @@ "source": [ "It is often insightful to generate visual depictions of multi-group cross sections. There are many different types of plots which may be useful for multi-group cross section visualization, only a few of which will be shown here for enrichment and inspiration.\n", "\n", - "One particularly useful visualization is a comparison of the continuous-energy and multi-group cross sections for a particular nuclide and reaction type. We illustrate one option for generating such plots with the use of the open source [PyNE](http://pyne.io/) library to parse continuous-energy cross sections from the cross section data library provided with OpenMC. First, we instantiate a `pyne.ace.Library` object for U-235 as follows." + "One particularly useful visualization is a comparison of the continuous-energy and multi-group cross sections for a particular nuclide and reaction type. We illustrate one option for generating such plots with the use of the `openmc.data` module to parse continuous-energy cross sections from an openly available ACE cross section library distributed by NNDC. First, we instantiate a `openmc.data.IncidentNeutron` object for U-235 as follows." ] }, { @@ -1743,15 +1739,11 @@ }, "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", - "pyne_lib.read('92235.71c')\n", - "\n", - "# Extract the U-235 data from the library\n", - "u235 = pyne_lib.tables['92235.71c']\n", + "# Parse ACE data into memory\n", + "u235 = openmc.data.IncidentNeutron.from_ace('../../../../data/nndc/293.6K/U_235_293.6K.ace')\n", "\n", "# Extract the continuous-energy U-235 fission cross section data\n", - "fission = u235.reactions[18]" + "fission = u235[18]" ] }, { @@ -1780,9 +1772,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\nRK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1791,16 +1783,16 @@ ], "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", + "plt.loglog(fission.xs.x, fission.xs.y, color='b', linewidth=1)\n", "\n", "# Extract energy group bounds and MGXS values to plot\n", "nufission = xs_library[fuel_cell.id]['fission']\n", "energy_groups = nufission.energy_groups\n", "x = energy_groups.group_edges\n", - "y = nufission.get_xs(nuclides=['U-235'], order_groups='decreasing', xs_type='micro')\n", + "y = nufission.get_xs(nuclides=['U235'], order_groups='decreasing', xs_type='micro')\n", "\n", "# Fix low energy bound to the value defined by the ACE library\n", - "x[0] = u235.energy[0]\n", + "x[0] = fission.xs.x[0]\n", "\n", "# Extend the mgxs values array for matplotlib's step plot\n", "y = np.insert(y, 0, y[0])\n", @@ -1835,8 +1827,8 @@ "df = nuscatter.get_pandas_dataframe(xs_type='micro')\n", "\n", "# Slice DataFrame in two for each nuclide's mean values\n", - "h1 = df[df['nuclide'] == 'H-1']['mean']\n", - "o16 = df[df['nuclide'] == 'O-16']['mean']\n", + "h1 = df[df['nuclide'] == 'H1']['mean']\n", + "o16 = df[df['nuclide'] == 'O16']['mean']\n", "\n", "# Cast DataFrames as NumPy arrays\n", "h1 = h1.as_matrix()\n", @@ -1863,9 +1855,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\nfn35+EIOpHUAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1905,21 +1897,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 5f0acde3f1..789366d3aa 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", + "/home/romano/miniconda3/envs/default/lib/python3.5/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", @@ -75,12 +75,12 @@ "outputs": [], "source": [ "# Instantiate some Nuclides\n", - "h1 = openmc.Nuclide('H-1')\n", - "b10 = openmc.Nuclide('B-10')\n", - "o16 = openmc.Nuclide('O-16')\n", - "u235 = openmc.Nuclide('U-235')\n", - "u238 = openmc.Nuclide('U-238')\n", - "zr90 = openmc.Nuclide('Zr-90')" + "h1 = openmc.Nuclide('H1')\n", + "b10 = openmc.Nuclide('B10')\n", + "o16 = openmc.Nuclide('O16')\n", + "u235 = openmc.Nuclide('U235')\n", + "u238 = openmc.Nuclide('U238')\n", + "zr90 = openmc.Nuclide('Zr90')" ] }, { @@ -458,7 +458,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AFDhAdBviGIzgAAAWFSURBVGje7Zs7cttADIZ9CSvX\ncrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbjpPlGESISC4A/gd27e8H5\n83CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9w2fESuEoAR/uVuMolX03\n9oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoPj/DPNX4Tsd+EODr8FvsV\ndf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUCbESL61drBPtdI8SrFMWr\nELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4OixNCgcQpJ3BxU/Ln91elKo\nM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQv/sQh9gV7zZ/0dNj5HQa\nC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6gKxNU9a8zK+WLbi/Wwpdi\nhbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G6H1D4SR/iPy1Roj9JsQ5\ne18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6a7D6y9ZvwEKjrtQxPtv6\nfXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+kxsZgpT91+snoX1l49KK3\niUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSfcsjZ56f60kz+XmVPXv+R\nuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePnTWpsf/SvqV9O6dLYYClL\nEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG/xYoZZx+8fr3MxAtsf7t\nUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6AKIVrlML2/cXjgPFjlJqI\nRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7W4n1b3T/W+L+t9H9T/Sv\nVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1PN+122KkLcNLKi/WTF01z\n/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfDl6ZglNDa+cEBhwYDvkoN\nP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87qXzr+b1j/Xlp/nP6dn98M\ncdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xslegL9a4c2KRr9W4rp/GYq\numiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXWf+7zh/v8+2b9e/Hzn6s/\nuPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv3P4fs//I7X9y+6/fqH+v\n6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9fy8kb/6fO39y23P3n3S8\n/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/Sjw/Ltr/yt1/+337f6/b\nf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5f8Q9/8Q9f8U+/5U7f3Lb\nc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTYtMDUtMTRUMTI6Mjk6MDYtMDQ6MDAGVIh3AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA1LTE0\nVDEyOjI5OjA2LTA0OjAwdwkwywAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AHFxUqIOuWj28AAAWFSURBVGje7Zs7cttADIZ9CSvX\ncrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbjpPlGESISC4A/gd27e8H5\n83CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9w2fESuEoAR/uVuMolX03\n9oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoPj/DPNX4Tsd+EODr8FvsV\ndf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUCbESL61drBPtdI8SrFMWr\nELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4OixNCgcQpJ3BxU/Ln91elKo\nM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQv/sQh9gV7zZ/0dNj5HQa\nC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6gKxNU9a8zK+WLbi/Wwpdi\nhbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G6H1D4SR/iPy1Roj9JsQ5\ne18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6a7D6y9ZvwEKjrtQxPtv6\nfXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+kxsZgpT91+snoX1l49KK3\niUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSfcsjZ56f60kz+XmVPXv+R\nuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePnTWpsf/SvqV9O6dLYYClL\nEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG/xYoZZx+8fr3MxAtsf7t\nUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6AKIVrlML2/cXjgPFjlJqI\nRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7W4n1b3T/W+L+t9H9T/Sv\nVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1PN+122KkLcNLKi/WTF01z\n/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfDl6ZglNDa+cEBhwYDvkoN\nP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87qXzr+b1j/Xlp/nP6dn98M\ncdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xslegL9a4c2KRr9W4rp/GYq\numiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXWf+7zh/v8+2b9e/Hzn6s/\nuPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv3P4fs//I7X9y+6/fqH+v\n6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9fy8kb/6fO39y23P3n3S8\n/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/Sjw/Ltr/yt1/+337f6/b\nf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5f8Q9/8Q9f8U+/5U7f3Lb\nc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTYtMDctMjNUMTY6NDI6MzItMDU6MDDOEzLAAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA3LTIz\nVDE2OjQyOjMyLTA1OjAwv06KfAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -725,27 +725,26 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 47ef320ad517612376e181ec6a6bc42ca0db98ce\n", - " Date/Time: 2016-05-14 12:29:07\n", - " MPI Processes: 1\n", + " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", + " Date/Time: 2016-07-23 16:42:32\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", " ===========================================================================\n", "\n", " Reading settings XML file...\n", - " Reading cross sections XML file...\n", " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", " Reading materials XML file...\n", + " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", + " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", + " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", + " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235.71c\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: 5010.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", @@ -813,20 +812,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7700E-01 seconds\n", - " Reading cross sections = 1.3400E-01 seconds\n", - " Total time in simulation = 8.0461E+01 seconds\n", - " Time in transport only = 8.0422E+01 seconds\n", - " Time in inactive batches = 6.4060E+00 seconds\n", - " Time in active batches = 7.4055E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 4.3400E-01 seconds\n", + " Reading cross sections = 2.7900E-01 seconds\n", + " Total time in simulation = 6.1121E+01 seconds\n", + " Time in transport only = 6.1101E+01 seconds\n", + " Time in inactive batches = 5.0660E+00 seconds\n", + " Time in active batches = 5.6055E+01 seconds\n", + " Time synchronizing fission bank = 5.0000E-03 seconds\n", + " Sampling source sites = 3.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.1067E+01 seconds\n", - " Calculation Rate (inactive) = 3902.59 neutrons/second\n", - " Calculation Rate (active) = 1350.35 neutrons/second\n", + " Total time elapsed = 6.1576E+01 seconds\n", + " Calculation Rate (inactive) = 4934.86 neutrons/second\n", + " Calculation Rate (active) = 1783.96 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -953,7 +952,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/romano/openmc/openmc/tallies.py:1941: RuntimeWarning: invalid value encountered in true_divide\n", " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" ] }, @@ -977,7 +976,7 @@ " 3\n", " 10000\n", " 1\n", - " U-235\n", + " U235\n", " 8.055246e-03\n", " 2.857567e-05\n", " \n", @@ -985,7 +984,7 @@ " 4\n", " 10000\n", " 1\n", - " U-238\n", + " U238\n", " 7.339215e-03\n", " 4.349466e-05\n", " \n", @@ -993,7 +992,7 @@ " 5\n", " 10000\n", " 1\n", - " O-16\n", + " O16\n", " 0.000000e+00\n", " 0.000000e+00\n", " \n", @@ -1001,7 +1000,7 @@ " 0\n", " 10000\n", " 2\n", - " U-235\n", + " U235\n", " 3.615565e-01\n", " 2.050486e-03\n", " \n", @@ -1009,7 +1008,7 @@ " 1\n", " 10000\n", " 2\n", - " U-238\n", + " U238\n", " 6.742638e-07\n", " 3.795256e-09\n", " \n", @@ -1017,7 +1016,7 @@ " 2\n", " 10000\n", " 2\n", - " O-16\n", + " O16\n", " 0.000000e+00\n", " 0.000000e+00\n", " \n", @@ -1027,12 +1026,12 @@ ], "text/plain": [ " 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" + "3 10000 1 U235 8.055246e-03 2.857567e-05\n", + "4 10000 1 U238 7.339215e-03 4.349466e-05\n", + "5 10000 1 O16 0.000000e+00 0.000000e+00\n", + "0 10000 2 U235 3.615565e-01 2.050486e-03\n", + "1 10000 2 U238 6.742638e-07 3.795256e-09\n", + "2 10000 2 O16 0.000000e+00 0.000000e+00" ] }, "execution_count": 30, @@ -1067,17 +1066,17 @@ "\tReaction Type =\tnu-fission\n", "\tDomain Type =\tcell\n", "\tDomain ID =\t10000\n", - "\tNuclide =\tU-235\n", + "\tNuclide =\tU235\n", "\tCross Sections [cm^-1]:\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", + "\tNuclide =\tU238\n", "\tCross Sections [cm^-1]:\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", + "\tNuclide =\tO16\n", "\tCross Sections [cm^-1]:\n", " Group 1 [6.25e-07 - 20.0 MeV]:\t0.00e+00 +/- nan%\n", " Group 2 [0.0 - 6.25e-07 MeV]:\t0.00e+00 +/- nan%\n", @@ -1190,7 +1189,7 @@ " 0\n", " 10000\n", " 1\n", - " U-235\n", + " U235\n", " 0.074860\n", " 0.000303\n", " \n", @@ -1198,7 +1197,7 @@ " 1\n", " 10000\n", " 1\n", - " U-238\n", + " U238\n", " 0.005952\n", " 0.000035\n", " \n", @@ -1206,7 +1205,7 @@ " 2\n", " 10000\n", " 1\n", - " O-16\n", + " O16\n", " 0.000000\n", " 0.000000\n", " \n", @@ -1216,9 +1215,9 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\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" + "0 10000 1 U235 0.074860 0.000303\n", + "1 10000 1 U238 0.005952 0.000035\n", + "2 10000 1 O16 0.000000 0.000000" ] }, "execution_count": 36, @@ -1298,7 +1297,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[ NORMAL ] Importing ray tracing data from file...\n", + "[ NORMAL ] Ray tracing for track segmentation...\n", + "[ NORMAL ] Dumping tracks to 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", @@ -1311,42 +1311,42 @@ "[ NORMAL ] Iteration 8:\tk_eff = 0.683124\tres = 6.142E-03\n", "[ NORMAL ] Iteration 9:\tk_eff = 0.685943\tres = 7.897E-04\n", "[ NORMAL ] Iteration 10:\tk_eff = 0.691322\tres = 4.180E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.698747\tres = 7.873E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698746\tres = 7.873E-03\n", "[ NORMAL ] Iteration 12:\tk_eff = 0.707777\tres = 1.076E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.718040\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.718039\tres = 1.295E-02\n", "[ NORMAL ] Iteration 14:\tk_eff = 0.729218\tres = 1.452E-02\n", "[ NORMAL ] Iteration 15:\tk_eff = 0.741045\tres = 1.559E-02\n", "[ NORMAL ] Iteration 16:\tk_eff = 0.753296\tres = 1.624E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.765785\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765784\tres = 1.655E-02\n", "[ NORMAL ] Iteration 18:\tk_eff = 0.778355\tres = 1.659E-02\n", "[ NORMAL ] Iteration 19:\tk_eff = 0.790879\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803254\tres = 1.610E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803253\tres = 1.610E-02\n", "[ NORMAL ] Iteration 21:\tk_eff = 0.815394\tres = 1.566E-02\n", "[ NORMAL ] Iteration 22:\tk_eff = 0.827235\tres = 1.513E-02\n", "[ NORMAL ] Iteration 23:\tk_eff = 0.838724\tres = 1.453E-02\n", "[ NORMAL ] Iteration 24:\tk_eff = 0.849823\tres = 1.390E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.860503\tres = 1.324E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860502\tres = 1.324E-02\n", "[ NORMAL ] Iteration 26:\tk_eff = 0.870744\tres = 1.258E-02\n", "[ NORMAL ] Iteration 27:\tk_eff = 0.880535\tres = 1.191E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.889870\tres = 1.125E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.898748\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889869\tres = 1.125E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898747\tres = 1.061E-02\n", "[ NORMAL ] Iteration 30:\tk_eff = 0.907172\tres = 9.985E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.915151\tres = 9.382E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.922693\tres = 8.802E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.929811\tres = 8.248E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915150\tres = 9.382E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922692\tres = 8.802E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929810\tres = 8.248E-03\n", "[ NORMAL ] Iteration 34:\tk_eff = 0.936517\tres = 7.720E-03\n", "[ NORMAL ] Iteration 35:\tk_eff = 0.942827\tres = 7.219E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.948757\tres = 6.744E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.954322\tres = 6.295E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948756\tres = 6.744E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954321\tres = 6.295E-03\n", "[ NORMAL ] Iteration 38:\tk_eff = 0.959539\tres = 5.871E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.964425\tres = 5.472E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.968996\tres = 5.096E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964424\tres = 5.472E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.968995\tres = 5.096E-03\n", "[ NORMAL ] Iteration 41:\tk_eff = 0.973268\tres = 4.744E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.977259\tres = 4.413E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.980982\tres = 4.104E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.984454\tres = 3.814E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977258\tres = 4.413E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.980981\tres = 4.104E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984453\tres = 3.814E-03\n", "[ NORMAL ] Iteration 45:\tk_eff = 0.987689\tres = 3.543E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990702\tres = 3.289E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990701\tres = 3.289E-03\n", "[ NORMAL ] Iteration 47:\tk_eff = 0.993505\tres = 3.053E-03\n", "[ NORMAL ] Iteration 48:\tk_eff = 0.996112\tres = 2.832E-03\n", "[ NORMAL ] Iteration 49:\tk_eff = 0.998536\tres = 2.627E-03\n", @@ -1366,12 +1366,12 @@ "[ NORMAL ] Iteration 63:\tk_eff = 1.018721\tres = 8.864E-04\n", "[ NORMAL ] Iteration 64:\tk_eff = 1.019490\tres = 8.187E-04\n", "[ NORMAL ] Iteration 65:\tk_eff = 1.020201\tres = 7.560E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.020858\tres = 6.980E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021464\tres = 6.444E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020857\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021464\tres = 6.443E-04\n", "[ NORMAL ] Iteration 68:\tk_eff = 1.022024\tres = 5.947E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022541\tres = 5.488E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022540\tres = 5.488E-04\n", "[ NORMAL ] Iteration 70:\tk_eff = 1.023017\tres = 5.063E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.023458\tres = 4.670E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023457\tres = 4.670E-04\n", "[ NORMAL ] Iteration 72:\tk_eff = 1.023863\tres = 4.308E-04\n", "[ NORMAL ] Iteration 73:\tk_eff = 1.024238\tres = 3.972E-04\n", "[ NORMAL ] Iteration 74:\tk_eff = 1.024583\tres = 3.663E-04\n", @@ -1386,38 +1386,38 @@ "[ NORMAL ] Iteration 83:\tk_eff = 1.026697\tres = 1.753E-04\n", "[ NORMAL ] Iteration 84:\tk_eff = 1.026849\tres = 1.614E-04\n", "[ NORMAL ] Iteration 85:\tk_eff = 1.026989\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.027118\tres = 1.369E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027118\tres = 1.368E-04\n", "[ NORMAL ] Iteration 87:\tk_eff = 1.027237\tres = 1.260E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.027347\tres = 1.160E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027346\tres = 1.159E-04\n", "[ NORMAL ] Iteration 89:\tk_eff = 1.027447\tres = 1.067E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027540\tres = 9.823E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027625\tres = 9.039E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027704\tres = 8.317E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027776\tres = 7.652E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027843\tres = 7.040E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027904\tres = 6.476E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.027960\tres = 5.957E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.028012\tres = 5.479E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028059\tres = 5.039E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028103\tres = 4.635E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028143\tres = 4.262E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028180\tres = 3.919E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028214\tres = 3.603E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028245\tres = 3.313E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028274\tres = 3.046E-05\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027540\tres = 9.821E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027625\tres = 9.040E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027703\tres = 8.316E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027775\tres = 7.652E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027842\tres = 7.039E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027903\tres = 6.480E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.027959\tres = 5.959E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028011\tres = 5.479E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028058\tres = 5.043E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028102\tres = 4.633E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028142\tres = 4.265E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028180\tres = 3.921E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028214\tres = 3.605E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028245\tres = 3.315E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028273\tres = 3.047E-05\n", "[ NORMAL ] Iteration 105:\tk_eff = 1.028300\tres = 2.800E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028324\tres = 2.574E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028347\tres = 2.366E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028367\tres = 2.175E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028386\tres = 1.999E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028324\tres = 2.575E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028346\tres = 2.368E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028367\tres = 2.176E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028386\tres = 2.003E-05\n", "[ NORMAL ] Iteration 110:\tk_eff = 1.028403\tres = 1.837E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.028419\tres = 1.688E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028434\tres = 1.551E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028419\tres = 1.690E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028434\tres = 1.553E-05\n", "[ NORMAL ] Iteration 113:\tk_eff = 1.028447\tres = 1.426E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028460\tres = 1.310E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028471\tres = 1.204E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028481\tres = 1.106E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028491\tres = 1.016E-05\n" + "[ NORMAL ] Iteration 114:\tk_eff = 1.028459\tres = 1.309E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028471\tres = 1.202E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028481\tres = 1.107E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028491\tres = 1.015E-05\n" ] } ], @@ -1559,7 +1559,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 43, @@ -1568,9 +1568,9 @@ }, { "data": { - "image/png": "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\n2ajR7Q6wgAAAAABJRU5ErkJggg==\n", + "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1610,7 +1610,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index e5c80c1926..ae015b0a64 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -59,12 +59,12 @@ "outputs": [], "source": [ "# Instantiate some Nuclides\n", - "h1 = openmc.Nuclide('H-1')\n", - "b10 = openmc.Nuclide('B-10')\n", - "o16 = openmc.Nuclide('O-16')\n", - "u235 = openmc.Nuclide('U-235')\n", - "u238 = openmc.Nuclide('U-238')\n", - "zr90 = openmc.Nuclide('Zr-90')" + "h1 = openmc.Nuclide('H1')\n", + "b10 = openmc.Nuclide('B10')\n", + "o16 = openmc.Nuclide('O16')\n", + "u235 = openmc.Nuclide('U235')\n", + "u238 = openmc.Nuclide('U238')\n", + "zr90 = openmc.Nuclide('Zr90')" ] }, { @@ -432,7 +432,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -578,8 +578,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/nelsonag/git/openmc/openmc/mgxs/library.py:320: RuntimeWarning: The P0 correction will be ignored since the scattering order 0 is greater than zero\n", - " warnings.warn(msg, RuntimeWarning)\n" + "/home/romano/openmc/openmc/mgxs/library.py:312: RuntimeWarning: The P0 correction will be ignored since the scattering order 0 is greater than zero\n", + " warn(msg, RuntimeWarning)\n" ] } ], @@ -722,27 +722,26 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 826d5a43d85eaec1b6c7b4ce22e1a8f5e9336a4f\n", - " Date/Time: 2016-06-08 19:33:38\n", - " OpenMP Threads: 4\n", + " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", + " Date/Time: 2016-07-23 16:50:57\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", " ===========================================================================\n", "\n", " Reading settings XML file...\n", - " Reading cross sections XML file...\n", " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", " Reading materials XML file...\n", + " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", + " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", + " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235.71c\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: 40090.71c\n", - " Loading ACE cross section table: 1001.71c\n", - " Loading ACE cross section table: 5010.71c\n", - " Maximum neutron transport energy: 20.0000 MeV for 92235.71c\n", " Initializing source particles...\n", "\n", " ===========================================================================\n", @@ -810,20 +809,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4220E+00 seconds\n", - " Reading cross sections = 1.1320E+00 seconds\n", - " Total time in simulation = 1.6571E+01 seconds\n", - " Time in transport only = 1.6501E+01 seconds\n", - " Time in inactive batches = 2.1010E+00 seconds\n", - " Time in active batches = 1.4470E+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 = 3.6600E-01 seconds\n", + " Reading cross sections = 2.1400E-01 seconds\n", + " Total time in simulation = 7.0360E+01 seconds\n", + " Time in transport only = 7.0341E+01 seconds\n", + " Time in inactive batches = 9.6400E+00 seconds\n", + " Time in active batches = 6.0720E+01 seconds\n", + " Time synchronizing fission bank = 7.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 = 0.0000E+00 seconds\n", - " Total time elapsed = 1.8002E+01 seconds\n", - " Calculation Rate (inactive) = 23798.2 neutrons/second\n", - " Calculation Rate (active) = 13821.7 neutrons/second\n", + " Total time elapsed = 7.0764E+01 seconds\n", + " Calculation Rate (inactive) = 5186.72 neutrons/second\n", + " Calculation Rate (active) = 3293.81 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -966,11 +965,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/nelsonag/git/openmc/openmc/tallies.py:1990: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/romano/openmc/openmc/tallies.py:1941: RuntimeWarning: invalid value encountered in true_divide\n", " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", - "/home/nelsonag/git/openmc/openmc/tallies.py:1991: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/romano/openmc/openmc/tallies.py:1942: RuntimeWarning: invalid value encountered in true_divide\n", " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n", - "/home/nelsonag/git/openmc/openmc/tallies.py:1992: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/romano/openmc/openmc/tallies.py:1943: RuntimeWarning: invalid value encountered in true_divide\n", " new_tally._mean = data['self']['mean'] / data['other']['mean']\n" ] } @@ -1098,17 +1097,16 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 826d5a43d85eaec1b6c7b4ce22e1a8f5e9336a4f\n", - " Date/Time: 2016-06-08 19:33:56\n", - " OpenMP Threads: 4\n", + " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", + " Date/Time: 2016-07-23 16:52:09\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", " ===========================================================================\n", "\n", " Reading settings XML file...\n", - " Reading cross sections XML file...\n", " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", " Reading materials XML file...\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", @@ -1183,20 +1181,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.1000E-02 seconds\n", - " Reading cross sections = 5.0000E-03 seconds\n", - " Total time in simulation = 1.1867E+01 seconds\n", - " Time in transport only = 1.1830E+01 seconds\n", - " Time in inactive batches = 1.2670E+00 seconds\n", - " Time in active batches = 1.0600E+01 seconds\n", - " Time synchronizing fission bank = 7.0000E-03 seconds\n", - " Sampling source sites = 7.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for initialization = 4.6000E-02 seconds\n", + " Reading cross sections = 8.0000E-03 seconds\n", + " Total time in simulation = 5.5889E+01 seconds\n", + " Time in transport only = 5.5863E+01 seconds\n", + " Time in inactive batches = 7.1040E+00 seconds\n", + " Time in active batches = 4.8785E+01 seconds\n", + " Time synchronizing fission bank = 1.6000E-02 seconds\n", + " Sampling source sites = 1.0000E-02 seconds\n", + " SEND/RECV source sites = 6.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.1907E+01 seconds\n", - " Calculation Rate (inactive) = 39463.3 neutrons/second\n", - " Calculation Rate (active) = 18867.9 neutrons/second\n", + " Total time elapsed = 5.5976E+01 seconds\n", + " Calculation Rate (inactive) = 7038.29 neutrons/second\n", + " Calculation Rate (active) = 4099.62 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1383,7 +1381,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1392,9 +1390,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1453,7 +1451,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/nuclear-data.ipynb b/docs/source/pythonapi/examples/nuclear-data.ipynb index 78a71cd290..0c24079cf9 100644 --- a/docs/source/pythonapi/examples/nuclear-data.ipynb +++ b/docs/source/pythonapi/examples/nuclear-data.ipynb @@ -66,7 +66,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now that we have our ACE table, we can look at its contents. Let's start off by plotting the total cross section." + "Now that we have our ACE table, we can look at its contents. Let's start off by plotting the total cross section. Reactions are indexed using their \"MT\" number -- a unique identifier for each reaction defined by the ENDF-6 format. The MT number for the total cross section is 1." ] }, { @@ -79,7 +79,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 3, @@ -90,7 +90,7 @@ "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -98,7 +98,7 @@ } ], "source": [ - "total = gd157.summed_reactions[1]\n", + "total = gd157[1]\n", "plt.loglog(total.xs.x, total.xs.y)\n", "plt.xlabel('Energy (MeV)')\n", "plt.ylabel('Cross section (b)')" @@ -124,16 +124,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]\n" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]\n" ] } ], @@ -166,7 +166,7 @@ "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEPCAYAAABGP2P1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xmc1vP6x/HX1XayJXEUOqEFRZaQkmNJJEdKG0Uq+xZx\ndJzzk/XgZEnHljVbCSXkyE62VFIiNVIiydYiFNJy/f743KOZMct9z8x3vvfyfj4e96P7/t7fuef6\nNHPPdX8/y/Uxd0dERCRftbgDEBGR9KLEICIihSgxiIhIIUoMIiJSiBKDiIgUosQgIiKFRJoYzKyh\nmb1mZnPMbLaZnV/Cebea2Xwzm2Vme0cZk4iIlK5GxK+/DrjI3WeZ2ebADDN7yd0/zj/BzDoBTdy9\nmZkdANwFtIk4LhERKUGkVwzu/o27z0rcXwXkATsUOa0L8HDinGnAlmZWP8q4RESkZFU2xmBmOwF7\nA9OKPLUDsLjA4yX8MXmIiEgVqZLEkOhGegK4IHHlICIiaSrqMQbMrAYhKYxy9wnFnLIE+EuBxw0T\nx4q+joo6iYiUg7tbKudXxRXD/cBcd7+lhOefAU4GMLM2wEp3/7a4E909bW/dunWLPQa1QW1Ip1s2\ntCMb2lAekV4xmFk74ERgtpm9Dzjwf8COgLv7Pe7+nJkdbWYLgNXAgChjEhGR0kWaGNx9MlA9ifPO\nizIOERFJnlY+V5LmzZvHHUKFqQ3pIRvaANnRjmxoQ3koMVSSFi1axB1ChakN6SEb2gDZ0Y5saEN5\nKDGIiEghSgwiIlKIEoOIiBSixCAiIoUoMYhIqX76Cb7/Pu4opCpFXhJDRNLXb7/BkiXwxRewePHG\nfwveX7MGqleH7beHAw/ceGveHKrpo2VWUmIQyWJr14Y/7gsXbrx99hl8/nk4vmwZNGgAjRrBX/4S\n/t19d+jUaePjevVgwwaYMwemTIG334YbboClS6FNm42JonVrqFMn7hZLZVBiEMlwK1bAggWF//Dn\n3//qK9huO2jcONx23hm6dIGddgp/+LfbDmok8VegenXYc89wO/PMcOy770KimDIFrr4aZs6EJk1C\nkvjrX2HNmjKLHkiaUmIQySDffQczZhS+rVwJzZpt/OO/337Qq1dIAo0aQa1a0cSy7bYhyXTpEh7/\n9hvMmgXvvAOPPAJvvdWF+fPh3HNhB+2wklGUGETS1Lff/jEJrFoFrVrBvvvCCSeELp0mTdKjr79W\nrdCd1Lo1DBoEN9/8EosWHUvLlqFratAg2H//uKOUZCgxiKSBDRvggw/gtdfg0Uf/yj/+AatXhwSw\n777Qpw8MGxauCCylyvrxadBgFRddBFddBfffDz17hiuHQYPguOOS68KSeOhHIxIDd/jkk5AIXn0V\nXn8dtt4aDj8c2rZdxIUX/oWdd86cJFCaunXhoovg/PPhmWdg+HC4+GIYOBBOOy08L+klDS5ARXLD\n4sXw0ENw8slh4LdDB5g2LfTRz5oF8+bBiBHQtu0XGXVlkKwaNaBbN3jrLRg/PlwhNW4M550H8+fH\nHZ0UpCsGkYisXg0vvQQvvhiuClauhMMOC1cFl10GTZtm3x//ZO23H4waFWZNjRgB7drBOefAFVfk\n7v9JOlFiEKlEy5bBs8/C00+HbqLWreHoo+Hss6Fly/QYJE4n228P11wTupWOPDKssr7pJiWHuCkx\niFTQ55/DhAkhGcycGbqIevSABx6ArbaKO7rMUL8+TJoUZi+dfXa4ilASjY8Sg0iK3GH2bHjqqZAM\nvvwSjj02DLB26ACbbBJ3hJmpXj14+WXo3Bn69w8zmTRzKR7KySJJmjMHBg8O6wa6dIEffoBbboGv\nv4aRI8MfNCWFiqlTB55/PqzhOOGEsGhOqp4Sg0gpfvwR7rkHDjgg9IHXrBmuFBYuhJtvhoMP1qfa\nyrbppmFa6/r10LUr/PJL3BHlHiUGkSLcw5TK/v1DSYkXXoDLL4dFi+C662CvvTQ4GrU//QnGjg1j\nNEcfHQalpeooMYgkfPMNXH897LYbnHEG7LFHWFvw5JPwt7/pyqCq1awJDz8cpvUeeaT2hKhKSgyS\n09atC90WXbqE/QU++STMJpo7N6zOrV8/7ghzW/XqG7vy2rcPpb4levoMJDnniy/C1MhJk8Lis8aN\n4dRTYfRo2GKLuKOTosxCGY3LL4dDDgkzl1StNVpKDJL1vvpqYyKYNCn0Vx96aFiFfOmloWS1pDcz\n+Pe/YbPNwoD/q6+GPSUkGkoMknW++y4UpctPBN99tzERDBoUdijT4HFm+uc/NyaHV16BXXaJO6Ls\npMQgGW3t2rC+4L33wm3ixKP56aewg9hhh4VB5L320irabDJwYEgO7dvDG2+EdSVSuZQYJGOsXw95\neRuTwHvvhRXIO+4YirLttx/ssMNU/vWvozSDKMudckpY/NahA7z5ZqhWK5VHbx9JW4sWhfUE+Ulg\n1qxQdC0/CfTqBfvsU3jAeMyYFUoKOeKss+Dnn0O12jffhAYN4o4oe+gtJGnFPYwPDB8eNpk/9NCw\nHeTVV4ctLbWpixR00UWhvPkRR2zc7EgqTolB0sKvv8Jjj8F//xu6CAYNCo833TTuyCTdDRkS9sLu\n2DHMVtpyy7gjynwakpNYffstXHllmHr4+ONh5fGcOWHQWElBkmEGQ4dCmzZhhfrq1XFHlPmUGCQW\nH3wAAwaE8hPffBM2tXn++fCpT1NJJVVmcOutYU1K167hClTKT4lBqsz69aH8RPv24ZPdrrvCggVw\n113QokXc0Ummq1YN7rsvjDP06hWmMkv5KDFIlXj77VCL6Jpr4PTT4bPPwmIlDRZKZapePewlDXDS\nSeHDiKROiUEitWFDGDfo0QOGDYNp06B371A5UyQKNWuGkt0rVsBpp4XfQUmNEoNEZtmysKvZM8/A\n9OnhvsYPpCrUrh22XV2wIKyUdo87osyixCCRmDw5rDvYffcwv1wrU6WqbbYZTJwI774Ll1yi5JAK\nrWOQSrVhQ+gyuummsA/yMcfEHZHksjp1Qmn1Qw8NK+QvuyzuiDKDEoNUmuXLoV+/8O/06WFbTJG4\n1asX9nDYf3848MBQQkNKp64kqRRTpoSuo912C3VrlBQkndSvH6ZFn366FsAlQ4lBKsQ9dB117Qq3\n3Ra6kDTjSNLR0UfDQQeFzZmkdOpKknJbsQL69w9lLaZN045akv6GD4eWLaFnT2jXLu5o0peuGKRc\nZswIXUdNm4bS2EoKkgm23jqUzjj1VJXNKI0Sg6TsqafgqKNCF9LNN0OtWnFHJJK8Hj3CNOqrr447\nkvSlriRJmnsYQ7jlFnjhBdh337gjEimfO+6APfcMSaJVq7ijST+RXjGY2Ugz+9bMPizh+UPMbKWZ\nzUzchkQZj5Tf2rVw5pnwyCMwdaqSgmS2Bg3Ch5xTT1WxveJE3ZX0ANCxjHPedPdWids1Eccj5bBy\nZZjR8dVXYTyhYcO4IxKpuL59Q4K44Ya4I0k/kSYGd38b+L6M01Q9J4199llYFNSiBUyYUHh/ZZFM\nZgZ33x12DZw7N+5o0ks6DD63NbNZZjbRzFSVP41MmRKSwjnnhHGF6tXjjkikcjVqFAahTzlFJboL\ninvweQbQyN1/NrNOwNPALiWd3L1799/vN2/enBZptLvL5MmT4w6hwgq2YcqURjz88H6ceeZU6tX7\nijFjYgwsBdn2c8hkmdKOLbaAH344nP79v6RTp3mFnsuUNhQ0d+5c8vLyKvQasSYGd19V4P7zZjbC\nzOq5+4rizh8/fnzVBVcOffr0iTuECuvduw/XXhtKZb/1Fuy556Fxh5SybPg5ZEMbIHPa0aYNtGlT\nnyuv3JcmTQo/lyltKImVo9Z9VXQlGSWMI5hZ/QL3WwNWUlKQ6K1dW43+/cNYwtSpYTqfSC5o2hT+\n9a9QS0nluaOfrjoGeAfYxcy+MLMBZnammZ2ROKWHmX1kZu8D/wWOjzIeKdny5TB06GGsWgVvvAHb\nbRd3RCJVa9CgUGDv3nvjjiR+kXYluXup12DufgdwR5QxSNnWrIEjj4TGjVcwblx9qqXDlASRKla9\nOtx/f9i7oVOn3N5cSn8ChMsuC2+CPn3eV1KQnLb77mEr0LPOyu0uJf0ZyHGvvRZWM997r/ZjFgH4\n5z9h8eLwvshVSgw5bMWKsOPa/ffDn/8cdzQi6aFWLXjgAfj732HlytpxhxMLJYYc5R5qH3XvDh3L\nKloikmP23Te8P+68sy0bNsQdTdVTYshRDz0EH38MQ4fGHYlIerr8cli7tnpOvkeUGHLQp5/C4MEw\nZgzUzs0rZZEy1agB5547mVtvDYs9c4kSQ45ZuxZOPBGGDAlbHIpIybbe+hceeAD69IFly+KOpuoo\nMeSYa66BLbcMU/JEpGydOoXE0K8fOTPeoMSQQ955J5QZfvBBtF5BJAXXXAPffx+2s80FcVdXlSry\n449w0kkhMajchUhqataERx+F1q3hoIOgbdu4I4qWPjfmiIED4YgjoEuXuCMRyUw77gj33AO9e4c1\nQNlMVww54LHHQrXUmTPjjkQks3XpAq+/DgMGwNNPZ2+1gDKvGMysrZndYWYfmtnSRJXU58zsXDPb\nsiqClPL74gs4//wwNXWzzeKORiTzXX992P/81lvjjiQ6pSYGM3seOA14ETgK2A5oAQwBagMTzOzY\nqIOU8lm/Hk4+GS66KKzkFJGKq1ULHn8crr0Wpk+PO5polNWV1Nfdi87eXQXMTNyGmdk2kUQmFXbj\njaH0xeDBcUcikl0aN4YRI+D44+H998MU8GxS6hVDwaRgZg3M7Fgz62xmDYo7R9LHjBlw880walSo\nMy8ilatHj7DG4bTTsq9Ed1KzkszsNOBdoBvQA5hqZqdEGZiU388/h9XNt90GjRrFHY1I9ho2DBYs\ngDvvjDuSypXsrKTBwD7uvhzAzLYmbNl5f1SBSfkNGQL77BMuc0UkOrVrw9ixcOCB4bb33nFHVDmS\nTQzLgZ8KPP4pcUzSzOTJYSHO7NlxRyKSG5o1CzOUevUKXbhbbBF3RBVXamIws4sSdxcA08xsAuBA\nF+DDiGOTFP3yS5hffccdsI2mBIhUmd69w26IgwbByJFxR1NxZV0x5Oe+TxO3fBOiCUcq4rLLwrTU\nbt3ijkQk9wwbBi1ahKv2du3ijqZiSk0M7n5VVQUiFfPOO2GPWnUhicSjTh246SY455zQpVQjg+tK\nlLXA7V4z26OE5zYzs1PM7MRoQpNk/fILnHIK3H67upBE4nT88WH/9NtvjzuSiikrp90BXG5mLYGP\ngKWEFc/NgDqEWUmPRBqhlOnyy2GvvcL+zSISH7MwxteuXRiM3n77uCMqn7K6kmYBvcxsc2A/QkmM\nX4A8d59XBfFJGaZMgdGj4UNNBRBJC7vuCmecAX//e5ghmImS6gVz91XA69GGIqnKn4V0223h8lVE\n0sOQIWEg+tVX4fDD444mddqPIYNdcQXsuWdYmi8i6WPTTeGWW+Dcc+G33+KOJnVKDBlq6lR4+OHM\nH+QSyVbHHgtNm2bmdqBKDBno119DF9Ktt8K228YdjYgUxyy8R4cNg0WL4o4mNUmNMZjZLoR6STsW\n/Bp3bx9RXFKKK6+E3XeHnj3jjkREStO4MVxwQVgR/dRTcUeTvGSXYIwD7gLuBdZHF46UZdo0ePDB\nMAspW7cVFMkmgwdDy5YwcSL87W9xR5OcZBPDOnfPssKymSe/C+mWW9SFJJIpatcOY4Fnnw3t28Mm\nm8QdUdmSHWP4n5mdY2bbmVm9/FukkckfXHUVNG8eFs6ISObo2DHUMRs6NO5IkpPsFUO/xL8FN4l0\noHHlhiMlmT4dHngAPvhAXUgimWj48LBfw0knhVLd6SzZBW47Rx2IlOzXX6F/f/jvf6F+/bijEZHy\naNgQLrkEBg6E559P7w94yW7tWdPMzjezJxK388ysZtTBSfCf/4RPGNqRTSSzDRoEixfDk0/GHUnp\nku1KuhOoCYxIPO6bOHZaFEHJRvPmhaJcs2al9ycMESlbzZowYgT07RvGHTbfPO6Iipfs4PP+7t7P\n3V9L3AYA+0cZmIB7qO1+6aXhMlREMt8hh4Tb1VfHHUnJkk0M682sSf4DM2uM1jNEbswYWLEi9EmK\nSPa48cYwmWTOnLgjKV6yXUmDgUlmthAwwgroAZFFJXz/PVx8MTz9dGbvBCUif9SgQSiCee65MGlS\n+nUTJ3XF4O6vEjbnOR8YCOzq7pOiDCzX/d//wXHHwQEHxB2JiETh7LPhxx/DlrzpptTPombW3t1f\nM7Oi28s3NTPcPc3H1jPT1KkwYQLMnRt3JCISlerVw0B0t25wzDFQt27cEW1UVifFIcBrQOdinnNA\niaGSrVsHZ50VNhVPp18UEal8bdqE+kmXXx4qsaaLsrb2vCJx92p3/6zgc2amRW8RuPVW2GYb6N07\n7khEpCoMHRp2e+vfH1q1ijuaINlZSeOLOfZEZQYiYeHLddeFy8t0G4wSkWhsvTVcfz2ceiqsXRt3\nNEGpicHMdjOz7sCWZtatwK0/ULtKIswhF1wQpqbuskvckYhIVerXL5S7ueGGuCMJyhpj2BU4BqhL\n4XGGn4DTowoqF/3vf/DRR2HtgojkFjO4557QldS1a9iIK05ljTFMACaYWVt3n5Lqi5vZSEJi+dbd\n9yzhnFuBTsBqoL+7z0r1+2S61avDlcJ994Xa7SKSexo1gmuugVNOgXfeCbOW4pLsGMNZZvb7HBkz\n28rM7k/i6x4AOpb0pJl1Apq4ezPgTMIucTnn3/+Gdu2gQ4e4IxGROJ1xBmy6aaikHKdk19Tu6e4r\n8x+4+/dmtk9ZX+Tub5vZjqWc0gV4OHHuNDPb0szqu/u3ScaV8T76CEaOhNmz445EROJWrVroOTjg\nADj22Pj2bUj2iqGamW2V/yCxe1tlFGrYAVhc4PGSxLGcsGFDWP149dVhibyISJMmMGQInHZa+BsR\nh2T/uA8DppjZuMTjnsC10YRUsu7du/9+v3nz5rRo0aKqQyjR5MmTU/6a119vzNdfN2WLLV5mzBiP\nIKrUlKcN6UZtSB/Z0I642rDNNsbXX3fg1FM/54gj5qf0tXPnziUvL69C3z/ZHdweNrP3gPaJQ93c\nvTIKNiwB/lLgccPEsWKNH1/ccor00adPn6TPXboULrwQXnwR9t47fVazpdKGdKU2pI9saEdcbdhv\nP/jrX//MFVfsz047lf91rByLopLtSgKoB6x299uBpSmsfLbErTjPACcDmFkbYGWujC/84x9w4olh\nD1gRkaJ22w0uuigMSHsVdygku7XnFcAlwL8Sh2oCo5P4ujHAO8AuZvaFmQ0wszPN7AwAd38O+MzM\nFgB3A+eUow0Z54034JVX4Kqr4o5ERNLZxRfD8uVh74aqlOwYw3HAPsBMAHf/ysy2KOuL3L3MazB3\nPy/JGLLGZZeFFY5blPk/KCK5rGZNuP9+OOIIOOoo2H77qvm+yXYl/ebuTqioipltFl1I2W32bFi4\nEHr2jDsSEckEe+0VZi+edVbVdSklmxjGmtndQF0zOx14Bbg3urCy1513hj5D7comIsm69FL47DN4\n7LGq+X7Jzkq6ycyOAH4k1E+63N1fjjSyLPTjj+EH+9FHcUciIpmkVq3QpdS5M7RvHwruRSnZwefN\ngNfcfTDhSmETM6sZaWRZaPRoOPzwqusnFJHssf/+oY5SVcxSSrYr6U3gT2a2A/AC0Bd4MKqgspF7\n2GfhnJyYdyUiUbjySli0KPpZSskmBnP3n4FuwJ3u3hOIuTBsZnnrLVi/Hg49NO5IRCRT1aoVeh4u\nuSSMOUQl6cRgZm2BE4GJiWMxFoXNPPlXC9qZTUQqYo89QmLo1y982IxCsonhAsLitqfcfY6ZNQYm\nRRNS9vnmm1D64uST445ERLLBhReGf4cPj+b1k52V9CZhnCH/8ULg/GhCyj733Qe9esGWW8YdiYhk\ng+rV4aGHoHVr6NgRWras3NdPpVaSlMO6dXD33WGBiohIZdl5Z7j+eujbF9asqdzXVmKI2LPPhi37\nVCxPRCrbgAGw445htlJlUmKImKaoikhUzOCee+DBB6Eyt45IdoHbDWZWx8xqmtmrZrbUzE6qvDCy\n0yefwAcfQI8ecUciItmqfv1Qaufkk+GnnyrnNZO9YjjS3X8EjgE+B5oCgysnhOx1111hpeKf/hR3\nJCKSzbp2hYMPDmW6K0OyiSF/9tLfgHHu/kPlfPvs9fPP8PDDcOaZcUciIrngllvCtPiJE8s+tyzJ\nJoZnzexjYF/gVTP7M/Brxb999nrsMWjThgptyScikqw6dcJYw+mnw7JlFXutpBKDu/8TOBDYz93X\nAquBLhX71tlNg84iUtUOPRR696743g3JDj73BNa6+3ozG0LY1lM1QkswfTqsWBEWnoiIVKVrrw2b\ngf3nP+V/jWS3i7nM3ceZ2UFAB+BG4E7ggPJ/6+w1YkTI2NVVTUpEqljt2mH9VNu2YY1DeSQ7xpBf\nqulvwD3uPhGoVb5vmd2WL4ennw6zkURE4rD99mEQOr+mUqqSTQxLElt7Hg88Z2Z/SuFrc8qDD4Zd\nlrbZJu5IRCSX7bFH+bcCTfaPey/gRaCju68E6qF1DH+wYUNYaKJBZxFJB+3bl+/rkp2V9DPwKdDR\nzM4DtnX3l8r3LbPXyy+HKWMHaORFRDJYsrOSLgAeAbZN3Eab2cAoA8tE2oxHRLJBsrOSTgUOcPfV\nAGZ2PTAFuC2qwDLN0qWb8vbbMGZM3JGIiFRM0lt7snFmEon7+lxcwKRJTenbFzbbLO5IREQqJtkr\nhgeAaWb2VOJxV2BkNCFlnjVr4PXXmzB1atyRiIhUXLJbe95sZq8DByUODXD39yOLKsM8+SQ0bPgD\nu+22SdyhiIhUWJmJwcyqA3PcfTdgZvQhZZ4RI6BDh/lAg7hDERGpsDLHGNx9PTDPzBpVQTwZZ/78\nsCFPq1Zfxh2KiEilSHaMYStgjpm9S6isCoC7HxtJVBlk9OhQzbBGjQqUMhQRSSNJF9GLNIoM5R4S\nw9ixMG9e3NGIiFSOUhODmTUF6rv7G0WOHwR8HWVgmWDKFKhVC1q1UmIQkexR1hjDf4Efizn+Q+K5\nnDZqFPTtq5XOIpJdyupKqu/us4sedPfZZrZTJBFliDVrYNw4mDEj7khERCpXWVcMdUt5Lqcn7T/3\nXChrW96NMERE0lVZieE9Mzu96EEzOw3I6c/Ko0fDSSfFHYWISOUrqytpEPCUmZ3IxkSwH2H3tuOi\nDCydff89vPIKjFRREBHJQqUmBnf/FjjQzA4D9kgcnujur0UeWRobOxY6doS6pXW0iYhkqGRrJU0C\nJkUcS8YYNQouuSTuKEREoqF9m1O0cGFYs9CxY9yRiIhEQ4khRY88AscfHxa2iYhkIyWGFLhvXNQm\nIpKtlBhS8O674d/WreONQ0QkSkoMKRg1KqxdUAkMEclmyVZXzXlr18Ljj8O0aXFHIiISLV0xJOmF\nF2DXXaFx47gjERGJVuSJwcyOMrOPzewTM/vD7H8zO8TMVprZzMRtSNQxlYcGnUUkV0TalWRm1YDb\ngcOBr4DpZjbB3T8ucuqb6bwb3MqV8OKLcPfdcUciIhK9qK8YWgPz3X2Ru68FHgO6FHNeWg/njh8P\nhx8OW20VdyQiItGLOjHsACwu8PjLxLGi2prZLDObaGYtIo4pZepGEpFckg6zkmYAjdz9ZzPrBDwN\n7FLcid27d//9fvPmzWnRIvocsnTppsyYcRQ//vg0Y8ZsKPG8yZMnRx5L1NSG9JANbYDsaEcmtmHu\n3Lnk5eVV6DWiTgxLgEYFHjdMHPudu68qcP95MxthZvXcfUXRFxs/fnxkgZbkuuvC2oV+/U4o89w+\nffpUQUTRUhvSQza0AbKjHZneBivHwquou5KmA03NbEczqwWcADxT8AQzq1/gfmvAiksKcVAJDBHJ\nRZFeMbj7ejM7D3iJkIRGunuemZ0ZnvZ7gB5mdjawFvgFOD7KmFIxcyb89hu0bRt3JCIiVSfyMQZ3\nfwHYtcixuwvcvwO4I+o4ykMlMEQkF6XD4HNaWrcOHn0U3n477khERKqWSmKU4KWXQvmLZs3ijkRE\npGopMZRg9GgNOotIblJiKMZPP8Fzz0GvXnFHIiJS9ZQYijF+PBxyCGyzTdyRiIhUPSWGYmjtgojk\nMiWGIr78EmbNgmOOiTsSEZF4KDEUMXYsdO0KtWvHHYmISDyUGIoYOxaOT5u11yIiVU+JoYDPP4dP\nP4XDDos7EhGR+CgxFPDEE3DccVCzZtyRiIjER4mhAHUjiYgoMfxu4UJYtCisXxARyWVKDAnjxkG3\nblBDZQVFJMcpMSSMHasSGCIioMQAwIIFsGQJHHxw3JGIiMRPiYFwtdCjB1SvHnckIiLxU2JA3Ugi\nIgXlfGKYNw+++w7atYs7EhGR9JDziWHcOHUjiYgUlPOJQYvaREQKy+nEkJcHK1ZA27ZxRyIikj5y\nOjGMHQs9e0K1nP5fEBEpLKf/JGo2kojIH+VsYpgzB1atgjZt4o5ERCS95GxiePzx0I1kFnckIiLp\nJScTg7u6kURESpKTiWH2bPj1V9h//7gjERFJPzmZGPKvFtSNJCLyRzmXGPK7kbSoTUSkeDmXGGbN\ngvXroVWruCMREUlPOZcY1I0kIlK6nNrIMr8b6Ykn4o5ERCR95dQVw8yZoYrq3nvHHYmISPrKqcTw\n+OPqRhIRKUvOdCXldyM980zckYiIpLecuWKYPh1q14aWLeOOREQkveVMYshfu6BuJBGR0uVEV1J+\nN9Lzz8cdiYhI+suJK4apU2GLLWD33eOOREQk/eVEYlAlVRGR5GV9V9KGDTBuHLz8ctyRiIhkhqy/\nYpgyBerVg+bN445ERCQzZHVieO89GDgQTjwx7khERDJHViaGpUvh9NOhc+eQGAYPjjsiEZHMkVWJ\nYd06uP32MPto880hLw8GDIBqWdVKEZFoRf4n08yOMrOPzewTM7ukhHNuNbP5ZjbLzMpV4u6NN8Ie\nC089BZMmwfDhULduxWIXEclFkc5KMrNqwO3A4cBXwHQzm+DuHxc4pxPQxN2bmdkBwF1Am2S/x5df\nhq6id97TdiCCAAAIL0lEQVSBYcOge/d4VjfPnTu36r9pJVMb0kM2tAGyox3Z0IbyiPqKoTUw390X\nufta4DGgS5FzugAPA7j7NGBLM6tf1guvWQNDh4YS2s2ahW6jHj3iK3mRl5cXzzeuRGpDesiGNkB2\ntCMb2lAeUa9j2AFYXODxl4RkUdo5SxLHvi3pRSdOhEGDoEULePddaNy4ssIVEZGMWuDWuTMsXw7L\nlsFtt8FRR8UdkYhI9ok6MSwBGhV43DBxrOg5fynjHACefXZjP1GnTpUTYGWyLCjdqjakh2xoA2RH\nO7KhDamKOjFMB5qa2Y7A18AJQO8i5zwDnAs8bmZtgJXu/oduJHfPvZ+OiEgMIk0M7r7ezM4DXiIM\ndI909zwzOzM87fe4+3NmdrSZLQBWAwOijElEREpn7h53DCIikka0JriCzOxCM/vIzD40s0fMrFbc\nMSXDzEaa2bdm9mGBY1uZ2UtmNs/MXjSzLeOMsSwltOEGM8tLLJYcb2Z14oyxLMW1ocBzfzezDWZW\nL47YklVSG8xsYOJnMdvMhsYVX7JK+H3ay8ymmNn7Zvaume0XZ4ylMbOGZvaamc1J/J+fnzie8vta\niaECzGx7YCDQyt33JHTNnRBvVEl7AOhY5Ng/gVfcfVfgNeBfVR5Vaoprw0vA7u6+NzCfzGwDZtYQ\nOAJYVOURpe4PbTCzQ4HOQEt3bwncFENcqSruZ3EDcIW77wNcAdxY5VElbx1wkbvvDrQFzjWz3SjH\n+1qJoeKqA5uZWQ1gU8IK77Tn7m8D3xc53AV4KHH/IaBrlQaVouLa4O6vuPuGxMOphFluaauEnwPA\ncCAjyj+W0IazgaHuvi5xzrIqDyxFJbRjA5D/CbsuJcyYTAfu/o27z0rcXwXkEX7/U35fKzFUgLt/\nBQwDviD8wqx091fijapCts2fEebu3wDbxhxPRZ0CZNxO32Z2LLDY3WfHHUsF7AIcbGZTzWxSOnfB\nlOFC4CYz+4Jw9ZDuV6AAmNlOwN6ED0f1U31fKzFUgJnVJWTjHYHtgc3NrE+8UVWqjJ2ZYGaXAmvd\nfUzcsaTCzDYB/o/QbfH74ZjCqYgawFbu3gb4BzA25njK62zgAndvREgS98ccT5nMbHPgCULcq/jj\n+7jM97USQ8V0ABa6+wp3Xw88CRwYc0wV8W1+nSozawB8F3M85WJm/YGjgUxM0k2AnYAPzOwzQlfA\nDDPLtKu3xYT3A+4+HdhgZlvHG1K59HP3pwHc/Qn+WNInrSS6tJ8ARrn7hMThlN/XSgwV8wXQxsxq\nW1geeTihXy9TGIU/jT4D9E/c7wdMKPoFaahQG8zsKELf/LHuvia2qFLzexvc/SN3b+Dujd19Z0J9\nsX3cPd2TdNHfpaeB9gBmtgtQ092XxxFYioq2Y4mZHQJgZocDn8QSVfLuB+a6+y0FjqX+vnZ33Spw\nI1zy5wEfEgZ2asYdU5JxjyEMlK8hJLgBwFbAK8A8wuyeunHHWY42zCfM5JmZuI2IO85U21Dk+YVA\nvbjjLMfPoQYwCpgNvAccEnec5WzHgYn43wemEJJ07LGWEH87YD0wKxHvTOAooF6q72stcBMRkULU\nlSQiIoUoMYiISCFKDCIiUogSg4iIFKLEICIihSgxiIhIIUoMkvHMbL2ZzUyURp5pZv+IO6Z8ZjYu\nUbcGM/vczN4o8vys4kpuFznnUzNrVuTYcDMbbGZ7mNkDlR235Laot/YUqQqr3b1VZb6gmVX3UOak\nIq/RAqjm7p8nDjmwhZnt4O5LEiWRk1lI9CihnPu/E69rQA+grbt/aWY7mFlDd/+yIvGK5NMVg2SD\nYovMmdlnZnalmc0wsw8SpRkws00Tm7JMTTzXOXG8n5lNMLNXgVcsGGFmcxMbnUw0s25mdpiZPVXg\n+3QwsyeLCeFE/lh+YCwb9+zoTVhtm/861RIbDU1LXEmcnnjqMQrv83Ew8HmBRPAsmbMPiGQAJQbJ\nBpsU6UrqWeC579x9X+Au4OLEsUuBVz1U/mxPKKu8SeK5fYBu7n4Y0A1o5O4tgL6EzU9w90nArgWK\nwg0ARhYTVztgRoHHDowHjks87gz8r8DzpxJKtx9AKNZ2hpnt6O4fAevNrGXivBMIVxH53gP+Wtp/\nkEgq1JUk2eDnUrqS8j/Zz2DjH+Qjgc5mlr8RTi2gUeL+y+7+Q+L+QcA4AHf/1swmFXjdUcBJZvYg\n0IaQOIraDlha5Nhy4HszOx6YC/xS4LkjgZYFElsdoBmh9tNjwAlmNpew0crlBb7uO0LZd5FKocQg\n2S6/wup6Nv6+G9Dd3ecXPNHM2gCrk3zdBwmf9tcA43zjrnEF/QzULub4WOAO4OQixw0Y6O4vF/M1\njxEKoL0JfODuBRNObQonGJEKUVeSZINUN7J5ETj/9y8227uE8yYD3RNjDfWBQ/OfcPevCZU4LyXs\nFVycPKBpMXE+BVxP+ENfNK5zEjX1MbNm+V1c7r4QWAYMpXA3EoTd0j4qIQaRlCkxSDaoXWSM4brE\n8ZJm/PwbqGlmH5rZR8DVJZw3nrAfwhzgYUJ31A8Fnn+EsAXnvBK+/jngsAKPHcJ+vO5+oyf2Qy7g\nPkL30kwzm00YFyl4Vf8osCuJDXAKOAyYWEIMIilT2W2RUpjZZu6+2szqAdOAdp7YNMfMbgNmunux\nVwxmVht4LfE1kbzRzKwW8DpwUAndWSIpU2IQKUViwLkuUBO43t1HJY6/B6wCjnD3taV8/RFAXlRr\nDMysKbC9u78ZxetLblJiEBGRQjTGICIihSgxiIhIIUoMIiJSiBKDiIgUosQgIiKFKDGIiEgh/w8k\n9zC0aV7vrgAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -174,7 +174,7 @@ } ], "source": [ - "n2n = gd157.reactions[16]\n", + "n2n = gd157[16]\n", "plt.plot(n2n.xs.x, n2n.xs.y)\n", "plt.xlabel('Energy (MeV)')\n", "plt.ylabel('Cross section (b)')\n", @@ -222,7 +222,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 7, @@ -252,36 +252,36 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 8, @@ -312,7 +312,7 @@ "data": { "image/png": "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\nMAzDMAyv/B9ZBCMoWOfF0wAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -348,7 +348,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 10, @@ -359,7 +359,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -476,7 +476,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "While the groups containing reaction data are only labeled sequentially, we can look at the group attributes to figure out what they actually are." + "All reaction data is contained in the `reactions` group under a nuclide. While the group for each reaction is only labeled by its MT value, we can look at the group attributes to get a label for the reaction." ] }, { @@ -490,24 +490,24 @@ "name": "stdout", "output_type": "stream", "text": [ - "reaction_0, MT=2 (n,elastic)\n", - "reaction_1, MT=16 (n,2n)\n", - "reaction_10, MT=54 (n,n4)\n", - "reaction_11, MT=55 (n,n5)\n", - "reaction_12, MT=56 (n,n6)\n", - "reaction_13, MT=57 (n,n7)\n", - "reaction_14, MT=58 (n,n8)\n", - "reaction_15, MT=59 (n,n9)\n", - "reaction_16, MT=60 (n,n10)\n" + "reaction_002, (n,elastic)\n", + "reaction_016, (n,2n)\n", + "reaction_017, (n,3n)\n", + "reaction_022, (n,na)\n", + "reaction_024, (n,2na)\n", + "reaction_028, (n,np)\n", + "reaction_041, (n,2np)\n", + "reaction_051, (n,n1)\n", + "reaction_052, (n,n2)\n", + "reaction_053, (n,n3)\n" ] } ], "source": [ - "main_group = h5file['Gd157.71c']\n", - "for name, obj in list(main_group.items())[:10]:\n", - " if 'mt' in obj.attrs:\n", - " print('{}, MT={} {}'.format(name, obj.attrs['mt'],\n", - " obj.attrs['label'].decode()))" + "main_group = h5file['Gd157.71c/reactions']\n", + "for name, obj in sorted(list(main_group.items()))[:10]:\n", + " if 'reaction_' in name:\n", + " print('{}, {}'.format(name, obj.attrs['label'].decode()))" ] }, { @@ -521,14 +521,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "[,\n", - " ,\n", - " ]\n" + "[,\n", + " ,\n", + " ]\n" ] } ], "source": [ - "n2n_group = main_group['reaction_1']\n", + "n2n_group = main_group['reaction_016']\n", "pprint(list(n2n_group.values()))" ] }, @@ -601,8 +601,8 @@ } ], "source": [ - "gd157_reconstructed = openmc.data.IncidentNeutron.from_hdf5(main_group)\n", - "gd157.reactions[16].xs.y - gd157_reconstructed.reactions[16].xs.y" + "gd157_reconstructed = openmc.data.IncidentNeutron.from_hdf5('gd157.h5')\n", + "gd157[16].xs.y - gd157_reconstructed[16].xs.y" ] } ], @@ -622,7 +622,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 2c222ad6e0..412013f2f4 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -23,6 +23,7 @@ "import matplotlib.pyplot as plt\n", "import scipy.stats\n", "import numpy as np\n", + "import pandas as pd\n", "\n", "import openmc" ] @@ -50,12 +51,12 @@ "outputs": [], "source": [ "# Instantiate some Nuclides\n", - "h1 = openmc.Nuclide('H-1')\n", - "b10 = openmc.Nuclide('B-10')\n", - "o16 = openmc.Nuclide('O-16')\n", - "u235 = openmc.Nuclide('U-235')\n", - "u238 = openmc.Nuclide('U-238')\n", - "zr90 = openmc.Nuclide('Zr-90')" + "h1 = openmc.Nuclide('H1')\n", + "b10 = openmc.Nuclide('B10')\n", + "o16 = openmc.Nuclide('O16')\n", + "u235 = openmc.Nuclide('U235')\n", + "u238 = openmc.Nuclide('U238')\n", + "zr90 = openmc.Nuclide('Zr90')" ] }, { @@ -369,7 +370,7 @@ "outputs": [ { "data": { - "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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA1LTA5VDIzOjAx\nOjE4LTA0OjAw/mF/xQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNS0wOVQyMzowMToxOC0wNDow\nMI88x3kAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AHFxUkA9dy05MAAAPZSURBVGje7Zs7buMwEIZ9iey5\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTIzVDE2OjM2OjAzLTA1OjAwxjuLbgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yM1QxNjozNjowMy0wNTowMLdmM9IAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -553,27 +554,26 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ae588276014a905ecc6e0967bf08288ecec5b550\n", - " Date/Time: 2016-05-09 23:01:18\n", - " MPI Processes: 1\n", + " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", + " Date/Time: 2016-07-23 16:36:04\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", " ===========================================================================\n", "\n", " Reading settings XML file...\n", - " Reading cross sections XML file...\n", " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", " Reading materials XML file...\n", + " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", + " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", + " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", + " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235.71c\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: 5010.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", @@ -618,20 +618,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.9000E-01 seconds\n", - " Reading cross sections = 8.6000E-02 seconds\n", - " Total time in simulation = 1.0830E+01 seconds\n", - " Time in transport only = 1.0818E+01 seconds\n", - " Time in inactive batches = 1.3590E+00 seconds\n", - " Time in active batches = 9.4710E+00 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 4.2600E-01 seconds\n", + " Reading cross sections = 2.9500E-01 seconds\n", + " Total time in simulation = 1.1986E+01 seconds\n", + " Time in transport only = 1.1977E+01 seconds\n", + " Time in inactive batches = 1.8370E+00 seconds\n", + " Time in active batches = 1.0149E+01 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", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.1234E+01 seconds\n", - " Calculation Rate (inactive) = 9197.94 neutrons/second\n", - " Calculation Rate (active) = 3959.46 neutrons/second\n", + " Total time elapsed = 1.2431E+01 seconds\n", + " Calculation Rate (inactive) = 6804.57 neutrons/second\n", + " Calculation Rate (active) = 3694.95 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -710,7 +710,7 @@ " \t\tmesh\t[1]\n", " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", "\tNuclides =\ttotal \n", - "\tScores =\t[u'fission', u'nu-fission']\n", + "\tScores =\t['fission', 'nu-fission']\n", "\tEstimator =\ttracklength\n", "\n" ] @@ -742,13 +742,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.1508711 ]]\n", + "[[[ 0.1501735 ]]\n", "\n", - " [[ 0.05389822]]\n", + " [[ 0.05936257]]\n", "\n", - " [[ 0.19633 ]]\n", + " [[ 0.21402727]]\n", "\n", - " [[ 0.12963172]]]\n" + " [[ 0.13436703]]]\n" ] } ], @@ -804,8 +804,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 2.34e-04\n", - " 3.54e-05\n", + " 2.20e-04\n", + " 3.31e-05\n", " \n", " \n", " 1\n", @@ -815,8 +815,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 5.71e-04\n", - " 8.62e-05\n", + " 5.37e-04\n", + " 8.06e-05\n", " \n", " \n", " 2\n", @@ -826,8 +826,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 7.03e-05\n", - " 7.05e-06\n", + " 7.43e-05\n", + " 7.91e-06\n", " \n", " \n", " 3\n", @@ -837,8 +837,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 1.87e-04\n", - " 1.76e-05\n", + " 1.97e-04\n", + " 1.96e-05\n", " \n", " \n", " 4\n", @@ -848,8 +848,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 3.67e-04\n", - " 3.61e-05\n", + " 3.52e-04\n", + " 3.39e-05\n", " \n", " \n", " 5\n", @@ -859,8 +859,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 8.94e-04\n", - " 8.80e-05\n", + " 8.57e-04\n", + " 8.26e-05\n", " \n", " \n", " 6\n", @@ -870,8 +870,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.04e-04\n", - " 5.36e-06\n", + " 1.02e-04\n", + " 6.16e-06\n", " \n", " \n", " 7\n", @@ -881,8 +881,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 2.76e-04\n", - " 1.40e-05\n", + " 2.70e-04\n", + " 1.61e-05\n", " \n", " \n", " 8\n", @@ -892,8 +892,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 6.04e-04\n", - " 5.57e-05\n", + " 6.09e-04\n", + " 6.55e-05\n", " \n", " \n", " 9\n", @@ -903,8 +903,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.47e-03\n", - " 1.36e-04\n", + " 1.48e-03\n", + " 1.60e-04\n", " \n", " \n", " 10\n", @@ -914,8 +914,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.41e-04\n", - " 6.69e-06\n", + " 1.38e-04\n", + " 6.74e-06\n", " \n", " \n", " 11\n", @@ -925,8 +925,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 3.72e-04\n", - " 1.82e-05\n", + " 3.65e-04\n", + " 1.88e-05\n", " \n", " \n", " 12\n", @@ -936,8 +936,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 6.45e-04\n", - " 4.59e-05\n", + " 6.23e-04\n", + " 5.16e-05\n", " \n", " \n", " 13\n", @@ -947,8 +947,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.57e-03\n", - " 1.12e-04\n", + " 1.52e-03\n", + " 1.26e-04\n", " \n", " \n", " 14\n", @@ -958,8 +958,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.82e-04\n", - " 9.37e-06\n", + " 1.74e-04\n", + " 9.99e-06\n", " \n", " \n", " 15\n", @@ -969,8 +969,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 4.76e-04\n", - " 2.47e-05\n", + " 4.58e-04\n", + " 2.68e-05\n", " \n", " \n", " 16\n", @@ -980,8 +980,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 7.28e-04\n", - " 7.49e-05\n", + " 6.94e-04\n", + " 8.68e-05\n", " \n", " \n", " 17\n", @@ -991,8 +991,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.77e-03\n", - " 1.83e-04\n", + " 1.69e-03\n", + " 2.12e-04\n", " \n", " \n", " 18\n", @@ -1002,8 +1002,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.81e-04\n", - " 1.04e-05\n", + " 1.75e-04\n", + " 1.10e-05\n", " \n", " \n", " 19\n", @@ -1013,8 +1013,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 4.72e-04\n", - " 2.67e-05\n", + " 4.55e-04\n", + " 2.80e-05\n", " \n", " \n", "\n", @@ -1023,49 +1023,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.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", + "0 1 1 1 0.00e+00 6.25e-07 fission 2.20e-04 \n", + "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.37e-04 \n", + "2 1 1 1 6.25e-07 2.00e+01 fission 7.43e-05 \n", + "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.97e-04 \n", + "4 1 2 1 0.00e+00 6.25e-07 fission 3.52e-04 \n", + "5 1 2 1 0.00e+00 6.25e-07 nu-fission 8.57e-04 \n", + "6 1 2 1 6.25e-07 2.00e+01 fission 1.02e-04 \n", + "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.70e-04 \n", + "8 1 3 1 0.00e+00 6.25e-07 fission 6.09e-04 \n", + "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.48e-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.65e-04 \n", + "12 1 4 1 0.00e+00 6.25e-07 fission 6.23e-04 \n", + "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.52e-03 \n", + "14 1 4 1 6.25e-07 2.00e+01 fission 1.74e-04 \n", + "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.58e-04 \n", + "16 1 5 1 0.00e+00 6.25e-07 fission 6.94e-04 \n", + "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.69e-03 \n", + "18 1 5 1 6.25e-07 2.00e+01 fission 1.75e-04 \n", + "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.55e-04 \n", "\n", " std. dev. \n", " \n", - "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 " + "0 3.31e-05 \n", + "1 8.06e-05 \n", + "2 7.91e-06 \n", + "3 1.96e-05 \n", + "4 3.39e-05 \n", + "5 8.26e-05 \n", + "6 6.16e-06 \n", + "7 1.61e-05 \n", + "8 6.55e-05 \n", + "9 1.60e-04 \n", + "10 6.74e-06 \n", + "11 1.88e-05 \n", + "12 5.16e-05 \n", + "13 1.26e-04 \n", + "14 9.99e-06 \n", + "15 2.68e-05 \n", + "16 8.68e-05 \n", + "17 2.12e-04 \n", + "18 1.10e-05 \n", + "19 2.80e-05 " ] }, "execution_count": 24, @@ -1078,8 +1078,7 @@ "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", + "pd.options.display.float_format = '{:.2e}'.format\n", "\n", "# Print the first twenty rows in the dataframe\n", "df.head(20)" @@ -1094,9 +1093,9 @@ "outputs": [ { "data": { - "image/png": "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\nSWry/wHxFqsYpaO7aQAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAEaCAYAAADpMdsXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+YVdV97/H3Bw21Ta5EQ4KJCEZAnLEmhFrkubGGxkaB\n3IplEiuTNEpue2mVpH1avcYkjdb2XvOjt6ZqrdrQVFInaDr44xqiaIVcM41IRZDcGXQwShCJv4Ak\nYm9E+N4/9gJPzpw5Z+9h5pw5zOf1POdx77XXd+21x8N8Z+0faysiMDMzK2JUoztgZmbNx8nDzMwK\nc/IwM7PCnDzMzKwwJw8zMyvMycPMzApz8rC6krRX0jpJ6yX9u6SZQ7CPn9XYPlHSgsHe71CTdIGk\n6yqUXyHpTxvRJxu5nDys3nZHxPSImAZ8FvjiEOyj1sNL7wbaD2YHkhr1b2dYP5gl6bBG98Hqw8nD\n6k0ly2OAHQc2SF+RtFHSBknnpbJzJT2Qlt8p6QlJ70h/hd8paVUq+0LFnf1imx9NxVcDp6cR0B+X\n1ZekGyR1S7pP0rclzU/bnpb0RUn/DnxE0nslfT+NojoljUn1VkmanpbfJunptNxvnyV9TNKa1Ke/\nl6RUvjDVfRh4f5Wf6zRJ/5bq/tcUe4ukc0r28c+SfrvseI+R9N2038clvT+Vz5b0qKTHJN2fyo6S\ndEf6Wf6bpF9N5VdIWirpe8BSSaMkfTkdz3pJf1Cl39asIsIff+r2AV4H1gE9wE7gfal8PnBfWn4H\nsAUYl9aXAhcD/xs4L5VdAGwD3gocAWwEpqdtP03/bavUJvAB4O5++tcG3JOWx5Elt/lp/WngkpK6\nG4DT0/JfAH+TlleV9OVtwA+r9Rk4CbgbOCzV+zvg48Axqc9HA4cD3wOurdDnK4DHgNFpfz9KsWcA\nd6Q6RwJPAaPKYv8UuDwtC3gzMDa1MSGVvzX991rgz9PybwKPlex/LTA6rf8B8Nm0PDptm9jo754/\ng/s5HLP6ejUi9v9VPhP4BvCrwOnANwEi4gVJq4FfB+4BPg38APh+RNxe0tb9EbErtbU8tbGuZPv7\n+2mz2jWR04FvpZjnJa0q235b2t+RwJiI+F4qvwW4ndpK+9yZ9rcX+DVgbRpxHAE8D5wGrIqIHan+\nbcCUftq9KyJeA16W9CAwIyLulvR3kt4GfATojIh9ZXFrgSWS3pTa2CDpN4HvRsSP0s9hV8nPZn4q\nWyXpaElvSdvuTvsHOAs4pWSkd2Tq95YcPx9rEk4e1jAR8bCksZLGVthcenrrOGAf2UjgF5qosV6t\nzYHanaPO67xxSviIsm2lfVTJ+j9FxOdKK0qaR/4+99fuUuD3gPOBC/sERTwk6Qzgw8DXJf0NsKuf\n/Vb7+Zb+XAR8KiLuz9l3a0K+5mH1duCXkqSTyL6DLwMPAb+bzpe/HfgN4BFJhwNLyH759Uj6s5K2\nPiTprZJ+GTiX7LRO6T4qtkk28vhP/fSvC2hL1z7GAbMqVYqInwI7918jIPsF/d20/Axwalr+aFlo\neZ+7gAfJrqG8Pf1cjpI0AVgDnJHW31ShrVLzJI1Oo4wPkI0oIBsR/UnW5dhUHpT280JELCH7OU8H\nHgZ+Q9LE/f1J1R8iO52GpFnASxHxSoW+3AdclP7fIWlKOl47hHjkYfV2hKR1vPEL/hMREcAd6TTW\nBrJRxqXpVNOfA/8nIv5N0uNkCeWeFPsIsBw4FvhGRDyWygMgIvprcwewT9JjZH/x/21J/zqBDwL/\nF9gKPAr8pLTdEhcAN6VfjD8EFqbyvwZuTxeKv10WU97ndQCSPg+sVHYX12vAxRHxiKQryX6Z7wTW\nV/m5Pg6sJrvmcVVE/Dj9DF6Q1APc0U/cLOBSSXvIkuonIuIlSf+N7P+JgBeAs8mu6/yjpA1kI41P\n9NPm14DjgXUl8edW6bs1IWX/bs2ai6QLgF+LiE8PQdtvjojdko4m++v//RHxwiC0O2R9rrLPXyFL\nntMjourzL2ZFeORh1tc9kt4KvInsr/iDThyNIOlMslNR/8uJwwabRx5mZlaYL5ib5aTsIcFL0kNy\nP5P0D8oeWFwh6aeSVuqNBwVnSuqStDM9aPeBknYuVPYQ4k8lbU7XF/Zv+4CkrZL+VNLzkrZJurAB\nh2tWlZOHWTHzgTOBE4FzgBXAZ8gerDsM+LSkd5E9n3JVRBwFXAJ0pjuhIHuGY25EHEl2kf0aSdNK\n9nEM2d1g7wJ+H/i7/UnJbLhw8jAr5rqIeCkitpPduromIh5PD8jdQXar68eBb0fEfQAR8a/AvwNz\n0/p3IuKZtPwQsJLsNuL9XgP+MiL2RsR3gFeAqXU5OrOcnDzMinm+ZPk/Kqy/BZgInCdpR/rsJHva\n/Z0AkuYomxPr5bRtDtnIZb+Xy54EfzW1azZs+G4rs8EVZPNCLY2IReUbJY0G/oVsdHJXROyTdAeD\n8/S7Wd145GE2+P4ZOEfSWenp9iPShfB3kU0UOJrs6ex9kuaQzQVl1lScPMzyyzWXVkRsI7uY/lng\nRbIJAS8hm9H2FbKJHr+VnnQ/H7ir4H7NGi7Xcx6SZgNfJUs2SyLiSxXqXEt27nY3cGFErM8Tm+Yq\n+gowNiJ2pPl0eoD98/A8HBEXDfD4zMxsCNS85pHm2rme7PbE58imjb6rdJK1NPSeFBFTJJ0G3AjM\nrBUraTzwIfpO1bx5/7TdZmY2/OQ5bTUD6I2ILRGxB1gGzCurM49s6mciYg0wJs1IWiv2GuDSCvv0\nxUMzs2EsT/I4lmx20f2eTWV56vQbq+z1mFsjYmOFfR6v7LWYqySdnqOPZmZWR0N1q27VkUOawvqz\nZKesymOeI3v95U5l74G+U1JrP+8NMDOzBsiTPLYBE0rWx6ey8jrHVagzup/YSWTz/W9I8/2PBx6V\nNCPNYLoTICLWSXqKbCqI0teLIsl3oJiZDbGIqDgYyJM81gKT011Q28luLVxQVudu4GLgtvTynV3p\n/c8vVYqNiB6y+XuAbMI5svcN7FT2StId6R74E4DJZC/aqXRQObpvRbW1tdHZ2dnobpjl1tLSQk9P\nT6O7ccjJ/ravrGbyiIi9khaTzb+z/3bbHkmLss1xc0SskDRX0mayW3UXVouttBveOG11BnCVpNfI\n3v62KCJ25T1YMzMbermueUTEvZRNzBYRN5WtL84bW6HOCSXLy8le02lm1q/Vq1ezevVqADZt2sSV\nV14JwKxZs5g1a1bD+jVSeG4r66OlpaXRXTCrqTRJPPjggweSh9WHpyexPlpbWxvdBbNC3v72tze6\nCyOOk4eZNT2PluvPycPMmp5Hy/Xn5GFmZoU5eZiZWWFOHmZmVpiTh5mZFebkYWZNr7u7u9FdGHGc\nPMys6Xleq/pz8jAzs8I8PYmZNaXSua2WL1/uua3qzMnDzJpSaZLYuHGj57aqM5+2MrOm9+KLLza6\nCyOOk4eZmRWWK3lImi1pk6QnJV3WT51rJfVKWi9pWt5YSX8maZ+ko0vKLk9t9Ug6ayAHZmYjh2fV\nrb+a1zwkjQKuB84EngPWSrorIjaV1JkDTIqIKZJOA24EZtaKlTQe+BCwpaStFuA8oIXs3eYPSJoS\nfuesmZXwBfPGynPBfAbQGxFbACQtA+YBm0rqzAOWAkTEGkljJI0D3l0j9hrgUrJ3oJe2tSwiXgee\nkdSb+rBmYIdoZoei0iRx2223+YJ5neU5bXUssLVk/dlUlqdOv7GSzgG2RsTGGm1tq7A/MzNroKG6\nVVdVN0q/DHyW7JSVmVlhfod5Y+VJHtuACSXr41NZeZ3jKtQZ3U/sJOB4YIMkpfJ1kmbk3B8AbW1t\nB5ZbWlr8QphB0tXV1egumOVy4oknAjB16tQDy8899xwdHR2N7FbT6u7uzj3Vi2pdh5Z0GPAE2UXv\n7cAjwIKI6CmpMxe4OCI+LGkm8NWImJknNsU/DUyPiJ2SWoFbgdPITlfdD/S5YC7J19CHSEdHB+3t\n7Y3uhlluLS0tnt9qCEgiIiqeSao58oiIvZIWAyvJrpEsiYgeSYuyzXFzRKyQNFfSZmA3sLBabKXd\nkE51RUS3pNuBbmAPcJGzhJlV41t16y/XNY+IuBeYWlZ2U9n64ryxFeqcULZ+NXB1nr6Z2chUes3j\noYce8jWPOqt52mq48mmroePTVjYcZZdHi/PviYGrdtrK05OYWVOIiH4/cEWVbTYUnDzM7BAwq9Ed\nGHGcPMzsEDCr0R0YcZw8zMysMCcPM2t68+eXz3JkQ83Jw8yaXlubk0e9OXmYmVlhTh5mZlaYk4eZ\nmRXm5GFmZoU5eZhZ0+vsPKXRXRhxnDzMrOktX+7kUW9OHmZmVpiTh5mZFZYreUiaLWmTpCclXdZP\nnWsl9UpaL2larVhJV0naIOkxSfdKOiaVT5T0qqR16XPDwR6kmZkNrprJQ9Io4HrgbOBkYIGkk8rq\nzAEmRcQUYBFwY47YL0fEeyPifcC3gStKmtwcEdPT56KDOkIzMxt0eUYeM4DeiNgSEXuAZcC8sjrz\ngKUAEbEGGCNpXLXYiHilJP7NwL6S9YG99cXMRiTPbVV/eZLHscDWkvVnU1meOlVjJf2VpB8B7cAX\nSuodn05ZrZJ0eo4+mtkI5rmt6m+oLpjnGjlExOcjYgJwK/CpVLwdmBAR04E/AzokvWVoumlmZgNx\neI4624AJJevjU1l5neMq1BmdIxagA1gBXBkRrwGvAUTEOklPAScC68qD2traDiy3tLTQ2tqa43Cs\nlq6urkZ3wawQf2cHR3d3Nz09Pbnq5kkea4HJkiaSjQrOBxaU1bkbuBi4TdJMYFdEPC/ppf5iJU2O\niM0p/lygJ5WPBXZExD5JJwCTgR9W6lhnZ2eug7Ti2tvbG90Fs0L8nR18Uv8nkWomj4jYK2kxsJLs\nNNeSiOiRtCjbHDdHxApJcyVtBnYDC6vFpqa/KOlEsgvlW4A/TOVnAFdJei1tWxQRu4oftpmZDRVF\nRKP7MCCSoln7Ptx1dHT4rzhrKm1tGz2/1RCQRERUHH74CXMza3qe26r+nDzMzKwwJw8zMyvMycPM\nzApz8jAzs8KcPMys6Xluq/pz8jCzpue5rerPycPMzApz8jAzs8KcPMzMrDAnDzMzK8zJw8yanue1\nqj8nDzNrep7bqv6cPMzMrDAnDzMzKyxX8pA0W9ImSU9KuqyfOtdK6pW0XtK0WrGSrpK0QdJjku6V\ndEzJtstTWz2SzjqYAzQzs8FXM3lIGgVcD5wNnAwskHRSWZ05wKSImAIsAm7MEfvliHhvRLwP+DZw\nRYppBc4DWoA5wA2q9i5EMzOruzwjjxlAb0RsiYg9wDJgXlmdecBSgIhYA4yRNK5abES8UhL/ZrJX\nzgKcAyyLiNcj4hmgN7VjZlaR57aqvzzJ41hga8n6s6ksT52qsZL+StKPgHbgC/20ta3C/szMDvDc\nVvU3VBfMc51miojPR8QE4FbgU0PUFzMzG2SH56izDZhQsj4+lZXXOa5CndE5YgE6yK57XFmlrT7a\n2toOLLe0tNDa2tr/UVhuXV1dje6CWSH+zg6O7u5uenp6ctXNkzzWApMlTQS2A+cDC8rq3A1cDNwm\naSawKyKel/RSf7GSJkfE5hR/LrCppK1bJV1DdrpqMvBIpY51dnbmOkgrrr29vdFdMCvE39nBV+1e\npZrJIyL2SloMrCQ7zbUkInokLco2x80RsULSXEmbgd3AwmqxqekvSjqR7EL5FuAPU0y3pNuBbmAP\ncFFExICO3MzMhoSa9feyJOeUIdLR0eG/4qyptLVt9PxWQ0ASEVFx+OEnzM2s6Xluq/pz8jAzs8Kc\nPMzMrDAnDzMzK8zJw8zMCnPyMLOm57mt6s/Jw8yanue2qj8nDzMzK8zJw8zMCnPyMDOzwpw8zMys\nMCcPM2t6nteq/pw8zKzpeW6r+nPyMDOzwpw8zMyssFzJQ9JsSZskPSnpsn7qXCupV9J6SdNqxUr6\nsqSeVL9T0pGpfKKkVyWtS58bDvYgzcxscNVMHpJGAdcDZwMnAwsknVRWZw4wKSKmAIuAG3PErgRO\njohpQC9weUmTmyNievpcdDAHaGZmgy/PyGMG0BsRWyJiD7AMmFdWZx6wFCAi1gBjJI2rFhsRD0TE\nvhT/MDC+pL3+X5xrZlbGc1vVX57kcSywtWT92VSWp06eWIBPAt8pWT8+nbJaJen0HH00sxHMc1vV\n3+FD1G7ukYOkzwF7IqIjFT0HTIiInZKmA3dKao2IV4aio2ZmVlye5LENmFCyPj6Vldc5rkKd0dVi\nJV0IzAU+uL8snd7amZbXSXoKOBFYV96xtra2A8stLS20trbmOByrpaurq9FdMCvE39nB0d3dTU9P\nT666eZLHWmCypInAduB8YEFZnbuBi4HbJM0EdkXE85Je6i9W0mzgUuCMiPj5/oYkjQV2RMQ+SScA\nk4EfVupYZ2dnroO04trb2xvdBbNC/J0dfFL/J5FqJo+I2CtpMdndUaOAJRHRI2lRtjlujogVkuZK\n2gzsBhZWi01NX0c2Mrk/dfDhdGfVGcBVkl4D9gGLImLXgI7czMyGhCKi0X0YEEnRrH0f7jo6OvxX\nnDWVtraNnt9qCEgiIioOP/yEuZk1Pc9tVX9OHmZmVpiTh5mZFebkYWZmhTl5mJlZYU4eZtb0PLdV\n/Tl5mFnT89xW9efkYWZmhTl5mJlZYU4eZmZWmJOHmZkV5uRhZk3P81rVn5OHmTU9z21Vf04eZmZW\nmJOHmZkVlit5SJotaZOkJyVd1k+dayX1SlovaVqtWElfltST6ndKOrJk2+WprR5JZx3MAZqZ2eCr\nmTwkjQKuB84GTgYWSDqprM4cYFJETAEWATfmiF0JnBwR04Be4PIU0wqcB7QAc4AbVO1diGZmVnd5\nRh4zgN6I2BIRe4BlwLyyOvOApQARsQYYI2lctdiIeCAi9qX4h4HxafkcYFlEvB4Rz5AllhkDPUAz\nO/R5bqv6y5M8jgW2lqw/m8ry1MkTC/BJYEU/bW3rJ8bMDPDcVo0wVBfMc59mkvQ5YE9EfHOI+mJm\nZoPs8Bx1tgETStbHp7LyOsdVqDO6WqykC4G5wAdztNVHW1vbgeWWlhZaW1urHojl09XV1egumBXi\n7+zg6O7upqenJ1fdPMljLTBZ0kRgO3A+sKCszt3AxcBtkmYCuyLieUkv9RcraTZwKXBGRPy8rK1b\nJV1DdrpqMvBIpY51dnbmOkgrrr29vdFdMCvE39nBV+1epZrJIyL2SlpMdnfUKGBJRPRIWpRtjpsj\nYoWkuZI2A7uBhdViU9PXkY1M7k8dfDgiLoqIbkm3A93AHuCiiIiBHbqZmQ0FNevvZUnOKUOko6PD\nf8VZU2lr2+j5rYaAJCKi4vDDT5ibWdPz3Fb15+RhZmaFOXlYH93d3Y3ugpkNc04e1kfeW/XMbORy\n8jAzs8LyPOdhI8Dq1atZvXo1AMuXL+fKK68EYNasWcyaNath/bKR5+ijYefO4nFFpk896ijYsaP4\nPuwNvlXX+mhra/MDmNYwEhT9p1309vKB7GMk8q26VsiLL77Y6C6Y2TDn5GF97Nq1q9FdMLNhzsnD\n+tizZ0+ju2Bmw5wvmBvwixfMN23a5AvmZlaVRx5mZlaY77ayPsaOHctLL73U6G7YCOW7rYaPandb\n+bSVAb942urll1/2aSszq8ojjxGq2kteqvHP3IaaRx7Dx0E/5yFptqRNkp6UdFk/da6V1CtpvaRp\ntWIlfUTSDyTtlTS9pHyipFclrUufG/IfquUVEf1+4Ioq28zMcpy2kjQKuB44E3gOWCvprojYVFJn\nDjApIqZIOg24EZhZI3Yj8DvATRV2uzkiplcot7qY1egOmNkwl2fkMQPojYgtEbEHWAbMK6szD1gK\nEBFrgDGSxlWLjYgnIqIXqDQkGtg5FRsksxrdATMb5vIkj2OBrSXrz6ayPHXyxFZyfDpltUrS6Tnq\nm5lZHQ3V3VYHM3J4DpgQETvTtZA7JbVGxCuD1DczMztIeZLHNmBCyfr4VFZe57gKdUbniP0F6fTW\nzrS8TtJTwInAuvK6bW1tB5ZbWlpobW2tcSiWx6mnjqGj4yeN7oaNWO10dHQUiujq6hryfYwE3d3d\nuV8GV/NWXUmHAU+QXfTeDjwCLIiInpI6c4GLI+LDkmYCX42ImTljVwGXRMSjaX0ssCMi9kk6Afgu\ncEpE/MJsfb5Vd+gUve3RbDD5Vt3h46AeEoyIvZIWAyvJrpEsiYgeSYuyzXFzRKyQNFfSZmA3sLBa\nbOrUucB1wFjgHknrI2IOcAZwlaTXgH3AovLEYWZmjZXrmkdE3AtMLSu7qWx9cd7YVH4ncGeF8uXA\n8jz9MjOzxvDEiGZmVpiTh5mZFebkYX10dp7S6C6Y2TDn5GF9LF/u5GFm1Tl5mJlZYU4eZmZWmJOH\nmZkV5uRhZmaFOXlYH/Pnb2x0F8xsmHPysD7a2pw8zKw6Jw8zMyvMycPMzApz8jAzs8KcPMzMrDAn\nD+vDc1uZWS25koek2ZI2SXpS0mX91LlWUq+k9ZKm1YqV9BFJP5C0N72rvLSty1NbPZLOGujB2cB4\nbiszq6Vm8pA0CrgeOBs4GVgg6aSyOnOASRExBVgE3JgjdiPwO2SvmS1tqwU4D2gB5gA3SKr4GkQz\nM2uMPCOPGUBvRGyJiD3AMmBeWZ15wFKAiFgDjJE0rlpsRDwREb1AeWKYByyLiNcj4hmgN7VjZmbD\nRJ7kcSywtWT92VSWp06e2Fr725YjxszM6mioLpj7NJOZ2SHs8Bx1tgETStbHp7LyOsdVqDM6R2yl\n/VVqq4+2trYDyy0tLbS2ttZo2vI49dQxdHT8pNHdsBGrnY6OjkIRXV1dQ76PkaC7u5uenp5cdRUR\n1StIhwFPAGcC24FHgAUR0VNSZy5wcUR8WNJM4KsRMTNn7Crgkoh4NK23ArcCp5GdrrofmBJlHZVU\nXmSDpKOjg/b29kZ3w0YoCYr+0y76nR3IPkYiSURExTNJNUceEbFX0mJgJdlpriUR0SNpUbY5bo6I\nFZLmStoM7AYWVotNnToXuA4YC9wjaX1EzImIbkm3A93AHuAiZwkzs+Elz2krIuJeYGpZ2U1l64vz\nxqbyO4E7+4m5Grg6T9/MzKz+/IS5mZkV5uRhZmaFOXlYH57bysxqcfKwPjy3lZnV4uRhZmaFOXmY\nmVlhTh5mZlaYk4eZmRXm5HGIO/robCqGIh8oHnP00Y09TjOrr5pzWw1Xntsqn3rMEzTQ/ZhVVK93\nv/kLW1O1ua088jCzYUVE9ou9wKfj1lsL1RdOHAfLycPMzApz8jAzs8KcPMzMrDAnDzMzKyxX8pA0\nW9ImSU9KuqyfOtdK6pW0XtK0WrGSjpK0UtITku6TNCaVT5T0qqR16XPDwR6kmZkNrprJQ9Io4Hrg\nbOBkYIGkk8rqzAEmRcQUYBFwY47YzwAPRMRU4EHg8pImN0fE9PS56GAO0MzMBl+ekccMoDcitkTE\nHmAZMK+szjxgKUBErAHGSBpXI3YecEtavgU4t6S9Ot3obWZmA5EneRwLbC1ZfzaV5alTLXZcRDwP\nEBE/Bt5RUu/4dMpqlaTTc/TRzMzqKNc7zAdgICOH/U/tbAcmRMROSdOBOyW1RsQrg9c9MzM7GHmS\nxzZgQsn6+FRWXue4CnVGV4n9saRxEfG8pGOAFwAi4jXgtbS8TtJTwInAuvKOtbW1HVhuaWmhtbU1\nx+GMNO10dHQUiujq6qrLfswqq8d31t/XSrq7u+np6clVt+bcVpIOA54AziQbFTwCLIiInpI6c4GL\nI+LDkmYCX42ImdViJX0J2BERX0p3YR0VEZ+RNDaV75N0AvBd4JSI2FXWL89tlYPntrJmU4/vrL+v\n+VSb26rmyCMi9kpaDKwku0ayJP3yX5RtjpsjYoWkuZI2A7uBhdViU9NfAm6X9ElgC3BeKj8DuErS\na8A+YFF54jAzs8bKdc0jIu4FppaV3VS2vjhvbCrfAfxWhfLlwPI8/TIzs8bwE+ZmZlbYUN1tZWY2\nYMVf6dHOxz6Wv/ZRRxVt38o5eZjZsDKQC9m+AF5/Pm1lZmaFOXmYmVlhTh5mZlZYzYcEhys/JJhT\n8SuPA+f/H9YgvuYxNKo9JOiRxyFORPavqsCn49ZbC8cI/8u1xpk/f2OjuzDiOHmYWdNra3PyqDcn\nDzMzK8zJw8zMCnPyMDOzwvyE+Qgw1FM9gKd7MBtpPPI4xBW8aerA7Y5FY3bsaOxx2sjW2XlKo7sw\n4vg5D+vD98xbs/F3dmgc9HMekmZL2iTpyfTWv0p1rpXUK2m9pGm1YiUdJWmlpCck3SdpTMm2y1Nb\nPZLOyn+oZmZWDzWTh6RRwPXA2cDJwAJJJ5XVmQNMiogpwCLgxhyxnwEeiIipwIPA5Smmleytgi3A\nHOAGqZ6PSZuZWS15Rh4zgN6I2BIRe4BlwLyyOvOApQARsQYYI2lcjdh5wC1p+Rbg3LR8DrAsIl6P\niGeA3tSOmZkNE3mSx7HA1pL1Z1NZnjrVYsdFxPMAEfFj4B39tLWtwv5sCJ100m2N7oJZH5L6/UC1\nbTYUhupuq4H8H/Plrjqq9g9x06bz/Q/Rhp2I6Pczf/78frfZ0MjznMc2YELJ+vhUVl7nuAp1RleJ\n/bGkcRHxvKRjgBdqtNWHf5nVn3/mNlz5u1lfeZLHWmCypInAduB8YEFZnbuBi4HbJM0EdqWk8FKV\n2LuBC4EvARcAd5WU3yrpGrLTVZOBR8o71d/tY2ZmNvRqJo+I2CtpMbCS7DTXkojokbQo2xw3R8QK\nSXMlbQZ2AwurxaamvwTcLumTwBayO6yIiG5JtwPdwB7gIj/QYWY2vDTtQ4JmZtY4np7kECXpU5K6\nJb0s6b8PIP57Q9Evs4GQNFXSY5IelXTCQL6fkv5C0geHon8jkUcehyhJPcCZEfFco/tidrDS7BSH\nRcT/bHRfLOORxyFI0t8DJwDfkfQnkq5L5R+VtDH9Bbc6lbVKWiNpXZpaZlIq/1lJe19JcRsknZfK\nPiBplaRvpWlkvlH3A7WmIWliGgnfLOkHku6VdET6Dk1Pdd4m6ekKsXOAPwH+SNK/prKfpf8eI+m7\n6fv7uKQv+AxtAAAEMElEQVT3Sxol6etpfYOkP051vy5pflo+M8VskPQ1SW9K5U9LujKNcDZIOrE+\nP6Hm4+RxCIqIPyK7vXkWsJM3nqH5c+CsiHgf2ZP8AH8IfDUipgOnkj3Iyf4YSW3AeyLiFOBDwFfS\n7AEA04BPA63AJEn/eSiPy5reZOC6iPhVYBfQRt/nu/qcComI75BNeXRNRJxZVq8duDd9f98LrCf7\nXh4bEe+JiPcCXy9tT9IvpbKPpu1vAv6opMoLEfFraZ+XDvRgD3VOHoe28tuZvwfcIun3eeNOu+8D\nn5N0KXB8RPy8LOb9wDcBIuIFYDXw62nbIxGxPd0Ntx44ftCPwA4lT0fE/peNr2Nwvi9rgYWSvkD2\nR85u4IfAuyX9raSzgZ+VxUwFfhgRT6X1W4AzSrbfkf77KDBxEPp4SHLyGEEi4iLgc2QPYT4q6aiI\n+Cbw28D/A1ZImlWjmdKEVJpo9uKXi1l1lb4vr/PG76Ej9m+U9I/p9Oo91RqMiIfIfvFvA/5J0scj\nYhfZKGQ12cj6HyqEVntObH8//Z2uwsnj0NXnH4ekEyJibURcQfZE/3GS3h0RT0fEdWQPar6nLP4h\n4HfTeeS3A79BhYc2zXKo9Av7GbLTpQAf3V8YEZ+MiPdFxH+p1pakCWSnmZYAXwOmSzqa7OL6HcDn\ngellsU8AEyWdkNZ/jyzRWAHOqoeuSrfRfUXSlLT8QEQ8LukySb9H9kDmduB/lMZHxB1p1oANwD7g\n0oh4QVJLjv2Zlap0feOvgW9J+gPg2wNoaxZwqaQ9ZKenPkE2pdHXlb0SIshe/3AgJiJ+Lmkh8C+S\nDiM79XVTP320fvhWXTMzK8ynrczMrDAnDzMzK8zJw8zMCnPyMDOzwpw8zMysMCcPMzMrzMnDzMwK\nc/Iwa7D0oJpZU3HyMBsASb8i6Z40/9Ljabr7UyV1pantH5b0Zkm/lOZpejxN8z0rxV8g6a40xfgD\nqewSSY+k+CsaeXxmtXh6ErOBmQ1s2z/3kqQjgcfIpvleJ+ktZJNN/jGwLyLeI2kqsLJkipj3AadE\nxE8kfQiYEhEzJAm4W9LpEeE3Otqw5JGH2cBsBD4k6WpJpwMTgOciYh1ARLwSEXuB04F/TmVPkE0E\nuP8FQ/dHxE/S8lmpvXVk05VPBfYnGbNhxyMPswGIiN70Bry5wF8Cq3KGls4su7us/OqIqDR9uNmw\n45GH2QBIeifwHxHRQTYz7GnAOyWdmra/JV0Ifwj4WCo7kexdKk9UaPI+4JOS3pzqvitNgW82LHnk\nYTYwp5BNcb8PeI3sNaYCrpf0y8CrwG8BNwB/L+lxsmnvL4iIPdlljTdExP2STgK+n7b9DPg48GKd\njsesEE/JbmZmhfm0lZmZFebkYWZmhTl5mJlZYU4eZmZWmJOHmZkV5uRhZmaFOXmYmVlhTh5mZlbY\n/wf1F+RhutXrZwAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1119,7 +1118,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 26, @@ -1128,9 +1127,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\nJ/KLgSwAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1175,8 +1174,8 @@ "\tName =\tcell tally\n", "\tFilters =\t\n", " \t\tcell\t[10000]\n", - "\tNuclides =\tU-235 U-238 \n", - "\tScores =\t[u'scatter-Y0,0', u'scatter-Y1,-1', u'scatter-Y1,0', u'scatter-Y1,1', u'scatter-Y2,-2', u'scatter-Y2,-1', u'scatter-Y2,0', u'scatter-Y2,1', u'scatter-Y2,2']\n", + "\tNuclides =\tU235 U238 \n", + "\tScores =\t['scatter-Y0,0', 'scatter-Y1,-1', 'scatter-Y1,0', 'scatter-Y1,1', 'scatter-Y2,-2', 'scatter-Y2,-1', 'scatter-Y2,0', 'scatter-Y2,1', 'scatter-Y2,2']\n", "\tEstimator =\tanalog\n", "\n" ] @@ -1216,146 +1215,146 @@ " \n", " 0\n", " 10000\n", - " U-235\n", + " U235\n", " scatter-Y0,0\n", - " 3.86e-02\n", - " 1.11e-03\n", + " 3.84e-02\n", + " 1.32e-03\n", " \n", " \n", " 1\n", " 10000\n", - " U-235\n", + " U235\n", " scatter-Y1,-1\n", - " 2.75e-04\n", - " 2.96e-04\n", + " 3.61e-04\n", + " 3.13e-04\n", " \n", " \n", " 2\n", " 10000\n", - " U-235\n", + " U235\n", " scatter-Y1,0\n", - " -5.55e-05\n", - " 4.33e-04\n", + " -2.38e-04\n", + " 4.69e-04\n", " \n", " \n", " 3\n", " 10000\n", - " U-235\n", + " U235\n", " scatter-Y1,1\n", - " -4.22e-04\n", - " 3.51e-04\n", + " -5.08e-04\n", + " 3.83e-04\n", " \n", " \n", " 4\n", " 10000\n", - " U-235\n", + " U235\n", " scatter-Y2,-2\n", - " 5.88e-05\n", - " 2.04e-04\n", + " 6.68e-05\n", + " 2.46e-04\n", " \n", " \n", " 5\n", " 10000\n", - " U-235\n", + " U235\n", " scatter-Y2,-1\n", - " 1.00e-04\n", - " 2.49e-04\n", + " 6.47e-06\n", + " 2.84e-04\n", " \n", " \n", " 6\n", " 10000\n", - " U-235\n", + " U235\n", " scatter-Y2,0\n", - " -8.09e-05\n", - " 1.59e-04\n", + " -1.41e-04\n", + " 1.75e-04\n", " \n", " \n", " 7\n", " 10000\n", - " U-235\n", + " U235\n", " scatter-Y2,1\n", - " 1.93e-04\n", - " 2.14e-04\n", + " 1.61e-04\n", + " 2.33e-04\n", " \n", " \n", " 8\n", " 10000\n", - " U-235\n", + " U235\n", " scatter-Y2,2\n", - " 1.12e-04\n", - " 1.86e-04\n", + " -1.80e-05\n", + " 1.97e-04\n", " \n", " \n", " 9\n", " 10000\n", - " U-238\n", + " U238\n", " scatter-Y0,0\n", - " 2.34e+00\n", - " 1.34e-02\n", + " 2.33e+00\n", + " 1.35e-02\n", " \n", " \n", " 10\n", " 10000\n", - " U-238\n", + " U238\n", " scatter-Y1,-1\n", - " 2.32e-02\n", - " 2.97e-03\n", + " 2.53e-02\n", + " 3.23e-03\n", " \n", " \n", " 11\n", " 10000\n", - " U-238\n", + " U238\n", " scatter-Y1,0\n", - " 7.50e-04\n", - " 2.55e-03\n", + " 7.10e-04\n", + " 2.92e-03\n", " \n", " \n", " 12\n", " 10000\n", - " U-238\n", + " U238\n", " scatter-Y1,1\n", - " -2.73e-02\n", - " 3.28e-03\n", + " -2.49e-02\n", + " 3.52e-03\n", " \n", " \n", " 13\n", " 10000\n", - " U-238\n", + " U238\n", " scatter-Y2,-2\n", - " -2.36e-03\n", - " 1.21e-03\n", + " -1.43e-03\n", + " 1.17e-03\n", " \n", " \n", " 14\n", " 10000\n", - " U-238\n", + " U238\n", " scatter-Y2,-1\n", - " -1.80e-04\n", - " 1.49e-03\n", + " 6.84e-04\n", + " 1.63e-03\n", " \n", " \n", " 15\n", " 10000\n", - " U-238\n", + " U238\n", " scatter-Y2,0\n", - " 3.23e-03\n", - " 2.25e-03\n", + " 2.85e-03\n", + " 2.63e-03\n", " \n", " \n", " 16\n", " 10000\n", - " U-238\n", + " U238\n", " scatter-Y2,1\n", - " 3.75e-03\n", - " 1.97e-03\n", + " 3.97e-03\n", + " 2.24e-03\n", " \n", " \n", " 17\n", " 10000\n", - " U-238\n", + " U238\n", " scatter-Y2,2\n", - " 2.07e-03\n", - " 1.60e-03\n", + " 2.26e-03\n", + " 1.85e-03\n", " \n", " \n", "\n", @@ -1363,24 +1362,24 @@ ], "text/plain": [ " cell nuclide score mean std. dev.\n", - "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" + "0 10000 U235 scatter-Y0,0 3.84e-02 1.32e-03\n", + "1 10000 U235 scatter-Y1,-1 3.61e-04 3.13e-04\n", + "2 10000 U235 scatter-Y1,0 -2.38e-04 4.69e-04\n", + "3 10000 U235 scatter-Y1,1 -5.08e-04 3.83e-04\n", + "4 10000 U235 scatter-Y2,-2 6.68e-05 2.46e-04\n", + "5 10000 U235 scatter-Y2,-1 6.47e-06 2.84e-04\n", + "6 10000 U235 scatter-Y2,0 -1.41e-04 1.75e-04\n", + "7 10000 U235 scatter-Y2,1 1.61e-04 2.33e-04\n", + "8 10000 U235 scatter-Y2,2 -1.80e-05 1.97e-04\n", + "9 10000 U238 scatter-Y0,0 2.33e+00 1.35e-02\n", + "10 10000 U238 scatter-Y1,-1 2.53e-02 3.23e-03\n", + "11 10000 U238 scatter-Y1,0 7.10e-04 2.92e-03\n", + "12 10000 U238 scatter-Y1,1 -2.49e-02 3.52e-03\n", + "13 10000 U238 scatter-Y2,-2 -1.43e-03 1.17e-03\n", + "14 10000 U238 scatter-Y2,-1 6.84e-04 1.63e-03\n", + "15 10000 U238 scatter-Y2,0 2.85e-03 2.63e-03\n", + "16 10000 U238 scatter-Y2,1 3.97e-03 2.24e-03\n", + "17 10000 U238 scatter-Y2,2 2.26e-03 1.85e-03" ] }, "execution_count": 28, @@ -1414,8 +1413,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00159927 0.01341406]\n", - " [ 0.00018637 0.00111048]]]\n" + "[[[ 0.00185463 0.01350521]\n", + " [ 0.00019723 0.00131654]]]\n" ] } ], @@ -1423,7 +1422,7 @@ "# Get the standard deviations for two of the spherical harmonic\n", "# scattering reaction rates \n", "data = tally.get_values(scores=['scatter-Y2,2', 'scatter-Y0,0'], \n", - " nuclides=['U-238', 'U-235'], value='std_dev')\n", + " nuclides=['U238', 'U235'], value='std_dev')\n", "print(data)" ] }, @@ -1451,7 +1450,7 @@ "\tFilters =\t\n", " \t\tdistribcell\t[10002]\n", "\tNuclides =\ttotal \n", - "\tScores =\t[u'absorption', u'scatter']\n", + "\tScores =\t['absorption', 'scatter']\n", "\tEstimator =\ttracklength\n", "\n" ] @@ -1483,7 +1482,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.05767856]]]\n" + "[[[ 0.05468423]]]\n" ] } ], @@ -1566,8 +1565,8 @@ " 10002\n", " 279\n", " absorption\n", - " 8.19e-05\n", - " 7.82e-06\n", + " 8.72e-05\n", + " 8.13e-06\n", " \n", " \n", " 559\n", @@ -1581,8 +1580,8 @@ " 10002\n", " 279\n", " scatter\n", - " 1.33e-02\n", - " 6.19e-04\n", + " 1.37e-02\n", + " 6.98e-04\n", " \n", " \n", " 560\n", @@ -1596,8 +1595,8 @@ " 10002\n", " 280\n", " absorption\n", - " 1.00e-04\n", - " 7.93e-06\n", + " 1.03e-04\n", + " 9.17e-06\n", " \n", " \n", " 561\n", @@ -1611,8 +1610,8 @@ " 10002\n", " 280\n", " scatter\n", - " 1.40e-02\n", - " 5.61e-04\n", + " 1.41e-02\n", + " 6.26e-04\n", " \n", " \n", " 562\n", @@ -1626,8 +1625,8 @@ " 10002\n", " 281\n", " absorption\n", - " 9.52e-05\n", - " 7.08e-06\n", + " 9.41e-05\n", + " 8.40e-06\n", " \n", " \n", " 563\n", @@ -1641,8 +1640,8 @@ " 10002\n", " 281\n", " scatter\n", - " 1.51e-02\n", - " 6.50e-04\n", + " 1.50e-02\n", + " 6.92e-04\n", " \n", " \n", " 564\n", @@ -1656,8 +1655,8 @@ " 10002\n", " 282\n", " absorption\n", - " 9.85e-05\n", - " 9.47e-06\n", + " 9.56e-05\n", + " 1.03e-05\n", " \n", " \n", " 565\n", @@ -1671,8 +1670,8 @@ " 10002\n", " 282\n", " scatter\n", - " 1.53e-02\n", - " 4.63e-04\n", + " 1.52e-02\n", + " 5.37e-04\n", " \n", " \n", " 566\n", @@ -1686,8 +1685,8 @@ " 10002\n", " 283\n", " absorption\n", - " 1.08e-04\n", - " 1.34e-05\n", + " 1.06e-04\n", + " 1.49e-05\n", " \n", " \n", " 567\n", @@ -1701,8 +1700,8 @@ " 10002\n", " 283\n", " scatter\n", - " 1.65e-02\n", - " 7.04e-04\n", + " 1.64e-02\n", + " 8.14e-04\n", " \n", " \n", " 568\n", @@ -1716,8 +1715,8 @@ " 10002\n", " 284\n", " absorption\n", - " 1.13e-04\n", - " 7.91e-06\n", + " 1.16e-04\n", + " 9.02e-06\n", " \n", " \n", " 569\n", @@ -1731,8 +1730,8 @@ " 10002\n", " 284\n", " scatter\n", - " 1.67e-02\n", - " 5.51e-04\n", + " 1.64e-02\n", + " 6.00e-04\n", " \n", " \n", " 570\n", @@ -1746,8 +1745,8 @@ " 10002\n", " 285\n", " absorption\n", - " 1.23e-04\n", - " 9.53e-06\n", + " 1.25e-04\n", + " 1.12e-05\n", " \n", " \n", " 571\n", @@ -1761,8 +1760,8 @@ " 10002\n", " 285\n", " scatter\n", - " 1.88e-02\n", - " 7.25e-04\n", + " 1.87e-02\n", + " 8.26e-04\n", " \n", " \n", " 572\n", @@ -1776,8 +1775,8 @@ " 10002\n", " 286\n", " absorption\n", - " 1.44e-04\n", - " 1.34e-05\n", + " 1.47e-04\n", + " 1.49e-05\n", " \n", " \n", " 573\n", @@ -1791,8 +1790,8 @@ " 10002\n", " 286\n", " scatter\n", - " 1.90e-02\n", - " 7.07e-04\n", + " 1.94e-02\n", + " 7.71e-04\n", " \n", " \n", " 574\n", @@ -1806,8 +1805,8 @@ " 10002\n", " 287\n", " absorption\n", - " 1.26e-04\n", - " 8.66e-06\n", + " 1.31e-04\n", + " 9.84e-06\n", " \n", " \n", " 575\n", @@ -1822,7 +1821,7 @@ " 287\n", " scatter\n", " 1.97e-02\n", - " 7.23e-04\n", + " 7.93e-04\n", " \n", " \n", " 576\n", @@ -1836,8 +1835,8 @@ " 10002\n", " 288\n", " absorption\n", - " 1.25e-04\n", - " 9.59e-06\n", + " 1.23e-04\n", + " 1.07e-05\n", " \n", " \n", " 577\n", @@ -1851,8 +1850,8 @@ " 10002\n", " 288\n", " scatter\n", - " 2.01e-02\n", - " 6.75e-04\n", + " 1.97e-02\n", + " 7.34e-04\n", " \n", " \n", "\n", @@ -1886,26 +1885,26 @@ " 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 " + "558 8.72e-05 8.13e-06 \n", + "559 1.37e-02 6.98e-04 \n", + "560 1.03e-04 9.17e-06 \n", + "561 1.41e-02 6.26e-04 \n", + "562 9.41e-05 8.40e-06 \n", + "563 1.50e-02 6.92e-04 \n", + "564 9.56e-05 1.03e-05 \n", + "565 1.52e-02 5.37e-04 \n", + "566 1.06e-04 1.49e-05 \n", + "567 1.64e-02 8.14e-04 \n", + "568 1.16e-04 9.02e-06 \n", + "569 1.64e-02 6.00e-04 \n", + "570 1.25e-04 1.12e-05 \n", + "571 1.87e-02 8.26e-04 \n", + "572 1.47e-04 1.49e-05 \n", + "573 1.94e-02 7.71e-04 \n", + "574 1.31e-04 9.84e-06 \n", + "575 1.97e-02 7.93e-04 \n", + "576 1.23e-04 1.07e-05 \n", + "577 1.97e-02 7.34e-04 " ] }, "execution_count": 32, @@ -1958,38 +1957,38 @@ " \n", " \n", " mean\n", - " 4.19e-04\n", - " 2.24e-05\n", + " 4.16e-04\n", + " 2.42e-05\n", " \n", " \n", " std\n", - " 2.42e-04\n", - " 9.14e-06\n", + " 2.39e-04\n", + " 1.03e-05\n", " \n", " \n", " min\n", " 1.90e-05\n", - " 3.44e-06\n", + " 3.80e-06\n", " \n", " \n", " 25%\n", - " 2.02e-04\n", - " 1.56e-05\n", + " 1.99e-04\n", + " 1.61e-05\n", " \n", " \n", " 50%\n", - " 4.05e-04\n", - " 2.20e-05\n", + " 4.09e-04\n", + " 2.37e-05\n", " \n", " \n", " 75%\n", - " 6.07e-04\n", - " 2.89e-05\n", + " 6.00e-04\n", + " 3.08e-05\n", " \n", " \n", " max\n", - " 9.19e-04\n", - " 4.95e-05\n", + " 9.07e-04\n", + " 5.38e-05\n", " \n", " \n", "\n", @@ -2000,13 +1999,13 @@ " \n", " \n", "count 2.89e+02 2.89e+02\n", - "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" + "mean 4.16e-04 2.42e-05\n", + "std 2.39e-04 1.03e-05\n", + "min 1.90e-05 3.80e-06\n", + "25% 1.99e-04 1.61e-05\n", + "50% 4.09e-04 2.37e-05\n", + "75% 6.00e-04 3.08e-05\n", + "max 9.07e-04 5.38e-05" ] }, "execution_count": 33, @@ -2041,7 +2040,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.303583331507\n" + "Mann-Whitney Test p-value: 0.7234916721800682\n" ] } ], @@ -2079,7 +2078,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 6.038663783e-42\n" + "Mann-Whitney Test p-value: 3.5054120724573393e-41\n" ] } ], @@ -2115,7 +2114,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:4: SettingWithCopyWarning: \n", + "/home/romano/miniconda3/envs/default/lib/python3.5/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", @@ -2125,7 +2124,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 36, @@ -2134,9 +2133,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2163,7 +2162,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 37, @@ -2172,9 +2171,9 @@ }, { "data": { - "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", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2207,7 +2206,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index de92c2bcbf..19182aa7aa 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -46,12 +46,12 @@ "outputs": [], "source": [ "# Instantiate some Nuclides\n", - "h1 = openmc.Nuclide('H-1')\n", - "b10 = openmc.Nuclide('B-10')\n", - "o16 = openmc.Nuclide('O-16')\n", - "u235 = openmc.Nuclide('U-235')\n", - "u238 = openmc.Nuclide('U-238')\n", - "zr90 = openmc.Nuclide('Zr-90')" + "h1 = openmc.Nuclide('H1')\n", + "b10 = openmc.Nuclide('B10')\n", + "o16 = openmc.Nuclide('O16')\n", + "u235 = openmc.Nuclide('U235')\n", + "u238 = openmc.Nuclide('U238')\n", + "zr90 = openmc.Nuclide('Zr90')" ] }, { @@ -339,7 +339,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AFBRQpN8J6/ygAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDUtMDVUMTQ6NDE6\nNTUtMDY6MDCnHFu9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA1LTA1VDE0OjQxOjU1LTA2OjAw\n1kHjAQAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AHFwIoGZ/M0BAAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDctMjJUMjE6NDA6\nMjUtMDU6MDBskW7/AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA3LTIyVDIxOjQwOjI1LTA1OjAw\nHczWQwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -446,28 +446,28 @@ " 888\n", "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.org/en/latest/license.html\n", + " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", - " Date/Time: 2016-05-05 14:41:55\n", + " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", + " Date/Time: 2016-07-22 21:40:25\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", " ===========================================================================\n", "\n", " Reading settings XML file...\n", - " Reading cross sections XML file...\n", " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", " Reading materials XML file...\n", + " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", + " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", + " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", + " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235.71c\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: 5010.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", @@ -585,20 +585,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.4900E-01 seconds\n", - " Reading cross sections = 1.2100E-01 seconds\n", - " Total time in simulation = 3.4132E+02 seconds\n", - " Time in transport only = 3.4128E+02 seconds\n", - " Time in inactive batches = 1.0748E+01 seconds\n", - " Time in active batches = 3.3057E+02 seconds\n", - " Time synchronizing fission bank = 1.1000E-02 seconds\n", - " Sampling source sites = 1.1000E-02 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 1.9000E-02 seconds\n", - " Total time for finalization = 1.5600E-01 seconds\n", - " Total time elapsed = 3.4196E+02 seconds\n", - " Calculation Rate (inactive) = 4652.03 neutrons/second\n", - " Calculation Rate (active) = 1361.27 neutrons/second\n", + " Total time for initialization = 3.5100E-01 seconds\n", + " Reading cross sections = 1.8600E-01 seconds\n", + " Total time in simulation = 3.1672E+02 seconds\n", + " Time in transport only = 3.1667E+02 seconds\n", + " Time in inactive batches = 1.0782E+01 seconds\n", + " Time in active batches = 3.0594E+02 seconds\n", + " Time synchronizing fission bank = 2.1000E-02 seconds\n", + " Sampling source sites = 1.2000E-02 seconds\n", + " SEND/RECV source sites = 9.0000E-03 seconds\n", + " Time accumulating tallies = 1.7000E-02 seconds\n", + " Total time for finalization = 1.8100E-01 seconds\n", + " Total time elapsed = 3.1729E+02 seconds\n", + " Calculation Rate (inactive) = 4637.36 neutrons/second\n", + " Calculation Rate (active) = 1470.89 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -855,7 +855,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -866,7 +866,7 @@ "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -898,7 +898,7 @@ "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEACAYAAACgS0HpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEupJREFUeJzt3X+IZWd9x/H3N5sfatQ1WnZuuxszsSFxprSVgNHWlhZc\ntkkKmzQLQXegSVNoIf5CRczaUrEUNgpiLXYFq7WrZBo2Lm0CtSaEFKELNmp+aWaMY3U3m9G5sRoC\nUZruut/+cc/u3p25M/Ps/X1m3y+45Mxzz7nnO8/ezWef8+M5kZlIkrSe80ZdgCSpHgwMSVIRA0OS\nVMTAkCQVMTAkSUUMDElSkXUDIyI+FxHNiHiire2SiHggIp6KiPsjYnPbe3siYiEi5iNiR1v71RHx\nRER8NyL+tv+/iiRpkEpGGJ8H/mBZ2x3Ag5l5FfAQsAcgIqaBm4Ep4DpgX0REtc2ngT/NzCuBKyNi\n+WdKksbYuoGRmf8JPLes+QZgf7W8H7ixWt4J3J2ZxzPzMLAAXBMRDeAVmfn1ar0vtG0jSaqBbs9h\nbMnMJkBmLgFbqvatwNG29Rartq3AM23tz1RtkqSa6NdJb+cXkaQN7vwut2tGxERmNqvDTc9W7YvA\npW3rbavaVmvvKCIMIEnqQmbG+mt1p3SEEdXrpPuAW6vlW4B729rfFhEXRsTlwBXAw9Vhq+cj4prq\nJPgft23TUWbW9nXTTTeNvIZzsXbrH/3L+kf7GrR1RxgRMQv8PvCaiHga+DBwJ3BPRNwGHKF1ZRSZ\nORcRB4A54Bhwe57+Ld4B/BPwEuDLmfmV/v4qkqRBWjcwMnP3Km9tX2X9vcDeDu3fBH79rKqTJI0N\n7/QegKmpqVGX0LU61w7WP2rWv7EZGAMwPT096hK6VufawfpHzfo3NgNDklTEwJAkFTEwJElFDAxJ\nUhEDQ5JUxMBQsUZjkohY8Wo0JkddmqQhMDBUrNk8QmueyTNfzeaSQSKdA7qdfFBq8yKdJixuNgc2\nB5qkEXCEIUkqYmBIkooYGJKkIgaGJKmIgSFJKmJgSJKKGBiSpCIGhjrqdFe3pHObN+6po9N3dbcz\nNKRzmSMMSVIRA0OSVMTAkCQVMTAkSUUMDElSEQNDklTEwJAkFTEwJElFDAxJUhEDQ5JUxMCQJBUx\nMCRJRQwMSVIRA0OSVMTAkCQVMTAkSUUMDA3QRSue2tdoTI66KEld6ikwIuK9EfHtiHgiIu6KiAsj\n4pKIeCAinoqI+yNic9v6eyJiISLmI2JH7+VrvL1I66l9p1+tJ/lJqqOuAyMifgV4F3B1Zv4Grce9\nvh24A3gwM68CHgL2VOtPAzcDU8B1wL7wQdGSVBu9HpLaBFwcEecDLwUWgRuA/dX7+4Ebq+WdwN2Z\neTwzDwMLwDU97l+SNCRdB0Zm/hD4OPA0raB4PjMfBCYys1mtswRsqTbZChxt+4jFqk0j1GhMnnGO\nYWZmBgd+kjo5v9sNI+JVtEYTlwHPA/dExAytg9Xtlv9cZNeuXaeWp6ammJ6e7rLS4Tt06NCoSyjW\nOqfQ6Y9ocKExOzs7sM+uU993Yv2jVbf65+bmmJ+fH9r+ug4MYDvw/cz8KUBE/Avw20AzIiYysxkR\nDeDZav1F4NK27bdVbR0dPHiwh9JGb/fu3aMuocjMzMzQ9znovqlL36/G+kerzvUP+uhAL+cwngbe\nHBEvqU5evxWYA+4Dbq3WuQW4t1q+D3hbdSXV5cAVwMM97F+SNERdjzAy8+GI+BLwKHCs+u9ngFcA\nByLiNuAIrSujyMy5iDhAK1SOAbdnZleHqyRJw9fLISky8yPAR5Y1/5TW4apO6+8F9vayT0nSaHin\ntySpiIEhSSpiYEiSihgYkqQiBoYkqYiBIUkqYmCcQ5bPG+WcUZLORk/3YaheOs8bZWhIKuMIQ5JU\nxMCQJBUxMCRJRQwMSVIRA0OSVMTAkCQVMTAkSUUMDElSEQNDklTEwJAkFTEwJElFDAwN2UUrJkCM\nCBqNyVEXJmkdTj6oIXuRlRMgQrPpJIjSuHOEIUkqYmBIkooYGJKkIgaGJKmIgSFJKmJgSJKKGBiS\npCIGhiSpiIEhSSpiYEiSihgYkqQiBoYkqYiBIUkqYmBIkor0FBgRsTki7omI+Yh4MiLeFBGXRMQD\nEfFURNwfEZvb1t8TEQvV+jt6L1+SNCy9jjA+CXw5M6eA3wS+A9wBPJiZVwEPAXsAImIauBmYAq4D\n9kWED0GQpJroOjAi4pXA72bm5wEy83hmPg/cAOyvVtsP3Fgt7wTurtY7DCwA13S7f0nScPUywrgc\n+J+I+HxEPBIRn4mIlwETmdkEyMwlYEu1/lbgaNv2i1WbJKkGegmM84Grgb/PzKuBn9E6HLX8+Zsr\nn8cpSaqdXp7p/QxwNDO/Uf18kFZgNCNiIjObEdEAnq3eXwQubdt+W9XW0a5du04tT01NMT093UOp\nw3Xo0KFRl1BLs7OzPX9G3fve+kerbvXPzc0xPz8/tP11HRhVIByNiCsz87vAW4Enq9etwEeBW4B7\nq03uA+6KiE/QOhR1BfDwap9/8ODBbksbC7t37x51CSvMzMyMuoQ19avPxrHvz4b1j1ad6x/0dUS9\njDAA3k0rBC4Avg/8CbAJOBARtwFHaF0ZRWbORcQBYA44BtyemR6uUuWiFV/2iYnLWFo6PJpyJK3Q\nU2Bk5uPAGzu8tX2V9fcCe3vZpzaqF1l+uqvZ9KpraZx4p7ckqYiBIUkqYmBIkooYGJKkIgaGJKmI\ngSFJKmJgSJKKGBiSpCIGxgbUaEwSEStektSLXqcG0RhqNo/QeZJgQ0NS9xxhSJKKGBiSpCIGhiSp\niIEhSSpiYEiSihgYkqQiBoYkqYiBIUkqYmBIkooYGJKkIgaGJKmIgSFJKmJgaIxd1HHW3UZjctSF\nSeckZ6vVGHuRTrPuNpvOuiuNgiMMSVIRA0OSVMTAkCQVMTAkSUUMDElSEQNDklTEwJAkFTEwJElF\nDAxJUhEDQ5JUxMCQJBUxMGqu0ZhcMTmfJA1Cz4EREedFxCMRcV/18yUR8UBEPBUR90fE5rZ190TE\nQkTMR8SOXvctaDaP0Jqgr/0lSf3XjxHGe4C5tp/vAB7MzKuAh4A9ABExDdwMTAHXAfvCfw5LUm30\nFBgRsQ24HvhsW/MNwP5qeT9wY7W8E7g7M49n5mFgAbiml/1Lkoan1xHGJ4APcOZxkInMbAJk5hKw\npWrfChxtW2+xapMk1UDXgRERfwg0M/MxYK1DSx5Ul6QNoJcn7r0F2BkR1wMvBV4REV8EliJiIjOb\nEdEAnq3WXwQubdt+W9XW0a5du04tT01NMT093UOpw3Xo0KFRl7Dhzc7Odmyve99b/2jVrf65uTnm\n5+eHt8PM7PkF/B5wX7X8MeCD1fIHgTur5WngUeBC4HLge0Cs8nlZZ3fdddfQ9gUk5LJXp7ZhrzvY\n/Y1D3w+C9Y9W3euv/m705f/rnV6DeKb3ncCBiLgNOELryigycy4iDtC6ouoYcHv1C0qSaqAvgZGZ\nXwW+Wi3/FNi+ynp7gb392Kckabi801uSVMTAkCQVMTAkSUUMDElSEQNDNXTRihl6G43JURclbXiD\nuKxWGrAXWT6BQLPpPJbSoDnCkCQVMTAkSUUMDElSEQNDklTEwJAkFTEwJElFDAxJUhEDQ5JUxMCQ\nJBUxMCRJRQwMSVIRA0OSVMTAkCQVMTAkSUUMDElSEQNDklTEwKiJRmNyxVPmInxokKTh8Yl7NdFs\nHmH5U+ZaDA1Jw+EIQ5JUxMDQBnEREcHMzMwZh+wajclRFyZtGB6S0gbxIp0O2TWbHrKT+sURhiSp\niIEhSSpiYEiSihgYkqQiBoYkqYiBIUkqYmBog7toxXQq3pshdcf7MLTBrbw/w3szpO44wpAkFek6\nMCJiW0Q8FBFPRsS3IuLdVfslEfFARDwVEfdHxOa2bfZExEJEzEfEjn78ApKk4ehlhHEceF9m/hrw\nW8A7IuL1wB3Ag5l5FfAQsAcgIqaBm4Ep4DpgXzg/tyTVRteBkZlLmflYtfwCMA9sA24A9ler7Qdu\nrJZ3Andn5vHMPAwsANd0u39J0nD15RxGREwCbwC+BkxkZhNaoQJsqVbbChxt22yxatMynR6WJEmj\n1vNVUhHxcuBLwHsy84WIWD5laKen/qxr165dp5anpqaYnp7uvsghO3ToUE/bd35YkqHRT7Ozs6Mu\noaNevzujZv3DNTc3x/z8/ND211NgRMT5tMLii5l5b9XcjIiJzGxGRAN4tmpfBC5t23xb1dbRwYMH\neylt5Hbv3t31tjMzM32sRJ308uczaONcWwnrH51BH43o9ZDUPwJzmfnJtrb7gFur5VuAe9va3xYR\nF0bE5cAVwMM97l+SNCRdjzAi4i3ADPCtiHiU1jGUDwEfBQ5ExG3AEVpXRpGZcxFxAJgDjgG3Z2ZX\nh6skScPXdWBk5iFg0ypvb19lm73A3m73KUkaHe/0liQVMTAkSUUMDElSEQNDklTEwJAkFTEwJElF\nDAydg1Y+hc8n8Unr84l7OgetfAof+CQ+aT2OMCRJRQwMSVIRA0OSVMTAkCQVMTAkSUUMjBHq9ChW\nH8cqaVx5We0IdX4UK/g4VknjyBGGJKmIgSFJKmJgSJKKGBiSpCIGhnTKykkJnZBQOs2rpKRTVk5K\n6ISE0mmOMCRJRQwMSVIRA0OSVMTAGAKnAKkzn84nneRJ7yFwCpA68+l80kmOMCRJRQwMSVIRA0OS\nVMTAkCQVMTCkrnS+emrTpou9okoblldJSV3pfPXUiROxot0rqrRROMLos0ZjkpmZGe+3kLThOMLo\ns873XBgakurPEYYkqcjQAyMiro2I70TEdyPig8Pef7843YfKOb2INoahHpKKiPOATwFvBX4IfD0i\n7s3M7wyzjn5wug+VW216kZes+EfGxRe/ht27dw+prv6bm5sbdQk9qXv9gzbsEcY1wEJmHsnMY8Dd\nwA1DrkEaEyeD5PTrZz97odajkfn5+VGX0JO61z9owz7pvRU42vbzM7RCZOSWlpbYvv2PeOGFn5/R\nfsEFm3juuWf5yU8WR1SZzi3lo5GJictYWjo8nLIkvErqlMXFRebnv8mmTY0z2n/xix9z4sT/4pVP\nGq1Oj49dGSIA5533Mk6c+Pm6bWu1G0bqZNiBsQi8tu3nbVXbCqM6gXzixNFV3ulUz2o19rrusPfn\n79G/dUexvzN1CoBObWu1N5tHuv47WPeLP+pe/yBFZqcTtwPaWcQm4ClaJ71/BDwMvD0zPXAoSWNu\nqCOMzPxFRLwTeIDWCffPGRaSVA9DHWFIkuprIJfVltycFxF/FxELEfFYRLxhvW0j4mMRMV+tfzAi\nXtn23p7qs+YjYked6o+IyyLi5xHxSPXaN4a1/3VEPB4Rj0bEVyKi0fZeHfq+Y/397vtB1d/2/vsj\n4kREvLqtbez7f7X669L/EfHhiHimrc5r294b+/5frf6u+j8z+/qiFULfAy4DLgAeA16/bJ3rgH+r\nlt8EfG29bYHtwHnV8p3A3mp5GniU1uG1yWr7qFH9lwFPjHnfv7xt+3cBn65Z369Wf9/6fpD1V+9v\nA74C/AB4ddU2VYf+X6P+WvQ/8GHgfR32V4v+X6P+s+7/QYwwSm7OuwH4AkBm/hewOSIm1to2Mx/M\nzBPV9l+j9QUE2AncnZnHM/MwsEBv93YMu37o3zW6g6r9hbbtLwZO/h516fvV6of+Xh89kPornwA+\n0OGzxr7/16gf6tP/neqsU//3duldZRCB0enmvK2F65RsC3Ab8OVVPmtxlW1KDav+f2/7ebIaEv5H\nRPxOt4UX7r+r2iPibyLiaWA38FerfNbY9v0q9UP/+n5g9UfETuBoZn5rnc8ay/5fo36oQf9X3lkd\nAvpsRGxe5bPGsv8r7fW/qq39rPp/XGarLU65iPgL4Fhm/vMA6zlb3dQ/WzX9EHhtZl4NvB+YjYiX\nD6DGVUsqWSkz/zIzXwvcReuwzrjopf4fMdq+h3Xqj4iXAh+idVhhHHVT/8ltRv3db69lLfuA12Xm\nG4Al4OODLems9FL/WX//BxEYJTfnLQKXdlhnzW0j4lbgelr/Slzvs7o11Poz81hmPlctPwL8N3Dl\nuNXeZha4aZ3P6taw6t8FkJn/18e+H1T9v0rr+PjjEfGDqv2RiNhSuL9xrP+bEbGlz9/9QdVPZv44\nq4P+wD9w+rBTLb7/Hep/Y9V+9t//bk/QrHHiZhOnT75cSOvky9Syda7n9ImbN3P6xM2q2wLXAk8C\nr1n2WSdPvF4IXE7vJ56GXf8vcfpk+OtoDStfNWa1X9G2/buAAzXr+9Xq71vfD7L+Zdv/ALikTv2/\nRv216H+g0bb9e4HZOvX/GvWfdf939YsV/OLX0rqjewG4o2r7c+DP2tb5VPULPg5cvda2VfsCcAR4\npHrta3tvT/VZ88COOtVP61/r367avgFcP4a1fwl4ovoS3gv8cs36vmP9/e77QdW/7PO/T3WVUV36\nf7X669L/tE4yn/z+/CswUaf+X63+bvrfG/ckSUXG5aS3JGnMGRiSpCIGhiSpiIEhSSpiYEiSihgY\nkqQiBoYkqYiBIUkq8v85hnCHzxMbMwAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1012,7 +1012,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1023,7 +1023,7 @@ "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1074,7 +1074,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1107,7 +1107,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 56b3cb45c1..dfd493f168 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -45,12 +45,12 @@ "outputs": [], "source": [ "# Instantiate some Nuclides\n", - "h1 = openmc.Nuclide('H-1')\n", - "b10 = openmc.Nuclide('B-10')\n", - "o16 = openmc.Nuclide('O-16')\n", - "u235 = openmc.Nuclide('U-235')\n", - "u238 = openmc.Nuclide('U-238')\n", - "zr90 = openmc.Nuclide('Zr-90')" + "h1 = openmc.Nuclide('H1')\n", + "b10 = openmc.Nuclide('B10')\n", + "o16 = openmc.Nuclide('O16')\n", + "u235 = openmc.Nuclide('U235')\n", + "u238 = openmc.Nuclide('U238')\n", + "zr90 = openmc.Nuclide('Zr90')" ] }, { @@ -339,7 +339,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AFBRQzLY81/IkAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDUtMDVUMTQ6NTE6\nNDUtMDY6MDCqOITjAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA1LTA1VDE0OjUxOjQ1LTA2OjAw\n22U8XwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AHFwInLqDpadAAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDctMjJUMjE6Mzk6\nNDYtMDU6MDBOOEOsAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA3LTIyVDIxOjM5OjQ2LTA1OjAw\nP2X7EAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -540,28 +540,28 @@ " 888\n", "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.org/en/latest/license.html\n", + " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", - " Date/Time: 2016-05-05 14:51:45\n", + " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", + " Date/Time: 2016-07-22 21:39:46\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", " ===========================================================================\n", "\n", " Reading settings XML file...\n", - " Reading cross sections XML file...\n", " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", " Reading materials XML file...\n", + " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", + " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", + " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", + " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235.71c\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: 5010.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", @@ -599,20 +599,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 7.2500E-01 seconds\n", - " Reading cross sections = 4.4400E-01 seconds\n", - " Total time in simulation = 1.5547E+01 seconds\n", - " Time in transport only = 1.5527E+01 seconds\n", - " Time in inactive batches = 2.2880E+00 seconds\n", - " Time in active batches = 1.3259E+01 seconds\n", + " Total time for initialization = 3.5600E-01 seconds\n", + " Reading cross sections = 2.3400E-01 seconds\n", + " Total time in simulation = 1.8333E+01 seconds\n", + " Time in transport only = 1.8325E+01 seconds\n", + " Time in inactive batches = 2.6950E+00 seconds\n", + " Time in active batches = 1.5638E+01 seconds\n", " Time synchronizing fission bank = 1.0000E-03 seconds\n", " Sampling source sites = 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 = 2.0000E-03 seconds\n", - " Total time elapsed = 1.6291E+01 seconds\n", - " Calculation Rate (inactive) = 5463.29 neutrons/second\n", - " Calculation Rate (active) = 2828.27 neutrons/second\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.8711E+01 seconds\n", + " Calculation Rate (inactive) = 4638.22 neutrons/second\n", + " Calculation Rate (active) = 2398.00 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1107,7 +1107,7 @@ " 10000\n", " 0.000000e+00\n", " 6.250000e-07\n", - " (U-238 / total)\n", + " (U238 / total)\n", " (nu-fission / flux)\n", " 6.636968e-07\n", " 4.132875e-09\n", @@ -1117,7 +1117,7 @@ " 10000\n", " 0.000000e+00\n", " 6.250000e-07\n", - " (U-238 / total)\n", + " (U238 / total)\n", " (scatter / flux)\n", " 2.099856e-01\n", " 1.232455e-03\n", @@ -1127,7 +1127,7 @@ " 10000\n", " 0.000000e+00\n", " 6.250000e-07\n", - " (U-235 / total)\n", + " (U235 / total)\n", " (nu-fission / flux)\n", " 3.552458e-01\n", " 2.252681e-03\n", @@ -1137,7 +1137,7 @@ " 10000\n", " 0.000000e+00\n", " 6.250000e-07\n", - " (U-235 / total)\n", + " (U235 / total)\n", " (scatter / flux)\n", " 5.554345e-03\n", " 3.265385e-05\n", @@ -1147,7 +1147,7 @@ " 10000\n", " 6.250000e-07\n", " 2.000000e+01\n", - " (U-238 / total)\n", + " (U238 / total)\n", " (nu-fission / flux)\n", " 7.126668e-03\n", " 5.296883e-05\n", @@ -1157,7 +1157,7 @@ " 10000\n", " 6.250000e-07\n", " 2.000000e+01\n", - " (U-238 / total)\n", + " (U238 / total)\n", " (scatter / flux)\n", " 2.277460e-01\n", " 1.003558e-03\n", @@ -1167,7 +1167,7 @@ " 10000\n", " 6.250000e-07\n", " 2.000000e+01\n", - " (U-235 / total)\n", + " (U235 / total)\n", " (nu-fission / flux)\n", " 8.010911e-03\n", " 6.802256e-05\n", @@ -1177,7 +1177,7 @@ " 10000\n", " 6.250000e-07\n", " 2.000000e+01\n", - " (U-235 / total)\n", + " (U235 / total)\n", " (scatter / flux)\n", " 3.367794e-03\n", " 1.443644e-05\n", @@ -1187,15 +1187,15 @@ "" ], "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 (U238 / total) \n", + "1 10000 0.00e+00 6.25e-07 (U238 / total) \n", + "2 10000 0.00e+00 6.25e-07 (U235 / total) \n", + "3 10000 0.00e+00 6.25e-07 (U235 / total) \n", + "4 10000 6.25e-07 2.00e+01 (U238 / total) \n", + "5 10000 6.25e-07 2.00e+01 (U238 / total) \n", + "6 10000 6.25e-07 2.00e+01 (U235 / total) \n", + "7 10000 6.25e-07 2.00e+01 (U235 / total) \n", "\n", " score mean std. dev. \n", "0 (nu-fission / flux) 6.64e-07 4.13e-09 \n", @@ -1276,7 +1276,7 @@ ], "source": [ "# Show how to use Tally.get_values(...) with a CrossScore and CrossNuclide\n", - "u235_scatter_xs = fuel_xs.get_values(nuclides=['(U-235 / total)'], \n", + "u235_scatter_xs = fuel_xs.get_values(nuclides=['(U235 / total)'], \n", " scores=['(scatter / flux)'])\n", "print(u235_scatter_xs)" ] @@ -1342,7 +1342,7 @@ " 10000\n", " 0.000000e+00\n", " 6.250000e-07\n", - " U-238\n", + " U238\n", " nu-fission\n", " 0.000002\n", " 7.473789e-09\n", @@ -1352,7 +1352,7 @@ " 10000\n", " 0.000000e+00\n", " 6.250000e-07\n", - " U-235\n", + " U235\n", " nu-fission\n", " 0.861547\n", " 4.131310e-03\n", @@ -1362,7 +1362,7 @@ " 10000\n", " 6.250000e-07\n", " 2.000000e+01\n", - " U-238\n", + " U238\n", " nu-fission\n", " 0.082356\n", " 5.560461e-04\n", @@ -1372,7 +1372,7 @@ " 10000\n", " 6.250000e-07\n", " 2.000000e+01\n", - " U-235\n", + " U235\n", " nu-fission\n", " 0.092574\n", " 7.315442e-04\n", @@ -1383,10 +1383,10 @@ ], "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.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", + "0 10000 0.00e+00 6.25e-07 U238 nu-fission 1.61e-06 \n", + "1 10000 0.00e+00 6.25e-07 U235 nu-fission 8.62e-01 \n", + "2 10000 6.25e-07 2.00e+01 U238 nu-fission 8.24e-02 \n", + "3 10000 6.25e-07 2.00e+01 U235 nu-fission 9.26e-02 \n", "\n", " std. dev. \n", "0 7.47e-09 \n", @@ -1436,7 +1436,7 @@ " 10002\n", " 1.000000e-08\n", " 1.080060e-07\n", - " H-1\n", + " H1\n", " scatter\n", " 4.599225\n", " 0.015973\n", @@ -1446,7 +1446,7 @@ " 10002\n", " 1.080060e-07\n", " 1.166529e-06\n", - " H-1\n", + " H1\n", " scatter\n", " 2.037260\n", " 0.011236\n", @@ -1456,7 +1456,7 @@ " 10002\n", " 1.166529e-06\n", " 1.259921e-05\n", - " H-1\n", + " H1\n", " scatter\n", " 1.662552\n", " 0.010280\n", @@ -1466,7 +1466,7 @@ " 10002\n", " 1.259921e-05\n", " 1.360790e-04\n", - " H-1\n", + " H1\n", " scatter\n", " 1.872201\n", " 0.012136\n", @@ -1476,7 +1476,7 @@ " 10002\n", " 1.360790e-04\n", " 1.469734e-03\n", - " H-1\n", + " H1\n", " scatter\n", " 2.080459\n", " 0.013155\n", @@ -1486,7 +1486,7 @@ " 10002\n", " 1.469734e-03\n", " 1.587401e-02\n", - " H-1\n", + " H1\n", " scatter\n", " 2.154996\n", " 0.011975\n", @@ -1496,7 +1496,7 @@ " 10002\n", " 1.587401e-02\n", " 1.714488e-01\n", - " H-1\n", + " H1\n", " scatter\n", " 2.218740\n", " 0.008528\n", @@ -1506,7 +1506,7 @@ " 10002\n", " 1.714488e-01\n", " 1.851749e+00\n", - " H-1\n", + " H1\n", " scatter\n", " 2.010517\n", " 0.009187\n", @@ -1516,7 +1516,7 @@ " 10002\n", " 1.851749e+00\n", " 2.000000e+01\n", - " H-1\n", + " H1\n", " scatter\n", " 0.372022\n", " 0.003196\n", @@ -1527,15 +1527,15 @@ ], "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.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", + "0 10002 1.00e-08 1.08e-07 H1 scatter 4.60e+00 \n", + "1 10002 1.08e-07 1.17e-06 H1 scatter 2.04e+00 \n", + "2 10002 1.17e-06 1.26e-05 H1 scatter 1.66e+00 \n", + "3 10002 1.26e-05 1.36e-04 H1 scatter 1.87e+00 \n", + "4 10002 1.36e-04 1.47e-03 H1 scatter 2.08e+00 \n", + "5 10002 1.47e-03 1.59e-02 H1 scatter 2.15e+00 \n", + "6 10002 1.59e-02 1.71e-01 H1 scatter 2.22e+00 \n", + "7 10002 1.71e-01 1.85e+00 H1 scatter 2.01e+00 \n", + "8 10002 1.85e+00 2.00e+01 H1 scatter 3.72e-01 \n", "\n", " std. dev. \n", "0 1.60e-02 \n", @@ -1557,7 +1557,7 @@ "source": [ "# \"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", + "slice_test = need_to_slice.get_slice(scores=['scatter'], nuclides=['H1'],\n", " filters=['cell'], filter_bins=[(moderator_cell.id,)])\n", "slice_test.get_pandas_dataframe()" ] @@ -1579,7 +1579,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.5.2" } }, "nbformat": 4, diff --git a/openmc/data/angle_energy.py b/openmc/data/angle_energy.py index c20c5f0ff9..00e049ebcd 100644 --- a/openmc/data/angle_energy.py +++ b/openmc/data/angle_energy.py @@ -102,7 +102,7 @@ class AngleEnergy(object): distribution = openmc.data.NBodyPhaseSpace.from_ace( ace, idx, rx.q_value) else: - raise IOError("Unsupported ACE secondary energy " - "distribution law {0}".format(law)) + raise ValueError("Unsupported ACE secondary energy " + "distribution law {}".format(law)) return distribution diff --git a/openmc/data/data.py b/openmc/data/data.py index 5f83d31c0c..21fffc8cba 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -2,102 +2,102 @@ # of the elements 2009 (IUPAC Technical Report)", Pure. Appl. Chem. 83 (2), # pp. 397--410 (2011). NATURAL_ABUNDANCE = { - 'H-1': 0.999885, 'H-2': 0.000115, 'He-3': 1.34e-06, - 'He-4': 0.99999866, 'Li-6': 0.0759, 'Li-7': 0.9241, - 'Be-9': 1.0, 'B-10': 0.199, 'B-11': 0.801, - 'C-12': 0.9893, 'C-13': 0.0107, 'N-14': 0.99636, - 'N-15': 0.00364, 'O-16': 0.99757, 'O-17': 0.00038, - 'O-18': 0.00205, 'F-19': 1.0, 'Ne-20': 0.9048, - 'Ne-21': 0.0027, 'Ne-22': 0.0925, 'Na-23': 1.0, - 'Mg-24': 0.7899, 'Mg-25': 0.1, 'Mg-26': 0.1101, - 'Al-27': 1.0, 'Si-28': 0.92223, 'Si-29': 0.04685, - 'Si-30': 0.03092, 'P-31': 1.0, 'S-32': 0.9499, - 'S-33': 0.0075, 'S-34': 0.0425, 'S-36': 0.0001, - 'Cl-35': 0.7576, 'Cl-37': 0.2424, 'Ar-36': 0.003336, - 'Ar-38': 0.000629, 'Ar-40': 0.996035, 'K-39': 0.932581, - 'K-40': 0.000117, 'K-41': 0.067302, 'Ca-40': 0.96941, - 'Ca-42': 0.00647, 'Ca-43': 0.00135, 'Ca-44': 0.02086, - 'Ca-46': 4e-05, 'Ca-48': 0.00187, 'Sc-45': 1.0, - 'Ti-46': 0.0825, 'Ti-47': 0.0744, 'Ti-48': 0.7372, - 'Ti-49': 0.0541, 'Ti-50': 0.0518, 'V-50': 0.0025, - 'V-51': 0.9975, 'Cr-50': 0.04345, 'Cr-52': 0.83789, - 'Cr-53': 0.09501, 'Cr-54': 0.02365, 'Mn-55': 1.0, - 'Fe-54': 0.05845, 'Fe-56': 0.91754, 'Fe-57': 0.02119, - 'Fe-58': 0.00282, 'Co-59': 1.0, 'Ni-58': 0.68077, - 'Ni-60': 0.26223, 'Ni-61': 0.011399, 'Ni-62': 0.036346, - 'Ni-64': 0.009255, 'Cu-63': 0.6915, 'Cu-65': 0.3085, - 'Zn-64': 0.4917, 'Zn-66': 0.2773, 'Zn-67': 0.0404, - 'Zn-68': 0.1845, 'Zn-70': 0.0061, 'Ga-69': 0.60108, - 'Ga-71': 0.39892, 'Ge-70': 0.2057, 'Ge-72': 0.2745, - 'Ge-73': 0.0775, 'Ge-74': 0.365, 'Ge-76': 0.0773, - 'As-75': 1.0, 'Se-74': 0.0089, 'Se-76': 0.0937, - 'Se-77': 0.0763, 'Se-78': 0.2377, 'Se-80': 0.4961, - 'Se-82': 0.0873, 'Br-79': 0.5069, 'Br-81': 0.4931, - 'Kr-78': 0.00355, 'Kr-80': 0.02286, 'Kr-82': 0.11593, - 'Kr-83': 0.115, 'Kr-84': 0.56987, 'Kr-86': 0.17279, - 'Rb-85': 0.7217, 'Rb-87': 0.2783, 'Sr-84': 0.0056, - 'Sr-86': 0.0986, 'Sr-87': 0.07, 'Sr-88': 0.8258, - 'Y-89': 1.0, 'Zr-90': 0.5145, 'Zr-91': 0.1122, - 'Zr-92': 0.1715, 'Zr-94': 0.1738, 'Zr-96': 0.028, - 'Nb-93': 1.0, 'Mo-92': 0.1453, 'Mo-94': 0.0915, - 'Mo-95': 0.1584, 'Mo-96': 0.1667, 'Mo-97': 0.096, - 'Mo-98': 0.2439, 'Mo-100': 0.0982, 'Ru-96': 0.0554, - 'Ru-98': 0.0187, 'Ru-99': 0.1276, 'Ru-100': 0.126, - 'Ru-101': 0.1706, 'Ru-102': 0.3155, 'Ru-104': 0.1862, - 'Rh-103': 1.0, 'Pd-102': 0.0102, 'Pd-104': 0.1114, - 'Pd-105': 0.2233, 'Pd-106': 0.2733, 'Pd-108': 0.2646, - 'Pd-110': 0.1172, 'Ag-107': 0.51839, 'Ag-109': 0.48161, - 'Cd-106': 0.0125, 'Cd-108': 0.0089, 'Cd-110': 0.1249, - 'Cd-111': 0.128, 'Cd-112': 0.2413, 'Cd-113': 0.1222, - 'Cd-114': 0.2873, 'Cd-116': 0.0749, 'In-113': 0.0429, - 'In-115': 0.9571, 'Sn-112': 0.0097, 'Sn-114': 0.0066, - 'Sn-115': 0.0034, 'Sn-116': 0.1454, 'Sn-117': 0.0768, - 'Sn-118': 0.2422, 'Sn-119': 0.0859, 'Sn-120': 0.3258, - 'Sn-122': 0.0463, 'Sn-124': 0.0579, 'Sb-121': 0.5721, - 'Sb-123': 0.4279, 'Te-120': 0.0009, 'Te-122': 0.0255, - 'Te-123': 0.0089, 'Te-124': 0.0474, 'Te-125': 0.0707, - 'Te-126': 0.1884, 'Te-128': 0.3174, 'Te-130': 0.3408, - 'I-127': 1.0, 'Xe-124': 0.000952, 'Xe-126': 0.00089, - 'Xe-128': 0.019102, 'Xe-129': 0.264006, 'Xe-130': 0.04071, - 'Xe-131': 0.212324, 'Xe-132': 0.269086, 'Xe-134': 0.104357, - 'Xe-136': 0.088573, 'Cs-133': 1.0, 'Ba-130': 0.00106, - 'Ba-132': 0.00101, 'Ba-134': 0.02417, 'Ba-135': 0.06592, - 'Ba-136': 0.07854, 'Ba-137': 0.11232, 'Ba-138': 0.71698, - 'La-138': 0.0008881, 'La-139': 0.9991119, 'Ce-136': 0.00185, - 'Ce-138': 0.00251, 'Ce-140': 0.8845, 'Ce-142': 0.11114, - 'Pr-141': 1.0, 'Nd-142': 0.27152, 'Nd-143': 0.12174, - 'Nd-144': 0.23798, 'Nd-145': 0.08293, 'Nd-146': 0.17189, - 'Nd-148': 0.05756, 'Nd-150': 0.05638, 'Sm-144': 0.0307, - 'Sm-147': 0.1499, 'Sm-148': 0.1124, 'Sm-149': 0.1382, - 'Sm-150': 0.0738, 'Sm-152': 0.2675, 'Sm-154': 0.2275, - 'Eu-151': 0.4781, 'Eu-153': 0.5219, 'Gd-152': 0.002, - 'Gd-154': 0.0218, 'Gd-155': 0.148, 'Gd-156': 0.2047, - 'Gd-157': 0.1565, 'Gd-158': 0.2484, 'Gd-160': 0.2186, - 'Tb-159': 1.0, 'Dy-156': 0.00056, 'Dy-158': 0.00095, - 'Dy-160': 0.02329, 'Dy-161': 0.18889, 'Dy-162': 0.25475, - 'Dy-163': 0.24896, 'Dy-164': 0.2826, 'Ho-165': 1.0, - 'Er-162': 0.00139, 'Er-164': 0.01601, 'Er-166': 0.33503, - 'Er-167': 0.22869, 'Er-168': 0.26978, 'Er-170': 0.1491, - 'Tm-169': 1.0, 'Yb-168': 0.00123, 'Yb-170': 0.02982, - 'Yb-171': 0.1409, 'Yb-172': 0.2168, 'Yb-173': 0.16103, - 'Yb-174': 0.32026, 'Yb-176': 0.12996, 'Lu-175': 0.97401, - 'Lu-176': 0.02599, 'Hf-174': 0.0016, 'Hf-176': 0.0526, - 'Hf-177': 0.186, 'Hf-178': 0.2728, 'Hf-179': 0.1362, - 'Hf-180': 0.3508, 'Ta-180': 0.0001201, 'Ta-181': 0.9998799, - 'W-180': 0.0012, 'W-182': 0.265, 'W-183': 0.1431, - 'W-184': 0.3064, 'W-186': 0.2843, 'Re-185': 0.374, - 'Re-187': 0.626, 'Os-184': 0.0002, 'Os-186': 0.0159, - 'Os-187': 0.0196, 'Os-188': 0.1324, 'Os-189': 0.1615, - 'Os-190': 0.2626, 'Os-192': 0.4078, 'Ir-191': 0.373, - 'Ir-193': 0.627, 'Pt-190': 0.00012, 'Pt-192': 0.00782, - 'Pt-194': 0.3286, 'Pt-195': 0.3378, 'Pt-196': 0.2521, - 'Pt-198': 0.07356, 'Au-197': 1.0, 'Hg-196': 0.0015, - 'Hg-198': 0.0997, 'Hg-199': 0.1687, 'Hg-200': 0.231, - 'Hg-201': 0.1318, 'Hg-202': 0.2986, 'Hg-204': 0.0687, - 'Tl-203': 0.2952, 'Tl-205': 0.7048, 'Pb-204': 0.014, - 'Pb-206': 0.241, 'Pb-207': 0.221, 'Pb-208': 0.524, - 'Bi-209': 1.0, 'Th-232': 1.0, 'Pa-231': 1.0, - 'U-234': 5.4e-05, 'U-235': 0.007204, 'U-238': 0.992742 + 'H1': 0.999885, 'H2': 0.000115, 'He3': 1.34e-06, + 'He4': 0.99999866, 'Li6': 0.0759, 'Li7': 0.9241, + 'Be9': 1.0, 'B10': 0.199, 'B11': 0.801, + 'C12': 0.9893, 'C13': 0.0107, 'N14': 0.99636, + 'N15': 0.00364, 'O16': 0.99757, 'O17': 0.00038, + 'O18': 0.00205, 'F19': 1.0, 'Ne20': 0.9048, + 'Ne21': 0.0027, 'Ne22': 0.0925, 'Na23': 1.0, + 'Mg24': 0.7899, 'Mg25': 0.1, 'Mg26': 0.1101, + 'Al27': 1.0, 'Si28': 0.92223, 'Si29': 0.04685, + 'Si30': 0.03092, 'P31': 1.0, 'S32': 0.9499, + 'S33': 0.0075, 'S34': 0.0425, 'S36': 0.0001, + 'Cl35': 0.7576, 'Cl37': 0.2424, 'Ar36': 0.003336, + 'Ar38': 0.000629, 'Ar40': 0.996035, 'K39': 0.932581, + 'K40': 0.000117, 'K41': 0.067302, 'Ca40': 0.96941, + 'Ca42': 0.00647, 'Ca43': 0.00135, 'Ca44': 0.02086, + 'Ca46': 4e-05, 'Ca48': 0.00187, 'Sc45': 1.0, + 'Ti46': 0.0825, 'Ti47': 0.0744, 'Ti48': 0.7372, + 'Ti49': 0.0541, 'Ti50': 0.0518, 'V50': 0.0025, + 'V51': 0.9975, 'Cr50': 0.04345, 'Cr52': 0.83789, + 'Cr53': 0.09501, 'Cr54': 0.02365, 'Mn55': 1.0, + 'Fe54': 0.05845, 'Fe56': 0.91754, 'Fe57': 0.02119, + 'Fe58': 0.00282, 'Co59': 1.0, 'Ni58': 0.68077, + 'Ni60': 0.26223, 'Ni61': 0.011399, 'Ni62': 0.036346, + 'Ni64': 0.009255, 'Cu63': 0.6915, 'Cu65': 0.3085, + 'Zn64': 0.4917, 'Zn66': 0.2773, 'Zn67': 0.0404, + 'Zn68': 0.1845, 'Zn70': 0.0061, 'Ga69': 0.60108, + 'Ga71': 0.39892, 'Ge70': 0.2057, 'Ge72': 0.2745, + 'Ge73': 0.0775, 'Ge74': 0.365, 'Ge76': 0.0773, + 'As75': 1.0, 'Se74': 0.0089, 'Se76': 0.0937, + 'Se77': 0.0763, 'Se78': 0.2377, 'Se80': 0.4961, + 'Se82': 0.0873, 'Br79': 0.5069, 'Br81': 0.4931, + 'Kr78': 0.00355, 'Kr80': 0.02286, 'Kr82': 0.11593, + 'Kr83': 0.115, 'Kr84': 0.56987, 'Kr86': 0.17279, + 'Rb85': 0.7217, 'Rb87': 0.2783, 'Sr84': 0.0056, + 'Sr86': 0.0986, 'Sr87': 0.07, 'Sr88': 0.8258, + 'Y89': 1.0, 'Zr90': 0.5145, 'Zr91': 0.1122, + 'Zr92': 0.1715, 'Zr94': 0.1738, 'Zr96': 0.028, + 'Nb93': 1.0, 'Mo92': 0.1453, 'Mo94': 0.0915, + 'Mo95': 0.1584, 'Mo96': 0.1667, 'Mo97': 0.096, + 'Mo98': 0.2439, 'Mo100': 0.0982, 'Ru96': 0.0554, + 'Ru98': 0.0187, 'Ru99': 0.1276, 'Ru100': 0.126, + 'Ru101': 0.1706, 'Ru102': 0.3155, 'Ru104': 0.1862, + 'Rh103': 1.0, 'Pd102': 0.0102, 'Pd104': 0.1114, + 'Pd105': 0.2233, 'Pd106': 0.2733, 'Pd108': 0.2646, + 'Pd110': 0.1172, 'Ag107': 0.51839, 'Ag109': 0.48161, + 'Cd106': 0.0125, 'Cd108': 0.0089, 'Cd110': 0.1249, + 'Cd111': 0.128, 'Cd112': 0.2413, 'Cd113': 0.1222, + 'Cd114': 0.2873, 'Cd116': 0.0749, 'In113': 0.0429, + 'In115': 0.9571, 'Sn112': 0.0097, 'Sn114': 0.0066, + 'Sn115': 0.0034, 'Sn116': 0.1454, 'Sn117': 0.0768, + 'Sn118': 0.2422, 'Sn119': 0.0859, 'Sn120': 0.3258, + 'Sn122': 0.0463, 'Sn124': 0.0579, 'Sb121': 0.5721, + 'Sb123': 0.4279, 'Te120': 0.0009, 'Te122': 0.0255, + 'Te123': 0.0089, 'Te124': 0.0474, 'Te125': 0.0707, + 'Te126': 0.1884, 'Te128': 0.3174, 'Te130': 0.3408, + 'I127': 1.0, 'Xe124': 0.000952, 'Xe126': 0.00089, + 'Xe128': 0.019102, 'Xe129': 0.264006, 'Xe130': 0.04071, + 'Xe131': 0.212324, 'Xe132': 0.269086, 'Xe134': 0.104357, + 'Xe136': 0.088573, 'Cs133': 1.0, 'Ba130': 0.00106, + 'Ba132': 0.00101, 'Ba134': 0.02417, 'Ba135': 0.06592, + 'Ba136': 0.07854, 'Ba137': 0.11232, 'Ba138': 0.71698, + 'La138': 0.0008881, 'La139': 0.9991119, 'Ce136': 0.00185, + 'Ce138': 0.00251, 'Ce140': 0.8845, 'Ce142': 0.11114, + 'Pr141': 1.0, 'Nd142': 0.27152, 'Nd143': 0.12174, + 'Nd144': 0.23798, 'Nd145': 0.08293, 'Nd146': 0.17189, + 'Nd148': 0.05756, 'Nd150': 0.05638, 'Sm144': 0.0307, + 'Sm147': 0.1499, 'Sm148': 0.1124, 'Sm149': 0.1382, + 'Sm150': 0.0738, 'Sm152': 0.2675, 'Sm154': 0.2275, + 'Eu151': 0.4781, 'Eu153': 0.5219, 'Gd152': 0.002, + 'Gd154': 0.0218, 'Gd155': 0.148, 'Gd156': 0.2047, + 'Gd157': 0.1565, 'Gd158': 0.2484, 'Gd160': 0.2186, + 'Tb159': 1.0, 'Dy156': 0.00056, 'Dy158': 0.00095, + 'Dy160': 0.02329, 'Dy161': 0.18889, 'Dy162': 0.25475, + 'Dy163': 0.24896, 'Dy164': 0.2826, 'Ho165': 1.0, + 'Er162': 0.00139, 'Er164': 0.01601, 'Er166': 0.33503, + 'Er167': 0.22869, 'Er168': 0.26978, 'Er170': 0.1491, + 'Tm169': 1.0, 'Yb168': 0.00123, 'Yb170': 0.02982, + 'Yb171': 0.1409, 'Yb172': 0.2168, 'Yb173': 0.16103, + 'Yb174': 0.32026, 'Yb176': 0.12996, 'Lu175': 0.97401, + 'Lu176': 0.02599, 'Hf174': 0.0016, 'Hf176': 0.0526, + 'Hf177': 0.186, 'Hf178': 0.2728, 'Hf179': 0.1362, + 'Hf180': 0.3508, 'Ta180': 0.0001201, 'Ta181': 0.9998799, + 'W180': 0.0012, 'W182': 0.265, 'W183': 0.1431, + 'W184': 0.3064, 'W186': 0.2843, 'Re185': 0.374, + 'Re187': 0.626, 'Os184': 0.0002, 'Os186': 0.0159, + 'Os187': 0.0196, 'Os188': 0.1324, 'Os189': 0.1615, + 'Os190': 0.2626, 'Os192': 0.4078, 'Ir191': 0.373, + 'Ir193': 0.627, 'Pt190': 0.00012, 'Pt192': 0.00782, + 'Pt194': 0.3286, 'Pt195': 0.3378, 'Pt196': 0.2521, + 'Pt198': 0.07356, 'Au197': 1.0, 'Hg196': 0.0015, + 'Hg198': 0.0997, 'Hg199': 0.1687, 'Hg200': 0.231, + 'Hg201': 0.1318, 'Hg202': 0.2986, 'Hg204': 0.0687, + 'Tl203': 0.2952, 'Tl205': 0.7048, 'Pb204': 0.014, + 'Pb206': 0.241, 'Pb207': 0.221, 'Pb208': 0.524, + 'Bi209': 1.0, 'Th232': 1.0, 'Pa231': 1.0, + 'U234': 5.4e-05, 'U235': 0.007204, 'U238': 0.992742 } ATOMIC_SYMBOL = {1: 'H', 2: 'He', 3: 'Li', 4: 'Be', 5: 'B', 6: 'C', 7: 'N', diff --git a/openmc/data/energy_distribution.py b/openmc/data/energy_distribution.py index 677d31af2d..2300081c13 100644 --- a/openmc/data/energy_distribution.py +++ b/openmc/data/energy_distribution.py @@ -52,6 +52,9 @@ class EnergyDistribution(object): return LevelInelastic.from_hdf5(group) elif energy_type == 'continuous': return ContinuousTabular.from_hdf5(group) + else: + raise ValueError("Unknown energy distribution type: {}" + .format(energy_type)) class ArbitraryTabulated(EnergyDistribution): diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index b6a4f03b5c..5b587745d6 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -39,7 +39,7 @@ class IncidentNeutron(object): atomic_weight_ratio : float Atomic mass ratio of the target nuclide. temperature : float - Temperature of the target nuclide in eV. + Temperature of the target nuclide in MeV. Attributes ---------- diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index cadab0bf77..c2e1b24109 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -303,9 +303,9 @@ class Reaction(object): def __repr__(self): if self.mt in REACTION_NAME: - return "".format(self.mt, REACTION_NAME[self.mt]) + return "".format(self.mt, REACTION_NAME[self.mt]) else: - return "".format(self.mt) + return "".format(self.mt) @property def center_of_mass(self): diff --git a/openmc/element.py b/openmc/element.py index f116c43ebb..ada5726b44 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -1,3 +1,4 @@ +import re import sys import openmc @@ -8,6 +9,7 @@ if sys.version_info[0] >= 3: basestring = str + class Element(object): """A natural element used in a material via . Internally, OpenMC will expand the natural element into isotopes based on the known natural @@ -124,7 +126,7 @@ class Element(object): isotopes = [] for isotope, abundance in sorted(NATURAL_ABUNDANCE.items()): - if isotope.startswith(self.name + '-'): + if re.match(r'{}\d+'.format(self.name), isotope): nuc = openmc.Nuclide(isotope, self.xs) isotopes.append((nuc, abundance)) return isotopes diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 967e11f48c..93a257f465 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -820,7 +820,7 @@ def get_opencg_lattice(openmc_lattice): # Create an OpenCG Lattice to represent this OpenMC Lattice name = openmc_lattice.name - dimension = openmc_lattice.dimension + dimension = openmc_lattice.shape pitch = openmc_lattice.pitch lower_left = openmc_lattice.lower_left universes = openmc_lattice.universes From b1fa2c176f98df9b4909496efeab59817a663642 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Jul 2016 09:10:14 -0500 Subject: [PATCH 182/417] Fix bug in OpenCG compatibility module --- LICENSE | 2 +- openmc/opencg_compatible.py | 2 +- readme.rst | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/LICENSE b/LICENSE index f009376324..fe18b53f9f 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2011-2015 Massachusetts Institute of Technology +Copyright (c) 2011-2016 Massachusetts Institute of Technology Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 967e11f48c..93a257f465 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -820,7 +820,7 @@ def get_opencg_lattice(openmc_lattice): # Create an OpenCG Lattice to represent this OpenMC Lattice name = openmc_lattice.name - dimension = openmc_lattice.dimension + dimension = openmc_lattice.shape pitch = openmc_lattice.pitch lower_left = openmc_lattice.lower_left universes = openmc_lattice.universes diff --git a/readme.rst b/readme.rst index ab13e36f5c..03964d9436 100644 --- a/readme.rst +++ b/readme.rst @@ -10,9 +10,9 @@ transport code based on modern methods. It is a constructive solid geometry, continuous-energy transport code that uses ACE format cross sections. The project started under the Computational Reactor Physics Group at MIT. -Complete documentation on the usage of OpenMC is hosted on GitHub at -http://mit-crpg.github.io/openmc/. If you are interested in the project or would -like to help and contribute, please send a message to the OpenMC User's Group +Complete documentation on the usage of OpenMC is hosted on Read the Docs at +http://openmc.readthedocs.io. If you are interested in the project or would like +to help and contribute, please send a message to the OpenMC User's Group `mailing list`_. ------------ @@ -49,7 +49,7 @@ License OpenMC is distributed under the MIT/X license_. .. _mailing list: https://groups.google.com/forum/?fromgroups=#!forum/openmc-users -.. _installation instructions: http://mit-crpg.github.io/openmc/usersguide/install.html -.. _Troubleshooting section: http://mit-crpg.github.io/openmc/usersguide/troubleshoot.html +.. _installation instructions: http://openmc.readthedocs.io/en/latest/usersguide/install.html +.. _Troubleshooting section: http://openmc.readthedocs.io/en/latest/usersguide/troubleshoot.html .. _Issues: https://github.com/mit-crpg/openmc/issues -.. _license: http://mit-crpg.github.io/openmc/license.html +.. _license: http://openmc.readthedocs.io/en/latest/license.html From 8a4d1fba4f20d5b4b651dc3177b13e0a0fd285b9 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Jul 2016 10:41:58 -0500 Subject: [PATCH 183/417] Update URL for HDF5 data --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 86a2fbb4cf..30708de36a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,7 +42,7 @@ install: true before_script: - if [[ ! -e $HOME/nndc_hdf5/cross_sections.xml ]]; then - wget https://anl.box.com/shared/static/b3373ozjaiarcndy1ikotm4yuawxomwa.xz -O - | tar -C $HOME -xvJ; + wget https://anl.box.com/shared/static/6pwyfjnufam0sb96kqwwrve6vdn8m7u4.xz -O - | tar -C $HOME -xvJ; fi - export OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml From 43bca87b04f6c14e4f8a7acf67c6258a0f7d698d Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 25 Jul 2016 11:50:56 -0500 Subject: [PATCH 184/417] Reimplement tally filter maps --- src/tally_filter.F90 | 107 ++++++++++++++++++++++++++----------------- 1 file changed, 65 insertions(+), 42 deletions(-) diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index eeb720fd28..8496bd99a8 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -1,6 +1,7 @@ module tally_filter use constants, only: ONE, NO_BIN_FOUND, FP_PRECISION + use dict_header, only: DictIntInt use geometry_header, only: BASE_UNIVERSE, RectLattice, HexLattice use global use hdf5_interface @@ -35,6 +36,7 @@ module tally_filter !=============================================================================== type, extends(TallyFilter) :: UniverseFilter integer, allocatable :: universes(:) + type(DictIntInt) :: map contains procedure :: get_next_bin => get_next_bin_universe procedure :: to_statepoint => to_statepoint_universe @@ -47,6 +49,7 @@ module tally_filter !=============================================================================== type, extends(TallyFilter) :: MaterialFilter integer, allocatable :: materials(:) + type(DictIntInt) :: map contains procedure :: get_next_bin => get_next_bin_material procedure :: to_statepoint => to_statepoint_material @@ -59,6 +62,7 @@ module tally_filter !=============================================================================== type, extends(TallyFilter) :: CellFilter integer, allocatable :: cells(:) + type(DictIntInt) :: map contains procedure :: get_next_bin => get_next_bin_cell procedure :: to_statepoint => to_statepoint_cell @@ -85,6 +89,7 @@ module tally_filter !=============================================================================== type, extends(TallyFilter) :: CellbornFilter integer, allocatable :: cells(:) + type(DictIntInt) :: map contains procedure :: get_next_bin => get_next_bin_cellborn procedure :: to_statepoint => to_statepoint_cellborn @@ -437,25 +442,29 @@ contains integer, intent(out) :: next_bin real(8), intent(out) :: weight - integer :: i, j, start + integer :: i, start logical :: bin_found + ! Find the coordinate level of the last bin we found. if (current_bin == NO_BIN_FOUND) then start = 1 else - start = current_bin + 1 - end if - - bin_found = .false. - do i = start, this % n_bins - do j = 1, p % n_coord - if (p % coord(j) % universe == this % universes(i)) then - next_bin = i - bin_found = .true. + do i = 1, p % n_coord + if (p % coord(i) % universe == this % universes(current_bin)) then + start = i + 1 exit end if end do - if (bin_found) exit + end if + + ! Starting one coordinate level deeper, find the next bin. + bin_found = .false. + do i = start, p % n_coord + if (this % map % has_key(p % coord(i) % universe)) then + next_bin = this % map % get_key(p % coord(i) % universe) + bin_found = .true. + exit + end if end do if (.not. bin_found) next_bin = NO_BIN_FOUND @@ -486,6 +495,11 @@ contains &// " specified on a tally filter.") end if end do + + ! Generate mapping from universe indices to filter bins. + do i = 1, this % n_bins + call this % map % add_key(this % universes(i), i) + end do end subroutine initialize_universe function text_label_universe(this, bin) result(label) @@ -509,18 +523,13 @@ contains real(8), intent(out) :: weight integer :: i - logical :: bin_found if (current_bin == NO_BIN_FOUND) then - bin_found = .false. - do i = 1, this % n_bins - if (p % material == this % materials(i)) then - next_bin = i - bin_found = .true. - exit - end if - end do - if (.not. bin_found) next_bin = NO_BIN_FOUND + if (this % map % has_key(p % material)) then + next_bin = this % map % get_key(p % material) + else + next_bin = NO_BIN_FOUND + end if else next_bin = NO_BIN_FOUND end if @@ -551,6 +560,11 @@ contains &// " specified on a tally filter.") end if end do + + ! Generate mapping from material indices to filter bins. + do i = 1, this % n_bins + call this % map % add_key(this % materials(i), i) + end do end subroutine initialize_material function text_label_material(this, bin) result(label) @@ -573,25 +587,29 @@ contains integer, intent(out) :: next_bin real(8), intent(out) :: weight - integer :: i, j, start + integer :: i, start logical :: bin_found + ! Find the coordinate level of the last bin we found. if (current_bin == NO_BIN_FOUND) then start = 1 else - start = current_bin + 1 - end if - - bin_found = .false. - do i = start, this % n_bins - do j = 1, p % n_coord - if (p % coord(j) % cell == this % cells(i)) then - next_bin = i - bin_found = .true. + do i = 1, p % n_coord + if (p % coord(i) % cell == this % cells(current_bin)) then + start = i + 1 exit end if end do - if (bin_found) exit + end if + + ! Starting one coordinate level deeper, find the next bin. + bin_found = .false. + do i = start, p % n_coord + if (this % map % has_key(p % coord(i) % cell)) then + next_bin = this % map % get_key(p % coord(i) % cell) + bin_found = .true. + exit + end if end do if (.not. bin_found) next_bin = NO_BIN_FOUND @@ -622,6 +640,11 @@ contains &// " specified on tally filter.") end if end do + + ! Generate mapping from cell indices to filter bins. + do i = 1, this % n_bins + call this % map % add_key(this % cells(i), i) + end do end subroutine initialize_cell function text_label_cell(this, bin) result(label) @@ -763,18 +786,13 @@ contains real(8), intent(out) :: weight integer :: i - logical :: bin_found if (current_bin == NO_BIN_FOUND) then - bin_found = .false. - do i = 1, this % n_bins - if (p % cell_born == this % cells(i)) then - next_bin = i - bin_found = .true. - exit - end if - end do - if (.not. bin_found) next_bin = NO_BIN_FOUND + if (this % map % has_key(p % cell_born)) then + next_bin = this % map % get_key(p % cell_born) + else + next_bin = NO_BIN_FOUND + end if else next_bin = NO_BIN_FOUND end if @@ -805,6 +823,11 @@ contains &// " specified on tally filter.") end if end do + + ! Generate mapping from cell indices to filter bins. + do i = 1, this % n_bins + call this % map % add_key(this % cells(i), i) + end do end subroutine initialize_cellborn function text_label_cellborn(this, bin) result(label) From 462926ad44aad9de653155db6e82b460aafef555 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Jul 2016 20:39:33 -0500 Subject: [PATCH 185/417] Address two @smharper comments in PyAPI. Restore ONLY option on 'use hdf5' --- openmc/data/ace.py | 13 ++++++------- openmc/data/reaction.py | 2 +- src/nuclide_header.F90 | 5 +++-- src/reaction_header.F90 | 3 ++- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/openmc/data/ace.py b/openmc/data/ace.py index 1a56c165ef..03052bcabc 100644 --- a/openmc/data/ace.py +++ b/openmc/data/ace.py @@ -16,7 +16,6 @@ generates ACE-format cross sections. """ from __future__ import division, unicode_literals -import io from os import SEEK_CUR import struct import sys @@ -164,7 +163,7 @@ class Library(object): # Determine whether file is ASCII or binary try: - fh = io.open(filename, 'rb') + fh = open(filename, 'rb') # Grab 10 lines of the library sb = b''.join([fh.readline() for i in range(10)]) @@ -173,13 +172,13 @@ class Library(object): # No exception so proceed with ASCII - reopen in non-binary fh.close() - fh = io.open(filename, 'r') - fh.seek(0) - self._read_ascii(fh, table_names, verbose) + with open(filename, 'r') as fh: + fh.seek(0) + self._read_ascii(fh, table_names, verbose) except UnicodeDecodeError: fh.close() - fh = open(filename, 'rb') - self._read_binary(fh, table_names, verbose) + with open(filename, 'rb') as fh: + self._read_binary(fh, table_names, verbose) def _read_binary(self, ace_file, table_names, verbose=False, recl_length=4096, entries=512): diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index c2e1b24109..62b02048be 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -456,7 +456,7 @@ class Reaction(object): # YIELD AND ANGLE-ENERGY DISTRIBUTION # Determine multiplicity - ty = ace.xss[ace.jxs[5] + i_reaction - 1] + ty = int(ace.xss[ace.jxs[5] + i_reaction - 1]) rx.center_of_mass = (ty < 0) if i_reaction < ace.nxs[5] + 1: if ty != 19: diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 9f55941389..8ff83482e5 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -3,8 +3,9 @@ module nuclide_header use, intrinsic :: ISO_FORTRAN_ENV use, intrinsic :: ISO_C_BINDING - use hdf5 - use h5lt, only: h5ltpath_valid_f + use hdf5, only: HID_T, HSIZE_T, SIZE_T, h5iget_name_f, h5gget_info_f, & + h5lget_name_by_idx_f, H5_INDEX_NAME_F, H5_ITER_INC_F + use h5lt, only: h5ltpath_valid_f use constants use dict_header, only: DictIntInt diff --git a/src/reaction_header.F90 b/src/reaction_header.F90 index 185945563d..055dcb3923 100644 --- a/src/reaction_header.F90 +++ b/src/reaction_header.F90 @@ -1,6 +1,7 @@ module reaction_header - use hdf5 + use hdf5, only: HID_T, HSIZE_T, SIZE_T, h5gget_info_f, h5lget_name_by_idx_f, & + H5_INDEX_NAME_F, H5_ITER_INC_F use constants, only: MAX_WORD_LEN use hdf5_interface, only: read_attribute, open_group, close_group, & From b8681600638f8d1181edd9f0e2d06cb2a1f1ccc9 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 26 Jul 2016 22:35:28 -0500 Subject: [PATCH 186/417] Pesky little eV -> MeV --- openmc/data/neutron.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 5b587745d6..63b2bab01b 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -65,7 +65,7 @@ class IncidentNeutron(object): Contains summed cross sections, e.g., the total cross section. The keys are the MT values and the values are Reaction objects. temperature : float - Temperature of the target nuclide in eV. + Temperature of the target nuclide in MeV. urr : None or openmc.data.ProbabilityTables Unresolved resonance region probability tables From be7ca28dee279031d4be1bc33ada563f95733209 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 27 Jul 2016 18:02:38 -0500 Subject: [PATCH 187/417] Improve loading of cross sections from hdf5 Fix bug where reaction thresholds were not used. Automatically build summed reactions. Allow Tab1 evaluations of un-ordered datasets. --- openmc/data/function.py | 48 +++++++++++++++++++---------------------- openmc/data/neutron.py | 11 ++++++++++ openmc/data/reaction.py | 2 +- 3 files changed, 34 insertions(+), 27 deletions(-) diff --git a/openmc/data/function.py b/openmc/data/function.py index e2efb4c101..bea6f5e9a6 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -80,50 +80,46 @@ class Tabulated1D(object): # Get indices for interpolation idx = np.searchsorted(self.x, x, side='right') - 1 - # Find lowest valid index - i_low = np.searchsorted(idx, 0) - + # Loop over interpolation regions for k in range(len(self.breakpoints)): - # Determine which x values are within this interpolation range - i_high = np.searchsorted(idx, self.breakpoints[k] - 1) + # Get indices for the begining and ending of this region + i_begin = self.breakpoints[k-1] - 1 if k > 0 else 0 + i_end = self.breakpoints[k] - 1 - # Get x values and bounding (x,y) pairs - xk = x[i_low:i_high] - xi = self.x[idx[i_low:i_high]] - xi1 = self.x[idx[i_low:i_high] + 1] - yi = self.y[idx[i_low:i_high]] - yi1 = self.y[idx[i_low:i_high] + 1] + # Figure out which idx values lie within this region + contained = (idx >= i_begin) & (idx < i_end) + + xk = x[contained] # x values in this region + xi = self.x[idx[contained]] # low edge of corresponding bins + xi1 = self.x[idx[contained] + 1] # high edge of corresponding bins + yi = self.y[idx[contained]] + yi1 = self.y[idx[contained] + 1] if self.interpolation[k] == 1: # Histogram - y[i_low:i_high] = yi + y[contined] = yi elif self.interpolation[k] == 2: # Linear-linear - y[i_low:i_high] = yi + (xk - xi)/(xi1 - xi)*(yi1 - yi) + y[contained] = yi + (xk - xi)/(xi1 - xi)*(yi1 - yi) elif self.interpolation[k] == 3: # Linear-log - y[i_low:i_high] = yi + np.log(xk/xi)/np.log(xi1/xi)*(yi1 - yi) + y[contained] = yi + np.log(xk/xi)/np.log(xi1/xi)*(yi1 - yi) elif self.interpolation[k] == 4: # Log-linear - y[i_low:i_high] = yi*np.exp((xk - xi)/(xi1 - xi)*np.log(yi1/yi)) + y[contained] = yi*np.exp((xk - xi)/(xi1 - xi)*np.log(yi1/yi)) elif self.interpolation[k] == 5: # Log-log - y[i_low:i_high] = yi*np.exp(np.log(xk/xi)/np.log(xi1/xi)*np.log(yi1/yi)) + y[contained] = (yi*np.exp(np.log(xk/xi)/np.log(xi1/xi) + *np.log(yi1/yi))) - i_low = i_high - - # In some cases, the first/last point of x may be less than the first - # value of self.x due only to precision, so we check if they're close - # and set them equal if so. Otherwise, the interpolated value might be - # out of range (and thus zero) - if np.isclose(x[0], self.x[0], 1e-8): - y[0] = self.y[0] - if np.isclose(x[-1], self.x[-1], 1e-8): - y[-1] = self.y[-1] + # In some cases, x values might be outside the tabulated region due only + # to precision, so we check if they're close and set them equal if so. + y[np.isclose(x, self.x[0], atol=1e-14)] = self.y[0] + y[np.isclose(x, self.x[-1], atol=1e-14)] = self.y[-1] return y if iterable else y[0] diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 63b2bab01b..7cbcca8c71 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -326,6 +326,17 @@ class IncidentNeutron(object): tgroup = group['total_nu'] rx.derived_products.append(Product.from_hdf5(tgroup)) + # Build summed reactions. Start from the highest MT number because high + # MTs never depend on lower MTs. + for mt_sum in sorted(SUM_RULES.keys())[::-1]: + if mt_sum not in data: + xs_components = [data[mt].xs for mt in SUM_RULES[mt_sum] + if mt in data] + if len(xs_components) > 0: + rxn = Reaction(mt_sum) + rxn.xs = Sum(xs_components) + data.summed_reactions[mt_sum] = rxn + # Read unresolved resonance probability tables if 'urr' in group: urr_group = group['urr'] diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 62b02048be..ad707d276e 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -400,7 +400,7 @@ class Reaction(object): # Read cross section if 'xs' in group: xs = group['xs'].value - rx.xs = Tabulated1D(energy, xs) + rx.xs = Tabulated1D(energy[rx.threshold_idx:], xs) # Determine number of products n_product = 0 From 3e2e4743d80b2715c9001f0f97b2e3277a84ec03 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 28 Jul 2016 09:06:38 -0500 Subject: [PATCH 188/417] Address #686 comments --- openmc/data/neutron.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 7cbcca8c71..75c38e823f 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -328,7 +328,7 @@ class IncidentNeutron(object): # Build summed reactions. Start from the highest MT number because high # MTs never depend on lower MTs. - for mt_sum in sorted(SUM_RULES.keys())[::-1]: + for mt_sum in sorted(SUM_RULES, reverse=True): if mt_sum not in data: xs_components = [data[mt].xs for mt in SUM_RULES[mt_sum] if mt in data] From bce4132bc84b0351c7fe629eb8b51e6dedc6afbb Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 28 Jul 2016 16:47:19 -0400 Subject: [PATCH 189/417] removed line to capitalize columns when exporting xs data --- openmc/mgxs/mgxs.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2deeac797e..6c78e200da 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1399,10 +1399,6 @@ class MGXS(object): # Get a Pandas DataFrame for the data df = self.get_pandas_dataframe(groups=groups, xs_type=xs_type) - # Capitalize column label strings - #df.columns = df.columns.astype(str) - #df.columns = map(str.title, df.columns) - # Export the data using Pandas IO API if format == 'csv': df.to_csv(filename + '.csv', index=False) From 31771d8e2e6a88222355880623664d93639e5197 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 28 Jul 2016 16:27:11 -0500 Subject: [PATCH 190/417] Expand on IncidentNeutron.from_hdf5 in notebook --- .../pythonapi/examples/nuclear-data.ipynb | 506 +++++++++++++----- openmc/data/data.py | 9 +- 2 files changed, 376 insertions(+), 139 deletions(-) diff --git a/docs/source/pythonapi/examples/nuclear-data.ipynb b/docs/source/pythonapi/examples/nuclear-data.ipynb index 0c24079cf9..82be4a113f 100644 --- a/docs/source/pythonapi/examples/nuclear-data.ipynb +++ b/docs/source/pythonapi/examples/nuclear-data.ipynb @@ -32,7 +32,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The first thing we want to do is to read an ACE file into memory and instantiate a `IncidentNeutron` object. The easiest way to do this is with the `openmc.data.IncidentNeutron.from_ace(...)` factory method." + "## Importing from HDF5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `openmc.data` module can read OpenMC's HDF5-formatted data into Python objects. The easiest way to do this is with the `openmc.data.IncidentNeutron.from_hdf5(...)` factory method. Replace the `filename` variable below with a valid path to an HDF5 data file on your computer." ] }, { @@ -55,10 +62,10 @@ ], "source": [ "# Get filename for Gd-157\n", - "filename ='/opt/data/ace/nndc/293.6K/Gd_157_293.6K.ace'\n", + "filename ='/home/smharper/nuclear-data/nndc-hdf5/Gd157_71c.h5'\n", "\n", - "# Load ACE table into object\n", - "gd157 = openmc.data.IncidentNeutron.from_ace(filename)\n", + "# Load HDF5 data into object\n", + "gd157 = openmc.data.IncidentNeutron.from_hdf5(filename)\n", "gd157" ] }, @@ -66,7 +73,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now that we have our ACE table, we can look at its contents. Let's start off by plotting the total cross section. Reactions are indexed using their \"MT\" number -- a unique identifier for each reaction defined by the ENDF-6 format. The MT number for the total cross section is 1." + "## Cross sections" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From Python, it's easy to explore (and modify) the nuclear data. Let's start off by reading the total cross section. Reactions are indexed using their \"MT\" number -- a unique identifier for each reaction defined by the ENDF-6 format. The MT number for the total cross section is 1." ] }, { @@ -79,18 +93,129 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" + } + ], + "source": [ + "total = gd157[1]\n", + "total" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To find the cross section at a particular energy, 1 eV for example, simply call the reaction's `xs` attribute at that energy. Note that our nuclear data uses MeV as the unit of energy." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "142.6474702147809" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total.xs(1e-6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `xs` attribute can also be called on an array of energies." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 142.64747021, 38.65417611, 175.40019668])" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total.xs([1e-6, 2e-6, 3e-6])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A quick way to plot cross sections is to use the `energy` attribute of `IncidentNeutron`. This gives an array of all the energy values used in cross section interpolation." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1.00000000e-11, 1.03250000e-11, 1.06500000e-11, ...,\n", + " 1.95000000e+01, 1.99000000e+01, 2.00000000e+01])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gd157.energy" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" }, { "data": { - "image/png": "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\nAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -98,8 +223,7 @@ } ], "source": [ - "total = gd157[1]\n", - "plt.loglog(total.xs.x, total.xs.y)\n", + "plt.loglog(gd157.energy, total.xs(gd157.energy))\n", "plt.xlabel('Energy (MeV)')\n", "plt.ylabel('Cross section (b)')" ] @@ -115,7 +239,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -145,12 +269,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Let's suppose we want to look more closely at the (n,2n) reaction." + "Let's suppose we want to look more closely at the (n,2n) reaction. This reaction has an energy threshold" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -161,12 +285,64 @@ "text": [ "Threshold = 6.400881 MeV\n" ] + } + ], + "source": [ + "n2n = gd157[16]\n", + "print('Threshold = {} MeV'.format(n2n.threshold))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The (n,2n) cross section, like all basic cross sections, is represented by the `Tabulated1D` class. The energy and cross section values in the table can be directly accessed with the `x` and `y` attributes. Using the `x` and `y` has the nice benefit of automatically acounting for reaction thresholds." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "n2n.xs" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(6.400881, 20.0)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" }, { "data": { - "image/png": "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\n9zC0aV7vrgAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -174,12 +350,10 @@ } ], "source": [ - "n2n = gd157[16]\n", "plt.plot(n2n.xs.x, n2n.xs.y)\n", "plt.xlabel('Energy (MeV)')\n", "plt.ylabel('Cross section (b)')\n", - "plt.xlim((n2n.xs.x[0], n2n.xs.x[-1]))\n", - "print('Threshold = {} MeV'.format(n2n.threshold))" + "plt.xlim((n2n.xs.x[0], n2n.xs.x[-1]))" ] }, { @@ -191,7 +365,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -203,7 +377,7 @@ " ]" ] }, - "execution_count": 6, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -214,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -222,10 +396,10 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 7, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -244,7 +418,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -252,39 +426,39 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, - "execution_count": 8, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -303,16 +477,16 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "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\nMAzDMAyv/B9ZBCMoWOfF0wAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -333,14 +507,42 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Unresolved resonance probability tables\n", - "\n", - "We can also look at unresolved resonance probability tables which are stored in a `ProbabilityTables` object. In the following example, we'll create a plot showing what the total cross section probability tables look like as a function of incoming energy." + "There is also `summed_reactions` attribute for cross sections (like total) which are built from summing up other cross sections." ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ]\n" + ] + } + ], + "source": [ + "pprint(list(gd157.summed_reactions.values()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the cross sections for these reactions are represented by the `Sum` class rather than `Tabulated1D`. They do not support the `x` and `y` attributes." + ] + }, + { + "cell_type": "code", + "execution_count": 17, "metadata": { "collapsed": false }, @@ -348,18 +550,49 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 10, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gd157[27].xs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Unresolved resonance probability tables\n", + "\n", + "We can also look at unresolved resonance probability tables which are stored in a `ProbabilityTables` object. In the following example, we'll create a plot showing what the total cross section probability tables look like as a function of incoming energy." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -411,7 +644,7 @@ " color=cm(value)))\n", "\n", "# Overlay total cross section\n", - "ax.plot(total.xs.x, total.xs.y, 'k')\n", + "ax.plot(gd157.energy, total.xs(gd157.energy), 'k')\n", "\n", "# Make plot pretty and labeled\n", "ax.set_xlim(1e-6, 1e-1)\n", @@ -426,32 +659,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Exporting to HDF5\n", + "## Converting ACE to HDF5\n", "\n", - "To create an HDF5 nuclear data file for a nuclide, we can use the `export_to_hdf5()` method." + "The `openmc.data` package can also read ACE files and output HDF5 files. ACE files can be read with the `openmc.data.IncidentNeutron.from_ace(...)` factory method." ] }, { "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "gd157.export_to_hdf5('gd157.h5', 'w')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let's see what's in the HDF5 file." - ] - }, - { - "cell_type": "code", - "execution_count": 12, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -459,29 +674,80 @@ { "data": { "text/plain": [ - "['Gd157.71c']" + "" ] }, - "execution_count": 12, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "h5file = h5py.File('gd157.h5', 'r')\n", - "list(h5file)" + "filename = '/home/smharper/nuclear-data/nndc/293.6K/Gd_157_293.6K.ace'\n", + "gd157_ace = openmc.data.IncidentNeutron.from_ace(filename)\n", + "gd157_ace" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "All reaction data is contained in the `reactions` group under a nuclide. While the group for each reaction is only labeled by its MT value, we can look at the group attributes to get a label for the reaction." + "We can store this formerly ACE data as HDF5 with the `export_to_hdf5()` method." ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 20, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "gd157_ace.export_to_hdf5('gd157.h5', 'w')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With few exceptions, the HDF5 file encodes the same data as the ACE file." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gd157_reconstructed = openmc.data.IncidentNeutron.from_hdf5('gd157.h5')\n", + "gd157_ace[16].xs.y - gd157_reconstructed[16].xs.y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And one of the best parts of using HDF5 is that it is a widely used format with lots of third-party support. You can use `h5py`, for example, to inspect the data." + ] + }, + { + "cell_type": "code", + "execution_count": 22, "metadata": { "collapsed": false }, @@ -504,6 +770,7 @@ } ], "source": [ + "h5file = h5py.File('gd157.h5', 'r')\n", "main_group = h5file['Gd157.71c/reactions']\n", "for name, obj in sorted(list(main_group.items()))[:10]:\n", " if 'reaction_' in name:\n", @@ -512,7 +779,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -541,9 +808,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 24, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true }, "outputs": [ { @@ -564,7 +832,7 @@ " 7.77740000e-01])" ] }, - "execution_count": 15, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -572,57 +840,25 @@ "source": [ "n2n_group['xs'].value" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that we can go the other direction, converting data from an HDF5 file into a `NeutronTable` object:" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "gd157_reconstructed = openmc.data.IncidentNeutron.from_hdf5('gd157.h5')\n", - "gd157[16].xs.y - gd157_reconstructed[16].xs.y" - ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.2" + "pygments_lexer": "ipython2", + "version": "2.7.12" } }, "nbformat": 4, diff --git a/openmc/data/data.py b/openmc/data/data.py index 21fffc8cba..0365b37944 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -122,10 +122,11 @@ ATOMIC_SYMBOL = {1: 'H', 2: 'He', 3: 'Li', 4: 'Be', 5: 'B', 6: 'C', 7: 'N', 114: 'Fl', 116: 'Lv'} ATOMIC_NUMBER = {value: key for key, value in ATOMIC_SYMBOL.items()} -REACTION_NAME = {1: '(n,total)', 2: '(n,elastic)', 4: '(n,level)', 5: '(n,misc)', 11: '(n,2nd)', - 16: '(n,2n)', 17: '(n,3n)', 18: '(n,fission)', 19: '(n,f)', - 20: '(n,nf)', 21: '(n,2nf)', 22: '(n,na)', 23: '(n,n3a)', - 24: '(n,2na)', 25: '(n,3na)', 28: '(n,np)', 29: '(n,n2a)', +REACTION_NAME = {1: '(n,total)', 2: '(n,elastic)', 4: '(n,level)', + 5: '(n,misc)', 11: '(n,2nd)', 16: '(n,2n)', 17: '(n,3n)', + 18: '(n,fission)', 19: '(n,f)', 20: '(n,nf)', 21: '(n,2nf)', + 22: '(n,na)', 23: '(n,n3a)', 24: '(n,2na)', 25: '(n,3na)', + 27: '(n,absorption)', 28: '(n,np)', 29: '(n,n2a)', 30: '(n,2n2a)', 32: '(n,nd)', 33: '(n,nt)', 34: '(n,nHe-3)', 35: '(n,nd2a)', 36: '(n,nt2a)', 37: '(n,4n)', 38: '(n,3nf)', 41: '(n,2np)', 42: '(n,3np)', 44: '(n,n2p)', 45: '(n,npa)', From 2a607bea9dacc0f1fff9e3e85a6cd3b5b2718fec Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 28 Jul 2016 17:06:35 -0500 Subject: [PATCH 191/417] Address #678 comments --- src/initialize.F90 | 2 +- src/mesh.F90 | 20 ++++++++++---------- src/tally_filter_header.F90 | 14 +++++++------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/initialize.F90 b/src/initialize.F90 index 8814f11e34..99adf967f0 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -717,7 +717,7 @@ contains select type(filt => t % filters(j) % obj) type is (SurfaceFilter) ! Check if this is a surface filter only for surface currents - if (.not. any(t%score_bins == SCORE_CURRENT)) & + if (.not. any(t % score_bins == SCORE_CURRENT)) & call filt % initialize() class default call filt % initialize() diff --git a/src/mesh.F90 b/src/mesh.F90 index 333062d78f..0b227f4f5d 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -290,7 +290,7 @@ contains ! Check if line intersects left surface -- calculate the intersection point ! y - if ( (x0 < xm0 .and. x1 > xm0) .or. (x0 > xm0 .and. x1 < xm0) ) then + if ((x0 < xm0 .and. x1 > xm0) .or. (x0 > xm0 .and. x1 < xm0)) then yi = y0 + (xm0 - x0) * (y1 - y0) / (x1 - x0) if (yi >= ym0 .and. yi < ym1) then intersects = .true. @@ -300,7 +300,7 @@ contains ! Check if line intersects back surface -- calculate the intersection point ! x - if ( (y0 < ym0 .and. y1 > ym0) .or. (y0 > ym0 .and. y1 < ym0) ) then + if ((y0 < ym0 .and. y1 > ym0) .or. (y0 > ym0 .and. y1 < ym0)) then xi = x0 + (ym0 - y0) * (x1 - x0) / (y1 - y0) if (xi >= xm0 .and. xi < xm1) then intersects = .true. @@ -310,7 +310,7 @@ contains ! Check if line intersects right surface -- calculate the intersection ! point y - if ( (x0 < xm1 .and. x1 > xm1) .or. (x0 > xm1 .and. x1 < xm1) ) then + if ((x0 < xm1 .and. x1 > xm1) .or. (x0 > xm1 .and. x1 < xm1)) then yi = y0 + (xm1 - x0) * (y1 - y0) / (x1 - x0) if (yi >= ym0 .and. yi < ym1) then intersects = .true. @@ -320,7 +320,7 @@ contains ! Check if line intersects front surface -- calculate the intersection point ! x - if ( (y0 < ym1 .and. y1 > ym1) .or. (y0 > ym1 .and. y1 < ym1) ) then + if ((y0 < ym1 .and. y1 > ym1) .or. (y0 > ym1 .and. y1 < ym1)) then xi = x0 + (ym1 - y0) * (x1 - x0) / (y1 - y0) if (xi >= xm0 .and. xi < xm1) then intersects = .true. @@ -367,7 +367,7 @@ contains ! Check if line intersects left surface -- calculate the intersection point ! (y,z) - if ( (x0 < xm0 .and. x1 > xm0) .or. (x0 > xm0 .and. x1 < xm0) ) then + if ((x0 < xm0 .and. x1 > xm0) .or. (x0 > xm0 .and. x1 < xm0)) then yi = y0 + (xm0 - x0) * (y1 - y0) / (x1 - x0) zi = z0 + (xm0 - x0) * (z1 - z0) / (x1 - x0) if (yi >= ym0 .and. yi < ym1 .and. zi >= zm0 .and. zi < zm1) then @@ -378,7 +378,7 @@ contains ! Check if line intersects back surface -- calculate the intersection point ! (x,z) - if ( (y0 < ym0 .and. y1 > ym0) .or. (y0 > ym0 .and. y1 < ym0) ) then + if ((y0 < ym0 .and. y1 > ym0) .or. (y0 > ym0 .and. y1 < ym0)) then xi = x0 + (ym0 - y0) * (x1 - x0) / (y1 - y0) zi = z0 + (ym0 - y0) * (z1 - z0) / (y1 - y0) if (xi >= xm0 .and. xi < xm1 .and. zi >= zm0 .and. zi < zm1) then @@ -389,7 +389,7 @@ contains ! Check if line intersects bottom surface -- calculate the intersection ! point (x,y) - if ( (z0 < zm0 .and. z1 > zm0) .or. (z0 > zm0 .and. z1 < zm0) ) then + if ((z0 < zm0 .and. z1 > zm0) .or. (z0 > zm0 .and. z1 < zm0)) then xi = x0 + (zm0 - z0) * (x1 - x0) / (z1 - z0) yi = y0 + (zm0 - z0) * (y1 - y0) / (z1 - z0) if (xi >= xm0 .and. xi < xm1 .and. yi >= ym0 .and. yi < ym1) then @@ -400,7 +400,7 @@ contains ! Check if line intersects right surface -- calculate the intersection point ! (y,z) - if ( (x0 < xm1 .and. x1 > xm1) .or. (x0 > xm1 .and. x1 < xm1) ) then + if ((x0 < xm1 .and. x1 > xm1) .or. (x0 > xm1 .and. x1 < xm1)) then yi = y0 + (xm1 - x0) * (y1 - y0) / (x1 - x0) zi = z0 + (xm1 - x0) * (z1 - z0) / (x1 - x0) if (yi >= ym0 .and. yi < ym1 .and. zi >= zm0 .and. zi < zm1) then @@ -411,7 +411,7 @@ contains ! Check if line intersects front surface -- calculate the intersection point ! (x,z) - if ( (y0 < ym1 .and. y1 > ym1) .or. (y0 > ym1 .and. y1 < ym1) ) then + if ((y0 < ym1 .and. y1 > ym1) .or. (y0 > ym1 .and. y1 < ym1)) then xi = x0 + (ym1 - y0) * (x1 - x0) / (y1 - y0) zi = z0 + (ym1 - y0) * (z1 - z0) / (y1 - y0) if (xi >= xm0 .and. xi < xm1 .and. zi >= zm0 .and. zi < zm1) then @@ -422,7 +422,7 @@ contains ! Check if line intersects top surface -- calculate the intersection point ! (x,y) - if ( (z0 < zm1 .and. z1 > zm1) .or. (z0 > zm1 .and. z1 < zm1) ) then + if ((z0 < zm1 .and. z1 > zm1) .or. (z0 > zm1 .and. z1 < zm1)) then xi = x0 + (zm1 - z0) * (x1 - x0) / (z1 - z0) yi = y0 + (zm1 - z0) * (y1 - y0) / (z1 - z0) if (xi >= xm0 .and. xi < xm1 .and. yi >= ym0 .and. yi < ym1) then diff --git a/src/tally_filter_header.F90 b/src/tally_filter_header.F90 index 5b5e278e37..d469311e68 100644 --- a/src/tally_filter_header.F90 +++ b/src/tally_filter_header.F90 @@ -18,9 +18,9 @@ module tally_filter_header contains procedure(get_next_bin_), deferred :: get_next_bin procedure(to_statepoint_), deferred :: to_statepoint - procedure :: to_summary => to_summary_ + procedure :: to_summary => filter_to_summary procedure(text_label_), deferred :: text_label - procedure :: initialize => initialize_ + procedure :: initialize => filter_initialize end type TallyFilter abstract interface @@ -46,7 +46,7 @@ module tally_filter_header end subroutine get_next_bin_ !=============================================================================== -! TO_STATPEOINT writes all the information needed to reconstruct the filter to +! TO_STATEPOINT writes all the information needed to reconstruct the filter to ! the given filter_group. subroutine to_statepoint_(this, filter_group) @@ -87,19 +87,19 @@ contains ! given filter_group. If this procedure is not overridden by the derived class, ! then it will call to_statepoint by default. - subroutine to_summary_(this, filter_group) + subroutine filter_to_summary(this, filter_group) class(TallyFilter), intent(in) :: this integer(HID_T), intent(in) :: filter_group call this % to_statepoint(filter_group) - end subroutine to_summary_ + end subroutine filter_to_summary !=============================================================================== ! INITIALIZE sets up any internal data, as necessary. If this procedure is not ! overriden by the derived class, then it will do nothing by default. - subroutine initialize_(this) + subroutine filter_initialize(this) class(TallyFilter), intent(inout) :: this - end subroutine initialize_ + end subroutine filter_initialize end module tally_filter_header From 2342d17431ac10202f71402e3d6af6899b32396c Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 29 Jul 2016 11:09:54 -0400 Subject: [PATCH 192/417] changed mgxs velocity to inverse velocity to avoid test suite round off issue --- .../pythonapi/examples/mgxs-part-i.ipynb | 8 +- .../pythonapi/examples/mgxs-part-iii.ipynb | 2 +- openmc/mgxs/library.py | 2 +- openmc/mgxs/mgxs.py | 83 +-- .../inputs_true.dat | 2 +- .../results_true.dat | 252 ++++----- .../inputs_true.dat | 2 +- .../results_true.dat | 84 +-- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 318 +++++------ .../inputs_true.dat | 2 +- .../results_true.dat | 516 +++++++++--------- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_tallies/inputs_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +++---- tests/testing_harness.py | 8 - 19 files changed, 734 insertions(+), 765 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 4146d0c861..7c5132100e 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -384,7 +384,7 @@ "* `NuScatterMatrixXS`\n", "* `Chi`\n", "* `ChiPrompt`\n", - "* `Velocity`\n", + "* `InverseVelocity`\n", "* `PromptNuFissionXS`\n", "\n", "These classes provide us with an interface to generate the tally inputs as well as perform post-processing of OpenMC's tally data to compute the respective multi-group cross sections. In this case, let's create the multi-group total, absorption and scattering cross sections with our 2-group structure." @@ -1167,14 +1167,14 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 5c139661f0..39980a8fd7 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -550,7 +550,7 @@ "* `NuScatterMatrixXS` (`\"nu-scatter matrix\"`)\n", "* `Chi` (`\"chi\"`)\n", "* `ChiPrompt` (`\"chi prompt\"`)\n", - "* `Velocity` (`\"velocity\"`)\n", + "* `InverseVelocity` (`\"inverse-velocity\"`)\n", "* `PromptNuFissionXS` (`\"prompt-nu-fission\"`)\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\"`, `'\"fission\"`, `\"nu-scatter matrix\"` and `\"chi\"` cross sections for our `Library`.\n", diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index fd974bfebe..bf822017c1 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -452,7 +452,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', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi', 'chi-prompt', 'velocity', 'prompt-nu-fission'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi', 'chi-prompt', 'inverse-velocity', 'prompt-nu-fission'} The type of multi-group cross section object to return Returns diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 0c820a9204..c359379f49 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -36,7 +36,7 @@ MGXS_TYPES = ['total', 'nu-fission matrix', 'chi', 'chi-prompt', - 'velocity', + 'inverse-velocity', 'prompt-nu-fission'] @@ -430,7 +430,7 @@ class MGXS(object): Parameters ---------- - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', 'chi', 'chi-prompt', 'velocity', 'prompt-nu-fission'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', 'chi', 'chi-prompt', 'inverse-velocity', 'prompt-nu-fission'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization @@ -487,8 +487,8 @@ class MGXS(object): mgxs = Chi(domain, domain_type, energy_groups) elif mgxs_type == 'chi-prompt': mgxs = ChiPrompt(domain, domain_type, energy_groups) - elif mgxs_type == 'velocity': - mgxs = Velocity(domain, domain_type, energy_groups) + elif mgxs_type == 'inverse-velocity': + mgxs = InverseVelocity(domain, domain_type, energy_groups) elif mgxs_type == 'prompt-nu-fission': mgxs = PromptNuFissionXS(domain, domain_type, energy_groups) @@ -4787,35 +4787,34 @@ class ChiPrompt(Chi): return ['prompt-nu-fission', 'prompt-nu-fission'] -class Velocity(MGXS): - r"""A velocity multi-group cross section. +class InverseVelocity(MGXS): + r"""An inverse velocity multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated - multi-group neutron velocities for multi-group neutronics calculations. - The units of velocity are centimeters per second. At a minimum, one needs to - set the :attr:`Velocity.energy_groups` and :attr:`Velocity.domain` - properties. Tallies for the flux and appropriate reaction rates over the - specified domain are generated automatically via the - :attr:`Velocity.tallies` property, which can then be appended to a - :class:`openmc.Tallies` instance. + multi-group neutron inverse velocities for multi-group neutronics + calculations. The units of inverse velocity are seconds per centimeter. At a + minimum, one needs to set the :attr:`InverseVelocity.energy_groups` and + :attr:`InverseVelocity.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`InverseVelocity.tallies` property, which can + then be appended to a :class:`openmc.Tallies` instance. For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the necessary data to compute multi-group cross sections from a :class:`openmc.StatePoint` instance. The derived multi-group cross section - can then be obtained from the :attr:`Velocity.xs_tally` property. + can then be obtained from the :attr:`InverseVelocity.xs_tally` property. For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the - neutron velocities are calculated by tallying the flux-weighted inverse - velocity and the flux. The velocity is then the inverse of the flux-weighted - inverse velocity divided by the flux. This equates to dividing the - spatially-homogenized and energy-integrated flux by the inverse velocity: + neutron inverse velocities are calculated by tallying the flux-weighted + inverse velocity and the flux. The inverse velocity is then the + flux-weighted inverse velocity divided by the flux: .. math:: \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} - d\Omega \int_{E_g}^{E_{g-1}} dE \; \frac{\psi (r, E, \Omega)}{v (r, E)}}. + \frac{\psi (r, E, \Omega)}{v (r, E)}}{\int_{r \in V} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)} Parameters ---------- @@ -4859,8 +4858,8 @@ class Velocity(MGXS): The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys - are strings listed in the :attr:`Velocity.tally_keys` property and - values are instances of :class:`openmc.Tally`. + are strings listed in the :attr:`InverseVelocity.tally_keys` property + and values are instances of :class:`openmc.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 @@ -4895,37 +4894,15 @@ class Velocity(MGXS): def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(Velocity, self).__init__(domain, domain_type, + super(InverseVelocity, self).__init__(domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'velocity' - - @property - def scores(self): - return ['inverse-velocity', 'flux'] - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['flux'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally - - @property - def xs_tally(self): - - if self._xs_tally is None: - inverse_velocity = self.tallies['inverse-velocity'] - - # Compute the velocity - self._xs_tally = self.rxn_rate_tally / inverse_velocity - super(Velocity, self)._compute_xs() - - return self._xs_tally + self._rxn_type = 'inverse-velocity' def get_units(self, xs_type='macro'): - """Returns the units of Velocity. + """Returns the units of InverseVelocity. - This method returns the units of a Velocity based on a desired xs_type. + This method returns the units of an InverseVelocity based on a desired + xs_type. Parameters ---------- @@ -4936,17 +4913,17 @@ class Velocity(MGXS): Returns ------- str - A string representing the units of the Velocity. + A string representing the units of the InverseVelocity. """ cv.check_value('xs_type', xs_type, ['macro', 'micro']) if xs_type == 'macro': - return 'cm/second' + return 'second/cm' else: - raise ValueError('Unable to return the units of Velocity for ' - 'xs_type other than "macro"') + raise ValueError('Unable to return the units of InverseVelocity for' + ' xs_type other than "macro"') class PromptNuFissionXS(MGXS): diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index 840a3987e7..0c648376e8 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -d4ad3ef5f03913bcedf7dad7f9ace431e0701dac128d1f38f571898b2c79d6b207191fd1e726d9b3c14b2b994ea9d3ba5b10489be3af9c8fbb41868b85940d9f +e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index fbdab856f8..204a7e35d9 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,126 +1,126 @@ - material group in nuclide mean std. dev. -0 10000 1 total 4.536244e-01 2.105270e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008522e-01 2.285755e-02 - material group in nuclide mean std. dev. -0 10000 1 total 4.008522e-01 2.285755e-02 - material group in nuclide mean std. dev. -0 10000 1 total 6.490346e-02 4.312761e-03 - material group in nuclide mean std. dev. -0 10000 1 total 2.804807e-02 4.579964e-03 - material group in nuclide mean std. dev. -0 10000 1 total 3.685539e-02 2.622160e-03 - material group in nuclide mean std. dev. -0 10000 1 total 9.064929e-02 6.409875e-03 - material group in nuclide mean std. dev. -0 10000 1 total 7.137955e+00 5.073638e-01 - material group in nuclide mean std. dev. -0 10000 1 total 3.887210e-01 1.783043e-02 - material group in nuclide mean std. dev. -0 10000 1 total 3.893036e-01 2.307554e-02 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893036e-01 2.314560e-02 -1 10000 1 1 total P1 4.622442e-02 5.907170e-03 -2 10000 1 1 total P2 1.798359e-02 2.882972e-03 -3 10000 1 1 total P3 6.628374e-03 2.457109e-03 - material group in group out nuclide moment mean std. dev. -0 10000 1 1 total P0 3.893036e-01 2.314560e-02 -1 10000 1 1 total P1 4.622442e-02 5.907170e-03 -2 10000 1 1 total P2 1.798359e-02 2.882972e-03 -3 10000 1 1 total P3 6.628374e-03 2.457109e-03 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 1.000000e+00 6.611082e-02 - material group in group out nuclide mean std. dev. -0 10000 1 1 total 8.583502e-02 5.591825e-03 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000e+00 4.607052e-02 - material group out nuclide mean std. dev. -0 10000 1 total 1.000000e+00 5.147146e-02 - material group in nuclide mean std. dev. -0 10000 1 total 2.001309e+06 1.462166e+05 - material group in nuclide mean std. dev. -0 10000 1 total 9.000398e-02 6.366908e-03 - material group in nuclide mean std. dev. -0 10001 1 total 3.115941e-01 1.379317e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792551e-01 2.918950e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.792551e-01 2.918950e-02 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846e-03 2.863341e-04 - material group in nuclide mean std. dev. -0 10001 1 total 2.209846e-03 2.863341e-04 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 3.093843e-01 1.355127e-02 - material group in nuclide mean std. dev. -0 10001 1 total 3.079873e-01 2.930809e-02 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873e-01 2.930809e-02 -1 10001 1 1 total P1 3.061715e-02 7.464456e-03 -2 10001 1 1 total P2 1.891149e-02 4.322828e-03 -3 10001 1 1 total P3 6.234618e-03 3.338202e-03 - material group in group out nuclide moment mean std. dev. -0 10001 1 1 total P0 3.079873e-01 2.930809e-02 -1 10001 1 1 total P1 3.061715e-02 7.464456e-03 -2 10001 1 1 total P2 1.891149e-02 4.322828e-03 -3 10001 1 1 total P3 6.234618e-03 3.338202e-03 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 1.000000e+00 9.503872e-02 - material group in group out nuclide mean std. dev. -0 10001 1 1 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10001 1 total 1.833261e+06 1.663552e+05 - material group in nuclide mean std. dev. -0 10001 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 9.049988e-01 4.396449e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991840e-01 4.091412e-02 - material group in nuclide mean std. dev. -0 10002 1 total 4.991840e-01 4.091412e-02 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341e-03 5.545244e-04 - material group in nuclide mean std. dev. -0 10002 1 total 6.060341e-03 5.545244e-04 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 8.989385e-01 4.349298e-02 - material group in nuclide mean std. dev. -0 10002 1 total 9.034147e-01 4.395874e-02 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034147e-01 4.358599e-02 -1 10002 1 1 total P1 4.104174e-01 1.587722e-02 -2 10002 1 1 total P2 1.433010e-01 7.187378e-03 -3 10002 1 1 total P3 8.739426e-03 3.571441e-03 - material group in group out nuclide moment mean std. dev. -0 10002 1 1 total P0 9.034147e-01 4.358599e-02 -1 10002 1 1 total P1 4.104174e-01 1.587722e-02 -2 10002 1 1 total P2 1.433010e-01 7.187378e-03 -3 10002 1 1 total P3 8.739426e-03 3.571441e-03 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 1.000000e+00 5.686673e-02 - material group in group out nuclide mean std. dev. -0 10002 1 1 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -0 10002 1 total 1.732200e+06 1.596914e+05 - material group in nuclide mean std. dev. -0 10002 1 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +0 10000 1 total 0.453624 0.021053 + material group in nuclide mean std. dev. +0 10000 1 total 0.400852 0.022858 + material group in nuclide mean std. dev. +0 10000 1 total 0.400852 0.022858 + material group in nuclide mean std. dev. +0 10000 1 total 0.064903 0.004313 + material group in nuclide mean std. dev. +0 10000 1 total 0.028048 0.00458 + material group in nuclide mean std. dev. +0 10000 1 total 0.036855 0.002622 + material group in nuclide mean std. dev. +0 10000 1 total 0.090649 0.00641 + material group in nuclide mean std. dev. +0 10000 1 total 7.137955 0.507364 + material group in nuclide mean std. dev. +0 10000 1 total 0.388721 0.01783 + material group in nuclide mean std. dev. +0 10000 1 total 0.389304 0.023076 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 0.389304 0.023146 +1 10000 1 1 total P1 0.046224 0.005907 +2 10000 1 1 total P2 0.017984 0.002883 +3 10000 1 1 total P3 0.006628 0.002457 + material group in group out nuclide moment mean std. dev. +0 10000 1 1 total P0 0.389304 0.023146 +1 10000 1 1 total P1 0.046224 0.005907 +2 10000 1 1 total P2 0.017984 0.002883 +3 10000 1 1 total P3 0.006628 0.002457 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 1 0.066111 + material group in group out nuclide mean std. dev. +0 10000 1 1 total 0.085835 0.005592 + material group out nuclide mean std. dev. +0 10000 1 total 1 0.046071 + material group out nuclide mean std. dev. +0 10000 1 total 1 0.051471 + material group in nuclide mean std. dev. +0 10000 1 total 4.996730e-07 3.650635e-08 + material group in nuclide mean std. dev. +0 10000 1 total 0.090004 0.006367 + material group in nuclide mean std. dev. +0 10001 1 total 0.311594 0.013793 + material group in nuclide mean std. dev. +0 10001 1 total 0.279255 0.02919 + material group in nuclide mean std. dev. +0 10001 1 total 0.279255 0.02919 + material group in nuclide mean std. dev. +0 10001 1 total 0.00221 0.000286 + material group in nuclide mean std. dev. +0 10001 1 total 0.00221 0.000286 + material group in nuclide mean std. dev. +0 10001 1 total 0 0 + material group in nuclide mean std. dev. +0 10001 1 total 0 0 + material group in nuclide mean std. dev. +0 10001 1 total 0 0 + material group in nuclide mean std. dev. +0 10001 1 total 0.309384 0.013551 + material group in nuclide mean std. dev. +0 10001 1 total 0.307987 0.029308 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 0.307987 0.029308 +1 10001 1 1 total P1 0.030617 0.007464 +2 10001 1 1 total P2 0.018911 0.004323 +3 10001 1 1 total P3 0.006235 0.003338 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 0.307987 0.029308 +1 10001 1 1 total P1 0.030617 0.007464 +2 10001 1 1 total P2 0.018911 0.004323 +3 10001 1 1 total P3 0.006235 0.003338 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 1 0.095039 + material group in group out nuclide mean std. dev. +0 10001 1 1 total 0 0 + material group out nuclide mean std. dev. +0 10001 1 total 0 0 + material group out nuclide mean std. dev. +0 10001 1 total 0 0 + material group in nuclide mean std. dev. +0 10001 1 total 5.454760e-07 4.949800e-08 + material group in nuclide mean std. dev. +0 10001 1 total 0 0 + material group in nuclide mean std. dev. +0 10002 1 total 0.904999 0.043964 + material group in nuclide mean std. dev. +0 10002 1 total 0.499184 0.040914 + material group in nuclide mean std. dev. +0 10002 1 total 0.499184 0.040914 + material group in nuclide mean std. dev. +0 10002 1 total 0.00606 0.000555 + material group in nuclide mean std. dev. +0 10002 1 total 0.00606 0.000555 + material group in nuclide mean std. dev. +0 10002 1 total 0 0 + material group in nuclide mean std. dev. +0 10002 1 total 0 0 + material group in nuclide mean std. dev. +0 10002 1 total 0 0 + material group in nuclide mean std. dev. +0 10002 1 total 0.898938 0.043493 + material group in nuclide mean std. dev. +0 10002 1 total 0.903415 0.043959 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 0.903415 0.043586 +1 10002 1 1 total P1 0.410417 0.015877 +2 10002 1 1 total P2 0.143301 0.007187 +3 10002 1 1 total P3 0.008739 0.003571 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 0.903415 0.043586 +1 10002 1 1 total P1 0.410417 0.015877 +2 10002 1 1 total P2 0.143301 0.007187 +3 10002 1 1 total P3 0.008739 0.003571 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 1 0.056867 + material group in group out nuclide mean std. dev. +0 10002 1 1 total 0 0 + material group out nuclide mean std. dev. +0 10002 1 total 0 0 + material group out nuclide mean std. dev. +0 10002 1 total 0 0 + material group in nuclide mean std. dev. +0 10002 1 total 5.773006e-07 5.322132e-08 + material group in nuclide mean std. dev. +0 10002 1 total 0 0 diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 610d2e1af4..055ce35a57 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -8387be0df212cc1b277f42e4b7946b7b1097b34a2d51733bbc0ce1fcc86b0ae97676770b0a4230735e8c11d769989a8c6f702d9f48eb1a145ab6517128443fb7 +2d948f3b12293294eaeca231a3df9d51195379e8bb38dd3e68d3bc512a7d08ed52a1109054ca381684ec127268710f6d6e9210ac8154c9b379608e996627624a \ 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 7b66c39e49..dec30061f6 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,42 @@ - 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 1.145934e+00 5.538217e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192e-01 5.206443e-01 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.189192e-01 5.206443e-01 - 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 1.976221e-02 1.062876e-02 - 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 1.976221e-02 1.062876e-02 - 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.000000e+00 0.000000e+00 - 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.000000e+00 0.000000e+00 - 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.000000e+00 0.000000e+00 - 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 1.126172e+00 5.434400e-01 - 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 1.142547e+00 5.701314e-01 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547e+00 5.701314e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813e-01 2.163222e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018e-01 6.650377e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827e-02 2.462083e-02 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547e+00 5.701314e-01 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 4.473813e-01 2.163222e-01 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 1.412018e-01 6.650377e-02 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 3.922827e-02 2.462083e-02 - 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 1.000000e+00 5.297173e-01 - 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.000000e+00 0.000000e+00 - 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.000000e+00 0.000000e+00 - 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.000000e+00 0.000000e+00 - avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.742457e+05 4.163977e+05 - 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.000000e+00 0.000000e+00 + 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 1.145934 0.553822 + 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.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.019762 0.010629 + 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.019762 0.010629 + 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 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 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 nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 1.126172 0.54344 + 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 1.142547 0.570131 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 + 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 1 0.529717 + 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 0 + 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 + 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 + 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.000001 6.946255e-07 + 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 diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index 840a3987e7..0c648376e8 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -d4ad3ef5f03913bcedf7dad7f9ace431e0701dac128d1f38f571898b2c79d6b207191fd1e726d9b3c14b2b994ea9d3ba5b10489be3af9c8fbb41868b85940d9f +e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e \ 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 3160e850fd..b2bd28f279 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,222 +1,222 @@ domain=10000 type=total -[4.148255e-01 6.601699e-01] -[2.279291e-02 4.751893e-02] +[ 0.41482549 0.66016992] +[ 0.02279291 0.04751893] domain=10000 type=transport -[3.568596e-01 6.476477e-01] -[2.549360e-02 2.370374e-02] +[ 0.35685964 0.64764766] +[ 0.0254936 0.02370374] domain=10000 type=nu-transport -[3.568596e-01 6.476477e-01] -[2.549360e-02 2.370374e-02] +[ 0.35685964 0.64764766] +[ 0.0254936 0.02370374] domain=10000 type=absorption -[2.740784e-02 2.645107e-01] -[2.692497e-03 2.336708e-02] +[ 0.02740784 0.26451074] +[ 0.0026925 0.02336708] domain=10000 type=capture -[1.984455e-02 7.171935e-02] -[2.643304e-03 2.520786e-02] +[ 0.01984455 0.07171935] +[ 0.0026433 0.02520786] domain=10000 type=fission -[7.563295e-03 1.927914e-01] -[5.084837e-04 1.710592e-02] +[ 0.00756329 0.19279139] +[ 0.00050848 0.01710592] domain=10000 type=nu-fission -[1.943174e-02 4.697748e-01] -[1.322976e-03 4.168200e-02] +[ 0.01943174 0.46977478] +[ 0.00132298 0.041682 ] domain=10000 type=kappa-fission -[1.474570e+00 3.728690e+01] -[9.923532e-02 3.308378e+00] +[ 1.47456982 37.28689641] +[ 0.09923532 3.30837772] domain=10000 type=scatter -[3.874176e-01 3.956592e-01] -[2.062573e-02 2.512506e-02] +[ 0.38741765 0.39565918] +[ 0.02062573 0.02512506] domain=10000 type=nu-scatter -[3.851884e-01 4.123894e-01] -[2.694562e-02 1.542528e-02] +[ 0.38518839 0.4123894 ] +[ 0.02694562 0.01542528] domain=10000 type=scatter matrix -[[[3.841995e-01 5.187028e-02 2.006885e-02 9.477716e-03] - [9.889304e-04 -2.072346e-04 -1.033662e-04 2.342906e-04]] +[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] + [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] - [[9.246399e-04 -7.677050e-04 4.937889e-04 -1.714972e-04] - [4.114648e-01 1.648173e-02 6.371490e-03 -1.049912e-02]]] -[[[2.700101e-02 6.982549e-03 2.846495e-03 2.233520e-03] - [4.824194e-04 1.490108e-04 1.843163e-04 1.281731e-04]] + [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] + [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] +[[[ 0.02700101 0.00698255 0.0028465 0.00223352] + [ 0.00048242 0.00014901 0.00018432 0.00012817]] - [[9.248835e-04 7.679072e-04 4.939189e-04 1.715424e-04] - [1.524494e-02 4.501728e-03 1.055075e-02 1.043819e-02]]] + [[ 0.00092488 0.00076791 0.00049392 0.00017154] + [ 0.01524494 0.00450173 0.01055075 0.01043819]]] domain=10000 type=nu-scatter matrix -[[[3.841995e-01 5.187028e-02 2.006885e-02 9.477716e-03] - [9.889304e-04 -2.072346e-04 -1.033662e-04 2.342906e-04]] +[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] + [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] - [[9.246399e-04 -7.677050e-04 4.937889e-04 -1.714972e-04] - [4.114648e-01 1.648173e-02 6.371490e-03 -1.049912e-02]]] -[[[2.700101e-02 6.982549e-03 2.846495e-03 2.233520e-03] - [4.824194e-04 1.490108e-04 1.843163e-04 1.281731e-04]] + [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] + [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] +[[[ 0.02700101 0.00698255 0.0028465 0.00223352] + [ 0.00048242 0.00014901 0.00018432 0.00012817]] - [[9.248835e-04 7.679072e-04 4.939189e-04 1.715424e-04] - [1.524494e-02 4.501728e-03 1.055075e-02 1.043819e-02]]] + [[ 0.00092488 0.00076791 0.00049392 0.00017154] + [ 0.01524494 0.00450173 0.01055075 0.01043819]]] domain=10000 type=multiplicity matrix -[[1.000000e+00 1.000000e+00] - [1.000000e+00 1.000000e+00]] -[[7.851646e-02 6.871843e-01] - [1.414214e+00 4.113035e-02]] +[[ 1. 1.] + [ 1. 1.]] +[[ 0.07851646 0.68718427] + [ 1.41421356 0.04113035]] domain=10000 type=nu-fission matrix -[[2.014243e-02 0.000000e+00] - [4.543665e-01 0.000000e+00]] -[[3.149092e-03 0.000000e+00] - [2.742551e-02 0.000000e+00]] +[[ 0.02014243 0. ] + [ 0.45436647 0. ]] +[[ 0.00314909 0. ] + [ 0.02742551 0. ]] domain=10000 type=chi -[1.000000e+00 0.000000e+00] -[4.607052e-02 0.000000e+00] +[ 1. 0.] +[ 0.04607052 0. ] domain=10000 type=chi-prompt -[1.000000e+00 0.000000e+00] -[5.147146e-02 0.000000e+00] -domain=10000 type=velocity -[1.751521e+07 3.501720e+05] -[1.438175e+06 2.994593e+04] +[ 1. 0.] +[ 0.05147146 0. ] +domain=10000 type=inverse-velocity +[ 5.70932329e-08 2.85573950e-06] +[ 4.68792969e-09 2.44216503e-07] domain=10000 type=prompt-nu-fission -[1.923922e-02 4.667190e-01] -[1.309506e-03 4.141087e-02] +[ 0.01923922 0.46671903] +[ 0.00130951 0.04141087] domain=10001 type=total -[3.137377e-01 3.008214e-01] -[1.558190e-02 2.805245e-02] +[ 0.31373767 0.3008214 ] +[ 0.0155819 0.02805245] domain=10001 type=transport -[2.732279e-01 3.123748e-01] -[3.311537e-02 4.960583e-02] +[ 0.27322787 0.31237484] +[ 0.03311537 0.04960583] domain=10001 type=nu-transport -[2.732279e-01 3.123748e-01] -[3.311537e-02 4.960583e-02] +[ 0.27322787 0.31237484] +[ 0.03311537 0.04960583] domain=10001 type=absorption -[1.574991e-03 5.400379e-03] -[3.225479e-04 6.181383e-04] +[ 0.00157499 0.00540038] +[ 0.00032255 0.00061814] domain=10001 type=capture -[1.574991e-03 5.400379e-03] -[3.225479e-04 6.181383e-04] +[ 0.00157499 0.00540038] +[ 0.00032255 0.00061814] domain=10001 type=fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[ 0. 0.] +[ 0. 0.] domain=10001 type=nu-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[ 0. 0.] +[ 0. 0.] domain=10001 type=kappa-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[ 0. 0.] +[ 0. 0.] domain=10001 type=scatter -[3.121627e-01 2.954210e-01] -[1.532192e-02 2.744549e-02] +[ 0.31216268 0.29542102] +[ 0.01532192 0.02744549] domain=10001 type=nu-scatter -[3.101207e-01 2.962643e-01] -[3.378811e-02 4.379223e-02] +[ 0.31012074 0.29626427] +[ 0.03378811 0.04379223] domain=10001 type=scatter matrix -[[[3.101207e-01 3.822959e-02 2.074494e-02 7.964297e-03] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] +[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] + [ 0. 0. 0. 0. ]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [2.962643e-01 -1.121364e-02 8.836566e-03 -3.270067e-03]]] -[[[3.378811e-02 8.483997e-03 4.695611e-03 3.731623e-03] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0. ] + [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] +[[[ 0.03378811 0.008484 0.00469561 0.00373162] + [ 0. 0. 0. 0. ]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [4.379223e-02 1.618037e-02 1.150396e-02 7.328846e-03]]] + [[ 0. 0. 0. 0. ] + [ 0.04379223 0.01618037 0.01150396 0.00732885]]] domain=10001 type=nu-scatter matrix -[[[3.101207e-01 3.822959e-02 2.074494e-02 7.964297e-03] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] +[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] + [ 0. 0. 0. 0. ]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [2.962643e-01 -1.121364e-02 8.836566e-03 -3.270067e-03]]] -[[[3.378811e-02 8.483997e-03 4.695611e-03 3.731623e-03] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0. ] + [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] +[[[ 0.03378811 0.008484 0.00469561 0.00373162] + [ 0. 0. 0. 0. ]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [4.379223e-02 1.618037e-02 1.150396e-02 7.328846e-03]]] + [[ 0. 0. 0. 0. ] + [ 0.04379223 0.01618037 0.01150396 0.00732885]]] domain=10001 type=multiplicity matrix -[[1.000000e+00 0.000000e+00] - [0.000000e+00 1.000000e+00]] -[[1.087787e-01 0.000000e+00] - [0.000000e+00 1.424272e-01]] +[[ 1. 0.] + [ 0. 1.]] +[[ 0.1087787 0. ] + [ 0. 0.14242717]] domain=10001 type=nu-fission matrix -[[0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00]] -[[0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00]] +[[ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.]] domain=10001 type=chi -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[ 0. 0.] +[ 0. 0.] domain=10001 type=chi-prompt -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] -domain=10001 type=velocity -[1.667784e+07 3.349534e+05] -[1.266444e+06 3.833678e+04] +[ 0. 0.] +[ 0. 0.] +domain=10001 type=inverse-velocity +[ 5.99598048e-08 2.98549021e-06] +[ 4.55309296e-09 3.41701554e-07] domain=10001 type=prompt-nu-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[ 0. 0.] +[ 0. 0.] domain=10002 type=total -[6.645723e-01 2.052384e+00] -[3.121475e-02 2.243429e-01] +[ 0.66457226 2.05238401] +[ 0.03121475 0.22434291] domain=10002 type=transport -[2.905653e-01 1.516438e+00] -[2.385185e-02 2.351973e-01] +[ 0.29056526 1.51643801] +[ 0.02385185 0.23519727] domain=10002 type=nu-transport -[2.905653e-01 1.516438e+00] -[2.385185e-02 2.351973e-01] +[ 0.29056526 1.51643801] +[ 0.02385185 0.23519727] domain=10002 type=absorption -[6.903995e-04 3.168726e-02] -[4.414757e-05 3.746559e-03] +[ 0.0006904 0.03168726] +[ 4.41475687e-05 3.74655858e-03] domain=10002 type=capture -[6.903995e-04 3.168726e-02] -[4.414757e-05 3.746559e-03] +[ 0.0006904 0.03168726] +[ 4.41475687e-05 3.74655858e-03] domain=10002 type=fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[ 0. 0.] +[ 0. 0.] domain=10002 type=nu-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[ 0. 0.] +[ 0. 0.] domain=10002 type=kappa-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[ 0. 0.] +[ 0. 0.] domain=10002 type=scatter -[6.638819e-01 2.020697e+00] -[3.117268e-02 2.206045e-01] +[ 0.66388186 2.02069676] +[ 0.03117268 0.22060445] domain=10002 type=nu-scatter -[6.712692e-01 2.035388e+00] -[2.618637e-02 2.580603e-01] +[ 0.6712692 2.03538833] +[ 0.02618637 0.25806033] domain=10002 type=scatter matrix -[[[6.399015e-01 3.811674e-01 1.523919e-01 9.148022e-03] - [3.136772e-02 8.757723e-03 -2.567901e-03 -3.784803e-03]] +[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] + [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] - [[4.433431e-04 3.999604e-04 3.195627e-04 2.138470e-04] - [2.034945e+00 5.099405e-01 1.111746e-01 2.498844e-02]]] -[[[2.470912e-02 1.624326e-02 8.156278e-03 3.888562e-03] - [1.728113e-03 9.256705e-04 1.013985e-03 8.170756e-04]] + [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] + [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] +[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] + [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] - [[4.448504e-04 4.013202e-04 3.206491e-04 2.145740e-04] - [2.577999e-01 5.123591e-02 1.301982e-02 8.312353e-03]]] + [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] + [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] domain=10002 type=nu-scatter matrix -[[[6.399015e-01 3.811674e-01 1.523919e-01 9.148022e-03] - [3.136772e-02 8.757723e-03 -2.567901e-03 -3.784803e-03]] +[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] + [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] - [[4.433431e-04 3.999604e-04 3.195627e-04 2.138470e-04] - [2.034945e+00 5.099405e-01 1.111746e-01 2.498844e-02]]] -[[[2.470912e-02 1.624326e-02 8.156278e-03 3.888562e-03] - [1.728113e-03 9.256705e-04 1.013985e-03 8.170756e-04]] + [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] + [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] +[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] + [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] - [[4.448504e-04 4.013202e-04 3.206491e-04 2.145740e-04] - [2.577999e-01 5.123591e-02 1.301982e-02 8.312353e-03]]] + [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] + [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] domain=10002 type=multiplicity matrix -[[1.000000e+00 1.000000e+00] - [1.000000e+00 1.000000e+00]] -[[3.860919e-02 6.766735e-02] - [1.414214e+00 1.359292e-01]] +[[ 1. 1.] + [ 1. 1.]] +[[ 0.03860919 0.06766735] + [ 1.41421356 0.13592921]] domain=10002 type=nu-fission matrix -[[0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00]] -[[0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00]] +[[ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.]] domain=10002 type=chi -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[ 0. 0.] +[ 0. 0.] domain=10002 type=chi-prompt -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] -domain=10002 type=velocity -[1.660556e+07 3.284120e+05] -[1.042436e+06 3.882844e+04] +[ 0. 0.] +[ 0. 0.] +domain=10002 type=inverse-velocity +[ 6.02207831e-08 3.04495537e-06] +[ 3.78043696e-09 3.60007673e-07] domain=10002 type=prompt-nu-fission -[0.000000e+00 0.000000e+00] -[0.000000e+00 0.000000e+00] +[ 0. 0.] +[ 0. 0.] diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index 840a3987e7..0c648376e8 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -d4ad3ef5f03913bcedf7dad7f9ace431e0701dac128d1f38f571898b2c79d6b207191fd1e726d9b3c14b2b994ea9d3ba5b10489be3af9c8fbb41868b85940d9f +e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e \ 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 fc42ccf494..00f5a9523f 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,258 +1,258 @@ - material group in nuclide mean std. dev. -1 10000 1 total 4.148255e-01 2.279291e-02 -0 10000 2 total 6.601699e-01 4.751893e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596e-01 2.549360e-02 -0 10000 2 total 6.476477e-01 2.370374e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.568596e-01 2.549360e-02 -0 10000 2 total 6.476477e-01 2.370374e-02 - material group in nuclide mean std. dev. -1 10000 1 total 2.740784e-02 2.692497e-03 -0 10000 2 total 2.645107e-01 2.336708e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.984455e-02 2.643304e-03 -0 10000 2 total 7.171935e-02 2.520786e-02 - material group in nuclide mean std. dev. -1 10000 1 total 7.563295e-03 5.084837e-04 -0 10000 2 total 1.927914e-01 1.710592e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.943174e-02 1.322976e-03 -0 10000 2 total 4.697748e-01 4.168200e-02 - material group in nuclide mean std. dev. -1 10000 1 total 1.474570e+00 9.923532e-02 -0 10000 2 total 3.728690e+01 3.308378e+00 - material group in nuclide mean std. dev. -1 10000 1 total 3.874176e-01 2.062573e-02 -0 10000 2 total 3.956592e-01 2.512506e-02 - material group in nuclide mean std. dev. -1 10000 1 total 3.851884e-01 2.694562e-02 -0 10000 2 total 4.123894e-01 1.542528e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841995e-01 2.700101e-02 -13 10000 1 1 total P1 5.187028e-02 6.982549e-03 -14 10000 1 1 total P2 2.006885e-02 2.846495e-03 -15 10000 1 1 total P3 9.477716e-03 2.233520e-03 -8 10000 1 2 total P0 9.889304e-04 4.824194e-04 -9 10000 1 2 total P1 -2.072346e-04 1.490108e-04 -10 10000 1 2 total P2 -1.033662e-04 1.843163e-04 -11 10000 1 2 total P3 2.342906e-04 1.281731e-04 -4 10000 2 1 total P0 9.246399e-04 9.248835e-04 -5 10000 2 1 total P1 -7.677050e-04 7.679072e-04 -6 10000 2 1 total P2 4.937889e-04 4.939189e-04 -7 10000 2 1 total P3 -1.714972e-04 1.715424e-04 -0 10000 2 2 total P0 4.114648e-01 1.524494e-02 -1 10000 2 2 total P1 1.648173e-02 4.501728e-03 -2 10000 2 2 total P2 6.371490e-03 1.055075e-02 -3 10000 2 2 total P3 -1.049912e-02 1.043819e-02 - material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 3.841995e-01 2.700101e-02 -13 10000 1 1 total P1 5.187028e-02 6.982549e-03 -14 10000 1 1 total P2 2.006885e-02 2.846495e-03 -15 10000 1 1 total P3 9.477716e-03 2.233520e-03 -8 10000 1 2 total P0 9.889304e-04 4.824194e-04 -9 10000 1 2 total P1 -2.072346e-04 1.490108e-04 -10 10000 1 2 total P2 -1.033662e-04 1.843163e-04 -11 10000 1 2 total P3 2.342906e-04 1.281731e-04 -4 10000 2 1 total P0 9.246399e-04 9.248835e-04 -5 10000 2 1 total P1 -7.677050e-04 7.679072e-04 -6 10000 2 1 total P2 4.937889e-04 4.939189e-04 -7 10000 2 1 total P3 -1.714972e-04 1.715424e-04 -0 10000 2 2 total P0 4.114648e-01 1.524494e-02 -1 10000 2 2 total P1 1.648173e-02 4.501728e-03 -2 10000 2 2 total P2 6.371490e-03 1.055075e-02 -3 10000 2 2 total P3 -1.049912e-02 1.043819e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 1.000000e+00 7.851646e-02 -2 10000 1 2 total 1.000000e+00 6.871843e-01 -1 10000 2 1 total 1.000000e+00 1.414214e+00 -0 10000 2 2 total 1.000000e+00 4.113035e-02 - material group in group out nuclide mean std. dev. -3 10000 1 1 total 2.014243e-02 3.149092e-03 -2 10000 1 2 total 0.000000e+00 0.000000e+00 -1 10000 2 1 total 4.543665e-01 2.742551e-02 -0 10000 2 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000e+00 4.607052e-02 -0 10000 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10000 1 total 1.000000e+00 5.147146e-02 -0 10000 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10000 1 total 1.751521e+07 1.438175e+06 -0 10000 2 total 3.501720e+05 2.994593e+04 - material group in nuclide mean std. dev. -1 10000 1 total 1.923922e-02 1.309506e-03 -0 10000 2 total 4.667190e-01 4.141087e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.137377e-01 1.558190e-02 -0 10001 2 total 3.008214e-01 2.805245e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732279e-01 3.311537e-02 -0 10001 2 total 3.123748e-01 4.960583e-02 - material group in nuclide mean std. dev. -1 10001 1 total 2.732279e-01 3.311537e-02 -0 10001 2 total 3.123748e-01 4.960583e-02 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991e-03 3.225479e-04 -0 10001 2 total 5.400379e-03 6.181383e-04 - material group in nuclide mean std. dev. -1 10001 1 total 1.574991e-03 3.225479e-04 -0 10001 2 total 5.400379e-03 6.181383e-04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 3.121627e-01 1.532192e-02 -0 10001 2 total 2.954210e-01 2.744549e-02 - material group in nuclide mean std. dev. -1 10001 1 total 3.101207e-01 3.378811e-02 -0 10001 2 total 2.962643e-01 4.379223e-02 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207e-01 3.378811e-02 -13 10001 1 1 total P1 3.822959e-02 8.483997e-03 -14 10001 1 1 total P2 2.074494e-02 4.695611e-03 -15 10001 1 1 total P3 7.964297e-03 3.731623e-03 -8 10001 1 2 total P0 0.000000e+00 0.000000e+00 -9 10001 1 2 total P1 0.000000e+00 0.000000e+00 -10 10001 1 2 total P2 0.000000e+00 0.000000e+00 -11 10001 1 2 total P3 0.000000e+00 0.000000e+00 -4 10001 2 1 total P0 0.000000e+00 0.000000e+00 -5 10001 2 1 total P1 0.000000e+00 0.000000e+00 -6 10001 2 1 total P2 0.000000e+00 0.000000e+00 -7 10001 2 1 total P3 0.000000e+00 0.000000e+00 -0 10001 2 2 total P0 2.962643e-01 4.379223e-02 -1 10001 2 2 total P1 -1.121364e-02 1.618037e-02 -2 10001 2 2 total P2 8.836566e-03 1.150396e-02 -3 10001 2 2 total P3 -3.270067e-03 7.328846e-03 - material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 3.101207e-01 3.378811e-02 -13 10001 1 1 total P1 3.822959e-02 8.483997e-03 -14 10001 1 1 total P2 2.074494e-02 4.695611e-03 -15 10001 1 1 total P3 7.964297e-03 3.731623e-03 -8 10001 1 2 total P0 0.000000e+00 0.000000e+00 -9 10001 1 2 total P1 0.000000e+00 0.000000e+00 -10 10001 1 2 total P2 0.000000e+00 0.000000e+00 -11 10001 1 2 total P3 0.000000e+00 0.000000e+00 -4 10001 2 1 total P0 0.000000e+00 0.000000e+00 -5 10001 2 1 total P1 0.000000e+00 0.000000e+00 -6 10001 2 1 total P2 0.000000e+00 0.000000e+00 -7 10001 2 1 total P3 0.000000e+00 0.000000e+00 -0 10001 2 2 total P0 2.962643e-01 4.379223e-02 -1 10001 2 2 total P1 -1.121364e-02 1.618037e-02 -2 10001 2 2 total P2 8.836566e-03 1.150396e-02 -3 10001 2 2 total P3 -3.270067e-03 7.328846e-03 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 1.000000e+00 1.087787e-01 -2 10001 1 2 total 0.000000e+00 0.000000e+00 -1 10001 2 1 total 0.000000e+00 0.000000e+00 -0 10001 2 2 total 1.000000e+00 1.424272e-01 - material group in group out nuclide mean std. dev. -3 10001 1 1 total 0.000000e+00 0.000000e+00 -2 10001 1 2 total 0.000000e+00 0.000000e+00 -1 10001 2 1 total 0.000000e+00 0.000000e+00 -0 10001 2 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10001 1 total 1.667784e+07 1.266444e+06 -0 10001 2 total 3.349534e+05 3.833678e+04 - material group in nuclide mean std. dev. -1 10001 1 total 0.000000e+00 0.000000e+00 -0 10001 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.645723e-01 3.121475e-02 -0 10002 2 total 2.052384e+00 2.243429e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905653e-01 2.385185e-02 -0 10002 2 total 1.516438e+00 2.351973e-01 - material group in nuclide mean std. dev. -1 10002 1 total 2.905653e-01 2.385185e-02 -0 10002 2 total 1.516438e+00 2.351973e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995e-04 4.414757e-05 -0 10002 2 total 3.168726e-02 3.746559e-03 - material group in nuclide mean std. dev. -1 10002 1 total 6.903995e-04 4.414757e-05 -0 10002 2 total 3.168726e-02 3.746559e-03 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 6.638819e-01 3.117268e-02 -0 10002 2 total 2.020697e+00 2.206045e-01 - material group in nuclide mean std. dev. -1 10002 1 total 6.712692e-01 2.618637e-02 -0 10002 2 total 2.035388e+00 2.580603e-01 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399015e-01 2.470912e-02 -13 10002 1 1 total P1 3.811674e-01 1.624326e-02 -14 10002 1 1 total P2 1.523919e-01 8.156278e-03 -15 10002 1 1 total P3 9.148022e-03 3.888562e-03 -8 10002 1 2 total P0 3.136772e-02 1.728113e-03 -9 10002 1 2 total P1 8.757723e-03 9.256705e-04 -10 10002 1 2 total P2 -2.567901e-03 1.013985e-03 -11 10002 1 2 total P3 -3.784803e-03 8.170756e-04 -4 10002 2 1 total P0 4.433431e-04 4.448504e-04 -5 10002 2 1 total P1 3.999604e-04 4.013202e-04 -6 10002 2 1 total P2 3.195627e-04 3.206491e-04 -7 10002 2 1 total P3 2.138470e-04 2.145740e-04 -0 10002 2 2 total P0 2.034945e+00 2.577999e-01 -1 10002 2 2 total P1 5.099405e-01 5.123591e-02 -2 10002 2 2 total P2 1.111746e-01 1.301982e-02 -3 10002 2 2 total P3 2.498844e-02 8.312353e-03 - material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 6.399015e-01 2.470912e-02 -13 10002 1 1 total P1 3.811674e-01 1.624326e-02 -14 10002 1 1 total P2 1.523919e-01 8.156278e-03 -15 10002 1 1 total P3 9.148022e-03 3.888562e-03 -8 10002 1 2 total P0 3.136772e-02 1.728113e-03 -9 10002 1 2 total P1 8.757723e-03 9.256705e-04 -10 10002 1 2 total P2 -2.567901e-03 1.013985e-03 -11 10002 1 2 total P3 -3.784803e-03 8.170756e-04 -4 10002 2 1 total P0 4.433431e-04 4.448504e-04 -5 10002 2 1 total P1 3.999604e-04 4.013202e-04 -6 10002 2 1 total P2 3.195627e-04 3.206491e-04 -7 10002 2 1 total P3 2.138470e-04 2.145740e-04 -0 10002 2 2 total P0 2.034945e+00 2.577999e-01 -1 10002 2 2 total P1 5.099405e-01 5.123591e-02 -2 10002 2 2 total P2 1.111746e-01 1.301982e-02 -3 10002 2 2 total P3 2.498844e-02 8.312353e-03 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 1.000000e+00 3.860919e-02 -2 10002 1 2 total 1.000000e+00 6.766735e-02 -1 10002 2 1 total 1.000000e+00 1.414214e+00 -0 10002 2 2 total 1.000000e+00 1.359292e-01 - material group in group out nuclide mean std. dev. -3 10002 1 1 total 0.000000e+00 0.000000e+00 -2 10002 1 2 total 0.000000e+00 0.000000e+00 -1 10002 2 1 total 0.000000e+00 0.000000e+00 -0 10002 2 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 - material group out nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 - material group in nuclide mean std. dev. -1 10002 1 total 1.660556e+07 1.042436e+06 -0 10002 2 total 3.284120e+05 3.882844e+04 - material group in nuclide mean std. dev. -1 10002 1 total 0.000000e+00 0.000000e+00 -0 10002 2 total 0.000000e+00 0.000000e+00 + material group in nuclide mean std. dev. +1 10000 1 total 0.414825 0.022793 +0 10000 2 total 0.660170 0.047519 + material group in nuclide mean std. dev. +1 10000 1 total 0.356860 0.025494 +0 10000 2 total 0.647648 0.023704 + material group in nuclide mean std. dev. +1 10000 1 total 0.356860 0.025494 +0 10000 2 total 0.647648 0.023704 + material group in nuclide mean std. dev. +1 10000 1 total 0.027408 0.002692 +0 10000 2 total 0.264511 0.023367 + material group in nuclide mean std. dev. +1 10000 1 total 0.019845 0.002643 +0 10000 2 total 0.071719 0.025208 + material group in nuclide mean std. dev. +1 10000 1 total 0.007563 0.000508 +0 10000 2 total 0.192791 0.017106 + material group in nuclide mean std. dev. +1 10000 1 total 0.019432 0.001323 +0 10000 2 total 0.469775 0.041682 + material group in nuclide mean std. dev. +1 10000 1 total 1.474570 0.099235 +0 10000 2 total 37.286896 3.308378 + material group in nuclide mean std. dev. +1 10000 1 total 0.387418 0.020626 +0 10000 2 total 0.395659 0.025125 + material group in nuclide mean std. dev. +1 10000 1 total 0.385188 0.026946 +0 10000 2 total 0.412389 0.015425 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 0.384199 0.027001 +13 10000 1 1 total P1 0.051870 0.006983 +14 10000 1 1 total P2 0.020069 0.002846 +15 10000 1 1 total P3 0.009478 0.002234 +8 10000 1 2 total P0 0.000989 0.000482 +9 10000 1 2 total P1 -0.000207 0.000149 +10 10000 1 2 total P2 -0.000103 0.000184 +11 10000 1 2 total P3 0.000234 0.000128 +4 10000 2 1 total P0 0.000925 0.000925 +5 10000 2 1 total P1 -0.000768 0.000768 +6 10000 2 1 total P2 0.000494 0.000494 +7 10000 2 1 total P3 -0.000171 0.000172 +0 10000 2 2 total P0 0.411465 0.015245 +1 10000 2 2 total P1 0.016482 0.004502 +2 10000 2 2 total P2 0.006371 0.010551 +3 10000 2 2 total P3 -0.010499 0.010438 + material group in group out nuclide moment mean std. dev. +12 10000 1 1 total P0 0.384199 0.027001 +13 10000 1 1 total P1 0.051870 0.006983 +14 10000 1 1 total P2 0.020069 0.002846 +15 10000 1 1 total P3 0.009478 0.002234 +8 10000 1 2 total P0 0.000989 0.000482 +9 10000 1 2 total P1 -0.000207 0.000149 +10 10000 1 2 total P2 -0.000103 0.000184 +11 10000 1 2 total P3 0.000234 0.000128 +4 10000 2 1 total P0 0.000925 0.000925 +5 10000 2 1 total P1 -0.000768 0.000768 +6 10000 2 1 total P2 0.000494 0.000494 +7 10000 2 1 total P3 -0.000171 0.000172 +0 10000 2 2 total P0 0.411465 0.015245 +1 10000 2 2 total P1 0.016482 0.004502 +2 10000 2 2 total P2 0.006371 0.010551 +3 10000 2 2 total P3 -0.010499 0.010438 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1 0.078516 +2 10000 1 2 total 1 0.687184 +1 10000 2 1 total 1 1.414214 +0 10000 2 2 total 1 0.041130 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 0.020142 0.003149 +2 10000 1 2 total 0.000000 0.000000 +1 10000 2 1 total 0.454366 0.027426 +0 10000 2 2 total 0.000000 0.000000 + material group out nuclide mean std. dev. +1 10000 1 total 1 0.046071 +0 10000 2 total 0 0.000000 + material group out nuclide mean std. dev. +1 10000 1 total 1 0.051471 +0 10000 2 total 0 0.000000 + material group in nuclide mean std. dev. +1 10000 1 total 5.709323e-08 4.687930e-09 +0 10000 2 total 2.855740e-06 2.442165e-07 + material group in nuclide mean std. dev. +1 10000 1 total 0.019239 0.001310 +0 10000 2 total 0.466719 0.041411 + material group in nuclide mean std. dev. +1 10001 1 total 0.313738 0.015582 +0 10001 2 total 0.300821 0.028052 + material group in nuclide mean std. dev. +1 10001 1 total 0.273228 0.033115 +0 10001 2 total 0.312375 0.049606 + material group in nuclide mean std. dev. +1 10001 1 total 0.273228 0.033115 +0 10001 2 total 0.312375 0.049606 + material group in nuclide mean std. dev. +1 10001 1 total 0.001575 0.000323 +0 10001 2 total 0.005400 0.000618 + material group in nuclide mean std. dev. +1 10001 1 total 0.001575 0.000323 +0 10001 2 total 0.005400 0.000618 + material group in nuclide mean std. dev. +1 10001 1 total 0 0 +0 10001 2 total 0 0 + material group in nuclide mean std. dev. +1 10001 1 total 0 0 +0 10001 2 total 0 0 + material group in nuclide mean std. dev. +1 10001 1 total 0 0 +0 10001 2 total 0 0 + material group in nuclide mean std. dev. +1 10001 1 total 0.312163 0.015322 +0 10001 2 total 0.295421 0.027445 + material group in nuclide mean std. dev. +1 10001 1 total 0.310121 0.033788 +0 10001 2 total 0.296264 0.043792 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 0.310121 0.033788 +13 10001 1 1 total P1 0.038230 0.008484 +14 10001 1 1 total P2 0.020745 0.004696 +15 10001 1 1 total P3 0.007964 0.003732 +8 10001 1 2 total P0 0.000000 0.000000 +9 10001 1 2 total P1 0.000000 0.000000 +10 10001 1 2 total P2 0.000000 0.000000 +11 10001 1 2 total P3 0.000000 0.000000 +4 10001 2 1 total P0 0.000000 0.000000 +5 10001 2 1 total P1 0.000000 0.000000 +6 10001 2 1 total P2 0.000000 0.000000 +7 10001 2 1 total P3 0.000000 0.000000 +0 10001 2 2 total P0 0.296264 0.043792 +1 10001 2 2 total P1 -0.011214 0.016180 +2 10001 2 2 total P2 0.008837 0.011504 +3 10001 2 2 total P3 -0.003270 0.007329 + material group in group out nuclide moment mean std. dev. +12 10001 1 1 total P0 0.310121 0.033788 +13 10001 1 1 total P1 0.038230 0.008484 +14 10001 1 1 total P2 0.020745 0.004696 +15 10001 1 1 total P3 0.007964 0.003732 +8 10001 1 2 total P0 0.000000 0.000000 +9 10001 1 2 total P1 0.000000 0.000000 +10 10001 1 2 total P2 0.000000 0.000000 +11 10001 1 2 total P3 0.000000 0.000000 +4 10001 2 1 total P0 0.000000 0.000000 +5 10001 2 1 total P1 0.000000 0.000000 +6 10001 2 1 total P2 0.000000 0.000000 +7 10001 2 1 total P3 0.000000 0.000000 +0 10001 2 2 total P0 0.296264 0.043792 +1 10001 2 2 total P1 -0.011214 0.016180 +2 10001 2 2 total P2 0.008837 0.011504 +3 10001 2 2 total P3 -0.003270 0.007329 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 1 0.108779 +2 10001 1 2 total 0 0.000000 +1 10001 2 1 total 0 0.000000 +0 10001 2 2 total 1 0.142427 + material group in group out nuclide mean std. dev. +3 10001 1 1 total 0 0 +2 10001 1 2 total 0 0 +1 10001 2 1 total 0 0 +0 10001 2 2 total 0 0 + material group out nuclide mean std. dev. +1 10001 1 total 0 0 +0 10001 2 total 0 0 + material group out nuclide mean std. dev. +1 10001 1 total 0 0 +0 10001 2 total 0 0 + material group in nuclide mean std. dev. +1 10001 1 total 5.995980e-08 4.553093e-09 +0 10001 2 total 2.985490e-06 3.417016e-07 + material group in nuclide mean std. dev. +1 10001 1 total 0 0 +0 10001 2 total 0 0 + material group in nuclide mean std. dev. +1 10002 1 total 0.664572 0.031215 +0 10002 2 total 2.052384 0.224343 + material group in nuclide mean std. dev. +1 10002 1 total 0.290565 0.023852 +0 10002 2 total 1.516438 0.235197 + material group in nuclide mean std. dev. +1 10002 1 total 0.290565 0.023852 +0 10002 2 total 1.516438 0.235197 + material group in nuclide mean std. dev. +1 10002 1 total 0.000690 0.000044 +0 10002 2 total 0.031687 0.003747 + material group in nuclide mean std. dev. +1 10002 1 total 0.000690 0.000044 +0 10002 2 total 0.031687 0.003747 + material group in nuclide mean std. dev. +1 10002 1 total 0 0 +0 10002 2 total 0 0 + material group in nuclide mean std. dev. +1 10002 1 total 0 0 +0 10002 2 total 0 0 + material group in nuclide mean std. dev. +1 10002 1 total 0 0 +0 10002 2 total 0 0 + material group in nuclide mean std. dev. +1 10002 1 total 0.663882 0.031173 +0 10002 2 total 2.020697 0.220604 + material group in nuclide mean std. dev. +1 10002 1 total 0.671269 0.026186 +0 10002 2 total 2.035388 0.258060 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 0.639901 0.024709 +13 10002 1 1 total P1 0.381167 0.016243 +14 10002 1 1 total P2 0.152392 0.008156 +15 10002 1 1 total P3 0.009148 0.003889 +8 10002 1 2 total P0 0.031368 0.001728 +9 10002 1 2 total P1 0.008758 0.000926 +10 10002 1 2 total P2 -0.002568 0.001014 +11 10002 1 2 total P3 -0.003785 0.000817 +4 10002 2 1 total P0 0.000443 0.000445 +5 10002 2 1 total P1 0.000400 0.000401 +6 10002 2 1 total P2 0.000320 0.000321 +7 10002 2 1 total P3 0.000214 0.000215 +0 10002 2 2 total P0 2.034945 0.257800 +1 10002 2 2 total P1 0.509941 0.051236 +2 10002 2 2 total P2 0.111175 0.013020 +3 10002 2 2 total P3 0.024988 0.008312 + material group in group out nuclide moment mean std. dev. +12 10002 1 1 total P0 0.639901 0.024709 +13 10002 1 1 total P1 0.381167 0.016243 +14 10002 1 1 total P2 0.152392 0.008156 +15 10002 1 1 total P3 0.009148 0.003889 +8 10002 1 2 total P0 0.031368 0.001728 +9 10002 1 2 total P1 0.008758 0.000926 +10 10002 1 2 total P2 -0.002568 0.001014 +11 10002 1 2 total P3 -0.003785 0.000817 +4 10002 2 1 total P0 0.000443 0.000445 +5 10002 2 1 total P1 0.000400 0.000401 +6 10002 2 1 total P2 0.000320 0.000321 +7 10002 2 1 total P3 0.000214 0.000215 +0 10002 2 2 total P0 2.034945 0.257800 +1 10002 2 2 total P1 0.509941 0.051236 +2 10002 2 2 total P2 0.111175 0.013020 +3 10002 2 2 total P3 0.024988 0.008312 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 1 0.038609 +2 10002 1 2 total 1 0.067667 +1 10002 2 1 total 1 1.414214 +0 10002 2 2 total 1 0.135929 + material group in group out nuclide mean std. dev. +3 10002 1 1 total 0 0 +2 10002 1 2 total 0 0 +1 10002 2 1 total 0 0 +0 10002 2 2 total 0 0 + material group out nuclide mean std. dev. +1 10002 1 total 0 0 +0 10002 2 total 0 0 + material group out nuclide mean std. dev. +1 10002 1 total 0 0 +0 10002 2 total 0 0 + material group in nuclide mean std. dev. +1 10002 1 total 6.022078e-08 3.780437e-09 +0 10002 2 total 3.044955e-06 3.600077e-07 + material group in nuclide mean std. dev. +1 10002 1 total 0 0 +0 10002 2 total 0 0 diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 59493ac58c..a15bbee4c8 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -7e6a35ac723fc77db2865fe425832bd6c54aae0132b4543583fc6eb10f2ec5e3d53ea19aa23127a989f19cfe328a57d29f28bff43f779aff246d38f7cffdfd0c +e4a5f03ab6167e96462c4ef537533fe33b98d7878ae00824c5619356bda8d548b3c71af01ba8c88d5a9b46dd1471d331e6f678a164af922200f2ee3642be6340 \ 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 9ef3428c6b..2f3290a1f2 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -9620ed88224f5a4013b1ff47a1286ed166f84847b97d145e52f6f71eb441c2abd1ad5baa91e0b1cac802daa8610ee388d23dcbc43d834b73fb35a16972d09788 +e421bd357f75c7b77532126ec4a7871ab8369c2dcaceb97c55eaafde1032099338a25b6bdafe54cbd1cac1e6243c91b60ca196fd92f5c2649208146e4c5b2c42 \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 91562d8e15..d138fa16a9 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -6,7 +6,7 @@ Cell Fill = Material 2 Region = -10000 Rotation = None - Temperature = [5.000000e+02 0.000000e+00 7.000000e+02 8.000000e+02] + Temperature = [ 500. 0. 700. 800.] Translation = None Offset = None Distribcell index= 1 diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index fd9956eea4..17f04238c2 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -5c0dbcb03265615cd2842b280dbd3e6c14f62ec7db9052657b98f03015cd1204295542f5affbb5948f4c5e57534746435065545a0fe533e3c8b062344bb854da +ca47172a42f6c13b244a763c990cbe4811662708ee03307d810a4542ee34bb5db7cc29d66aea313dad95b9f38a4ff7943ded527cfd0c7c8825372fec40cfc0d0 \ 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 0bc44d358f..2d995d91e0 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -fea5b32f021c64daceffd73d9a50e4d15cad26f9f07f5cdea2e92bfd53d6c31c57da3a9240d4f7059cc30ceebae5c8ed730a0f97a67d3b3f631b9a02c747f982 \ No newline at end of file +89b550950d4cb4a63647a068bbbeaefca1c459538fb9c4c91b817e7999f09623365894367f318115647614885903a5d19bbb4cc080832beb5f1794a8f89d392e \ 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 6ef9ffeccd..ef2741cc12 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] ..., - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+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.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] ..., - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+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.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] ..., - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+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.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] ..., - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]]][[[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]]][[[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] ..., - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+00] - [0.000000e+00 0.000000e+00 0.000000e+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/testing_harness.py b/tests/testing_harness.py index bde708b808..d360184045 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -9,14 +9,6 @@ import shutil import sys import numpy as np -import pandas as pd - -# Require numpy and pandas to print output in scientific notation with 7 -# significant figures. This is needed to avoid round off error when large -# numbers are printed, which can cause tests to fail for different build -# configurations. -np.set_printoptions(formatter={'float': '{:.6e}'.format}) -pd.options.display.float_format = '{:.6e}'.format sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet From 892e6419b5602fca34d382ad55a84e7a7ad5663f Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Fri, 29 Jul 2016 15:34:18 +0000 Subject: [PATCH 193/417] updated mgxs and tally test results on linux --- .../results_true.dat | 38 ++++---- .../results_true.dat | 16 ++-- .../results_true.dat | 96 +++++++++---------- .../results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- 5 files changed, 77 insertions(+), 77 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 204a7e35d9..ae768cbe67 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -29,13 +29,13 @@ 2 10000 1 1 total P2 0.017984 0.002883 3 10000 1 1 total P3 0.006628 0.002457 material group in group out nuclide mean std. dev. -0 10000 1 1 total 1 0.066111 +0 10000 1 1 total 1.0 0.066111 material group in group out nuclide mean std. dev. 0 10000 1 1 total 0.085835 0.005592 material group out nuclide mean std. dev. -0 10000 1 total 1 0.046071 +0 10000 1 total 1.0 0.046071 material group out nuclide mean std. dev. -0 10000 1 total 1 0.051471 +0 10000 1 total 1.0 0.051471 material group in nuclide mean std. dev. 0 10000 1 total 4.996730e-07 3.650635e-08 material group in nuclide mean std. dev. @@ -51,11 +51,11 @@ material group in nuclide mean std. dev. 0 10001 1 total 0.00221 0.000286 material group in nuclide mean std. dev. -0 10001 1 total 0 0 +0 10001 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 10001 1 total 0 0 +0 10001 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 10001 1 total 0 0 +0 10001 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10001 1 total 0.309384 0.013551 material group in nuclide mean std. dev. @@ -71,17 +71,17 @@ 2 10001 1 1 total P2 0.018911 0.004323 3 10001 1 1 total P3 0.006235 0.003338 material group in group out nuclide mean std. dev. -0 10001 1 1 total 1 0.095039 +0 10001 1 1 total 1.0 0.095039 material group in group out nuclide mean std. dev. -0 10001 1 1 total 0 0 +0 10001 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 10001 1 total 0 0 +0 10001 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 10001 1 total 0 0 +0 10001 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10001 1 total 5.454760e-07 4.949800e-08 material group in nuclide mean std. dev. -0 10001 1 total 0 0 +0 10001 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10002 1 total 0.904999 0.043964 material group in nuclide mean std. dev. @@ -93,11 +93,11 @@ material group in nuclide mean std. dev. 0 10002 1 total 0.00606 0.000555 material group in nuclide mean std. dev. -0 10002 1 total 0 0 +0 10002 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 10002 1 total 0 0 +0 10002 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 10002 1 total 0 0 +0 10002 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10002 1 total 0.898938 0.043493 material group in nuclide mean std. dev. @@ -113,14 +113,14 @@ 2 10002 1 1 total P2 0.143301 0.007187 3 10002 1 1 total P3 0.008739 0.003571 material group in group out nuclide mean std. dev. -0 10002 1 1 total 1 0.056867 +0 10002 1 1 total 1.0 0.056867 material group in group out nuclide mean std. dev. -0 10002 1 1 total 0 0 +0 10002 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 10002 1 total 0 0 +0 10002 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 10002 1 total 0 0 +0 10002 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10002 1 total 5.773006e-07 5.322132e-08 material group in nuclide mean std. dev. -0 10002 1 total 0 0 +0 10002 1 total 0.0 0.0 diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index dec30061f6..c21ca09e99 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -9,11 +9,11 @@ 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.019762 0.010629 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 +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 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, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 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 +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 nuclide mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 1.126172 0.54344 avg(distribcell) group in nuclide mean std. dev. @@ -29,14 +29,14 @@ 2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 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 1 0.529717 +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 1.0 0.529717 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 0 +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.0 0.0 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 +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 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 +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 nuclide mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.000001 6.946255e-07 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 +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 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 00f5a9523f..141143c8c3 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -63,21 +63,21 @@ 2 10000 2 2 total P2 0.006371 0.010551 3 10000 2 2 total P3 -0.010499 0.010438 material group in group out nuclide mean std. dev. -3 10000 1 1 total 1 0.078516 -2 10000 1 2 total 1 0.687184 -1 10000 2 1 total 1 1.414214 -0 10000 2 2 total 1 0.041130 +3 10000 1 1 total 1.0 0.078516 +2 10000 1 2 total 1.0 0.687184 +1 10000 2 1 total 1.0 1.414214 +0 10000 2 2 total 1.0 0.041130 material group in group out nuclide mean std. dev. 3 10000 1 1 total 0.020142 0.003149 2 10000 1 2 total 0.000000 0.000000 1 10000 2 1 total 0.454366 0.027426 0 10000 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. -1 10000 1 total 1 0.046071 -0 10000 2 total 0 0.000000 +1 10000 1 total 1.0 0.046071 +0 10000 2 total 0.0 0.000000 material group out nuclide mean std. dev. -1 10000 1 total 1 0.051471 -0 10000 2 total 0 0.000000 +1 10000 1 total 1.0 0.051471 +0 10000 2 total 0.0 0.000000 material group in nuclide mean std. dev. 1 10000 1 total 5.709323e-08 4.687930e-09 0 10000 2 total 2.855740e-06 2.442165e-07 @@ -100,14 +100,14 @@ 1 10001 1 total 0.001575 0.000323 0 10001 2 total 0.005400 0.000618 material group in nuclide mean std. dev. -1 10001 1 total 0 0 -0 10001 2 total 0 0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 10001 1 total 0 0 -0 10001 2 total 0 0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 10001 1 total 0 0 -0 10001 2 total 0 0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10001 1 total 0.312163 0.015322 0 10001 2 total 0.295421 0.027445 @@ -149,27 +149,27 @@ 2 10001 2 2 total P2 0.008837 0.011504 3 10001 2 2 total P3 -0.003270 0.007329 material group in group out nuclide mean std. dev. -3 10001 1 1 total 1 0.108779 -2 10001 1 2 total 0 0.000000 -1 10001 2 1 total 0 0.000000 -0 10001 2 2 total 1 0.142427 +3 10001 1 1 total 1.0 0.108779 +2 10001 1 2 total 0.0 0.000000 +1 10001 2 1 total 0.0 0.000000 +0 10001 2 2 total 1.0 0.142427 material group in group out nuclide mean std. dev. -3 10001 1 1 total 0 0 -2 10001 1 2 total 0 0 -1 10001 2 1 total 0 0 -0 10001 2 2 total 0 0 +3 10001 1 1 total 0.0 0.0 +2 10001 1 2 total 0.0 0.0 +1 10001 2 1 total 0.0 0.0 +0 10001 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 10001 1 total 0 0 -0 10001 2 total 0 0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 10001 1 total 0 0 -0 10001 2 total 0 0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10001 1 total 5.995980e-08 4.553093e-09 0 10001 2 total 2.985490e-06 3.417016e-07 material group in nuclide mean std. dev. -1 10001 1 total 0 0 -0 10001 2 total 0 0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10002 1 total 0.664572 0.031215 0 10002 2 total 2.052384 0.224343 @@ -186,14 +186,14 @@ 1 10002 1 total 0.000690 0.000044 0 10002 2 total 0.031687 0.003747 material group in nuclide mean std. dev. -1 10002 1 total 0 0 -0 10002 2 total 0 0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 10002 1 total 0 0 -0 10002 2 total 0 0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 10002 1 total 0 0 -0 10002 2 total 0 0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10002 1 total 0.663882 0.031173 0 10002 2 total 2.020697 0.220604 @@ -235,24 +235,24 @@ 2 10002 2 2 total P2 0.111175 0.013020 3 10002 2 2 total P3 0.024988 0.008312 material group in group out nuclide mean std. dev. -3 10002 1 1 total 1 0.038609 -2 10002 1 2 total 1 0.067667 -1 10002 2 1 total 1 1.414214 -0 10002 2 2 total 1 0.135929 +3 10002 1 1 total 1.0 0.038609 +2 10002 1 2 total 1.0 0.067667 +1 10002 2 1 total 1.0 1.414214 +0 10002 2 2 total 1.0 0.135929 material group in group out nuclide mean std. dev. -3 10002 1 1 total 0 0 -2 10002 1 2 total 0 0 -1 10002 2 1 total 0 0 -0 10002 2 2 total 0 0 +3 10002 1 1 total 0.0 0.0 +2 10002 1 2 total 0.0 0.0 +1 10002 2 1 total 0.0 0.0 +0 10002 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 10002 1 total 0 0 -0 10002 2 total 0 0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 10002 1 total 0 0 -0 10002 2 total 0 0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10002 1 total 6.022078e-08 3.780437e-09 0 10002 2 total 3.044955e-06 3.600077e-07 material group in nuclide mean std. dev. -1 10002 1 total 0 0 -0 10002 2 total 0 0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 2f3290a1f2..3da8146042 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -e421bd357f75c7b77532126ec4a7871ab8369c2dcaceb97c55eaafde1032099338a25b6bdafe54cbd1cac1e6243c91b60ca196fd92f5c2649208146e4c5b2c42 \ No newline at end of file +e494320a213b5704a2ac915a2ba504857be91961ceb6735b6ad05d81eb31c44c9584d5bd9d40baececf1dcb5b030e6ecec63cfbd20639baf69bcb596c5c46591 \ 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 2d995d91e0..6c2d7a5193 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -89b550950d4cb4a63647a068bbbeaefca1c459538fb9c4c91b817e7999f09623365894367f318115647614885903a5d19bbb4cc080832beb5f1794a8f89d392e \ No newline at end of file +840d2648f9ba782926c71baa84e5a2ad31331e156740a3d1e9d86af8f1f0d301ef8c0f69474975d365dbcf8d229a68c62d3e60286d18045e5254373f4e1010bf \ No newline at end of file From a38f53d26f5585cd2d312567a3f69baf369dbe9a Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 29 Jul 2016 10:50:08 -0500 Subject: [PATCH 194/417] Add Madland fission-Q support to openmc.data --- openmc/data/__init__.py | 1 + openmc/data/endf_utils.py | 43 +++++ openmc/data/fission_energy.py | 285 ++++++++++++++++++++++++++++++++++ openmc/data/neutron.py | 22 +++ 4 files changed, 351 insertions(+) create mode 100644 openmc/data/endf_utils.py create mode 100644 openmc/data/fission_energy.py diff --git a/openmc/data/__init__.py b/openmc/data/__init__.py index ae8ea8191f..e60878d601 100644 --- a/openmc/data/__init__.py +++ b/openmc/data/__init__.py @@ -14,3 +14,4 @@ from .nbody import * from .thermal import * from .urr import * from .library import * +from .fission_energy import * diff --git a/openmc/data/endf_utils.py b/openmc/data/endf_utils.py new file mode 100644 index 0000000000..6db3c611cf --- /dev/null +++ b/openmc/data/endf_utils.py @@ -0,0 +1,43 @@ +"""This module contains a few utility functions for reading ENDF_ data. It is by +no means enough to read an entire ENDF file. For a more complete ENDF reader, +see Pyne_. + +.. _ENDF: http://www.nndc.bnl.gov/endf +.. _Pyne: http://www.pyne.io + +""" + +import re + +def read_float(float_string): + """Parse ENDF 6E11.0 formatted string into a float.""" + assert len(float_string) == 11 + pattern = '([\s\\-]\d+\\.\d+)([\\+\\-]\d+)' + mantissa, exponent = re.match(pattern, float_string).groups() + return float(mantissa + 'e' + exponent) + + +def read_CONT_line(line): + """Parse 80-column line from ENDF CONT record into floats and ints.""" + return (read_float(line[0:11]), read_float(line[11:22]), int(line[22:33]), + int(line[33:44]), int(line[44:55]), int(line[55:66]), + int(line[66:70]), int(line[70:72]), int(line[72:75]), + int(line[75:80])) + +def identify_nuclide(fname): + """Read the header of an ENDF file and extract identifying information.""" + with open(fname, 'r') as fh: + # Skip the tape id (TPID). + line = fh.readline() + + # Read the first HEAD and CONT info. + line = fh.readline() + ZA, AW, LRP, LFI, NLIB, NMOD, MAT, MF, MT, NS = read_CONT_line(line) + line = fh.readline() + ELIS, STA, LIS, LISO, junk, NFOR, MAT, MF, MT, NS = read_CONT_line(line) + + # Return dictionary of the most important identifying information. + return {'Z': int(ZA) // 1000, + 'A': int(ZA) % 1000, + 'LIS': LIS, + 'LISO': LISO} diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py new file mode 100644 index 0000000000..5716a3e858 --- /dev/null +++ b/openmc/data/fission_energy.py @@ -0,0 +1,285 @@ +from collections import Callable +import sys +#from warnings import warn + +import numpy as np +from numpy.polynomial.polynomial import Polynomial + +from .function import Tabulated1D, Sum +from .endf_utils import read_float, read_CONT_line, identify_nuclide +import openmc.checkvalue as cv + +if sys.version_info[0] >= 3: + basestring = str + + +class FissionEnergyRelease(object): + def __init__(self): + self._fragments = None + self._prompt_neutrons = None + self._delayed_neutrons = None + self._prompt_photons = None + self._delayed_photons = None + self._betas = None + self._neutrinos = None + self._form = None + + @property + def fragments(self): + return self._fragments + + @property + def prompt_neutrons(self): + return self._prompt_neutrons + + @property + def delayed_neutrons(self): + return self._delayed_neutrons + + @property + def prompt_photons(self): + return self._prompt_photons + + @property + def delayed_photons(self): + return self._delayed_photons + + @property + def betas(self): + return self._betas + + @property + def neutrinos(self): + return self._neutrinos + + @property + def recoverable(self): + return Sum([self.fragments, self.prompt_neutrons, self.delayed_neutrons, + self.prompt_photons, self.delayed_photons, self.betas]) + + @property + def total(self): + return Sum([self.fragments, self.prompt_neutrons, self.delayed_neutrons, + self.prompt_photons, self.delayed_photons, self.betas, + self.neutrinos]) + + @property + def form(self): + return self._form + + @fragments.setter + def fragments(self, energy_release): + cv.check_type('fragments', energy_release, Callable) + self._fragments = energy_release + + @prompt_neutrons.setter + def prompt_neutrons(self, energy_release): + cv.check_type('prompt_neutrons', energy_release, Callable) + self._prompt_neutrons = energy_release + + @delayed_neutrons.setter + def delayed_neutrons(self, energy_release): + cv.check_type('delayed_neutrons', energy_release, Callable) + self._delayed_neutrons = energy_release + + @prompt_photons.setter + def prompt_photons(self, energy_release): + cv.check_type('prompt_photons', energy_release, Callable) + self._prompt_photons = energy_release + + @delayed_photons.setter + def delayed_photons(self, energy_release): + cv.check_type('delayed_photons', energy_release, Callable) + self._delayed_photons = energy_release + + @betas.setter + def betas(self, energy_release): + cv.check_type('betas', energy_release, Callable) + self._betas = energy_release + + @neutrinos.setter + def neutrinos(self, energy_release): + cv.check_type('neutrinos', energy_release, Callable) + self._neutrinos = energy_release + + @form.setter + def form(self, form): + cv.check_value('format', form, ('Madland', 'Sher-Beck')) + self._form = form + + @classmethod + def from_endf(cls, filename, incident_neutron): + """Generate fission energy release data from an ENDF file. + + Parameters + ---------- + filename : str + Name of the ENDF file containing fission energy release data + + incident_neutron : openmc.data.IncidentNeutron + Corresponding incident neutron dataset + + Returns + ------- + openmc.data.FissionEnergyRelease + Fission energy release data + + """ + + # Check to make sure this ENDF file matches the expected isomer. + ident = identify_nuclide(filename) + if ident['Z'] != incident_neutron.atomic_number: + pass + if ident['A'] != incident_neutron.mass_number: + pass + if ident['LISO'] != incident_neutron.metastable: + pass + + # Extract the MF=1, MT=458 section. + lines = [] + with open(filename, 'r') as fh: + line = fh.readline() + while line != '': + if line[70:75] == ' 1458': + lines.append(line) + line = fh.readline() + + # Read the number of coefficients in this LIST record. + NPL = read_CONT_line(lines[1])[4] + + # Parse the ENDF LIST into an array. + data = [] + for i in range(NPL): + row, column = divmod(i, 6) + data.append(read_float(lines[2 + row][11*column:11*(column+1)])) + + # Declare the coefficient names and the order they are given in. The + # LIST contains a value followed immediately by an uncertainty for each + # of these components, times the polynomial order + 1. If we only find + # one value for each of these components, then we need to use the + # Sher-Beck formula for energy dependence. Otherwise, it is a + # polynomial. + labels = ('EFR', 'ENP', 'END', 'EGP', 'EGD', 'EB', 'ENU', 'ER', 'ET') + + # Associate each set of values and uncertainties with its label. + value = dict() + uncertainty = dict() + for i in range(len(labels)): + value[labels[i]] = data[2*i::18] + uncertainty[labels[i]] = data[2*i + 1::18] + + # In ENDF/B-7.1, data for 2nd-order coefficients were mistakenly not + # converted from MeV to eV. Check for this error and fix it if present. + n_coeffs = len(value['EFR']) + if n_coeffs == 3: # Only check 2nd-order data. + # Check each energy component for the error. If a 1 MeV neutron + # causes a change of more than 100 MeV, we know something is wrong. + error_present = False + for coeffs in value.values(): + second_order = coeffs[2] + if abs(second_order) * 1e12 > 1e8: + error_present = True + break + + # If we found the error, reduce all 2nd-order coeffs by 10**6. + if error_present: + for coeffs in value.values(): coeffs[2] *= 1e-6 + for coeffs in uncertainty.values(): coeffs[2] *= 1e-6 + + # Perform the sanity check again... just in case. + for coeffs in value.values(): + second_order = coeffs[2] + if abs(second_order) * 1e12 > 1e8: + raise ValueError("Encountered a ludicrously large second-" + "order polynomial coefficient.") + + # Convert eV to MeV. + for coeffs in value.values(): + for i in range(len(coeffs)): + coeffs[i] *= 10**(-6 + 6*i) + for coeffs in uncertainty.values(): + for i in range(len(coeffs)): + coeffs[i] *= 10**(-6 + 6*i) + + out = cls() + if n_coeffs > 1: + out.form = 'Madland' + out.fragments = Polynomial(value['EFR']) + out.prompt_neutrons = Polynomial(value['ENP']) + out.delayed_neutrons = Polynomial(value['END']) + out.prompt_photons = Polynomial(value['EGP']) + out.delayed_photons = Polynomial(value['EGD']) + out.betas = Polynomial(value['EB']) + out.neutrinos = Polynomial(value['ENU']) + else: + out.form = 'Sher-Beck' + raise NotImplemented + + return out + + @classmethod + def from_hdf5(cls, group): + """Generate fission energy release data from an HDF5 group. + + Parameters + ---------- + group : h5py.Group + HDF5 group to read from + + Returns + ------- + openmc.data.FissionEnergyRelease + Fission energy release data + + """ + + obj = cls() + if group.attrs['format'] == 'Madland': + obj.fragments = Polynomial(group['fragments'].value) + obj.prompt_neutrons = Polynomial(group['prompt_neutrons'].value) + obj.delayed_neutrons = Polynomial(group['delayed_neutrons'].value) + obj.prompt_photons = Polynomial(group['prompt_photons'].value) + obj.delayed_photons = Polynomial(group['delayed_photons'].value) + obj.betas = Polynomial(group['betas'].value) + obj.neutrinos = Polynomial(group['neutrinos'].value) + elif group.attrs['format'] == 'Sher-Beck': + raise NotImplemented + else: + raise ValueError('Unrecognized energy release format') + + return obj + + def to_hdf5(self, group): + """Write energy release data to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + if self.form == 'Madland': + group.attrs['format'] = np.string_('Madland') + group.create_dataset('fragments', data=self.fragments.coef) + group.create_dataset('prompt_neutrons', + data=self.prompt_neutrons.coef) + group.create_dataset('delayed_neutrons', + data=self.delayed_neutrons.coef) + group.create_dataset('prompt_photons', + data=self.prompt_photons.coef) + group.create_dataset('delayed_photons', + data=self.delayed_photons.coef) + group.create_dataset('betas', data=self.betas.coef) + group.create_dataset('neutrinos', data=self.neutrinos.coef) + elif self.form == 'Sher-Beck': + group.attrs['format'] = np.string_('Sher-Beck') + self.fragments.to_hdf5(group, 'fragments') + self.prompt_neutrons.to_hdf5(group, 'prompt_neutrons') + self.delayed_neutrons.to_hdf5(group, 'delayed_neutrons') + self.prompt_photons.to_hdf5(group, 'prompt_photons') + self.delayed_photons.to_hdf5(group, 'delayed_photons') + self.betas.to_hdf5(group, 'betas') + self.neutrinos.to_hdf5(group, 'neutrinos') + else: + raise ValueError('Unrecognized energy release format') diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 63b2bab01b..84d9bcb2c6 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -9,6 +9,7 @@ import h5py from .data import ATOMIC_SYMBOL, SUM_RULES from .ace import Table, get_table +from .fission_energy import FissionEnergyRelease from .function import Tabulated1D, Sum from .product import Product from .reaction import Reaction, _get_photon_products @@ -81,6 +82,7 @@ class IncidentNeutron(object): self.temperature = temperature self._energy = None + self._fission_energy = None self.reactions = OrderedDict() self.summed_reactions = OrderedDict() self.urr = None @@ -126,6 +128,10 @@ class IncidentNeutron(object): def energy(self): return self._energy + @property + def fission_energy(self): + return self._fission_energy + @property def temperature(self): return self._temperature @@ -186,6 +192,12 @@ class IncidentNeutron(object): cv.check_type('energy grid', energy, Iterable, Real) self._energy = energy + @fission_energy.setter + def fission_energy(self, fission_energy): + cv.check_type('fission energy release', fission_energy, + FissionEnergyRelease) + self._fission_energy = fission_energy + @reactions.setter def reactions(self, reactions): cv.check_type('reactions', reactions, Mapping) @@ -276,6 +288,11 @@ class IncidentNeutron(object): urr_group = g.create_group('urr') self.urr.to_hdf5(urr_group) + # Write fission energy release data + if self.fission_energy is not None: + fer_group = g.create_group('fission_energy_release') + self.fission_energy.to_hdf5(fer_group) + f.close() @classmethod @@ -331,6 +348,11 @@ class IncidentNeutron(object): urr_group = group['urr'] data.urr = ProbabilityTables.from_hdf5(urr_group) + # Read fission energy release data + if 'fission_energy_release' in group: + fer_group = group['fission_energy_release'] + data.fission_energy = FissionEnergyRelease.from_hdf5(fer_group) + return data @classmethod From 6694895769ce32bfa8555da2843ec52a65bec88d Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 29 Jul 2016 13:38:46 -0400 Subject: [PATCH 195/417] added error statement when micro xs is requested for a mesh domain --- .../pythonapi/examples/mgxs-part-i.ipynb | 47 ++++++++++--------- openmc/mgxs/mgxs.py | 7 +++ 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 7b20a97db5..e7b8cc73ad 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -433,7 +433,7 @@ " \tName =\t\n", " \tFilters =\t\n", " \t\tmesh\t[10000]\n", - " \t\tenergy\t[0.000000E+00 6.250000E-07 2.000000E+01]\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", @@ -441,7 +441,7 @@ " \tName =\t\n", " \tFilters =\t\n", " \t\tmesh\t[10000]\n", - " \t\tenergy\t[0.000000E+00 6.250000E-07 2.000000E+01]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", " \tNuclides =\ttotal \n", " \tScores =\t['absorption']\n", " \tEstimator =\ttracklength)])" @@ -520,9 +520,10 @@ "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", - " Date/Time: 2016-07-22 21:03:18\n", + " Version: 0.8.0\n", + " Git SHA1: 16e74656b028875a7ebcb90df07293c5f1cc56a4\n", + " Date/Time: 2016-07-29 13:20:18\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -532,11 +533,11 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", - " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", - " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", - " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Reading H1.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/H1_71c.h5\n", + " Reading O16.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/O16_71c.h5\n", + " Reading U235.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U238_71c.h5\n", + " Reading Zr90.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/Zr90_71c.h5\n", " Maximum neutron transport energy: 20.0000 MeV for H1.71c\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", @@ -607,20 +608,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.2300E-01 seconds\n", - " Reading cross sections = 1.6900E-01 seconds\n", - " Total time in simulation = 1.9882E+01 seconds\n", - " Time in transport only = 1.9869E+01 seconds\n", - " Time in inactive batches = 2.6590E+00 seconds\n", - " Time in active batches = 1.7223E+01 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Total time for initialization = 3.8300E-01 seconds\n", + " Reading cross sections = 2.0900E-01 seconds\n", + " Total time in simulation = 2.3245E+01 seconds\n", + " Time in transport only = 2.3223E+01 seconds\n", + " Time in inactive batches = 2.0320E+00 seconds\n", + " Time in active batches = 2.1213E+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 = 0.0000E+00 seconds\n", - " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.0217E+01 seconds\n", - " Calculation Rate (inactive) = 9402.03 neutrons/second\n", - " Calculation Rate (active) = 5806.19 neutrons/second\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 2.3642E+01 seconds\n", + " Calculation Rate (inactive) = 12303.1 neutrons/second\n", + " Calculation Rate (active) = 4714.09 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 5399047447..1ef3194be0 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -773,6 +773,13 @@ class MGXS(object): cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) cv.check_value('xs_type', xs_type, ['macro', 'micro']) + # FIXME: Unable to get microscopic xs for mesh domain because the mesh + # cells do not know the nuclide densities in each mesh cell. + if self.domain_type == 'mesh' and xs_type == 'micro': + msg = 'Unable to get micro xs for mesh domain since the mesh ' \ + 'cells do not know the nuclide densities in each mesh cell.' + raise ValueError(msg) + filters = [] filter_bins = [] From c35eac2c0656a902007cc7fd865b7fe13dcd1394 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 29 Jul 2016 13:41:14 -0400 Subject: [PATCH 196/417] changed mgxs-part-i.ipynb mgxs domain back to cell --- .../pythonapi/examples/mgxs-part-i.ipynb | 667 ++---------------- 1 file changed, 78 insertions(+), 589 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index e7b8cc73ad..b4e6d84fef 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -398,17 +398,10 @@ }, "outputs": [], "source": [ - "# Instantiate a tally Mesh\n", - "mesh = openmc.Mesh(name='mesh')\n", - "mesh.type = 'regular'\n", - "mesh.dimension = [2, 2]\n", - "mesh.lower_left = [-0.63, -0.63]\n", - "mesh.upper_right = [+0.63, +0.63]\n", - "\n", "# Instantiate a few different sections\n", - "total = mgxs.TotalXS(domain=mesh, groups=groups)\n", - "absorption = mgxs.AbsorptionXS(domain=mesh, groups=groups)\n", - "scattering = mgxs.ScatterXS(domain=mesh, groups=groups)" + "total = mgxs.TotalXS(domain=cell, groups=groups)\n", + "absorption = mgxs.AbsorptionXS(domain=cell, groups=groups)\n", + "scattering = mgxs.ScatterXS(domain=cell, groups=groups)" ] }, { @@ -432,7 +425,7 @@ " \tID =\t10000\n", " \tName =\t\n", " \tFilters =\t\n", - " \t\tmesh\t[10000]\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", @@ -440,7 +433,7 @@ " \tID =\t10001\n", " \tName =\t\n", " \tFilters =\t\n", - " \t\tmesh\t[10000]\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", @@ -522,7 +515,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", " Git SHA1: 16e74656b028875a7ebcb90df07293c5f1cc56a4\n", - " Date/Time: 2016-07-29 13:20:18\n", + " Date/Time: 2016-07-29 13:40:25\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -608,20 +601,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.8300E-01 seconds\n", - " Reading cross sections = 2.0900E-01 seconds\n", - " Total time in simulation = 2.3245E+01 seconds\n", - " Time in transport only = 2.3223E+01 seconds\n", - " Time in inactive batches = 2.0320E+00 seconds\n", - " Time in active batches = 2.1213E+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 = 0.0000E+00 seconds\n", + " Total time for initialization = 3.9900E-01 seconds\n", + " Reading cross sections = 2.1800E-01 seconds\n", + " Total time in simulation = 2.0870E+01 seconds\n", + " Time in transport only = 2.0855E+01 seconds\n", + " Time in inactive batches = 2.3100E+00 seconds\n", + " Time in active batches = 1.8560E+01 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 2.3642E+01 seconds\n", - " Calculation Rate (inactive) = 12303.1 neutrons/second\n", - " Calculation Rate (active) = 4714.09 neutrons/second\n", + " Total time elapsed = 2.1283E+01 seconds\n", + " Calculation Rate (inactive) = 10822.5 neutrons/second\n", + " Calculation Rate (active) = 5387.93 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -737,26 +730,11 @@ "text": [ "Multi-Group XS\n", "\tReaction Type =\ttotal\n", - "\tDomain Type =\tmesh\n", - "\tDomain ID =\t10000\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t1\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 3.06e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 6.94e-01%\n", - "\n", - "\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 3.19e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 7.34e-01%\n", - "\n", - "\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.82e-01 +/- 3.01e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 7.23e-01%\n", - "\n", - "\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.80e-01 +/- 3.34e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 5.92e-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" @@ -787,121 +765,40 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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 10000cellgroup innuclidemeanstd. dev.
xyz
11111total0.6676910.0020460.6677870.001802
01112total1.2917090.008941
31211total0.6674740.002119
21212total1.2926770.009479
52111total0.6687660.002021
42112total1.2925040.009323
72211total0.6672180.002220
62212total1.2911600.0076131.2920130.007642
\n", "
" ], "text/plain": [ - " mesh 10000 group in nuclide mean std. dev.\n", - " x y z \n", - "1 1 1 1 1 total 0.667691 0.002046\n", - "0 1 1 1 2 total 1.291709 0.008941\n", - "3 1 2 1 1 total 0.667474 0.002119\n", - "2 1 2 1 2 total 1.292677 0.009479\n", - "5 2 1 1 1 total 0.668766 0.002021\n", - "4 2 1 1 2 total 1.292504 0.009323\n", - "7 2 2 1 1 total 0.667218 0.002220\n", - "6 2 2 1 2 total 1.291160 0.007613" + " cell group in nuclide mean std. dev.\n", + "1 1 1 total 0.667787 0.001802\n", + "0 1 2 total 1.292013 0.007642" ] }, "execution_count": 19, @@ -961,9 +858,9 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -971,142 +868,40 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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 10000cellenergy low [MeV]energy high [MeV]nuclidemeanstd. dev.
xyz
01110.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...-1.332268e-150.013214-3.996803e-150.011292
11116.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...-2.220446e-160.002922
21210.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...4.440892e-160.014000
31216.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...2.331468e-150.003034
42110.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...-6.661338e-160.013782
52116.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...-9.992007e-160.002880
62210.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...4.440892e-160.011257
72216.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...7.771561e-160.0031775.551115e-160.002570
\n", "
" ], "text/plain": [ - " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", - " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 total \n", - "1 1 1 1 6.25e-07 2.00e+01 total \n", - "2 1 2 1 0.00e+00 6.25e-07 total \n", - "3 1 2 1 6.25e-07 2.00e+01 total \n", - "4 2 1 1 0.00e+00 6.25e-07 total \n", - "5 2 1 1 6.25e-07 2.00e+01 total \n", - "6 2 2 1 0.00e+00 6.25e-07 total \n", - "7 2 2 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", - " \n", - "0 (((total / flux) - (absorption / flux)) - (sca... -1.33e-15 1.32e-02 \n", - "1 (((total / flux) - (absorption / flux)) - (sca... -2.22e-16 2.92e-03 \n", - "2 (((total / flux) - (absorption / flux)) - (sca... 4.44e-16 1.40e-02 \n", - "3 (((total / flux) - (absorption / flux)) - (sca... 2.33e-15 3.03e-03 \n", - "4 (((total / flux) - (absorption / flux)) - (sca... -6.66e-16 1.38e-02 \n", - "5 (((total / flux) - (absorption / flux)) - (sca... -9.99e-16 2.88e-03 \n", - "6 (((total / flux) - (absorption / flux)) - (sca... 4.44e-16 1.13e-02 \n", - "7 (((total / flux) - (absorption / flux)) - (sca... 7.77e-16 3.18e-03 " + " score mean std. dev. \n", + "0 (((total / flux) - (absorption / flux)) - (sca... -4.00e-15 1.13e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... 5.55e-16 2.57e-03 " ] }, "execution_count": 21, @@ -1142,9 +937,9 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1152,142 +947,40 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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 10000cellenergy low [MeV]energy high [MeV]nuclidemeanstd. dev.
xyz
01110.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0760770.0007620.0761150.000649
11116.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0192420.000160
21210.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0761730.000800
31216.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0193720.000136
42110.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0761830.000796
52116.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0193640.000154
62210.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0760270.000654
72216.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0190740.0001530.0192630.000095
\n", "
" ], "text/plain": [ - " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", - " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 total \n", - "1 1 1 1 6.25e-07 2.00e+01 total \n", - "2 1 2 1 0.00e+00 6.25e-07 total \n", - "3 1 2 1 6.25e-07 2.00e+01 total \n", - "4 2 1 1 0.00e+00 6.25e-07 total \n", - "5 2 1 1 6.25e-07 2.00e+01 total \n", - "6 2 2 1 0.00e+00 6.25e-07 total \n", - "7 2 2 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", - " \n", - "0 ((absorption / flux) / (total / flux)) 7.61e-02 7.62e-04 \n", - "1 ((absorption / flux) / (total / flux)) 1.92e-02 1.60e-04 \n", - "2 ((absorption / flux) / (total / flux)) 7.62e-02 8.00e-04 \n", - "3 ((absorption / flux) / (total / flux)) 1.94e-02 1.36e-04 \n", - "4 ((absorption / flux) / (total / flux)) 7.62e-02 7.96e-04 \n", - "5 ((absorption / flux) / (total / flux)) 1.94e-02 1.54e-04 \n", - "6 ((absorption / flux) / (total / flux)) 7.60e-02 6.54e-04 \n", - "7 ((absorption / flux) / (total / flux)) 1.91e-02 1.53e-04 " + " score mean std. dev. \n", + "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": 22, @@ -1316,9 +1009,9 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1326,142 +1019,40 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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 10000cellenergy low [MeV]energy high [MeV]nuclidemeanstd. dev.
xyz
01110.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9239230.0090540.9238850.007736
11116.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9807580.004247
21210.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9238270.009586
31216.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9806280.004411
42110.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9238170.009436
52116.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9806360.004180
62210.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9239730.007717
72216.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9809260.0046230.9807370.003737
\n", "
" ], "text/plain": [ - " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", - " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 total \n", - "1 1 1 1 6.25e-07 2.00e+01 total \n", - "2 1 2 1 0.00e+00 6.25e-07 total \n", - "3 1 2 1 6.25e-07 2.00e+01 total \n", - "4 2 1 1 0.00e+00 6.25e-07 total \n", - "5 2 1 1 6.25e-07 2.00e+01 total \n", - "6 2 2 1 0.00e+00 6.25e-07 total \n", - "7 2 2 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", - " \n", - "0 ((scatter / flux) / (total / flux)) 9.24e-01 9.05e-03 \n", - "1 ((scatter / flux) / (total / flux)) 9.81e-01 4.25e-03 \n", - "2 ((scatter / flux) / (total / flux)) 9.24e-01 9.59e-03 \n", - "3 ((scatter / flux) / (total / flux)) 9.81e-01 4.41e-03 \n", - "4 ((scatter / flux) / (total / flux)) 9.24e-01 9.44e-03 \n", - "5 ((scatter / flux) / (total / flux)) 9.81e-01 4.18e-03 \n", - "6 ((scatter / flux) / (total / flux)) 9.24e-01 7.72e-03 \n", - "7 ((scatter / flux) / (total / flux)) 9.81e-01 4.62e-03 " + " score mean std. dev. \n", + "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": 23, @@ -1497,9 +1088,9 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1507,142 +1098,40 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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 10000cellenergy low [MeV]energy high [MeV]nuclidemeanstd. dev.
xyz
01110.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.0090860.007763
11116.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.004250
21210.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.009619
31216.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.004413
42110.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.009470
52116.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.004183
62210.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.007745
72216.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.0046260.003739
\n", "
" ], "text/plain": [ - " mesh 10000 energy low [MeV] energy high [MeV] nuclide \\\n", - " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 total \n", - "1 1 1 1 6.25e-07 2.00e+01 total \n", - "2 1 2 1 0.00e+00 6.25e-07 total \n", - "3 1 2 1 6.25e-07 2.00e+01 total \n", - "4 2 1 1 0.00e+00 6.25e-07 total \n", - "5 2 1 1 6.25e-07 2.00e+01 total \n", - "6 2 2 1 0.00e+00 6.25e-07 total \n", - "7 2 2 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", - " \n", - "0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 9.09e-03 \n", - "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 4.25e-03 \n", - "2 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 9.62e-03 \n", - "3 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 4.41e-03 \n", - "4 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 9.47e-03 \n", - "5 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 4.18e-03 \n", - "6 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 7.74e-03 \n", - "7 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 4.63e-03 " + " score mean std. dev. \n", + "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": 24, From a00441ee14bec10badad33f78531e49ae6b050f5 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 29 Jul 2016 13:44:11 -0400 Subject: [PATCH 197/417] removed updates to mgxs notebooks --- .../pythonapi/examples/mgxs-part-i.ipynb | 102 +++++---- .../pythonapi/examples/mgxs-part-iii.ipynb | 212 +++++++++--------- 2 files changed, 161 insertions(+), 153 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index b4e6d84fef..7c5132100e 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -91,7 +91,7 @@ "\n", "$$\\sigma_{n,x,k,g} = \\frac{\\int_{E_{g}}^{E_{g-1}}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r}\\sigma_{n,x}(\\mathbf{r},E')\\Phi(\\mathbf{r},E')}{\\int_{E_{g}}^{E_{g-1}}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r}\\Phi(\\mathbf{r},E')}$$\n", "\n", - "This scalar flux-weighted average microscopic cross section is computed by `openmc.mgxs` for most multi-group cross sections, including total, absorption, and fission reaction types. These double integrals are stochastically computed with OpenMC's tally system - in particular, [filters](https://mit-crpg.github.io/openmc/pythonapi/filter.html) on the energy range and spatial zone (material, cell, universe, or mesh) define the bounds of integration for both numerator and denominator." + "This scalar flux-weighted average microscopic cross section is computed by `openmc.mgxs` for most multi-group cross sections, including total, absorption, and fission reaction types. These double integrals are stochastically computed with OpenMC's tally system - in particular, [filters](https://mit-crpg.github.io/openmc/pythonapi/filter.html) on the energy range and spatial zone (material, cell or universe) define the bounds of integration for both numerator and denominator." ] }, { @@ -513,10 +513,9 @@ "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.8.0\n", - " Git SHA1: 16e74656b028875a7ebcb90df07293c5f1cc56a4\n", - " Date/Time: 2016-07-29 13:40:25\n", - " MPI Processes: 1\n", + " Version: 0.7.1\n", + " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", + " Date/Time: 2016-07-22 21:03:18\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -526,11 +525,11 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading H1.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/H1_71c.h5\n", - " Reading O16.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/O16_71c.h5\n", - " Reading U235.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U238_71c.h5\n", - " Reading Zr90.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/Zr90_71c.h5\n", + " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", + " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", + " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", + " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", " Maximum neutron transport energy: 20.0000 MeV for H1.71c\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", @@ -601,20 +600,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.9900E-01 seconds\n", - " Reading cross sections = 2.1800E-01 seconds\n", - " Total time in simulation = 2.0870E+01 seconds\n", - " Time in transport only = 2.0855E+01 seconds\n", - " Time in inactive batches = 2.3100E+00 seconds\n", - " Time in active batches = 1.8560E+01 seconds\n", + " Total time for initialization = 3.2300E-01 seconds\n", + " Reading cross sections = 1.6900E-01 seconds\n", + " Total time in simulation = 1.9882E+01 seconds\n", + " Time in transport only = 1.9869E+01 seconds\n", + " Time in inactive batches = 2.6590E+00 seconds\n", + " Time in active batches = 1.7223E+01 seconds\n", " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 2.1283E+01 seconds\n", - " Calculation Rate (inactive) = 10822.5 neutrons/second\n", - " Calculation Rate (active) = 5387.93 neutrons/second\n", + " Sampling source sites = 4.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 = 2.0217E+01 seconds\n", + " Calculation Rate (inactive) = 9402.03 neutrons/second\n", + " Calculation Rate (active) = 5806.19 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -815,12 +814,30 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The following code snippet shows how to export all three `MGXS` to the same HDF5 binary data store." + "Each multi-group cross section object can be easily exported to a variety of file formats, including CSV, Excel, and LaTeX for storage or data processing." ] }, { "cell_type": "code", "execution_count": 20, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "absorption.export_xs_data(filename='absorption-xs', format='excel')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following code snippet shows how to export all three `MGXS` to the same HDF5 binary data store." + ] + }, + { + "cell_type": "code", + "execution_count": 21, "metadata": { "collapsed": false }, @@ -847,7 +864,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -877,7 +894,7 @@ " 6.250000e-07\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " -3.996803e-15\n", + " -3.774758e-15\n", " 0.011292\n", " \n", " \n", @@ -887,7 +904,7 @@ " 2.000000e+01\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " 5.551115e-16\n", + " 1.443290e-15\n", " 0.002570\n", " \n", " \n", @@ -900,11 +917,11 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 (((total / flux) - (absorption / flux)) - (sca... -4.00e-15 1.13e-02 \n", - "1 (((total / flux) - (absorption / flux)) - (sca... 5.55e-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": 21, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -926,7 +943,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -983,7 +1000,7 @@ "1 ((absorption / flux) / (total / flux)) 1.93e-02 9.46e-05 " ] }, - "execution_count": 22, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -998,7 +1015,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -1055,7 +1072,7 @@ "1 ((scatter / flux) / (total / flux)) 9.81e-01 3.74e-03 " ] }, - "execution_count": 23, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1077,7 +1094,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -1107,7 +1124,7 @@ " 6.250000e-07\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", - " 1\n", + " 1.0\n", " 0.007763\n", " \n", " \n", @@ -1117,7 +1134,7 @@ " 2.000000e+01\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", - " 1\n", + " 1.0\n", " 0.003739\n", " \n", " \n", @@ -1134,7 +1151,7 @@ "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 3.74e-03 " ] }, - "execution_count": 24, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1146,15 +1163,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/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index aa243cfc22..39980a8fd7 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", + "/home/romano/miniconda3/envs/default/lib/python3.5/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", @@ -75,12 +75,12 @@ "outputs": [], "source": [ "# Instantiate some Nuclides\n", - "h1 = openmc.Nuclide('H-1')\n", - "b10 = openmc.Nuclide('B-10')\n", - "o16 = openmc.Nuclide('O-16')\n", - "u235 = openmc.Nuclide('U-235')\n", - "u238 = openmc.Nuclide('U-238')\n", - "zr90 = openmc.Nuclide('Zr-90')" + "h1 = openmc.Nuclide('H1')\n", + "b10 = openmc.Nuclide('B10')\n", + "o16 = openmc.Nuclide('O16')\n", + "u235 = openmc.Nuclide('U235')\n", + "u238 = openmc.Nuclide('U238')\n", + "zr90 = openmc.Nuclide('Zr90')" ] }, { @@ -458,7 +458,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -728,27 +728,26 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 47ef320ad517612376e181ec6a6bc42ca0db98ce\n", - " Date/Time: 2016-05-14 12:29:07\n", - " MPI Processes: 1\n", + " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", + " Date/Time: 2016-07-23 16:42:32\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", " ===========================================================================\n", "\n", " Reading settings XML file...\n", - " Reading cross sections XML file...\n", " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", " Reading materials XML file...\n", + " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", + " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", + " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", + " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235.71c\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: 5010.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", @@ -816,20 +815,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7700E-01 seconds\n", - " Reading cross sections = 1.3400E-01 seconds\n", - " Total time in simulation = 8.0461E+01 seconds\n", - " Time in transport only = 8.0422E+01 seconds\n", - " Time in inactive batches = 6.4060E+00 seconds\n", - " Time in active batches = 7.4055E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 4.3400E-01 seconds\n", + " Reading cross sections = 2.7900E-01 seconds\n", + " Total time in simulation = 6.1121E+01 seconds\n", + " Time in transport only = 6.1101E+01 seconds\n", + " Time in inactive batches = 5.0660E+00 seconds\n", + " Time in active batches = 5.6055E+01 seconds\n", + " Time synchronizing fission bank = 5.0000E-03 seconds\n", + " Sampling source sites = 3.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.1067E+01 seconds\n", - " Calculation Rate (inactive) = 3902.59 neutrons/second\n", - " Calculation Rate (active) = 1350.35 neutrons/second\n", + " Total time elapsed = 6.1576E+01 seconds\n", + " Calculation Rate (inactive) = 4934.86 neutrons/second\n", + " Calculation Rate (active) = 1783.96 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -956,7 +955,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/romano/openmc/openmc/tallies.py:1941: RuntimeWarning: invalid value encountered in true_divide\n", " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" ] }, @@ -980,7 +979,7 @@ " 3\n", " 10000\n", " 1\n", - " U-235\n", + " U235\n", " 8.055246e-03\n", " 2.857567e-05\n", " \n", @@ -988,7 +987,7 @@ " 4\n", " 10000\n", " 1\n", - " U-238\n", + " U238\n", " 7.339215e-03\n", " 4.349466e-05\n", " \n", @@ -996,7 +995,7 @@ " 5\n", " 10000\n", " 1\n", - " O-16\n", + " O16\n", " 0.000000e+00\n", " 0.000000e+00\n", " \n", @@ -1004,7 +1003,7 @@ " 0\n", " 10000\n", " 2\n", - " U-235\n", + " U235\n", " 3.615565e-01\n", " 2.050486e-03\n", " \n", @@ -1012,7 +1011,7 @@ " 1\n", " 10000\n", " 2\n", - " U-238\n", + " U238\n", " 6.742638e-07\n", " 3.795256e-09\n", " \n", @@ -1020,7 +1019,7 @@ " 2\n", " 10000\n", " 2\n", - " O-16\n", + " O16\n", " 0.000000e+00\n", " 0.000000e+00\n", " \n", @@ -1030,12 +1029,12 @@ ], "text/plain": [ " 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" + "3 10000 1 U235 8.055246e-03 2.857567e-05\n", + "4 10000 1 U238 7.339215e-03 4.349466e-05\n", + "5 10000 1 O16 0.000000e+00 0.000000e+00\n", + "0 10000 2 U235 3.615565e-01 2.050486e-03\n", + "1 10000 2 U238 6.742638e-07 3.795256e-09\n", + "2 10000 2 O16 0.000000e+00 0.000000e+00" ] }, "execution_count": 30, @@ -1070,17 +1069,17 @@ "\tReaction Type =\tnu-fission\n", "\tDomain Type =\tcell\n", "\tDomain ID =\t10000\n", - "\tNuclide =\tU-235\n", + "\tNuclide =\tU235\n", "\tCross Sections [cm^-1]:\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", + "\tNuclide =\tU238\n", "\tCross Sections [cm^-1]:\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", + "\tNuclide =\tO16\n", "\tCross Sections [cm^-1]:\n", " Group 1 [6.25e-07 - 20.0 MeV]:\t0.00e+00 +/- nan%\n", " Group 2 [0.0 - 6.25e-07 MeV]:\t0.00e+00 +/- nan%\n", @@ -1193,7 +1192,7 @@ " 0\n", " 10000\n", " 1\n", - " U-235\n", + " U235\n", " 0.074860\n", " 0.000303\n", " \n", @@ -1201,7 +1200,7 @@ " 1\n", " 10000\n", " 1\n", - " U-238\n", + " U238\n", " 0.005952\n", " 0.000035\n", " \n", @@ -1209,7 +1208,7 @@ " 2\n", " 10000\n", " 1\n", - " O-16\n", + " O16\n", " 0.000000\n", " 0.000000\n", " \n", @@ -1219,9 +1218,9 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\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" + "0 10000 1 U235 0.074860 0.000303\n", + "1 10000 1 U238 0.005952 0.000035\n", + "2 10000 1 O16 0.000000 0.000000" ] }, "execution_count": 36, @@ -1301,7 +1300,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[ NORMAL ] Importing ray tracing data from file...\n", + "[ NORMAL ] Ray tracing for track segmentation...\n", + "[ NORMAL ] Dumping tracks to 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", @@ -1314,42 +1314,42 @@ "[ NORMAL ] Iteration 8:\tk_eff = 0.683124\tres = 6.142E-03\n", "[ NORMAL ] Iteration 9:\tk_eff = 0.685943\tres = 7.897E-04\n", "[ NORMAL ] Iteration 10:\tk_eff = 0.691322\tres = 4.180E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.698747\tres = 7.873E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698746\tres = 7.873E-03\n", "[ NORMAL ] Iteration 12:\tk_eff = 0.707777\tres = 1.076E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.718040\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.718039\tres = 1.295E-02\n", "[ NORMAL ] Iteration 14:\tk_eff = 0.729218\tres = 1.452E-02\n", "[ NORMAL ] Iteration 15:\tk_eff = 0.741045\tres = 1.559E-02\n", "[ NORMAL ] Iteration 16:\tk_eff = 0.753296\tres = 1.624E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.765785\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765784\tres = 1.655E-02\n", "[ NORMAL ] Iteration 18:\tk_eff = 0.778355\tres = 1.659E-02\n", "[ NORMAL ] Iteration 19:\tk_eff = 0.790879\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803254\tres = 1.610E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803253\tres = 1.610E-02\n", "[ NORMAL ] Iteration 21:\tk_eff = 0.815394\tres = 1.566E-02\n", "[ NORMAL ] Iteration 22:\tk_eff = 0.827235\tres = 1.513E-02\n", "[ NORMAL ] Iteration 23:\tk_eff = 0.838724\tres = 1.453E-02\n", "[ NORMAL ] Iteration 24:\tk_eff = 0.849823\tres = 1.390E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.860503\tres = 1.324E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860502\tres = 1.324E-02\n", "[ NORMAL ] Iteration 26:\tk_eff = 0.870744\tres = 1.258E-02\n", "[ NORMAL ] Iteration 27:\tk_eff = 0.880535\tres = 1.191E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.889870\tres = 1.125E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.898748\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889869\tres = 1.125E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898747\tres = 1.061E-02\n", "[ NORMAL ] Iteration 30:\tk_eff = 0.907172\tres = 9.985E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.915151\tres = 9.382E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.922693\tres = 8.802E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.929811\tres = 8.248E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915150\tres = 9.382E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922692\tres = 8.802E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929810\tres = 8.248E-03\n", "[ NORMAL ] Iteration 34:\tk_eff = 0.936517\tres = 7.720E-03\n", "[ NORMAL ] Iteration 35:\tk_eff = 0.942827\tres = 7.219E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.948757\tres = 6.744E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.954322\tres = 6.295E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948756\tres = 6.744E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954321\tres = 6.295E-03\n", "[ NORMAL ] Iteration 38:\tk_eff = 0.959539\tres = 5.871E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.964425\tres = 5.472E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.968996\tres = 5.096E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964424\tres = 5.472E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.968995\tres = 5.096E-03\n", "[ NORMAL ] Iteration 41:\tk_eff = 0.973268\tres = 4.744E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.977259\tres = 4.413E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.980982\tres = 4.104E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.984454\tres = 3.814E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977258\tres = 4.413E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.980981\tres = 4.104E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984453\tres = 3.814E-03\n", "[ NORMAL ] Iteration 45:\tk_eff = 0.987689\tres = 3.543E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990702\tres = 3.289E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990701\tres = 3.289E-03\n", "[ NORMAL ] Iteration 47:\tk_eff = 0.993505\tres = 3.053E-03\n", "[ NORMAL ] Iteration 48:\tk_eff = 0.996112\tres = 2.832E-03\n", "[ NORMAL ] Iteration 49:\tk_eff = 0.998536\tres = 2.627E-03\n", @@ -1369,12 +1369,12 @@ "[ NORMAL ] Iteration 63:\tk_eff = 1.018721\tres = 8.864E-04\n", "[ NORMAL ] Iteration 64:\tk_eff = 1.019490\tres = 8.187E-04\n", "[ NORMAL ] Iteration 65:\tk_eff = 1.020201\tres = 7.560E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.020858\tres = 6.980E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021464\tres = 6.444E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020857\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021464\tres = 6.443E-04\n", "[ NORMAL ] Iteration 68:\tk_eff = 1.022024\tres = 5.947E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022541\tres = 5.488E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022540\tres = 5.488E-04\n", "[ NORMAL ] Iteration 70:\tk_eff = 1.023017\tres = 5.063E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.023458\tres = 4.670E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023457\tres = 4.670E-04\n", "[ NORMAL ] Iteration 72:\tk_eff = 1.023863\tres = 4.308E-04\n", "[ NORMAL ] Iteration 73:\tk_eff = 1.024238\tres = 3.972E-04\n", "[ NORMAL ] Iteration 74:\tk_eff = 1.024583\tres = 3.663E-04\n", @@ -1389,38 +1389,38 @@ "[ NORMAL ] Iteration 83:\tk_eff = 1.026697\tres = 1.753E-04\n", "[ NORMAL ] Iteration 84:\tk_eff = 1.026849\tres = 1.614E-04\n", "[ NORMAL ] Iteration 85:\tk_eff = 1.026989\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.027118\tres = 1.369E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027118\tres = 1.368E-04\n", "[ NORMAL ] Iteration 87:\tk_eff = 1.027237\tres = 1.260E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.027347\tres = 1.160E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027346\tres = 1.159E-04\n", "[ NORMAL ] Iteration 89:\tk_eff = 1.027447\tres = 1.067E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027540\tres = 9.823E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027625\tres = 9.039E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027704\tres = 8.317E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027776\tres = 7.652E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027843\tres = 7.040E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027904\tres = 6.476E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.027960\tres = 5.957E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.028012\tres = 5.479E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028059\tres = 5.039E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028103\tres = 4.635E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028143\tres = 4.262E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028180\tres = 3.919E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028214\tres = 3.603E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028245\tres = 3.313E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028274\tres = 3.046E-05\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027540\tres = 9.821E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027625\tres = 9.040E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027703\tres = 8.316E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027775\tres = 7.652E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027842\tres = 7.039E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027903\tres = 6.480E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.027959\tres = 5.959E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028011\tres = 5.479E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028058\tres = 5.043E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028102\tres = 4.633E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028142\tres = 4.265E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028180\tres = 3.921E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028214\tres = 3.605E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028245\tres = 3.315E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028273\tres = 3.047E-05\n", "[ NORMAL ] Iteration 105:\tk_eff = 1.028300\tres = 2.800E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028324\tres = 2.574E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028347\tres = 2.366E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028367\tres = 2.175E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028386\tres = 1.999E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028324\tres = 2.575E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028346\tres = 2.368E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028367\tres = 2.176E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028386\tres = 2.003E-05\n", "[ NORMAL ] Iteration 110:\tk_eff = 1.028403\tres = 1.837E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.028419\tres = 1.688E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028434\tres = 1.551E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028419\tres = 1.690E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028434\tres = 1.553E-05\n", "[ NORMAL ] Iteration 113:\tk_eff = 1.028447\tres = 1.426E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028460\tres = 1.310E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028471\tres = 1.204E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028481\tres = 1.106E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028491\tres = 1.016E-05\n" + "[ NORMAL ] Iteration 114:\tk_eff = 1.028459\tres = 1.309E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028471\tres = 1.202E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028481\tres = 1.107E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028491\tres = 1.015E-05\n" ] } ], @@ -1562,7 +1562,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 43, @@ -1571,9 +1571,9 @@ }, { "data": { - "image/png": "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\n2ajR7Q6wgAAAAABJRU5ErkJggg==\n", + "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, From fc56da57fd66f1603c819b29004ed0b5e2c5229b Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 29 Jul 2016 13:46:03 -0400 Subject: [PATCH 198/417] removed implement mesh domain todos --- openmc/mgxs/mgxs.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 1ef3194be0..ca5adcceb5 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -42,7 +42,6 @@ MGXS_TYPES = ['total', # Supported domain types -# TODO: Implement Mesh domains DOMAIN_TYPES = ['cell', 'distribcell', 'universe', @@ -50,7 +49,6 @@ DOMAIN_TYPES = ['cell', 'mesh'] # Supported domain classes -# TODO: Implement Mesh domains _DOMAINS = (openmc.Cell, openmc.Universe, openmc.Material, From 9acac0725a26efc14906d692bc99f0dacabeccea Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 29 Jul 2016 13:54:30 -0500 Subject: [PATCH 199/417] Add Madland fission-Q support to F90 --- openmc/data/fission_energy.py | 27 ++++++ src/constants.F90 | 6 +- src/input_xml.F90 | 4 + src/nuclide_header.F90 | 34 ++++++- src/output.F90 | 2 + src/tally.F90 | 162 +++++++++++++++++++++++++++++----- 6 files changed, 209 insertions(+), 26 deletions(-) diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index 5716a3e858..7415a9b515 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -62,6 +62,19 @@ class FissionEnergyRelease(object): return Sum([self.fragments, self.prompt_neutrons, self.delayed_neutrons, self.prompt_photons, self.delayed_photons, self.betas, self.neutrinos]) + + @property + def prompt_q(self): + return Sum([self.fragments, self.prompt_neutrons, self.prompt_photons, + lambda E: -E]) + + @property + def recoverable_q(self): + return Sum([self.recoverable, lambda E: -E]) + + @property + def total_q(self): + return Sum([self.total, lambda E: -E]) @property def form(self): @@ -272,6 +285,20 @@ class FissionEnergyRelease(object): data=self.delayed_photons.coef) group.create_dataset('betas', data=self.betas.coef) group.create_dataset('neutrinos', data=self.neutrinos.coef) + + q_prompt = (self.fragments + self.prompt_neutrons + + self.prompt_photons + Polynomial((-1.0, 0.0))) + group.create_dataset('q_prompt', data=q_prompt.coef) + q_recoverable = (self.fragments + self.prompt_neutrons + + self.delayed_neutrons + self.prompt_photons + + self.delayed_photons + self.betas + + Polynomial((-1.0, 0.0))) + group.create_dataset('q_recoverable', data=q_recoverable.coef) + q_total = (self.fragments + self.prompt_neutrons + + self.delayed_neutrons + self.prompt_photons + + self.delayed_photons + self.betas + self.neutrinos + + Polynomial((-1.0, 0.0))) + group.create_dataset('q_total', data=q_total.coef) elif self.form == 'Sher-Beck': group.attrs['format'] = np.string_('Sher-Beck') self.fragments.to_hdf5(group, 'fragments') diff --git a/src/constants.F90 b/src/constants.F90 index d2bb6e1cf6..5447b5cc21 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -289,7 +289,7 @@ module constants EVENT_ABSORB = 2 ! Tally score type - integer, parameter :: N_SCORE_TYPES = 20 + integer, parameter :: N_SCORE_TYPES = 22 integer, parameter :: & SCORE_FLUX = -1, & ! flux SCORE_TOTAL = -2, & ! total reaction rate @@ -310,7 +310,9 @@ module constants SCORE_NU_SCATTER_YN = -17, & ! angular flux-weighted nu-scattering moment (0:N) SCORE_EVENTS = -18, & ! number of events SCORE_DELAYED_NU_FISSION = -19, & ! delayed neutron production rate - SCORE_INVERSE_VELOCITY = -20 ! flux-weighted inverse velocity + SCORE_INVERSE_VELOCITY = -20, & ! flux-weighted inverse velocity + SCORE_FISS_Q_PROMPT = -21, & ! prompt fission Q-value + SCORE_FISS_Q_RECOV = -22 ! recoverable fission Q-value ! Maximum scattering order supported integer, parameter :: MAX_ANG_ORDER = 10 diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 3c8291e9c8..f661927d76 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3629,6 +3629,10 @@ contains t % score_bins(j) = SCORE_KAPPA_FISSION case ('inverse-velocity') t % score_bins(j) = SCORE_INVERSE_VELOCITY + case ('fission-q-prompt') + t % score_bins(j) = SCORE_FISS_Q_PROMPT + case ('fission-q-recoverable') + t % score_bins(j) = SCORE_FISS_Q_RECOV case ('current') t % score_bins(j) = SCORE_CURRENT t % type = TALLY_SURFACE_CURRENT diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 8ff83482e5..31e069b68f 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -88,6 +88,10 @@ module nuclide_header type(DictIntInt) :: reaction_index ! map MT values to index in reactions ! array; used at tally-time + ! Fission energy release + class(Function1D), allocatable :: fission_q_prompt ! prompt neutrons, gammas + class(Function1D), allocatable :: fission_q_recov ! neutrons, gammas, betas + contains procedure :: clear => nuclide_clear procedure :: print => nuclide_print @@ -192,6 +196,8 @@ module nuclide_header integer(HID_T) :: rxs_group integer(HID_T) :: rx_group integer(HID_T) :: total_nu + integer(HID_T) :: fer_group ! fission_energy_release group + integer(HID_T) :: fer_dset integer(SIZE_T) :: name_len, name_file_len integer(HSIZE_T) :: j integer(HSIZE_T) :: dims(1) @@ -251,8 +257,8 @@ module nuclide_header call this % urr_data % from_hdf5(urr_group) ! if the inelastic competition flag indicates that the inelastic cross - ! section should be determined from a normal reaction cross section, we need - ! to get the index of the reaction + ! section should be determined from a normal reaction cross section, we + ! need to get the index of the reaction if (this % urr_data % inelastic_flag > 0) then do i = 1, size(this % reactions) if (this % reactions(i) % MT == this % urr_data % inelastic_flag) then @@ -296,6 +302,30 @@ module nuclide_header call close_group(nu_group) end if + ! Read fission energy release data if present + call h5ltpath_valid_f(group_id, 'fission_energy_release', .true., exists, & + hdf5_err) + if (exists) then + fer_group = open_group(group_id, 'fission_energy_release') + call read_attribute(temp, fer_group, 'format') + if (temp == 'Madland') then + ! The data uses the Madland format, i.e. polynomials + + ! Read the prompt Q-value + allocate(Polynomial :: this % fission_q_prompt) + fer_dset = open_dataset(fer_group, 'q_prompt') + call this % fission_q_prompt % from_hdf5(fer_dset) + call close_dataset(fer_dset) + + ! Read the recoverable energy Q-value + allocate(Polynomial :: this % fission_q_recov) + fer_dset = open_dataset(fer_group, 'q_recoverable') + call this % fission_q_recov % from_hdf5(fer_dset) + call close_dataset(fer_dset) + end if + call close_group(fer_group) + end if + ! Create derived cross section data call this % create_derived() diff --git a/src/output.F90 b/src/output.F90 index 09df23f0d5..35524a9a35 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -791,6 +791,8 @@ contains score_names(abs(SCORE_NU_SCATTER_YN)) = "Scattering Prod. Rate Moment" score_names(abs(SCORE_DELAYED_NU_FISSION)) = "Delayed-Nu-Fission Rate" score_names(abs(SCORE_INVERSE_VELOCITY)) = "Flux-Weighted Inverse Velocity" + score_names(abs(SCORE_FISS_Q_PROMPT)) = "Prompt fission power" + score_names(abs(SCORE_FISS_Q_RECOV)) = "Recoverable fission power" ! Create filename for tally output filename = trim(path_output) // "tallies.out" diff --git a/src/tally.F90 b/src/tally.F90 index b40a39ce0c..1271da7da9 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -625,14 +625,14 @@ contains 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 - associate (nuc => nuclides(p%event_nuclide)) - if (micro_xs(p%event_nuclide)%absorption > ZERO .and. & - nuc%fissionable) then - score = p%absorb_wgt * & - nuc%reactions(nuc%index_fission(1))%Q_value * & - micro_xs(p%event_nuclide)%fission / & - micro_xs(p%event_nuclide)%absorption + ! fission scaled by kappa-fission + associate (nuc => nuclides(p % event_nuclide)) + if (micro_xs(p % event_nuclide) % absorption > ZERO .and. & + nuc % fissionable) then + score = p % absorb_wgt * & + nuc % reactions(nuc % index_fission(1)) % Q_value * & + micro_xs(p % event_nuclide) % fission / & + micro_xs(p % event_nuclide) % absorption end if end associate else @@ -641,12 +641,12 @@ contains ! 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 - associate (nuc => nuclides(p%event_nuclide)) - if (nuc%fissionable) then - score = p%last_wgt * & - nuc%reactions(nuc%index_fission(1))%Q_value * & - micro_xs(p%event_nuclide)%fission / & - micro_xs(p%event_nuclide)%absorption + associate (nuc => nuclides(p % event_nuclide)) + if (nuc % fissionable) then + score = p % last_wgt * & + nuc % reactions(nuc % index_fission(1)) % Q_value * & + micro_xs(p % event_nuclide) % fission / & + micro_xs(p % event_nuclide) % absorption end if end associate end if @@ -654,22 +654,23 @@ contains else if (i_nuclide > 0) then associate (nuc => nuclides(i_nuclide)) - if (nuc%fissionable) then - score = nuc%reactions(nuc%index_fission(1))%Q_value * & - micro_xs(i_nuclide)%fission * atom_density * flux + if (nuc % fissionable) then + score = nuc % reactions(nuc % index_fission(1)) % Q_value * & + micro_xs(i_nuclide) % fission * atom_density * flux end if end associate else - do l = 1, materials(p%material)%n_nuclides + do l = 1, materials(p % material) % n_nuclides ! Determine atom density and index of nuclide - atom_density_ = materials(p%material)%atom_density(l) - i_nuc = materials(p%material)%nuclide(l) + atom_density_ = materials(p % material) % atom_density(l) + i_nuc = materials(p % material) % nuclide(l) ! If nuclide is fissionable, accumulate kappa fission associate(nuc => nuclides(i_nuc)) if (nuc % fissionable) then - score = score + nuc%reactions(nuc%index_fission(1))%Q_value * & - micro_xs(i_nuc)%fission * atom_density_ * flux + score = score + & + nuc % reactions(nuc % index_fission(1)) % Q_value * & + micro_xs(i_nuc) % fission * atom_density_ * flux end if end associate end do @@ -694,6 +695,123 @@ contains end if end if + case (SCORE_FISS_Q_PROMPT) + 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 scaled by Q-value + associate (nuc => nuclides(p % event_nuclide)) + if (micro_xs(p % event_nuclide) % absorption > ZERO .and. & + allocated(nuc % fission_q_prompt)) then + score = p % absorb_wgt & + * nuc % fission_q_prompt % evaluate(p % last_E) & + * micro_xs(p % event_nuclide) % fission & + / micro_xs(p % event_nuclide) % absorption + end if + end associate + 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 + associate (nuc => nuclides(p % event_nuclide)) + if (allocated(nuc % fission_q_prompt)) then + score = p % last_wgt & + * nuc % fission_q_prompt % evaluate(p % last_E) & + * micro_xs(p % event_nuclide) % fission & + / micro_xs(p % event_nuclide) % absorption + end if + end associate + end if + + else + if (t % estimator == ESTIMATOR_COLLISION) then + E = p % last_E + else + E = p % E + end if + + if (i_nuclide > 0) then + if (allocated(nuclides(i_nuclide) % fission_q_prompt)) then + score = micro_xs(i_nuclide) % fission * atom_density * flux & + * nuclides(i_nuclide) % fission_q_prompt % evaluate(E) + else + score = ZERO + end if + else + score = ZERO + do l = 1, materials(p % material) % n_nuclides + atom_density_ = materials(p % material) % atom_density(l) + i_nuc = materials(p % material) % nuclide(l) + if (allocated(nuclides(i_nuc) % fission_q_prompt)) then + score = score + micro_xs(i_nuc) % fission * atom_density_ & + * flux & + * nuclides(i_nuc) % fission_q_prompt % evaluate(E) + end if + end do + end if + end if + + case (SCORE_FISS_Q_RECOV) + 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 scaled by Q-value + associate (nuc => nuclides(p % event_nuclide)) + if (micro_xs(p % event_nuclide) % absorption > ZERO .and. & + allocated(nuc % fission_q_recov)) then + score = p % absorb_wgt & + * nuc % fission_q_recov % evaluate(p % last_E) & + * micro_xs(p % event_nuclide) % fission & + / micro_xs(p % event_nuclide) % absorption + end if + end associate + 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 + associate (nuc => nuclides(p % event_nuclide)) + if (allocated(nuc % fission_q_recov)) then + score = p % last_wgt & + * nuc % fission_q_recov % evaluate(p % last_E) & + * micro_xs(p % event_nuclide) % fission & + / micro_xs(p % event_nuclide) % absorption + end if + end associate + end if + + else + if (t % estimator == ESTIMATOR_COLLISION) then + E = p % last_E + else + E = p % E + end if + + if (i_nuclide > 0) then + if (allocated(nuclides(i_nuclide) % fission_q_recov)) then + score = micro_xs(i_nuclide) % fission * atom_density * flux & + * nuclides(i_nuclide) % fission_q_recov % evaluate(E) + else + score = ZERO + end if + else + score = ZERO + do l = 1, materials(p % material) % n_nuclides + atom_density_ = materials(p % material) % atom_density(l) + i_nuc = materials(p % material) % nuclide(l) + if (allocated(nuclides(i_nuc) % fission_q_recov)) then + score = score + micro_xs(i_nuc) % fission * atom_density_ & + * flux * nuclides(i_nuc) % fission_q_recov % evaluate(E) + end if + end do + end if + end if + case default if (t % estimator == ESTIMATOR_ANALOG) then ! Any other score is assumed to be a MT number. Thus, we just need From 3c94a733efa86b7af4824734121d70b4c4ee5ef5 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 29 Jul 2016 15:36:58 -0400 Subject: [PATCH 200/417] cleaned up chi equations in python API and added new MGXS to documentation --- docs/source/pythonapi/index.rst | 3 +++ openmc/mgxs/mgxs.py | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 36f161b3c3..df50eee0ba 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -269,13 +269,16 @@ Multi-group Cross Sections openmc.mgxs.AbsorptionXS openmc.mgxs.CaptureXS openmc.mgxs.Chi + openmc.mgxs.ChiPrompt openmc.mgxs.FissionXS + openmc.mgxs.InverseVelocity openmc.mgxs.KappaFissionXS openmc.mgxs.MultiplicityMatrixXS openmc.mgxs.NuFissionXS openmc.mgxs.NuFissionMatrixXS openmc.mgxs.NuScatterXS openmc.mgxs.NuScatterMatrixXS + openmc.mgxs.PromptNuFissionXS openmc.mgxs.ScatterXS openmc.mgxs.ScatterMatrixXS openmc.mgxs.TotalXS diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c359379f49..36d5a00be1 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -4209,14 +4209,14 @@ class Chi(MGXS): .. math:: - \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in V} dr + \langle \nu\sigma_{f,g' \rightarrow g} \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ \langle \nu\sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, E') \psi(r, E', \Omega') \\ - \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle - \nu\sigma_f \phi \rangle} + \chi_g &= \frac{\langle \nu\sigma_{f,g' \rightarrow g} \phi \rangle} + {\langle \nu\sigma_f \phi \rangle} Parameters ---------- @@ -4692,14 +4692,14 @@ class ChiPrompt(Chi): .. math:: - \langle \nu\sigma_{f,\rightarrow g}^p \phi \rangle &= \int_{r \in V} dr - \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) - \nu\sigma_f^p (r, E') \psi(r, E', \Omega')\\ - \langle \nu\sigma_f^p \phi \rangle &= \int_{r \in V} dr \int_{4\pi} - d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f^p (r, + \langle \nu^p \sigma_{f,g' \rightarrow g} \phi \rangle &= \int_{r \in V} + dr \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; + \chi(E) \nu^p \sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \nu^p \sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu^p \sigma_f (r, E') \psi(r, E', \Omega') \\ - \chi_g^p &= \frac{\langle \nu\sigma_{f,\rightarrow g}^p \phi \rangle}{\langle - \nu\sigma_f^p \phi \rangle} + \chi_g^p &= \frac{\langle \nu^p \sigma_{f,g' \rightarrow g} \phi \rangle} + {\langle \nu^p \sigma_f \phi \rangle} Parameters ---------- From 90cd17c3ec8c0d324d38bbb35a3ca60504a21676 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Fri, 29 Jul 2016 20:53:27 +0000 Subject: [PATCH 201/417] updated test results --- openmc/mgxs/mgxs.py | 21 +++++++++++++++++++ .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_tallies/inputs_true.dat | 2 +- 7 files changed, 27 insertions(+), 6 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 4f87953f53..e3697010b0 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1749,6 +1749,13 @@ class MatrixMGXS(MGXS): cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) cv.check_value('xs_type', xs_type, ['macro', 'micro']) + # FIXME: Unable to get microscopic xs for mesh domain because the mesh + # cells do not know the nuclide densities in each mesh cell. + if self.domain_type == 'mesh' and xs_type == 'micro': + msg = 'Unable to get micro xs for mesh domain since the mesh ' \ + 'cells do not know the nuclide densities in each mesh cell.' + raise ValueError(msg) + filters = [] filter_bins = [] @@ -3567,6 +3574,13 @@ class ScatterMatrixXS(MatrixMGXS): cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) cv.check_value('xs_type', xs_type, ['macro', 'micro']) + # FIXME: Unable to get microscopic xs for mesh domain because the mesh + # cells do not know the nuclide densities in each mesh cell. + if self.domain_type == 'mesh' and xs_type == 'micro': + msg = 'Unable to get micro xs for mesh domain since the mesh ' \ + 'cells do not know the nuclide densities in each mesh cell.' + raise ValueError(msg) + filters = [] filter_bins = [] @@ -4538,6 +4552,13 @@ class Chi(MGXS): cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) cv.check_value('xs_type', xs_type, ['macro', 'micro']) + # FIXME: Unable to get microscopic xs for mesh domain because the mesh + # cells do not know the nuclide densities in each mesh cell. + if self.domain_type == 'mesh' and xs_type == 'micro': + msg = 'Unable to get micro xs for mesh domain since the mesh ' \ + 'cells do not know the nuclide densities in each mesh cell.' + raise ValueError(msg) + filters = [] filter_bins = [] diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index 181c5c59ca..0c648376e8 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e +e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 4ad63a9470..055ce35a57 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -2d948f3b12293294eaeca231a3df9d51195379e8bb38dd3e68d3bc512a7d08ed52a1109054ca381684ec127268710f6d6e9210ac8154c9b379608e996627624a +2d948f3b12293294eaeca231a3df9d51195379e8bb38dd3e68d3bc512a7d08ed52a1109054ca381684ec127268710f6d6e9210ac8154c9b379608e996627624a \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index 181c5c59ca..0c648376e8 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e +e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 0bf12fbb2a..a15bbee4c8 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -e4a5f03ab6167e96462c4ef537533fe33b98d7878ae00824c5619356bda8d548b3c71af01ba8c88d5a9b46dd1471d331e6f678a164af922200f2ee3642be6340 +e4a5f03ab6167e96462c4ef537533fe33b98d7878ae00824c5619356bda8d548b3c71af01ba8c88d5a9b46dd1471d331e6f678a164af922200f2ee3642be6340 \ 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 e89776fe88..3da8146042 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -e494320a213b5704a2ac915a2ba504857be91961ceb6735b6ad05d81eb31c44c9584d5bd9d40baececf1dcb5b030e6ecec63cfbd20639baf69bcb596c5c46591 +e494320a213b5704a2ac915a2ba504857be91961ceb6735b6ad05d81eb31c44c9584d5bd9d40baececf1dcb5b030e6ecec63cfbd20639baf69bcb596c5c46591 \ No newline at end of file diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index f961821aa0..17f04238c2 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -ca47172a42f6c13b244a763c990cbe4811662708ee03307d810a4542ee34bb5db7cc29d66aea313dad95b9f38a4ff7943ded527cfd0c7c8825372fec40cfc0d0 +ca47172a42f6c13b244a763c990cbe4811662708ee03307d810a4542ee34bb5db7cc29d66aea313dad95b9f38a4ff7943ded527cfd0c7c8825372fec40cfc0d0 \ No newline at end of file From 3986a20b131df7570a1bd33639cdcb5aaf02a086 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Fri, 29 Jul 2016 21:09:57 +0000 Subject: [PATCH 202/417] removed unnecessary code in mgxs.py --- openmc/mgxs/mgxs.py | 12 ------------ tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e3697010b0..8d60e521a5 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -14,7 +14,6 @@ import numpy as np import openmc import openmc.checkvalue as cv from openmc.mgxs import EnergyGroups -from openmc import Mesh if sys.version_info[0] >= 3: basestring = str @@ -4977,17 +4976,6 @@ class InverseVelocity(MGXS): """ - # Construct a collection of the subdomains to report - if not isinstance(subdomains, basestring): - 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 == 'mesh': - xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) - subdomains = list(itertools.product(*xyz)) - else: - subdomains = [self.domain.id] - if xs_type == 'macro': return 'second/cm' else: diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index 181c5c59ca..0c648376e8 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e +e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e \ No newline at end of file From b64dcd24c83d05e6041f01f84e65b0d0355d97fa Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 29 Jul 2016 16:09:06 -0500 Subject: [PATCH 203/417] Add Sher-Beck fission-Q support --- openmc/data/fission_energy.py | 96 ++++++++++++++++++++++++----------- src/nuclide_header.F90 | 17 +++++++ src/tally.F90 | 4 +- 3 files changed, 84 insertions(+), 33 deletions(-) diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index 7415a9b515..b7641a2370 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -1,4 +1,5 @@ from collections import Callable +from copy import deepcopy import sys #from warnings import warn @@ -64,16 +65,16 @@ class FissionEnergyRelease(object): self.neutrinos]) @property - def prompt_q(self): + def q_prompt(self): return Sum([self.fragments, self.prompt_neutrons, self.prompt_photons, lambda E: -E]) @property - def recoverable_q(self): + def q_recoverable(self): return Sum([self.recoverable, lambda E: -E]) @property - def total_q(self): + def q_total(self): return Sum([self.total, lambda E: -E]) @property @@ -226,7 +227,37 @@ class FissionEnergyRelease(object): out.neutrinos = Polynomial(value['ENU']) else: out.form = 'Sher-Beck' - raise NotImplemented + + # EFR and ENP are energy independent. Polynomial is used because it + # has a __call__ attribute that handles Iterable inputs. The + # energy-dependence of END is unspecified in ENDF-102 so assume it + # is independent. + out.fragments = Polynomial((value['EFR'][0])) + out.prompt_photons = Polynomial((value['EGP'][0])) + out.delayed_neutrons = Polynomial((value['END'][0])) + + # EDP, EB, and ENU are linear. + out.delayed_photons = Polynomial((value['EGD'][0], -0.075)) + out.betas = Polynomial((value['EB'][0], -0.075)) + out.neutrinos = Polynomial((value['ENU'][0], -0.105)) + + # Prompt neutrons require nu-data. It is not clear from ENDF-102 + # whether prompt or total nu values should be used, but the delayed + # neutron fraction is so small that the difference is negligible. + nu_prompt = [p for p in incident_neutron[18].products + if p.particle == 'neutron' + and p.emission_mode == 'prompt'] + if len(nu_prompt) == 0: + raise ValueError('Nu data is needed to compute fission energy ' + 'release with the Sher-Beck format.') + if len(nu_prompt) > 1: + raise ValueError('Ambiguous prompt nu value.') + if not isinstance(nu_prompt[0].yield_, Tabulated1D): + raise TypeError('Sher-Beck fission energy release currently ' + 'only supports Tabulated1D nu data.') + ENP = deepcopy(nu_prompt[0].yield_) + ENP.y = value['ENP'] + 1.307 * ENP.x - 8.07 * (ENP.y - ENP.y[0]) + out.prompt_neutrons = ENP return out @@ -247,16 +278,19 @@ class FissionEnergyRelease(object): """ obj = cls() + + obj.fragments = Polynomial(group['fragments'].value) + obj.delayed_neutrons = Polynomial(group['delayed_neutrons'].value) + obj.prompt_photons = Polynomial(group['prompt_photons'].value) + obj.delayed_photons = Polynomial(group['delayed_photons'].value) + obj.betas = Polynomial(group['betas'].value) + obj.neutrinos = Polynomial(group['neutrinos'].value) + if group.attrs['format'] == 'Madland': - obj.fragments = Polynomial(group['fragments'].value) obj.prompt_neutrons = Polynomial(group['prompt_neutrons'].value) - obj.delayed_neutrons = Polynomial(group['delayed_neutrons'].value) - obj.prompt_photons = Polynomial(group['prompt_photons'].value) - obj.delayed_photons = Polynomial(group['delayed_photons'].value) - obj.betas = Polynomial(group['betas'].value) - obj.neutrinos = Polynomial(group['neutrinos'].value) elif group.attrs['format'] == 'Sher-Beck': - raise NotImplemented + obj.prompt_neutrons = Tabulated1D.from_hdf5( + group['prompt_neutrons']) else: raise ValueError('Unrecognized energy release format') @@ -272,19 +306,20 @@ class FissionEnergyRelease(object): """ + group.create_dataset('fragments', data=self.fragments.coef) + group.create_dataset('delayed_neutrons', + data=self.delayed_neutrons.coef) + group.create_dataset('prompt_photons', + data=self.prompt_photons.coef) + group.create_dataset('delayed_photons', + data=self.delayed_photons.coef) + group.create_dataset('betas', data=self.betas.coef) + group.create_dataset('neutrinos', data=self.neutrinos.coef) + if self.form == 'Madland': group.attrs['format'] = np.string_('Madland') - group.create_dataset('fragments', data=self.fragments.coef) group.create_dataset('prompt_neutrons', data=self.prompt_neutrons.coef) - group.create_dataset('delayed_neutrons', - data=self.delayed_neutrons.coef) - group.create_dataset('prompt_photons', - data=self.prompt_photons.coef) - group.create_dataset('delayed_photons', - data=self.delayed_photons.coef) - group.create_dataset('betas', data=self.betas.coef) - group.create_dataset('neutrinos', data=self.neutrinos.coef) q_prompt = (self.fragments + self.prompt_neutrons + self.prompt_photons + Polynomial((-1.0, 0.0))) @@ -294,19 +329,18 @@ class FissionEnergyRelease(object): self.delayed_photons + self.betas + Polynomial((-1.0, 0.0))) group.create_dataset('q_recoverable', data=q_recoverable.coef) - q_total = (self.fragments + self.prompt_neutrons + - self.delayed_neutrons + self.prompt_photons + - self.delayed_photons + self.betas + self.neutrinos + - Polynomial((-1.0, 0.0))) - group.create_dataset('q_total', data=q_total.coef) elif self.form == 'Sher-Beck': group.attrs['format'] = np.string_('Sher-Beck') - self.fragments.to_hdf5(group, 'fragments') self.prompt_neutrons.to_hdf5(group, 'prompt_neutrons') - self.delayed_neutrons.to_hdf5(group, 'delayed_neutrons') - self.prompt_photons.to_hdf5(group, 'prompt_photons') - self.delayed_photons.to_hdf5(group, 'delayed_photons') - self.betas.to_hdf5(group, 'betas') - self.neutrinos.to_hdf5(group, 'neutrinos') + + q_prompt = deepcopy(self.prompt_neutrons) + q_prompt.y += self.fragments(q_prompt.x) + q_prompt.y += self.prompt_photons(q_prompt.x) + q_prompt.to_hdf5(group, 'q_prompt') + q_recoverable = q_prompt + q_recoverable.y += self.delayed_neutrons(q_recoverable.x) + q_recoverable.y += self.delayed_photons(q_recoverable.x) + q_recoverable.y += self.betas(q_recoverable.x) + q_recoverable.to_hdf5(group, 'q_recoverable') else: raise ValueError('Unrecognized energy release format') diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 31e069b68f..2a2a376bd5 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -322,6 +322,23 @@ module nuclide_header fer_dset = open_dataset(fer_group, 'q_recoverable') call this % fission_q_recov % from_hdf5(fer_dset) call close_dataset(fer_dset) + else if (temp == 'Sher-Beck') then + ! The data uses the Sher-Beck format. Python has handily converted this + ! format to Tabulated1Ds. + + ! Read the prompt Q-value + allocate(Tabulated1D :: this % fission_q_prompt) + fer_dset = open_dataset(fer_group, 'q_prompt') + call this % fission_q_prompt % from_hdf5(fer_dset) + call close_dataset(fer_dset) + + ! Read the recoverable energy Q-value + allocate(Tabulated1D :: this % fission_q_recov) + fer_dset = open_dataset(fer_group, 'q_recoverable') + call this % fission_q_recov % from_hdf5(fer_dset) + call close_dataset(fer_dset) + else + call fatal_error('Unrecognized fission energy release format.') end if call close_group(fer_group) end if diff --git a/src/tally.F90 b/src/tally.F90 index 1271da7da9..8d14b1c2a6 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -703,7 +703,7 @@ contains ! fission scaled by Q-value associate (nuc => nuclides(p % event_nuclide)) if (micro_xs(p % event_nuclide) % absorption > ZERO .and. & - allocated(nuc % fission_q_prompt)) then + allocated(nuc % fission_q_prompt)) then score = p % absorb_wgt & * nuc % fission_q_prompt % evaluate(p % last_E) & * micro_xs(p % event_nuclide) % fission & @@ -762,7 +762,7 @@ contains ! fission scaled by Q-value associate (nuc => nuclides(p % event_nuclide)) if (micro_xs(p % event_nuclide) % absorption > ZERO .and. & - allocated(nuc % fission_q_recov)) then + allocated(nuc % fission_q_recov)) then score = p % absorb_wgt & * nuc % fission_q_recov % evaluate(p % last_E) & * micro_xs(p % event_nuclide) % fission & From 102edb6d65f6b405b156959065ef4193bdf2f98a Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Fri, 29 Jul 2016 21:22:16 +0000 Subject: [PATCH 204/417] replaced mapped lambdas with inline for loops --- openmc/mgxs/mgxs.py | 10 +++++----- openmc/tallies.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 8d60e521a5..ad55f9a241 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -694,7 +694,7 @@ class MGXS(object): # NOTE: This is important if tally merging was used if self.domain_type == 'mesh': filters = [self.domain_type] - xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + xyz = [np.arange(1, x+1) for x in self.domain.dimension] filter_bins = [tuple(itertools.product(*xyz))] elif self.domain_type != 'distribcell': filters = [self.domain_type] @@ -1157,7 +1157,7 @@ class MGXS(object): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + xyz = [np.arange(1, x+1) for x in self.domain.dimension] subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] @@ -1295,7 +1295,7 @@ class MGXS(object): domain_filter = self.xs_tally.find_filter('avg(distribcell)') subdomains = domain_filter.bins elif self.domain_type == 'mesh': - xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + xyz = [np.arange(1, x+1) for x in self.domain.dimension] subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] @@ -1924,7 +1924,7 @@ class MatrixMGXS(MGXS): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + xyz = [np.arange(1, x+1) for x in self.domain.dimension] subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] @@ -3773,7 +3773,7 @@ class ScatterMatrixXS(MatrixMGXS): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - xyz = map(lambda x: np.arange(1, x+1), self.domain.dimension) + xyz = [np.arange(1, x+1) for x in self.domain.dimension] subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] diff --git a/openmc/tallies.py b/openmc/tallies.py index 79e7c56bcb..45bc496388 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1293,7 +1293,7 @@ class Tally(object): # Create list of 2- or 3-tuples tuples for mesh cell bins if self_filter.type == 'mesh': dimension = self_filter.mesh.dimension - xyz = map(lambda x: np.arange(1, x+1), dimension) + xyz = [np.arange(1, x+1) for x in dimension] bins = list(itertools.product(*xyz)) # Create list of 2-tuples for energy boundary bins From 8062256fb3a678d42338f12cf19102ef981c0a69 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 29 Jul 2016 16:40:30 -0500 Subject: [PATCH 205/417] Shorten filter % get_next_bin logic --- src/tally_filter.F90 | 55 ++++++++++++------------------------- src/tally_filter_header.F90 | 2 +- 2 files changed, 19 insertions(+), 38 deletions(-) diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index ee1810e6c3..c0e1c88534 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -206,7 +206,7 @@ contains class(MeshFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight @@ -438,12 +438,11 @@ contains class(UniverseFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight integer :: i, start - logical :: bin_found ! Find the coordinate level of the last bin we found. if (current_bin == NO_BIN_FOUND) then @@ -458,16 +457,13 @@ contains end if ! Starting one coordinate level deeper, find the next bin. - bin_found = .false. + next_bin = NO_BIN_FOUND do i = start, p % n_coord if (this % map % has_key(p % coord(i) % universe)) then next_bin = this % map % get_key(p % coord(i) % universe) - bin_found = .true. exit end if end do - - if (.not. bin_found) next_bin = NO_BIN_FOUND weight = ONE end subroutine get_next_bin_universe @@ -518,18 +514,15 @@ contains class(MaterialFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight + next_bin = NO_BIN_FOUND if (current_bin == NO_BIN_FOUND) then if (this % map % has_key(p % material)) then next_bin = this % map % get_key(p % material) - else - next_bin = NO_BIN_FOUND end if - else - next_bin = NO_BIN_FOUND end if weight = ONE end subroutine get_next_bin_material @@ -581,12 +574,11 @@ contains class(CellFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight integer :: i, start - logical :: bin_found ! Find the coordinate level of the last bin we found. if (current_bin == NO_BIN_FOUND) then @@ -601,16 +593,13 @@ contains end if ! Starting one coordinate level deeper, find the next bin. - bin_found = .false. + next_bin = NO_BIN_FOUND do i = start, p % n_coord if (this % map % has_key(p % coord(i) % cell)) then next_bin = this % map % get_key(p % coord(i) % cell) - bin_found = .true. exit end if end do - - if (.not. bin_found) next_bin = NO_BIN_FOUND weight = ONE end subroutine get_next_bin_cell @@ -661,7 +650,7 @@ contains class(DistribcellFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight @@ -779,18 +768,15 @@ contains class(CellbornFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight + next_bin = NO_BIN_FOUND if (current_bin == NO_BIN_FOUND) then if (this % map % has_key(p % cell_born)) then next_bin = this % map % get_key(p % cell_born) - else - next_bin = NO_BIN_FOUND end if - else - next_bin = NO_BIN_FOUND end if weight = ONE end subroutine get_next_bin_cellborn @@ -842,25 +828,20 @@ contains class(SurfaceFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight integer :: i - logical :: bin_found + next_bin = NO_BIN_FOUND if (current_bin == NO_BIN_FOUND) then - bin_found = .false. do i = 1, this % n_bins if (p % surface == this % surfaces(i)) then next_bin = i - bin_found = .true. exit end if end do - if (.not. bin_found) next_bin = NO_BIN_FOUND - else - next_bin = NO_BIN_FOUND end if weight = ONE end subroutine get_next_bin_surface @@ -907,7 +888,7 @@ contains class(EnergyFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight @@ -981,7 +962,7 @@ contains class(EnergyoutFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight @@ -1042,7 +1023,7 @@ contains class(DelayedGroupFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight @@ -1078,7 +1059,7 @@ contains class(MuFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight @@ -1131,7 +1112,7 @@ contains class(PolarFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight @@ -1192,7 +1173,7 @@ contains class(AzimuthalFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight diff --git a/src/tally_filter_header.F90 b/src/tally_filter_header.F90 index d469311e68..43ef846e3e 100644 --- a/src/tally_filter_header.F90 +++ b/src/tally_filter_header.F90 @@ -40,7 +40,7 @@ module tally_filter_header class(TallyFilter), intent(in) :: this type(Particle), intent(in) :: p integer, intent(in) :: estimator - integer, intent(in) :: current_bin + integer, value, intent(in) :: current_bin integer, intent(out) :: next_bin real(8), intent(out) :: weight end subroutine get_next_bin_ From ef0cbebbaac1a1ae1580b1ae449ad6c1e9833765 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 29 Jul 2016 17:45:35 -0400 Subject: [PATCH 206/417] updated mgxs ipython notebooks noting that the mesh domain type has been added --- docs/source/pythonapi/examples/mgxs-part-iii.ipynb | 2 +- docs/source/pythonapi/examples/mgxs-part-iv.ipynb | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 39980a8fd7..a1eaa7ad82 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -574,7 +574,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports `\"material,\"` `\"cell,\"` and `\"universe\"` domain types. We will use a `\"cell\"` domain type here to compute cross sections in each of the cells in the fuel assembly geometry.\n", + "Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports `\"material\"`, `\"cell\"`, `\"universe\"`, and `\"mesh\"` domain types. We will use a `\"cell\"` domain type here to compute cross sections in each of the cells in the fuel assembly geometry.\n", "\n", "**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell or universe) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property. In our case, we wish to compute multi-group cross sections in each and every cell since they will be needed in our downstream OpenMOC calculation on the identical combinatorial geometry mesh." ] diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index ae015b0a64..5b3bae4957 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -519,9 +519,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports \"material,\" \"cell,\" and \"universe\" domain types. In this simple example, we wish to compute multi-group cross sections only for each material andtherefore will use a \"material\" domain type.\n", + "Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports \"material\" \"cell\", \"universe\", and \"mesh\" domain types. In this simple example, we wish to compute multi-group cross sections only for each material andtherefore will use a \"material\" domain type.\n", "\n", - "**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell or universe) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property." + "**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell, universe, or mesh cell) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property." ] }, { @@ -1437,21 +1437,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.2" + "pygments_lexer": "ipython2", + "version": "2.7.11" } }, "nbformat": 4, From 3a6d2b1aeec30334db4d810f3aef17a4b4a8a85e Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Sat, 30 Jul 2016 19:59:07 +0000 Subject: [PATCH 207/417] changed np.arange to range in mgxs.py and added mesh domain to library.py --- openmc/mgxs/library.py | 14 ++++++++++++-- openmc/mgxs/mgxs.py | 10 +++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index bf822017c1..3675571584 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -54,9 +54,10 @@ class Library(object): If true, computes cross sections for each nuclide in each domain mgxs_types : Iterable of str The types of cross sections in the library (e.g., ['total', 'scatter']) - domain_type : {'material', 'cell', 'distribcell', 'universe'} + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization - domains : Iterable of openmc.Material, openmc.Cell or openmc.Universe + domains : Iterable of openmc.Material, openmc.Cell, openmc.Universe or + openmc.Mesh The spatial domain(s) for which MGXS in the Library are computed correction : {'P0', None} Apply the P0 correction to scattering matrices if set to 'P0' @@ -183,6 +184,8 @@ class Library(object): return self.openmc_geometry.get_all_material_cells() elif self.domain_type == 'universe': return self.openmc_geometry.get_all_universes() + elif self.domain_type == 'mesh': + raise ValueError('Unable to get domains for Mesh domain type') else: raise ValueError('Unable to get domains without a domain type') else: @@ -273,6 +276,11 @@ class Library(object): elif self.domain_type == 'universe': cv.check_iterable_type('domain', domains, openmc.Universe) all_domains = self.openmc_geometry.get_all_universes() + elif self.domain_type == 'mesh': + cv.check_iterable_type('domain', domains, openmc.Mesh) + + # The mesh and geometry are independent, so just return + return else: raise ValueError('Unable to set domains with domain ' 'type "{}"'.format(self.domain_type)) @@ -474,6 +482,8 @@ class Library(object): cv.check_type('domain', domain, (openmc.Cell, Integral)) elif self.domain_type == 'universe': cv.check_type('domain', domain, (openmc.Universe, Integral)) + elif self.domain_type == 'mesh': + cv.check_type('domain', domain, (openmc.Mesh, Integral)) # Check that requested domain is included in library if isinstance(domain, Integral): diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index ad55f9a241..0dadab38ab 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -694,7 +694,7 @@ class MGXS(object): # NOTE: This is important if tally merging was used if self.domain_type == 'mesh': filters = [self.domain_type] - xyz = [np.arange(1, x+1) for x in self.domain.dimension] + xyz = [range(1, x+1) for x in self.domain.dimension] filter_bins = [tuple(itertools.product(*xyz))] elif self.domain_type != 'distribcell': filters = [self.domain_type] @@ -1157,7 +1157,7 @@ class MGXS(object): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - xyz = [np.arange(1, x+1) for x in self.domain.dimension] + xyz = [range(1, x+1) for x in self.domain.dimension] subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] @@ -1295,7 +1295,7 @@ class MGXS(object): domain_filter = self.xs_tally.find_filter('avg(distribcell)') subdomains = domain_filter.bins elif self.domain_type == 'mesh': - xyz = [np.arange(1, x+1) for x in self.domain.dimension] + xyz = [range(1, x+1) for x in self.domain.dimension] subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] @@ -1924,7 +1924,7 @@ class MatrixMGXS(MGXS): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - xyz = [np.arange(1, x+1) for x in self.domain.dimension] + xyz = [range(1, x+1) for x in self.domain.dimension] subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] @@ -3773,7 +3773,7 @@ class ScatterMatrixXS(MatrixMGXS): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) elif self.domain_type == 'mesh': - xyz = [np.arange(1, x+1) for x in self.domain.dimension] + xyz = [range(1, x+1) for x in self.domain.dimension] subdomains = list(itertools.product(*xyz)) else: subdomains = [self.domain.id] From 19b5faa4498504978b829beefdcdcb37f20c5cf2 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Sat, 30 Jul 2016 16:51:21 -0400 Subject: [PATCH 208/417] fixed issue in exporting mgxs to excel --- openmc/mgxs/library.py | 5 +++-- openmc/mgxs/mgxs.py | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 3675571584..50d568a2d2 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -279,8 +279,9 @@ class Library(object): elif self.domain_type == 'mesh': cv.check_iterable_type('domain', domains, openmc.Mesh) - # The mesh and geometry are independent, so just return - return + # The mesh and geometry are independent, so set all_domains + # to the input domains + all_domains = domains else: raise ValueError('Unable to set domains with domain ' 'type "{}"'.format(self.domain_type)) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 0dadab38ab..271a78246f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1192,7 +1192,7 @@ class MGXS(object): # Loop over all subdomains for subdomain in subdomains: - if self.domain_type == 'distribcell': + if self.domain_type == 'distribcell' or self.domain_type == 'mesh': string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) # Loop over all Nuclides @@ -1407,7 +1407,10 @@ class MGXS(object): if format == 'csv': df.to_csv(filename + '.csv', index=False) elif format == 'excel': - df.to_excel(filename + '.xls', index=False) + if self.domain_type == 'mesh': + df.to_excel(filename + '.xls') + else: + df.to_excel(filename + '.xls', index=False) elif format == 'pickle': df.to_pickle(filename + '.pkl') elif format == 'latex': From 2c2a29143233ed493c0465c2d598e23a5127c794 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Sat, 30 Jul 2016 21:36:03 +0000 Subject: [PATCH 209/417] added mgxs mesh domain test and fixed issue in getting pandas df mean index for mesh domain --- openmc/mgxs/mgxs.py | 7 +- tests/test_mgxs_library_mesh/inputs_true.dat | 1 + tests/test_mgxs_library_mesh/results_true.dat | 132 ++++++++++++++++++ .../test_mgxs_library_mesh.py | 81 +++++++++++ 4 files changed, 219 insertions(+), 2 deletions(-) create mode 100644 tests/test_mgxs_library_mesh/inputs_true.dat create mode 100644 tests/test_mgxs_library_mesh/results_true.dat create mode 100644 tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 271a78246f..f19b50e185 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -3733,9 +3733,12 @@ class ScatterMatrixXS(MatrixMGXS): df['moment'] = moments # Place the moment column before the mean column - mean_index = df.columns.get_loc('mean') columns = df.columns.tolist() - df = df[columns[:mean_index] + ['moment'] + columns[mean_index:-1]] + mean_index = [i for i, s in enumerate(columns) if 'mean' in s][0] + if self.domain_type == 'mesh': + df = df[columns[:mean_index] + [('moment', '')] + columns[mean_index:-1]] + else: + df = df[columns[:mean_index] + ['moment'] + columns[mean_index:-1]] # Select rows corresponding to requested scattering moment if moment != 'all': diff --git a/tests/test_mgxs_library_mesh/inputs_true.dat b/tests/test_mgxs_library_mesh/inputs_true.dat new file mode 100644 index 0000000000..e036b49a26 --- /dev/null +++ b/tests/test_mgxs_library_mesh/inputs_true.dat @@ -0,0 +1 @@ +a4cd030bea212e45fdb159e75a7fb3d1947e9bf3d0384ac5d37a72298d67dcfdd1b9eb5c6af8ac6e5983bd5b47de9c17a2ea472b467b7222a4909ee070bf1ca3 \ No newline at end of file diff --git a/tests/test_mgxs_library_mesh/results_true.dat b/tests/test_mgxs_library_mesh/results_true.dat new file mode 100644 index 0000000000..e3d7ca6473 --- /dev/null +++ b/tests/test_mgxs_library_mesh/results_true.dat @@ -0,0 +1,132 @@ + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.640786 0.044177 +1 1 2 1 1 total 0.660597 0.128423 +2 2 1 1 1 total 0.615276 0.104046 +3 2 2 1 1 total 0.646999 0.186709 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.36665 0.048814 +1 1 2 1 1 total 0.40784 0.096486 +2 2 1 1 1 total 0.36356 0.074111 +3 2 2 1 1 total 0.41456 0.160443 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.366650 0.048814 +1 1 2 1 1 total 0.407840 0.096486 +2 2 1 1 1 total 0.363560 0.074111 +3 2 2 1 1 total 0.414593 0.160436 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.025749 0.002863 +1 1 2 1 1 total 0.028400 0.005275 +2 2 1 1 1 total 0.022988 0.004099 +3 2 2 1 1 total 0.027589 0.010350 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.015861 0.002876 +1 1 2 1 1 total 0.017280 0.004371 +2 2 1 1 1 total 0.014403 0.003542 +3 2 2 1 1 total 0.018061 0.010110 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.009888 0.001077 +1 1 2 1 1 total 0.011121 0.002456 +2 2 1 1 1 total 0.008585 0.001552 +3 2 2 1 1 total 0.009527 0.003659 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.026065 0.002907 +1 1 2 1 1 total 0.029084 0.006430 +2 2 1 1 1 total 0.022596 0.004062 +3 2 2 1 1 total 0.025066 0.009687 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 1.938476 0.211550 +1 1 2 1 1 total 2.177360 0.480780 +2 2 1 1 1 total 1.682799 0.303764 +3 2 2 1 1 total 1.864890 0.715661 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.615037 0.041754 +1 1 2 1 1 total 0.632196 0.123878 +2 2 1 1 1 total 0.592288 0.100439 +3 2 2 1 1 total 0.619410 0.177190 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.584014 0.054315 +1 1 2 1 1 total 0.622514 0.111323 +2 2 1 1 1 total 0.587256 0.084833 +3 2 2 1 1 total 0.613792 0.168612 + mesh 1 group in group out nuclide moment mean std. dev. + x y z +0 1 1 1 1 1 total P0 0.584014 0.054315 +1 1 1 1 1 1 total P1 0.243427 0.025488 +2 1 1 1 1 1 total P2 0.089236 0.007357 +3 1 1 1 1 1 total P3 0.008994 0.005768 +4 1 2 1 1 1 total P0 0.622514 0.111323 +5 1 2 1 1 1 total P1 0.239376 0.042594 +6 1 2 1 1 1 total P2 0.088386 0.017200 +7 1 2 1 1 1 total P3 -0.001243 0.005639 +8 2 1 1 1 1 total P0 0.587256 0.084833 +9 2 1 1 1 1 total P1 0.245120 0.041033 +10 2 1 1 1 1 total P2 0.086784 0.016255 +11 2 1 1 1 1 total P3 0.008660 0.004755 +12 2 2 1 1 1 total P0 0.612950 0.167940 +13 2 2 1 1 1 total P1 0.226176 0.061882 +14 2 2 1 1 1 total P2 0.086593 0.026126 +15 2 2 1 1 1 total P3 0.009672 0.011995 + mesh 1 group in group out nuclide moment mean std. dev. + x y z +0 1 1 1 1 1 total P0 0.584014 0.054315 +1 1 1 1 1 1 total P1 0.243427 0.025488 +2 1 1 1 1 1 total P2 0.089236 0.007357 +3 1 1 1 1 1 total P3 0.008994 0.005768 +4 1 2 1 1 1 total P0 0.622514 0.111323 +5 1 2 1 1 1 total P1 0.239376 0.042594 +6 1 2 1 1 1 total P2 0.088386 0.017200 +7 1 2 1 1 1 total P3 -0.001243 0.005639 +8 2 1 1 1 1 total P0 0.587256 0.084833 +9 2 1 1 1 1 total P1 0.245120 0.041033 +10 2 1 1 1 1 total P2 0.086784 0.016255 +11 2 1 1 1 1 total P3 0.008660 0.004755 +12 2 2 1 1 1 total P0 0.613792 0.168612 +13 2 2 1 1 1 total P1 0.226142 0.061856 +14 2 2 1 1 1 total P2 0.086174 0.025979 +15 2 2 1 1 1 total P3 0.009721 0.012027 + mesh 1 group in group out nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 1.000000 0.088094 +1 1 2 1 1 1 total 1.000000 0.160891 +2 2 1 1 1 1 total 1.000000 0.126864 +3 2 2 1 1 1 total 1.001374 0.305883 + mesh 1 group in group out nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.027395 0.004680 +1 1 2 1 1 1 total 0.022914 0.006025 +2 2 1 1 1 1 total 0.019384 0.002846 +3 2 2 1 1 1 total 0.029629 0.006292 + mesh 1 group out nuclide mean std. dev. + x y z +0 1 1 1 1 total 1.0 0.220956 +1 1 2 1 1 total 1.0 0.316565 +2 2 1 1 1 total 1.0 0.132140 +3 2 2 1 1 total 1.0 0.181577 + mesh 1 group out nuclide mean std. dev. + x y z +0 1 1 1 1 total 1.0 0.222246 +1 1 2 1 1 total 1.0 0.316565 +2 2 1 1 1 total 1.0 0.132140 +3 2 2 1 1 total 1.0 0.181577 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 3.610522e-07 3.169931e-08 +1 1 2 1 1 total 3.942353e-07 8.459167e-08 +2 2 1 1 1 total 3.097784e-07 5.252025e-08 +3 2 2 1 1 total 3.799163e-07 1.806470e-07 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.025735 0.002840 +1 1 2 1 1 total 0.028773 0.006349 +2 2 1 1 1 total 0.022306 0.004010 +3 2 2 1 1 total 0.024549 0.009379 diff --git a/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py b/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py new file mode 100644 index 0000000000..df7a0a5ae8 --- /dev/null +++ b/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py @@ -0,0 +1,81 @@ +#!/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 MGXSTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Generate inputs using parent class routine + super(MGXSTestHarness, self)._build_inputs() + + # Initialize a one-group structure + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) + + # Initialize MGXS Library for a few cross section types + # for one material-filled cell in the geometry + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) + self.mgxs_lib.by_nuclide = False + + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.legendre_order = 3 + self.mgxs_lib.domain_type = 'mesh' + + # Instantiate a tally mesh + mesh = openmc.Mesh(mesh_id=1) + mesh.type = 'regular' + mesh.dimension = [2, 2] + mesh.lower_left = [-100., -100.] + mesh.width = [100., 100.] + + self.mgxs_lib.domains = [mesh] + self.mgxs_lib.build_library() + + # Initialize a tallies file + self._input_set.tallies = openmc.Tallies() + self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) + self._input_set.tallies.export_to_xml() + + 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) + + # Load the MGXS library from the statepoint + self.mgxs_lib.load_from_statepoint(sp) + + # Build a string from Pandas Dataframe for each 1-group MGXS + outstr = '' + for domain in self.mgxs_lib.domains: + for mgxs_type in self.mgxs_lib.mgxs_types: + mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) + df = mgxs.get_pandas_dataframe() + outstr += df.to_string() + '\n' + + # 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(MGXSTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = MGXSTestHarness('statepoint.10.*', True) + harness.main() From 10795fd00fde7be071f27bb1bf965b43005f62ce Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Sat, 30 Jul 2016 21:37:59 +0000 Subject: [PATCH 210/417] changed np.arange to range in tallies.py --- openmc/tallies.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 45bc496388..c68b0faacb 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1293,7 +1293,7 @@ class Tally(object): # Create list of 2- or 3-tuples tuples for mesh cell bins if self_filter.type == 'mesh': dimension = self_filter.mesh.dimension - xyz = [np.arange(1, x+1) for x in dimension] + xyz = [range(1, x+1) for x in dimension] bins = list(itertools.product(*xyz)) # Create list of 2-tuples for energy boundary bins From 355fb6f30d6c0a93d606aa2ad337b31189037709 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Sun, 31 Jul 2016 10:20:50 -0400 Subject: [PATCH 211/417] addressed PR comments --- docs/source/pythonapi/examples/mgxs-part-iv.ipynb | 4 ++-- openmc/mgxs/library.py | 3 +-- openmc/mgxs/mgxs.py | 8 +++++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index 5b3bae4957..eaae92f7c9 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -519,9 +519,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports \"material\" \"cell\", \"universe\", and \"mesh\" domain types. In this simple example, we wish to compute multi-group cross sections only for each material andtherefore will use a \"material\" domain type.\n", + "Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports \"material\" \"cell\", \"universe\", and \"mesh\" domain types. In this simple example, we wish to compute multi-group cross sections only for each material and therefore will use a \"material\" domain type.\n", "\n", - "**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell, universe, or mesh cell) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property." + "**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell, universe, or mesh) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property." ] }, { diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 50d568a2d2..84571ce236 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -56,8 +56,7 @@ class Library(object): The types of cross sections in the library (e.g., ['total', 'scatter']) domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} Domain type for spatial homogenization - domains : Iterable of openmc.Material, openmc.Cell, openmc.Universe or - openmc.Mesh + domains : Iterable of openmc.Material, openmc.Cell, openmc.Universe or openmc.Mesh The spatial domain(s) for which MGXS in the Library are computed correction : {'P0', None} Apply the P0 correction to scattering matrices if set to 'P0' diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f19b50e185..e1c2e62217 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -439,8 +439,7 @@ class MGXS(object): ---------- mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', 'chi', 'chi-prompt', 'inverse-velocity', 'prompt-nu-fission'} The type of multi-group cross section object to return - domain : openmc.Material or openmc.Cell or openmc.Universe or - openmc.Mesh + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} The domain type for spatial homogenization @@ -1491,7 +1490,10 @@ class MGXS(object): distribcell_paths=distribcell_paths) # Remove nuclide column since it is homogeneous and redundant - df.drop('nuclide', axis=1, inplace=True) + if self.domain_type == 'mesh': + df.drop('nuclide', axis=1, level=0, inplace=True) + else: + df.drop('nuclide', axis=1, inplace=True) # If the user requested a specific set of nuclides elif self.by_nuclide and nuclides != 'all': From a5e9b870fd63064edb545a509174aea12eebf08d Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Sun, 31 Jul 2016 21:43:34 -0400 Subject: [PATCH 212/417] added mdgxs-part-i.ipynb notebook for mdgxs --- .../pythonapi/examples/images/mdgxs.png | Bin 0 -> 23788 bytes .../pythonapi/examples/mdgxs-part-i.ipynb | 1394 +++++++++++++++++ openmc/mgxs/mdgxs.py | 107 +- openmc/tallies.py | 10 +- 4 files changed, 1503 insertions(+), 8 deletions(-) create mode 100644 docs/source/pythonapi/examples/images/mdgxs.png create mode 100644 docs/source/pythonapi/examples/mdgxs-part-i.ipynb diff --git a/docs/source/pythonapi/examples/images/mdgxs.png b/docs/source/pythonapi/examples/images/mdgxs.png new file mode 100644 index 0000000000000000000000000000000000000000..b93d0f0423065531db8547394919d68976f370a0 GIT binary patch literal 23788 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 literal 0 HcmV?d00001 diff --git a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb new file mode 100644 index 0000000000..2eeeffa3ca --- /dev/null +++ b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb @@ -0,0 +1,1394 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This IPython Notebook introduces the use of the `openmc.mgxs` module to calculate multi-energy-group and multi-delayed-group cross sections for an infinite homogeneous medium. In particular, this Notebook introduces the the following features:\n", + "\n", + "* Creation of multi-delayed-group cross sections for an **infinite homogeneous medium**\n", + "* Calculation of delayed neutron precursor concentrations\n", + "\n", + "**Note:** This Notebook illustrates the use of [Pandas](http://pandas.pydata.org/) `DataFrames` to containerize multi-group cross section data. We recommend using [Pandas](http://pandas.pydata.org/) >v0.15.0 or later since OpenMC's Python API leverages the multi-indexing feature included in the most recent releases of [Pandas](http://pandas.pydata.org/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Introduction to Multi-Delayed-Group Cross Sections (MDGXS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Many Monte Carlo particle transport codes, including OpenMC, use continuous-energy nuclear cross section data. However, most deterministic neutron transport codes use *multi-group cross sections* defined over discretized energy bins or *energy groups*. Furthermore, kinetics calculations typically separate out parameters that involve delayed neutrons by delayed groups. An example is the energy spectrum for prompt and delayed neutrons for U-235 and Pu-239 computed for a light water reactor spectrum." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nfmI+3IqsCwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "execution_count": 1, + "metadata": { + "image/png": { + "width": 350 + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import Image\n", + "Image(filename='images/mdgxs.png', width=350)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A variety of tools employing different methodologies have been developed over the years to compute multi-group cross sections for certain applications, including NJOY (LANL), MC$^2$-3 (ANL), and Serpent (VTT). The `openmc.mgxs` Python module is designed to leverage OpenMC's tally system to calculate multi-group cross sections with arbitrary energy discretizations and different delayed group models (e.g. 6, 7, or 8 delayed group models) for fine-mesh heterogeneous deterministic neutron transport applications.\n", + "\n", + "Before proceeding to illustrate how one may use the `openmc.mgxs` module, it is worthwhile to define the general equations used to calculate multi-energy-group and multi-delayed-group cross sections. This is only intended as a brief overview of the methodology used by `openmc.mgxs` - we refer the interested reader to the large body of literature on the subject for a more comprehensive understanding of this complex topic." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Introductory Notation\n", + "The continuous real-valued microscopic cross section may be denoted $\\sigma_{n,x}(\\mathbf{r}, E)$ for position vector $\\mathbf{r}$, energy $E$, nuclide $n$ and interaction type $x$. Similarly, the scalar neutron flux may be denoted by $\\Phi(\\mathbf{r},E)$ for position $\\mathbf{r}$ and energy $E$. **Note**: Although nuclear cross sections are dependent on the temperature $T$ of the interacting medium, the temperature variable is neglected here for brevity." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Spatial and Energy Discretization\n", + "The energy domain for critical systems such as thermal reactors spans more than 10 orders of magnitude of neutron energies from 10$^{-5}$ - 10$^7$ eV. The multi-group approximation discretization divides this energy range into one or more energy groups. In particular, for $G$ total groups, we denote an energy group index $g$ such that $g \\in \\{1, 2, ..., G\\}$. The energy group indices are defined such that the smaller group the higher the energy, and vice versa. The integration over neutron energies across a discrete energy group is commonly referred to as **energy condensation**.\n", + "\n", + "The delayed neutrons created from fissions are created from > 30 delayed neutron precursors. Modeling each of the delayed neutron precursors is possible, but this approach has not recieved much attention due to large uncertainties in certain precursors. Therefore, the delayed neutrons are often combined into \"delayed groups\" that have a set time constant, $\\lambda_d$. Some cross section libraries use the same group time constants for all nuclides (e.g. JEFF 3.2) while other libraries use different time constants for all nuclides (e.g. ENDF/B-VII.1). Multi-delayed-group cross sections can either be created with the entire delayed group set, a subset of delayed groups, or integrated over all delayed groups.\n", + "\n", + "Multi-group cross sections are computed for discretized spatial zones in the geometry of interest. The spatial zones may be defined on a structured and regular fuel assembly or pin cell mesh, an arbitrary unstructured mesh or the constructive solid geometry used by OpenMC. For a geometry with $K$ distinct spatial zones, we designate each spatial zone an index $k$ such that $k \\in \\{1, 2, ..., K\\}$. The volume of each spatial zone is denoted by $V_{k}$. The integration over discrete spatial zones is commonly referred to as **spatial homogenization**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### General Scalar-Flux Weighted MDGXS\n", + "The multi-group cross sections computed by `openmc.mgxs` are defined as a *scalar flux-weighted average* of the microscopic cross sections across each discrete energy group. This formulation is employed in order to preserve the reaction rates within each energy group and spatial zone. In particular, spatial homogenization and energy condensation are used to compute the general multi-group cross section. For instance, the delayed-nu-fission multi-energy-group and multi-delayed-group cross section, $\\nu_d \\sigma_{f,x,k,g}$, can be computed as follows:\n", + "\n", + "$$\\nu_d \\sigma_{n,x,k,g} = \\frac{\\int_{E_{g}}^{E_{g-1}}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r} \\nu_d \\sigma_{f,x}(\\mathbf{r},E')\\Phi(\\mathbf{r},E')}{\\int_{E_{g}}^{E_{g-1}}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r}\\Phi(\\mathbf{r},E')}$$\n", + "\n", + "This scalar flux-weighted average microscopic cross section is computed by `openmc.mgxs` for only the delayed-nu-fission and delayed neutron fraction reaction type at the oment. These double integrals are stochastically computed with OpenMC's tally system - in particular, [filters](https://mit-crpg.github.io/openmc/pythonapi/filter.html) on the energy range and spatial zone (material, cell, universe, or mesh) define the bounds of integration for both numerator and denominator." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Multi-Group Prompt and Delayed Fission Spectrum\n", + "The energy spectrum of neutrons emitted from fission is denoted by $\\chi_{n}(\\mathbf{r},E' \\rightarrow E'')$ for incoming and outgoing energies $E'$ and $E''$, respectively. Unlike the multi-group cross sections $\\sigma_{n,x,k,g}$ considered up to this point, the fission spectrum is a probability distribution and must sum to unity. The outgoing energy is typically much less dependent on the incoming energy for fission than for scattering interactions. As a result, it is common practice to integrate over the incoming neutron energy when computing the multi-group fission spectrum. The fission spectrum may be simplified as $\\chi_{n}(\\mathbf{r},E)$ with outgoing energy $E$.\n", + "\n", + "Computing the cumulative energy spectrum of emitted neutrons, $\\chi_{n}(\\mathbf{r},E)$, has been presented in the `mgxs-part-i.ipynb` notebook. Here, we will present the energy spectrum of prompt and delayed emission neutrons, $\\chi_{n,p}(\\mathbf{r},E)$ and $\\chi_{n,d}(\\mathbf{r},E)$, respectively. Unlike the multi-group cross sections defined up to this point, the multi-group fission spectrum is weighted by the fission production rate rather than the scalar flux. This formulation is intended to preserve the total fission production rate in the multi-group deterministic calculation. In order to mathematically define the multi-group fission spectrum, we denote the microscopic fission cross section as $\\sigma_{n,f}(\\mathbf{r},E)$ and the average number of neutrons emitted from fission interactions with nuclide $n$ as $\\nu_{n,p}(\\mathbf{r},E)$ and $\\nu_{n,d}(\\mathbf{r},E)$ for prompt and delayed neutrons, respectively. The multi-group fission spectrum $\\chi_{n,k,g,d}$ is then the probability of fission neutrons emitted into energy group $g$. \n", + "\n", + "Similar to before, spatial homogenization and energy condensation are used to find the multi-energy-group and multi-delayed-group fission spectrum $\\chi_{n,k,g,d}$ as follows:\n", + "\n", + "$$\\chi_{n,k,g',d} = \\frac{\\int_{E_{g'}}^{E_{g'-1}}\\mathrm{d}E''\\int_{0}^{\\infty}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r}\\chi_{n,d}(\\mathbf{r},E'\\rightarrow E'')\\nu_{n,d}(\\mathbf{r},E')\\sigma_{n,f}(\\mathbf{r},E')\\Phi(\\mathbf{r},E')}{\\int_{0}^{\\infty}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r}\\nu_{n,d}(\\mathbf{r},E')\\sigma_{n,f}(\\mathbf{r},E')\\Phi(\\mathbf{r},E')}$$\n", + "\n", + "The fission production-weighted multi-energy-group and multi-delayed-group fission spectrum for delayed neutrons is computed using OpenMC tallies with energy in, energy out, and delayed group filters. Alternatively, the delayed group filter can be omitted to compute the fission spectrum integrated over all delayed groups.\n", + "\n", + "This concludes our brief overview on the methodology to compute multi-energy-group and multi-delayed-group cross sections. The following sections detail more concretely how users may employ the `openmc.mgxs` module to power simulation workflows requiring multi-group cross sections for downstream deterministic calculations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate Input Files" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "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" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we need to define materials that will be used in the problem. Before defining a material, we must create nuclides that are used in the material." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate some Nuclides\n", + "h1 = openmc.Nuclide('H1')\n", + "o16 = openmc.Nuclide('O16')\n", + "u235 = openmc.Nuclide('U235')\n", + "u238 = openmc.Nuclide('U238')\n", + "pu239 = openmc.Nuclide('Pu239')\n", + "zr90 = openmc.Nuclide('Zr90')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the nuclides we defined, we will now create a material for the homogeneous medium." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate a Material and register the Nuclides\n", + "inf_medium = openmc.Material(name='moderator')\n", + "inf_medium.set_density('g/cc', 5.)\n", + "inf_medium.add_nuclide(h1, 0.03)\n", + "inf_medium.add_nuclide(o16, 0.015)\n", + "inf_medium.add_nuclide(u235 , 0.0001)\n", + "inf_medium.add_nuclide(u238 , 0.007)\n", + "inf_medium.add_nuclide(pu239, 0.00003)\n", + "inf_medium.add_nuclide(zr90, 0.002)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our material, we can now create a `Materials` object that can be exported to an actual XML file." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a Materials collection and export to XML\n", + "materials_file = openmc.Materials([inf_medium])\n", + "materials_file.default_xs = '71c'\n", + "materials_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's move on to the geometry. This problem will be a simple square cell with reflective boundary conditions to simulate an infinite homogeneous medium. The first step is to create the outer bounding surfaces of the problem." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate boundary Planes\n", + "min_x = openmc.XPlane(boundary_type='reflective', x0=-0.63)\n", + "max_x = openmc.XPlane(boundary_type='reflective', x0=0.63)\n", + "min_y = openmc.YPlane(boundary_type='reflective', y0=-0.63)\n", + "max_y = openmc.YPlane(boundary_type='reflective', y0=0.63)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the surfaces defined, we can now create a cell that is defined by intersections of half-spaces created by the surfaces." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate a Cell\n", + "cell = openmc.Cell(cell_id=1, name='cell')\n", + "\n", + "# Register bounding Surfaces with the Cell\n", + "cell.region = +min_x & -max_x & +min_y & -max_y\n", + "\n", + "# Fill the Cell with the Material\n", + "cell.fill = inf_medium" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "OpenMC requires that there is a \"root\" universe. Let us create a root universe and add our square cell to it." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate Universe\n", + "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", + "root_universe.add_cell(cell)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now must create a geometry that is assigned a root universe and export it to XML." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create Geometry and set root Universe\n", + "openmc_geometry = openmc.Geometry()\n", + "openmc_geometry.root_universe = root_universe\n", + "\n", + "# Export to \"geometry.xml\"\n", + "openmc_geometry.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we must define simulation parameters. In this case, we will use 10 inactive batches and 40 active batches each with 2500 particles." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# OpenMC simulation parameters\n", + "batches = 50\n", + "inactive = 10\n", + "particles = 5000\n", + "\n", + "# Instantiate a Settings object\n", + "settings_file = openmc.Settings()\n", + "settings_file.batches = batches\n", + "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", + "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()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are ready to generate multi-group cross sections! First, let's define a 2-energy-group structure using the built-in `EnergyGroups` class. We will also create a 6-delayed-group structure using the built-in `DelayedGroups` class." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate a 100-group EnergyGroups object\n", + "energy_groups = mgxs.EnergyGroups()\n", + "energy_groups.group_edges = np.logspace(-9,1.3,101)\n", + "\n", + "# Instantiate a 1-group EnergyGroups object\n", + "one_group = mgxs.EnergyGroups()\n", + "one_group.group_edges = np.array([0., 20.])\n", + "\n", + "delayed_groups = mgxs.DelayedGroups()\n", + "delayed_groups.groups = range(1,7)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use the `EnergyGroups` and `DelayedGroups` objects, along with our previously created materials and geometry, to instantiate some `MGXS` objects from the `openmc.mgxs` module. In particular, the following are subclasses of the generic and abstract `MGXS` class:\n", + "\n", + "* `TotalXS`\n", + "* `TransportXS`\n", + "* `NuTransportXS`\n", + "* `AbsorptionXS`\n", + "* `CaptureXS`\n", + "* `FissionXS`\n", + "* `NuFissionXS`\n", + "* `KappaFissionXS`\n", + "* `ScatterXS`\n", + "* `NuScatterXS`\n", + "* `ScatterMatrixXS`\n", + "* `NuScatterMatrixXS`\n", + "* `Chi`\n", + "* `ChiPrompt`\n", + "* `InverseVelocity`\n", + "* `PromptNuFissionXS`\n", + "\n", + "A separate abstract `MDGXS` class is used for cross-sections and parameters that involve delayed neutrons. The subclasses of `MDGXS` include:\n", + "\n", + "* `DelayedNuFissionXS`\n", + "* `ChiDelayed`\n", + "* `Beta`\n", + "\n", + "These classes provide us with an interface to generate the tally inputs as well as perform post-processing of OpenMC's tally data to compute the respective multi-group cross sections. In this case, let's create the multi-group chi-prompt and prompt-nu-fission cross sections with our 2-energy-group structure and multi-group chi-delayed, delayed-nu-fission, and beta cross sections with our 2-energy-group and 6-delayed-group structures. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate a few different sections\n", + "chi_prompt = mgxs.ChiPrompt(domain=cell, groups=energy_groups, by_nuclide=True)\n", + "prompt_nu_fission = mgxs.PromptNuFissionXS(domain=cell, groups=one_group, by_nuclide=True)\n", + "chi_delayed = mgxs.ChiDelayed(domain=cell, energy_groups=energy_groups, by_nuclide=True)\n", + "delayed_nu_fission = mgxs.DelayedNuFissionXS(domain=cell, energy_groups=one_group, delayed_groups=delayed_groups, by_nuclide=True)\n", + "beta = mgxs.Beta(domain=cell, energy_groups=one_group, delayed_groups=delayed_groups, by_nuclide=True)\n", + "\n", + "chi_prompt.nuclides = ['U235', 'Pu239']\n", + "prompt_nu_fission.nuclides = ['U235', 'Pu239']\n", + "chi_delayed.nuclides = ['U235', 'Pu239']\n", + "delayed_nu_fission.nuclides = ['U235', 'Pu239']\n", + "beta.nuclides = ['U235', 'Pu239']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each multi-group cross section object stores its tallies in a Python dictionary called `tallies`. We can inspect the tallies in the dictionary for our `Beta` object as follows. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "OrderedDict([('nu-fission', Tally\n", + " \tID =\t10000\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0. 20.]\n", + " \tNuclides =\tU235 Pu239 \n", + " \tScores =\t['nu-fission']\n", + " \tEstimator =\ttracklength), ('delayed-nu-fission', Tally\n", + " \tID =\t10001\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tdelayedgroup\t[1 2 3 4 5 6]\n", + " \t\tenergy\t[ 0. 20.]\n", + " \tNuclides =\tU235 Pu239 \n", + " \tScores =\t['delayed-nu-fission']\n", + " \tEstimator =\ttracklength)])" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "beta.tallies" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `Beta` object includes tracklength tallies for the 'nu-fission' and 'delayed-nu-fission' scores in the 2-energy-group and 6-delayed-group structure in cell 1. Now that each `MGXS` and `MDGXS` object contains the tallies that it needs, we must add these tallies to a `Tallies` object to generate the \"tallies.xml\" input file for OpenMC." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate an empty Tallies object\n", + "tallies_file = openmc.Tallies()\n", + "\n", + "# Add chi-prompt tallies to the tallies file\n", + "tallies_file += chi_prompt.tallies.values()\n", + "\n", + "# Add prompt-nu-fission tallies to the tallies file\n", + "tallies_file += prompt_nu_fission.tallies.values()\n", + "\n", + "# Add chi-delayed tallies to the tallies file\n", + "tallies_file += chi_delayed.tallies.values()\n", + "\n", + "# Add delayed-nu-fission tallies to the tallies file\n", + "tallies_file += delayed_nu_fission.tallies.values()\n", + "\n", + "# Add beta tallies to the tallies file\n", + "tallies_file += beta.tallies.values()\n", + "\n", + "# Export to \"tallies.xml\"\n", + "tallies_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we a have a complete set of inputs, so we can go ahead and run our simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "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-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.io/en/latest/license.html\n", + " Version: 0.8.0\n", + " Git SHA1: bc8a346a978644f5b2b21cccb6c5ae7f8397ebee\n", + " Date/Time: 2016-07-31 19:49:00\n", + " MPI Processes: 4\n", + "\n", + " ===========================================================================\n", + " ========================> INITIALIZATION <=========================\n", + " ===========================================================================\n", + "\n", + " Reading settings XML file...\n", + " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", + " Reading materials XML file...\n", + " Reading H1.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/H1_71c.h5\n", + " Reading O16.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/O16_71c.h5\n", + " Reading U235.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U238_71c.h5\n", + " Reading Pu239.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/Pu239_71c.h5\n", + " Reading Zr90.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/Zr90_71c.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for H1.71c\n", + " Reading tallies XML file...\n", + " Building neighboring cells lists for each surface...\n", + " Initializing source particles...\n", + "\n", + " ===========================================================================\n", + " ====================> K EIGENVALUE SIMULATION <====================\n", + " ===========================================================================\n", + "\n", + " Bat./Gen. k Average k \n", + " ========= ======== ==================== \n", + " 1/1 1.21670 \n", + " 2/1 1.24155 \n", + " 3/1 1.21924 \n", + " 4/1 1.22486 \n", + " 5/1 1.21719 \n", + " 6/1 1.24330 \n", + " 7/1 1.22322 \n", + " 8/1 1.24133 \n", + " 9/1 1.21840 \n", + " 10/1 1.25141 \n", + " 11/1 1.21217 \n", + " 12/1 1.25625 1.23421 +/- 0.02204\n", + " 13/1 1.22056 1.22966 +/- 0.01351\n", + " 14/1 1.21757 1.22664 +/- 0.01002\n", + " 15/1 1.24571 1.23045 +/- 0.00865\n", + " 16/1 1.26489 1.23619 +/- 0.00910\n", + " 17/1 1.22323 1.23434 +/- 0.00791\n", + " 18/1 1.26108 1.23768 +/- 0.00762\n", + " 19/1 1.23145 1.23699 +/- 0.00676\n", + " 20/1 1.23548 1.23684 +/- 0.00605\n", + " 21/1 1.20446 1.23390 +/- 0.00621\n", + " 22/1 1.20533 1.23152 +/- 0.00615\n", + " 23/1 1.22520 1.23103 +/- 0.00568\n", + " 24/1 1.18367 1.22765 +/- 0.00625\n", + " 25/1 1.23614 1.22821 +/- 0.00585\n", + " 26/1 1.23746 1.22879 +/- 0.00550\n", + " 27/1 1.23626 1.22923 +/- 0.00518\n", + " 28/1 1.21334 1.22835 +/- 0.00497\n", + " 29/1 1.25169 1.22958 +/- 0.00486\n", + " 30/1 1.25579 1.23089 +/- 0.00479\n", + " 31/1 1.23828 1.23124 +/- 0.00457\n", + " 32/1 1.26911 1.23296 +/- 0.00468\n", + " 33/1 1.20090 1.23157 +/- 0.00469\n", + " 34/1 1.28606 1.23384 +/- 0.00503\n", + " 35/1 1.23129 1.23374 +/- 0.00483\n", + " 36/1 1.22535 1.23341 +/- 0.00465\n", + " 37/1 1.20367 1.23231 +/- 0.00461\n", + " 38/1 1.22886 1.23219 +/- 0.00444\n", + " 39/1 1.24056 1.23248 +/- 0.00429\n", + " 40/1 1.25038 1.23307 +/- 0.00419\n", + " 41/1 1.21504 1.23249 +/- 0.00410\n", + " 42/1 1.20762 1.23171 +/- 0.00404\n", + " 43/1 1.20597 1.23093 +/- 0.00399\n", + " 44/1 1.24424 1.23133 +/- 0.00389\n", + " 45/1 1.24767 1.23179 +/- 0.00381\n", + " 46/1 1.22998 1.23174 +/- 0.00370\n", + " 47/1 1.26352 1.23260 +/- 0.00370\n", + " 48/1 1.23155 1.23257 +/- 0.00360\n", + " 49/1 1.22059 1.23227 +/- 0.00352\n", + " 50/1 1.24724 1.23264 +/- 0.00345\n", + " Creating state point statepoint.50.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 7.4000E-01 seconds\n", + " Reading cross sections = 3.9400E-01 seconds\n", + " Total time in simulation = 2.5930E+01 seconds\n", + " Time in transport only = 2.5267E+01 seconds\n", + " Time in inactive batches = 1.5300E+00 seconds\n", + " Time in active batches = 2.4400E+01 seconds\n", + " Time synchronizing fission bank = 6.4500E-01 seconds\n", + " Sampling source sites = 6.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.1000E-02 seconds\n", + " Total time elapsed = 2.6689E+01 seconds\n", + " Calculation Rate (inactive) = 32679.7 neutrons/second\n", + " Calculation Rate (active) = 8196.72 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.23260 +/- 0.00309\n", + " k-effective (Track-length) = 1.23264 +/- 0.00345\n", + " k-effective (Absorption) = 1.23111 +/- 0.00186\n", + " Combined k-effective = 1.23135 +/- 0.00185\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Run OpenMC\n", + "openmc.run(mpi_procs=4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tally Data Processing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our simulation ran successfully and created statepoint and summary output files. We begin our analysis by instantiating a `StatePoint` object. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the last statepoint file\n", + "sp = openmc.StatePoint('statepoint.50.h5')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition to the statepoint file, our simulation also created a summary file which encapsulates information about the materials and geometry. By default, a `Summary` object is automatically linked when a `StatePoint` is loaded. This is necessary for the `openmc.mgxs` module to properly process the tally data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The statepoint is now ready to be analyzed by our multi-group cross sections. We simply have to load the tallies from the `StatePoint` into each object as follows and our `MGXS` objects will compute the cross sections for us under-the-hood." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the tallies from the statepoint into each MGXS object\n", + "chi_prompt.load_from_statepoint(sp)\n", + "prompt_nu_fission.load_from_statepoint(sp)\n", + "chi_delayed.load_from_statepoint(sp)\n", + "delayed_nu_fission.load_from_statepoint(sp)\n", + "beta.load_from_statepoint(sp)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Voila! Our multi-group cross sections are now ready to rock 'n roll!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Extracting and Storing MGXS Data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's first inspect our delayed-nu-fission section by printing it to the screen." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Delayed-Group XS\n", + "\tReaction Type =\tdelayed-nu-fission\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t1\n", + "\tNuclide =\tU235\n", + "\tCross Sections [cm^-1]:\n", + " Delayed Group 1:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t5.16e-06 +/- 3.38e-01%\n", + "\n", + " Delayed Group 2:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t2.67e-05 +/- 3.38e-01%\n", + "\n", + " Delayed Group 3:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t2.54e-05 +/- 3.38e-01%\n", + "\n", + " Delayed Group 4:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t5.71e-05 +/- 3.38e-01%\n", + "\n", + " Delayed Group 5:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t2.34e-05 +/- 3.38e-01%\n", + "\n", + " Delayed Group 6:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t9.80e-06 +/- 3.38e-01%\n", + "\n", + "\n", + "\tNuclide =\tPu239\n", + "\tCross Sections [cm^-1]:\n", + " Delayed Group 1:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t1.17e-06 +/- 3.00e-01%\n", + "\n", + " Delayed Group 2:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t7.60e-06 +/- 3.00e-01%\n", + "\n", + " Delayed Group 3:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t5.75e-06 +/- 3.00e-01%\n", + "\n", + " Delayed Group 4:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t1.05e-05 +/- 3.00e-01%\n", + "\n", + " Delayed Group 5:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t5.47e-06 +/- 3.00e-01%\n", + "\n", + " Delayed Group 6:\t\n", + " Group 1 [0.0 - 20.0 MeV]:\t1.66e-06 +/- 3.00e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "delayed_nu_fission.print_xs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the `openmc.mgxs` module uses [tally arithmetic](https://mit-crpg.github.io/openmc/pythonapi/examples/tally-arithmetic.html) under-the-hood, the cross section is stored as a \"derived\" `Tally` object. This means that it can be queried and manipulated using all of the same methods supported for the `Tally` class in the OpenMC Python API. For example, we can construct a [Pandas](http://pandas.pydata.org/) `DataFrame` of the multi-group cross section data." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
celldelayedgroupgroup innuclidemeanstd. dev.
0111U2350.0002281.038855e-06
1111Pu2390.0000813.258333e-07
2121U2350.0011755.362249e-06
3121Pu2390.0005312.121977e-06
4131U2350.0011225.119269e-06
5131Pu2390.0004021.605842e-06
6141U2350.0025161.147782e-05
7141Pu2390.0007332.931785e-06
8151U2350.0010314.705745e-06
9151Pu2390.0003821.527096e-06
10161U2350.0004321.971220e-06
11161Pu2390.0001164.621961e-07
\n", + "
" + ], + "text/plain": [ + " cell delayedgroup group in nuclide mean std. dev.\n", + "0 1 1 1 U235 0.000228 1.038855e-06\n", + "1 1 1 1 Pu239 0.000081 3.258333e-07\n", + "2 1 2 1 U235 0.001175 5.362249e-06\n", + "3 1 2 1 Pu239 0.000531 2.121977e-06\n", + "4 1 3 1 U235 0.001122 5.119269e-06\n", + "5 1 3 1 Pu239 0.000402 1.605842e-06\n", + "6 1 4 1 U235 0.002516 1.147782e-05\n", + "7 1 4 1 Pu239 0.000733 2.931785e-06\n", + "8 1 5 1 U235 0.001031 4.705745e-06\n", + "9 1 5 1 Pu239 0.000382 1.527096e-06\n", + "10 1 6 1 U235 0.000432 1.971220e-06\n", + "11 1 6 1 Pu239 0.000116 4.621961e-07" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = beta.get_pandas_dataframe()\n", + "df.head(12)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each multi-group cross section object can be easily exported to a variety of file formats, including CSV, Excel, and LaTeX for storage or data processing." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "beta.export_xs_data(filename='beta', format='excel')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following code snippet shows how to export the chi `MGXS` to the same HDF5 binary data store." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "chi_prompt.build_hdf5_store(filename='mgxs', append=True)\n", + "chi_delayed.build_hdf5_store(filename='mgxs', append=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using Tally Arithmetic to Compute the Delayed Neutron Precursor Concentrations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we illustrate how one can leverage OpenMC's [tally arithmetic](https://mit-crpg.github.io/openmc/pythonapi/examples/tally-arithmetic.html) data processing feature with `MGXS` objects. The `openmc.mgxs` module uses tally arithmetic to compute multi-group cross sections with automated uncertainty propagation. Each `MGXS` object includes an `xs_tally` attribute which is a \"derived\" `Tally` based on the tallies needed to compute the cross section type of interest. These derived tallies can be used in subsequent tally arithmetic operations. For example, we can use tally artithmetic to compute the delayed neutron precursor concentrations using the `Beta` and `DelayedNuFissionXS` objects. The delayed neutron precursor concentrations are modeled using the following equations:\n", + "\n", + "$$\\frac{\\partial}{\\partial t} C_{k,d} (t) = \\int_{0}^{\\infty}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r} \\beta_{k,d} (t) \\nu_d \\sigma_{f,x}(\\mathbf{r},E',t)\\Phi(\\mathbf{r},E',t) - \\lambda_{d} C_{k,d} (t) $$\n", + "\n", + "$$C_{k,d} (t=0) = \\frac{1}{\\lambda_{d}} \\int_{0}^{\\infty}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r} \\beta_{k,d} (t=0) \\nu_d \\sigma_{f,x}(\\mathbf{r},E',t=0)\\Phi(\\mathbf{r},E',t=0) $$" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
celldelayedgroupnuclidescoremeanstd. dev.
011(U235 / total)(((delayed-nu-fission / nu-fission) * (delayed...9.430766e-085.356653e-10
111(Pu239 / total)(((delayed-nu-fission / nu-fission) * (delayed...7.631830e-093.816602e-11
212(U235 / total)(((delayed-nu-fission / nu-fission) * (delayed...1.107191e-066.288818e-09
312(Pu239 / total)(((delayed-nu-fission / nu-fission) * (delayed...1.426298e-077.132776e-10
413(U235 / total)(((delayed-nu-fission / nu-fission) * (delayed...6.713761e-073.813401e-09
513(Pu239 / total)(((delayed-nu-fission / nu-fission) * (delayed...5.434458e-082.717718e-10
614(U235 / total)(((delayed-nu-fission / nu-fission) * (delayed...4.907155e-072.787253e-09
714(Pu239 / total)(((delayed-nu-fission / nu-fission) * (delayed...2.633756e-081.317115e-10
815(U235 / total)(((delayed-nu-fission / nu-fission) * (delayed...1.475656e-088.381692e-11
915(Pu239 / total)(((delayed-nu-fission / nu-fission) * (delayed...1.278385e-096.393074e-12
1016(U235 / total)(((delayed-nu-fission / nu-fission) * (delayed...1.190878e-096.764161e-12
1116(Pu239 / total)(((delayed-nu-fission / nu-fission) * (delayed...5.385798e-112.693384e-13
\n", + "
" + ], + "text/plain": [ + " cell delayedgroup nuclide \\\n", + "0 1 1 (U235 / total) \n", + "1 1 1 (Pu239 / total) \n", + "2 1 2 (U235 / total) \n", + "3 1 2 (Pu239 / total) \n", + "4 1 3 (U235 / total) \n", + "5 1 3 (Pu239 / total) \n", + "6 1 4 (U235 / total) \n", + "7 1 4 (Pu239 / total) \n", + "8 1 5 (U235 / total) \n", + "9 1 5 (Pu239 / total) \n", + "10 1 6 (U235 / total) \n", + "11 1 6 (Pu239 / total) \n", + "\n", + " score mean std. dev. \n", + "0 (((delayed-nu-fission / nu-fission) * (delayed... 9.43e-08 5.36e-10 \n", + "1 (((delayed-nu-fission / nu-fission) * (delayed... 7.63e-09 3.82e-11 \n", + "2 (((delayed-nu-fission / nu-fission) * (delayed... 1.11e-06 6.29e-09 \n", + "3 (((delayed-nu-fission / nu-fission) * (delayed... 1.43e-07 7.13e-10 \n", + "4 (((delayed-nu-fission / nu-fission) * (delayed... 6.71e-07 3.81e-09 \n", + "5 (((delayed-nu-fission / nu-fission) * (delayed... 5.43e-08 2.72e-10 \n", + "6 (((delayed-nu-fission / nu-fission) * (delayed... 4.91e-07 2.79e-09 \n", + "7 (((delayed-nu-fission / nu-fission) * (delayed... 2.63e-08 1.32e-10 \n", + "8 (((delayed-nu-fission / nu-fission) * (delayed... 1.48e-08 8.38e-11 \n", + "9 (((delayed-nu-fission / nu-fission) * (delayed... 1.28e-09 6.39e-12 \n", + "10 (((delayed-nu-fission / nu-fission) * (delayed... 1.19e-09 6.76e-12 \n", + "11 (((delayed-nu-fission / nu-fission) * (delayed... 5.39e-11 2.69e-13 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Set the time constants for the delayed precursors (in seconds^-1)\n", + "precursor_halflife = np.array([55.6, 24.5, 16.3, 2.37, 0.424, 0.195])\n", + "precursor_lambda = -np.log(0.5) / precursor_halflife\n", + "\n", + "# Create a tally object with only the delayed group filter for the time constants\n", + "beta_filters = [f for f in beta.xs_tally.filters if f.type != 'delayedgroup']\n", + "lambda_tally = beta.xs_tally.summation(nuclides=beta.xs_tally.nuclides)\n", + "for f in beta_filters:\n", + " lambda_tally = lambda_tally.summation(filter_type=f.type, remove_filter=True) * 0. + 1.\n", + "\n", + "# Set the mean of the lambda tally and reshape to account for nuclides and scores\n", + "lambda_tally._mean = precursor_lambda\n", + "lambda_tally._mean.shape = lambda_tally.std_dev.shape\n", + "\n", + "# Set a total nuclide and lambda score\n", + "lambda_tally.nuclides = [openmc.Nuclide(name='total')]\n", + "lambda_tally.scores = ['lambda']\n", + "\n", + "# Use tally arithmetic to compute the precursor concentrations\n", + "precursor_conc = beta.xs_tally.summation(filter_type='energy', remove_filter=True) * \\\n", + " delayed_nu_fission.xs_tally.summation(filter_type='energy', remove_filter=True) / lambda_tally\n", + " \n", + "# The difference is a derived tally which can generate Pandas DataFrames for inspection\n", + "precursor_conc.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot the delayed neutron fractions for each nuclide." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Beta (U-235) : 0.006504 +/- 0.000015\n", + "Beta (Pu-239): 0.002245 +/- 0.000004\n" + ] + }, + { + "data": { + "text/plain": [ + "(0, 7)" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n771XLz/wwAO55JJLWLBgAfPmzVt9R8qOtPXkVe/EUikFl7+jrW3T5r6SGshKOGdGxNK0+HLggxGx\nK1mp5sftjtisizQ3w9KlVTfr1pYuza7D1rjjjjtYuHAhr7zyCj/72c/o379/m9ufcsopq29XfOGF\nF6617tvf/jZTp07lpptuqrhvv379GDNmDBdccAEvvvgiAP/1X//Fbrvtxq677so+++zD4YcfzoYb\nbsgWW2xRmwusoN5VYbOBYSWvtwHmlm0zC9gWmCupLzAwIt6UNDstX2dfSRuQJZVrI+KOlg0i4l8l\n2/8auKu1wJpLPv1NTU00NTXlviizeih6UmnRna6jM1VXNYuhQulk0003XavEMG/evNXPr7jiCq64\n4op19hk3bhz33Xcfjz76KA0NDW2ec/ny5bz88svsvPPO9O/fn0svvZRLL70UgF/96lfsvvvuuare\nJk2axKRJk6put448dwPr6APoC/w3MBzoBzwH7Fi2zanA5en5WLJ2FYCdgGfTfiPTcVpuTHYNWSN9\n+fm2Knl+FnBDK3FVv4Wa2XqW3aE9exRRV8Xfnf+eR4wYEQ8++OA6y48++ug4+uijY/ny5TF58uQY\nMmRIHHvssa0e5wc/+EGMGjUq5s2bt866J598Mh577LF47733YtmyZXHhhRfGgAED4vXXX4+IiDlz\n5sTcuXMjIuKJJ56IbbfdNh544IE2427tPSXnHSTXx22ADwD+DswAzknLxgOfS883Am5O658ERpTs\ne25KKNOA0WnZ3sDKlKSeBaYAB8SahPNCWvf/gC1bianNN9WsKzixdPS83fcNGzlyZMXE8vLLL8de\ne+0VjY2N8bnPfS7OPPPMNhOLpOjfv380Njauvl3xBRdcEBERjzzySOyyyy4xYMCAGDx4cDQ1NcVj\njz22et9HH300RowYEZtuumnssMMOceONN1aNu7OJxbcmNusmSmsmivjx7Kr4fWvi2vOtic3MrFup\n2ngv6ePAMcAnga2BZcBfgd8D10XEorpGaGZmhdJmVZikP5D1xLoD+AvwT6A/sD2wL3AwWSP6nfUP\ntXZcFWbdkavCOnpeV4XVWmerwqolliERsaBKAFW36W6cWKw7cmLp6HmdWGqtrm0sLQlD0qZp3i8k\nbS/pEEkblm5jZmYG+RvvHwX6SxoK3A8cC/y2XkGZmVlx5R15r4h4R9IJZIMZL5L0bD0DMzPLY/jw\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "energy_filter = [f for f in beta.xs_tally.filters if f.type == 'energy']\n", + "beta_integrated = beta.xs_tally.summation(filter_type='energy', remove_filter=True)\n", + "beta_u235 = beta_integrated.get_values(nuclides=['U235'])\n", + "beta_pu239 = beta_integrated.get_values(nuclides=['Pu239'])\n", + "\n", + "# Reshape the betas\n", + "beta_u235.shape = (beta_u235.shape[0])\n", + "beta_pu239.shape = (beta_pu239.shape[0])\n", + "\n", + "df = beta_integrated.summation(filter_type='delayedgroup', remove_filter=True).get_pandas_dataframe()\n", + "print('Beta (U-235) : {:.6f} +/- {:.6f}'.format(df[df['nuclide'] == 'U235']['mean'][0], df[df['nuclide'] == 'U235']['std. dev.'][0]))\n", + "print('Beta (Pu-239): {:.6f} +/- {:.6f}'.format(df[df['nuclide'] == 'Pu239']['mean'][1], df[df['nuclide'] == 'Pu239']['std. dev.'][1]))\n", + "\n", + "beta_u235 = np.append(beta_u235[0], beta_u235)\n", + "beta_pu239 = np.append(beta_pu239[0], beta_pu239)\n", + "\n", + "# Create a step plot for the MGXS\n", + "plt.plot(np.arange(0.5, 7.5, 1), beta_u235, drawstyle='steps', color='b', linewidth=3)\n", + "plt.plot(np.arange(0.5, 7.5, 1), beta_pu239, drawstyle='steps', color='g', linewidth=3)\n", + "\n", + "plt.title('Delayed Neutron Fraction (beta)')\n", + "plt.xlabel('Delayed Group')\n", + "plt.ylabel('Beta(fraction total neutrons)')\n", + "plt.legend(['U-235', 'Pu-239'])\n", + "plt.xlim([0,7])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also plot the fission spectrum for the prompt and delayed neutrons." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(0.001, 20)" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n9erFmWeeyRtvvAFAkyZNgmWqSk5ODjt37mTHjh2AnT5zwoQJFBQU0KZNGyZMmBDTNPTCCy9w3HHH\n0bp1a8aPH1+ts3/wwQc5/vjjadOmDQMHDmTdunUR21m6dCmnnHIKBQUFFBcXh/xIBw8ezF/+8peQ\n+ieddBJPP23/dNasWUP//v1p06YNxx13HE888USw3o4dOzj//PMpKCigd+/eCaU3bciULi8NboaG\nR1IVg6oeAK4Dngc+Bhao6iciUioigwFE5Mcish64CLhPRAKJfYcCfYCxIvK+iLwnIifWpXyW30JK\npdoWzS4bqX5dRJ9cv359sKOMhldzyPfff8/KlSurpfw86aSTaNq0KRdccAFXXHFFMEdDIMxugIMH\nD7JhwwZ2795dre3t27dz0UUXcdttt7Ft2zaOPvpoXnvttWD5U089xe9//3ueeuoptm7dyplnnsmI\nESMiypmXl8fcuXPZtWsXS5Ys4b777gt2/IEcDQFWrVrFpk2bGDRoEHv37qV///6MHDmSbdu2MX/+\nfK699lo++eQTAK699lqaN2/Oli1bmD17tmf/h8FgqCLpsZJU9TlVPUZVu6rq751jJar6rPP5HVXt\nqKotVfVQZ3oqqvqYqjZR1VNU9WTn73+SLW99csEFF1BYWMhZZ51Fv379IialqSlXX301J598Mv37\n9w85vmrVKnbv3s28efM444wzgscHDhzI3XffzbZt2/jqq6+CWeH27t1bre2lS5dywgkn8LOf/YxG\njRpx/fXX065du2D5Aw88wJQpU+jWrRs5OTnceOONfPDBByFJfwKcddZZQeX1ox/9iOHDh7N8+XIA\nhgwZwmeffRZ823/00UcZNmwYjRo14tlnn6Vz586MHj0aEaFHjx5ceOGFLFy4kIMHD/Lkk09yyy23\n0LRpU0444QTGjBmT4BM1GBoeJoheClm8eDE7duzgyy+/5M9//jNNmjSJe84111wTzMXw+9//PqRs\n8uTJrF69Omou58aNGzNs2DBmzJjBhx/aA7OpU6dy8skn06NHD/r06cPPfvYzcnNzOeyww6qdH57y\nEwjZLy8vZ+LEicF0nG3atEFEqmVbA3jrrbc4++yzOeyww2jVqhX3339/MOVn48aNGTp0KI8++iiq\nyvz584O5oMvLy3nzzTdDUn7OmzePLVu2sHXrViorKznyyCOD12mwwfn8JVVbBALO6Ax0z0Uk/F6y\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "chi_d_u235 = chi_delayed.xs_tally.get_values(nuclides=['U235'])\n", + "chi_d_pu239 = chi_delayed.xs_tally.get_values(nuclides=['Pu239'])\n", + "chi_p_u235 = chi_prompt.xs_tally.get_values(nuclides=['U235'])\n", + "chi_p_pu239 = chi_prompt.xs_tally.get_values(nuclides=['Pu239'])\n", + "\n", + "# Reshape the betas\n", + "chi_d_u235.shape = (chi_d_u235.shape[0])\n", + "chi_d_pu239.shape = (chi_d_pu239.shape[0])\n", + "chi_p_u235.shape = (chi_p_u235.shape[0])\n", + "chi_p_pu239.shape = (chi_p_pu239.shape[0])\n", + "\n", + "chi_d_u235 = np.append(chi_d_u235[0] , chi_d_u235)\n", + "chi_d_pu239 = np.append(chi_d_pu239[0], chi_d_pu239)\n", + "chi_p_u235 = np.append(chi_p_u235[0] , chi_p_u235)\n", + "chi_p_pu239 = np.append(chi_p_pu239[0], chi_p_pu239)\n", + "\n", + "# Create a step plot for the MGXS\n", + "plt.semilogx(energy_groups.group_edges, chi_d_u235 , drawstyle='steps', color='b', linestyle='--', linewidth=3)\n", + "plt.semilogx(energy_groups.group_edges, chi_d_pu239, drawstyle='steps', color='g', linestyle='--', linewidth=3)\n", + "plt.semilogx(energy_groups.group_edges, chi_p_u235 , drawstyle='steps', color='b', linestyle=':', linewidth=3)\n", + "plt.semilogx(energy_groups.group_edges, chi_p_pu239, drawstyle='steps', color='g', linestyle=':', linewidth=3)\n", + "\n", + "plt.title('Energy Spectrum for Fission Neutrons')\n", + "plt.xlabel('Energy (MeV)')\n", + "plt.ylabel('Fraction on emitted neutrons')\n", + "plt.legend(['U-235 delayed', 'Pu-239 delayed', 'U-235 prompt', 'Pu-239 prompt'],loc=2)\n", + "plt.xlim(0.001,20)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index d36b29f7fc..4d65aaacc5 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -709,12 +709,113 @@ class MDGXS(MGXS): """ - df = super(MDGXS, self).get_pandas_dataframe(groups, nuclides, xs_type, - distribcell_paths) - + if not isinstance(groups, basestring): + cv.check_iterable_type('groups', groups, Integral) + if nuclides != 'all' and nuclides != 'sum': + cv.check_iterable_type('nuclides', nuclides, basestring) if not isinstance(delayed_groups, basestring): cv.check_iterable_type('delayed groups', delayed_groups, Integral) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + num_delayed_groups = 1 + if self.delayed_groups != None: + num_delayed_groups = self.delayed_groups.num_groups + + # Get a Pandas DataFrame from the derived xs tally + if self.by_nuclide and nuclides == 'sum': + + # Use tally summation to sum across all nuclides + query_nuclides = self.get_all_nuclides() + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + df = xs_tally.get_pandas_dataframe( + distribcell_paths=distribcell_paths) + + # Remove nuclide column since it is homogeneous and redundant + if self.domain_type == 'mesh': + df.drop('nuclide', axis=1, level=0, inplace=True) + else: + df.drop('nuclide', axis=1, inplace=True) + + # If the user requested a specific set of nuclides + elif self.by_nuclide and nuclides != 'all': + xs_tally = self.xs_tally.get_slice(nuclides=nuclides) + df = xs_tally.get_pandas_dataframe( + distribcell_paths=distribcell_paths) + + # If the user requested all nuclides, keep nuclide column in dataframe + else: + df = self.xs_tally.get_pandas_dataframe( + distribcell_paths=distribcell_paths) + + # Remove the score column since it is homogeneous and redundant + if self.domain_type == 'mesh': + df = df.drop('score', axis=1, level=0) + else: + df = df.drop('score', axis=1) + + # 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 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 * num_delayed_groups) + in_groups = np.repeat(in_groups, df.shape[0] / in_groups.size) + df['group in'] = in_groups + del df['energy high [MeV]'] + + df.rename(columns={'energyout low [MeV]': 'group out'}, + inplace=True) + out_groups = np.repeat(all_groups, self.xs_tally.num_scores) + out_groups = np.tile(out_groups, df.shape[0] / out_groups.size * num_delayed_groups) + df['group out'] = out_groups + del df['energyout high [MeV]'] + columns = ['group in', 'group out'] + + 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 * num_delayed_groups) + df['group out'] = in_groups + del df['energyout high [MeV]'] + columns = ['group out'] + + 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 * num_delayed_groups) + df['group in'] = in_groups + del df['energy high [MeV]'] + columns = ['group in'] + + # Select out those groups the user requested + if not isinstance(groups, basestring): + if 'group in' in df: + df = df[df['group in'].isin(groups)] + if 'group out' in df: + df = df[df['group out'].isin(groups)] + + # If user requested micro cross sections, divide out the atom densities + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + densities = np.repeat(densities, len(self.rxn_rate_tally.scores)) + tile_factor = df.shape[0] / len(densities) + df['mean'] /= np.tile(densities, tile_factor) + df['std. dev.'] /= np.tile(densities, tile_factor) + + # Sort the dataframe by domain type id (e.g., distribcell id) and + # energy groups such that data is from fast to thermal + if self.domain_type == 'mesh': + mesh_str = 'mesh {0}'.format(self.domain.id) + df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), \ + (mesh_str, 'z')] + columns, inplace=True) + else: + df.sort_values(by=[self.domain_type] + columns, inplace=True) + return df + # Select out those delayed groups the user requested if not isinstance(delayed_groups, basestring): if 'delayedgroup' in df: diff --git a/openmc/tallies.py b/openmc/tallies.py index c68b0faacb..2073bbd282 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2197,8 +2197,8 @@ class Tally(object): """ - cv.check_type('filter1', filter1, (Filter, CrossFilter, AggregateFilter)) - cv.check_type('filter2', filter2, (Filter, CrossFilter, AggregateFilter)) + cv.check_type('filter1', filter1, _FILTER_CLASSES) + cv.check_type('filter2', filter2, _FILTER_CLASSES) # Check that the filters exist in the tally and are not the same if filter1 == filter2: @@ -2280,8 +2280,8 @@ class Tally(object): 'since it does not contain any results.'.format(self.id) raise ValueError(msg) - cv.check_type('nuclide1', nuclide1, Nuclide) - cv.check_type('nuclide2', nuclide2, Nuclide) + cv.check_type('nuclide1', nuclide1, _NUCLIDE_CLASSES) + cv.check_type('nuclide2', nuclide2, _NUCLIDE_CLASSES) # Check that the nuclides exist in the tally and are not the same if nuclide1 == nuclide2: @@ -3318,7 +3318,7 @@ class Tally(object): """ - cv.check_type('new_filter', new_filter, Filter) + cv.check_type('new_filter', new_filter, _FILTER_CLASSES) if new_filter in self.filters: msg = 'Unable to diagonalize Tally ID="{0}" which already ' \ From 6ef6740ebc01f97c4fdc7772ba1b6fe29789e07b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Jul 2016 11:49:25 -0500 Subject: [PATCH 213/417] Implement stochastic volume calculation on Fortran side --- docs/source/io_formats/index.rst | 1 + docs/source/io_formats/nuclear_data.rst | 2 +- docs/source/io_formats/volume.rst | 22 ++ docs/source/usersguide/input.rst | 29 ++ src/constants.F90 | 3 +- src/global.F90 | 3 + src/hdf5_interface.F90 | 76 +++++ src/input_xml.F90 | 10 + src/random_lcg.F90 | 1 - src/simulation.F90 | 4 + src/volume_calc.F90 | 389 ++++++++++++++++++++++++ src/volume_header.F90 | 42 +++ 12 files changed, 579 insertions(+), 3 deletions(-) create mode 100644 docs/source/io_formats/volume.rst create mode 100644 src/volume_calc.F90 create mode 100644 src/volume_header.F90 diff --git a/docs/source/io_formats/index.rst b/docs/source/io_formats/index.rst index acab7e8930..1da8872c66 100644 --- a/docs/source/io_formats/index.rst +++ b/docs/source/io_formats/index.rst @@ -30,3 +30,4 @@ Output Files particle_restart track voxel + volume diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index ba6a54eb1e..9d7ff0eb1e 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -1,4 +1,4 @@ -.. _usersguide_nuclear_data: +.. _io_nuclear_data: ======================== Nuclear Data File Format diff --git a/docs/source/io_formats/volume.rst b/docs/source/io_formats/volume.rst new file mode 100644 index 0000000000..10b7a3b732 --- /dev/null +++ b/docs/source/io_formats/volume.rst @@ -0,0 +1,22 @@ +.. _io_volume: + +================== +Volume File Format +================== + +**/** + +:Attributes: - **samples** (*int*) -- Number of samples + - **lower_left** (*double[3]*) -- Lower-left coordinates of + bounding box + - **upper_right** (*double[3]*) -- Upper-right coordinates of + bounding box + +**/cell_/** + +:Datasets: - **volume** (*double[2]*) -- Calculated volume and its uncertainty + in cubic centimeters + - **nuclides** (*char[][]*) -- Names of nuclides identified in the + cell + - **atoms** (*double[][2]*) -- Total number of atoms of each nuclide + and its uncertainty diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index e530097ded..530c45d2fe 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -836,6 +836,35 @@ displayed. This element takes the following attributes: *Default*: 5 +```` Element +------------------------- + +The ```` element indicates that a stochastic volume calculation +should be run at the beginning of the simulation. This element has the following +sub-elements/attributes: + + :cells: + The unique IDs of cells for which the volume should be estimated. + + *Default*: None + + :samples: + The number of samples used to estimate volumes. + + *Default*: None + + :lower_left: + The lower-left Cartesian coordinates of a bounding box that is used to + sample points within. + + *Default*: None + + :upper_right: + The upper-right Cartesian coordinates of a bounding box that is used to + sample points within. + + *Default*: None + -------------------------------------- Geometry Specification -- geometry.xml -------------------------------------- diff --git a/src/constants.F90 b/src/constants.F90 index a22c9ac050..076e1f0d0b 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -380,11 +380,12 @@ module constants ! ============================================================================ ! RANDOM NUMBER STREAM CONSTANTS - integer, parameter :: N_STREAMS = 4 + integer, parameter :: N_STREAMS = 5 integer, parameter :: STREAM_TRACKING = 1 integer, parameter :: STREAM_TALLIES = 2 integer, parameter :: STREAM_SOURCE = 3 integer, parameter :: STREAM_URR_PTABLE = 4 + integer, parameter :: STREAM_VOLUME = 5 ! ============================================================================ ! MISCELLANEOUS CONSTANTS diff --git a/src/global.F90 b/src/global.F90 index 1b1e5632a4..ba5947f0e7 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -17,6 +17,7 @@ module global use tally_header, only: TallyObject, TallyMap, TallyResult use trigger_header, only: KTrigger use timer_header, only: Timer + use volume_header, only: VolumeCalculation #ifdef MPIF08 use mpi_f08 @@ -35,6 +36,8 @@ module global type(Material), allocatable, target :: materials(:) type(ObjectPlot), allocatable, target :: plots(:) + type(VolumeCalculation), allocatable :: volume_calcs(:) + ! Size of main arrays integer :: n_cells ! # of cells integer :: n_universes ! # of universes diff --git a/src/hdf5_interface.F90 b/src/hdf5_interface.F90 index 5a1e2a2fff..6d1c87d7f5 100644 --- a/src/hdf5_interface.F90 +++ b/src/hdf5_interface.F90 @@ -75,8 +75,15 @@ module hdf5_interface module procedure read_attribute_string end interface read_attribute + interface write_attribute + module procedure write_attribute_double + module procedure write_attribute_double_1D + module procedure write_attribute_integer + end interface write_attribute + public :: write_dataset public :: read_dataset + public :: write_attribute public :: read_attribute public :: file_create public :: file_open @@ -2059,6 +2066,25 @@ contains call h5aclose_f(attr_id, hdf5_err) end subroutine read_attribute_double + subroutine write_attribute_double(obj_id, name, buffer) + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name + real(8), intent(in), target :: buffer + + integer :: hdf5_err + integer(HID_T) :: dspace_id + integer(HID_T) :: attr_id + type(C_PTR) :: f_ptr + + call h5screate_f(H5S_SCALAR_F, dspace_id, hdf5_err) + call h5acreate_f(obj_id, trim(name), H5T_NATIVE_DOUBLE, dspace_id, & + attr_id, hdf5_err) + f_ptr = c_loc(buffer) + call h5awrite_f(attr_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) + call h5aclose_f(attr_id, hdf5_err) + call h5sclose_f(dspace_id, hdf5_err) + end subroutine write_attribute_double + subroutine read_attribute_double_1D(buffer, obj_id, name) real(8), target, allocatable, intent(inout) :: buffer(:) integer(HID_T), intent(in) :: obj_id @@ -2097,6 +2123,37 @@ contains call h5aread_f(attr_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) end subroutine read_attribute_double_1D_explicit + subroutine write_attribute_double_1D(obj_id, name, buffer) + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name + real(8), target, intent(in) :: buffer(:) + + integer(HSIZE_T) :: dims(1) + + dims(:) = shape(buffer) + call write_attribute_double_1D_explicit(obj_id, dims, name, buffer) + end subroutine write_attribute_double_1D + + subroutine write_attribute_double_1D_explicit(obj_id, dims, name, buffer) + integer(HID_T), intent(in) :: obj_id + integer(HSIZE_T), intent(in) :: dims(1) + character(*), intent(in) :: name + real(8), target, intent(in) :: buffer(dims(1)) + + integer :: hdf5_err + integer(HID_T) :: dspace_id + integer(HID_T) :: attr_id + type(C_PTR) :: f_ptr + + call h5screate_simple_f(1, dims, dspace_id, hdf5_err) + call h5acreate_f(obj_id, trim(name), H5T_NATIVE_DOUBLE, dspace_id, & + attr_id, hdf5_err) + f_ptr = c_loc(buffer) + call h5awrite_f(attr_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) + call h5aclose_f(attr_id, hdf5_err) + call h5sclose_f(dspace_id, hdf5_err) + end subroutine write_attribute_double_1D_explicit + subroutine read_attribute_double_2D(buffer, obj_id, name) real(8), target, allocatable, intent(inout) :: buffer(:,:) integer(HID_T), intent(in) :: obj_id @@ -2150,6 +2207,25 @@ contains call h5aclose_f(attr_id, hdf5_err) end subroutine read_attribute_integer + subroutine write_attribute_integer(obj_id, name, buffer) + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name + integer, intent(in), target :: buffer + + integer :: hdf5_err + integer(HID_T) :: dspace_id + integer(HID_T) :: attr_id + type(C_PTR) :: f_ptr + + call h5screate_f(H5S_SCALAR_F, dspace_id, hdf5_err) + call h5acreate_f(obj_id, trim(name), H5T_NATIVE_INTEGER, dspace_id, & + attr_id, hdf5_err) + f_ptr = c_loc(buffer) + call h5awrite_f(attr_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) + call h5aclose_f(attr_id, hdf5_err) + call h5sclose_f(dspace_id, hdf5_err) + end subroutine write_attribute_integer + subroutine read_attribute_integer_1D(buffer, obj_id, name) integer, target, allocatable, intent(inout) :: buffer(:) integer(HID_T), intent(in) :: obj_id diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 3e5a687124..0c2eca33a5 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -87,8 +87,10 @@ contains type(Node), pointer :: node_scatterer => null() type(Node), pointer :: node_trigger => null() type(Node), pointer :: node_keff_trigger => null() + type(Node), pointer :: node_vol => null() type(NodeList), pointer :: node_scat_list => null() type(NodeList), pointer :: node_source_list => null() + type(NodeList), pointer :: node_vol_list => null() ! Check if settings.xml exists filename = trim(path_input) // "settings.xml" @@ -1119,6 +1121,14 @@ contains end select end if + call get_node_list(doc, "volume_calc", node_vol_list) + n = get_list_size(node_vol_list) + allocate(volume_calcs(n)) + do i = 1, n + call get_list_item(node_vol_list, i, node_vol) + call volume_calcs(i) % from_xml(node_vol) + end do + ! Close settings XML file call close_xmldoc(doc) diff --git a/src/random_lcg.F90 b/src/random_lcg.F90 index 08f1034ab7..287bbba6d9 100644 --- a/src/random_lcg.F90 +++ b/src/random_lcg.F90 @@ -29,7 +29,6 @@ module random_lcg public :: set_particle_seed public :: advance_prn_seed public :: prn_set_stream - public :: STREAM_TRACKING, STREAM_TALLIES contains diff --git a/src/simulation.F90 b/src/simulation.F90 index 3321dc70fa..f59ce371cc 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -24,6 +24,7 @@ module simulation reset_result use trigger, only: check_triggers use tracking, only: transport + use volume_calc, only: run_volume_calculations implicit none private @@ -42,6 +43,9 @@ contains type(Particle) :: p integer(8) :: i_work + ! Volume calculations + if (size(volume_calcs) > 0) call run_volume_calculations() + if (.not. restart_run) call initialize_source() ! Display header diff --git a/src/volume_calc.F90 b/src/volume_calc.F90 new file mode 100644 index 0000000000..cb36f0b7f3 --- /dev/null +++ b/src/volume_calc.F90 @@ -0,0 +1,389 @@ +module volume_calc + + use hdf5, only: HID_T +#ifdef _OPENMP + use omp_lib +#endif + + use constants + use geometry, only: find_cell + use global + use hdf5_interface, only: file_create, file_close, write_attribute, & + create_group, close_group, write_dataset + use output, only: write_message, header + use message_passing + use particle_header, only: Particle + use random_lcg, only: prn, prn_set_stream, set_particle_seed + use stl_vector, only: VectorInt, VectorReal + use timer_header, only: Timer + use volume_header + + implicit none + private + + public :: run_volume_calculations + +contains + +!=============================================================================== +! RUN_VOLUME_CALCULATIONS runs each of the stochastic volume calculations that +! the user has specified and writes results to HDF5 files +!=============================================================================== + + subroutine run_volume_calculations() + integer :: i, j + integer :: n + real(8), allocatable :: volume(:,:) ! volume mean/stdev in each cell + character(MAX_FILE_LEN) :: filename ! filename for HDF5 file + type(Timer) :: time_volume ! timer for volume calculation + type(VectorInt), allocatable :: nuclide_vec(:) ! indices in nuclides array + type(VectorReal), allocatable :: atoms_vec(:) ! total # of atoms of each nuclide + type(VectorReal), allocatable :: uncertainty_vec(:) ! uncertainty of total # of atoms + + if (master) then + call header("STOCHASTIC VOLUME CALCULATION", level=1) + call time_volume % start() + end if + + do i = 1, size(volume_calcs) + n = size(volume_calcs(i) % cell_id) + allocate(nuclide_vec(n)) + allocate(atoms_vec(n), uncertainty_vec(n)) + allocate(volume(2,n)) + + if (master) then + call write_message("Running volume calculation " // trim(to_str(i)) & + // "...") + end if + + call get_volume(volume_calcs(i), volume, nuclide_vec, atoms_vec, & + uncertainty_vec) + + if (master) then + ! Display cell volumes + do j = 1, size(volume_calcs(i) % cell_id) + call write_message(" Cell " // trim(to_str(volume_calcs(i) % & + cell_id(j))) // ": " // trim(to_str(volume(1,j))) // " +/- " // & + trim(to_str(volume(2,j))) // " cm^3") + end do + call write_message("") + + filename = trim(path_output) // 'volume_' // trim(to_str(i)) // '.h5' + call write_volume(volume_calcs(i), filename, volume, nuclide_vec, & + atoms_vec, uncertainty_vec) + end if + + deallocate(nuclide_vec, atoms_vec, uncertainty_vec, volume) + end do + + ! Show elapsed time + if (master) then + call time_volume % stop() + call write_message("Elapsed time: " // trim(to_str(time_volume % & + get_value())) // " s") + end if + end subroutine run_volume_calculations + +!=============================================================================== +! GET_VOLUME stochastically determines the volume of a set of cells along with +! the average number densities of nuclides within the cell +!=============================================================================== + + subroutine get_volume(this, volume, nuclide_vec, atoms_vec, uncertainty_vec) + type(VolumeCalculation), intent(in) :: this + real(8), intent(out) :: volume(:,:) ! volume mean/stdev in each cell + type(VectorInt), intent(out) :: nuclide_vec(:) ! indices in nuclides array + type(VectorReal), intent(out) :: atoms_vec(:) ! total # of atoms of each nuclide + type(VectorReal), intent(out) :: uncertainty_vec(:) ! uncertainty of total # of atoms + + ! Variables that are private to each thread + integer(8) :: i + integer :: j, k + integer :: i_cell ! index in cell_id array + integer :: i_material ! index in materials array + integer :: level ! local coordinate level + logical :: found_cell + type(VectorInt) :: indices(size(this % cell_id)) ! List of material indices + type(VectorInt) :: hits(size(this % cell_id)) ! Number of hits for each material + type(Particle) :: p + + ! Shared variables + integer :: i_start, i_end ! Starting/ending sample for each process + type(VectorInt) :: master_indices(size(this % cell_id)) + type(VectorInt) :: master_hits(size(this % cell_id)) + + ! Variables used outside of parallel region + integer :: i_nuclide ! index in nuclides array + integer :: total_hits ! total hits for a single cell (summed over materials) + integer :: min_samples ! minimum number of samples per process + integer :: remainder ! leftover samples from uneven divide +#ifdef MPI + integer :: m ! index over materials + integer :: n ! number of materials + integer, allocatable :: data(:) ! array used to send number of hits +#endif + real(8) :: f ! fraction of hits + real(8) :: var_f ! variance of fraction of hits + real(8) :: volume_sample ! total volume of sampled region + real(8) :: atoms(2, size(nuclides)) + + ! Divide work over MPI processes + min_samples = this % samples / n_procs + remainder = mod(this % samples, n_procs) + if (rank < remainder) then + i_start = (min_samples + 1)*rank + i_end = i_start + min_samples + else + i_start = (min_samples + 1)*remainder + (rank - remainder)*min_samples + i_end = i_start + min_samples - 1 + end if + + call p % initialize() + +!$omp parallel private(i, j, k, i_cell, i_material, level, found_cell) & +!$omp& firstprivate(p, indices, hits) + + call prn_set_stream(STREAM_VOLUME) + + ! ========================================================================== + ! SAMPLES LOCATIONS AND COUNT HITS + +!$omp do + SAMPLE_LOOP: do i = i_start, i_end + call set_particle_seed(i) + + p % n_coord = 1 + p % coord(1) % xyz(1) = this % lower_left(1) + prn()*(& + this % upper_right(1) - this % lower_left(1)) + p % coord(1) % xyz(2) = this % lower_left(2) + prn()*(& + this % upper_right(2) - this % lower_left(2)) + p % coord(1) % xyz(3) = this % lower_left(3) + prn()*(& + this % upper_right(3) - this % lower_left(3)) + p % coord(1) % uvw(:) = [HALF, HALF, HALF] + + ! If this location is not in the geometry at all, move on to the next + ! block + call find_cell(p, found_cell) + if (.not. found_cell) cycle + + ! Determine if point is within desired cell + LEVEL_LOOP: do level = 1, p % n_coord + CELL_CHECK_LOOP: do i_cell = 1, size(this % cell_id) + if (cells(p % coord(level) % cell) % id == this % cell_id(i_cell)) then + + ! Determine what material this is + i_material = p % material + + ! Check if we've already had a hit in this material and if so, + ! simply add one + do j = 1, indices(i_cell) % size() + if (indices(i_cell) % data(j) == i_material) then + hits(i_cell) % data(j) = hits(i_cell) % data(j) + 1 + cycle CELL_CHECK_LOOP + end if + end do + + ! If we make it here, that means we haven't yet had a hit in this + ! material. Add an entry to both the indices list and the hits list + call indices(i_cell) % push_back(i_material) + call hits(i_cell) % push_back(1) + end if + end do CELL_CHECK_LOOP + end do LEVEL_LOOP + end do SAMPLE_LOOP + !$omp end do + + ! ========================================================================== + ! REDUCE HITS ONTO MASTER THREAD + + ! At this point, each thread has its own pair of index/hits lists and we now + ! need to reduce them. OpenMP is not nearly smart enough to do this on its + ! own, so we have to manually reduce them. + +#ifdef _OPENMP +!$omp do ordered schedule(static) + THREAD_LOOP: do i = 1, omp_get_num_threads() +!$omp ordered + do i_cell = 1, size(this % cell_id) + INDEX_LOOP: do j = 1, indices(i_cell) % size() + ! Check if this material has been added to the master list and if so, + ! accumulate the number of hits + do k = 1, master_indices(i_cell) % size() + if (indices(i_cell) % data(j) == master_indices(i_cell) % data(k)) then + master_hits(i_cell) % data(k) = & + master_hits(i_cell) % data(k) + hits(i_cell) % data(j) + cycle INDEX_LOOP + end if + end do + + ! If we made it here, this means the material hasn't yet been added to + ! the master list, so add an entry to both the master indices and master + ! hits lists + call master_indices(i_cell) % push_back(indices(i_cell) % data(j)) + call master_hits(i_cell) % push_back(hits(i_cell) % data(j)) + end do INDEX_LOOP + end do +!$omp end ordered + end do THREAD_LOOP +!$omp end do +#else + master_indices = indices + master_hits = hits +#endif + + call prn_set_stream(STREAM_TRACKING) +!$omp end parallel + + ! ========================================================================== + ! REDUCE HITS ONTO MASTER PROCESS + + volume_sample = product(this % upper_right - this % lower_left) + + do i_cell = 1, size(this % cell_id) + atoms(:, :) = ZERO + total_hits = 0 + + if (master) then +#ifdef MPI + do j = 1, n_procs - 1 + call MPI_RECV(n, 1, MPI_INTEGER, j, 0, MPI_COMM_WORLD, & + MPI_STATUS_IGNORE, mpi_err) + + allocate(data(2*n)) + call MPI_RECV(data, 2*n, MPI_INTEGER, j, 1, MPI_COMM_WORLD, & + MPI_STATUS_IGNORE, mpi_err) + do k = 0, n - 1 + do m = 1, master_indices(i_cell) % size() + if (data(2*k + 1) == master_indices(i_cell) % data(m)) then + master_hits(i_cell) % data(m) = master_hits(i_cell) % data(m) + & + data(2*k + 2) + end if + end do + end do + deallocate(data) + end do +#endif + + do j = 1, master_indices(i_cell) % size() + total_hits = total_hits + master_hits(i_cell) % data(j) + f = real(master_hits(i_cell) % data(j), 8) / this % samples + var_f = f*(ONE - f) / this % samples + + i_material = master_indices(i_cell) % data(j) + if (i_material == MATERIAL_VOID) cycle + + associate (mat => materials(i_material)) + do k = 1, size(mat % nuclide) + ! Accumulate nuclide density + i_nuclide = mat % nuclide(k) + atoms(1, i_nuclide) = atoms(1, i_nuclide) + & + mat % atom_density(k) * f + atoms(2, i_nuclide) = atoms(2, i_nuclide) + & + mat % atom_density(k)**2 * var_f + end do + end associate + end do + + ! Determine volume + volume(1, i_cell) = real(total_hits, 8) / this % samples * volume_sample + volume(2, i_cell) = sqrt(volume(1, i_cell) * (volume_sample - & + volume(1, i_cell)) / this % samples) + + ! Determine total number of atoms. At this point, we have values in + ! atoms/b-cm. To get to atoms we multiple by 10^24 V. + do j = 1, size(atoms, 2) + atoms(1, j) = 1.0e24_8 * volume_sample * atoms(1, j) + atoms(2, j) = 1.0e24_8 * volume_sample * sqrt(atoms(2, j)) + end do + + ! Convert full arrays to vectors + do j = 1, size(nuclides) + if (atoms(1, j) > ZERO) then + call nuclide_vec(i_cell) % push_back(j) + call atoms_vec(i_cell) % push_back(atoms(1, j)) + call uncertainty_vec(i_cell) % push_back(atoms(2, j)) + end if + end do + + else +#ifdef MPI + n = master_indices(i_cell) % size() + allocate(data(2*n)) + do k = 0, n - 1 + data(2*k + 1) = master_indices(i_cell) % data(k + 1) + data(2*k + 2) = master_hits(i_cell) % data(k + 1) + end do + + call MPI_SEND(n, 1, MPI_INTEGER, 0, 0, MPI_COMM_WORLD, mpi_err) + call MPI_SEND(data, 2*n, MPI_INTEGER, 0, 1, MPI_COMM_WORLD, mpi_err) + deallocate(data) +#endif + end if + end do + + end subroutine get_volume + +!=============================================================================== +! WRITE_VOLUME writes the results of a single stochastic volume calculation to +! an HDF5 file +!=============================================================================== + + subroutine write_volume(this, filename, volume, nuclide_vec, atoms_vec, & + uncertainty_vec) + type(VolumeCalculation), intent(in) :: this + character(*), intent(in) :: filename ! filename for HDF5 file + real(8), intent(in) :: volume(:,:) ! volume mean/stdev in each cell + type(VectorInt), intent(in) :: nuclide_vec(:) ! indices in nuclides array + type(VectorReal), intent(in) :: atoms_vec(:) ! total # of atoms of each nuclide + type(VectorReal), intent(in) :: uncertainty_vec(:) ! uncertainty of total # of atoms + + integer :: i, j + integer :: n + integer(HID_T) :: file_id + integer(HID_T) :: group_id + real(8), allocatable :: atom_data(:,:) ! mean/stdev of total # of atoms for + ! each nuclide + character(MAX_WORD_LEN), allocatable :: nucnames(:) ! names of nuclides + + ! Create HDF5 file + file_id = file_create(filename) + + ! Write basic metadata + call write_attribute(file_id, "samples", this % samples) + call write_attribute(file_id, "lower_left", this % lower_left) + call write_attribute(file_id, "upper_right", this % upper_right) + + do i = 1, size(this % cell_id) + group_id = create_group(file_id, "cell_" // trim(to_str(& + this % cell_id(i)))) + + ! Write volume for cell + call write_dataset(group_id, "volume", volume(:, i)) + + ! Create array of nuclide names from the vector + n = nuclide_vec(i) % size() + if (n > 0) then + allocate(nucnames(n)) + do j = 1, n + nucnames(j) = nuclides(nuclide_vec(i) % data(j)) % name + end do + + ! Create array of total # of atoms with uncertainty for each nuclide + allocate(atom_data(2, n)) + atom_data(1, :) = atoms_vec(i) % data(1:n) + atom_data(2, :) = uncertainty_vec(i) % data(1:n) + + ! Write results + call write_dataset(group_id, "nuclides", nucnames) + call write_dataset(group_id, "atoms", atom_data) + + deallocate(nucnames) + deallocate(atom_data) + end if + + call close_group(group_id) + end do + call file_close(file_id) + end subroutine write_volume + +end module volume_calc diff --git a/src/volume_header.F90 b/src/volume_header.F90 new file mode 100644 index 0000000000..3a34f1231a --- /dev/null +++ b/src/volume_header.F90 @@ -0,0 +1,42 @@ +module volume_header + + use error, only: fatal_error + use xml_interface + + implicit none + + type VolumeCalculation + integer, allocatable :: cell_id(:) + real(8) :: lower_left(3) + real(8) :: upper_right(3) + integer :: samples + contains + procedure :: from_xml => volume_from_xml + end type VolumeCalculation + +contains + + subroutine volume_from_xml(this, node_vol) + class(VolumeCalculation), intent(out) :: this + type(Node), pointer :: node_vol + + integer :: num_cells + + ! Read cell IDs + if (check_for_node(node_vol, "cells")) then + num_cells = get_arraysize_integer(node_vol, "cells") + else + call fatal_error("Must specify at least one cell for a volume calculation") + end if + allocate(this % cell_id(num_cells)) + call get_node_array(node_vol, "cells", this % cell_id) + + ! Read lower-left and upper-right bounding coordinates + call get_node_array(node_vol, "lower_left", this % lower_left) + call get_node_array(node_vol, "upper_right", this % upper_right) + + ! Read number of samples + call get_node_value(node_vol, "samples", this % samples) + end subroutine volume_from_xml + +end module volume_header From cac6ac6f665a3c3d2d72bb1bd87c813064a6b87a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 28 Jul 2016 12:35:15 -0500 Subject: [PATCH 214/417] Add VolumeCalculation object. Update settings.xml RELAX NG schema --- openmc/__init__.py | 5 +- openmc/settings.py | 204 +++++++++++++++++++++------------------ openmc/volume.py | 204 +++++++++++++++++++++++++++++++++++++++ src/relaxng/settings.rnc | 11 +++ src/relaxng/settings.rng | 62 ++++++++++++ 5 files changed, 392 insertions(+), 94 deletions(-) create mode 100644 openmc/volume.py diff --git a/openmc/__init__.py b/openmc/__init__.py index 557e13039f..026ccce114 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -6,6 +6,9 @@ from openmc.nuclide import * from openmc.macroscopic import * from openmc.material import * from openmc.plots import * +from openmc.region import * +from openmc.volume import * +from openmc.source import * from openmc.settings import * from openmc.surface import * from openmc.universe import * @@ -18,8 +21,6 @@ from openmc.cmfd import * from openmc.executor import * from openmc.statepoint import * from openmc.summary import * -from openmc.region import * -from openmc.source import * from openmc.particle_restart import * try: diff --git a/openmc/settings.py b/openmc/settings.py index b9a93bd114..918f97c7da 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -1,4 +1,4 @@ -from collections import Iterable +from collections import Iterable, MutableSequence from numbers import Real, Integral import warnings from xml.etree import ElementTree as ET @@ -7,10 +7,8 @@ import sys import numpy as np from openmc.clean_xml import clean_xml_indentation -from openmc.checkvalue import (check_type, check_length, check_value, - check_greater_than, check_less_than) -from openmc import Nuclide -from openmc.source import Source +import openmc.checkvalue as cv +from openmc import Nuclide, VolumeCalculation, Source if sys.version_info[0] >= 3: basestring = str @@ -137,6 +135,8 @@ class Settings(object): resonance cross sections. resonance_scattering : ResonanceScattering or iterable of ResonanceScattering The elastic scattering model to use for resonant isotopes + volume_calculations : VolumeCalculation or iterable of VolumeCalculation + Stochastic volume calculation specifications """ @@ -220,6 +220,8 @@ class Settings(object): self._multipole_active = None self._resonance_scattering = None + self._volume_calculations = cv.CheckedList(VolumeCalculation, + 'volume calculations') @property def run_mode(self): @@ -421,6 +423,10 @@ class Settings(object): def resonance_scattering(self): return self._resonance_scattering + @property + def volume_calculations(self): + return self._volume_calculations + @run_mode.setter def run_mode(self, run_mode): if run_mode not in ['eigenvalue', 'fixed source']: @@ -431,26 +437,26 @@ class Settings(object): @batches.setter def batches(self, batches): - check_type('batches', batches, Integral) - check_greater_than('batches', batches, 0) + cv.check_type('batches', batches, Integral) + cv.check_greater_than('batches', batches, 0) self._batches = batches @generations_per_batch.setter def generations_per_batch(self, generations_per_batch): - check_type('generations per patch', generations_per_batch, Integral) - check_greater_than('generations per batch', generations_per_batch, 0) + cv.check_type('generations per patch', generations_per_batch, Integral) + cv.check_greater_than('generations per batch', generations_per_batch, 0) self._generations_per_batch = generations_per_batch @inactive.setter def inactive(self, inactive): - check_type('inactive batches', inactive, Integral) - check_greater_than('inactive batches', inactive, 0, True) + cv.check_type('inactive batches', inactive, Integral) + cv.check_greater_than('inactive batches', inactive, 0, True) self._inactive = inactive @particles.setter def particles(self, particles): - check_type('particles', particles, Integral) - check_greater_than('particles', particles, 0) + cv.check_type('particles', particles, Integral) + cv.check_greater_than('particles', particles, 0) self._particles = particles @keff_trigger.setter @@ -484,14 +490,14 @@ class Settings(object): @energy_mode.setter def energy_mode(self, energy_mode): - check_value('energy mode', energy_mode, + cv.check_value('energy mode', energy_mode, ['continuous-energy', 'multi-group']) self._energy_mode = energy_mode @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, True) + cv.check_type('maximum scattering order', max_order, Integral) + cv.check_greater_than('maximum scattering order', max_order, 0, True) self._max_order = max_order @source.setter @@ -499,7 +505,7 @@ class Settings(object): if isinstance(source, Source): self._source = [source,] else: - check_type('source distribution', source, Iterable, Source) + cv.check_type('source distribution', source, Iterable, Source) self._source = source @output.setter @@ -525,197 +531,197 @@ class Settings(object): @output_path.setter def output_path(self, output_path): - check_type('output path', output_path, basestring) + cv.check_type('output path', output_path, basestring) self._output_path = output_path @verbosity.setter def verbosity(self, verbosity): - check_type('verbosity', verbosity, Integral) - check_greater_than('verbosity', verbosity, 1, True) - check_less_than('verbosity', verbosity, 10, True) + cv.check_type('verbosity', verbosity, Integral) + cv.check_greater_than('verbosity', verbosity, 1, True) + cv.check_less_than('verbosity', verbosity, 10, True) self._verbosity = verbosity @statepoint_batches.setter def statepoint_batches(self, batches): - check_type('statepoint batches', batches, Iterable, Integral) + cv.check_type('statepoint batches', batches, Iterable, Integral) for batch in batches: - check_greater_than('statepoint batch', batch, 0) + cv.check_greater_than('statepoint batch', batch, 0) self._statepoint_batches = batches @statepoint_interval.setter def statepoint_interval(self, interval): - check_type('statepoint interval', interval, Integral) + cv.check_type('statepoint interval', interval, Integral) self._statepoint_interval = interval @sourcepoint_batches.setter def sourcepoint_batches(self, batches): - check_type('sourcepoint batches', batches, Iterable, Integral) + cv.check_type('sourcepoint batches', batches, Iterable, Integral) for batch in batches: - check_greater_than('sourcepoint batch', batch, 0) + cv.check_greater_than('sourcepoint batch', batch, 0) self._sourcepoint_batches = batches @sourcepoint_interval.setter def sourcepoint_interval(self, interval): - check_type('sourcepoint interval', interval, Integral) + cv.check_type('sourcepoint interval', interval, Integral) self._sourcepoint_interval = interval @sourcepoint_separate.setter def sourcepoint_separate(self, source_separate): - check_type('sourcepoint separate', source_separate, bool) + cv.check_type('sourcepoint separate', source_separate, bool) self._sourcepoint_separate = source_separate @sourcepoint_write.setter def sourcepoint_write(self, source_write): - check_type('sourcepoint write', source_write, bool) + cv.check_type('sourcepoint write', source_write, bool) self._sourcepoint_write = source_write @sourcepoint_overwrite.setter def sourcepoint_overwrite(self, source_overwrite): - check_type('sourcepoint overwrite', source_overwrite, bool) + cv.check_type('sourcepoint overwrite', source_overwrite, bool) self._sourcepoint_overwrite = source_overwrite @confidence_intervals.setter def confidence_intervals(self, confidence_intervals): - check_type('confidence interval', confidence_intervals, bool) + cv.check_type('confidence interval', confidence_intervals, bool) self._confidence_intervals = confidence_intervals @cross_sections.setter def cross_sections(self, cross_sections): - check_type('cross sections', cross_sections, basestring) + cv.check_type('cross sections', cross_sections, basestring) self._cross_sections = cross_sections @multipole_library.setter def multipole_library(self, multipole_library): - check_type('cross sections', multipole_library, basestring) + cv.check_type('cross sections', multipole_library, basestring) self._multipole_library = multipole_library @energy_grid.setter def energy_grid(self, energy_grid): - check_value('energy grid', energy_grid, + cv.check_value('energy grid', energy_grid, ['nuclide', 'logarithm', 'material-union']) self._energy_grid = energy_grid @ptables.setter def ptables(self, ptables): - check_type('probability tables', ptables, bool) + cv.check_type('probability tables', ptables, bool) self._ptables = ptables @run_cmfd.setter def run_cmfd(self, run_cmfd): - check_type('run_cmfd', run_cmfd, bool) + cv.check_type('run_cmfd', run_cmfd, bool) self._run_cmfd = run_cmfd @seed.setter def seed(self, seed): - check_type('random number generator seed', seed, Integral) - check_greater_than('random number generator seed', seed, 0) + cv.check_type('random number generator seed', seed, Integral) + cv.check_greater_than('random number generator seed', seed, 0) self._seed = seed @survival_biasing.setter def survival_biasing(self, survival_biasing): - check_type('survival biasing', survival_biasing, bool) + cv.check_type('survival biasing', survival_biasing, bool) self._survival_biasing = survival_biasing @weight.setter def weight(self, weight): - check_type('weight cutoff', weight, Real) - check_greater_than('weight cutoff', weight, 0.0) + cv.check_type('weight cutoff', weight, Real) + cv.check_greater_than('weight cutoff', weight, 0.0) self._weight = weight @weight_avg.setter def weight_avg(self, weight_avg): - check_type('average survival weight', weight_avg, Real) - check_greater_than('average survival weight', weight_avg, 0.0) + cv.check_type('average survival weight', weight_avg, Real) + cv.check_greater_than('average survival weight', weight_avg, 0.0) self._weight_avg = weight_avg @entropy_dimension.setter def entropy_dimension(self, dimension): - check_type('entropy mesh dimension', dimension, Iterable, Integral) - check_length('entropy mesh dimension', dimension, 3) + cv.check_type('entropy mesh dimension', dimension, Iterable, Integral) + cv.check_length('entropy mesh dimension', dimension, 3) self._entropy_dimension = dimension @entropy_lower_left.setter def entropy_lower_left(self, lower_left): - check_type('entropy mesh lower left corner', lower_left, + cv.check_type('entropy mesh lower left corner', lower_left, Iterable, Real) - check_length('entropy mesh lower left corner', lower_left, 3) + cv.check_length('entropy mesh lower left corner', lower_left, 3) self._entropy_lower_left = lower_left @entropy_upper_right.setter def entropy_upper_right(self, upper_right): - check_type('entropy mesh upper right corner', upper_right, + cv.check_type('entropy mesh upper right corner', upper_right, Iterable, Real) - check_length('entropy mesh upper right corner', upper_right, 3) + cv.check_length('entropy mesh upper right corner', upper_right, 3) self._entropy_upper_right = upper_right @trigger_active.setter def trigger_active(self, trigger_active): - check_type('trigger active', trigger_active, bool) + cv.check_type('trigger active', trigger_active, bool) self._trigger_active = trigger_active @trigger_max_batches.setter def trigger_max_batches(self, trigger_max_batches): - check_type('trigger maximum batches', trigger_max_batches, Integral) - check_greater_than('trigger maximum batches', trigger_max_batches, 0) + cv.check_type('trigger maximum batches', trigger_max_batches, Integral) + cv.check_greater_than('trigger maximum batches', trigger_max_batches, 0) self._trigger_max_batches = trigger_max_batches @trigger_batch_interval.setter def trigger_batch_interval(self, trigger_batch_interval): - check_type('trigger batch interval', trigger_batch_interval, Integral) - check_greater_than('trigger batch interval', trigger_batch_interval, 0) + cv.check_type('trigger batch interval', trigger_batch_interval, Integral) + cv.check_greater_than('trigger batch interval', trigger_batch_interval, 0) self._trigger_batch_interval = trigger_batch_interval @no_reduce.setter def no_reduce(self, no_reduce): - check_type('no reduction option', no_reduce, bool) + cv.check_type('no reduction option', no_reduce, bool) self._no_reduce = no_reduce @threads.setter def threads(self, threads): - check_type('number of threads', threads, Integral) - check_greater_than('number of threads', threads, 0) + cv.check_type('number of threads', threads, Integral) + cv.check_greater_than('number of threads', threads, 0) self._threads = threads @trace.setter def trace(self, trace): - check_type('trace', trace, Iterable, Integral) - check_length('trace', trace, 3) - check_greater_than('trace batch', trace[0], 0) - check_greater_than('trace generation', trace[1], 0) - check_greater_than('trace particle', trace[2], 0) + cv.check_type('trace', trace, Iterable, Integral) + cv.check_length('trace', trace, 3) + cv.check_greater_than('trace batch', trace[0], 0) + cv.check_greater_than('trace generation', trace[1], 0) + cv.check_greater_than('trace particle', trace[2], 0) self._trace = trace @track.setter def track(self, track): - check_type('track', track, Iterable, Integral) + cv.check_type('track', track, Iterable, Integral) if len(track) % 3 != 0: msg = 'Unable to set the track to "{0}" since its length is ' \ 'not a multiple of 3'.format(track) raise ValueError(msg) for t in zip(track[::3], track[1::3], track[2::3]): - check_greater_than('track batch', t[0], 0) - check_greater_than('track generation', t[0], 0) - check_greater_than('track particle', t[0], 0) + cv.check_greater_than('track batch', t[0], 0) + cv.check_greater_than('track generation', t[0], 0) + cv.check_greater_than('track particle', t[0], 0) self._track = track @ufs_dimension.setter def ufs_dimension(self, dimension): - check_type('UFS mesh dimension', dimension, Iterable, Integral) - check_length('UFS mesh dimension', dimension, 3) + cv.check_type('UFS mesh dimension', dimension, Iterable, Integral) + cv.check_length('UFS mesh dimension', dimension, 3) for dim in dimension: - check_greater_than('UFS mesh dimension', dim, 1, True) + cv.check_greater_than('UFS mesh dimension', dim, 1, True) self._ufs_dimension = dimension @ufs_lower_left.setter def ufs_lower_left(self, lower_left): - check_type('UFS mesh lower left corner', lower_left, Iterable, Real) - check_length('UFS mesh lower left corner', lower_left, 3) + cv.check_type('UFS mesh lower left corner', lower_left, Iterable, Real) + cv.check_length('UFS mesh lower left corner', lower_left, 3) self._ufs_lower_left = lower_left @ufs_upper_right.setter def ufs_upper_right(self, upper_right): - check_type('UFS mesh upper right corner', upper_right, Iterable, Real) - check_length('UFS mesh upper right corner', upper_right, 3) + cv.check_type('UFS mesh upper right corner', upper_right, Iterable, Real) + cv.check_length('UFS mesh upper right corner', upper_right, 3) self._ufs_upper_right = upper_right @dd_mesh_dimension.setter @@ -724,8 +730,8 @@ class Settings(object): warnings.warn('This feature is not yet implemented in a release ' 'version of openmc') - check_type('DD mesh dimension', dimension, Iterable, Integral) - check_length('DD mesh dimension', dimension, 3) + cv.check_type('DD mesh dimension', dimension, Iterable, Integral) + cv.check_length('DD mesh dimension', dimension, 3) self._dd_mesh_dimension = dimension @@ -735,8 +741,8 @@ class Settings(object): warnings.warn('This feature is not yet implemented in a release ' 'version of openmc') - check_type('DD mesh lower left corner', lower_left, Iterable, Real) - check_length('DD mesh lower left corner', lower_left, 3) + cv.check_type('DD mesh lower left corner', lower_left, Iterable, Real) + cv.check_length('DD mesh lower left corner', lower_left, 3) self._dd_mesh_lower_left = lower_left @@ -746,8 +752,8 @@ class Settings(object): warnings.warn('This feature is not yet implemented in a release ' 'version of openmc') - check_type('DD mesh upper right corner', upper_right, Iterable, Real) - check_length('DD mesh upper right corner', upper_right, 3) + cv.check_type('DD mesh upper right corner', upper_right, Iterable, Real) + cv.check_length('DD mesh upper right corner', upper_right, 3) self._dd_mesh_upper_right = upper_right @@ -757,7 +763,7 @@ class Settings(object): warnings.warn('This feature is not yet implemented in a release ' 'version of openmc') - check_type('DD nodemap', nodemap, Iterable) + cv.check_type('DD nodemap', nodemap, Iterable) nodemap = np.array(nodemap).flatten() @@ -782,7 +788,7 @@ class Settings(object): warnings.warn('This feature is not yet implemented in a release ' 'version of openmc') - check_type('DD allow leakage', allow, bool) + cv.check_type('DD allow leakage', allow, bool) self._dd_allow_leakage = allow @@ -793,25 +799,34 @@ class Settings(object): warnings.warn('This feature is not yet implemented in a release ' 'version of openmc') - check_type('DD count interactions', interactions, bool) + cv.check_type('DD count interactions', interactions, bool) self._dd_count_interactions = interactions @use_windowed_multipole.setter def use_windowed_multipole(self, active): - check_type('use_windowed_multipole', active, bool) + cv.check_type('use_windowed_multipole', active, bool) self._multipole_active = active @resonance_scattering.setter def resonance_scattering(self, res): if isinstance(res, Iterable): - check_type('resonance_scattering', res, Iterable, + cv.check_type('resonance_scattering', res, Iterable, ResonanceScattering) self._resonance_scattering = res else: - check_type('resonance_scattering', res, ResonanceScattering) + cv.check_type('resonance_scattering', res, ResonanceScattering) self._resonance_scattering = [res] + @volume_calculations.setter + def volume_calculations(self, vol_calcs): + name = 'stochastic volume calculations' + if not isinstance(vol_calcs, MutableSequence): + vol_calcs = [vol_calcs] + cv.check_type(name, vol_calcs, MutableSequence) + self._volume_calculations = cv.CheckedList(VolumeCalculation, + name, vol_calcs) + def _create_run_mode_subelement(self): if self.run_mode == 'eigenvalue': @@ -873,6 +888,10 @@ class Settings(object): for source in self.source: self._settings_file.append(source.to_xml()) + def _create_volume_calcs_subelement(self): + for calc in self.volume_calculations: + self._settings_file.append(calc.to_xml()) + def _create_output_subelement(self): if self._output is not None: element = ET.SubElement(self._settings_file, "output") @@ -1154,6 +1173,7 @@ class Settings(object): self._create_dd_subelement() self._create_use_multipole_subelement() self._create_resonance_scattering_element() + self._create_volume_calcs_subelement() # Clean the indentation in the file to be user-readable clean_xml_indentation(self._settings_file) @@ -1216,29 +1236,29 @@ class ResonanceScattering(object): @nuclide.setter def nuclide(self, nuc): - check_type('nuclide', nuc, Nuclide) + cv.check_type('nuclide', nuc, Nuclide) self._nuclide = nuc @nuclide_0K.setter def nuclide_0K(self, nuc): - check_type('nuclide_0K', nuc, Nuclide) + cv.check_type('nuclide_0K', nuc, Nuclide) self._nuclide_0K = nuc @method.setter def method(self, m): - check_value('method', m, ('ARES', 'CXS', 'DBRC', 'WCM')) + cv.check_value('method', m, ('ARES', 'CXS', 'DBRC', '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) + cv.check_type('E_min', E, Real) + cv.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) + cv.check_type('E_max', E, Real) + cv.check_greater_than('E_max', E, 0, True) self._E_max = E def create_xml_subelement(self, xml_element): diff --git a/openmc/volume.py b/openmc/volume.py new file mode 100644 index 0000000000..511af62ed3 --- /dev/null +++ b/openmc/volume.py @@ -0,0 +1,204 @@ +from collections import Iterable, Mapping +from numbers import Real, Integral +from xml.etree import ElementTree as ET + +import numpy as np +import pandas as pd + +from openmc import Cell, Union +import openmc.checkvalue as cv + + +class VolumeCalculation(object): + """Stochastic volume calculation specifications and results. + + Parameters + ---------- + cells : Iterable of Cell + Cells to find volumes of + samples : int + Number of samples used to generate volume estimates + lower_left : Iterable of float + Lower-left coordinates of bounding box used to sample points. If this + argument is not supplied, an attempt is made to automatically determine + a bounding box. + upper_right : Iterable of float + Upper-right coordinates of bounding box used to sample points. If this + argument is not supplied, an attempt is made to automatically determine + a bounding box. + + Attributes + ---------- + cell_ids : Iterable of int + IDs of cells to find volumes of + samples : int + Number of samples used to generate volume estimates + lower_left : Iterable of float + Lower-left coordinates of bounding box used to sample points + upper_right : Iterable of float + Upper-right coordinates of bounding box used to sample points + results : dict + Dictionary whose keys are unique IDs of cells and values are + dictionaries with calculated volumes and total number of atoms for each + nuclide present in the cell. + volumes : dict + Dictionary whose keys are unique IDs of cells and values are the + estimated volumes + atoms_dataframe : pandas.DataFrame + DataFrame showing the estimated number of atoms for each nuclide present + in each cell specified. + + """ + def __init__(self, cells, samples, lower_left=None, + upper_right=None): + self._results = None + + cv.check_type('cells', cells, Iterable, Cell) + self.cell_ids = [c.id for c in cells] + self.samples = samples + + if lower_left is not None: + self.lower_left = lower_left + if upper_right is None: + raise ValueError('Both lower-left and upper-right coordinates ' + 'should be specified') + self.upper_right = upper_right + else: + ll, ur = Union(*[c.region for c in cells]).bounding_box + if np.any(np.isinf(ll)) or np.any(np.isinf(ur)): + raise ValueError('Could not automatically determine bounding box ' + 'for stochastic volume calculation.') + else: + self.lower_left = ll + self.upper_right = ur + + @property + def cell_ids(self): + return self._cell_ids + + @property + def samples(self): + return self._samples + + @property + def lower_left(self): + return self._lower_left + + @property + def upper_right(self): + return self._upper_right + + @property + def results(self): + return self._results + + @property + def volumes(self): + return {uid: results['volume'] for uid, results in self.results.items()} + + @property + def atoms_dataframe(self): + items = [] + columns = ['Cell', 'Nuclide', 'Atoms', 'Uncertainty'] + for cell_id, results in self.results.items(): + for name, atoms in results['atoms']: + items.append((cell_id, name, atoms[0], atoms[1])) + + return pd.DataFrame.from_records(items, columns=columns) + + @cell_ids.setter + def cell_ids(self, cell_ids): + cv.check_type('cell IDs', cell_ids, Iterable, Real) + self._cell_ids = cell_ids + + @samples.setter + def samples(self, samples): + cv.check_type('number of samples', samples, Integral) + cv.check_greater_than('number of samples', samples, 0) + self._samples = samples + + @lower_left.setter + def lower_left(self, lower_left): + name = 'lower-left bounding box coordinates', + cv.check_type(name, lower_left, Iterable, Real) + cv.check_length(name, lower_left, 3) + self._lower_left = lower_left + + @upper_right.setter + def upper_right(self, upper_right): + name = 'upper-right bounding box coordinates' + cv.check_type(name, upper_right, Iterable, Real) + cv.check_length(name, upper_right, 3) + self._upper_right = upper_right + + @results.setter + def results(self, results): + cv.check_type('results', results, Mapping) + self._results = results + + @classmethod + def from_hdf5(cls, filename): + """Load stochastic volume calculation results from HDF5 file. + + Parameters + ---------- + filename : str + Path to volume.h5 file + + Returns + ------- + openmc.VolumeCalculation + Results of the stochastic volume calculation + + """ + import h5py + + with h5py.File(filename, 'r') as f: + samples = f.attrs['samples'] + lower_left = f.attrs['lower_left'] + upper_right = f.attrs['upper_right'] + + results = {} + cell_ids = [] + for obj_name in f: + if obj_name.startswith('cell_'): + cell_id = int(obj_name[5:]) + cell_ids.append(cell_id) + group = f[obj_name] + volume = tuple(group['volume'].value) + nucnames = group['nuclides'].value + atoms = group['atoms'].value + + atom_list = [] + for name_i, atoms_i in zip(nucnames, atoms): + atom_list.append((name_i.decode(), tuple(atoms_i))) + results[cell_id] = {'volume': volume, 'atoms': atom_list} + + # Instantiate some throw-away cells that are used by the constructor to + # assign IDs + cells = [Cell(uid) for uid in cell_ids] + + # Instantiate the class and assign results + vol = cls(cells, samples, lower_left, upper_right) + vol.results = results + return vol + + def to_xml(self): + """Return XML representation of the volume calculation + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing volume calculation data + + """ + element = ET.Element("volume_calc") + cell_elem = ET.SubElement(element, "cells") + cell_elem.text = ' '.join(str(uid) for uid in self.cell_ids) + samples_elem = ET.SubElement(element, "samples") + samples_elem.text = str(self.samples) + ll_elem = ET.SubElement(element, "lower_left") + ll_elem.text = ' '.join(str(x) for x in self.lower_left) + ur_elem = ET.SubElement(element, "upper_right") + ur_elem.text = ' '.join(str(x) for x in self.upper_right) + return element diff --git a/src/relaxng/settings.rnc b/src/relaxng/settings.rnc index 46950c63fb..78a32171b9 100644 --- a/src/relaxng/settings.rnc +++ b/src/relaxng/settings.rnc @@ -142,6 +142,17 @@ element settings { element verbosity { xsd:positiveInteger }? & + element volume_calc { + (element cells { list { xsd:positiveInteger+ } } | + attribute cells { list { xsd:positiveInteger+ } }) & + (element samples { xsd:positiveInteger } | + attribute samples { xsd:positiveInteger }) & + (element lower_left { list { xsd:double+ } } | + attribute lower_left { list { xsd:double+ } }) & + (element upper_right { list { xsd:double+ } } | + attribute upper_right { list { xsd:double+ } }) + }+ & + element uniform_fs{ (element dimension { list { xsd:positiveInteger+ } } | attribute dimension { list { xsd:positiveInteger+ } }) & diff --git a/src/relaxng/settings.rng b/src/relaxng/settings.rng index 0b50f79699..64fe42239d 100644 --- a/src/relaxng/settings.rng +++ b/src/relaxng/settings.rng @@ -625,6 +625,68 @@
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 66d772da7997008832711db8ecfe8b58989a8ea2 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 28 Jul 2016 13:52:42 -0500 Subject: [PATCH 215/417] Refactor settings to use more CheckedLists. Rename all to_xml methods to_xml_element --- openmc/settings.py | 79 +++++++++++++++++------------------ openmc/source.py | 8 ++-- openmc/stats/multivariate.py | 74 ++++++++++++++++++++++++++------ openmc/stats/univariate.py | 81 ++++++++++++++++++++++++++++++++---- openmc/volume.py | 2 +- 5 files changed, 177 insertions(+), 67 deletions(-) diff --git a/openmc/settings.py b/openmc/settings.py index 918f97c7da..eb56381b07 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -155,7 +155,7 @@ class Settings(object): self._max_order = None # Source subelement - self._source = None + self._source = cv.CheckedList(Source, 'source distributions') self._confidence_intervals = None self._cross_sections = None @@ -216,12 +216,12 @@ class Settings(object): self._settings_file = ET.Element("settings") self._run_mode_subelement = None - self._source_element = None self._multipole_active = None - self._resonance_scattering = None - self._volume_calculations = cv.CheckedList(VolumeCalculation, - 'volume calculations') + self._resonance_scattering = cv.CheckedList( + ResonanceScattering, 'resonance scattering models') + self._volume_calculations = cv.CheckedList( + VolumeCalculation, 'volume calculations') @property def run_mode(self): @@ -502,11 +502,9 @@ class Settings(object): @source.setter def source(self, source): - if isinstance(source, Source): - self._source = [source,] - else: - cv.check_type('source distribution', source, Iterable, Source) - self._source = source + if not isinstance(source, MutableSequence): + source = [source] + self._source = cv.CheckedList(Source, 'source distributions', source) @output.setter def output(self, output): @@ -810,22 +808,17 @@ class Settings(object): @resonance_scattering.setter def resonance_scattering(self, res): - if isinstance(res, Iterable): - cv.check_type('resonance_scattering', res, Iterable, - ResonanceScattering) - self._resonance_scattering = res - else: - cv.check_type('resonance_scattering', res, ResonanceScattering) - self._resonance_scattering = [res] + if not isinstance(res, MutableSequence): + res = [res] + self._resonance_scattering = cv.CheckedList( + ResonanceScattering, 'resonance scattering models', res) @volume_calculations.setter def volume_calculations(self, vol_calcs): - name = 'stochastic volume calculations' if not isinstance(vol_calcs, MutableSequence): vol_calcs = [vol_calcs] - cv.check_type(name, vol_calcs, MutableSequence) - self._volume_calculations = cv.CheckedList(VolumeCalculation, - name, vol_calcs) + self._volume_calculations = cv.CheckedList( + VolumeCalculation, 'stochastic volume calculations', vol_calcs) def _create_run_mode_subelement(self): @@ -884,13 +877,12 @@ class Settings(object): element.text = str(self._max_order) def _create_source_subelement(self): - if self.source is not None: - for source in self.source: - self._settings_file.append(source.to_xml()) + for source in self.source: + self._settings_file.append(source.to_xml_element()) def _create_volume_calcs_subelement(self): for calc in self.volume_calculations: - self._settings_file.append(calc.to_xml()) + self._settings_file.append(calc.to_xml_element()) def _create_output_subelement(self): if self._output is not None: @@ -1121,18 +1113,15 @@ class Settings(object): "use_windowed_multipole") element.text = str(self._multipole_active) - def _create_resonance_scattering_element(self): - if self.resonance_scattering is None: - return - - element = ET.SubElement(self._settings_file, "resonance_scattering") - - for r in self.resonance_scattering: - if r.nuclide.name != r.nuclide_0K.name: - raise ValueError("The nuclide and nuclide_0K attributes of " - "a ResonantScattering object must have " - "identical names.") - r.create_xml_subelement(element) + def _create_resonance_scattering_subelement(self): + if len(self.resonance_scattering) > 0: + elem = ET.SubElement(self._settings_file, 'resonance_scattering') + for r in self.resonance_scattering: + if r.nuclide.name != r.nuclide_0K.name: + raise ValueError("The nuclide and nuclide_0K attributes of " + "a ResonantScattering object must have " + "identical names.") + elem.append(r.to_xml_element()) def export_to_xml(self): """Create a settings.xml file that can be used for a simulation. @@ -1144,7 +1133,6 @@ class Settings(object): self._source_subelement = None self._trigger_subelement = None self._run_mode_subelement = None - self._source_element = None self._create_run_mode_subelement() self._create_source_subelement() @@ -1172,7 +1160,7 @@ class Settings(object): self._create_ufs_subelement() self._create_dd_subelement() self._create_use_multipole_subelement() - self._create_resonance_scattering_element() + self._create_resonance_scattering_subelement() self._create_volume_calcs_subelement() # Clean the indentation in the file to be user-readable @@ -1261,8 +1249,16 @@ class ResonanceScattering(object): cv.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") + def to_xml_element(self): + """Return XML representation of the resonance scattering model + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing resonance scattering model + + """ + scatterer = ET.Element("scatterer") subelement = ET.SubElement(scatterer, 'nuclide') subelement.text = self.nuclide.name if self.method is not None: @@ -1278,3 +1274,4 @@ class ResonanceScattering(object): if self.E_max is not None: subelement = ET.SubElement(scatterer, 'E_max') subelement.text = str(self.E_max) + return scatterer diff --git a/openmc/source.py b/openmc/source.py index 7e8a68accf..ee32cd0f4b 100644 --- a/openmc/source.py +++ b/openmc/source.py @@ -103,7 +103,7 @@ class Source(object): cv.check_greater_than('source strength', strength, 0.0, True) self._strength = strength - def to_xml(self): + def to_xml_element(self): """Return XML representation of the source Returns @@ -117,9 +117,9 @@ class Source(object): if self.file is not None: element.set("file", self.file) if self.space is not None: - element.append(self.space.to_xml()) + element.append(self.space.to_xml_element()) if self.angle is not None: - element.append(self.angle.to_xml()) + element.append(self.angle.to_xml_element()) if self.energy is not None: - element.append(self.energy.to_xml('energy')) + element.append(self.energy.to_xml_element('energy')) return element diff --git a/openmc/stats/multivariate.py b/openmc/stats/multivariate.py index e4eadd7aa4..e49a94ee19 100644 --- a/openmc/stats/multivariate.py +++ b/openmc/stats/multivariate.py @@ -50,7 +50,7 @@ class UnitSphere(object): self._reference_uvw = uvw/np.linalg.norm(uvw) @abstractmethod - def to_xml(self): + def to_xml_element(self): return '' @@ -109,13 +109,21 @@ class PolarAzimuthal(UnitSphere): cv.check_type('azimuthal angle', phi, Univariate) self._phi = phi - def to_xml(self): + def to_xml_element(self): + """Return XML representation of the angular distribution + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing angular distribution data + + """ element = ET.Element('angle') element.set("type", "mu-phi") if self.reference_uvw is not None: element.set("reference_uvw", ' '.join(map(str, self.reference_uvw))) - element.append(self.mu.to_xml('mu')) - element.append(self.phi.to_xml('phi')) + element.append(self.mu.to_xml_element('mu')) + element.append(self.phi.to_xml_element('phi')) return element @@ -127,7 +135,15 @@ class Isotropic(UnitSphere): def __init__(self): super(Isotropic, self).__init__() - def to_xml(self): + def to_xml_element(self): + """Return XML representation of the isotropic distribution + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing isotropic distribution data + + """ element = ET.Element('angle') element.set("type", "isotropic") return element @@ -152,7 +168,15 @@ class Monodirectional(UnitSphere): def __init__(self, reference_uvw=[1., 0., 0.]): super(Monodirectional, self).__init__(reference_uvw) - def to_xml(self): + def to_xml_element(self): + """Return XML representation of the monodirectional distribution + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing monodirectional distribution data + + """ element = ET.Element('angle') element.set("type", "monodirectional") if self.reference_uvw is not None: @@ -174,7 +198,7 @@ class Spatial(object): pass @abstractmethod - def to_xml(self): + def to_xml_element(self): return '' @@ -238,12 +262,20 @@ class CartesianIndependent(Spatial): cv.check_type('z coordinate', z, Univariate) self._z = z - def to_xml(self): + def to_xml_element(self): + """Return XML representation of the spatial distribution + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing spatial distribution data + + """ element = ET.Element('space') element.set('type', 'cartesian') - element.append(self.x.to_xml('x')) - element.append(self.y.to_xml('y')) - element.append(self.z.to_xml('z')) + element.append(self.x.to_xml_element('x')) + element.append(self.y.to_xml_element('y')) + element.append(self.z.to_xml_element('z')) return element @@ -308,7 +340,15 @@ class Box(Spatial): cv.check_type('only fissionable', only_fissionable, bool) self._only_fissionable = only_fissionable - def to_xml(self): + def to_xml_element(self): + """Return XML representation of the box distribution + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing box distribution data + + """ element = ET.Element('space') if self.only_fissionable: element.set("type", "fission") @@ -352,7 +392,15 @@ class Point(Spatial): cv.check_length('coordinate', xyz, 3) self._xyz = xyz - def to_xml(self): + def to_xml_element(self): + """Return XML representation of the point distribution + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing point distribution location + + """ element = ET.Element('space') element.set("type", "point") params = ET.SubElement(element, "parameters") diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 24ab98895d..3fdd5e4a29 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -29,7 +29,7 @@ class Univariate(object): pass @abstractmethod - def to_xml(self, element_name): + def to_xml_element(self, element_name): return '' @abstractmethod @@ -92,7 +92,20 @@ class Discrete(Univariate): cv.check_greater_than('discrete probability', pk, 0.0, True) self._p = p - def to_xml(self, element_name): + def to_xml_element(self, element_name): + """Return XML representation of the discrete distribution + + Parameters + ---------- + element_name : str + XML element name + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing discrete distribution data + + """ element = ET.Element(element_name) element.set("type", "discrete") @@ -153,7 +166,20 @@ class Uniform(Univariate): t.c = [0., 1.] return t - def to_xml(self, element_name): + def to_xml_element(self, element_name): + """Return XML representation of the uniform distribution + + Parameters + ---------- + element_name : str + XML element name + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing uniform distribution data + + """ element = ET.Element(element_name) element.set("type", "uniform") element.set("parameters", '{} {}'.format(self.a, self.b)) @@ -196,7 +222,20 @@ class Maxwell(Univariate): cv.check_greater_than('Maxwell temperature', theta, 0.0) self._theta = theta - def to_xml(self, element_name): + def to_xml_element(self, element_name): + """Return XML representation of the Maxwellian distribution + + Parameters + ---------- + element_name : str + XML element name + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing Maxwellian distribution data + + """ element = ET.Element(element_name) element.set("type", "maxwell") element.set("parameters", str(self.theta)) @@ -254,7 +293,20 @@ class Watt(Univariate): cv.check_greater_than('Watt b', b, 0.0) self._b = b - def to_xml(self, element_name): + def to_xml_element(self, element_name): + """Return XML representation of the Watt distribution + + Parameters + ---------- + element_name : str + XML element name + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing Watt distribution data + + """ element = ET.Element(element_name) element.set("type", "watt") element.set("parameters", '{} {}'.format(self.a, self.b)) @@ -333,7 +385,20 @@ class Tabular(Univariate): cv.check_value('interpolation', interpolation, _INTERPOLATION_SCHEMES) self._interpolation = interpolation - def to_xml(self, element_name): + def to_xml_element(self, element_name): + """Return XML representation of the tabular distribution + + Parameters + ---------- + element_name : str + XML element name + + Returns + ------- + element : xml.etree.ElementTree.Element + XML element containing tabular distribution data + + """ element = ET.Element(element_name) element.set("type", "tabular") element.set("interpolation", self.interpolation) @@ -386,7 +451,7 @@ class Legendre(Univariate): self._legendre_polynomial = np.polynomial.legendre.Legendre( coefficients) - def to_xml(self, element_name): + def to_xml_element(self, element_name): raise NotImplementedError @@ -440,5 +505,5 @@ class Mixture(Univariate): Iterable, Univariate) self._distribution = distribution - def to_xml(self, element_name): + def to_xml_element(self, element_name): raise NotImplementedError diff --git a/openmc/volume.py b/openmc/volume.py index 511af62ed3..167971bdbd 100644 --- a/openmc/volume.py +++ b/openmc/volume.py @@ -183,7 +183,7 @@ class VolumeCalculation(object): vol.results = results return vol - def to_xml(self): + def to_xml_element(self): """Return XML representation of the volume calculation Returns From 08c9036bb69c781694f65ca6957f83cfe7387d20 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 1 Aug 2016 07:02:16 -0500 Subject: [PATCH 216/417] Ability to link volume calculation results in order to compute microscopic cross sections from mgxs --- openmc/cell.py | 60 +++++++++++++++++++++++++++++++++++++++--- openmc/geometry.py | 31 +++++++++------------- openmc/lattice.py | 17 ++++++------ openmc/material.py | 24 ++++++++++++++++- openmc/mgxs/library.py | 2 +- openmc/mgxs/mgxs.py | 41 +++++++++++++---------------- openmc/statepoint.py | 25 ++++++++++++++++-- openmc/summary.py | 11 ++++++++ openmc/universe.py | 31 ++++++++++++++++------ 9 files changed, 178 insertions(+), 64 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index 9055f10e59..23246a0f68 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -85,6 +85,10 @@ class Cell(object): Array of offsets used for distributed cell searches distribcell_index : int Index of this cell in distribcell arrays + volume_information : dict + Estimate of the volume and total number of atoms of each nuclide from a + stochastic volume calculation. This information is set with the + :meth:`Cell.add_volume_information` method. """ @@ -100,6 +104,7 @@ class Cell(object): self._translation = None self._offsets = None self._distribcell_index = None + self._volume_information = None def __contains__(self, point): if self.region is None: @@ -212,6 +217,10 @@ class Cell(object): def distribcell_index(self): return self._distribcell_index + @property + def volume_information(self): + return self._volume_information + @id.setter def id(self, cell_id): if cell_id is None: @@ -351,6 +360,22 @@ class Cell(object): else: self.region = Intersection(self.region, region) + def add_volume_information(self, volume_calc): + """Add volume information to a cell. + + Parameters + ---------- + volume_calc : openmc.VolumeCalculation + Results from a stochastic volume calculation + + """ + for cell_id in volume_calc.results: + if cell_id == self.id: + self._volume_information = volume_calc.results[cell_id] + break + else: + raise ValueError('No volume information found for this cell.') + def get_cell_instance(self, path, distribcell_index): # If the Cell is filled by a Material @@ -368,8 +393,19 @@ class Cell(object): return offset - def get_all_nuclides(self): - """Return all nuclides contained in the cell + def get_nuclides(self): + """Returns all nuclides in the cell + + Returns + ------- + nuclides : list + List of nuclide names + + """ + return self.fill.get_nuclides() if self.fill_type != 'void' else [] + + def get_nuclide_densities(self): + """Return all nuclides contained in the cell and their densities Returns ------- @@ -381,8 +417,24 @@ class Cell(object): nuclides = OrderedDict() - if self.fill_type != 'void': - nuclides.update(self.fill.get_all_nuclides()) + if self.fill_type == 'material': + nuclides.update(self.fill.get_nuclide_densities()) + elif self.fill_type == 'void': + pass + else: + if self.volume_information is not None: + volume = self.volume_information['volume'][0] + for full_name, atoms in self.volume_information['atoms']: + name, xs = full_name.split('.') + nuclide = openmc.Nuclide(name, xs) + density = 1.0e-24 * atoms[0]/volume # density in atoms/b-cm + nuclides[name] = (nuclide, density) + else: + raise RuntimeError( + 'Volume information is needed to calculate microscopic cross ' + 'sections for cell {}. This can be done by running a ' + 'stochastic volume calculation via the ' + 'openmc.VolumeCalculation object'.format(self.id)) return nuclides diff --git a/openmc/geometry.py b/openmc/geometry.py index 14fd48fb1e..8314a9049c 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -50,6 +50,19 @@ class Geometry(object): self._root_universe = root_universe + def add_volume_information(self, volume_calc): + """Add volume information to from a stochastic volume calculation. + + Parameters + ---------- + volume_calc : openmc.VolumeCalculation + Results from a stochastic volume calculation + + """ + for cell in self.get_all_cells(): + if cell.id in volume_calc.results: + cell.add_volume_information(volume_calc) + def export_to_xml(self): """Create a geometry.xml file that can be used for a simulation. @@ -166,24 +179,6 @@ class Geometry(object): universes.sort(key=lambda x: x.id) return universes - def get_all_nuclides(self): - """Return all nuclides assigned to a material in the geometry - - Returns - ------- - list of openmc.Nuclide - Nuclides in the geometry - - """ - - nuclides = OrderedDict() - materials = self.get_all_materials() - - for material in materials: - nuclides.update(material.get_all_nuclides()) - - return nuclides - def get_all_materials(self): """Return all materials assigned to a cell diff --git a/openmc/lattice.py b/openmc/lattice.py index 81144e4d81..b26aab4c67 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -144,25 +144,26 @@ class Lattice(object): return univs - def get_all_nuclides(self): - """Return all nuclides contained in the lattice + def get_nuclides(self): + """Returns all nuclides in the lattice Returns ------- - nuclides : collections.OrderedDict - Dictionary whose keys are nuclide names and values are 2-tuples of - (nuclide, density) + nuclides : list + List of nuclide names """ - nuclides = OrderedDict() + nuclides = [] # 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()) + for universe in unique_universes.values(): + for nuclide in universe.get_nuclides(): + if nuclide not in nuclides: + nuclides.append(nuclide) return nuclides diff --git a/openmc/material.py b/openmc/material.py index d7ffd04e94..5603d9d25c 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -492,9 +492,31 @@ class Material(object): for element, percent, percent_type in self._elements: element.scattering = 'iso-in-lab' - def get_all_nuclides(self): + def get_nuclides(self): """Returns all nuclides in the material + Returns + ------- + nuclides : list + List of nuclide names + + """ + + nuclides = [] + + for nuclide, density, density_type in self._nuclides: + nuclides.append(nuclide.name) + + for element, density, density_type in self._elements: + # Expand natural element into isotopes + for isotope, abundance in element.expand(): + nuclides.append(isotope.name) + + return nuclides + + def get_nuclide_densities(self): + """Returns all nuclides in the material and their densities + Returns ------- nuclides : dict diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 84571ce236..ee11d0ef64 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -1008,7 +1008,7 @@ class Library(object): # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): if self.by_nuclide: - nuclides = list(domain.get_all_nuclides().keys()) + nuclides = domain.get_nuclides() else: nuclides = ['total'] for nuclide in nuclides: diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e1c2e62217..7aa12d0418 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -288,9 +288,7 @@ class MGXS(object): # If this is a by-nuclide cross-section, add nuclides to Tally if self.by_nuclide and score != 'flux': - all_nuclides = self.get_all_nuclides() - for nuclide in all_nuclides: - self._tallies[key].nuclides.append(nuclide) + self._tallies[key].nuclides += self.get_nuclides() else: self._tallies[key].nuclides.append('total') @@ -329,14 +327,14 @@ class MGXS(object): @property def num_nuclides(self): if self.by_nuclide: - return len(self.get_all_nuclides()) + return len(self.get_nuclides()) else: return 1 @property def nuclides(self): if self.by_nuclide: - return self.get_all_nuclides() + return self.get_nuclides() else: return 'sum' @@ -503,7 +501,7 @@ class MGXS(object): mgxs.name = name return mgxs - def get_all_nuclides(self): + def get_nuclides(self): """Get all nuclides in the cross section's spatial domain. Returns @@ -528,8 +526,7 @@ class MGXS(object): # Otherwise, return all nuclides in the spatial domain else: - nuclides = self.domain.get_all_nuclides() - return list(nuclides.keys()) + return self.domain.get_nuclides() def get_nuclide_density(self, nuclide): """Get the atomic number density in units of atoms/b-cm for a nuclide @@ -556,7 +553,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.domain.get_nuclide_densities() if nuclide not in nuclides: msg = 'Unable to get density for nuclide "{0}" which is not in ' \ @@ -597,14 +594,14 @@ class MGXS(object): # Sum the atomic number densities for all nuclides if nuclides == 'sum': - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() densities = np.zeros(1, dtype=np.float) for nuclide in nuclides: densities[0] += self.get_nuclide_density(nuclide) # Tabulate the atomic number densities for all nuclides elif nuclides == 'all': - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() densities = np.zeros(self.num_nuclides, dtype=np.float) for i, nuclide in enumerate(nuclides): densities[i] += self.get_nuclide_density(nuclide) @@ -635,7 +632,7 @@ class MGXS(object): # If computing xs for each nuclide, replace CrossNuclides with originals if self.by_nuclide: self.xs_tally._nuclides = [] - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() for nuclide in nuclides: self.xs_tally.nuclides.append(openmc.Nuclide(nuclide)) @@ -796,7 +793,7 @@ class MGXS(object): # Construct a collection of the nuclides to retrieve from the xs tally if self.by_nuclide: if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: - query_nuclides = self.get_all_nuclides() + query_nuclides = self.get_nuclides() else: query_nuclides = nuclides else: @@ -1164,7 +1161,7 @@ class MGXS(object): # Construct a collection of the nuclides to report if self.by_nuclide: if nuclides == 'all': - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() elif nuclides == 'sum': nuclides = ['sum'] else: @@ -1302,7 +1299,7 @@ class MGXS(object): # Construct a collection of the nuclides to report if self.by_nuclide: if nuclides == 'all': - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() densities = np.zeros(len(nuclides), dtype=np.float) elif nuclides == 'sum': nuclides = ['sum'] @@ -1484,7 +1481,7 @@ class MGXS(object): if self.by_nuclide and nuclides == 'sum': # Use tally summation to sum across all nuclides - query_nuclides = self.get_all_nuclides() + query_nuclides = self.get_nuclides() xs_tally = self.xs_tally.summation(nuclides=query_nuclides) df = xs_tally.get_pandas_dataframe( distribcell_paths=distribcell_paths) @@ -1790,7 +1787,7 @@ class MatrixMGXS(MGXS): # Construct a collection of the nuclides to retrieve from the xs tally if self.by_nuclide: if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: - query_nuclides = self.get_all_nuclides() + query_nuclides = self.get_nuclides() else: query_nuclides = nuclides else: @@ -1937,7 +1934,7 @@ class MatrixMGXS(MGXS): # Construct a collection of the nuclides to report if self.by_nuclide: if nuclides == 'all': - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() if nuclides == 'sum': nuclides = ['sum'] else: @@ -3622,7 +3619,7 @@ class ScatterMatrixXS(MatrixMGXS): # Construct a collection of the nuclides to retrieve from the xs tally if self.by_nuclide: if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: - query_nuclides = self.get_all_nuclides() + query_nuclides = self.get_nuclides() else: query_nuclides = nuclides else: @@ -3789,7 +3786,7 @@ class ScatterMatrixXS(MatrixMGXS): # Construct a collection of the nuclides to report if self.by_nuclide: if nuclides == 'all': - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() if nuclides == 'sum': nuclides = ['sum'] else: @@ -4595,7 +4592,7 @@ class Chi(MGXS): nu_fission_out = self.tallies['nu-fission-out'] # Sum out all nuclides - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() nu_fission_in = nu_fission_in.summation(nuclides=nuclides) nu_fission_out = nu_fission_out.summation(nuclides=nuclides) @@ -4615,7 +4612,7 @@ class Chi(MGXS): # Get chi for all nuclides in the domain elif nuclides == 'all': - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, nuclides=nuclides, value=value) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 6337746650..58a79fa219 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -2,6 +2,7 @@ import sys import re import os import warnings +import glob import numpy as np @@ -22,8 +23,9 @@ class StatePoint(object): filename : str Path to file to load autolink : bool, optional - Whether to automatically link in metadata from a summary.h5 - file. Defaults to True. + Whether to automatically link in metadata from a summary.h5 file and + stochastic volume calculation results from volume_*.h5 files. Defaults + to True. Attributes ---------- @@ -143,6 +145,12 @@ class StatePoint(object): su = openmc.Summary(path_summary) self.link_with_summary(su) + path_volume = os.path.join(os.path.dirname(filename), 'volume_*.h5') + for path_i in glob.glob(path_volume): + if re.search(r'volume_\d+\.h5', path_i): + vol = openmc.VolumeCalculation.from_hdf5(path_i) + self.add_volume_information(vol) + def close(self): self._f.close() @@ -501,6 +509,19 @@ class StatePoint(object): for tally_id in self.tallies: self.tallies[tally_id].sparse = self.sparse + def add_volume_information(self, volume_calc): + """Add volume information to the geometry within the file + + Parameters + ---------- + volume_calc : openmc.VolumeCalculation + Results from a stochastic volume calculation + + """ + if self.summary is not None: + self.summary.add_volume_information(volume_calc) + + def get_tally(self, scores=[], filters=[], nuclides=[], name=None, id=None, estimator=None, exact_filters=False, exact_nuclides=False, exact_scores=False): diff --git a/openmc/summary.py b/openmc/summary.py index 8c626940e5..6fbace72ea 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -594,6 +594,17 @@ class Summary(object): # Add Tally to the global dictionary of all Tallies self.tallies[tally_id] = tally + def add_volume_information(self, volume_calc): + """Add volume information to the geometry within the summary file + + Parameters + ---------- + volume_calc : openmc.VolumeCalculation + Results from a stochastic volume calculation + + """ + self.openmc_geometry.add_volume_information(volume_calc) + def get_material_by_id(self, material_id): """Return a Material object given the material id diff --git a/openmc/universe.py b/openmc/universe.py index c8e7fcab1e..f2b8641699 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -349,7 +349,27 @@ class Universe(object): # Return the offset computed at all nested Universe levels return offset - def get_all_nuclides(self): + def get_nuclides(self): + """Returns all nuclides in the universe + + Returns + ------- + nuclides : list + List of nuclide names + + """ + + nuclides = [] + + # Append all Nuclides in each Cell in the Universe to the dictionary + for cell in self.cells.values(): + for nuclide in cell.get_nuclides(): + if nuclide not in nuclides: + nuclides.append(nuclide) + + return nuclides + + def get_nuclide_densities(self): """Return all nuclides contained in the universe Returns @@ -360,13 +380,8 @@ class Universe(object): """ - nuclides = OrderedDict() - - # Append all Nuclides in each Cell in the Universe to the dictionary - for cell in self._cells.values(): - nuclides.update(cell.get_all_nuclides()) - - return nuclides + raise NotImplementedError('Determining average nuclide densities over ' + 'an entire universe not yet supported.') def get_all_cells(self): """Return all cells that are contained within the universe From aaefad9e2ea99c8edec4874741c37c128fa9e0e9 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 1 Aug 2016 10:25:08 -0500 Subject: [PATCH 217/417] Add volume calculation test --- tests/test_volume_calc/inputs_true.dat | 1 + tests/test_volume_calc/results_true.dat | 13 ++++ tests/test_volume_calc/test_volume_calc.py | 82 ++++++++++++++++++++++ tests/testing_harness.py | 1 + 4 files changed, 97 insertions(+) create mode 100644 tests/test_volume_calc/inputs_true.dat create mode 100644 tests/test_volume_calc/results_true.dat create mode 100644 tests/test_volume_calc/test_volume_calc.py diff --git a/tests/test_volume_calc/inputs_true.dat b/tests/test_volume_calc/inputs_true.dat new file mode 100644 index 0000000000..2a3f25e6d0 --- /dev/null +++ b/tests/test_volume_calc/inputs_true.dat @@ -0,0 +1 @@ +b2de6ac20ca2ca38b00d61adae707d05519f6130eea25ab050220bac005cb6d23fa5812bf876307e92e90a8806f0b371500c5611ab23f80b7c073f118eb31649 \ No newline at end of file diff --git a/tests/test_volume_calc/results_true.dat b/tests/test_volume_calc/results_true.dat new file mode 100644 index 0000000000..e7a39a9312 --- /dev/null +++ b/tests/test_volume_calc/results_true.dat @@ -0,0 +1,13 @@ +k-combined: 4.165451e-02 3.582531e-04 +Cell 1: 31.4693 +/- 0.0721 cm^3 +Cell 2: 2.0933 +/- 0.0310 cm^3 +Cell 3: 2.0486 +/- 0.0307 cm^3 + Cell Nuclide Atoms Uncertainty +0 1 U235.71c 3.481769e+23 7.979991e+20 +1 1 Mo99.71c 3.481769e+22 7.979991e+19 +2 2 H1.71c 1.399770e+23 2.072914e+21 +3 2 O16.71c 6.998852e+22 1.036457e+21 +4 2 B10.71c 6.998852e+18 1.036457e+17 +5 3 H1.71c 1.369920e+23 2.051689e+21 +6 3 O16.71c 6.849599e+22 1.025844e+21 +7 3 B10.71c 6.849599e+18 1.025844e+17 diff --git a/tests/test_volume_calc/test_volume_calc.py b/tests/test_volume_calc/test_volume_calc.py new file mode 100644 index 0000000000..a6d779a25a --- /dev/null +++ b/tests/test_volume_calc/test_volume_calc.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python + +import os +import sys +sys.path.insert(0, os.pardir) +from testing_harness import PyAPITestHarness +import openmc + + +class VolumeTest(PyAPITestHarness): + def _build_inputs(self): + # Define materials + water = openmc.Material(1) + water.add_nuclide('H1', 2.0) + water.add_nuclide('O16', 1.0) + water.add_nuclide('B10', 0.0001) + water.add_s_alpha_beta('c_H_in_H2O', '71t') + water.set_density('g/cc', 1.0) + + fuel = openmc.Material(2) + fuel.add_nuclide('U235', 1.0) + fuel.add_nuclide('Mo99', 0.1) + fuel.set_density('g/cc', 4.5) + + materials = openmc.Materials((water, fuel)) + materials.default_xs = '71c' + materials.export_to_xml() + + cyl = openmc.ZCylinder(1, R=1.0, boundary_type='vacuum') + top_sphere = openmc.Sphere(2, z0=5., R=1., boundary_type='vacuum') + top_plane = openmc.ZPlane(3, z0=5.) + bottom_sphere = openmc.Sphere(4, z0=-5., R=1., boundary_type='vacuum') + bottom_plane = openmc.ZPlane(5, z0=-5.) + + # Define geometry + inside_cyl = openmc.Cell(1, fill=fuel, region=-cyl & -top_plane & +bottom_plane) + top_hemisphere = openmc.Cell(2, fill=water, region=-top_sphere & +top_plane) + bottom_hemisphere = openmc.Cell(3, fill=water, region=-bottom_sphere & -top_plane) + root = openmc.Universe(0, cells=(inside_cyl, top_hemisphere, bottom_hemisphere)) + + geometry = openmc.Geometry() + geometry.root_universe = root + geometry.export_to_xml() + + # Set up stochastic volume calculation + vol_calc = openmc.VolumeCalculation( + [inside_cyl, top_hemisphere, bottom_hemisphere], + 100000) + + # Define settings + settings = openmc.Settings() + settings.particles = 1000 + settings.batches = 4 + settings.inactive = 0 + settings.source = openmc.Source(space=openmc.stats.Box( + [-1., -1., -5.], [1., 1., 5.])) + settings.volume_calculations = vol_calc + settings.export_to_xml() + + def _get_results(self): + # Read the statepoint file. + statepoint = os.path.join(os.getcwd(), self._sp_name) + sp = openmc.StatePoint(statepoint) + + # Write out k-combined. + outstr = 'k-combined: {:12.6e} {:12.6e}\n'.format(*sp.k_combined) + + # Read volume calculation results + vol = openmc.VolumeCalculation.from_hdf5( + os.path.join(os.getcwd(), 'volume_1.h5')) + + # Write cell volumes and total # of atoms for each nuclide + for cell_id, results in sorted(vol.results.items()): + outstr += 'Cell {0}: {1[0]:.4f} +/- {1[1]:.4f} cm^3\n'.format( + cell_id, results['volume']) + outstr += str(vol.atoms_dataframe) + '\n' + + return outstr + +if __name__ == '__main__': + harness = VolumeTest('statepoint.4.h5') + harness.main() diff --git a/tests/testing_harness.py b/tests/testing_harness.py index d360184045..19a7ffb06c 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -137,6 +137,7 @@ class TestHarness(object): output.append(os.path.join(os.getcwd(), 'tallies.out')) output.append(os.path.join(os.getcwd(), 'results_test.dat')) output.append(os.path.join(os.getcwd(), 'summary.h5')) + output += glob.glob(os.path.join(os.getcwd(), 'volume_*.h5')) for f in output: if os.path.exists(f): os.remove(f) From 413a58a363ee8fbedeffa652f068f647f0fcb0dc Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 1 Aug 2016 11:15:48 -0500 Subject: [PATCH 218/417] Change a few mentions of ACE format cross sections and update manpage --- man/man1/openmc.1 | 16 +++++++++++++--- readme.rst | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/man/man1/openmc.1 b/man/man1/openmc.1 index e69360a7c1..7f18ab28a2 100644 --- a/man/man1/openmc.1 +++ b/man/man1/openmc.1 @@ -3,7 +3,7 @@ openmc \- Executes the OpenMC Monte Carlo code .SH DESCRIPTION This command is used to execute the OpenMC Monte Carlo code. It is assumed that -a set of XML input files has already been created and that ACE format cross +a set of XML input files has already been created and that HDF5 format cross sections are available. .SH SYNOPSIS \fBopenmc\fR [\fIoptions\fR] [\fIpath\fR] @@ -40,11 +40,21 @@ The behavior of .B openmc is affected by the following environment variables. .TP -.B CROSS_SECTIONS +.B OPENMC_CROSS_SECTIONS Indicates the default path to the cross_sections.xml summary file that is used -to locate ACE format cross section libraries if the user has not specified the +to locate HDF5 format cross section libraries if the user has not specified the tag in .I settings.xml\fP. +.TP +.B OPENMC_MG_CROSS_SECTIONS +Indicates the default path to the mgxs.xml file that contains multi-group cross +section libraries if the user has not specified the tag in +.I settings.xml\fP. +.TP +.B OPENMC_MULTIPOLE_LIBRARY +Indicates the default path to a directory containing windowed multipole data if +the user has not specified the tag in +.I settings.xml\fP. .SH LICENSE Copyright \(co 2011-2016 Massachusetts Institute of Technology. .PP diff --git a/readme.rst b/readme.rst index 03964d9436..90484ad494 100644 --- a/readme.rst +++ b/readme.rst @@ -7,7 +7,7 @@ OpenMC Monte Carlo Particle Transport Code The OpenMC project aims to provide a fully-featured Monte Carlo particle transport code based on modern methods. It is a constructive solid geometry, -continuous-energy transport code that uses ACE format cross sections. The +continuous-energy transport code that uses HDF5 format cross sections. The project started under the Computational Reactor Physics Group at MIT. Complete documentation on the usage of OpenMC is hosted on Read the Docs at From a324262bac6a35267810a1170aee33a9f195ca7f Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 1 Aug 2016 13:53:03 -0500 Subject: [PATCH 219/417] Fix unassigned energy in SCORE_PROMPT_NU_FISSION --- src/tally.F90 | 6 ++++++ tests/test_mgxs_library_mesh/results_true.dat | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index 94143184ae..2c77119173 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -482,6 +482,12 @@ contains score = micro_xs(i_nuclide) % fission * nuclides(i_nuclide) % & nu(E, EMISSION_PROMPT) * atom_density * flux else + ! make sure the correct energy is used + if (t % estimator == ESTIMATOR_TRACKLENGTH) then + E = p % E + else + E = p % last_E + end if score = ZERO diff --git a/tests/test_mgxs_library_mesh/results_true.dat b/tests/test_mgxs_library_mesh/results_true.dat index e3d7ca6473..03019cfd3d 100644 --- a/tests/test_mgxs_library_mesh/results_true.dat +++ b/tests/test_mgxs_library_mesh/results_true.dat @@ -126,7 +126,7 @@ 3 2 2 1 1 total 3.799163e-07 1.806470e-07 mesh 1 group in nuclide mean std. dev. x y z -0 1 1 1 1 total 0.025735 0.002840 -1 1 2 1 1 total 0.028773 0.006349 -2 2 1 1 1 total 0.022306 0.004010 -3 2 2 1 1 total 0.024549 0.009379 +0 1 1 1 1 total 0.025920 0.002893 +1 1 2 1 1 total 0.028922 0.006394 +2 2 1 1 1 total 0.022467 0.004039 +3 2 2 1 1 total 0.024923 0.009632 From af27542af509b250e2872d48bf2708d7210ecfd5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 1 Aug 2016 21:48:02 -0500 Subject: [PATCH 220/417] Fix a few docstrings --- openmc/cell.py | 2 +- openmc/geometry.py | 2 +- openmc/lattice.py | 2 +- openmc/material.py | 2 +- openmc/universe.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index 23246a0f68..c4a0952e91 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -398,7 +398,7 @@ class Cell(object): Returns ------- - nuclides : list + nuclides : list of str List of nuclide names """ diff --git a/openmc/geometry.py b/openmc/geometry.py index 8314a9049c..c827f4b2a7 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -51,7 +51,7 @@ class Geometry(object): self._root_universe = root_universe def add_volume_information(self, volume_calc): - """Add volume information to from a stochastic volume calculation. + """Add volume information from a stochastic volume calculation. Parameters ---------- diff --git a/openmc/lattice.py b/openmc/lattice.py index b26aab4c67..c6a5af4109 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -149,7 +149,7 @@ class Lattice(object): Returns ------- - nuclides : list + nuclides : list of str List of nuclide names """ diff --git a/openmc/material.py b/openmc/material.py index 5603d9d25c..aeebf385c6 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -497,7 +497,7 @@ class Material(object): Returns ------- - nuclides : list + nuclides : list of str List of nuclide names """ diff --git a/openmc/universe.py b/openmc/universe.py index f2b8641699..c8fb89a384 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -354,7 +354,7 @@ class Universe(object): Returns ------- - nuclides : list + nuclides : list of str List of nuclide names """ From 99adb712aba31bac85245940f09019470427a113 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 1 Aug 2016 21:51:31 -0500 Subject: [PATCH 221/417] gfortran 4.6 doesn't like firstprivate objects with allocatable components --- src/stl_vector.F90 | 15 +++++++++++++++ src/volume_calc.F90 | 12 ++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/stl_vector.F90 b/src/stl_vector.F90 index c7f2246ff8..06f487dc1e 100644 --- a/src/stl_vector.F90 +++ b/src/stl_vector.F90 @@ -114,6 +114,11 @@ contains ! Since integer is trivially destructible, we only need to set size to zero ! and can leave capacity as is this%size_ = 0 + if (allocated(this % data)) then + this%capacity_ = size(this % data) + else + this%capacity_ = 0 + end if end subroutine clear_int subroutine initialize_fill_int(this, n, val) @@ -249,6 +254,11 @@ contains ! Since real is trivially destructible, we only need to set size to zero and ! can leave capacity as is this%size_ = 0 + if (allocated(this % data)) then + this%capacity_ = size(this % data) + else + this%capacity_ = 0 + end if end subroutine clear_real subroutine initialize_fill_real(this, n, val) @@ -384,6 +394,11 @@ contains ! Since char is trivially destructible, we only need to set size to zero and ! can leave capacity as is this%size_ = 0 + if (allocated(this % data)) then + this%capacity_ = size(this % data) + else + this%capacity_ = 0 + end if end subroutine clear_char subroutine initialize_fill_char(this, n, val) diff --git a/src/volume_calc.F90 b/src/volume_calc.F90 index cb36f0b7f3..eac96f9ba7 100644 --- a/src/volume_calc.F90 +++ b/src/volume_calc.F90 @@ -140,8 +140,16 @@ contains call p % initialize() -!$omp parallel private(i, j, k, i_cell, i_material, level, found_cell) & -!$omp& firstprivate(p, indices, hits) +!$omp parallel private(i, j, k, i_cell, i_material, level, found_cell, & +!$omp& indices, hits) firstprivate(p) + + ! Reset vectors -- this is really to get around a gfortran 4.6 bug. Ideally, + ! indices and hits would just be firstprivate but 4.6 complains because they + ! have allocatable components... + do i_cell = 1, size(this % cell_id) + call indices(i_cell) % clear() + call hits(i_cell) % clear() + end do call prn_set_stream(STREAM_VOLUME) From 725ef2d9238293c0863297ba9e987ed666f932c6 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 1 Aug 2016 22:34:04 -0500 Subject: [PATCH 222/417] Add function to create compact MT=458 data library --- openmc/data/endf_utils.py | 2 + openmc/data/fission_energy.py | 255 ++++++++++++++++++++++++++-------- 2 files changed, 196 insertions(+), 61 deletions(-) diff --git a/openmc/data/endf_utils.py b/openmc/data/endf_utils.py index 6db3c611cf..bfd9ae5c85 100644 --- a/openmc/data/endf_utils.py +++ b/openmc/data/endf_utils.py @@ -24,6 +24,7 @@ def read_CONT_line(line): int(line[66:70]), int(line[70:72]), int(line[72:75]), int(line[75:80])) + def identify_nuclide(fname): """Read the header of an ENDF file and extract identifying information.""" with open(fname, 'r') as fh: @@ -39,5 +40,6 @@ def identify_nuclide(fname): # Return dictionary of the most important identifying information. return {'Z': int(ZA) // 1000, 'A': int(ZA) % 1000, + 'LFI': bool(LFI), 'LIS': LIS, 'LISO': LISO} diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index b7641a2370..ccea3d96a7 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -3,6 +3,7 @@ from copy import deepcopy import sys #from warnings import warn +import h5py import numpy as np from numpy.polynomial.polynomial import Polynomial @@ -14,6 +15,189 @@ if sys.version_info[0] >= 3: basestring = str +def _extract_458_data(filename): + """Read an ENDF file and extract the MF=1, MT=458 values. + + Parameters + ---------- + filename : str + Path to and ENDF file + + Returns + ------- + value : dict of str to list of float + Dictionary that gives lists of coefficients for each energy component. + The keys are the 2-3 letter strings used in ENDF-102, e.g. 'EFR' and + 'ET'. The list will have a length of 1 for Sher-Beck data, more for + polynomial data. + uncertainty : dict of str to list of float + A dictionary with the same format as above. This is probably a + one-standard deviation value, but that is not specified explicitly in + ENDF-102. Also, some evaluations will give zero uncertainty. Use with + caution. + + """ + ident = identify_nuclide(filename) + + if not ident['LFI']: + # This nuclide isn't fissionable. + return None + + # Extract the MF=1, MT=458 section. + lines = [] + with open(filename, 'r') as fh: + line = fh.readline() + while line != '': + if line[70:75] == ' 1458': + lines.append(line) + line = fh.readline() + + if len(lines) == 0: + # No 458 data here. + return None + + # Read the number of coefficients in this LIST record. + NPL = read_CONT_line(lines[1])[4] + + # Parse the ENDF LIST into an array. + data = [] + for i in range(NPL): + row, column = divmod(i, 6) + data.append(read_float(lines[2 + row][11*column:11*(column+1)])) + + # Declare the coefficient names and the order they are given in. The LIST + # contains a value followed immediately by an uncertainty for each of these + # components, times the polynomial order + 1. + labels = ('EFR', 'ENP', 'END', 'EGP', 'EGD', 'EB', 'ENU', 'ER', 'ET') + + # Associate each set of values and uncertainties with its label. + value = dict() + uncertainty = dict() + for i in range(len(labels)): + value[labels[i]] = data[2*i::18] + uncertainty[labels[i]] = data[2*i + 1::18] + + # In ENDF/B-7.1, data for 2nd-order coefficients were mistakenly not + # converted from MeV to eV. Check for this error and fix it if present. + n_coeffs = len(value['EFR']) + if n_coeffs == 3: # Only check 2nd-order data. + # Check each energy component for the error. If a 1 MeV neutron + # causes a change of more than 100 MeV, we know something is wrong. + error_present = False + for coeffs in value.values(): + second_order = coeffs[2] + if abs(second_order) * 1e12 > 1e8: + error_present = True + break + + # If we found the error, reduce all 2nd-order coeffs by 10**6. + if error_present: + for coeffs in value.values(): coeffs[2] *= 1e-6 + for coeffs in uncertainty.values(): coeffs[2] *= 1e-6 + + # Perform the sanity check again... just in case. + for coeffs in value.values(): + second_order = coeffs[2] + if abs(second_order) * 1e12 > 1e8: + raise ValueError("Encountered a ludicrously large second-" + "order polynomial coefficient.") + + # Convert eV to MeV. + for coeffs in value.values(): + for i in range(len(coeffs)): + coeffs[i] *= 10**(-6 + 6*i) + for coeffs in uncertainty.values(): + for i in range(len(coeffs)): + coeffs[i] *= 10**(-6 + 6*i) + + return value, uncertainty + + +def write_compact_458_library(endf_files, output_name=None, comment=None, + verbose=False): + """Read ENDF files, strip the MF=1 MT=458 data and write to small HDF5. + + Parameters + ---------- + endf_files : Collection of str + Strings giving the paths to the ENDF files that will be parsed for data. + output_name : str + Name of the output HDF5 file. Default is 'fission_Q_data.h5'. + comment : str + Comment to write in the output HDF5 file. Defaults to no comment. + verbose : bool + If True, print the name of each isomer as it is read. Defaults to + False. + + """ + # Open the output file. + if output_name is None: output_name = 'fission_Q_data.h5' + out = h5py.File(output_name, 'w', libver='latest') + + # Write comments, if given. This commented out comment is the one used for + # the library distributed with OpenMC. + #comment = ('This data is extracted from ENDF/B-VII.1 library. Thanks ' + # 'evaluators, for all your hard work :) Citation: ' + # 'M. B. Chadwick, M. Herman, P. Oblozinsky, ' + # 'M. E. Dunn, Y. Danon, A. C. Kahler, D. L. Smith, ' + # 'B. Pritychenko, G. Arbanas, R. Arcilla, R. Brewer, ' + # 'D. A. Brown, R. Capote, A. D. Carlson, Y. S. Cho, H. Derrien, ' + # 'K. Guber, G. M. Hale, S. Hoblit, S. Holloway, T. D. Johnson, ' + # 'T. Kawano, B. C. Kiedrowski, H. Kim, S. Kunieda, ' + # 'N. M. Larson, L. Leal, J. P. Lestone, R. C. Little, ' + # 'E. A. McCutchan, R. E. MacFarlane, M. MacInnes, ' + # 'C. M. Mattoon, R. D. McKnight, S. F. Mughabghab, ' + # 'G. P. A. Nobre, G. Palmiotti, A. Palumbo, M. T. Pigni, ' + # 'V. G. Pronyaev, R. O. Sayer, A. A. Sonzogni, N. C. Summers, ' + # 'P. Talou, I. J. Thompson, A. Trkov, R. L. Vogt, ' + # 'S. C. van der Marck, A. Wallner, M. C. White, D. Wiarda, ' + # 'and P. G. Young. ENDF/B-VII.1 nuclear data for science and ' + # 'technology: Cross sections, covariances, fission product ' + # 'yields and decay data", Nuclear Data Sheets, ' + # '112(12):2887-2996 (2011).') + if comment is not None: + out.attrs['comment'] = np.string_(comment) + + # Declare the order of the components. Use fixed-length numpy strings + # because they work well with h5py. + labels = np.array(('EFR', 'ENP', 'END', 'EGP', 'EGD', 'EB', 'ENU', 'ER', + 'ET'), dtype='S3') + out.attrs['component order'] = labels + + # Iterate over the given files. + if verbose: print('Reading ENDF files:') + for fname in endf_files: + if verbose: print(fname) + + ident = identify_nuclide(fname) + + # Skip non-fissionable nuclides. + if not ident['LFI']: continue + + # Get the important bits. + data = _extract_458_data(fname) + if data is None: continue + value, uncertainty = data + + # Make a group for this isomer. + name = str(ident['Z']) + str(ident['A']) + if ident['LISO'] != 0: + name += '_m' + str(ident['LISO']) + nuclide_group = out.create_group(name) + + # Write all the coefficients into one array. The first dimension gives + # the component (e.g. fragments or prompt neutrons); the second switches + # between value and uncertainty; the third gives the polynomial order. + n_coeffs = len(value['EFR']) + data_out = np.zeros((len(labels), 2, n_coeffs)) + for i, label in enumerate(labels): + data_out[i, 0, :] = value[label.decode()] + data_out[i, 1, :] = uncertainty[label.decode()] + nuclide_group.create_dataset('data', data=data_out) + + out.close() + + class FissionEnergyRelease(object): def __init__(self): self._fragments = None @@ -148,72 +332,21 @@ class FissionEnergyRelease(object): pass if ident['LISO'] != incident_neutron.metastable: pass + if not ident['LIF']: + pass - # Extract the MF=1, MT=458 section. - lines = [] - with open(filename, 'r') as fh: - line = fh.readline() - while line != '': - if line[70:75] == ' 1458': - lines.append(line) - line = fh.readline() + # Read the 458 data from the ENDF file. + value, uncertainty = _extract_458_data(filename) - # Read the number of coefficients in this LIST record. - NPL = read_CONT_line(lines[1])[4] - - # Parse the ENDF LIST into an array. - data = [] - for i in range(NPL): - row, column = divmod(i, 6) - data.append(read_float(lines[2 + row][11*column:11*(column+1)])) - - # Declare the coefficient names and the order they are given in. The - # LIST contains a value followed immediately by an uncertainty for each - # of these components, times the polynomial order + 1. If we only find - # one value for each of these components, then we need to use the - # Sher-Beck formula for energy dependence. Otherwise, it is a - # polynomial. + # Declare the coefficient names. If we only find one value for each of + # these components, then we need to use the Sher-Beck formula for energy + # dependence. Otherwise, it is a polynomial. labels = ('EFR', 'ENP', 'END', 'EGP', 'EGD', 'EB', 'ENU', 'ER', 'ET') - # Associate each set of values and uncertainties with its label. - value = dict() - uncertainty = dict() - for i in range(len(labels)): - value[labels[i]] = data[2*i::18] - uncertainty[labels[i]] = data[2*i + 1::18] - - # In ENDF/B-7.1, data for 2nd-order coefficients were mistakenly not - # converted from MeV to eV. Check for this error and fix it if present. + # How many coefficients are given for each coefficient? If we only find + # one value for each, then we need to use the Sher-Beck formula for + # energy dependence. Otherwise, it is a polynomial. n_coeffs = len(value['EFR']) - if n_coeffs == 3: # Only check 2nd-order data. - # Check each energy component for the error. If a 1 MeV neutron - # causes a change of more than 100 MeV, we know something is wrong. - error_present = False - for coeffs in value.values(): - second_order = coeffs[2] - if abs(second_order) * 1e12 > 1e8: - error_present = True - break - - # If we found the error, reduce all 2nd-order coeffs by 10**6. - if error_present: - for coeffs in value.values(): coeffs[2] *= 1e-6 - for coeffs in uncertainty.values(): coeffs[2] *= 1e-6 - - # Perform the sanity check again... just in case. - for coeffs in value.values(): - second_order = coeffs[2] - if abs(second_order) * 1e12 > 1e8: - raise ValueError("Encountered a ludicrously large second-" - "order polynomial coefficient.") - - # Convert eV to MeV. - for coeffs in value.values(): - for i in range(len(coeffs)): - coeffs[i] *= 10**(-6 + 6*i) - for coeffs in uncertainty.values(): - for i in range(len(coeffs)): - coeffs[i] *= 10**(-6 + 6*i) out = cls() if n_coeffs > 1: From 5074c9831f440a14c81cd84607a132abd24be3d0 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 2 Aug 2016 03:05:16 -0400 Subject: [PATCH 223/417] reworked surface current tally indexing and fixed issue in Python API current tallies --- openmc/filter.py | 12 ++++++ openmc/statepoint.py | 2 +- src/cmfd_data.F90 | 91 ++++++++++++++++++++++++++++-------------- src/cmfd_input.F90 | 6 +-- src/constants.F90 | 12 +++--- src/input_xml.F90 | 20 +++------- src/mesh.F90 | 15 ++----- src/output.F90 | 60 +++++----------------------- src/tally.F90 | 90 +++++++++++++++++++++--------------------- src/trigger.F90 | 94 +++----------------------------------------- 10 files changed, 151 insertions(+), 251 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index d6ee70f148..9e05cff63c 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -772,6 +772,18 @@ class Filter(object): df.loc[:, self.type + ' low'] = lo_bins df.loc[:, self.type + ' high'] = hi_bins + elif self.type == 'surface': + filter_bins = np.repeat(self.bins, self.stride) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_bins = [x if x != 1 else 'x-min' for x in filter_bins] + filter_bins = [x if x != 2 else 'x-max' for x in filter_bins] + filter_bins = [x if x != 3 else 'y-min' for x in filter_bins] + filter_bins = [x if x != 4 else 'y-max' for x in filter_bins] + filter_bins = [x if x != 5 else 'z-min' for x in filter_bins] + filter_bins = [x if x != 6 else 'z-max' for x in filter_bins] + df = pd.concat([df, pd.DataFrame({self.type : filter_bins})]) + # universe, material, surface, cell, and cellborn filters else: filter_bins = np.repeat(self.bins, self.stride) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 6337746650..10d91d1940 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -681,7 +681,7 @@ class StatePoint(object): if tally_filter.type == 'surface': surface_ids = [] for bin in tally_filter.bins: - surface_ids.append(summary.surfaces[bin].id) + surface_ids.append(bin) tally_filter.bins = surface_ids if tally_filter.type in ['cell', 'distribcell']: diff --git a/src/cmfd_data.F90 b/src/cmfd_data.F90 index 347351e318..c07569ae5d 100644 --- a/src/cmfd_data.F90 +++ b/src/cmfd_data.F90 @@ -50,9 +50,9 @@ 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 + FILTER_SURFACE, OUT_LEFT, OUT_RIGHT, OUT_BACK, & + OUT_FRONT, OUT_BOTTOM, 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 @@ -227,60 +227,91 @@ contains ! Left surface matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i-1, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_RIGHT + (/ i, j, k /)) + matching_bins(i_filter_surf) = OUT_LEFT score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing cmfd % current(1,h,i,j,k) = t % results(1,score_index) % sum - matching_bins(i_filter_surf) = OUT_RIGHT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming - cmfd % current(2,h,i,j,k) = t % results(1,score_index) % sum + + if (i > 1) then + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & + (/ i-1, j, k /)) + matching_bins(i_filter_surf) = OUT_RIGHT + score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + cmfd % current(2,h,i,j,k) = t % results(1,score_index) % sum + end if ! Right surface + if (i < nx) then + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & + (/ i+1, j, k /) ) + matching_bins(i_filter_surf) = OUT_LEFT + score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + cmfd % current(3,h,i,j,k) = t % results(1,score_index) % sum + end if + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_RIGHT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming - cmfd % current(3,h,i,j,k) = t % results(1,score_index) % sum + (/ i, j, k /) ) matching_bins(i_filter_surf) = OUT_RIGHT score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing cmfd % current(4,h,i,j,k) = t % results(1,score_index) % sum ! Back surface + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j-1, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_FRONT + (/ i, j, k /)) + matching_bins(i_filter_surf) = OUT_BACK score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing cmfd % current(5,h,i,j,k) = t % results(1,score_index) % sum - matching_bins(i_filter_surf) = OUT_FRONT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming - cmfd % current(6,h,i,j,k) = t % results(1,score_index) % sum + + if (j > 1) then + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & + (/ i, j-1, k /)) + matching_bins(i_filter_surf) = OUT_FRONT + score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + cmfd % current(6,h,i,j,k) = t % results(1,score_index) % sum + end if ! Front surface + if (j < ny) then + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & + (/ i, j+1, k /)) + matching_bins(i_filter_surf) = OUT_BACK + score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + cmfd % current(7,h,i,j,k) = t % results(1,score_index) % sum + end if + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_FRONT - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming - cmfd % current(7,h,i,j,k) = t % results(1,score_index) % sum + (/ i, j, k /)) matching_bins(i_filter_surf) = OUT_FRONT score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing cmfd % current(8,h,i,j,k) = t % results(1,score_index) % sum ! Bottom surface matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k-1 /) + 1, .true.) - matching_bins(i_filter_surf) = IN_TOP + (/ i, j, k /)) + matching_bins(i_filter_surf) = OUT_BOTTOM score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing cmfd % current(9,h,i,j,k) = t % results(1,score_index) % sum - matching_bins(i_filter_surf) = OUT_TOP - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming - cmfd % current(10,h,i,j,k) = t % results(1,score_index) % sum + + if (k > 1) then + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & + (/ i, j, k-1 /)) + matching_bins(i_filter_surf) = OUT_TOP + score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + cmfd % current(10,h,i,j,k) = t % results(1,score_index) % sum + end if ! Top surface + if (k < nz) then + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & + (/ i, j, k+1 /)) + matching_bins(i_filter_surf) = OUT_BOTTOM + score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming + cmfd % current(11,h,i,j,k) = t % results(1,score_index) % sum + end if + matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_TOP - score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! incoming - cmfd % current(11,h,i,j,k) = t % results(1,score_index) % sum + (/ i, j, k /)) matching_bins(i_filter_surf) = OUT_TOP score_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 ! outgoing cmfd % current(12,h,i,j,k) = t % results(1,score_index) % sum diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index f69c09fe1c..e63a1fceab 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -526,11 +526,11 @@ contains filters(n_filters) % n_bins = 2 * m % n_dimension allocate(filters(n_filters) % int_bins(2 * m % n_dimension)) if (m % n_dimension == 2) then - filters(n_filters) % int_bins = (/ IN_RIGHT, OUT_RIGHT, IN_FRONT, & + filters(n_filters) % int_bins = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, & OUT_FRONT /) elseif (m % n_dimension == 3) then - filters(n_filters) % int_bins = (/ IN_RIGHT, OUT_RIGHT, IN_FRONT, & - OUT_FRONT, IN_TOP, OUT_TOP /) + filters(n_filters) % int_bins = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, & + OUT_FRONT, OUT_BOTTOM, OUT_TOP /) end if t % find_filter(FILTER_SURFACE) = n_filters diff --git a/src/constants.F90 b/src/constants.F90 index a22c9ac050..ebb8322e9e 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -356,12 +356,12 @@ module constants ! Tally surface current directions integer, parameter :: & - IN_RIGHT = 1, & - OUT_RIGHT = 2, & - IN_FRONT = 3, & - OUT_FRONT = 4, & - IN_TOP = 5, & - OUT_TOP = 6 + OUT_LEFT = 1, & ! x min + OUT_RIGHT = 2, & ! x max + OUT_BACK = 3, & ! y min + OUT_FRONT = 4, & ! y max + OUT_BOTTOM = 5, & ! z min + OUT_TOP = 6 ! z max ! Tally trigger types and threshold integer, parameter :: & diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 3e5a687124..b94c41a65f 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3029,9 +3029,7 @@ contains // " specified on tally " // trim(to_str(t % id))) end if - ! Determine number of bins -- this is assuming that the tally is - ! a volume tally and not a surface current tally. If it is a - ! surface current tally, the number of bins will get reset later + ! Determine number of bins t % filters(j) % n_bins = product(m % dimension) ! Allocate and store index of mesh @@ -3646,10 +3644,6 @@ contains &same tally as surface currents") end if - ! Since the number of bins for the mesh filter was already set - ! assuming it was a volume tally, we need to adjust the number - ! of bins - ! Get index of mesh filter k = t % find_filter(FILTER_MESH) @@ -3663,10 +3657,6 @@ contains i_mesh = t % filters(k) % int_bins(1) m => meshes(i_mesh) - ! We need to increase the dimension by one since we also need - ! currents coming into and out of the boundary mesh cells. - t % filters(k) % n_bins = product(m % dimension + 1) - ! Copy filters to temporary array allocate(filters(t % n_filters + 1)) filters(1:t % n_filters) = t % filters @@ -3682,11 +3672,11 @@ contains allocate(t % filters(t % n_filters) % int_bins(& 2 * m % n_dimension)) if (m % n_dimension == 2) then - t % filters(t % n_filters) % int_bins = (/ IN_RIGHT, & - OUT_RIGHT, IN_FRONT, OUT_FRONT /) + t % filters(t % n_filters) % int_bins = (/ OUT_LEFT, & + OUT_RIGHT, OUT_BACK, OUT_FRONT /) elseif (m % n_dimension == 3) then - t % filters(t % n_filters) % int_bins = (/ IN_RIGHT, & - OUT_RIGHT, IN_FRONT, OUT_FRONT, IN_TOP, OUT_TOP /) + t % filters(t % n_filters) % int_bins = (/ OUT_LEFT, & + OUT_RIGHT, OUT_BACK, OUT_FRONT, OUT_BOTTOM, OUT_TOP /) end if t % find_filter(FILTER_SURFACE) = t % n_filters diff --git a/src/mesh.F90 b/src/mesh.F90 index 4ec84345ba..0543eaa9f3 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -93,29 +93,20 @@ contains ! use in a TallyObject results array !=============================================================================== - pure function mesh_indices_to_bin(m, ijk, surface_current) result(bin) + pure function mesh_indices_to_bin(m, ijk) result(bin) type(RegularMesh), intent(in) :: m integer, intent(in) :: ijk(:) - logical, intent(in), optional :: surface_current integer :: bin integer :: n_y ! number of mesh cells in y direction integer :: n_z ! number of mesh cells in z direction - if (present(surface_current)) then - n_y = m % dimension(2) + 1 - else - n_y = m % dimension(2) - end if + n_y = m % dimension(2) if (m % n_dimension == 2) then bin = (ijk(1) - 1)*n_y + ijk(2) elseif (m % n_dimension == 3) then - if (present(surface_current)) then - n_z = m % dimension(3) + 1 - else - n_z = m % dimension(3) - end if + n_z = m % dimension(3) bin = (ijk(1) - 1)*n_y*n_z + (ijk(2) - 1)*n_z + ijk(3) end if diff --git a/src/output.F90 b/src/output.F90 index 22733a3051..efe75ad8ba 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -1047,31 +1047,17 @@ contains ! Left Surface matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i-1, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_RIGHT + mesh_indices_to_bin(m, (/ i, j, k /)) + matching_bins(i_filter_surf) = OUT_LEFT filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Outgoing Current to Left", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_surf) = OUT_RIGHT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Left", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - ! Right Surface matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_RIGHT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Right", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - + mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = OUT_RIGHT filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & @@ -1081,31 +1067,17 @@ contains ! Back Surface matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j-1, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_FRONT + mesh_indices_to_bin(m, (/ i, j, k /)) + matching_bins(i_filter_surf) = OUT_BACK filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Outgoing Current to Back", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_surf) = OUT_FRONT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Back", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - ! Front Surface matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_FRONT - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Front", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - + mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = OUT_FRONT filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & @@ -1115,31 +1087,17 @@ contains ! Bottom Surface matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k-1 /) + 1, .true.) - matching_bins(i_filter_surf) = IN_TOP + mesh_indices_to_bin(m, (/ i, j, k /)) + matching_bins(i_filter_surf) = OUT_BOTTOM filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & "Outgoing Current to Bottom", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_surf) = OUT_TOP - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Bottom", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - ! Top Surface matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_TOP - filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current from Top", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - + mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = OUT_TOP filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & diff --git a/src/tally.F90 b/src/tally.F90 index 94143184ae..5f92682162 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2819,10 +2819,10 @@ contains if (uvw(3) > 0) then do j = ijk0(3), ijk1(3) - 1 ijk0(3) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then matching_bins(i_filter_surf) = OUT_TOP matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) + mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & @@ -2830,12 +2830,12 @@ contains end if end do else - do j = ijk0(3) - 1, ijk1(3), -1 + do j = ijk0(3), ijk1(3) + 1, -1 ijk0(3) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_TOP + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_BOTTOM matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) + mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & @@ -2849,10 +2849,10 @@ contains if (uvw(2) > 0) then do j = ijk0(2), ijk1(2) - 1 ijk0(2) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then matching_bins(i_filter_surf) = OUT_FRONT matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) + mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & @@ -2860,12 +2860,12 @@ contains end if end do else - do j = ijk0(2) - 1, ijk1(2), -1 + do j = ijk0(2), ijk1(2) + 1, -1 ijk0(2) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_FRONT + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_BACK matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) + mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & @@ -2879,10 +2879,10 @@ contains if (uvw(1) > 0) then do j = ijk0(1), ijk1(1) - 1 ijk0(1) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then matching_bins(i_filter_surf) = OUT_RIGHT matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) + mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & @@ -2890,12 +2890,12 @@ contains end if end do else - do j = ijk0(1) - 1, ijk1(1), -1 + do j = ijk0(1), ijk1(1) + 1, -1 ijk0(1) = j - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_RIGHT + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_LEFT matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) + mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & @@ -2946,67 +2946,67 @@ contains if (uvw(1) > 0) then ! Crossing into right mesh cell -- this is treated as outgoing ! current from (i,j,k) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then matching_bins(i_filter_surf) = OUT_RIGHT matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) + mesh_indices_to_bin(m, ijk0) end if ijk0(1) = ijk0(1) + 1 xyz_cross(1) = xyz_cross(1) + m % width(1) else - ! Crossing into left mesh cell -- this is treated as incoming - ! current in (i-1,j,k) + ! Crossing into left mesh cell -- this is treated as outgoing + ! current in (i,j,k) + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_LEFT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + end if ijk0(1) = ijk0(1) - 1 xyz_cross(1) = xyz_cross(1) - m % width(1) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_RIGHT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - end if end if elseif (distance == d(2)) then if (uvw(2) > 0) then ! Crossing into front mesh cell -- this is treated as outgoing ! current in (i,j,k) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then matching_bins(i_filter_surf) = OUT_FRONT matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) + mesh_indices_to_bin(m, ijk0) end if ijk0(2) = ijk0(2) + 1 xyz_cross(2) = xyz_cross(2) + m % width(2) else - ! Crossing into back mesh cell -- this is treated as incoming - ! current in (i,j-1,k) + ! Crossing into back mesh cell -- this is treated as outgoing + ! current in (i,j,k) + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_BACK + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + end if ijk0(2) = ijk0(2) - 1 xyz_cross(2) = xyz_cross(2) - m % width(2) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_FRONT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - end if end if else if (distance == d(3)) then if (uvw(3) > 0) then ! Crossing into top mesh cell -- this is treated as outgoing ! current in (i,j,k) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then matching_bins(i_filter_surf) = OUT_TOP matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) + mesh_indices_to_bin(m, ijk0) end if ijk0(3) = ijk0(3) + 1 xyz_cross(3) = xyz_cross(3) + m % width(3) else - ! Crossing into bottom mesh cell -- this is treated as incoming - ! current in (i,j,k-1) + ! Crossing into bottom mesh cell -- this is treated as outgoing + ! current in (i,j,k) + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = OUT_BOTTOM + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + end if ijk0(3) = ijk0(3) - 1 xyz_cross(3) = xyz_cross(3) - m % width(3) - if (all(ijk0 >= 0) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = IN_TOP - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0 + 1, .true.) - end if end if end if diff --git a/src/trigger.F90 b/src/trigger.F90 index ed362154b4..7d488acb79 100644 --- a/src/trigger.F90 +++ b/src/trigger.F90 @@ -324,10 +324,11 @@ contains matching_bins(i_filter_ein) = l end if - ! Left Surface matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i-1, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_RIGHT + mesh_indices_to_bin(m, (/ i, j, k /) + 1) + + ! Left Surface + matching_bins(i_filter_surf) = OUT_LEFT filter_index = & sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -339,33 +340,7 @@ contains end if trigger % variance = std_dev**2 - matching_bins(i_filter_surf) = OUT_RIGHT - filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 - ! Right Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_RIGHT - filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 - matching_bins(i_filter_surf) = OUT_RIGHT filter_index = & sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 @@ -379,22 +354,7 @@ contains trigger % variance = trigger % std_dev**2 ! Back Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j-1, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_FRONT - filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 - - - matching_bins(i_filter_surf) = OUT_FRONT + matching_bins(i_filter_surf) = OUT_BACK filter_index = & sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -407,20 +367,6 @@ contains trigger % variance = trigger % std_dev**2 ! Front Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_FRONT - filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 - matching_bins(i_filter_surf) = OUT_FRONT filter_index = & sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 @@ -434,21 +380,7 @@ contains trigger % variance = trigger % std_dev**2 ! Bottom Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k-1 /) + 1, .true.) - matching_bins(i_filter_surf) = IN_TOP - filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 - - matching_bins(i_filter_surf) = OUT_TOP + matching_bins(i_filter_surf) = OUT_BOTTOM filter_index = & sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -461,20 +393,6 @@ contains trigger % variance = trigger % std_dev**2 ! Top Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /) + 1, .true.) - matching_bins(i_filter_surf) = IN_TOP - filter_index = & - sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 - matching_bins(i_filter_surf) = OUT_TOP filter_index = & sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1 From 1f1dab1733113d32b21d45ee7f00d52e952ce48d Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 2 Aug 2016 08:15:45 -0400 Subject: [PATCH 224/417] removed kinetics module --- openmc/kinetics/__init__.py | 2 - openmc/kinetics/clock.py | 117 ------- openmc/kinetics/solver.py | 638 ------------------------------------ 3 files changed, 757 deletions(-) delete mode 100644 openmc/kinetics/__init__.py delete mode 100644 openmc/kinetics/clock.py delete mode 100644 openmc/kinetics/solver.py diff --git a/openmc/kinetics/__init__.py b/openmc/kinetics/__init__.py deleted file mode 100644 index 0ccd7e882f..0000000000 --- a/openmc/kinetics/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from openmc.kinetics.clock import * -from openmc.kinetics.solver import * diff --git a/openmc/kinetics/clock.py b/openmc/kinetics/clock.py deleted file mode 100644 index 9df266e1d7..0000000000 --- a/openmc/kinetics/clock.py +++ /dev/null @@ -1,117 +0,0 @@ - -import copy -import numpy as np - -TIME_POINTS = ['START', - 'PREVIOUS_OUT', - 'PREVIOUS_IN', - 'CURRENT', - 'FORWARD_IN', - 'FORWARD_OUT', - 'END'] - -class Clock(object): - - def __init__(self, start=0., end=3., dt_outer=1.e-1, dt_inner=1.e-2): - - # Initialize coordinates - self.dt_outer = dt_outer - self.dt_inner = dt_inner - - # Create a dictionary of clock times - self._times = {} - for t in TIME_POINTS: - self._times[t] = start - - # Reset the end time - self._times['END'] = end - - - def __deepcopy__(self, memo): - - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy this object, create a copy - if existing is None: - - clone = type(self).__new__(type(self)) - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - - def __repr__(self): - - string = 'Clock\n' - string += '{0: <24}{1}{2}\n'.format('\tdt inner', '=\t', self.dt_inner) - string += '{0: <24}{1}{2}\n'.format('\tdt outer', '=\t', self.dt_outer) - - for t in TIME_POINTS: - string += '{0: <24}{1}{2}\n'.format('\tTime ' + t, '=\t', self.times[t]) - - return string - - @property - def dt_inner(self): - return self._dt_inner - - @property - def dt_outer(self): - return self._dt_outer - - @property - def times(self): - return self._times - - @dt_inner.setter - def dt_inner(self, dt_inner): - self._dt_inner = np.float64(dt_inner) - - @dt_outer.setter - def dt_outer(self, dt_outer): - self._dt_outer = np.float64(dt_outer) - - @times.setter - def times(self, times): - self._times = np.float64(times) - - def take_outer_step(self): - """Take an outer time step and reset all the inner time step values - to the starting point for the outer time step. - - """ - - self.times['PREVIOUS_OUT'] = self.times['FORWARD_OUT'] - self.times['PREVIOUS_IN'] = self.times['FORWARD_OUT'] - self.times['FORWARD_IN'] = self.times['FORWARD_OUT'] - self.times['CURRENT'] = self.times['FORWARD_OUT'] - - if (self.times['END'] > self.times['FORWARD_OUT'] + self.dt_outer): - self.times['FORWARD_OUT'] = self.times['END'] - else: - self.times['FORWARD_OUT'] = self.times['FORWARD_OUT'] + self.dt_outer - - def take_inner_step(self): - """Take an inner time step. - - """ - self.times['PREVIOUS_IN'] = self.times['FORWARD_IN'] - self.times['CURRENT'] = self.times['FORWARD_IN'] - - if (self.times['FORWARD_OUT'] > self.times['FORWARD_IN'] + self.dt_inner): - self.times['FORWARD_IN'] = self.times['FORWARD_OUT'] - else: - self.times['FORWARD_IN'] = self.times['FORWARD_IN'] + self.dt_inner - - def reset_to_previous_outer(self): - """Reset the time values to the previous outer time. - - """ - - self.times['PREVIOUS_IN'] = self.times['PREVIOUS_IN'] - self.times['FORWARD_IN'] = self.times['PREVIOUS_IN'] - self.times['CURRENT'] = self.times['PREVIOUS_IN'] diff --git a/openmc/kinetics/solver.py b/openmc/kinetics/solver.py deleted file mode 100644 index a71907a1d3..0000000000 --- a/openmc/kinetics/solver.py +++ /dev/null @@ -1,638 +0,0 @@ -from collections import OrderedDict -from xml.etree import ElementTree as ET - -import openmc -import openmc.kinetics -from openmc.clean_xml import * -from openmc.checkvalue import check_type -from openmc.kinetics.clock import TIME_POINTS -import numpy as np - - -class Solver(object): - """Solver to propagate the neutron flux and power forward in time. - - Attributes - ---------- - mesh : openmc.mesh.Mesh - Mesh which specifies the dimensions of coarse mesh. - - geometry : openmc.geometry.Geometry - Geometry which describes the problem being solved. - - settings_file : openmc.settings.SettingsFile - Settings file describing the general settings for each simulation. - - materials_file : openmc.materials.MaterialsFile - Materials file containing the materials info for each simulation. - - executor : openmc.executor.Executor - Executor object for executing OpenMC simulation. - - clock : openmc.kinetics.Clock - Clock object. - - energy_groups : openmc.mgxs.groups.EnergyGroups - EnergyGroups which specifies the energy groups structure. - - A : np.matrix - Numpy matrix used for storing the destruction terms. - - M : np.matrix - Numpy matrix used for storing the production terms. - - AM : np.matrix - Numpy matrix used for storing the combined production/destruction terms. - - flux : np.array - Numpy array used to store the flux. - - amplitude : np.array - Numpy array used to store the amplitude. - - shape : np.array - Numpy array used to store the shape. - - source : np.array - Numpy array used to store the source. - - power : np.array - Numpy array used to store the power. - - precursor_conc : np.array - Numpy array used to store the precursor concentrations. - - sigma_a : OrderedDict of openmc.MGXS.AbsorptionXS - MGXS absorption multigroup cross-sections. - - nu_sigma_f : OrderedDict of openmc.MGXS.NuFissionXS - MGXS nu-fission multigroup cross-sections. - - kappa_sigma_f : OrderedDict of openmc.MGXS.NuFissionXS - MGXS nu-fission multigroup cross-sections. - - dif_coef : OrderedDict of openmc.MGXS.DiffusionCoefficientXS - MGXS multigroup diffusion coefficients. - - beta : OrderedDict of openmc.MGXS.delayed.Beta - MGXS multigroup delayed neutron fractions. - - chi_prompt : OrderedDict of openmc.MGXS.delayed.ChiPrompt - MGXS multigroup prompt neutron spectrums. - - chi_delayed : OrderedDict of openmc.MGXS.delayed.ChiDelayed - MGXS multigroup delayed neutron spectrums. - - velocity : OrderedDict of openmc.MGXS.Velocity - MGXS multigroup velocities. - - nu_sigma_s : OrderedDict of openmc.MGXS.NuScatterMatrixXS - MGXS multigroup nu-scatter matrix. - - flux_xs : OrderedDict openmc.MGXS.Flux - MGXS multigroup flux. - - k_eff_0 : float - The initial eigenvalue. - - Methods - ------- - - initialize_xs() - take_outer_step() - take_inner_step() - solve() - - extract_xs() - 2 normalize_flux() - broadcast_to_all() - broadcast_to_one() - - compute_shape() - integrate_precursor_conc() - 3 compute_initial_precursor_conc() - 1 compute_power() - construct_A() - construct_M() - construct_AM() - interpolate_xs() - - To Do - ----- - 1) Create getters and setters for all attributes - 2) Create method to generate initialize xs - 3) Create method to compute flux - 4) Create method to compute initial precursor concentrations - 5) Create method to compute the initial power - - """ - - def __init__(self): - - # Initialize Solver class attributes - self._mesh = None - self._geometry = None - self._settings_file = None - self._materials_file = None - self._executor = openmc.Executor() - self._statepoint = None - self._summary = None - self._clock = None - self._energy_groups = None - self._A = None - self._M = None - self._AM = None - self._flux = None - self._amplitude = None - self._shape = None - self._source = None - self._power = None - self._precursor_conc = None - self._sigma_a = None - self._nu_sigma_f = None - self._kappa_sigma_f = None - self._dif_coef = None - self._beta = None - self._chi_prompt = None - self._chi_delayed = None - self._velocity = None - self._nu_sigma_s = None - self._flux_xs = None - self._decay_constants = None - self._k_eff_0 = None - - @property - def mesh(self): - return self._mesh - - @property - def geometry(self): - return self._geometry - - @property - def settings_file(self): - return self._settings_file - - @property - def materials_file(self): - return self._materials_file - - @property - def executor(self): - return self._executor - - @property - def statepoint(self): - return self._statepoint - - @property - def summary(self): - return self._summary - - @property - def clock(self): - return self._clock - - @property - def energy_groups(self): - return self._energy_groups - - @property - def A(self): - return self._A - - @property - def M(self): - return self._M - - @property - def AM(self): - return self._AM - - @property - def flux(self): - return self._flux - - @property - def amplitude(self): - return self._amplitude - - @property - def shape(self): - return self._shape - - @property - def source(self): - return self._source - - @property - def power(self): - return self._power - - @property - def precursor_conc(self): - return self._precursor_conc - - @property - def sigma_a(self): - return self._sigma_a - - @property - def nu_sigma_f(self): - return self._nu_sigma_f - - @property - def kappa_sigma_f(self): - return self._kappa_sigma_f - - @property - def dif_coef(self): - return self._dif_coef - - @property - def beta(self): - return self._beta - - @property - def chi_prompt(self): - return self._chi_prompt - - @property - def chi_delayed(self): - return self._chi_delayed - - @property - def velocity(self): - return self._velocity - - @property - def nu_sigma_s(self): - return self._nu_sigma_s - - @property - def flux_xs(self): - return self._flux_xs - - @property - def decay_constants(self): - return self._decay_constants - - @property - def k_eff_0(self): - return self._k_eff_0 - - @mesh.setter - def mesh(self, mesh): - self._mesh = mesh - - @geometry.setter - def geometry(self, geometry): - self._geometry = geometry - - @settings_file.setter - def settings_file(self, settings_file): - self._settings_file = settings_file - - @materials_file.setter - def materials_file(self, materials_file): - self._materials_file = materials_file - - @executor.setter - def executor(self, exectuor): - self._executor = executor - - @statepoint.setter - def statepoint(self, statepoint): - self._statepoint = statepoint - - @summary.setter - def summary(self, summary): - self._summary = summary - - @clock.setter - def clock(self, clock): - self._clock = clock - - @energy_groups.setter - def energy_groups(self, energy_groups): - self._energy_groups = energy_groups - - # Initialize the arrays - ng = energy_groups.num_groups - self._flux = np.zeros(ng) - self._amplitude = np.zeros(ng) - self._shape = np.zeros(ng) - self._source = np.zeros(ng) - self._power = np.zeros(ng) - - @A.setter - def A(self): - self._A = A - - @M.setter - def M(self, M): - self._M = M - - @AM.setter - def AM(self, AM): - self._AM = AM - - @flux.setter - def flux(self, flux): - self._flux = flux - - @amplitude.setter - def amplitude(self, amplitude): - self._amplitude = amplitude - - @shape.setter - def shape(self, shape): - self._shape = shape - - @source.setter - def source(self, source): - self._source = source - - @power.setter - def power(self, power): - self._power = power - - @precursor_conc.setter - def precursor_conc(self, precursor_conc): - self._precursor_conc = precursor_conc - - @sigma_a.setter - def sigma_a(self, sigma_a): - self._sigma_a = sigma_a - - @nu_sigma_f.setter - def nu_sigma_f(self, nu_sigma_f): - self._nu_sigma_f = nu_sigma_f - - @kappa_sigma_f.setter - def kappa_sigma_f(self, kappa_sigma_f): - self._kappa_sigma_f = kappa_sigma_f - - @dif_coef.setter - def dif_coef(self, dif_coef): - self._dif_coef = dif_coef - - @beta.setter - def beta(self, beta): - self._beta = beta - - @chi_prompt.setter - def chi_prompt(self, chi_prompt): - self._chi_prompt = chi_prompt - - @chi_delayed.setter - def chi_delayed(self, chi_delayed): - self._chi_delayed - - @velocity.setter - def velocity(self, velocity): - self._velocity = velocity - - @nu_sigma_s.setter - def nu_sigma_s(self, nu_sigma_s): - self._nu_sigma_s = nu_sigma_s - - @flux_xs.setter - def flux_xs(self, flux_xs): - self._flux_xs = flux_xs - - @decay_constants.setter - def decay_constants(self, decay_constants): - self._decay_constants = decay_constants - - @k_eff_0.setter - def k_eff_0(self, k_eff_0): - self._k_eff_0 = k_eff_0 - - def initialize_xs(self): - """Initialize all the tallies for the problem. - - """ - - self._sigma_a = {} - self._nu_sigma_f = {} - self._kappa_sigma_f = {} - self._dif_coef = {} - self._beta = {} - self._chi_prompt = {} - self._chi_delayed = {} - self._velocity = {} - self._nu_sigma_s = {} - self._flux_xs = {} - self._precursor_conc = {} - - self._decay_constants = openmc.Tally(name='decay constants') - self._decay_constants._derived = True - self._decay_constants.num_score_bins = 1 - self._decay_constants.add_score('None') - self._decay_constants._mean = np.array([0.012467, 0.028292, 0.042524,\ - 0.133042, 0.292467, 0.666488,\ - 1.634781, 3.554600]) - self._decay_constants._mean = np.reshape(self._decay_constants._mean, (8,1,1)) - self._decay_constants._std_dev = np.array([0 for i in range(8)]) - self._decay_constants._std_dev = np.reshape(self._decay_constants._std_dev, (8,1,1)) - self._decay_constants.estimator = 'analog' - self._decay_constants.add_filter(openmc.Filter('delayedgroup', range(1,9))) - self._decay_constants._nuclides = ['total'] - - # FIXME: replace domain with mesh - # Get the cell in the geometry - cells = self.geometry.root_universe.get_all_cells() - cell = cells.values()[0] - - global TIME_POINTS - for t in TIME_POINTS: - print 'computing tallies for time: ' + t - self._sigma_a[t] = openmc.mgxs.AbsorptionXS(name='sigma a', - domain=cell, domain_type='cell', groups=self.energy_groups) - self._nu_sigma_f[t] = openmc.mgxs.NuFissionXS(name='nu sigma f', - domain=cell, domain_type='cell', groups=self.energy_groups) - self._kappa_sigma_f[t] = openmc.mgxs.KappaFissionXS(name='kappa fission', - domain=cell, domain_type='cell', groups=self.energy_groups) - self._dif_coef[t] = openmc.mgxs.DiffusionCoefficient(name='dif coef', - domain=cell, domain_type='cell', groups=self.energy_groups) - self._beta[t] = openmc.mgxs.Beta(name='beta', - domain=cell, domain_type='cell', groups=self.energy_groups) - self._chi_prompt[t] = openmc.mgxs.ChiPrompt(name='chi prompt', - domain=cell, domain_type='cell', groups=self.energy_groups) - self._chi_delayed[t] = openmc.mgxs.ChiDelayed(name='chi delayed', - domain=cell, domain_type='cell', groups=self.energy_groups) - self._velocity[t] = openmc.mgxs.Velocity(name='velocity', - domain=cell, domain_type='cell', groups=self.energy_groups) - self._nu_sigma_s[t] = openmc.mgxs.NuScatterMatrixXS(name='nu scatter', - domain=cell, domain_type='cell', groups=self.energy_groups) - self._flux_xs[t] = openmc.mgxs.Flux(name='flux', - domain=cell, domain_type='cell', groups=self.energy_groups) - - - def generate_tallies_file(self, time): - """Initialize the tallies file. - - """ - - tallies_file = openmc.TalliesFile() - - # Add absorption tallies to the tallies file - for tally in self._sigma_a[time].tallies.values(): - tallies_file.add_tally(tally, merge=True) - - # Add nu-sigma-f tallies to the tallies file - for tally in self._nu_sigma_f[time].tallies.values(): - tallies_file.add_tally(tally, merge=True) - - # Add kappa-sigma-f tallies to the tallies file - for tally in self._kappa_sigma_f[time].tallies.values(): - tallies_file.add_tally(tally, merge=True) - - # Add dif-coef tallies to the tallies file - for tally in self._dif_coef[time].tallies.values(): - tallies_file.add_tally(tally, merge=True) - - # Add beta tallies to the tallies file - for tally in self._beta[time].tallies.values(): - tallies_file.add_tally(tally, merge=True) - - # Add chi prompt tallies to the tallies file - for tally in self._chi_prompt[time].tallies.values(): - tallies_file.add_tally(tally, merge=True) - - # Add chi delayed tallies to the tallies file - for tally in self._chi_delayed[time].tallies.values(): - tallies_file.add_tally(tally, merge=False) - - # Add velocity tallies to the tallies file - for tally in self._velocity[time].tallies.values(): - tallies_file.add_tally(tally, merge=True) - - # Add nu-sigma-s tallies to the tallies file - for tally in self._nu_sigma_s[time].tallies.values(): - tallies_file.add_tally(tally, merge=True) - - # Add flux tallies to the tallies file - for tally in self._flux_xs[time].tallies.values(): - tallies_file.add_tally(tally, merge=True) - - # Export to "tallies.xml" - tallies_file.export_to_xml() - - def extract_xs(self, time): - - filename = 'statepoint.' + str(self.settings_file.batches) + '.h5' - self.statepoint = openmc.StatePoint(filename) - self.summary = openmc.Summary('summary.h5') - self.statepoint.link_with_summary(self.summary) - - # load xs from statepoint - self._sigma_a[time].load_from_statepoint(self.statepoint) - self._nu_sigma_f[time].load_from_statepoint(self.statepoint) - self._kappa_sigma_f[time].load_from_statepoint(self.statepoint) - self._dif_coef[time].load_from_statepoint(self.statepoint) - self._beta[time].load_from_statepoint(self.statepoint) - self._chi_prompt[time].load_from_statepoint(self.statepoint) - self._chi_delayed[time].load_from_statepoint(self.statepoint) - self._velocity[time].load_from_statepoint(self.statepoint) - self._nu_sigma_s[time].load_from_statepoint(self.statepoint) - self._flux_xs[time].load_from_statepoint(self.statepoint) - self.k_eff_0 = self.statepoint.k_combined[0] - - # compute the xs - self._sigma_a[time].compute_xs() - self._nu_sigma_f[time].compute_xs() - self._kappa_sigma_f[time].compute_xs() - self._dif_coef[time].compute_xs() - self._beta[time].compute_xs() - self._chi_prompt[time].compute_xs() - self._chi_delayed[time].compute_xs() - self._velocity[time].compute_xs() - self._nu_sigma_s[time].compute_xs() - self._flux_xs[time].compute_xs() - - # extract the flux - #for g in range(self._energy_groups.num_groups): - # self._flux[g] = self._flux_xs[time].xs_tally.mean[g][0][0] - - def print_xs(self, time): - - # print the xs - self._sigma_a[time].print_xs() - self._nu_sigma_f[time].print_xs() - self._kappa_sigma_f[time].print_xs() - self._dif_coef[time].print_xs() - self._beta[time].print_xs() - self._chi_prompt[time].print_xs() - self._chi_delayed[time].print_xs() - self._velocity[time].print_xs() - self._nu_sigma_s[time].print_xs() - self._flux_xs[time].print_xs() - - def compute_shape(self, time): - - geometry_file = openmc.GeometryFile() - geometry_file.geometry = self.geometry - - # Create the xml files - self._materials_file.export_to_xml() - geometry_file.export_to_xml() - self._settings_file.export_to_xml() - self.generate_tallies_file(time) - - # Run OpenMC - self.executor.run_simulation(mpi_procs=4) - - def compute_power(self, time): - - self.power = self._kappa_sigma_f[time].xs_tally * \ - self._flux_xs[time].xs_tally - - def compute_initial_precursor_conc(self, time): - - self.precursor_conc[time] = self.nu_sigma_f[time].xs_tally \ - * self.flux_xs[time].xs_tally - self.precursor_conc[time] = self.precursor_conc[time].\ - summation(filter_type='energy', remove_filter=True) - beta = self.beta[time].xs_tally.\ - summation(filter_type='energy', remove_filter=True) - self.precursor_conc[time] = beta \ - * self.precursor_conc[time] - - self.precursor_conc[time] = self.precursor_conc[time] / self.k_eff_0 - - print self.precursor_conc[time] - print self._decay_constants - - self.precursor_conc[time] = self.precursor_conc[time] / self._decay_constants - print self.precursor_conc[time] - - - def compute_forward_flux(self, time, time_next): - - dt_v = self.clock.dt_outer * self.velocity - - fission_rate = self.nu_sigma_f[time].xs_tally \ - * self.flux_xs[time].xs_tally - - fission_rate = fission_rate.summation(filter_type='energy', remove_filter=True) - - self.flux_xs[time_next] = [self.flux_xs[time] + (1 - self.beta) \ - / self.k_eff_0 * fission_rate + \ - - self.precursor_conc[time] = self.nu_sigma_f[time].xs_tally \ - * self.flux_xs[time].xs_tally - self.precursor_conc[time] = self.precursor_conc[time].\ - summation(filter_type='energy', remove_filter=True) - beta = self.beta[time].xs_tally.\ - summation(filter_type='energy', remove_filter=True) - self.precursor_conc[time] = beta \ - * self.precursor_conc[time] - - self.precursor_conc[time] = self.precursor_conc[time] / self.k_eff_0 - - print self.precursor_conc[time] - print self._decay_constants - - inv_decay_constants = 1.0 / self._decay_constants - inv_decay_constants.name = 'inverse decay constants' - self.precursor_conc[time] = inv_decay_constants * self.precursor_conc[time] - print self.precursor_conc[time] From 13da37de4bc32471bffbd567cfdc6ff46f40ca0f Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Tue, 2 Aug 2016 08:37:16 -0500 Subject: [PATCH 225/417] For real fix unassigned energy in SCORE_PROMPT --- src/tally.F90 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index 6e406c93ae..ec46a61940 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -471,16 +471,17 @@ contains 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 + if (i_nuclide > 0) then score = micro_xs(i_nuclide) % fission * nuclides(i_nuclide) % & nu(E, EMISSION_PROMPT) * atom_density * flux else - ! make sure the correct energy is used - if (t % estimator == ESTIMATOR_TRACKLENGTH) then - E = p % E - else - E = p % last_E - end if score = ZERO From 84cfd2d6a940920473283de15690160d6de59b58 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Tue, 2 Aug 2016 14:10:32 -0500 Subject: [PATCH 226/417] Add MT=458 data library and supporting methods --- data/fission_Q_data_endfb71.h5 | Bin 0 -> 67543 bytes data/get_nndc_data.py | 3 +- openmc/data/fission_energy.py | 195 ++++++++++++++++++++++----------- openmc/data/neutron.py | 3 + scripts/openmc-ace-to-hdf5 | 17 +++ 5 files changed, 155 insertions(+), 63 deletions(-) create mode 100644 data/fission_Q_data_endfb71.h5 diff --git a/data/fission_Q_data_endfb71.h5 b/data/fission_Q_data_endfb71.h5 new file mode 100644 index 0000000000000000000000000000000000000000..89e51b70783034b40ce4e207fdb3e34b5d5d33cc GIT binary patch literal 67543 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 1: + out.form = 'Madland' + out.fragments = Polynomial(energy_release['EFR']) + out.prompt_neutrons = Polynomial(energy_release['ENP']) + out.delayed_neutrons = Polynomial(energy_release['END']) + out.prompt_photons = Polynomial(energy_release['EGP']) + out.delayed_photons = Polynomial(energy_release['EGD']) + out.betas = Polynomial(energy_release['EB']) + out.neutrinos = Polynomial(energy_release['ENU']) + else: + out.form = 'Sher-Beck' + + # EFR and ENP are energy independent. Polynomial is used because it + # has a __call__ attribute that handles Iterable inputs. The + # energy-dependence of END is unspecified in ENDF-102 so assume it + # is independent. + out.fragments = Polynomial((energy_release['EFR'][0])) + out.prompt_photons = Polynomial((energy_release['EGP'][0])) + out.delayed_neutrons = Polynomial((energy_release['END'][0])) + + # EDP, EB, and ENU are linear. + out.delayed_photons = Polynomial((energy_release['EGD'][0], -0.075)) + out.betas = Polynomial((energy_release['EB'][0], -0.075)) + out.neutrinos = Polynomial((energy_release['ENU'][0], -0.105)) + + # Prompt neutrons require nu-data. It is not clear from ENDF-102 + # whether prompt or total nu value should be used, but the delayed + # neutron fraction is so small that the difference is negligible. + # MT=18 (n, fission) might not be available so try MT=19 (n, f) as + # well. + if 18 in incident_neutron.reactions: + nu_prompt = [p for p in incident_neutron[18].products + if p.particle == 'neutron' + and p.emission_mode == 'prompt'] + elif 19 in incident_neutron.reactions: + nu_prompt = [p for p in incident_neutron[19].products + if p.particle == 'neutron' + and p.emission_mode == 'prompt'] + else: + raise ValueError('IncidentNeutron data has no fission ' + 'reaction.') + if len(nu_prompt) == 0: + raise ValueError('Nu data is needed to compute fission energy ' + 'release with the Sher-Beck format.') + if len(nu_prompt) > 1: + raise ValueError('Ambiguous prompt value.') + if not isinstance(nu_prompt[0].yield_, Tabulated1D): + raise TypeError('Sher-Beck fission energy release currently ' + 'only supports Tabulated1D nu data.') + ENP = deepcopy(nu_prompt[0].yield_) + ENP.y = (energy_release['ENP'] + 1.307 * ENP.x + - 8.07 * (ENP.y - ENP.y[0])) + out.prompt_neutrons = ENP + + return out + @classmethod def from_endf(cls, filename, incident_neutron): """Generate fission energy release data from an ENDF file. @@ -327,72 +410,22 @@ class FissionEnergyRelease(object): # Check to make sure this ENDF file matches the expected isomer. ident = identify_nuclide(filename) if ident['Z'] != incident_neutron.atomic_number: - pass + raise ValueError('The atomic number of the ENDF evaluation does ' + 'not match the given IncidentNeutron.') if ident['A'] != incident_neutron.mass_number: - pass + raise ValueError('The atomic mass of the ENDF evaluation does ' + 'not match the given IncidentNeutron.') if ident['LISO'] != incident_neutron.metastable: - pass - if not ident['LIF']: - pass + raise ValueError('The metastable state of the ENDF evaluation does ' + 'not match the given IncidentNeutron.') + if not ident['LFI']: + raise ValueError('The ENDF evaluation is not fissionable.') # Read the 458 data from the ENDF file. value, uncertainty = _extract_458_data(filename) - # Declare the coefficient names. If we only find one value for each of - # these components, then we need to use the Sher-Beck formula for energy - # dependence. Otherwise, it is a polynomial. - labels = ('EFR', 'ENP', 'END', 'EGP', 'EGD', 'EB', 'ENU', 'ER', 'ET') - - # How many coefficients are given for each coefficient? If we only find - # one value for each, then we need to use the Sher-Beck formula for - # energy dependence. Otherwise, it is a polynomial. - n_coeffs = len(value['EFR']) - - out = cls() - if n_coeffs > 1: - out.form = 'Madland' - out.fragments = Polynomial(value['EFR']) - out.prompt_neutrons = Polynomial(value['ENP']) - out.delayed_neutrons = Polynomial(value['END']) - out.prompt_photons = Polynomial(value['EGP']) - out.delayed_photons = Polynomial(value['EGD']) - out.betas = Polynomial(value['EB']) - out.neutrinos = Polynomial(value['ENU']) - else: - out.form = 'Sher-Beck' - - # EFR and ENP are energy independent. Polynomial is used because it - # has a __call__ attribute that handles Iterable inputs. The - # energy-dependence of END is unspecified in ENDF-102 so assume it - # is independent. - out.fragments = Polynomial((value['EFR'][0])) - out.prompt_photons = Polynomial((value['EGP'][0])) - out.delayed_neutrons = Polynomial((value['END'][0])) - - # EDP, EB, and ENU are linear. - out.delayed_photons = Polynomial((value['EGD'][0], -0.075)) - out.betas = Polynomial((value['EB'][0], -0.075)) - out.neutrinos = Polynomial((value['ENU'][0], -0.105)) - - # Prompt neutrons require nu-data. It is not clear from ENDF-102 - # whether prompt or total nu values should be used, but the delayed - # neutron fraction is so small that the difference is negligible. - nu_prompt = [p for p in incident_neutron[18].products - if p.particle == 'neutron' - and p.emission_mode == 'prompt'] - if len(nu_prompt) == 0: - raise ValueError('Nu data is needed to compute fission energy ' - 'release with the Sher-Beck format.') - if len(nu_prompt) > 1: - raise ValueError('Ambiguous prompt nu value.') - if not isinstance(nu_prompt[0].yield_, Tabulated1D): - raise TypeError('Sher-Beck fission energy release currently ' - 'only supports Tabulated1D nu data.') - ENP = deepcopy(nu_prompt[0].yield_) - ENP.y = value['ENP'] + 1.307 * ENP.x - 8.07 * (ENP.y - ENP.y[0]) - out.prompt_neutrons = ENP - - return out + # Build the object. + return cls._from_dictionary(value, incident_neutron) @classmethod def from_hdf5(cls, group): @@ -419,9 +452,9 @@ class FissionEnergyRelease(object): obj.betas = Polynomial(group['betas'].value) obj.neutrinos = Polynomial(group['neutrinos'].value) - if group.attrs['format'] == 'Madland': + if group.attrs['format'].decode() == 'Madland': obj.prompt_neutrons = Polynomial(group['prompt_neutrons'].value) - elif group.attrs['format'] == 'Sher-Beck': + elif group.attrs['format'].decode() == 'Sher-Beck': obj.prompt_neutrons = Tabulated1D.from_hdf5( group['prompt_neutrons']) else: @@ -429,6 +462,44 @@ class FissionEnergyRelease(object): return obj + @classmethod + def from_compact_hdf5(cls, fname, incident_neutron): + """Generate fission energy release data from a small HDF5 library. + + Parameters + ---------- + fname : str + Path to an HDF5 file containing fission energy release data. This + file should have been generated form the + openmc.data.write_compact_458_library function. + + incident_neutron : openmc.data.IncidentNeutron + Corresponding incident neutron dataset + + Returns + ------- + openmc.data.FissionEnergyRelease or None + Fission energy release data for the given nuclide if it is present + in the data file + + """ + + fin = h5py.File(fname, 'r') + + components = [s.decode() for s in fin.attrs['component order']] + + nuclide_name = str(incident_neutron.atomic_number) + nuclide_name += str(incident_neutron.mass_number) + if incident_neutron.metastable != 0: + nuclide_name += '_m' + str(incident_neutron.metastable) + + if nuclide_name not in fin: return None + + data = {c : fin[nuclide_name + '/data'][i, 0, :] + for i, c in enumerate(components)} + + return cls._from_dictionary(data, incident_neutron) + def to_hdf5(self, group): """Write energy release data to an HDF5 group diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 84d9bcb2c6..d2c9290b69 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -52,6 +52,9 @@ class IncidentNeutron(object): Atomic weight ratio of the target nuclide. energy : numpy.ndarray The energy values (MeV) at which reaction cross-sections are tabulated. + fission_energy : None or openmc.data.FissionEnergyRelease + The energy released by fission, tabulated by component (e.g. prompt + neutrons or beta particles) and dependent on incident neutron energy mass_number : int Number of nucleons in the nucleus metastable : int diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 index 743cf4a509..90031f0faa 100755 --- a/scripts/openmc-ace-to-hdf5 +++ b/scripts/openmc-ace-to-hdf5 @@ -25,6 +25,13 @@ follows the NNDC data convention (1000*Z + A + 300 + 100*m), or the MCNP data convention (essentially the same as NNDC, except that the first metastable state of Am242 is 95242 and the ground state is 95642). +The optional --fission_energy_release argument will accept an HDF5 file +containing a library of fission energy release (ENDF MF=1 MT=458) data. A +library built from ENDF/B-VII.1 data is released with OpenMC and can be found at +openmc/data/fission_Q_data_endb71.h5. This data is necessary for +'fission-q-prompt' and 'fission-q-recoverable' tallies, but is not needed +otherwise. + """ class CustomFormatter(argparse.ArgumentDefaultsHelpFormatter, @@ -47,6 +54,8 @@ parser.add_argument('--xsdir', help='MCNP xsdir file that lists ' 'ACE libraries') parser.add_argument('--xsdata', help='Serpent xsdata file that lists ' 'ACE libraries') +parser.add_argument('--fission_energy_release', help='HDF5 file containing ' + 'fission energy release data') args = parser.parse_args() if not os.path.isdir(args.destination): @@ -111,6 +120,14 @@ for filename in ace_libraries: # Continuous-energy neutron data neutron = openmc.data.IncidentNeutron.from_ace( table, args.metastable) + + # Fission energy release data, if available + if args.fission_energy_release is not None: + fer = openmc.data.FissionEnergyRelease.from_compact_hdf5( + args.fission_energy_release, neutron) + if fer is not None: + neutron.fission_energy = fer + print(neutron.name) # Determine filename From 7be7c6f29bd0f8d158fa3338dcad04e5783c13c3 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 2 Aug 2016 18:53:44 -0400 Subject: [PATCH 227/417] fixed mgxs library.py to accept MDGXS --- .../pythonapi/examples/mdgxs-part-i.ipynb | 256 +++++++++++------- openmc/mgxs/library.py | 45 ++- openmc/mgxs/mdgxs.py | 54 ++-- openmc/tallies.py | 3 + 4 files changed, 231 insertions(+), 127 deletions(-) diff --git a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb index 2eeeffa3ca..b15ace9519 100644 --- a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb @@ -354,7 +354,7 @@ "\n", "# Instantiate a 1-group EnergyGroups object\n", "one_group = mgxs.EnergyGroups()\n", - "one_group.group_edges = np.array([0., 20.])\n", + "one_group.group_edges = np.array([energy_groups.group_edges[0], energy_groups.group_edges[-1]])\n", "\n", "delayed_groups = mgxs.DelayedGroups()\n", "delayed_groups.groups = range(1,7)" @@ -404,8 +404,8 @@ "chi_prompt = mgxs.ChiPrompt(domain=cell, groups=energy_groups, by_nuclide=True)\n", "prompt_nu_fission = mgxs.PromptNuFissionXS(domain=cell, groups=one_group, by_nuclide=True)\n", "chi_delayed = mgxs.ChiDelayed(domain=cell, energy_groups=energy_groups, by_nuclide=True)\n", - "delayed_nu_fission = mgxs.DelayedNuFissionXS(domain=cell, energy_groups=one_group, delayed_groups=delayed_groups, by_nuclide=True)\n", - "beta = mgxs.Beta(domain=cell, energy_groups=one_group, delayed_groups=delayed_groups, by_nuclide=True)\n", + "delayed_nu_fission = mgxs.DelayedNuFissionXS(domain=cell, energy_groups=energy_groups, delayed_groups=delayed_groups, by_nuclide=True)\n", + "beta = mgxs.Beta(domain=cell, energy_groups=energy_groups, delayed_groups=delayed_groups, by_nuclide=True)\n", "\n", "chi_prompt.nuclides = ['U235', 'Pu239']\n", "prompt_nu_fission.nuclides = ['U235', 'Pu239']\n", @@ -436,7 +436,32 @@ " \tName =\t\n", " \tFilters =\t\n", " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0. 20.]\n", + " \t\tenergy\t[ 1.00000000e-09 1.26765187e-09 1.60694125e-09 2.03704208e-09\n", + " 2.58226019e-09 3.27340695e-09 4.14954043e-09 5.26017266e-09\n", + " 6.66806769e-09 8.45278845e-09 1.07151931e-08 1.35831345e-08\n", + " 1.72186857e-08 2.18272991e-08 2.76694165e-08 3.50751874e-08\n", + " 4.44631267e-08 5.63637656e-08 7.14496326e-08 9.05732601e-08\n", + " 1.14815362e-07 1.45545908e-07 1.84501542e-07 2.33883724e-07\n", + " 2.96483139e-07 3.75837404e-07 4.76430987e-07 6.03948629e-07\n", + " 7.65596607e-07 9.70509967e-07 1.23026877e-06 1.55955250e-06\n", + " 1.97696964e-06 2.50610925e-06 3.17687407e-06 4.02717034e-06\n", + " 5.10505000e-06 6.47142616e-06 8.20351544e-06 1.03992017e-05\n", + " 1.31825674e-05 1.67109061e-05 2.11836114e-05 2.68534445e-05\n", + " 3.40408190e-05 4.31519077e-05 5.47015963e-05 6.93425806e-05\n", + " 8.79022517e-05 1.11429453e-04 1.41253754e-04 1.79060585e-04\n", + " 2.26986485e-04 2.87739841e-04 3.64753947e-04 4.62381021e-04\n", + " 5.86138165e-04 7.43019138e-04 9.41889597e-04 1.19398810e-03\n", + " 1.51356125e-03 1.91866874e-03 2.43220401e-03 3.08318795e-03\n", + " 3.90840896e-03 4.95450191e-03 6.28058359e-03 7.96159350e-03\n", + " 1.00925289e-02 1.27938130e-02 1.62181010e-02 2.05589060e-02\n", + " 2.60615355e-02 3.30369541e-02 4.18793565e-02 5.30884444e-02\n", + " 6.72976656e-02 8.53100114e-02 1.08143395e-01 1.37088177e-01\n", + " 1.73780083e-01 2.20292646e-01 2.79254384e-01 3.53997341e-01\n", + " 4.48745390e-01 5.68852931e-01 7.21107479e-01 9.14113241e-01\n", + " 1.15877736e+00 1.46892628e+00 1.86208714e+00 2.36047823e+00\n", + " 2.99226464e+00 3.79314985e+00 4.80839348e+00 6.09536897e+00\n", + " 7.72680585e+00 9.79489985e+00 1.24165231e+01 1.57398286e+01\n", + " 1.99526231e+01]\n", " \tNuclides =\tU235 Pu239 \n", " \tScores =\t['nu-fission']\n", " \tEstimator =\ttracklength), ('delayed-nu-fission', Tally\n", @@ -445,7 +470,32 @@ " \tFilters =\t\n", " \t\tcell\t[1]\n", " \t\tdelayedgroup\t[1 2 3 4 5 6]\n", - " \t\tenergy\t[ 0. 20.]\n", + " \t\tenergy\t[ 1.00000000e-09 1.26765187e-09 1.60694125e-09 2.03704208e-09\n", + " 2.58226019e-09 3.27340695e-09 4.14954043e-09 5.26017266e-09\n", + " 6.66806769e-09 8.45278845e-09 1.07151931e-08 1.35831345e-08\n", + " 1.72186857e-08 2.18272991e-08 2.76694165e-08 3.50751874e-08\n", + " 4.44631267e-08 5.63637656e-08 7.14496326e-08 9.05732601e-08\n", + " 1.14815362e-07 1.45545908e-07 1.84501542e-07 2.33883724e-07\n", + " 2.96483139e-07 3.75837404e-07 4.76430987e-07 6.03948629e-07\n", + " 7.65596607e-07 9.70509967e-07 1.23026877e-06 1.55955250e-06\n", + " 1.97696964e-06 2.50610925e-06 3.17687407e-06 4.02717034e-06\n", + " 5.10505000e-06 6.47142616e-06 8.20351544e-06 1.03992017e-05\n", + " 1.31825674e-05 1.67109061e-05 2.11836114e-05 2.68534445e-05\n", + " 3.40408190e-05 4.31519077e-05 5.47015963e-05 6.93425806e-05\n", + " 8.79022517e-05 1.11429453e-04 1.41253754e-04 1.79060585e-04\n", + " 2.26986485e-04 2.87739841e-04 3.64753947e-04 4.62381021e-04\n", + " 5.86138165e-04 7.43019138e-04 9.41889597e-04 1.19398810e-03\n", + " 1.51356125e-03 1.91866874e-03 2.43220401e-03 3.08318795e-03\n", + " 3.90840896e-03 4.95450191e-03 6.28058359e-03 7.96159350e-03\n", + " 1.00925289e-02 1.27938130e-02 1.62181010e-02 2.05589060e-02\n", + " 2.60615355e-02 3.30369541e-02 4.18793565e-02 5.30884444e-02\n", + " 6.72976656e-02 8.53100114e-02 1.08143395e-01 1.37088177e-01\n", + " 1.73780083e-01 2.20292646e-01 2.79254384e-01 3.53997341e-01\n", + " 4.48745390e-01 5.68852931e-01 7.21107479e-01 9.14113241e-01\n", + " 1.15877736e+00 1.46892628e+00 1.86208714e+00 2.36047823e+00\n", + " 2.99226464e+00 3.79314985e+00 4.80839348e+00 6.09536897e+00\n", + " 7.72680585e+00 9.79489985e+00 1.24165231e+01 1.57398286e+01\n", + " 1.99526231e+01]\n", " \tNuclides =\tU235 Pu239 \n", " \tScores =\t['delayed-nu-fission']\n", " \tEstimator =\ttracklength)])" @@ -531,8 +581,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", - " Git SHA1: bc8a346a978644f5b2b21cccb6c5ae7f8397ebee\n", - " Date/Time: 2016-07-31 19:49:00\n", + " Git SHA1: e8819e6a77f2e998dcce937e80fbdd8dd430b667\n", + " Date/Time: 2016-08-02 18:51:52\n", " MPI Processes: 4\n", "\n", " ===========================================================================\n", @@ -619,20 +669,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 7.4000E-01 seconds\n", - " Reading cross sections = 3.9400E-01 seconds\n", - " Total time in simulation = 2.5930E+01 seconds\n", - " Time in transport only = 2.5267E+01 seconds\n", - " Time in inactive batches = 1.5300E+00 seconds\n", - " Time in active batches = 2.4400E+01 seconds\n", - " Time synchronizing fission bank = 6.4500E-01 seconds\n", - " Sampling source sites = 6.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.1000E-02 seconds\n", - " Total time elapsed = 2.6689E+01 seconds\n", - " Calculation Rate (inactive) = 32679.7 neutrons/second\n", - " Calculation Rate (active) = 8196.72 neutrons/second\n", + " Total time for initialization = 9.9200E-01 seconds\n", + " Reading cross sections = 3.8400E-01 seconds\n", + " Total time in simulation = 2.8675E+01 seconds\n", + " Time in transport only = 2.8041E+01 seconds\n", + " Time in inactive batches = 1.3230E+00 seconds\n", + " Time in active batches = 2.7352E+01 seconds\n", + " Time synchronizing fission bank = 5.6200E-01 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-02 seconds\n", + " Total time for finalization = 9.7000E-02 seconds\n", + " Total time elapsed = 2.9773E+01 seconds\n", + " Calculation Rate (inactive) = 37792.9 neutrons/second\n", + " Calculation Rate (active) = 7312.08 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -755,43 +805,43 @@ "\tNuclide =\tU235\n", "\tCross Sections [cm^-1]:\n", " Delayed Group 1:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t5.16e-06 +/- 3.38e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t5.14e-06 +/- 1.76e-01%\n", "\n", " Delayed Group 2:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t2.67e-05 +/- 3.38e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t2.65e-05 +/- 1.76e-01%\n", "\n", " Delayed Group 3:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t2.54e-05 +/- 3.38e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t2.53e-05 +/- 1.76e-01%\n", "\n", " Delayed Group 4:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t5.71e-05 +/- 3.38e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t5.68e-05 +/- 1.76e-01%\n", "\n", " Delayed Group 5:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t2.34e-05 +/- 3.38e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t2.33e-05 +/- 1.76e-01%\n", "\n", " Delayed Group 6:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t9.80e-06 +/- 3.38e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t9.76e-06 +/- 1.76e-01%\n", "\n", "\n", "\tNuclide =\tPu239\n", "\tCross Sections [cm^-1]:\n", " Delayed Group 1:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t1.17e-06 +/- 3.00e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t1.16e-06 +/- 1.90e-01%\n", "\n", " Delayed Group 2:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t7.60e-06 +/- 3.00e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t7.58e-06 +/- 1.90e-01%\n", "\n", " Delayed Group 3:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t5.75e-06 +/- 3.00e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t5.74e-06 +/- 1.90e-01%\n", "\n", " Delayed Group 4:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t1.05e-05 +/- 3.00e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t1.05e-05 +/- 1.90e-01%\n", "\n", " Delayed Group 5:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t5.47e-06 +/- 3.00e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t5.46e-06 +/- 1.90e-01%\n", "\n", " Delayed Group 6:\t\n", - " Group 1 [0.0 - 20.0 MeV]:\t1.66e-06 +/- 3.00e-01%\n", + " Group 1 [1e-09 - 19.9526231497MeV]:\t1.65e-06 +/- 1.90e-01%\n", "\n", "\n", "\n" @@ -799,7 +849,7 @@ } ], "source": [ - "delayed_nu_fission.print_xs()" + "delayed_nu_fission.get_condensed_xs(one_group).print_xs()" ] }, { @@ -840,7 +890,7 @@ " 1\n", " U235\n", " 0.000228\n", - " 1.038855e-06\n", + " 4.753468e-07\n", " \n", " \n", " 1\n", @@ -849,7 +899,7 @@ " 1\n", " Pu239\n", " 0.000081\n", - " 3.258333e-07\n", + " 1.885620e-07\n", " \n", " \n", " 2\n", @@ -858,7 +908,7 @@ " 1\n", " U235\n", " 0.001175\n", - " 5.362249e-06\n", + " 2.453594e-06\n", " \n", " \n", " 3\n", @@ -867,7 +917,7 @@ " 1\n", " Pu239\n", " 0.000531\n", - " 2.121977e-06\n", + " 1.228003e-06\n", " \n", " \n", " 4\n", @@ -876,7 +926,7 @@ " 1\n", " U235\n", " 0.001122\n", - " 5.119269e-06\n", + " 2.342414e-06\n", " \n", " \n", " 5\n", @@ -885,7 +935,7 @@ " 1\n", " Pu239\n", " 0.000402\n", - " 1.605842e-06\n", + " 9.293122e-07\n", " \n", " \n", " 6\n", @@ -894,7 +944,7 @@ " 1\n", " U235\n", " 0.002516\n", - " 1.147782e-05\n", + " 5.251885e-06\n", " \n", " \n", " 7\n", @@ -903,7 +953,7 @@ " 1\n", " Pu239\n", " 0.000733\n", - " 2.931785e-06\n", + " 1.696645e-06\n", " \n", " \n", " 8\n", @@ -912,7 +962,7 @@ " 1\n", " U235\n", " 0.001031\n", - " 4.705745e-06\n", + " 2.153199e-06\n", " \n", " \n", " 9\n", @@ -921,7 +971,7 @@ " 1\n", " Pu239\n", " 0.000382\n", - " 1.527096e-06\n", + " 8.837413e-07\n", " \n", " \n", " 10\n", @@ -930,7 +980,7 @@ " 1\n", " U235\n", " 0.000432\n", - " 1.971220e-06\n", + " 9.019675e-07\n", " \n", " \n", " 11\n", @@ -939,7 +989,7 @@ " 1\n", " Pu239\n", " 0.000116\n", - " 4.621961e-07\n", + " 2.674761e-07\n", " \n", " \n", "\n", @@ -947,18 +997,18 @@ ], "text/plain": [ " cell delayedgroup group in nuclide mean std. dev.\n", - "0 1 1 1 U235 0.000228 1.038855e-06\n", - "1 1 1 1 Pu239 0.000081 3.258333e-07\n", - "2 1 2 1 U235 0.001175 5.362249e-06\n", - "3 1 2 1 Pu239 0.000531 2.121977e-06\n", - "4 1 3 1 U235 0.001122 5.119269e-06\n", - "5 1 3 1 Pu239 0.000402 1.605842e-06\n", - "6 1 4 1 U235 0.002516 1.147782e-05\n", - "7 1 4 1 Pu239 0.000733 2.931785e-06\n", - "8 1 5 1 U235 0.001031 4.705745e-06\n", - "9 1 5 1 Pu239 0.000382 1.527096e-06\n", - "10 1 6 1 U235 0.000432 1.971220e-06\n", - "11 1 6 1 Pu239 0.000116 4.621961e-07" + "0 1 1 1 U235 0.000228 4.753468e-07\n", + "1 1 1 1 Pu239 0.000081 1.885620e-07\n", + "2 1 2 1 U235 0.001175 2.453594e-06\n", + "3 1 2 1 Pu239 0.000531 1.228003e-06\n", + "4 1 3 1 U235 0.001122 2.342414e-06\n", + "5 1 3 1 Pu239 0.000402 9.293122e-07\n", + "6 1 4 1 U235 0.002516 5.251885e-06\n", + "7 1 4 1 Pu239 0.000733 1.696645e-06\n", + "8 1 5 1 U235 0.001031 2.153199e-06\n", + "9 1 5 1 Pu239 0.000382 8.837413e-07\n", + "10 1 6 1 U235 0.000432 9.019675e-07\n", + "11 1 6 1 Pu239 0.000116 2.674761e-07" ] }, "execution_count": 19, @@ -967,7 +1017,7 @@ } ], "source": [ - "df = beta.get_pandas_dataframe()\n", + "df = beta.get_condensed_xs(one_group).get_pandas_dataframe()\n", "df.head(12)" ] }, @@ -1056,8 +1106,8 @@ " 1\n", " (U235 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 9.430766e-08\n", - " 5.356653e-10\n", + " 9.391610e-08\n", + " 2.566220e-10\n", " \n", " \n", " 1\n", @@ -1065,8 +1115,8 @@ " 1\n", " (Pu239 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 7.631830e-09\n", - " 3.816602e-11\n", + " 7.611347e-09\n", + " 2.278727e-11\n", " \n", " \n", " 2\n", @@ -1074,8 +1124,8 @@ " 2\n", " (U235 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 1.107191e-06\n", - " 6.288818e-09\n", + " 1.102594e-06\n", + " 3.012794e-09\n", " \n", " \n", " 3\n", @@ -1083,8 +1133,8 @@ " 2\n", " (Pu239 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 1.426298e-07\n", - " 7.132776e-10\n", + " 1.422470e-07\n", + " 4.258670e-10\n", " \n", " \n", " 4\n", @@ -1092,8 +1142,8 @@ " 3\n", " (U235 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 6.713761e-07\n", - " 3.813401e-09\n", + " 6.685886e-07\n", + " 1.826892e-09\n", " \n", " \n", " 5\n", @@ -1101,8 +1151,8 @@ " 3\n", " (Pu239 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 5.434458e-08\n", - " 2.717718e-10\n", + " 5.419872e-08\n", + " 1.622631e-10\n", " \n", " \n", " 6\n", @@ -1110,8 +1160,8 @@ " 4\n", " (U235 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 4.907155e-07\n", - " 2.787253e-09\n", + " 4.886781e-07\n", + " 1.335293e-09\n", " \n", " \n", " 7\n", @@ -1119,8 +1169,8 @@ " 4\n", " (Pu239 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 2.633756e-08\n", - " 1.317115e-10\n", + " 2.626687e-08\n", + " 7.863920e-11\n", " \n", " \n", " 8\n", @@ -1128,8 +1178,8 @@ " 5\n", " (U235 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 1.475656e-08\n", - " 8.381692e-11\n", + " 1.469529e-08\n", + " 4.015430e-11\n", " \n", " \n", " 9\n", @@ -1137,8 +1187,8 @@ " 5\n", " (Pu239 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 1.278385e-09\n", - " 6.393074e-12\n", + " 1.274953e-09\n", + " 3.817026e-12\n", " \n", " \n", " 10\n", @@ -1146,8 +1196,8 @@ " 6\n", " (U235 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 1.190878e-09\n", - " 6.764161e-12\n", + " 1.185934e-09\n", + " 3.240517e-12\n", " \n", " \n", " 11\n", @@ -1155,8 +1205,8 @@ " 6\n", " (Pu239 / total)\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 5.385798e-11\n", - " 2.693384e-13\n", + " 5.371343e-11\n", + " 1.608102e-13\n", " \n", " \n", "\n", @@ -1178,18 +1228,18 @@ "11 1 6 (Pu239 / total) \n", "\n", " score mean std. dev. \n", - "0 (((delayed-nu-fission / nu-fission) * (delayed... 9.43e-08 5.36e-10 \n", - "1 (((delayed-nu-fission / nu-fission) * (delayed... 7.63e-09 3.82e-11 \n", - "2 (((delayed-nu-fission / nu-fission) * (delayed... 1.11e-06 6.29e-09 \n", - "3 (((delayed-nu-fission / nu-fission) * (delayed... 1.43e-07 7.13e-10 \n", - "4 (((delayed-nu-fission / nu-fission) * (delayed... 6.71e-07 3.81e-09 \n", - "5 (((delayed-nu-fission / nu-fission) * (delayed... 5.43e-08 2.72e-10 \n", - "6 (((delayed-nu-fission / nu-fission) * (delayed... 4.91e-07 2.79e-09 \n", - "7 (((delayed-nu-fission / nu-fission) * (delayed... 2.63e-08 1.32e-10 \n", - "8 (((delayed-nu-fission / nu-fission) * (delayed... 1.48e-08 8.38e-11 \n", - "9 (((delayed-nu-fission / nu-fission) * (delayed... 1.28e-09 6.39e-12 \n", - "10 (((delayed-nu-fission / nu-fission) * (delayed... 1.19e-09 6.76e-12 \n", - "11 (((delayed-nu-fission / nu-fission) * (delayed... 5.39e-11 2.69e-13 " + "0 (((delayed-nu-fission / nu-fission) * (delayed... 9.39e-08 2.57e-10 \n", + "1 (((delayed-nu-fission / nu-fission) * (delayed... 7.61e-09 2.28e-11 \n", + "2 (((delayed-nu-fission / nu-fission) * (delayed... 1.10e-06 3.01e-09 \n", + "3 (((delayed-nu-fission / nu-fission) * (delayed... 1.42e-07 4.26e-10 \n", + "4 (((delayed-nu-fission / nu-fission) * (delayed... 6.69e-07 1.83e-09 \n", + "5 (((delayed-nu-fission / nu-fission) * (delayed... 5.42e-08 1.62e-10 \n", + "6 (((delayed-nu-fission / nu-fission) * (delayed... 4.89e-07 1.34e-09 \n", + "7 (((delayed-nu-fission / nu-fission) * (delayed... 2.63e-08 7.86e-11 \n", + "8 (((delayed-nu-fission / nu-fission) * (delayed... 1.47e-08 4.02e-11 \n", + "9 (((delayed-nu-fission / nu-fission) * (delayed... 1.27e-09 3.82e-12 \n", + "10 (((delayed-nu-fission / nu-fission) * (delayed... 1.19e-09 3.24e-12 \n", + "11 (((delayed-nu-fission / nu-fission) * (delayed... 5.37e-11 1.61e-13 " ] }, "execution_count": 22, @@ -1204,7 +1254,7 @@ "\n", "# Create a tally object with only the delayed group filter for the time constants\n", "beta_filters = [f for f in beta.xs_tally.filters if f.type != 'delayedgroup']\n", - "lambda_tally = beta.xs_tally.summation(nuclides=beta.xs_tally.nuclides)\n", + "lambda_tally = beta.get_condensed_xs(one_group).xs_tally.summation(nuclides=beta.xs_tally.nuclides)\n", "for f in beta_filters:\n", " lambda_tally = lambda_tally.summation(filter_type=f.type, remove_filter=True) * 0. + 1.\n", "\n", @@ -1217,8 +1267,8 @@ "lambda_tally.scores = ['lambda']\n", "\n", "# Use tally arithmetic to compute the precursor concentrations\n", - "precursor_conc = beta.xs_tally.summation(filter_type='energy', remove_filter=True) * \\\n", - " delayed_nu_fission.xs_tally.summation(filter_type='energy', remove_filter=True) / lambda_tally\n", + "precursor_conc = beta.get_condensed_xs(one_group).xs_tally.summation(filter_type='energy', remove_filter=True) * \\\n", + " delayed_nu_fission.get_condensed_xs(one_group).xs_tally.summation(filter_type='energy', remove_filter=True) / lambda_tally\n", " \n", "# The difference is a derived tally which can generate Pandas DataFrames for inspection\n", "precursor_conc.get_pandas_dataframe()" @@ -1242,8 +1292,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Beta (U-235) : 0.006504 +/- 0.000015\n", - "Beta (Pu-239): 0.002245 +/- 0.000004\n" + "Beta (U-235) : 0.006504 +/- 0.000007\n", + "Beta (Pu-239): 0.002245 +/- 0.000002\n" ] }, { @@ -1260,7 +1310,7 @@ "data": { "image/png": "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\n771XLz/wwAO55JJLWLBgAfPmzVt9R8qOtPXkVe/EUikFl7+jrW3T5r6SGshKOGdGxNK0+HLggxGx\nK1mp5sftjtisizQ3w9KlVTfr1pYuza7D1rjjjjtYuHAhr7zyCj/72c/o379/m9ufcsopq29XfOGF\nF6617tvf/jZTp07lpptuqrhvv379GDNmDBdccAEvvvgiAP/1X//Fbrvtxq677so+++zD4YcfzoYb\nbsgWW2xRmwusoN5VYbOBYSWvtwHmlm0zC9gWmCupLzAwIt6UNDstX2dfSRuQJZVrI+KOlg0i4l8l\n2/8auKu1wJpLPv1NTU00NTXlviizeih6UmnRna6jM1VXNYuhQulk0003XavEMG/evNXPr7jiCq64\n4op19hk3bhz33Xcfjz76KA0NDW2ec/ny5bz88svsvPPO9O/fn0svvZRLL70UgF/96lfsvvvuuare\nJk2axKRJk6put448dwPr6APoC/w3MBzoBzwH7Fi2zanA5en5WLJ2FYCdgGfTfiPTcVpuTHYNWSN9\n+fm2Knl+FnBDK3FVv4Wa2XqW3aE9exRRV8Xfnf+eR4wYEQ8++OA6y48++ug4+uijY/ny5TF58uQY\nMmRIHHvssa0e5wc/+EGMGjUq5s2bt866J598Mh577LF47733YtmyZXHhhRfGgAED4vXXX4+IiDlz\n5sTcuXMjIuKJJ56IbbfdNh544IE2427tPSXnHSTXx22ADwD+DswAzknLxgOfS883Am5O658ERpTs\ne25KKNOA0WnZ3sDKlKSeBaYAB8SahPNCWvf/gC1bianNN9WsKzixdPS83fcNGzlyZMXE8vLLL8de\ne+0VjY2N8bnPfS7OPPPMNhOLpOjfv380Njauvl3xBRdcEBERjzzySOyyyy4xYMCAGDx4cDQ1NcVj\njz22et9HH300RowYEZtuumnssMMOceONN1aNu7OJxbcmNusmSmsmivjx7Kr4fWvi2vOtic3MrFup\n2ngv6ePAMcAnga2BZcBfgd8D10XEorpGaGZmhdJmVZikP5D1xLoD+AvwT6A/sD2wL3AwWSP6nfUP\ntXZcFWbdkavCOnpeV4XVWmerwqolliERsaBKAFW36W6cWKw7cmLp6HmdWGqtrm0sLQlD0qZp3i8k\nbS/pEEkblm5jZmYG+RvvHwX6SxoK3A8cC/y2XkGZmVlx5R15r4h4R9IJZIMZL5L0bD0DMzPLY/jw\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1269,7 +1319,7 @@ ], "source": [ "energy_filter = [f for f in beta.xs_tally.filters if f.type == 'energy']\n", - "beta_integrated = beta.xs_tally.summation(filter_type='energy', remove_filter=True)\n", + "beta_integrated = beta.get_condensed_xs(one_group).xs_tally.summation(filter_type='energy', remove_filter=True)\n", "beta_u235 = beta_integrated.get_values(nuclides=['U235'])\n", "beta_pu239 = beta_integrated.get_values(nuclides=['Pu239'])\n", "\n", @@ -1323,7 +1373,7 @@ "data": { "image/png": "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\n9erFmWeeyRtvvAFAkyZNgmWqSk5ODjt37mTHjh2AnT5zwoQJFBQU0KZNGyZMmBDTNPTCCy9w3HHH\n0bp1a8aPH1+ts3/wwQc5/vjjadOmDQMHDmTdunUR21m6dCmnnHIKBQUFFBcXh/xIBw8ezF/+8peQ\n+ieddBJPP23/dNasWUP//v1p06YNxx13HE888USw3o4dOzj//PMpKCigd+/eCaU3bciULi8NboaG\nR1IVg6oeAK4Dngc+Bhao6iciUioigwFE5Mcish64CLhPRAKJfYcCfYCxIvK+iLwnIifWpXyW30JK\npdoWzS4bqX5dRJ9cv359sKOMhldzyPfff8/KlSurpfw86aSTaNq0KRdccAFXXHFFMEdDIMxugIMH\nD7JhwwZ2795dre3t27dz0UUXcdttt7Ft2zaOPvpoXnvttWD5U089xe9//3ueeuoptm7dyplnnsmI\nESMiypmXl8fcuXPZtWsXS5Ys4b777gt2/IEcDQFWrVrFpk2bGDRoEHv37qV///6MHDmSbdu2MX/+\nfK699lo++eQTAK699lqaN2/Oli1bmD17tmf/h8FgqCLpsZJU9TlVPUZVu6rq751jJar6rPP5HVXt\nqKotVfVQZ3oqqvqYqjZR1VNU9WTn73+SLW99csEFF1BYWMhZZ51Fv379IialqSlXX301J598Mv37\n9w85vmrVKnbv3s28efM444wzgscHDhzI3XffzbZt2/jqq6+CWeH27t1bre2lS5dywgkn8LOf/YxG\njRpx/fXX065du2D5Aw88wJQpU+jWrRs5OTnceOONfPDBByFJfwKcddZZQeX1ox/9iOHDh7N8+XIA\nhgwZwmeffRZ823/00UcZNmwYjRo14tlnn6Vz586MHj0aEaFHjx5ceOGFLFy4kIMHD/Lkk09yyy23\n0LRpU0444QTGjBmT4BM1GBoeJoheClm8eDE7duzgyy+/5M9//jNNmjSJe84111wTzMXw+9//PqRs\n8uTJrF69Omou58aNGzNs2DBmzJjBhx/aA7OpU6dy8skn06NHD/r06cPPfvYzcnNzOeyww6qdH57y\nEwjZLy8vZ+LEicF0nG3atEFEqmVbA3jrrbc4++yzOeyww2jVqhX3339/MOVn48aNGTp0KI8++iiq\nyvz584O5oMvLy3nzzTdDUn7OmzePLVu2sHXrViorKznyyCOD12mwwfn8JVVbBALO6Ax0z0Uk/F6y\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 3099ff0b51..a40857df97 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -18,17 +18,18 @@ if sys.version_info[0] >= 3: class Library(object): - """A multi-group cross section library for some energy group structure. + """A multi-energy-group and multi-delayed-group cross section library for + some energy group structure. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated multi-group cross sections for deterministic neutronics calculations. - This class helps automate the generation of MGXS objects for some energy - group structure and domain type. The Library serves as a collection for - MGXS objects with routines to automate the initialization of tallies for - input files, the loading of tally data from statepoint files, data storage, - energy group condensation and more. + This class helps automate the generation of MGXS and MDGXS objects for some + energy group structure and domain type. The Library serves as a collection + for MGXS and MDGXS objects with routines to automate the initialization of + tallies for input files, the loading of tally data from statepoint files, + data storage, energy group condensation and more. Parameters ---------- @@ -64,6 +65,8 @@ class Library(object): The highest legendre moment in the scattering matrices (default is 0) energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation + delayed_groups : openmc.mgxs.DelayedGroups + Delayed groups to filter out the xs tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to compute the cross section @@ -95,6 +98,7 @@ class Library(object): self._domain_type = None self._domains = 'all' self._energy_groups = None + self._delayed_groups = None self._correction = 'P0' self._legendre_order = 0 self._tally_trigger = None @@ -126,6 +130,7 @@ class Library(object): clone._correction = self.correction clone._legendre_order = self.legendre_order clone._energy_groups = copy.deepcopy(self.energy_groups, memo) + clone._delayed_groups = copy.deepcopy(self.delayed_groups, memo) clone._tally_trigger = copy.deepcopy(self.tally_trigger, memo) clone._all_mgxs = copy.deepcopy(self.all_mgxs) clone._sp_filename = self._sp_filename @@ -194,6 +199,10 @@ class Library(object): def energy_groups(self): return self._energy_groups + @property + def delayed_groups(self): + return self._delayed_groups + @property def correction(self): return self._correction @@ -210,6 +219,13 @@ class Library(object): def num_groups(self): return self.energy_groups.num_groups + @property + def num_delayed_groups(self): + if self.delayed_groups == None: + return 0 + else: + return self.delayed_groups.num_groups + @property def all_mgxs(self): return self._all_mgxs @@ -261,7 +277,7 @@ class Library(object): def domain_type(self, domain_type): cv.check_value('domain type', domain_type, openmc.mgxs.DOMAIN_TYPES) - if by_nuclide == True and domain_type == 'mesh': + if self.by_nuclide == True and domain_type == 'mesh': raise ValueError('Unable to create MGXS library by nuclide with ' + 'mesh domain') @@ -308,6 +324,12 @@ class Library(object): cv.check_type('energy groups', energy_groups, openmc.mgxs.EnergyGroups) self._energy_groups = energy_groups + @delayed_groups.setter + def delayed_groups(self, delayed_groups): + cv.check_type('delayed groups', delayed_groups, + openmc.mgxs.DelayedGroups) + self._delayed_groups = delayed_groups + @correction.setter def correction(self, correction): cv.check_value('correction', correction, ('P0', None)) @@ -373,12 +395,19 @@ class Library(object): for domain in self.domains: self.all_mgxs[domain.id] = OrderedDict() for mgxs_type in self.mgxs_types: - mgxs = openmc.mgxs.MGXS.get_mgxs(mgxs_type, name=self.name) + if mgxs_type in openmc.mgxs.MDGXS_TYPES: + mgxs = openmc.mgxs.MDGXS.get_mgxs(mgxs_type, name=self.name) + else: + mgxs = openmc.mgxs.MGXS.get_mgxs(mgxs_type, name=self.name) + mgxs.domain = domain mgxs.domain_type = self.domain_type mgxs.energy_groups = self.energy_groups mgxs.by_nuclide = self.by_nuclide + if mgxs_type in openmc.mgxs.MDGXS_TYPES: + mgxs.delayed_groups = self.delayed_groups + # If a tally trigger was specified, add it to the MGXS if self.tally_trigger: mgxs.tally_trigger = self.tally_trigger diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index 4d65aaacc5..e985b01515 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -115,7 +115,7 @@ class MDGXS(MGXS): __metaclass__ = abc.ABCMeta def __init__(self, domain=None, domain_type=None, energy_groups=None, - by_nuclide=False, name='', delayed_groups=None): + delayed_groups=None, by_nuclide=False, name=''): super(MDGXS, self).__init__(domain, domain_type, energy_groups, by_nuclide, name) self._delayed_groups = None @@ -124,12 +124,30 @@ class MDGXS(MGXS): self.delayed_groups = delayed_groups def __deepcopy__(self, memo): - super(MDGXS, self).__deepcopy__(memo) existing = memo.get(id(self)) # If this is the first time we have tried to copy this object, copy it if existing is None: + clone = type(self).__new__(type(self)) + clone._name = self.name + clone._rxn_type = self.rxn_type + clone._by_nuclide = self.by_nuclide + 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) clone._delayed_groups = copy.deepcopy(self.delayed_groups, memo) + clone._tally_trigger = copy.deepcopy(self.tally_trigger, memo) + 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(): + clone.tallies[tally_type] = copy.deepcopy(tally, memo) + + memo[id(self)] = clone return clone @@ -143,7 +161,10 @@ class MDGXS(MGXS): @property def num_delayed_groups(self): - return self.delayed_groups.num_groups + if self.delayed_groups == None: + return 0 + else: + return self.delayed_groups.num_groups @delayed_groups.setter def delayed_groups(self, delayed_groups): @@ -167,8 +188,8 @@ class MDGXS(MGXS): @staticmethod def get_mgxs(mdgxs_type, domain=None, domain_type=None, - energy_groups=None, by_nuclide=False, name='', - delayed_groups=None): + energy_groups=None, delayed_groups=None, + by_nuclide=False, name=''): """Return a MDGXS subclass object for some energy group structure within some spatial domain for some reaction type. @@ -206,15 +227,16 @@ class MDGXS(MGXS): cv.check_value('mdgxs_type', mdgxs_type, MDGXS_TYPES) if mdgxs_type == 'delayed-nu-fission': - mdgxs = DelayedNuFissionXS(domain, domain_type, energy_groups) + mdgxs = DelayedNuFissionXS(domain, domain_type, energy_groups, + delayed_groups) elif mdgxs_type == 'chi-delayed': - mdgxs = ChiDelayed(domain, domain_type, energy_groups) + mdgxs = ChiDelayed(domain, domain_type, energy_groups, + delayed_groups) elif mdgxs_type == 'beta': - mdgxs = Beta(domain, domain_type, energy_groups) + mdgxs = Beta(domain, domain_type, energy_groups, delayed_groups) mdgxs.by_nuclide = by_nuclide mdgxs.name = name - mdgxs.delayed_groups = delayed_groups return mdgxs def get_xs(self, groups='all', subdomains='all', nuclides='all', @@ -936,9 +958,9 @@ class ChiDelayed(MDGXS): """ def __init__(self, domain=None, domain_type=None, energy_groups=None, - by_nuclide=False, name='', delayed_groups=None): + delayed_groups=None, by_nuclide=False, name=''): super(ChiDelayed, self).__init__(domain, domain_type, energy_groups, - by_nuclide, name, delayed_groups) + delayed_groups, by_nuclide, name) self._rxn_type = 'chi-delayed' @property @@ -1390,10 +1412,10 @@ class DelayedNuFissionXS(MDGXS): """ def __init__(self, domain=None, domain_type=None, energy_groups=None, - by_nuclide=False, name='', delayed_groups=None): + delayed_groups=None, by_nuclide=False, name=''): super(DelayedNuFissionXS, self).__init__(domain, domain_type, - energy_groups, by_nuclide, - name, delayed_groups) + energy_groups, delayed_groups, + by_nuclide, name) self._rxn_type = 'delayed-nu-fission' @@ -1509,9 +1531,9 @@ class Beta(MDGXS): """ def __init__(self, domain=None, domain_type=None, energy_groups=None, - by_nuclide=False, name='', delayed_groups=None): + delayed_groups=None, by_nuclide=False, name=''): super(Beta, self).__init__(domain, domain_type, energy_groups, - by_nuclide, name, delayed_groups) + delayed_groups, by_nuclide, name) self._rxn_type = 'beta' @property diff --git a/openmc/tallies.py b/openmc/tallies.py index 2073bbd282..58cf34ed7b 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -795,6 +795,9 @@ class Tally(object): else: no_scores_match = False + if score == 'current' and score not in self.scores: + return False + # Nuclides cannot be specified on 'flux' scores if 'flux' in self.scores or 'flux' in other.scores: if self.nuclides != other.nuclides: From 92e77eb57403399672bf8003ab764efdd96991a5 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 2 Aug 2016 20:35:21 -0400 Subject: [PATCH 228/417] added mdgxs tests --- openmc/mgxs/library.py | 6 +- .../inputs_true.dat | 1 + .../results_true.dat | 63 ++++++++++ .../test_mdgxs_library_condense.py | 82 ++++++++++++ .../inputs_true.dat | 1 + .../results_true.dat | 21 ++++ .../test_mdgxs_library_distribcell.py | 80 ++++++++++++ tests/test_mdgxs_library_hdf5/inputs_true.dat | 1 + .../test_mdgxs_library_hdf5/results_true.dat | 117 ++++++++++++++++++ .../test_mdgxs_library_hdf5.py | 93 ++++++++++++++ tests/test_mdgxs_library_mesh/inputs_true.dat | 1 + .../test_mdgxs_library_mesh/results_true.dat | 78 ++++++++++++ .../test_mdgxs_library_mesh.py | 84 +++++++++++++ .../inputs_true.dat | 1 + .../results_true.dat | 117 ++++++++++++++++++ .../test_mdgxs_library_no_nuclides.py | 80 ++++++++++++ .../inputs_true.dat | 1 + .../results_true.dat | 1 + .../test_mdgxs_library_nuclides.py | 80 ++++++++++++ 19 files changed, 906 insertions(+), 2 deletions(-) create mode 100644 tests/test_mdgxs_library_condense/inputs_true.dat create mode 100644 tests/test_mdgxs_library_condense/results_true.dat create mode 100644 tests/test_mdgxs_library_condense/test_mdgxs_library_condense.py create mode 100644 tests/test_mdgxs_library_distribcell/inputs_true.dat create mode 100644 tests/test_mdgxs_library_distribcell/results_true.dat create mode 100644 tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py create mode 100644 tests/test_mdgxs_library_hdf5/inputs_true.dat create mode 100644 tests/test_mdgxs_library_hdf5/results_true.dat create mode 100644 tests/test_mdgxs_library_hdf5/test_mdgxs_library_hdf5.py create mode 100644 tests/test_mdgxs_library_mesh/inputs_true.dat create mode 100644 tests/test_mdgxs_library_mesh/results_true.dat create mode 100644 tests/test_mdgxs_library_mesh/test_mdgxs_library_mesh.py create mode 100644 tests/test_mdgxs_library_no_nuclides/inputs_true.dat create mode 100644 tests/test_mdgxs_library_no_nuclides/results_true.dat create mode 100644 tests/test_mdgxs_library_no_nuclides/test_mdgxs_library_no_nuclides.py create mode 100644 tests/test_mdgxs_library_nuclides/inputs_true.dat create mode 100644 tests/test_mdgxs_library_nuclides/results_true.dat create mode 100644 tests/test_mdgxs_library_nuclides/test_mdgxs_library_nuclides.py diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index a40857df97..56399ee2f0 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -255,12 +255,14 @@ class Library(object): @mgxs_types.setter def mgxs_types(self, mgxs_types): + all_mgxs_types = np.append(openmc.mgxs.MGXS_TYPES, + openmc.mgxs.MDGXS_TYPES) if mgxs_types == 'all': - self._mgxs_types = openmc.mgxs.MGXS_TYPES + self._mgxs_types = all_mgxs_types else: cv.check_iterable_type('mgxs_types', mgxs_types, basestring) for mgxs_type in mgxs_types: - cv.check_value('mgxs_type', mgxs_type, openmc.mgxs.MGXS_TYPES) + cv.check_value('mgxs_type', mgxs_type, all_mgxs_types) self._mgxs_types = mgxs_types @by_nuclide.setter diff --git a/tests/test_mdgxs_library_condense/inputs_true.dat b/tests/test_mdgxs_library_condense/inputs_true.dat new file mode 100644 index 0000000000..49fe693ee4 --- /dev/null +++ b/tests/test_mdgxs_library_condense/inputs_true.dat @@ -0,0 +1 @@ +9e8d8b468bdd81d996956d0d43eef5779b7b7d5ca3f6a1e628f10318748086183e45cf221edf7a274ff2dc6aff34f4411e21952740cdb7652477dfa0a1ffb5f2 \ No newline at end of file diff --git a/tests/test_mdgxs_library_condense/results_true.dat b/tests/test_mdgxs_library_condense/results_true.dat new file mode 100644 index 0000000000..20cc048d14 --- /dev/null +++ b/tests/test_mdgxs_library_condense/results_true.dat @@ -0,0 +1,63 @@ + material delayedgroup group in nuclide mean std. dev. +0 10000 1 1 total 0.000021 0.000001 +1 10000 2 1 total 0.000110 0.000008 +2 10000 3 1 total 0.000107 0.000007 +3 10000 4 1 total 0.000249 0.000017 +4 10000 5 1 total 0.000112 0.000007 +5 10000 6 1 total 0.000046 0.000003 + material delayedgroup group out nuclide mean std. dev. +0 10000 1 1 total 0 0.000000 +1 10000 2 1 total 1 0.869128 +2 10000 3 1 total 1 1.414214 +3 10000 4 1 total 1 0.360359 +4 10000 5 1 total 0 0.000000 +5 10000 6 1 total 0 0.000000 + material delayedgroup group in nuclide mean std. dev. +0 10000 1 1 total 0.000227 0.000020 +1 10000 2 1 total 0.001214 0.000108 +2 10000 3 1 total 0.001184 0.000104 +3 10000 4 1 total 0.002752 0.000240 +4 10000 5 1 total 0.001231 0.000105 +5 10000 6 1 total 0.000512 0.000044 + material delayedgroup group in nuclide mean std. dev. +0 10001 1 1 total 0 0 +1 10001 2 1 total 0 0 +2 10001 3 1 total 0 0 +3 10001 4 1 total 0 0 +4 10001 5 1 total 0 0 +5 10001 6 1 total 0 0 + material delayedgroup group out nuclide mean std. dev. +0 10001 1 1 total 0 0 +1 10001 2 1 total 0 0 +2 10001 3 1 total 0 0 +3 10001 4 1 total 0 0 +4 10001 5 1 total 0 0 +5 10001 6 1 total 0 0 + material delayedgroup group in nuclide mean std. dev. +0 10001 1 1 total 0 0 +1 10001 2 1 total 0 0 +2 10001 3 1 total 0 0 +3 10001 4 1 total 0 0 +4 10001 5 1 total 0 0 +5 10001 6 1 total 0 0 + material delayedgroup group in nuclide mean std. dev. +0 10002 1 1 total 0 0 +1 10002 2 1 total 0 0 +2 10002 3 1 total 0 0 +3 10002 4 1 total 0 0 +4 10002 5 1 total 0 0 +5 10002 6 1 total 0 0 + material delayedgroup group out nuclide mean std. dev. +0 10002 1 1 total 0 0 +1 10002 2 1 total 0 0 +2 10002 3 1 total 0 0 +3 10002 4 1 total 0 0 +4 10002 5 1 total 0 0 +5 10002 6 1 total 0 0 + material delayedgroup group in nuclide mean std. dev. +0 10002 1 1 total 0 0 +1 10002 2 1 total 0 0 +2 10002 3 1 total 0 0 +3 10002 4 1 total 0 0 +4 10002 5 1 total 0 0 +5 10002 6 1 total 0 0 diff --git a/tests/test_mdgxs_library_condense/test_mdgxs_library_condense.py b/tests/test_mdgxs_library_condense/test_mdgxs_library_condense.py new file mode 100644 index 0000000000..75e40be909 --- /dev/null +++ b/tests/test_mdgxs_library_condense/test_mdgxs_library_condense.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import hashlib +sys.path.insert(0, os.pardir) +from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet +import openmc +import openmc.mgxs + + +class MDGXSTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() + + # Generate inputs using parent class routine + super(MDGXSTestHarness, self)._build_inputs() + + # Initialize a two-group structure + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + + # Initialize MGXS Library for a few cross section types + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) + self.mgxs_lib.by_nuclide = False + + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES + self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups + self.mgxs_lib.domain_type = 'material' + self.mgxs_lib.build_library() + + # Initialize a tallies file + self._input_set.tallies = openmc.Tallies() + self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) + self._input_set.tallies.export_to_xml() + + 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) + + # Load the MGXS library from the statepoint + self.mgxs_lib.load_from_statepoint(sp) + + # Build a condensed 1-group MGXS Library + one_group = openmc.mgxs.EnergyGroups([0., 20.]) + condense_lib = self.mgxs_lib.get_condensed_library(one_group) + + # Build a string from Pandas Dataframe for each 1-group MGXS + outstr = '' + for domain in condense_lib.domains: + for mgxs_type in condense_lib.mgxs_types: + mgxs = condense_lib.get_mgxs(domain, mgxs_type) + df = mgxs.get_pandas_dataframe() + outstr += df.to_string() + '\n' + + # 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(MDGXSTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = MDGXSTestHarness('statepoint.10.*', True) + harness.main() diff --git a/tests/test_mdgxs_library_distribcell/inputs_true.dat b/tests/test_mdgxs_library_distribcell/inputs_true.dat new file mode 100644 index 0000000000..9b07e293ee --- /dev/null +++ b/tests/test_mdgxs_library_distribcell/inputs_true.dat @@ -0,0 +1 @@ +2d7ef183881fb47ba66ac4ff60a4e510f7b85361aca6dbbe6df2dc89b8492ad3bacbde747803532670bf207ec586dab910448fc1e49f2e57a3bf93256d24442c \ No newline at end of file diff --git a/tests/test_mdgxs_library_distribcell/results_true.dat b/tests/test_mdgxs_library_distribcell/results_true.dat new file mode 100644 index 0000000000..22aeef3967 --- /dev/null +++ b/tests/test_mdgxs_library_distribcell/results_true.dat @@ -0,0 +1,21 @@ + avg(distribcell) delayedgroup group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0 0 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 0 0 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 0 0 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0 0 +4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0 0 +5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 0 0 + avg(distribcell) delayedgroup 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 0 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 0 0 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 0 0 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0 0 +4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0 0 +5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 0 0 + avg(distribcell) delayedgroup group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0 0 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 0 0 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 0 0 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0 0 +4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0 0 +5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 0 0 diff --git a/tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py b/tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py new file mode 100644 index 0000000000..48b3758715 --- /dev/null +++ b/tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py @@ -0,0 +1,80 @@ +#!/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 MDGXSTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Generate inputs using parent class routine + super(MDGXSTestHarness, self)._build_inputs() + + # Initialize a one-group structure + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) + + # Initialize a six-group structure + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + + # Initialize MGXS Library for a few cross section types + # for one material-filled cell in the geometry + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) + self.mgxs_lib.by_nuclide = False + + # Test all MDGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES + self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups + self.mgxs_lib.domain_type = 'distribcell' + material_cells = self.mgxs_lib.openmc_geometry.get_all_material_cells() + self.mgxs_lib.domains = [material_cells[-1]] + self.mgxs_lib.build_library() + + # Initialize a tallies file + self._input_set.tallies = openmc.Tallies() + self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) + self._input_set.tallies.export_to_xml() + + 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) + + # Load the MGXS library from the statepoint + self.mgxs_lib.load_from_statepoint(sp) + + # Average the MGXS across distribcell subdomains + avg_lib = self.mgxs_lib.get_subdomain_avg_library() + + # Build a string from Pandas Dataframe for each 1-group MGXS + outstr = '' + for domain in avg_lib.domains: + for mgxs_type in avg_lib.mgxs_types: + mgxs = avg_lib.get_mgxs(domain, mgxs_type) + df = mgxs.get_pandas_dataframe() + outstr += df.to_string() + '\n' + + # 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(MDGXSTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = MDGXSTestHarness('statepoint.10.*', True) + harness.main() diff --git a/tests/test_mdgxs_library_hdf5/inputs_true.dat b/tests/test_mdgxs_library_hdf5/inputs_true.dat new file mode 100644 index 0000000000..49fe693ee4 --- /dev/null +++ b/tests/test_mdgxs_library_hdf5/inputs_true.dat @@ -0,0 +1 @@ +9e8d8b468bdd81d996956d0d43eef5779b7b7d5ca3f6a1e628f10318748086183e45cf221edf7a274ff2dc6aff34f4411e21952740cdb7652477dfa0a1ffb5f2 \ No newline at end of file diff --git a/tests/test_mdgxs_library_hdf5/results_true.dat b/tests/test_mdgxs_library_hdf5/results_true.dat new file mode 100644 index 0000000000..d1b6358716 --- /dev/null +++ b/tests/test_mdgxs_library_hdf5/results_true.dat @@ -0,0 +1,117 @@ +domain=10000 type=delayed-nu-fission +[[ 2.29808234e-05 1.06974158e-04] + [ 1.43606337e-04 5.52167907e-04] + [ 1.51382216e-04 5.27147681e-04] + [ 7.42603178e-05 2.22018043e-04] + [ 4.14908454e-05 9.10244403e-05] + [ 1.70016000e-05 3.81298119e-05]] +[[ 1.66363133e-06 9.49156242e-06] + [ 1.05907806e-05 4.89925426e-05] + [ 1.12671238e-05 4.67725567e-05] + [ 5.22610273e-06 1.87563195e-05] + [ 2.99830766e-06 7.68984041e-06] + [ 1.22654684e-06 3.22124663e-06]] +domain=10000 type=chi-delayed +[[ 0. 0.] + [ 1. 0.] + [ 1. 0.] + [ 1. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0. ] + [ 0.86912776 0. ] + [ 1.41421356 0. ] + [ 0.36035904 0. ] + [ 0. 0. ] + [ 0. 0. ]] +domain=10000 type=beta +[[ 4.89188107e-05 2.27713711e-04] + [ 3.05691886e-04 1.17538858e-03] + [ 3.22244241e-04 1.12212853e-03] + [ 3.82159891e-03 1.14255357e-02] + [ 2.13520995e-03 4.68431744e-03] + [ 8.74939644e-04 1.96224379e-03]] +[[ 4.67388620e-06 2.46946810e-05] + [ 2.95223877e-05 1.27466393e-04] + [ 3.12885004e-05 1.21690543e-04] + [ 3.21434855e-04 1.09939816e-03] + [ 1.82980497e-04 4.50738567e-04] + [ 7.48899920e-05 1.88812772e-04]] +domain=10001 type=delayed-nu-fission +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +domain=10001 type=chi-delayed +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +domain=10001 type=beta +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +domain=10002 type=delayed-nu-fission +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +domain=10002 type=chi-delayed +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +domain=10002 type=beta +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] diff --git a/tests/test_mdgxs_library_hdf5/test_mdgxs_library_hdf5.py b/tests/test_mdgxs_library_hdf5/test_mdgxs_library_hdf5.py new file mode 100644 index 0000000000..79e0edf7c2 --- /dev/null +++ b/tests/test_mdgxs_library_hdf5/test_mdgxs_library_hdf5.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import hashlib +import h5py +sys.path.insert(0, os.pardir) +from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet +import openmc +import openmc.mgxs + + +class MDGXSTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() + + # Generate inputs using parent class routine + super(MDGXSTestHarness, self)._build_inputs() + + # Initialize a two-group structure + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) + + # Initialize a six-group structure + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + + # Initialize MGXS Library for a few cross section types + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) + self.mgxs_lib.by_nuclide = False + + # Test all MDGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES + self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups + self.mgxs_lib.domain_type = 'material' + self.mgxs_lib.build_library() + + # Initialize a tallies file + self._input_set.tallies = openmc.Tallies() + self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) + self._input_set.tallies.export_to_xml() + + 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) + + # Load the MGXS library from the statepoint + self.mgxs_lib.load_from_statepoint(sp) + + # Export the MGXS Library to an HDF5 file + self.mgxs_lib.build_hdf5_store(directory='.') + + # Open the MGXS HDF5 file + f = h5py.File('mgxs.h5', 'r') + + # Build a string from the datasets in the HDF5 file + outstr = '' + for domain in self.mgxs_lib.domains: + for mgxs_type in self.mgxs_lib.mgxs_types: + outstr += 'domain={0} type={1}\n'.format(domain.id, mgxs_type) + key = 'material/{0}/{1}/average'.format(domain.id, mgxs_type) + outstr += str(f[key][...]) + '\n' + key = 'material/{0}/{1}/std. dev.'.format(domain.id, mgxs_type) + outstr += str(f[key][...]) + '\n' + + # Close the MGXS HDF5 file + f.close() + + # 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(MDGXSTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + if os.path.exists(f): os.remove(f) + f = os.path.join(os.getcwd(), 'mgxs.h5') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = MDGXSTestHarness('statepoint.10.*', True) + harness.main() diff --git a/tests/test_mdgxs_library_mesh/inputs_true.dat b/tests/test_mdgxs_library_mesh/inputs_true.dat new file mode 100644 index 0000000000..02a9147f88 --- /dev/null +++ b/tests/test_mdgxs_library_mesh/inputs_true.dat @@ -0,0 +1 @@ +f76b5d0cc2dbadd48d51918d8c82e4457e9ce3eafb191cd51394e420ba3ae80eccdff03098b276f7d3eb87f6a4616f1dd0e39e1892244a29d0f486ff2bf4ddbb \ No newline at end of file diff --git a/tests/test_mdgxs_library_mesh/results_true.dat b/tests/test_mdgxs_library_mesh/results_true.dat new file mode 100644 index 0000000000..82f8014f90 --- /dev/null +++ b/tests/test_mdgxs_library_mesh/results_true.dat @@ -0,0 +1,78 @@ + mesh 1 delayedgroup group in nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.000004 4.432287e-07 +1 1 1 1 2 1 total 0.000026 2.652890e-06 +2 1 1 1 3 1 total 0.000024 2.402024e-06 +3 1 1 1 4 1 total 0.000054 5.463683e-06 +4 1 1 1 5 1 total 0.000026 2.662762e-06 +5 1 1 1 6 1 total 0.000010 1.037947e-06 +6 1 2 1 1 1 total 0.000005 1.099501e-06 +7 1 2 1 2 1 total 0.000029 6.440339e-06 +8 1 2 1 3 1 total 0.000027 5.929275e-06 +9 1 2 1 4 1 total 0.000061 1.359998e-05 +10 1 2 1 5 1 total 0.000029 6.491514e-06 +11 1 2 1 6 1 total 0.000011 2.575232e-06 +12 2 1 1 1 1 total 0.000004 6.988358e-07 +13 2 1 1 2 1 total 0.000023 4.116310e-06 +14 2 1 1 3 1 total 0.000021 3.817611e-06 +15 2 1 1 4 1 total 0.000049 8.889347e-06 +16 2 1 1 5 1 total 0.000024 4.380665e-06 +17 2 1 1 6 1 total 0.000009 1.746558e-06 +18 2 2 1 1 1 total 0.000004 1.661116e-06 +19 2 2 1 2 1 total 0.000025 9.704053e-06 +20 2 2 1 3 1 total 0.000023 9.007295e-06 +21 2 2 1 4 1 total 0.000054 2.084505e-05 +22 2 2 1 5 1 total 0.000026 9.981347e-06 +23 2 2 1 6 1 total 0.000010 3.988280e-06 + mesh 1 delayedgroup group out nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0 0.000000 +1 1 1 1 2 1 total 0 0.000000 +2 1 1 1 3 1 total 0 0.000000 +3 1 1 1 4 1 total 1 1.414214 +4 1 1 1 5 1 total 0 0.000000 +5 1 1 1 6 1 total 0 0.000000 +6 1 2 1 1 1 total 0 0.000000 +7 1 2 1 2 1 total 0 0.000000 +8 1 2 1 3 1 total 0 0.000000 +9 1 2 1 4 1 total 0 0.000000 +10 1 2 1 5 1 total 0 0.000000 +11 1 2 1 6 1 total 0 0.000000 +12 2 1 1 1 1 total 0 0.000000 +13 2 1 1 2 1 total 0 0.000000 +14 2 1 1 3 1 total 0 0.000000 +15 2 1 1 4 1 total 0 0.000000 +16 2 1 1 5 1 total 0 0.000000 +17 2 1 1 6 1 total 0 0.000000 +18 2 2 1 1 1 total 0 0.000000 +19 2 2 1 2 1 total 0 0.000000 +20 2 2 1 3 1 total 0 0.000000 +21 2 2 1 4 1 total 0 0.000000 +22 2 2 1 5 1 total 0 0.000000 +23 2 2 1 6 1 total 0 0.000000 + mesh 1 delayedgroup group in nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.000166 0.000023 +1 1 1 1 2 1 total 0.000990 0.000136 +2 1 1 1 3 1 total 0.000907 0.000123 +3 1 1 1 4 1 total 0.002088 0.000282 +4 1 1 1 5 1 total 0.001014 0.000137 +5 1 1 1 6 1 total 0.000400 0.000054 +6 1 2 1 1 1 total 0.000171 0.000039 +7 1 2 1 2 1 total 0.001003 0.000226 +8 1 2 1 3 1 total 0.000919 0.000208 +9 1 2 1 4 1 total 0.002101 0.000478 +10 1 2 1 5 1 total 0.000997 0.000228 +11 1 2 1 6 1 total 0.000395 0.000090 +12 2 1 1 1 1 total 0.000168 0.000030 +13 2 1 1 2 1 total 0.001003 0.000178 +14 2 1 1 3 1 total 0.000927 0.000165 +15 2 1 1 4 1 total 0.002150 0.000385 +16 2 1 1 5 1 total 0.001057 0.000190 +17 2 1 1 6 1 total 0.000418 0.000076 +18 2 2 1 1 1 total 0.000171 0.000082 +19 2 2 1 2 1 total 0.001010 0.000481 +20 2 2 1 3 1 total 0.000932 0.000445 +21 2 2 1 4 1 total 0.002151 0.001030 +22 2 2 1 5 1 total 0.001030 0.000493 +23 2 2 1 6 1 total 0.000410 0.000197 diff --git a/tests/test_mdgxs_library_mesh/test_mdgxs_library_mesh.py b/tests/test_mdgxs_library_mesh/test_mdgxs_library_mesh.py new file mode 100644 index 0000000000..88ee7213da --- /dev/null +++ b/tests/test_mdgxs_library_mesh/test_mdgxs_library_mesh.py @@ -0,0 +1,84 @@ +#!/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 MDGXSTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Generate inputs using parent class routine + super(MDGXSTestHarness, self)._build_inputs() + + # Initialize a one-group structure + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) + + # Initialize a six-group structure + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + + # Initialize MGXS Library for a few cross section types + # for one material-filled cell in the geometry + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) + self.mgxs_lib.by_nuclide = False + + # Test all MDGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES + self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups + self.mgxs_lib.domain_type = 'mesh' + + # Instantiate a tally mesh + mesh = openmc.Mesh(mesh_id=1) + mesh.type = 'regular' + mesh.dimension = [2, 2] + mesh.lower_left = [-100., -100.] + mesh.width = [100., 100.] + + self.mgxs_lib.domains = [mesh] + self.mgxs_lib.build_library() + + # Initialize a tallies file + self._input_set.tallies = openmc.Tallies() + self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) + self._input_set.tallies.export_to_xml() + + 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) + + # Load the MGXS library from the statepoint + self.mgxs_lib.load_from_statepoint(sp) + + # Build a string from Pandas Dataframe for each 1-group MGXS + outstr = '' + for domain in self.mgxs_lib.domains: + for mgxs_type in self.mgxs_lib.mgxs_types: + mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) + df = mgxs.get_pandas_dataframe() + outstr += df.to_string() + '\n' + + # 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(MDGXSTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = MDGXSTestHarness('statepoint.10.*', True) + harness.main() diff --git a/tests/test_mdgxs_library_no_nuclides/inputs_true.dat b/tests/test_mdgxs_library_no_nuclides/inputs_true.dat new file mode 100644 index 0000000000..49fe693ee4 --- /dev/null +++ b/tests/test_mdgxs_library_no_nuclides/inputs_true.dat @@ -0,0 +1 @@ +9e8d8b468bdd81d996956d0d43eef5779b7b7d5ca3f6a1e628f10318748086183e45cf221edf7a274ff2dc6aff34f4411e21952740cdb7652477dfa0a1ffb5f2 \ No newline at end of file diff --git a/tests/test_mdgxs_library_no_nuclides/results_true.dat b/tests/test_mdgxs_library_no_nuclides/results_true.dat new file mode 100644 index 0000000000..e3afdcdb6d --- /dev/null +++ b/tests/test_mdgxs_library_no_nuclides/results_true.dat @@ -0,0 +1,117 @@ + material delayedgroup group in nuclide mean std. dev. +1 10000 1 1 total 0.000023 0.000002 +3 10000 2 1 total 0.000144 0.000011 +5 10000 3 1 total 0.000151 0.000011 +7 10000 4 1 total 0.000074 0.000005 +9 10000 5 1 total 0.000041 0.000003 +11 10000 6 1 total 0.000017 0.000001 +0 10000 1 2 total 0.000107 0.000009 +2 10000 2 2 total 0.000552 0.000049 +4 10000 3 2 total 0.000527 0.000047 +6 10000 4 2 total 0.000222 0.000019 +8 10000 5 2 total 0.000091 0.000008 +10 10000 6 2 total 0.000038 0.000003 + material delayedgroup group out nuclide mean std. dev. +1 10000 1 1 total 0 0.000000 +3 10000 2 1 total 1 0.869128 +5 10000 3 1 total 1 1.414214 +7 10000 4 1 total 1 0.360359 +9 10000 5 1 total 0 0.000000 +11 10000 6 1 total 0 0.000000 +0 10000 1 2 total 0 0.000000 +2 10000 2 2 total 0 0.000000 +4 10000 3 2 total 0 0.000000 +6 10000 4 2 total 0 0.000000 +8 10000 5 2 total 0 0.000000 +10 10000 6 2 total 0 0.000000 + material delayedgroup group in nuclide mean std. dev. +1 10000 1 1 total 0.000049 0.000005 +3 10000 2 1 total 0.000306 0.000030 +5 10000 3 1 total 0.000322 0.000031 +7 10000 4 1 total 0.003822 0.000321 +9 10000 5 1 total 0.002135 0.000183 +11 10000 6 1 total 0.000875 0.000075 +0 10000 1 2 total 0.000228 0.000025 +2 10000 2 2 total 0.001175 0.000127 +4 10000 3 2 total 0.001122 0.000122 +6 10000 4 2 total 0.011426 0.001099 +8 10000 5 2 total 0.004684 0.000451 +10 10000 6 2 total 0.001962 0.000189 + material delayedgroup group in nuclide mean std. dev. +1 10001 1 1 total 0 0 +3 10001 2 1 total 0 0 +5 10001 3 1 total 0 0 +7 10001 4 1 total 0 0 +9 10001 5 1 total 0 0 +11 10001 6 1 total 0 0 +0 10001 1 2 total 0 0 +2 10001 2 2 total 0 0 +4 10001 3 2 total 0 0 +6 10001 4 2 total 0 0 +8 10001 5 2 total 0 0 +10 10001 6 2 total 0 0 + material delayedgroup group out nuclide mean std. dev. +1 10001 1 1 total 0 0 +3 10001 2 1 total 0 0 +5 10001 3 1 total 0 0 +7 10001 4 1 total 0 0 +9 10001 5 1 total 0 0 +11 10001 6 1 total 0 0 +0 10001 1 2 total 0 0 +2 10001 2 2 total 0 0 +4 10001 3 2 total 0 0 +6 10001 4 2 total 0 0 +8 10001 5 2 total 0 0 +10 10001 6 2 total 0 0 + material delayedgroup group in nuclide mean std. dev. +1 10001 1 1 total 0 0 +3 10001 2 1 total 0 0 +5 10001 3 1 total 0 0 +7 10001 4 1 total 0 0 +9 10001 5 1 total 0 0 +11 10001 6 1 total 0 0 +0 10001 1 2 total 0 0 +2 10001 2 2 total 0 0 +4 10001 3 2 total 0 0 +6 10001 4 2 total 0 0 +8 10001 5 2 total 0 0 +10 10001 6 2 total 0 0 + material delayedgroup group in nuclide mean std. dev. +1 10002 1 1 total 0 0 +3 10002 2 1 total 0 0 +5 10002 3 1 total 0 0 +7 10002 4 1 total 0 0 +9 10002 5 1 total 0 0 +11 10002 6 1 total 0 0 +0 10002 1 2 total 0 0 +2 10002 2 2 total 0 0 +4 10002 3 2 total 0 0 +6 10002 4 2 total 0 0 +8 10002 5 2 total 0 0 +10 10002 6 2 total 0 0 + material delayedgroup group out nuclide mean std. dev. +1 10002 1 1 total 0 0 +3 10002 2 1 total 0 0 +5 10002 3 1 total 0 0 +7 10002 4 1 total 0 0 +9 10002 5 1 total 0 0 +11 10002 6 1 total 0 0 +0 10002 1 2 total 0 0 +2 10002 2 2 total 0 0 +4 10002 3 2 total 0 0 +6 10002 4 2 total 0 0 +8 10002 5 2 total 0 0 +10 10002 6 2 total 0 0 + material delayedgroup group in nuclide mean std. dev. +1 10002 1 1 total 0 0 +3 10002 2 1 total 0 0 +5 10002 3 1 total 0 0 +7 10002 4 1 total 0 0 +9 10002 5 1 total 0 0 +11 10002 6 1 total 0 0 +0 10002 1 2 total 0 0 +2 10002 2 2 total 0 0 +4 10002 3 2 total 0 0 +6 10002 4 2 total 0 0 +8 10002 5 2 total 0 0 +10 10002 6 2 total 0 0 diff --git a/tests/test_mdgxs_library_no_nuclides/test_mdgxs_library_no_nuclides.py b/tests/test_mdgxs_library_no_nuclides/test_mdgxs_library_no_nuclides.py new file mode 100644 index 0000000000..6ee8e9adbe --- /dev/null +++ b/tests/test_mdgxs_library_no_nuclides/test_mdgxs_library_no_nuclides.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import hashlib +sys.path.insert(0, os.pardir) +from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet +import openmc +import openmc.mgxs + + +class MDGXSTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() + + # Generate inputs using parent class routine + super(MDGXSTestHarness, self)._build_inputs() + + # Initialize a two-group structure + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) + + # Initialize a six-group structure + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + + # Initialize MGXS Library for a few cross section types + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) + self.mgxs_lib.by_nuclide = False + + # Test all MDGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES + self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups + self.mgxs_lib.domain_type = 'material' + self.mgxs_lib.build_library() + + # Initialize a tallies file + self._input_set.tallies = openmc.Tallies() + self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) + self._input_set.tallies.export_to_xml() + + 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) + + # Load the MGXS library from the statepoint + self.mgxs_lib.load_from_statepoint(sp) + + # Build a string from Pandas Dataframe for each MGXS + outstr = '' + for domain in self.mgxs_lib.domains: + for mgxs_type in self.mgxs_lib.mgxs_types: + mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) + df = mgxs.get_pandas_dataframe() + outstr += df.to_string() + '\n' + + # 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(MDGXSTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = MDGXSTestHarness('statepoint.10.*', True) + harness.main() diff --git a/tests/test_mdgxs_library_nuclides/inputs_true.dat b/tests/test_mdgxs_library_nuclides/inputs_true.dat new file mode 100644 index 0000000000..af136e1ec0 --- /dev/null +++ b/tests/test_mdgxs_library_nuclides/inputs_true.dat @@ -0,0 +1 @@ +1cf1a4e8f46f3a5e4bb2824b8b3e4f4af5b43f12e0025ef98f7f54e3212305d8ec4334b3dffeab0e0df94de2eedae2d4aa4d0f15649129264a1cc3e3f9d08b58 \ No newline at end of file diff --git a/tests/test_mdgxs_library_nuclides/results_true.dat b/tests/test_mdgxs_library_nuclides/results_true.dat new file mode 100644 index 0000000000..d8cb494c74 --- /dev/null +++ b/tests/test_mdgxs_library_nuclides/results_true.dat @@ -0,0 +1 @@ +7a6b9ba8f6289f1dac2d474f88003561a0179b45db58eedd671583eced3952f9ed708c1e35248351e469d511a6d99d33e02a9ba5135a0123f7f9c474c4e55a68 \ No newline at end of file diff --git a/tests/test_mdgxs_library_nuclides/test_mdgxs_library_nuclides.py b/tests/test_mdgxs_library_nuclides/test_mdgxs_library_nuclides.py new file mode 100644 index 0000000000..4e67c23c7f --- /dev/null +++ b/tests/test_mdgxs_library_nuclides/test_mdgxs_library_nuclides.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import hashlib +sys.path.insert(0, os.pardir) +from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet +import openmc +import openmc.mgxs + + +class MDGXSTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() + + # Generate inputs using parent class routine + super(MDGXSTestHarness, self)._build_inputs() + + # Initialize a two-group structure + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) + + # Initialize a six-group structure + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + + # Initialize MGXS Library for a few cross section types + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) + self.mgxs_lib.by_nuclide = True + + # Test all MDGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES + self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups + self.mgxs_lib.domain_type = 'material' + self.mgxs_lib.build_library() + + # Initialize a tallies file + self._input_set.tallies = openmc.Tallies() + self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) + self._input_set.tallies.export_to_xml() + + def _get_results(self, hash_output=True): + """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) + + # Load the MGXS library from the statepoint + self.mgxs_lib.load_from_statepoint(sp) + + # Build a string from Pandas Dataframe for each MGXS + outstr = '' + for domain in self.mgxs_lib.domains: + for mgxs_type in self.mgxs_lib.mgxs_types: + mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) + df = mgxs.get_pandas_dataframe() + outstr += df.to_string() + '\n' + + # 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(MDGXSTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = MDGXSTestHarness('statepoint.10.*', True) + harness.main() From c23c1cabfbb8c726ee0b4bd01bb7e74e679edcd0 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Wed, 3 Aug 2016 00:13:51 -0400 Subject: [PATCH 229/417] added second mdgxs ipython notebook --- .../pythonapi/examples/mdgxs-part-i.ipynb | 24 +- .../pythonapi/examples/mdgxs-part-ii.ipynb | 1395 +++++++++++++++++ docs/source/pythonapi/index.rst | 23 + 3 files changed, 1430 insertions(+), 12 deletions(-) create mode 100644 docs/source/pythonapi/examples/mdgxs-part-ii.ipynb diff --git a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb index b15ace9519..03bf15897e 100644 --- a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb @@ -23,7 +23,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Many Monte Carlo particle transport codes, including OpenMC, use continuous-energy nuclear cross section data. However, most deterministic neutron transport codes use *multi-group cross sections* defined over discretized energy bins or *energy groups*. Furthermore, kinetics calculations typically separate out parameters that involve delayed neutrons by delayed groups. An example is the energy spectrum for prompt and delayed neutrons for U-235 and Pu-239 computed for a light water reactor spectrum." + "Many Monte Carlo particle transport codes, including OpenMC, use continuous-energy nuclear cross section data. However, most deterministic neutron transport codes use *multi-group cross sections* defined over discretized energy bins or *energy groups*. Furthermore, kinetics calculations typically separate out parameters that involve delayed neutrons into prompt and delayed components and further subdivide delayed components by delayed groups. An example is the energy spectrum for prompt and delayed neutrons for U-235 and Pu-239 computed for a light water reactor spectrum." ] }, { @@ -78,7 +78,7 @@ "### Spatial and Energy Discretization\n", "The energy domain for critical systems such as thermal reactors spans more than 10 orders of magnitude of neutron energies from 10$^{-5}$ - 10$^7$ eV. The multi-group approximation discretization divides this energy range into one or more energy groups. In particular, for $G$ total groups, we denote an energy group index $g$ such that $g \\in \\{1, 2, ..., G\\}$. The energy group indices are defined such that the smaller group the higher the energy, and vice versa. The integration over neutron energies across a discrete energy group is commonly referred to as **energy condensation**.\n", "\n", - "The delayed neutrons created from fissions are created from > 30 delayed neutron precursors. Modeling each of the delayed neutron precursors is possible, but this approach has not recieved much attention due to large uncertainties in certain precursors. Therefore, the delayed neutrons are often combined into \"delayed groups\" that have a set time constant, $\\lambda_d$. Some cross section libraries use the same group time constants for all nuclides (e.g. JEFF 3.2) while other libraries use different time constants for all nuclides (e.g. ENDF/B-VII.1). Multi-delayed-group cross sections can either be created with the entire delayed group set, a subset of delayed groups, or integrated over all delayed groups.\n", + "The delayed neutrons created from fissions are created from > 30 delayed neutron precursors. Modeling each of the delayed neutron precursors is possible, but this approach has not recieved much attention due to large uncertainties in certain precursors. Therefore, the delayed neutrons are often combined into \"delayed groups\" that have a set time constant, $\\lambda_d$. Some cross section libraries use the same group time constants for all nuclides (e.g. JEFF 3.1) while other libraries use different time constants for all nuclides (e.g. ENDF/B-VII.1). Multi-delayed-group cross sections can either be created with the entire delayed group set, a subset of delayed groups, or integrated over all delayed groups.\n", "\n", "Multi-group cross sections are computed for discretized spatial zones in the geometry of interest. The spatial zones may be defined on a structured and regular fuel assembly or pin cell mesh, an arbitrary unstructured mesh or the constructive solid geometry used by OpenMC. For a geometry with $K$ distinct spatial zones, we designate each spatial zone an index $k$ such that $k \\in \\{1, 2, ..., K\\}$. The volume of each spatial zone is denoted by $V_{k}$. The integration over discrete spatial zones is commonly referred to as **spatial homogenization**." ] @@ -92,7 +92,7 @@ "\n", "$$\\nu_d \\sigma_{n,x,k,g} = \\frac{\\int_{E_{g}}^{E_{g-1}}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r} \\nu_d \\sigma_{f,x}(\\mathbf{r},E')\\Phi(\\mathbf{r},E')}{\\int_{E_{g}}^{E_{g-1}}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r}\\Phi(\\mathbf{r},E')}$$\n", "\n", - "This scalar flux-weighted average microscopic cross section is computed by `openmc.mgxs` for only the delayed-nu-fission and delayed neutron fraction reaction type at the oment. These double integrals are stochastically computed with OpenMC's tally system - in particular, [filters](https://mit-crpg.github.io/openmc/pythonapi/filter.html) on the energy range and spatial zone (material, cell, universe, or mesh) define the bounds of integration for both numerator and denominator." + "This scalar flux-weighted average microscopic cross section is computed by `openmc.mgxs` for only the delayed-nu-fission and delayed neutron fraction reaction type at the moment. These double integrals are stochastically computed with OpenMC's tally system - in particular, [filters](https://mit-crpg.github.io/openmc/pythonapi/filter.html) on the energy range and spatial zone (material, cell, universe, or mesh) define the bounds of integration for both numerator and denominator." ] }, { @@ -102,7 +102,7 @@ "### Multi-Group Prompt and Delayed Fission Spectrum\n", "The energy spectrum of neutrons emitted from fission is denoted by $\\chi_{n}(\\mathbf{r},E' \\rightarrow E'')$ for incoming and outgoing energies $E'$ and $E''$, respectively. Unlike the multi-group cross sections $\\sigma_{n,x,k,g}$ considered up to this point, the fission spectrum is a probability distribution and must sum to unity. The outgoing energy is typically much less dependent on the incoming energy for fission than for scattering interactions. As a result, it is common practice to integrate over the incoming neutron energy when computing the multi-group fission spectrum. The fission spectrum may be simplified as $\\chi_{n}(\\mathbf{r},E)$ with outgoing energy $E$.\n", "\n", - "Computing the cumulative energy spectrum of emitted neutrons, $\\chi_{n}(\\mathbf{r},E)$, has been presented in the `mgxs-part-i.ipynb` notebook. Here, we will present the energy spectrum of prompt and delayed emission neutrons, $\\chi_{n,p}(\\mathbf{r},E)$ and $\\chi_{n,d}(\\mathbf{r},E)$, respectively. Unlike the multi-group cross sections defined up to this point, the multi-group fission spectrum is weighted by the fission production rate rather than the scalar flux. This formulation is intended to preserve the total fission production rate in the multi-group deterministic calculation. In order to mathematically define the multi-group fission spectrum, we denote the microscopic fission cross section as $\\sigma_{n,f}(\\mathbf{r},E)$ and the average number of neutrons emitted from fission interactions with nuclide $n$ as $\\nu_{n,p}(\\mathbf{r},E)$ and $\\nu_{n,d}(\\mathbf{r},E)$ for prompt and delayed neutrons, respectively. The multi-group fission spectrum $\\chi_{n,k,g,d}$ is then the probability of fission neutrons emitted into energy group $g$. \n", + "Computing the cumulative energy spectrum of emitted neutrons, $\\chi_{n}(\\mathbf{r},E)$, has been presented in the `mgxs-part-i.ipynb` notebook. Here, we will present the energy spectrum of prompt and delayed emission neutrons, $\\chi_{n,p}(\\mathbf{r},E)$ and $\\chi_{n,d}(\\mathbf{r},E)$, respectively. Unlike the multi-group cross sections defined up to this point, the multi-group fission spectrum is weighted by the fission production rate rather than the scalar flux. This formulation is intended to preserve the total fission production rate in the multi-group deterministic calculation. In order to mathematically define the multi-group fission spectrum, we denote the microscopic fission cross section as $\\sigma_{n,f}(\\mathbf{r},E)$ and the average number of neutrons emitted from fission interactions with nuclide $n$ as $\\nu_{n,p}(\\mathbf{r},E)$ and $\\nu_{n,d}(\\mathbf{r},E)$ for prompt and delayed neutrons, respectively. The multi-group fission spectrum $\\chi_{n,k,g,d}$ is then the probability of fission neutrons emitted into energy group $g$ and delayed group $d$. There are not prompt groups, so inserting $p$ in place of $d$ just denotes all prompt neutrons. \n", "\n", "Similar to before, spatial homogenization and energy condensation are used to find the multi-energy-group and multi-delayed-group fission spectrum $\\chi_{n,k,g,d}$ as follows:\n", "\n", @@ -337,7 +337,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we are ready to generate multi-group cross sections! First, let's define a 2-energy-group structure using the built-in `EnergyGroups` class. We will also create a 6-delayed-group structure using the built-in `DelayedGroups` class." + "Now we are ready to generate multi-group cross sections! First, let's define a 100-energy-group structure and 1-energy-group structure using the built-in `EnergyGroups` class. We will also create a 6-delayed-group structure using the built-in `DelayedGroups` class." ] }, { @@ -389,7 +389,7 @@ "* `ChiDelayed`\n", "* `Beta`\n", "\n", - "These classes provide us with an interface to generate the tally inputs as well as perform post-processing of OpenMC's tally data to compute the respective multi-group cross sections. In this case, let's create the multi-group chi-prompt and prompt-nu-fission cross sections with our 2-energy-group structure and multi-group chi-delayed, delayed-nu-fission, and beta cross sections with our 2-energy-group and 6-delayed-group structures. " + "These classes provide us with an interface to generate the tally inputs as well as perform post-processing of OpenMC's tally data to compute the respective multi-group cross sections. In this case, let's create the multi-group chi-prompt, chi-delayed, and prompt-nu-fission cross sections with our 100-energy-group structure and multi-group delayed-nu-fission and beta cross sections with our 100-energy-group and 6-delayed-group structures. " ] }, { @@ -402,7 +402,7 @@ "source": [ "# Instantiate a few different sections\n", "chi_prompt = mgxs.ChiPrompt(domain=cell, groups=energy_groups, by_nuclide=True)\n", - "prompt_nu_fission = mgxs.PromptNuFissionXS(domain=cell, groups=one_group, by_nuclide=True)\n", + "prompt_nu_fission = mgxs.PromptNuFissionXS(domain=cell, groups=energy_groups, by_nuclide=True)\n", "chi_delayed = mgxs.ChiDelayed(domain=cell, energy_groups=energy_groups, by_nuclide=True)\n", "delayed_nu_fission = mgxs.DelayedNuFissionXS(domain=cell, energy_groups=energy_groups, delayed_groups=delayed_groups, by_nuclide=True)\n", "beta = mgxs.Beta(domain=cell, energy_groups=energy_groups, delayed_groups=delayed_groups, by_nuclide=True)\n", @@ -514,7 +514,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The `Beta` object includes tracklength tallies for the 'nu-fission' and 'delayed-nu-fission' scores in the 2-energy-group and 6-delayed-group structure in cell 1. Now that each `MGXS` and `MDGXS` object contains the tallies that it needs, we must add these tallies to a `Tallies` object to generate the \"tallies.xml\" input file for OpenMC." + "The `Beta` object includes tracklength tallies for the 'nu-fission' and 'delayed-nu-fission' scores in the 100-energy-group and 6-delayed-group structure in cell 1. Now that each `MGXS` and `MDGXS` object contains the tallies that it needs, we must add these tallies to a `Tallies` object to generate the \"tallies.xml\" input file for OpenMC." ] }, { @@ -784,7 +784,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Let's first inspect our delayed-nu-fission section by printing it to the screen." + "Let's first inspect our delayed-nu-fission section by printing it to the screen after condensing the cross section down to one group." ] }, { @@ -1043,7 +1043,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The following code snippet shows how to export the chi `MGXS` to the same HDF5 binary data store." + "The following code snippet shows how to export the chi-prompt and chi-delayed `MGXS` to the same HDF5 binary data store." ] }, { @@ -1248,7 +1248,7 @@ } ], "source": [ - "# Set the time constants for the delayed precursors (in seconds^-1)\n", + "# Set the time constants for the delayed precursors (in seconds^-1) using some ficticious time constant data.\n", "precursor_halflife = np.array([55.6, 24.5, 16.3, 2.37, 0.424, 0.195])\n", "precursor_lambda = -np.log(0.5) / precursor_halflife\n", "\n", @@ -1349,7 +1349,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can also plot the fission spectrum for the prompt and delayed neutrons." + "We can also plot the energy spectrum for fission emission of prompt and delayed neutrons." ] }, { diff --git a/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb new file mode 100644 index 0000000000..bb740b7bc3 --- /dev/null +++ b/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb @@ -0,0 +1,1395 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This IPython Notebook illustrates the use of the **`openmc.mgxs.Library`** class. The `Library` class is designed to automate the calculation of multi-group cross sections for use cases with one or more domains, cross section types, and/or nuclides. In particular, this Notebook illustrates the following features:\n", + "\n", + "* Calculation of multi-energy-group and multi-delayed-group cross sections for a **fuel assembly**\n", + "* Automated creation, manipulation and storage of `MGXS` with **`openmc.mgxs.Library`**\n", + "* Steady-state pin-by-pin **delayed neutron fractions (beta)** for each delayed group.\n", + "* Generation of surface currents on the interfaces and surfaces of a Mesh." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate Input Files" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/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" + ] + } + ], + "source": [ + "import math\n", + "import pickle\n", + "\n", + "from IPython.display import Image\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "import openmc\n", + "import openmc.mgxs\n", + "import openmoc\n", + "import openmoc.process\n", + "from openmoc.opencg_compatible import get_openmoc_geometry\n", + "from openmoc.materialize import load_openmc_mgxs_lib\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we need to define materials that will be used in the problem. Before defining a material, we must create nuclides that are used in the material." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate some Nuclides\n", + "h1 = openmc.Nuclide('H1')\n", + "b10 = openmc.Nuclide('B10')\n", + "o16 = openmc.Nuclide('O16')\n", + "u235 = openmc.Nuclide('U235')\n", + "u238 = openmc.Nuclide('U238')\n", + "zr90 = openmc.Nuclide('Zr90')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the nuclides we defined, we will now create three materials for the fuel, water, and cladding of the fuel pins." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# 1.6 enriched fuel\n", + "fuel = openmc.Material(name='1.6% Fuel')\n", + "fuel.set_density('g/cm3', 10.31341)\n", + "fuel.add_nuclide(u235, 3.7503e-4)\n", + "fuel.add_nuclide(u238, 2.2625e-2)\n", + "fuel.add_nuclide(o16, 4.6007e-2)\n", + "\n", + "# borated water\n", + "water = openmc.Material(name='Borated Water')\n", + "water.set_density('g/cm3', 0.740582)\n", + "water.add_nuclide(h1, 4.9457e-2)\n", + "water.add_nuclide(o16, 2.4732e-2)\n", + "water.add_nuclide(b10, 8.0042e-6)\n", + "\n", + "# zircaloy\n", + "zircaloy = openmc.Material(name='Zircaloy')\n", + "zircaloy.set_density('g/cm3', 6.55)\n", + "zircaloy.add_nuclide(zr90, 7.2758e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our three materials, we can now create a `Materials` object that can be exported to an actual XML file." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a Materials object\n", + "materials_file = openmc.Materials((fuel, water, zircaloy))\n", + "materials_file.default_xs = '71c'\n", + "\n", + "# Export to \"materials.xml\"\n", + "materials_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's move on to the geometry. This problem will be a square array of fuel pins and control rod guide tubes for which we can use OpenMC's lattice/universe feature. The basic universe will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces for fuel and clad, as well as the outer bounding surfaces of the problem." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create cylinders for the fuel and clad\n", + "fuel_outer_radius = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.39218)\n", + "clad_outer_radius = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.45720)\n", + "\n", + "# Create boundary planes to surround the geometry\n", + "min_x = openmc.XPlane(x0=-10.71, boundary_type='reflective')\n", + "max_x = openmc.XPlane(x0=+10.71, boundary_type='reflective')\n", + "min_y = openmc.YPlane(y0=-10.71, boundary_type='reflective')\n", + "max_y = openmc.YPlane(y0=+10.71, boundary_type='reflective')\n", + "min_z = openmc.ZPlane(z0=-10., boundary_type='reflective')\n", + "max_z = openmc.ZPlane(z0=+10., boundary_type='reflective')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the surfaces defined, we can now construct a fuel pin cell from cells that are defined by intersections of half-spaces created by the surfaces." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create a Universe to encapsulate a fuel pin\n", + "fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin')\n", + "\n", + "# Create fuel Cell\n", + "fuel_cell = openmc.Cell(name='1.6% Fuel')\n", + "fuel_cell.fill = fuel\n", + "fuel_cell.region = -fuel_outer_radius\n", + "fuel_pin_universe.add_cell(fuel_cell)\n", + "\n", + "# Create a clad Cell\n", + "clad_cell = openmc.Cell(name='1.6% Clad')\n", + "clad_cell.fill = zircaloy\n", + "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", + "fuel_pin_universe.add_cell(clad_cell)\n", + "\n", + "# Create a moderator Cell\n", + "moderator_cell = openmc.Cell(name='1.6% Moderator')\n", + "moderator_cell.fill = water\n", + "moderator_cell.region = +clad_outer_radius\n", + "fuel_pin_universe.add_cell(moderator_cell)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Likewise, we can construct a control rod guide tube with the same surfaces." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create a Universe to encapsulate a control rod guide tube\n", + "guide_tube_universe = openmc.Universe(name='Guide Tube')\n", + "\n", + "# Create guide tube Cell\n", + "guide_tube_cell = openmc.Cell(name='Guide Tube Water')\n", + "guide_tube_cell.fill = water\n", + "guide_tube_cell.region = -fuel_outer_radius\n", + "guide_tube_universe.add_cell(guide_tube_cell)\n", + "\n", + "# Create a clad Cell\n", + "clad_cell = openmc.Cell(name='Guide Clad')\n", + "clad_cell.fill = zircaloy\n", + "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", + "guide_tube_universe.add_cell(clad_cell)\n", + "\n", + "# Create a moderator Cell\n", + "moderator_cell = openmc.Cell(name='Guide Tube Moderator')\n", + "moderator_cell.fill = water\n", + "moderator_cell.region = +clad_outer_radius\n", + "guide_tube_universe.add_cell(moderator_cell)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the pin cell universe, we can construct a 17x17 rectangular lattice with a 1.26 cm pitch." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create fuel assembly Lattice\n", + "assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n", + "assembly.pitch = (1.26, 1.26)\n", + "assembly.lower_left = [-1.26 * 17. / 2.0] * 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we create a NumPy array of fuel pin and guide tube universes for the lattice." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create array indices for guide tube locations in lattice\n", + "template_x = np.array([5, 8, 11, 3, 13, 2, 5, 8, 11, 14, 2, 5, 8,\n", + " 11, 14, 2, 5, 8, 11, 14, 3, 13, 5, 8, 11])\n", + "template_y = np.array([2, 2, 2, 3, 3, 5, 5, 5, 5, 5, 8, 8, 8, 8,\n", + " 8, 11, 11, 11, 11, 11, 13, 13, 14, 14, 14])\n", + "\n", + "# Initialize an empty 17x17 array of the lattice universes\n", + "universes = np.empty((17, 17), dtype=openmc.Universe)\n", + "\n", + "# Fill the array with the fuel pin and guide tube universes\n", + "universes[:,:] = fuel_pin_universe\n", + "universes[template_x, template_y] = guide_tube_universe\n", + "\n", + "# Store the array of universes in the lattice\n", + "assembly.universes = universes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "OpenMC requires that there is a \"root\" universe. Let us create a root cell that is filled by the pin cell universe and then assign it to the root universe." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create root Cell\n", + "root_cell = openmc.Cell(name='root cell')\n", + "root_cell.fill = assembly\n", + "\n", + "# Add boundary planes\n", + "root_cell.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n", + "\n", + "# Create root Universe\n", + "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", + "root_universe.add_cell(root_cell)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now must create a geometry that is assigned a root universe and export it to XML." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create Geometry and set root Universe\n", + "geometry = openmc.Geometry()\n", + "geometry.root_universe = root_universe" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Export to \"geometry.xml\"\n", + "geometry.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 10 inactive batches and 40 active batches each with 2500 particles." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# OpenMC simulation parameters\n", + "batches = 50\n", + "inactive = 10\n", + "particles = 2500\n", + "\n", + "# Instantiate a Settings object\n", + "settings_file = openmc.Settings()\n", + "settings_file.batches = batches\n", + "settings_file.inactive = inactive\n", + "settings_file.particles = particles\n", + "settings_file.output = {'tallies': False}\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()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us also create a `Plots` file that we can use to verify that our fuel assembly geometry was created successfully." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate a Plot\n", + "plot = openmc.Plot(plot_id=1)\n", + "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 Plots object, add Plot, and export to \"plots.xml\"\n", + "plot_file = openmc.Plots([plot])\n", + "plot_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the plots.xml file, we can now generate and view the plot. OpenMC outputs plots in .ppm format, which can be converted into a compressed format like .png with the convert utility." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Run openmc in plotting mode\n", + "openmc.plot_geometry(output=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Convert OpenMC's funky ppm to png\n", + "!convert materials-xy.ppm materials-xy.png\n", + "\n", + "# Display the materials plot inline\n", + "Image(filename='materials-xy.png')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we can see from the plot, we have a nice array of fuel and guide tube pin cells with fuel, cladding, and water!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create an MGXS Library" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are ready to generate multi-group cross sections! First, let's define 20-energy-group, 1-energy-group, and 6-delayed-group structures using the built-in `EnergyGroups` and `DelayedGroups` classes." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate a 20-group EnergyGroups object\n", + "energy_groups = openmc.mgxs.EnergyGroups()\n", + "energy_groups.group_edges = np.logspace(-9,1.3,21)\n", + "\n", + "# Instantiate a 1-group EnergyGroups object\n", + "one_group = openmc.mgxs.EnergyGroups()\n", + "one_group.group_edges = np.array([energy_groups.group_edges[0], energy_groups.group_edges[-1]])\n", + "\n", + "# Instantiate a 6-group DelayedGroups object\n", + "delayed_groups = openmc.mgxs.DelayedGroups()\n", + "delayed_groups.groups = range(1,7)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we will instantiate an `openmc.mgxs.Library` for the energy and delayed groups with our the fuel assembly geometry." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate a tally mesh \n", + "mesh = openmc.Mesh(mesh_id=1)\n", + "mesh.type = 'regular'\n", + "mesh.dimension = [17, 17, 1]\n", + "mesh.lower_left = [-10.71, -10.71, -10000.]\n", + "mesh.width = [1.26, 1.26, 20000.]\n", + "\n", + "# Initialize an 20-energy-group and 6-delayed-group MGXS Library\n", + "mgxs_lib = openmc.mgxs.Library(geometry)\n", + "mgxs_lib.energy_groups = energy_groups\n", + "mgxs_lib.delayed_groups = delayed_groups\n", + "\n", + "# Specify multi-group cross section types to compute\n", + "mgxs_lib.mgxs_types = ['total', 'transport', 'nu-scatter matrix', 'kappa-fission', 'inverse-velocity', 'chi-prompt',\n", + " 'prompt-nu-fission', 'chi-delayed', 'delayed-nu-fission', 'beta']\n", + "\n", + "# Specify a \"mesh\" domain type for the cross section tally filters\n", + "mgxs_lib.domain_type = 'mesh'\n", + "\n", + "# Specify the mesh domain over which to compute multi-group cross sections\n", + "mgxs_lib.domains = [mesh]\n", + "\n", + "# Construct all tallies needed for the multi-group cross section library\n", + "mgxs_lib.build_library()\n", + "\n", + "# Create a \"tallies.xml\" file for the MGXS Library\n", + "tallies_file = openmc.Tallies()\n", + "mgxs_lib.add_to_tallies_file(tallies_file, merge=True)\n", + "\n", + "# Instantiate a current tally\n", + "mesh_filter = openmc.Filter()\n", + "mesh_filter.mesh = mesh\n", + "current_tally = openmc.Tally(name='current tally')\n", + "current_tally.scores = ['current']\n", + "current_tally.filters = [mesh_filter]\n", + "\n", + "# Add current tally to the tallies file\n", + "tallies_file.append(current_tally)\n", + "\n", + "# Export to \"tallies.xml\"\n", + "tallies_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can run OpenMC to generate the cross sections." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "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-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.io/en/latest/license.html\n", + " Version: 0.8.0\n", + " Git SHA1: e8819e6a77f2e998dcce937e80fbdd8dd430b667\n", + " Date/Time: 2016-08-03 00:11:15\n", + " MPI Processes: 4\n", + "\n", + " ===========================================================================\n", + " ========================> INITIALIZATION <=========================\n", + " ===========================================================================\n", + "\n", + " Reading settings XML file...\n", + " Reading geometry XML file...\n", + " Reading cross sections XML file...\n", + " Reading materials XML file...\n", + " Reading U235.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/O16_71c.h5\n", + " Reading H1.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/H1_71c.h5\n", + " Reading B10.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/B10_71c.h5\n", + " Reading Zr90.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/Zr90_71c.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", + " Reading tallies XML file...\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " Building neighboring cells lists for each surface...\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " WARNING: A delayedgroup filter was used on a total nuclide tally. Cross section\n", + " libraries are not guaranteed to have the same delayed group structure\n", + " across all isotopes. In particular, ENDF/B-VII.1 does not have a\n", + " consistent delayed group structure across all isotopes while the JEFF\n", + " 3.1.1 library has the same delayed group structure across all\n", + " isotopes. Use with caution!\n", + " Initializing source particles...\n", + "\n", + " ===========================================================================\n", + " ====================> K EIGENVALUE SIMULATION <====================\n", + " ===========================================================================\n", + "\n", + " Bat./Gen. k Average k \n", + " ========= ======== ==================== \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.97414 1.02442 +/- 0.00666\n", + " 26/1 1.04709 1.02584 +/- 0.00639\n", + " 27/1 1.05872 1.02777 +/- 0.00631\n", + " 28/1 1.03930 1.02841 +/- 0.00598\n", + " 29/1 1.01488 1.02770 +/- 0.00570\n", + " 30/1 1.04513 1.02857 +/- 0.00548\n", + " 31/1 0.99538 1.02699 +/- 0.00545\n", + " 32/1 1.00106 1.02581 +/- 0.00532\n", + " 33/1 0.99389 1.02442 +/- 0.00527\n", + " 34/1 0.99938 1.02338 +/- 0.00516\n", + " 35/1 1.02161 1.02331 +/- 0.00495\n", + " 36/1 1.04084 1.02398 +/- 0.00480\n", + " 37/1 0.98801 1.02265 +/- 0.00481\n", + " 38/1 1.01348 1.02232 +/- 0.00464\n", + " 39/1 1.06693 1.02386 +/- 0.00474\n", + " 40/1 1.07729 1.02564 +/- 0.00491\n", + " 41/1 1.03191 1.02585 +/- 0.00475\n", + " 42/1 1.05209 1.02667 +/- 0.00468\n", + " 43/1 1.02997 1.02677 +/- 0.00453\n", + " 44/1 1.07288 1.02812 +/- 0.00460\n", + " 45/1 1.01268 1.02768 +/- 0.00449\n", + " 46/1 1.03759 1.02796 +/- 0.00437\n", + " 47/1 1.02620 1.02791 +/- 0.00425\n", + " 48/1 1.02509 1.02783 +/- 0.00414\n", + " 49/1 1.01043 1.02739 +/- 0.00406\n", + " 50/1 1.01457 1.02707 +/- 0.00397\n", + " Creating state point statepoint.50.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 6.4100E-01 seconds\n", + " Reading cross sections = 3.6400E-01 seconds\n", + " Total time in simulation = 2.6284E+01 seconds\n", + " Time in transport only = 2.5289E+01 seconds\n", + " Time in inactive batches = 1.3870E+00 seconds\n", + " Time in active batches = 2.4897E+01 seconds\n", + " Time synchronizing fission bank = 3.9900E-01 seconds\n", + " Sampling source sites = 1.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 5.6100E-01 seconds\n", + " Total time for finalization = 1.1000E-02 seconds\n", + " Total time elapsed = 2.6944E+01 seconds\n", + " Calculation Rate (inactive) = 18024.5 neutrons/second\n", + " Calculation Rate (active) = 4016.55 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.02489 +/- 0.00308\n", + " k-effective (Track-length) = 1.02707 +/- 0.00397\n", + " k-effective (Absorption) = 1.02637 +/- 0.00325\n", + " Combined k-effective = 1.02581 +/- 0.00264\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Run OpenMC\n", + "openmc.run(mpi_procs=4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tally Data Processing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our simulation ran successfully and created statepoint and summary output files. We begin our analysis by instantiating a `StatePoint` object. " + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the last statepoint file\n", + "sp = openmc.StatePoint('statepoint.50.h5')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The statepoint is now ready to be analyzed by the `Library`. We simply have to load the tallies from the statepoint into the `Library` and our `MGXS` objects will compute the cross sections for us under-the-hood." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Initialize MGXS Library with OpenMC statepoint data\n", + "mgxs_lib.load_from_statepoint(sp)\n", + "\n", + "# Extrack the current tally separately\n", + "current_tally = sp.get_tally(name='current tally')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using Tally Arithmetic to Compute the Delayed Neutron Precursor Concentrations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we illustrate how one can leverage OpenMC's [tally arithmetic](https://mit-crpg.github.io/openmc/pythonapi/examples/tally-arithmetic.html) data processing feature with `MGXS` objects. The `openmc.mgxs` module uses tally arithmetic to compute multi-group cross sections with automated uncertainty propagation. Each `MGXS` object includes an `xs_tally` attribute which is a \"derived\" `Tally` based on the tallies needed to compute the cross section type of interest. These derived tallies can be used in subsequent tally arithmetic operations. For example, we can use tally artithmetic to compute the delayed neutron precursor concentrations using the `Beta` and `DelayedNuFissionXS` objects. The delayed neutron precursor concentrations are modeled using the following equations:\n", + "\n", + "$$\\frac{\\partial}{\\partial t} C_{k,d} (t) = \\int_{0}^{\\infty}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r} \\beta_{k,d} (t) \\nu_d \\sigma_{f,x}(\\mathbf{r},E',t)\\Phi(\\mathbf{r},E',t) - \\lambda_{d} C_{k,d} (t) $$\n", + "\n", + "$$C_{k,d} (t=0) = \\frac{1}{\\lambda_{d}} \\int_{0}^{\\infty}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r} \\beta_{k,d} (t=0) \\nu_d \\sigma_{f,x}(\\mathbf{r},E',t=0)\\Phi(\\mathbf{r},E',t=0) $$" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1944: RuntimeWarning: invalid value encountered in true_divide\n", + "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1945: RuntimeWarning: invalid value encountered in true_divide\n", + "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1946: RuntimeWarning: divide by zero encountered in true_divide\n", + "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1946: RuntimeWarning: invalid value encountered in true_divide\n", + "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1938: RuntimeWarning: invalid value encountered in true_divide\n", + "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1939: RuntimeWarning: invalid value encountered in true_divide\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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 1delayedgroupnuclidescoremeanstd. dev.
xyz
01111total(((delayed-nu-fission / nu-fission) * (delayed...0.0033810.000837
11112total(((delayed-nu-fission / nu-fission) * (delayed...0.0009600.000074
21113total(((delayed-nu-fission / nu-fission) * (delayed...0.0069460.000771
31114total(((delayed-nu-fission / nu-fission) * (delayed...0.0747210.005119
41115total(((delayed-nu-fission / nu-fission) * (delayed...0.0341060.002235
51116total(((delayed-nu-fission / nu-fission) * (delayed...0.0025000.000358
61211total(((delayed-nu-fission / nu-fission) * (delayed...0.0066420.001718
71212total(((delayed-nu-fission / nu-fission) * (delayed...0.0011570.000075
81213total(((delayed-nu-fission / nu-fission) * (delayed...0.0067080.000578
91214total(((delayed-nu-fission / nu-fission) * (delayed...0.0765150.005032
\n", + "
" + ], + "text/plain": [ + " mesh 1 delayedgroup nuclide \\\n", + " x y z \n", + "0 1 1 1 1 total \n", + "1 1 1 1 2 total \n", + "2 1 1 1 3 total \n", + "3 1 1 1 4 total \n", + "4 1 1 1 5 total \n", + "5 1 1 1 6 total \n", + "6 1 2 1 1 total \n", + "7 1 2 1 2 total \n", + "8 1 2 1 3 total \n", + "9 1 2 1 4 total \n", + "\n", + " score mean std. dev. \n", + " \n", + "0 (((delayed-nu-fission / nu-fission) * (delayed... 0.003381 0.000837 \n", + "1 (((delayed-nu-fission / nu-fission) * (delayed... 0.000960 0.000074 \n", + "2 (((delayed-nu-fission / nu-fission) * (delayed... 0.006946 0.000771 \n", + "3 (((delayed-nu-fission / nu-fission) * (delayed... 0.074721 0.005119 \n", + "4 (((delayed-nu-fission / nu-fission) * (delayed... 0.034106 0.002235 \n", + "5 (((delayed-nu-fission / nu-fission) * (delayed... 0.002500 0.000358 \n", + "6 (((delayed-nu-fission / nu-fission) * (delayed... 0.006642 0.001718 \n", + "7 (((delayed-nu-fission / nu-fission) * (delayed... 0.001157 0.000075 \n", + "8 (((delayed-nu-fission / nu-fission) * (delayed... 0.006708 0.000578 \n", + "9 (((delayed-nu-fission / nu-fission) * (delayed... 0.076515 0.005032 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Set the time constants for the delayed precursors (in seconds^-1)\n", + "precursor_halflife = np.array([55.6, 24.5, 16.3, 2.37, 0.424, 0.195])\n", + "precursor_lambda = -np.log(0.5) / precursor_halflife\n", + "\n", + "beta = mgxs_lib.get_mgxs(mesh, 'beta')\n", + "\n", + "# Create a tally object with only the delayed group filter for the time constants\n", + "beta_filters = [f for f in beta.xs_tally.filters if f.type != 'delayedgroup']\n", + "lambda_tally = beta.xs_tally.summation(nuclides=beta.xs_tally.nuclides)\n", + "for f in beta_filters:\n", + " lambda_tally = lambda_tally.summation(filter_type=f.type, remove_filter=True) * 0. + 1.\n", + "\n", + "# Set the mean of the lambda tally and reshape to account for nuclides and scores\n", + "lambda_tally._mean = precursor_lambda\n", + "lambda_tally._mean.shape = lambda_tally.std_dev.shape\n", + "\n", + "# Set a total nuclide and lambda score\n", + "lambda_tally.nuclides = [openmc.Nuclide(name='total')]\n", + "lambda_tally.scores = ['lambda']\n", + "\n", + "delayed_nu_fission = mgxs_lib.get_mgxs(mesh, 'delayed-nu-fission')\n", + "\n", + "# Use tally arithmetic to compute the precursor concentrations\n", + "precursor_conc = beta.xs_tally.summation(filter_type='energy', remove_filter=True) * \\\n", + " delayed_nu_fission.xs_tally.summation(filter_type='energy', remove_filter=True) / lambda_tally\n", + " \n", + "# The difference is a derived tally which can generate Pandas DataFrames for inspection\n", + "precursor_conc.get_pandas_dataframe().head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another useful feature of the Python API is the ability to extract the surface currents for the interfaces and surfaces of a mesh. We can inspect the currents for the mesh by getting the pandas dataframe." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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 1surfacenuclidescoremeanstd. dev.
xyz
0111x-mintotalcurrent0.000000.000000
1111x-maxtotalcurrent0.029860.000678
2111y-mintotalcurrent0.000000.000000
3111y-maxtotalcurrent0.030910.000636
4111z-mintotalcurrent0.000000.000000
5111z-maxtotalcurrent0.000000.000000
6121x-mintotalcurrent0.000000.000000
7121x-maxtotalcurrent0.031340.000669
8121y-mintotalcurrent0.030550.000605
9121y-maxtotalcurrent0.031130.000634
\n", + "
" + ], + "text/plain": [ + " mesh 1 surface nuclide score mean std. dev.\n", + " x y z \n", + "0 1 1 1 x-min total current 0.00000 0.000000\n", + "1 1 1 1 x-max total current 0.02986 0.000678\n", + "2 1 1 1 y-min total current 0.00000 0.000000\n", + "3 1 1 1 y-max total current 0.03091 0.000636\n", + "4 1 1 1 z-min total current 0.00000 0.000000\n", + "5 1 1 1 z-max total current 0.00000 0.000000\n", + "6 1 2 1 x-min total current 0.00000 0.000000\n", + "7 1 2 1 x-max total current 0.03134 0.000669\n", + "8 1 2 1 y-min total current 0.03055 0.000605\n", + "9 1 2 1 y-max total current 0.03113 0.000634" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "current_tally.get_pandas_dataframe().head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Cross Section Visualizations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition to inspecting the data in the tallies by getting the pandas dataframe, we can also plot the tally data on the domain mesh. Below is the delayed neutron fraction tallied in each mesh cell for each delayed group." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nDmZmZmZmZmbW5TzgYGZmZmZmZmZdzgMOZmZmZmZmZtblPOBgZmZmZmZmZl3OAw5mZmZmZmZm1uU8\n4GBmZmZmZmZmXc4DDmZmZmZmZmbW5TzgYGZmZmZmZmZdzgMOZmZmZmZmZtblPOBgZmZmZmZmZl3O\nAw5mZmZmZmZm1uU84GBmZmZmZmZmXc4DDusJSZMlnZlx2ycl7d/dfapqcz9JT/Vkm2ZmPck5bGZW\nPmexWXPxgEMdkuZLelXSy5Kel3S9pJ0y1jpIaouyO9CI9N91ZdZfYmbWGOdwt1gnc7jqZ+FlSTeV\n3Sez3sJZ3C3WySwGkHSKpCck/UvSo5KGlt0na24ecKgvgEMiYnNgB+AfwIUZa8U6HCTNTlJrCW32\nAS4A7u7pts16Medwkyohh1f9LKSP0T3cvllv5ixuUj2dxZI+C3wGOCgiNgU+DPxfT/bB1j0ecOiY\nACLidWAqsOuqFVJfSedKWiDpGUk/krShpI2BG4EdJf0zHQ3uL+ldkv4iaamkpyVdmP4RW6xj0h6S\n7pP0kqQpwEZV6z8s6YG0vTskvb3Ofur2S9JFks6t2n6apC+mz3eQNFXSPyT9XdIXKrbbSNLPJb0g\n6RHgXZ28n1GS5qb9+KGkGZKOTdeNS9/D+ZKeB8Yr8Y101P3ZtK3N0u3XGk2vnDInabyk30iakv77\n/FXS7p185F8GbgbmdrKdmXUt57BzeNUuOllvZt3HWdzLs1iSgG8CX4qIxwAi4smIeLGj92PmAYcM\n0sD8BHBXxeJzgKHA7ul/dwS+GRGvAgcBiyNis/SbmGeBNuC/gH7A3sD+wIkF+7MBcA1wWbq/3wAf\nq1i/JzAJOD5d/xNgWlpXraN+XQaMrdjv1un6K9PQuR54gGS0+wDgFEkfSjefALwxfRwIjOvg/Wyd\nvofTgK2Bx9K+VHo38DdgW+DbJKOrnwL2A94EbAb8sGL7zkbTDwV+DWwF/Aq4VnVGiSUNTts7Ex/w\nmpXCObxqv70yh1NXSFoi6aYMgxNm1g2cxav22xuzeED6eLukhenAyoRO9m0GEeFHjQfwJPAy8AKw\nHFgE7Fax/l/AGyte7w08kT7fD1jYyf5PAa4u2Lf3AYuqlt0JnJk+vxiYWLV+LvC+ive2f5Z+AY8C\nB6TPTwJuSJ+/G5hfVXs6MCl9/nfgQxXrjq/3mQCfBO6sWrYQODZ9Pq5GW7cC/1nx+i3AMpJBtLU+\n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\neuPVxnRsyZiOLXtfXzzliVq7DchEZX2NMUvHOIJsgsgeRwPXR0Q38Likm4E3A0tqfjgzsyGkH+Zw\nMDOzJjmL81MaejdwJ5Ci68FaP07W176qu9y5StTd+sY3ljrXL+I9hWu+1H5yqXM92r1P8XPFfxWu\nmfqtEwvXAHzg5FmFa8ZFuZVVfhUdxWs+/P5S5/rsles1HDZ0/kFnFK55501zCtcAfDr+t3DNR9uu\nISKK/Q+ZSIpbYkyuff9R89c7T/rL/31kk0b+mWy82VEV3b2QdALwhog4QdJE4PCI6Jk08jLgLWRD\nKW4ARkdESPoh8ERETKpxzYcCp0XEARXbTgX2iIjjJW2ermNCRNyb/9vYsJTJYYB2rWq803rnKpff\n83b+h8I1v4x3lzrXf7SfX7hmzROvKH6erc5uvFMN519SPEfGHzez1LneyW8L18yOw0qd6zefKP7n\n5umXTm68U5WvvH9K4RqAg352beGa4+KSwjWv4U0c2HZWqSwuksNQO4utdUrdE5fI4excxbO4TA5D\nuSz+j/avFa5Z88SrCtcAfHar4vdzF15yaqlzlcniMjkM5bJ4sHIYymVxmRyGclncynvijY17OJhZ\nbkNtvFqOMWYTWHc4BcB3gGmSehoYpr6cGxvM7OXFQyrMzFrPWZyfGxzMLLcm1xzu9/FqjcaYRcR6\nM5tHxPP1zmFmNtQ1m8NmZtY8Z3F+bnAws9w8Xs3MrLWcw2Zmrecszs8NDmaWW7Prv5uZWXOcw2Zm\nrecszs/flJnl5vFqZmat5Rw2M2s9Z3F+bnAws9wcrmZmreUcNjNrPWdxfm5wMLPcPF7NzKy1nMNm\nZq3nLM7PDQ5mlpvHq5mZtZZz2Mys9ZzF+fmbMrPc3H3MzKy1nMNmZq3nLM7PDQ5mltsqrzlsZtZS\nzmEzs9ZzFufnBgczy83dx8zMWss5bGbWes7i/PxNmVlu7j5mZtZazmEzs9ZzFufnBgczy83hambW\nWs5hM7PWcxbnNygNDjfv8qZC+4+PGaXOc7WOKlzTdt0fSp1Ls6NwTXeXSp1r2zX3FK5ZOfPvC9d0\nn1S4BID2X36ocM0XDvxyqXN9QV8rXNM2rtz3fsH3Ti9c0/3L4uc5jVuLFwG/VkeJqmtKnauHw3XD\nddsu+xSu+UBcXbhmto4sXAPQNv++wjW6pHgOQ7ks3p6HCtc8celOhWsAuo8rXtP+mwmlzvXl/b9Y\n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\n+8b/K1zTdUrx/wY/ru8XrgH4Il8uXLOHlhERxS+S7P/ltuXVoxVq695hi5rnSctiXsDaZTG/Urn2\nu6RNyVaQeBNp7feIWJJqzyBbxWI1a5fFfDvwG+AesiEWAZyZllRD0jTgloi4uOo6jgbOBLqBn0bE\nGcW+jQ1LmRwG0CXFs6fr7aX+82KbrurOLo1t2fZsqXM9pNcXrml/sPj3d96unylcA/BZ/W/hmrZa\nzW05aFLx/Onq+mSpc02Pmqss9ukT515euKbrtHL/DR5b4ns/my8WrtmUA3m1ZpXK4iI5DPWz2Fqj\n1D1xiRyGcllcJoehXBYPVg5DuSwuk8NQLovL5DCUy+LBymEol8VlchjgLM4qXLOrHm/pPfHGxEMq\nzCy37q7mIqO/136PiJuh/jTBEXFsne0zgBm5L9zMbIhoNofNzKx5zuL8/E2ZWX7uGmZm1lrOYTOz\n1nMW5+YGBzPLz+FqZtZazmEzs9ZzFufmBgczy2/NRj0Ezcys9ZzDZmat5yzOzQ0OZpbfmlZfgJnZ\nRs45bGbWes7i3Lwsppnl92LOh5mZDYy8OewsNjMbOE3msKRDJS2SdL+k02q8P1zSTEmLJd0iaVTF\ne2ek7QslHdLomJKmSXpQ0l2S5knaJ23fQ9LvJb0oaVLF/ptKui3tf4+k3gney3APBzPLb3WrL8DM\nbCPnHDYza70mslhSG3AhcBDwGDBX0jURsahit+OBpyJitKQJwLnAREl7ka3oticwErhR0mhADY55\nSkRcXXUpTwL/DhxeuTEiVkk6ICJekNQO3Czp5xFxe5nP6x4OZpZfV86HmZkNjLw57Cw2Mxs4zeXw\nOGBxRDwcEauBmcD4qn3GA5em57OAA9Pzw4CZEbEmIpYAi9PxGh1zvb/3R8QTEXEnNQaIRMQL6emm\nZJ0Uou6nacANDmaW35qcDzMzGxh5c9hZbGY2cJrL4R2BpRWvl6VtNfeJiC7gGUlb16h9NG1rdMyz\nJc2XdJ6kTRp9PEltku4ClgM3RMTcRjX1uMHBzPLzTa6ZWWv1Q4PDAI0dnipphaQ/VB3r3LTvfElX\nStoybd8vjQ/ueRyeto+UdJOkBWns8EllvyozswHTXA7XWuKiugdBvX2Kbgc4PSL2BPYDtgHWy/31\nCiO6I+JNZMM23pKGcpTiORzMLD83JpiZtVaTOTwQY4cjIoBpwLeBH1adcg7ZzW63pK8AZ6THPcC+\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Extract the energy-condensed delayed neutron fraction tally\n", + "beta_by_group = beta.get_condensed_xs(one_group).xs_tally.summation(filter_type='energy', remove_filter=True)\n", + "beta_by_group.mean.shape = (17, 17, 6)\n", + "beta_by_group.mean[beta_by_group.mean == 0] = np.nan\n", + "\n", + "# Plot the betas\n", + "plt.figure(figsize=(18,9))\n", + "fig = plt.subplot(231)\n", + "plt.imshow(beta_by_group.mean[:,:,0], interpolation='none', cmap='jet')\n", + "plt.colorbar()\n", + "plt.title('Beta - delayed group 1')\n", + "\n", + "fig = plt.subplot(232)\n", + "plt.imshow(beta_by_group.mean[:,:,1], interpolation='none', cmap='jet')\n", + "plt.colorbar()\n", + "plt.title('Beta - delayed group 2')\n", + "\n", + "fig = plt.subplot(233)\n", + "plt.imshow(beta_by_group.mean[:,:,2], interpolation='none', cmap='jet')\n", + "plt.colorbar()\n", + "plt.title('Beta - delayed group 3')\n", + "\n", + "fig = plt.subplot(234)\n", + "plt.imshow(beta_by_group.mean[:,:,3], interpolation='none', cmap='jet')\n", + "plt.colorbar()\n", + "plt.title('Beta - delayed group 4')\n", + "\n", + "fig = plt.subplot(235)\n", + "plt.imshow(beta_by_group.mean[:,:,4], interpolation='none', cmap='jet')\n", + "plt.colorbar()\n", + "plt.title('Beta - delayed group 5')\n", + "\n", + "fig = plt.subplot(236)\n", + "plt.imshow(beta_by_group.mean[:,:,5], interpolation='none', cmap='jet')\n", + "plt.colorbar()\n", + "plt.title('Beta - delayed group 6')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index df50eee0ba..3be64bd1cf 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -257,6 +257,16 @@ Energy Groups openmc.mgxs.EnergyGroups +Delayed Groups +------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.mgxs.DelayedGroups + Multi-group Cross Sections -------------------------- @@ -284,6 +294,19 @@ Multi-group Cross Sections openmc.mgxs.TotalXS openmc.mgxs.TransportXS +Multi-delayed-group Cross Sections +---------------------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclassinherit.rst + + openmc.mgxs.MDGXS + openmc.mgxs.ChiDelayed + openmc.mgxs.DelayedNuFissionXS + openmc.mgxs.Beta + Multi-group Cross Section Libraries ----------------------------------- From 2fff5cd3d049152d30578befee9d259e70330376 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Tue, 2 Aug 2016 18:18:06 -0500 Subject: [PATCH 230/417] Improve fission energy release documentation --- docs/source/io_formats/fission_energy.rst | 53 +++++++++++++++ docs/source/io_formats/index.rst | 1 + docs/source/io_formats/nuclear_data.rst | 21 ++++++ docs/source/pythonapi/index.rst | 18 ++--- openmc/data/fission_energy.py | 81 ++++++++++++++++++++++- 5 files changed, 164 insertions(+), 10 deletions(-) create mode 100644 docs/source/io_formats/fission_energy.rst diff --git a/docs/source/io_formats/fission_energy.rst b/docs/source/io_formats/fission_energy.rst new file mode 100644 index 0000000000..d73a95f605 --- /dev/null +++ b/docs/source/io_formats/fission_energy.rst @@ -0,0 +1,53 @@ +.. _usersguide_fission_energy: + +================================== +Fission Energy Release File Format +================================== + +This file is a compact HDF5 representation of the ENDF MT=1, MF=458 data (see +ENDF-102_ for details). It gives the information needed to compute the energy +carried away from fission reactions by each reaction product (e.g. fragment +nuclei, neutrons) which depends on the incident neutron energy. OpenMC is +distributed with one of these files under +openmc/data/fission_Q_data_endfb71.h5. More files of this format can be +created from ENDF files with the +``openmc.data.write_compact_458_library`` function. They can be read with the +``openmc.data.FissionEnergyRelease.from_compact_hdf5`` class method. + +:Attributes: - **comment** (*char[]*) -- An optional text comment + - **component order** (*char[][]*) -- An array of strings + specifying the order each reaction product occurs in the data + arrays. The components use the 2-3 letter abbreviations + specified in ENDF-102 e.g. EFR for fission fragments and ENP for + prompt neutrons. + +**//** + Nuclides are named by concatenating their Z and their A numbers. For + example, U235 is named 92235. Metastable nuclides are appended with an + '_m' and their metastable number. For example, the first excited isomer + of Am-242 is named 95242_m1. + +:Datasets: - **data** (*double[][][]*) -- The energy release coefficients. The + first axis indexes the component type. The second axis specifies + values or uncertainties. The third axis indexes the polynomial + order. If the data uses the Sher-Beck format, then the last axis + will have a length of one and ENDF-102 should be consulted for + energy dependence. Otherwise, the data uses the Madland format + which is a polynomial of incident energy. + + For example, if 'EFR' is given first in the **component order** + attribute and the data uses the Madland format, then the energy + released in the form of fission fragments at an incident energy + :math:`E` is given by + + .. math:: + \text{data}[0, 0, 0] + \text{data}[0, 0, 1] \cdot E + + \text{data}[0, 0, 2] \cdot E^2 + \ldots + + And its uncertainty is + + .. math:: + \text{data}[0, 1, 0] + \text{data}[0, 1, 1] \cdot E + + \text{data}[0, 1, 2] \cdot E^2 + \ldots + +.. _ENDF-102: http://www.nndc.bnl.gov/endfdocs/ENDF-102-2012.pdf diff --git a/docs/source/io_formats/index.rst b/docs/source/io_formats/index.rst index acab7e8930..39b38fcf21 100644 --- a/docs/source/io_formats/index.rst +++ b/docs/source/io_formats/index.rst @@ -15,6 +15,7 @@ Data Files nuclear_data mgxs_library data_wmp + fission_energy ------------ Output Files diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index ba6a54eb1e..7544ca1f5e 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -55,6 +55,27 @@ Incident Neutron Data from fission. It is formatted as a reaction product, described in :ref:`product`. +**//fission_energy_release/** + +:Attributes: - **format** (*char[]*) -- The energy-dependence format. Either + 'Madland' or 'Sher-Beck' + +:Datasets: - **fragments** (*double[]*) -- Polynomial coefficients for energy + released in the form of fragments + - **prompt_neutrons** (*double[]* or :ref:`tabulated <1d_tabulated>`) + -- Energy released in the form of prompt neutrons. Polynomial if + the format is Madland or a table if Sher-Beck. + - **delayed_neutrons** (*double[]*) -- Polynomial coefficients for + energy released in the form of delayed neutrons + - **prompt_photons** (*double[]*) -- Polynomial coefficients for + energy released in the form of prompt photons + - **delayed_photons** (*double[]*) -- Polynomial coefficients for + energy released in the form of delayed photons + - **betas** (*double[]*) -- Polynomial coefficients for + energy released in the form of betas + - **neutrinos** (*double[]*) -- Polynomial coefficients for + energy released in the form of neutrinos + ------------------------------- Thermal Neutron Scattering Data ------------------------------- diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 36f161b3c3..5d45c799d7 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -335,6 +335,7 @@ Core Classes openmc.data.Tabulated1D openmc.data.ThermalScattering openmc.data.CoherentElastic + openmc.data.FissionEnergyRelease Angle-Energy Distributions -------------------------- @@ -368,21 +369,22 @@ Classes +++++++ .. autosummary:: - :toctree: generated - :nosignatures: - :template: myclass.rst + :toctree: generated + :nosignatures: + :template: myclass.rst - openmc.data.ace.Library - openmc.data.ace.Table + openmc.data.ace.Library + openmc.data.ace.Table Functions +++++++++ .. autosummary:: - :toctree: generated - :nosignatures: + :toctree: generated + :nosignatures: - openmc.data.ace.ascii_to_binary + openmc.data.ace.ascii_to_binary + openmc.data.write_compact_458_library .. _Jupyter: https://jupyter.org/ .. _NumPy: http://www.numpy.org/ diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index c22fef9a9b..d7fe5fa720 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -1,7 +1,6 @@ from collections import Callable from copy import deepcopy import sys -#from warnings import warn import h5py import numpy as np @@ -199,6 +198,82 @@ def write_compact_458_library(endf_files, output_name=None, comment=None, class FissionEnergyRelease(object): + """Energy relased by fission reactions. + + Energy is carried away from fission reactions by many different particles. + The attributes of this class specify how much energy is released in the form + of fission fragments, neutrons, photons, etc. Each component is also (in + general) a function of the incident neutron energy. + + Following a fission reaction, most of the energy release is carried by the + daughter nuclei fragments. These fragments accelerate apart from the + Coulomb force on the time scale of ~10^-20 s [1]. Those fragments emit + prompt neutrons between ~10^-18 and ~10^-13 s after scission (although some + prompt neutrons may come directly from the scission point) [1]. Prompt + photons follow with a time scale of ~10^-14 to ~10^-7 s [1]. The fission + products then emit delayed neutrons with half lives between 0.1 and 100 s. + The remaining fission energy comes from beta decays of the fission products + which release beta particles, photons, and neutrinos (that escape the + reactor and do not produce usable heat). + + Use the class methods to instantiate this class from an HDF5 or ENDF + dataset. The :meth:`FissionEnergyRelease.from_hdf5` method builds this + class from the usual OpenMC HDF5 data files. + :meth:`FissionEnergyRelease.from_endf` uses ENDF-formatted data. + :meth:`FissionEnergyRelease.from_compact_hdf5` uses a different HDF5 format + that is meant to be compact and store the exact same data as the ENDF + format. Files with this format can be generated with the + :func:`openmc.data.write_compact_458_library` function. + + References + ---------- + [1] D. G. Madland, "Total prompt energy release in the neutron-induced + fission of ^235U, ^238U, and ^239Pu", Nuclear Physics A 772:113--137 (2006). + + + Attributes + ---------- + fragments : Callable + Function that accepts incident neutron energy value(s) and returns the + kinetic energy of the fission daughter nuclides (after prompt neutron + emission). + prompt_neutrons : Callable + Function of energy that returns the kinetic energy of prompt fission + neutrons. + delayed_neutrons : Callable + Function of energy that returns the kinetic energy of delayed neutrons + emitted from fission products. + prompt_photons : Callable + Function of energy that returns the kinetic energy of prompt fission + photons. + delayed_photons : Callable + Function of energy that returns the kinetic energy of delayed photons. + betas : Callable + Function of energy that returns the kinetic energy of delayed beta + particles. + neutrinos : Callable + Function of energy that returns the kinetic energy of neutrinos. + recoverable : Callable + Function of energy that returns the kinetic energy of all products that + can be absorbed in the reactor (all of the energy except for the + neutrinos). + total : Callable + Function of energy that returns the kinetic energy of all products. + q_prompt : Callable + Function of energy that returns the prompt fission Q-value (fragments + + prompt neutrons + prompt photons - incident neutron energy). + q_recoverable : Callable + Function of energy that returns the recoverable fission Q-value + (total release - neutrinos - incident neutron energy). This value is + sometimes referred to as the pseudo-Q-value. + q_total : Callable + Function of energy that returns the total fission Q-value (total release + - incident neutron energy). + form : str + Format used to compute the energy-dependence of the data. Either + 'Sher-Beck' or 'Madland'. + + """ def __init__(self): self._fragments = None self._prompt_neutrons = None @@ -453,8 +528,10 @@ class FissionEnergyRelease(object): obj.neutrinos = Polynomial(group['neutrinos'].value) if group.attrs['format'].decode() == 'Madland': + obj.form = 'Madland' obj.prompt_neutrons = Polynomial(group['prompt_neutrons'].value) elif group.attrs['format'].decode() == 'Sher-Beck': + obj.form = 'Sher-Beck' obj.prompt_neutrons = Tabulated1D.from_hdf5( group['prompt_neutrons']) else: @@ -471,7 +548,7 @@ class FissionEnergyRelease(object): fname : str Path to an HDF5 file containing fission energy release data. This file should have been generated form the - openmc.data.write_compact_458_library function. + :func:`openmc.data.write_compact_458_library` function. incident_neutron : openmc.data.IncidentNeutron Corresponding incident neutron dataset From ef89d40479015f673851020b2749993f771bbe33 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 3 Aug 2016 11:35:42 -0500 Subject: [PATCH 231/417] Add fission energy release test, score docs --- docs/source/usersguide/input.rst | 21 +++++++++++++++++++++ tests/test_tallies/inputs_true.dat | 2 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tallies/test_tallies.py | 5 +++-- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index e530097ded..9ed30afeb8 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1809,6 +1809,27 @@ The ```` element accepts the following sub-elements: | |:math:`\gamma`-rays are assumed to deposit their | | |energy locally. Units are MeV per source particle. | +----------------------+---------------------------------------------------+ + |fission-q-prompt |The prompt fission energy production rate. This | + | |energy comes in the form of fission fragment | + | |nuclei, prompt neutrons, and prompt | + | |:math:`\gamma`-rays. This value depends on the | + | |incident energy and it requires that the nuclear | + | |data library contains the optional fission energy | + | |release data. Energy is assumed to be deposited | + | |locally. Units are MeV per source particle. | + +----------------------+---------------------------------------------------+ + |fission-q-recoverable |The recoverable fission energy production rate. | + | |This energy comes in the form of fission fragment | + | |nuclei, prompt and delayed neutrons, prompt and | + | |delayed :math:`\gamma`-rays, and delayed | + | |:math:`\beta`-rays. This tally differs from the | + | |kappa-fission tally in that it is dependent on | + | |incident neutron energy and it requires that the | + | |nuclear data library contains the optional fission | + | |energy release data. Energy is assumed to be | + | |deposited locally. Units are MeV per source | + | |paticle. | + +----------------------+---------------------------------------------------+ .. note:: The ``analog`` estimator is actually identical to the ``collision`` diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index 9d67bc0d03..f5390eea12 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -930af242a043f2676a000dbc5a2db6b148edcb31ed8c87dbaa35a8efb37a3be8cff30cdf4dc03f9c5c7eb4021f7e4c3327e64681cdd8fd8722c95c69db850227 \ No newline at end of file +1bef757d276362fdcd9405096b4cdcbd894f9215ed406493486a45193729be446c9a12242c887f89b6e209ec5beaaacb04dee2fd61e72b4f5c6a8712b776ed6e \ No newline at end of file diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 7aa65e1c19..7d4763f98d 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -a51db2a4efc681805f85968e04411dc33beee0532c202f5179b9a82880ab60a75e53fa9141c81045ea1d2842372f2d8da900326f09382ea61dd80a3c9b43bba1 \ No newline at end of file +f8ad60a94994e6b126b64b8a3e10ac3647314fff37558f9e32f174e6baf944aa2e617ad15f3aa6d6b3fc4e4ead944afb3ca2ea606b40e50bf96e7ad86c86a12b \ No newline at end of file diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index ba0098513c..387be8af51 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -123,8 +123,9 @@ class TalliesTestHarness(PyAPITestHarness): 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', - 'prompt-nu-fission'] + '(n,gamma)', 'nu-fission', 'scatter', 'elastic', + 'total', 'prompt-nu-fission', 'fission-q-prompt', + 'fission-q-recoverable'] score_tallies[0].estimator = 'tracklength' score_tallies[1].estimator = 'analog' score_tallies[2].estimator = 'collision' From 4ff005b439481439f74b1c5d8e2ae9dda50d07d2 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 3 Aug 2016 15:53:18 -0500 Subject: [PATCH 232/417] Fix incident neutron energy subtraction --- openmc/data/fission_energy.py | 4 ++-- src/endf.F90 | 4 ++++ tests/test_tallies/results_true.dat | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index d7fe5fa720..334231a9f6 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -603,12 +603,12 @@ class FissionEnergyRelease(object): data=self.prompt_neutrons.coef) q_prompt = (self.fragments + self.prompt_neutrons + - self.prompt_photons + Polynomial((-1.0, 0.0))) + self.prompt_photons + Polynomial((0.0, -1.0))) group.create_dataset('q_prompt', data=q_prompt.coef) q_recoverable = (self.fragments + self.prompt_neutrons + self.delayed_neutrons + self.prompt_photons + self.delayed_photons + self.betas + - Polynomial((-1.0, 0.0))) + Polynomial((0.0, -1.0))) group.create_dataset('q_recoverable', data=q_recoverable.coef) elif self.form == 'Sher-Beck': group.attrs['format'] = np.string_('Sher-Beck') diff --git a/src/endf.F90 b/src/endf.F90 index a836a54397..833082e1c7 100644 --- a/src/endf.F90 +++ b/src/endf.F90 @@ -60,6 +60,10 @@ contains string = "events" case (SCORE_INVERSE_VELOCITY) string = "inverse-velocity" + case (SCORE_FISS_Q_PROMPT) + string = "fission-q-prompt" + case (SCORE_FISS_Q_RECOV) + string = "fission-q-recoverable" ! Normal ENDF-based reactions case (TOTAL_XS) diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 7d4763f98d..818d99a92b 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -f8ad60a94994e6b126b64b8a3e10ac3647314fff37558f9e32f174e6baf944aa2e617ad15f3aa6d6b3fc4e4ead944afb3ca2ea606b40e50bf96e7ad86c86a12b \ No newline at end of file +a6e5480c66e6510687bf281983b3f387da45005bb08d8cd0aa629e53c5a42a1b2fa8d76345ad2df497d85f2b273fbc5edc36105a71a73c1107479ca0af8329f6 \ No newline at end of file From d19ea4f68fd4a424271103c0dabf12461870eadd Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 4 Aug 2016 15:03:55 -0400 Subject: [PATCH 233/417] changed mdgxs distribcell test to produce non-zero results --- .../inputs_true.dat | 2 +- .../results_true.dat | 42 +++++++++---------- .../test_mdgxs_library_distribcell.py | 8 +++- 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/tests/test_mdgxs_library_distribcell/inputs_true.dat b/tests/test_mdgxs_library_distribcell/inputs_true.dat index 9b07e293ee..31a7a7f904 100644 --- a/tests/test_mdgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mdgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -2d7ef183881fb47ba66ac4ff60a4e510f7b85361aca6dbbe6df2dc89b8492ad3bacbde747803532670bf207ec586dab910448fc1e49f2e57a3bf93256d24442c \ No newline at end of file +d3cf661e7fd29b0bbd6e6a464bb3b0b48a798dbd5c701246fd3c904f87c0d07ad995fc07f5b0a6c665449b7f5c92f68968e3947690794a0b743ea38a7f43f95f \ No newline at end of file diff --git a/tests/test_mdgxs_library_distribcell/results_true.dat b/tests/test_mdgxs_library_distribcell/results_true.dat index 22aeef3967..67f65fc301 100644 --- a/tests/test_mdgxs_library_distribcell/results_true.dat +++ b/tests/test_mdgxs_library_distribcell/results_true.dat @@ -1,21 +1,21 @@ - avg(distribcell) delayedgroup group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0 0 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 0 0 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 0 0 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0 0 -4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0 0 -5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 0 0 - avg(distribcell) delayedgroup 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 0 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 0 0 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 0 0 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0 0 -4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0 0 -5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 0 0 - avg(distribcell) delayedgroup group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0 0 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 0 0 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 0 0 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0 0 -4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0 0 -5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 0 0 + avg(distribcell) delayedgroup group in nuclide mean std. dev. +0 (0,) 1 1 total 0.000021 0.000002 +1 (0,) 2 1 total 0.000110 0.000008 +2 (0,) 3 1 total 0.000107 0.000008 +3 (0,) 4 1 total 0.000249 0.000018 +4 (0,) 5 1 total 0.000112 0.000008 +5 (0,) 6 1 total 0.000046 0.000003 + avg(distribcell) delayedgroup group out nuclide mean std. dev. +0 (0,) 1 1 total 0 0.000000 +1 (0,) 2 1 total 1 0.869128 +2 (0,) 3 1 total 1 1.414214 +3 (0,) 4 1 total 1 0.360359 +4 (0,) 5 1 total 0 0.000000 +5 (0,) 6 1 total 0 0.000000 + avg(distribcell) delayedgroup group in nuclide mean std. dev. +0 (0,) 1 1 total 0.000227 0.000022 +1 (0,) 2 1 total 0.001214 0.000115 +2 (0,) 3 1 total 0.001184 0.000111 +3 (0,) 4 1 total 0.002752 0.000257 +4 (0,) 5 1 total 0.001231 0.000113 +5 (0,) 6 1 total 0.000512 0.000047 diff --git a/tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py b/tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py index 48b3758715..df4fc184d3 100644 --- a/tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py +++ b/tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py @@ -6,12 +6,16 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MDGXSTestHarness(PyAPITestHarness): def _build_inputs(self): + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() + # Generate inputs using parent class routine super(MDGXSTestHarness, self)._build_inputs() @@ -31,8 +35,8 @@ class MDGXSTestHarness(PyAPITestHarness): self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.delayed_groups = delayed_groups self.mgxs_lib.domain_type = 'distribcell' - material_cells = self.mgxs_lib.openmc_geometry.get_all_material_cells() - self.mgxs_lib.domains = [material_cells[-1]] + cells = self.mgxs_lib.openmc_geometry.get_all_material_cells() + self.mgxs_lib.domains = [c for c in cells if c.name == 'cell 1'] self.mgxs_lib.build_library() # Initialize a tallies file From ab96c3d874d62604d1efc4957aff88f9d3c88ed0 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 4 Aug 2016 16:37:53 -0400 Subject: [PATCH 234/417] fixed printing of x-min surface current to tallies.out --- src/output.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/output.F90 b/src/output.F90 index 3b0e2c7835..579735007e 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -1035,7 +1035,7 @@ contains ! Left Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_RIGHT + matching_bins(i_filter_surf) = OUT_LEFT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & From a15e493dabba3f6777f3a1e11b91574d3f87b03a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 4 Aug 2016 21:59:43 -0500 Subject: [PATCH 235/417] A few fixes to ensure smooth MCNP6 ACE library conversion --- openmc/data/thermal.py | 12 ++++++------ scripts/openmc-ace-to-hdf5 | 17 ++++++++++++----- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 158ce39853..6e3f6d452a 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -16,7 +16,7 @@ from openmc.stats import Discrete, Tabular _THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27', 'be': 'c_Be', - 'bebeo': 'c_Be_in_BeO', 'be-o': 'c_Be_in_BeO', + 'bebeo': 'c_Be_in_BeO', 'be-o': 'c_Be_in_BeO', 'be/o': 'c_Be_in_BeO', 'benz': 'c_Benzine', 'cah': 'c_Ca_in_CaH2', 'dd2o': 'c_D_in_D2O', 'hwtr': 'c_D_in_D2O', @@ -25,18 +25,18 @@ _THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27', 'hca': 'c_H_in_CaH2', 'hch2': 'c_H_in_CH2', 'poly': 'c_H_in_CH2', 'hh2o': 'c_H_in_H2O', 'lwtr': 'c_H_in_H2O', - 'hzrh': 'c_H_in_ZrH', 'h-zr': 'c_H_in_ZrH', + 'hzrh': 'c_H_in_ZrH', 'h-zr': 'c_H_in_ZrH', 'h/zr': 'c_H_in_ZrH', 'lch4': 'c_liquid_CH4', 'lmeth': 'c_liquid_CH4', 'mg': 'c_Mg24', - 'obeo': 'c_O_in_BeO', 'o-be': 'c_O_in_BeO', + 'obeo': 'c_O_in_BeO', 'o-be': 'c_O_in_BeO', 'o/be': 'c_O_in_BeO', 'orthod': 'c_ortho_D', 'dortho': 'c_ortho_D', 'orthoh': 'c_ortho_H', 'hortho': 'c_ortho_H', - 'ouo2': 'c_O_in_UO2', 'o2-u': 'c_O_in_UO2', + 'ouo2': 'c_O_in_UO2', 'o2-u': 'c_O_in_UO2', 'o2/u': 'c_O_in_UO2', 'parad': 'c_para_D', 'dpara': 'c_para_D', 'parah': 'c_para_H', 'hpara': 'c_para_H', 'sch4': 'c_solid_CH4', 'smeth': 'c_solid_CH4', - 'uuo2': 'c_U_in_UO2', 'u-o2': 'c_U_in_UO2', - 'zrzrh': 'c_Zr_in_ZrH', 'zr-h': 'c_Zr_in_ZrH'} + 'uuo2': 'c_U_in_UO2', 'u-o2': 'c_U_in_UO2', 'u/o2': 'c_U_in_UO2', + 'zrzrh': 'c_Zr_in_ZrH', 'zr-h': 'c_Zr_in_ZrH', 'zr/h': 'c_Zr_in_ZrH'} class CoherentElastic(object): diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 index 743cf4a509..21a2718a59 100755 --- a/scripts/openmc-ace-to-hdf5 +++ b/scripts/openmc-ace-to-hdf5 @@ -75,8 +75,15 @@ elif args.xsdir is not None: else: raise IOError("Could not find 'directory' section in MCNP xsdir file") + # Handle continuation lines indicated by '+' at end of line + lines = lines[index + 1:] + continue_lines = [i for i, line in enumerate(lines) + if line.strip().endswith('+')] + for i in reversed(continue_lines): + lines[i] += lines[i].strip()[:-1] + lines.pop(i + 1) + # Create list of ACE libraries - for line in lines[index + 1:]: + for line in lines: words = line.split() if len(words) < 3: continue @@ -111,12 +118,12 @@ for filename in ace_libraries: # Continuous-energy neutron data neutron = openmc.data.IncidentNeutron.from_ace( table, args.metastable) - print(neutron.name) + print('Converting {} (ACE) to {} (HDF5)'.format(table.name, neutron.name)) # Determine filename outfile = os.path.join(args.destination, neutron.name.replace('.', '_') + '.h5') - neutron.export_to_hdf5(outfile) + neutron.export_to_hdf5(outfile, 'w') # Register with library library.register_file(outfile) @@ -124,12 +131,12 @@ for filename in ace_libraries: elif table.name.endswith('t'): # Thermal scattering data thermal = openmc.data.ThermalScattering.from_ace(table) - print(thermal.name) + print('Converting {} (ACE) to {} (HDF5)'.format(table.name, thermal.name)) # Determine filename outfile = os.path.join(args.destination, thermal.name.replace('.', '_') + '.h5') - thermal.export_to_hdf5(outfile) + thermal.export_to_hdf5(outfile, 'w') # Register with library library.register_file(outfile, 'thermal') From 469c7ff38ef09f3017825120091e4b7e895fecd9 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 5 Aug 2016 08:37:57 -0400 Subject: [PATCH 236/417] added mdgxs tallies to mgxs tests and addressed other PR comments --- openmc/mgxs/groups.py | 12 +- openmc/mgxs/library.py | 7 +- src/cmfd_data.F90 | 2 +- .../inputs_true.dat | 2 +- .../results_true.dat | 63 ++++++++++ .../test_mgxs_library_condense.py | 8 +- .../inputs_true.dat | 2 +- .../results_true.dat | 105 +++++++++------- .../test_mgxs_library_distribcell.py | 16 ++- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 117 ++++++++++++++++++ .../test_mgxs_library_hdf5.py | 8 +- tests/test_mgxs_library_mesh/inputs_true.dat | 2 +- tests/test_mgxs_library_mesh/results_true.dat | 78 ++++++++++++ .../test_mgxs_library_mesh.py | 7 +- .../inputs_true.dat | 2 +- .../results_true.dat | 117 ++++++++++++++++++ .../test_mgxs_library_no_nuclides.py | 8 +- tests/test_score_current/results_true.dat | 2 +- 19 files changed, 493 insertions(+), 67 deletions(-) diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index 881597c7b2..c0eaa27c17 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -376,9 +376,10 @@ class DelayedGroups(object): # Check that the groups are within [1, MAX_DELAYED_GROUPS] for group in groups: cv.check_greater_than('delayed group', group, 0) - cv.check_less_than('delayed group', group, MAX_DELAYED_GROUPS + 1) + cv.check_less_than('delayed group', group, MAX_DELAYED_GROUPS, + equality=True) - self._groups = np.array(groups, dtype=int) + self._groups = np.asarray(groups, dtype=int) def can_merge(self, other): """Determine if delayed groups can be merged with another. @@ -395,10 +396,7 @@ class DelayedGroups(object): """ - if not isinstance(other, DelayedGroups): - return False - else: - return True + return isinstance(other, DelayedGroups) def merge(self, other): """Merge this delayed groups with another. @@ -424,7 +422,7 @@ class DelayedGroups(object): # Merge unique filter bins groups = np.concatenate((self.groups, other.groups)) groups = np.unique(groups) - groups = sorted(groups) + groups.sort() # Assign groups to merged groups merged_groups.groups = list(groups) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 56399ee2f0..5a4e2c94d4 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -255,8 +255,7 @@ class Library(object): @mgxs_types.setter def mgxs_types(self, mgxs_types): - all_mgxs_types = np.append(openmc.mgxs.MGXS_TYPES, - openmc.mgxs.MDGXS_TYPES) + all_mgxs_types = openmc.mgxs.MGXS_TYPES + openmc.mgxs.MDGXS_TYPES if mgxs_types == 'all': self._mgxs_types = all_mgxs_types else: @@ -270,7 +269,7 @@ class Library(object): cv.check_type('by_nuclide', by_nuclide, bool) if by_nuclide == True and self.domain_type == 'mesh': - raise ValueError('Unable to create MGXS library by nuclide with ' + + raise ValueError('Unable to create MGXS library by nuclide with ' 'mesh domain') self._by_nuclide = by_nuclide @@ -280,7 +279,7 @@ class Library(object): cv.check_value('domain type', domain_type, openmc.mgxs.DOMAIN_TYPES) if self.by_nuclide == True and domain_type == 'mesh': - raise ValueError('Unable to create MGXS library by nuclide with ' + + raise ValueError('Unable to create MGXS library by nuclide with ' 'mesh domain') self._domain_type = domain_type diff --git a/src/cmfd_data.F90 b/src/cmfd_data.F90 index bda12f27b4..d74c1b17e0 100644 --- a/src/cmfd_data.F90 +++ b/src/cmfd_data.F90 @@ -254,7 +254,7 @@ contains ! Right surface if (i < nx) then matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i+1, j, k /) ) + (/ i+1, j, k /) ) matching_bins(i_filter_surf) = OUT_LEFT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! incoming diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index 0c648376e8..e58015868a 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e \ No newline at end of file +08c5f1c783dd88c5fed51c054718ca09fc4e99aa4560a6f928b3902991948f3a878d055ac46c07548904285c2c5f22dc2a3d8c1bb82b8e73d76dd790820117df \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index ae768cbe67..d1a964a860 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -40,6 +40,27 @@ 0 10000 1 total 4.996730e-07 3.650635e-08 material group in nuclide mean std. dev. 0 10000 1 total 0.090004 0.006367 + material delayedgroup group in nuclide mean std. dev. +0 10000 1 1 total 0.000021 0.000001 +1 10000 2 1 total 0.000110 0.000008 +2 10000 3 1 total 0.000107 0.000007 +3 10000 4 1 total 0.000249 0.000017 +4 10000 5 1 total 0.000112 0.000007 +5 10000 6 1 total 0.000046 0.000003 + material delayedgroup group out nuclide mean std. dev. +0 10000 1 1 total 0.0 0.000000 +1 10000 2 1 total 1.0 0.869128 +2 10000 3 1 total 1.0 1.414214 +3 10000 4 1 total 1.0 0.360359 +4 10000 5 1 total 0.0 0.000000 +5 10000 6 1 total 0.0 0.000000 + material delayedgroup group in nuclide mean std. dev. +0 10000 1 1 total 0.000227 0.000020 +1 10000 2 1 total 0.001214 0.000108 +2 10000 3 1 total 0.001184 0.000104 +3 10000 4 1 total 0.002752 0.000240 +4 10000 5 1 total 0.001231 0.000105 +5 10000 6 1 total 0.000512 0.000044 material group in nuclide mean std. dev. 0 10001 1 total 0.311594 0.013793 material group in nuclide mean std. dev. @@ -82,6 +103,27 @@ 0 10001 1 total 5.454760e-07 4.949800e-08 material group in nuclide mean std. dev. 0 10001 1 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +0 10001 1 1 total 0.0 0.0 +1 10001 2 1 total 0.0 0.0 +2 10001 3 1 total 0.0 0.0 +3 10001 4 1 total 0.0 0.0 +4 10001 5 1 total 0.0 0.0 +5 10001 6 1 total 0.0 0.0 + material delayedgroup group out nuclide mean std. dev. +0 10001 1 1 total 0.0 0.0 +1 10001 2 1 total 0.0 0.0 +2 10001 3 1 total 0.0 0.0 +3 10001 4 1 total 0.0 0.0 +4 10001 5 1 total 0.0 0.0 +5 10001 6 1 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +0 10001 1 1 total 0.0 0.0 +1 10001 2 1 total 0.0 0.0 +2 10001 3 1 total 0.0 0.0 +3 10001 4 1 total 0.0 0.0 +4 10001 5 1 total 0.0 0.0 +5 10001 6 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10002 1 total 0.904999 0.043964 material group in nuclide mean std. dev. @@ -124,3 +166,24 @@ 0 10002 1 total 5.773006e-07 5.322132e-08 material group in nuclide mean std. dev. 0 10002 1 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +0 10002 1 1 total 0.0 0.0 +1 10002 2 1 total 0.0 0.0 +2 10002 3 1 total 0.0 0.0 +3 10002 4 1 total 0.0 0.0 +4 10002 5 1 total 0.0 0.0 +5 10002 6 1 total 0.0 0.0 + material delayedgroup group out nuclide mean std. dev. +0 10002 1 1 total 0.0 0.0 +1 10002 2 1 total 0.0 0.0 +2 10002 3 1 total 0.0 0.0 +3 10002 4 1 total 0.0 0.0 +4 10002 5 1 total 0.0 0.0 +5 10002 6 1 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +0 10002 1 1 total 0.0 0.0 +1 10002 2 1 total 0.0 0.0 +2 10002 3 1 total 0.0 0.0 +3 10002 4 1 total 0.0 0.0 +4 10002 5 1 total 0.0 0.0 +5 10002 6 1 total 0.0 0.0 diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index 5571b59f2e..b849391690 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -23,12 +23,18 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + # Initialize a six-delayed-group structure + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False + # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ + openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' self.mgxs_lib.build_library() diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 055ce35a57..64cd6b748d 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -2d948f3b12293294eaeca231a3df9d51195379e8bb38dd3e68d3bc512a7d08ed52a1109054ca381684ec127268710f6d6e9210ac8154c9b379608e996627624a \ No newline at end of file +5e4bd179eeb955f61e01dc2a486e3fefd2cef7859390f12a817cd5412359766d7bfe0bf3f8553e8d28af0844ee04a4ebaad6510ec6157ee836d631a2a2b3baec \ 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 c21ca09e99..fb301be61f 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,42 +1,63 @@ - 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 1.145934 0.553822 - 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.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.019762 0.010629 - 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.019762 0.010629 - 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 0.0 - 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 0.0 - 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 0.0 - 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 1.126172 0.54344 - 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 1.142547 0.570131 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 0.570131 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 - 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 1.0 0.529717 - 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.0 0.0 - 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 0.0 - 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 0.0 - 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.000001 6.946255e-07 - 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 0.0 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 0.453624 0.02261 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 0.400852 0.024589 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 0.400852 0.024589 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 0.064903 0.004684 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 0.028048 0.004982 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 0.036855 0.002749 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 0.090649 0.006763 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 7.137955 0.532092 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 0.388721 0.018415 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 0.389304 0.023619 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0,) 1 1 total P0 0.389304 0.023619 +1 (0,) 1 1 total P1 0.046224 0.005672 +2 (0,) 1 1 total P2 0.017984 0.002178 +3 (0,) 1 1 total P3 0.006628 0.001620 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0,) 1 1 total P0 0.389304 0.023619 +1 (0,) 1 1 total P1 0.046224 0.005672 +2 (0,) 1 1 total P2 0.017984 0.002178 +3 (0,) 1 1 total P3 0.006628 0.001620 + avg(distribcell) group in group out nuclide mean std. dev. +0 (0,) 1 1 total 1.0 0.066327 + avg(distribcell) group in group out nuclide mean std. dev. +0 (0,) 1 1 total 0.085835 0.004328 + avg(distribcell) group out nuclide mean std. dev. +0 (0,) 1 total 1.0 0.046071 + avg(distribcell) group out nuclide mean std. dev. +0 (0,) 1 total 1.0 0.051471 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 4.996730e-07 3.741595e-08 + avg(distribcell) group in nuclide mean std. dev. +0 (0,) 1 total 0.090004 0.006717 + avg(distribcell) delayedgroup group in nuclide mean std. dev. +0 (0,) 1 1 total 0.000021 0.000002 +1 (0,) 2 1 total 0.000110 0.000008 +2 (0,) 3 1 total 0.000107 0.000008 +3 (0,) 4 1 total 0.000249 0.000018 +4 (0,) 5 1 total 0.000112 0.000008 +5 (0,) 6 1 total 0.000046 0.000003 + avg(distribcell) delayedgroup group out nuclide mean std. dev. +0 (0,) 1 1 total 0.0 0.000000 +1 (0,) 2 1 total 1.0 0.869128 +2 (0,) 3 1 total 1.0 1.414214 +3 (0,) 4 1 total 1.0 0.360359 +4 (0,) 5 1 total 0.0 0.000000 +5 (0,) 6 1 total 0.0 0.000000 + avg(distribcell) delayedgroup group in nuclide mean std. dev. +0 (0,) 1 1 total 0.000227 0.000022 +1 (0,) 2 1 total 0.001214 0.000115 +2 (0,) 3 1 total 0.001184 0.000111 +3 (0,) 4 1 total 0.002752 0.000257 +4 (0,) 5 1 total 0.001231 0.000113 +5 (0,) 6 1 total 0.000512 0.000047 diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index 30593e54b5..d03f003134 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -6,29 +6,39 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() + # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() # Initialize a one-group structure energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) + # Initialize a six-delayed-group structure + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + # Initialize MGXS Library for a few cross section types # for one material-filled cell in the geometry self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False + # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ + openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'distribcell' - material_cells = self.mgxs_lib.openmc_geometry.get_all_material_cells() - self.mgxs_lib.domains = [material_cells[-1]] + cells = self.mgxs_lib.openmc_geometry.get_all_material_cells() + self.mgxs_lib.domains = [c for c in cells if c.name == 'cell 1'] self.mgxs_lib.build_library() # Initialize a tallies file diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index 0c648376e8..e58015868a 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e \ No newline at end of file +08c5f1c783dd88c5fed51c054718ca09fc4e99aa4560a6f928b3902991948f3a878d055ac46c07548904285c2c5f22dc2a3d8c1bb82b8e73d76dd790820117df \ 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 b2bd28f279..3108573b35 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -72,6 +72,45 @@ domain=10000 type=inverse-velocity domain=10000 type=prompt-nu-fission [ 0.01923922 0.46671903] [ 0.00130951 0.04141087] +domain=10000 type=delayed-nu-fission +[[ 2.29808234e-05 1.06974158e-04] + [ 1.43606337e-04 5.52167907e-04] + [ 1.51382216e-04 5.27147681e-04] + [ 7.42603178e-05 2.22018043e-04] + [ 4.14908454e-05 9.10244403e-05] + [ 1.70016000e-05 3.81298119e-05]] +[[ 1.66363133e-06 9.49156242e-06] + [ 1.05907806e-05 4.89925426e-05] + [ 1.12671238e-05 4.67725567e-05] + [ 5.22610273e-06 1.87563195e-05] + [ 2.99830766e-06 7.68984041e-06] + [ 1.22654684e-06 3.22124663e-06]] +domain=10000 type=chi-delayed +[[ 0. 0.] + [ 1. 0.] + [ 1. 0.] + [ 1. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0. ] + [ 0.86912776 0. ] + [ 1.41421356 0. ] + [ 0.36035904 0. ] + [ 0. 0. ] + [ 0. 0. ]] +domain=10000 type=beta +[[ 4.89188107e-05 2.27713711e-04] + [ 3.05691886e-04 1.17538858e-03] + [ 3.22244241e-04 1.12212853e-03] + [ 3.82159891e-03 1.14255357e-02] + [ 2.13520995e-03 4.68431744e-03] + [ 8.74939644e-04 1.96224379e-03]] +[[ 4.67388620e-06 2.46946810e-05] + [ 2.95223877e-05 1.27466393e-04] + [ 3.12885004e-05 1.21690543e-04] + [ 3.21434855e-04 1.09939816e-03] + [ 1.82980497e-04 4.50738567e-04] + [ 7.48899920e-05 1.88812772e-04]] domain=10001 type=total [ 0.31373767 0.3008214 ] [ 0.0155819 0.02805245] @@ -146,6 +185,45 @@ domain=10001 type=inverse-velocity domain=10001 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] +domain=10001 type=delayed-nu-fission +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +domain=10001 type=chi-delayed +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +domain=10001 type=beta +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] domain=10002 type=total [ 0.66457226 2.05238401] [ 0.03121475 0.22434291] @@ -220,3 +298,42 @@ domain=10002 type=inverse-velocity domain=10002 type=prompt-nu-fission [ 0. 0.] [ 0. 0.] +domain=10002 type=delayed-nu-fission +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +domain=10002 type=chi-delayed +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +domain=10002 type=beta +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] diff --git a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py index 000a1f8cb9..a9d4210479 100644 --- a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py +++ b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py @@ -24,12 +24,18 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + # Initialize a six-delayed-group structure + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False + # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ + openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' self.mgxs_lib.build_library() diff --git a/tests/test_mgxs_library_mesh/inputs_true.dat b/tests/test_mgxs_library_mesh/inputs_true.dat index e036b49a26..f62e0aa05e 100644 --- a/tests/test_mgxs_library_mesh/inputs_true.dat +++ b/tests/test_mgxs_library_mesh/inputs_true.dat @@ -1 +1 @@ -a4cd030bea212e45fdb159e75a7fb3d1947e9bf3d0384ac5d37a72298d67dcfdd1b9eb5c6af8ac6e5983bd5b47de9c17a2ea472b467b7222a4909ee070bf1ca3 \ No newline at end of file +5f167bdd4d6ae5873d48483e85aceaec8a934239ed5a50ef6f6500ce204f5851ae330621a5007f3b3d6bdab49f2cd627d011c1f6e6983fec958a6984eb9cb7ca \ No newline at end of file diff --git a/tests/test_mgxs_library_mesh/results_true.dat b/tests/test_mgxs_library_mesh/results_true.dat index 03019cfd3d..2d641cc952 100644 --- a/tests/test_mgxs_library_mesh/results_true.dat +++ b/tests/test_mgxs_library_mesh/results_true.dat @@ -130,3 +130,81 @@ 1 1 2 1 1 total 0.028922 0.006394 2 2 1 1 1 total 0.022467 0.004039 3 2 2 1 1 total 0.024923 0.009632 + mesh 1 delayedgroup group in nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.000004 4.432732e-07 +1 1 1 1 2 1 total 0.000026 2.653319e-06 +2 1 1 1 3 1 total 0.000024 2.402270e-06 +3 1 1 1 4 1 total 0.000054 5.464055e-06 +4 1 1 1 5 1 total 0.000026 2.663025e-06 +5 1 1 1 6 1 total 0.000010 1.038005e-06 +6 1 2 1 1 1 total 0.000005 1.098837e-06 +7 1 2 1 2 1 total 0.000029 6.436855e-06 +8 1 2 1 3 1 total 0.000027 5.926286e-06 +9 1 2 1 4 1 total 0.000061 1.359391e-05 +10 1 2 1 5 1 total 0.000029 6.489015e-06 +11 1 2 1 6 1 total 0.000011 2.574270e-06 +12 2 1 1 1 1 total 0.000004 6.987770e-07 +13 2 1 1 2 1 total 0.000023 4.115234e-06 +14 2 1 1 3 1 total 0.000021 3.816392e-06 +15 2 1 1 4 1 total 0.000049 8.885822e-06 +16 2 1 1 5 1 total 0.000024 4.378290e-06 +17 2 1 1 6 1 total 0.000009 1.745695e-06 +18 2 2 1 1 1 total 0.000004 1.660497e-06 +19 2 2 1 2 1 total 0.000025 9.701974e-06 +20 2 2 1 3 1 total 0.000023 9.005217e-06 +21 2 2 1 4 1 total 0.000054 2.084107e-05 +22 2 2 1 5 1 total 0.000026 9.981045e-06 +23 2 2 1 6 1 total 0.000010 3.987979e-06 + mesh 1 delayedgroup group out nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.0 0.000000 +1 1 1 1 2 1 total 0.0 0.000000 +2 1 1 1 3 1 total 0.0 0.000000 +3 1 1 1 4 1 total 1.0 1.414214 +4 1 1 1 5 1 total 0.0 0.000000 +5 1 1 1 6 1 total 0.0 0.000000 +6 1 2 1 1 1 total 0.0 0.000000 +7 1 2 1 2 1 total 0.0 0.000000 +8 1 2 1 3 1 total 0.0 0.000000 +9 1 2 1 4 1 total 0.0 0.000000 +10 1 2 1 5 1 total 0.0 0.000000 +11 1 2 1 6 1 total 0.0 0.000000 +12 2 1 1 1 1 total 0.0 0.000000 +13 2 1 1 2 1 total 0.0 0.000000 +14 2 1 1 3 1 total 0.0 0.000000 +15 2 1 1 4 1 total 0.0 0.000000 +16 2 1 1 5 1 total 0.0 0.000000 +17 2 1 1 6 1 total 0.0 0.000000 +18 2 2 1 1 1 total 0.0 0.000000 +19 2 2 1 2 1 total 0.0 0.000000 +20 2 2 1 3 1 total 0.0 0.000000 +21 2 2 1 4 1 total 0.0 0.000000 +22 2 2 1 5 1 total 0.0 0.000000 +23 2 2 1 6 1 total 0.0 0.000000 + mesh 1 delayedgroup group in nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.000166 0.000023 +1 1 1 1 2 1 total 0.000989 0.000136 +2 1 1 1 3 1 total 0.000907 0.000123 +3 1 1 1 4 1 total 0.002087 0.000282 +4 1 1 1 5 1 total 0.001014 0.000137 +5 1 1 1 6 1 total 0.000400 0.000054 +6 1 2 1 1 1 total 0.000171 0.000039 +7 1 2 1 2 1 total 0.001003 0.000226 +8 1 2 1 3 1 total 0.000918 0.000208 +9 1 2 1 4 1 total 0.002100 0.000477 +10 1 2 1 5 1 total 0.000996 0.000228 +11 1 2 1 6 1 total 0.000394 0.000090 +12 2 1 1 1 1 total 0.000167 0.000030 +13 2 1 1 2 1 total 0.001002 0.000178 +14 2 1 1 3 1 total 0.000926 0.000165 +15 2 1 1 4 1 total 0.002149 0.000384 +16 2 1 1 5 1 total 0.001056 0.000189 +17 2 1 1 6 1 total 0.000417 0.000076 +18 2 2 1 1 1 total 0.000171 0.000082 +19 2 2 1 2 1 total 0.001007 0.000480 +20 2 2 1 3 1 total 0.000929 0.000445 +21 2 2 1 4 1 total 0.002143 0.001028 +22 2 2 1 5 1 total 0.001026 0.000492 +23 2 2 1 6 1 total 0.000408 0.000196 diff --git a/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py b/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py index df7a0a5ae8..2db57254b4 100644 --- a/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py +++ b/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py @@ -18,14 +18,19 @@ class MGXSTestHarness(PyAPITestHarness): # Initialize a one-group structure energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) + # Initialize a six-delayed-group structure + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + # Initialize MGXS Library for a few cross section types # for one material-filled cell in the geometry self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ + openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'mesh' diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index 0c648376e8..e58015868a 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -e2cdca7ea5b3532050af5b12fac26d7ef212d2696bb1b73cdd00929b2243c40d100ad02438c7b090555b49815d0de6c48cf1b4ebf437a48bc80c2d2b4bad292e \ No newline at end of file +08c5f1c783dd88c5fed51c054718ca09fc4e99aa4560a6f928b3902991948f3a878d055ac46c07548904285c2c5f22dc2a3d8c1bb82b8e73d76dd790820117df \ 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 141143c8c3..edd99b44c5 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -84,6 +84,45 @@ material group in nuclide mean std. dev. 1 10000 1 total 0.019239 0.001310 0 10000 2 total 0.466719 0.041411 + material delayedgroup group in nuclide mean std. dev. +1 10000 1 1 total 0.000023 0.000002 +3 10000 2 1 total 0.000144 0.000011 +5 10000 3 1 total 0.000151 0.000011 +7 10000 4 1 total 0.000074 0.000005 +9 10000 5 1 total 0.000041 0.000003 +11 10000 6 1 total 0.000017 0.000001 +0 10000 1 2 total 0.000107 0.000009 +2 10000 2 2 total 0.000552 0.000049 +4 10000 3 2 total 0.000527 0.000047 +6 10000 4 2 total 0.000222 0.000019 +8 10000 5 2 total 0.000091 0.000008 +10 10000 6 2 total 0.000038 0.000003 + material delayedgroup group out nuclide mean std. dev. +1 10000 1 1 total 0.0 0.000000 +3 10000 2 1 total 1.0 0.869128 +5 10000 3 1 total 1.0 1.414214 +7 10000 4 1 total 1.0 0.360359 +9 10000 5 1 total 0.0 0.000000 +11 10000 6 1 total 0.0 0.000000 +0 10000 1 2 total 0.0 0.000000 +2 10000 2 2 total 0.0 0.000000 +4 10000 3 2 total 0.0 0.000000 +6 10000 4 2 total 0.0 0.000000 +8 10000 5 2 total 0.0 0.000000 +10 10000 6 2 total 0.0 0.000000 + material delayedgroup group in nuclide mean std. dev. +1 10000 1 1 total 0.000049 0.000005 +3 10000 2 1 total 0.000306 0.000030 +5 10000 3 1 total 0.000322 0.000031 +7 10000 4 1 total 0.003822 0.000321 +9 10000 5 1 total 0.002135 0.000183 +11 10000 6 1 total 0.000875 0.000075 +0 10000 1 2 total 0.000228 0.000025 +2 10000 2 2 total 0.001175 0.000127 +4 10000 3 2 total 0.001122 0.000122 +6 10000 4 2 total 0.011426 0.001099 +8 10000 5 2 total 0.004684 0.000451 +10 10000 6 2 total 0.001962 0.000189 material group in nuclide mean std. dev. 1 10001 1 total 0.313738 0.015582 0 10001 2 total 0.300821 0.028052 @@ -170,6 +209,45 @@ material group in nuclide mean std. dev. 1 10001 1 total 0.0 0.0 0 10001 2 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +1 10001 1 1 total 0.0 0.0 +3 10001 2 1 total 0.0 0.0 +5 10001 3 1 total 0.0 0.0 +7 10001 4 1 total 0.0 0.0 +9 10001 5 1 total 0.0 0.0 +11 10001 6 1 total 0.0 0.0 +0 10001 1 2 total 0.0 0.0 +2 10001 2 2 total 0.0 0.0 +4 10001 3 2 total 0.0 0.0 +6 10001 4 2 total 0.0 0.0 +8 10001 5 2 total 0.0 0.0 +10 10001 6 2 total 0.0 0.0 + material delayedgroup group out nuclide mean std. dev. +1 10001 1 1 total 0.0 0.0 +3 10001 2 1 total 0.0 0.0 +5 10001 3 1 total 0.0 0.0 +7 10001 4 1 total 0.0 0.0 +9 10001 5 1 total 0.0 0.0 +11 10001 6 1 total 0.0 0.0 +0 10001 1 2 total 0.0 0.0 +2 10001 2 2 total 0.0 0.0 +4 10001 3 2 total 0.0 0.0 +6 10001 4 2 total 0.0 0.0 +8 10001 5 2 total 0.0 0.0 +10 10001 6 2 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +1 10001 1 1 total 0.0 0.0 +3 10001 2 1 total 0.0 0.0 +5 10001 3 1 total 0.0 0.0 +7 10001 4 1 total 0.0 0.0 +9 10001 5 1 total 0.0 0.0 +11 10001 6 1 total 0.0 0.0 +0 10001 1 2 total 0.0 0.0 +2 10001 2 2 total 0.0 0.0 +4 10001 3 2 total 0.0 0.0 +6 10001 4 2 total 0.0 0.0 +8 10001 5 2 total 0.0 0.0 +10 10001 6 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10002 1 total 0.664572 0.031215 0 10002 2 total 2.052384 0.224343 @@ -256,3 +334,42 @@ material group in nuclide mean std. dev. 1 10002 1 total 0.0 0.0 0 10002 2 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +1 10002 1 1 total 0.0 0.0 +3 10002 2 1 total 0.0 0.0 +5 10002 3 1 total 0.0 0.0 +7 10002 4 1 total 0.0 0.0 +9 10002 5 1 total 0.0 0.0 +11 10002 6 1 total 0.0 0.0 +0 10002 1 2 total 0.0 0.0 +2 10002 2 2 total 0.0 0.0 +4 10002 3 2 total 0.0 0.0 +6 10002 4 2 total 0.0 0.0 +8 10002 5 2 total 0.0 0.0 +10 10002 6 2 total 0.0 0.0 + material delayedgroup group out nuclide mean std. dev. +1 10002 1 1 total 0.0 0.0 +3 10002 2 1 total 0.0 0.0 +5 10002 3 1 total 0.0 0.0 +7 10002 4 1 total 0.0 0.0 +9 10002 5 1 total 0.0 0.0 +11 10002 6 1 total 0.0 0.0 +0 10002 1 2 total 0.0 0.0 +2 10002 2 2 total 0.0 0.0 +4 10002 3 2 total 0.0 0.0 +6 10002 4 2 total 0.0 0.0 +8 10002 5 2 total 0.0 0.0 +10 10002 6 2 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +1 10002 1 1 total 0.0 0.0 +3 10002 2 1 total 0.0 0.0 +5 10002 3 1 total 0.0 0.0 +7 10002 4 1 total 0.0 0.0 +9 10002 5 1 total 0.0 0.0 +11 10002 6 1 total 0.0 0.0 +0 10002 1 2 total 0.0 0.0 +2 10002 2 2 total 0.0 0.0 +4 10002 3 2 total 0.0 0.0 +6 10002 4 2 total 0.0 0.0 +8 10002 5 2 total 0.0 0.0 +10 10002 6 2 total 0.0 0.0 diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 2c0a2e278c..d2e61a2da4 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -23,12 +23,18 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + # Initialize a six-delayed-group structure + delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False + # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ + openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.delayed_groups = delayed_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' self.mgxs_lib.build_library() diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 5d26226ae2..6b3beb4be8 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -bafab1921a12146abb2bb29603b52b9cc28a5a950a7a6bb1e3f012c05891c310fad643760d4f148b04d0fef3d1f3e141d146e3a278d81cc6fc8187c37717c5e7 \ No newline at end of file +2800fad5519917ffc985094d3263a3e0aac1abf6acb0c25416264135b36141812cc8d7dafc01585b104b8d6ad03cd44b6ce277fdb7df5a3f859fe26e61244e2a \ No newline at end of file From 3c1dd4075dfde4e8bfc15a5a9d5c9e6207d99e67 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 5 Aug 2016 08:39:55 -0400 Subject: [PATCH 237/417] removed mdgxs tests --- .../inputs_true.dat | 1 - .../results_true.dat | 63 ---------- .../test_mdgxs_library_condense.py | 82 ------------ .../inputs_true.dat | 1 - .../results_true.dat | 21 ---- .../test_mdgxs_library_distribcell.py | 84 ------------- tests/test_mdgxs_library_hdf5/inputs_true.dat | 1 - .../test_mdgxs_library_hdf5/results_true.dat | 117 ------------------ .../test_mdgxs_library_hdf5.py | 93 -------------- tests/test_mdgxs_library_mesh/inputs_true.dat | 1 - .../test_mdgxs_library_mesh/results_true.dat | 78 ------------ .../test_mdgxs_library_mesh.py | 84 ------------- .../inputs_true.dat | 1 - .../results_true.dat | 117 ------------------ .../test_mdgxs_library_no_nuclides.py | 80 ------------ .../inputs_true.dat | 1 - .../results_true.dat | 1 - .../test_mdgxs_library_nuclides.py | 80 ------------ 18 files changed, 906 deletions(-) delete mode 100644 tests/test_mdgxs_library_condense/inputs_true.dat delete mode 100644 tests/test_mdgxs_library_condense/results_true.dat delete mode 100644 tests/test_mdgxs_library_condense/test_mdgxs_library_condense.py delete mode 100644 tests/test_mdgxs_library_distribcell/inputs_true.dat delete mode 100644 tests/test_mdgxs_library_distribcell/results_true.dat delete mode 100644 tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py delete mode 100644 tests/test_mdgxs_library_hdf5/inputs_true.dat delete mode 100644 tests/test_mdgxs_library_hdf5/results_true.dat delete mode 100644 tests/test_mdgxs_library_hdf5/test_mdgxs_library_hdf5.py delete mode 100644 tests/test_mdgxs_library_mesh/inputs_true.dat delete mode 100644 tests/test_mdgxs_library_mesh/results_true.dat delete mode 100644 tests/test_mdgxs_library_mesh/test_mdgxs_library_mesh.py delete mode 100644 tests/test_mdgxs_library_no_nuclides/inputs_true.dat delete mode 100644 tests/test_mdgxs_library_no_nuclides/results_true.dat delete mode 100644 tests/test_mdgxs_library_no_nuclides/test_mdgxs_library_no_nuclides.py delete mode 100644 tests/test_mdgxs_library_nuclides/inputs_true.dat delete mode 100644 tests/test_mdgxs_library_nuclides/results_true.dat delete mode 100644 tests/test_mdgxs_library_nuclides/test_mdgxs_library_nuclides.py diff --git a/tests/test_mdgxs_library_condense/inputs_true.dat b/tests/test_mdgxs_library_condense/inputs_true.dat deleted file mode 100644 index 49fe693ee4..0000000000 --- a/tests/test_mdgxs_library_condense/inputs_true.dat +++ /dev/null @@ -1 +0,0 @@ -9e8d8b468bdd81d996956d0d43eef5779b7b7d5ca3f6a1e628f10318748086183e45cf221edf7a274ff2dc6aff34f4411e21952740cdb7652477dfa0a1ffb5f2 \ No newline at end of file diff --git a/tests/test_mdgxs_library_condense/results_true.dat b/tests/test_mdgxs_library_condense/results_true.dat deleted file mode 100644 index 20cc048d14..0000000000 --- a/tests/test_mdgxs_library_condense/results_true.dat +++ /dev/null @@ -1,63 +0,0 @@ - material delayedgroup group in nuclide mean std. dev. -0 10000 1 1 total 0.000021 0.000001 -1 10000 2 1 total 0.000110 0.000008 -2 10000 3 1 total 0.000107 0.000007 -3 10000 4 1 total 0.000249 0.000017 -4 10000 5 1 total 0.000112 0.000007 -5 10000 6 1 total 0.000046 0.000003 - material delayedgroup group out nuclide mean std. dev. -0 10000 1 1 total 0 0.000000 -1 10000 2 1 total 1 0.869128 -2 10000 3 1 total 1 1.414214 -3 10000 4 1 total 1 0.360359 -4 10000 5 1 total 0 0.000000 -5 10000 6 1 total 0 0.000000 - material delayedgroup group in nuclide mean std. dev. -0 10000 1 1 total 0.000227 0.000020 -1 10000 2 1 total 0.001214 0.000108 -2 10000 3 1 total 0.001184 0.000104 -3 10000 4 1 total 0.002752 0.000240 -4 10000 5 1 total 0.001231 0.000105 -5 10000 6 1 total 0.000512 0.000044 - material delayedgroup group in nuclide mean std. dev. -0 10001 1 1 total 0 0 -1 10001 2 1 total 0 0 -2 10001 3 1 total 0 0 -3 10001 4 1 total 0 0 -4 10001 5 1 total 0 0 -5 10001 6 1 total 0 0 - material delayedgroup group out nuclide mean std. dev. -0 10001 1 1 total 0 0 -1 10001 2 1 total 0 0 -2 10001 3 1 total 0 0 -3 10001 4 1 total 0 0 -4 10001 5 1 total 0 0 -5 10001 6 1 total 0 0 - material delayedgroup group in nuclide mean std. dev. -0 10001 1 1 total 0 0 -1 10001 2 1 total 0 0 -2 10001 3 1 total 0 0 -3 10001 4 1 total 0 0 -4 10001 5 1 total 0 0 -5 10001 6 1 total 0 0 - material delayedgroup group in nuclide mean std. dev. -0 10002 1 1 total 0 0 -1 10002 2 1 total 0 0 -2 10002 3 1 total 0 0 -3 10002 4 1 total 0 0 -4 10002 5 1 total 0 0 -5 10002 6 1 total 0 0 - material delayedgroup group out nuclide mean std. dev. -0 10002 1 1 total 0 0 -1 10002 2 1 total 0 0 -2 10002 3 1 total 0 0 -3 10002 4 1 total 0 0 -4 10002 5 1 total 0 0 -5 10002 6 1 total 0 0 - material delayedgroup group in nuclide mean std. dev. -0 10002 1 1 total 0 0 -1 10002 2 1 total 0 0 -2 10002 3 1 total 0 0 -3 10002 4 1 total 0 0 -4 10002 5 1 total 0 0 -5 10002 6 1 total 0 0 diff --git a/tests/test_mdgxs_library_condense/test_mdgxs_library_condense.py b/tests/test_mdgxs_library_condense/test_mdgxs_library_condense.py deleted file mode 100644 index 75e40be909..0000000000 --- a/tests/test_mdgxs_library_condense/test_mdgxs_library_condense.py +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -import glob -import hashlib -sys.path.insert(0, os.pardir) -from testing_harness import PyAPITestHarness -from input_set import PinCellInputSet -import openmc -import openmc.mgxs - - -class MDGXSTestHarness(PyAPITestHarness): - def _build_inputs(self): - # Set the input set to use the pincell model - self._input_set = PinCellInputSet() - - # Generate inputs using parent class routine - super(MDGXSTestHarness, self)._build_inputs() - - # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, - 20.]) - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) - - # Initialize MGXS Library for a few cross section types - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) - self.mgxs_lib.by_nuclide = False - - # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES - self.mgxs_lib.energy_groups = energy_groups - self.mgxs_lib.delayed_groups = delayed_groups - self.mgxs_lib.domain_type = 'material' - self.mgxs_lib.build_library() - - # Initialize a tallies file - self._input_set.tallies = openmc.Tallies() - self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) - self._input_set.tallies.export_to_xml() - - 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) - - # Load the MGXS library from the statepoint - self.mgxs_lib.load_from_statepoint(sp) - - # Build a condensed 1-group MGXS Library - one_group = openmc.mgxs.EnergyGroups([0., 20.]) - condense_lib = self.mgxs_lib.get_condensed_library(one_group) - - # Build a string from Pandas Dataframe for each 1-group MGXS - outstr = '' - for domain in condense_lib.domains: - for mgxs_type in condense_lib.mgxs_types: - mgxs = condense_lib.get_mgxs(domain, mgxs_type) - df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + '\n' - - # 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(MDGXSTestHarness, self)._cleanup() - f = os.path.join(os.getcwd(), 'tallies.xml') - if os.path.exists(f): os.remove(f) - - -if __name__ == '__main__': - harness = MDGXSTestHarness('statepoint.10.*', True) - harness.main() diff --git a/tests/test_mdgxs_library_distribcell/inputs_true.dat b/tests/test_mdgxs_library_distribcell/inputs_true.dat deleted file mode 100644 index 31a7a7f904..0000000000 --- a/tests/test_mdgxs_library_distribcell/inputs_true.dat +++ /dev/null @@ -1 +0,0 @@ -d3cf661e7fd29b0bbd6e6a464bb3b0b48a798dbd5c701246fd3c904f87c0d07ad995fc07f5b0a6c665449b7f5c92f68968e3947690794a0b743ea38a7f43f95f \ No newline at end of file diff --git a/tests/test_mdgxs_library_distribcell/results_true.dat b/tests/test_mdgxs_library_distribcell/results_true.dat deleted file mode 100644 index 67f65fc301..0000000000 --- a/tests/test_mdgxs_library_distribcell/results_true.dat +++ /dev/null @@ -1,21 +0,0 @@ - avg(distribcell) delayedgroup group in nuclide mean std. dev. -0 (0,) 1 1 total 0.000021 0.000002 -1 (0,) 2 1 total 0.000110 0.000008 -2 (0,) 3 1 total 0.000107 0.000008 -3 (0,) 4 1 total 0.000249 0.000018 -4 (0,) 5 1 total 0.000112 0.000008 -5 (0,) 6 1 total 0.000046 0.000003 - avg(distribcell) delayedgroup group out nuclide mean std. dev. -0 (0,) 1 1 total 0 0.000000 -1 (0,) 2 1 total 1 0.869128 -2 (0,) 3 1 total 1 1.414214 -3 (0,) 4 1 total 1 0.360359 -4 (0,) 5 1 total 0 0.000000 -5 (0,) 6 1 total 0 0.000000 - avg(distribcell) delayedgroup group in nuclide mean std. dev. -0 (0,) 1 1 total 0.000227 0.000022 -1 (0,) 2 1 total 0.001214 0.000115 -2 (0,) 3 1 total 0.001184 0.000111 -3 (0,) 4 1 total 0.002752 0.000257 -4 (0,) 5 1 total 0.001231 0.000113 -5 (0,) 6 1 total 0.000512 0.000047 diff --git a/tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py b/tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py deleted file mode 100644 index df4fc184d3..0000000000 --- a/tests/test_mdgxs_library_distribcell/test_mdgxs_library_distribcell.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -import glob -import hashlib -sys.path.insert(0, os.pardir) -from testing_harness import PyAPITestHarness -from input_set import PinCellInputSet -import openmc -import openmc.mgxs - - -class MDGXSTestHarness(PyAPITestHarness): - def _build_inputs(self): - # Set the input set to use the pincell model - self._input_set = PinCellInputSet() - - # Generate inputs using parent class routine - super(MDGXSTestHarness, self)._build_inputs() - - # Initialize a one-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) - - # Initialize a six-group structure - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) - - # Initialize MGXS Library for a few cross section types - # for one material-filled cell in the geometry - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) - self.mgxs_lib.by_nuclide = False - - # Test all MDGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES - self.mgxs_lib.energy_groups = energy_groups - self.mgxs_lib.delayed_groups = delayed_groups - self.mgxs_lib.domain_type = 'distribcell' - cells = self.mgxs_lib.openmc_geometry.get_all_material_cells() - self.mgxs_lib.domains = [c for c in cells if c.name == 'cell 1'] - self.mgxs_lib.build_library() - - # Initialize a tallies file - self._input_set.tallies = openmc.Tallies() - self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) - self._input_set.tallies.export_to_xml() - - 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) - - # Load the MGXS library from the statepoint - self.mgxs_lib.load_from_statepoint(sp) - - # Average the MGXS across distribcell subdomains - avg_lib = self.mgxs_lib.get_subdomain_avg_library() - - # Build a string from Pandas Dataframe for each 1-group MGXS - outstr = '' - for domain in avg_lib.domains: - for mgxs_type in avg_lib.mgxs_types: - mgxs = avg_lib.get_mgxs(domain, mgxs_type) - df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + '\n' - - # 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(MDGXSTestHarness, self)._cleanup() - f = os.path.join(os.getcwd(), 'tallies.xml') - if os.path.exists(f): os.remove(f) - - -if __name__ == '__main__': - harness = MDGXSTestHarness('statepoint.10.*', True) - harness.main() diff --git a/tests/test_mdgxs_library_hdf5/inputs_true.dat b/tests/test_mdgxs_library_hdf5/inputs_true.dat deleted file mode 100644 index 49fe693ee4..0000000000 --- a/tests/test_mdgxs_library_hdf5/inputs_true.dat +++ /dev/null @@ -1 +0,0 @@ -9e8d8b468bdd81d996956d0d43eef5779b7b7d5ca3f6a1e628f10318748086183e45cf221edf7a274ff2dc6aff34f4411e21952740cdb7652477dfa0a1ffb5f2 \ No newline at end of file diff --git a/tests/test_mdgxs_library_hdf5/results_true.dat b/tests/test_mdgxs_library_hdf5/results_true.dat deleted file mode 100644 index d1b6358716..0000000000 --- a/tests/test_mdgxs_library_hdf5/results_true.dat +++ /dev/null @@ -1,117 +0,0 @@ -domain=10000 type=delayed-nu-fission -[[ 2.29808234e-05 1.06974158e-04] - [ 1.43606337e-04 5.52167907e-04] - [ 1.51382216e-04 5.27147681e-04] - [ 7.42603178e-05 2.22018043e-04] - [ 4.14908454e-05 9.10244403e-05] - [ 1.70016000e-05 3.81298119e-05]] -[[ 1.66363133e-06 9.49156242e-06] - [ 1.05907806e-05 4.89925426e-05] - [ 1.12671238e-05 4.67725567e-05] - [ 5.22610273e-06 1.87563195e-05] - [ 2.99830766e-06 7.68984041e-06] - [ 1.22654684e-06 3.22124663e-06]] -domain=10000 type=chi-delayed -[[ 0. 0.] - [ 1. 0.] - [ 1. 0.] - [ 1. 0.] - [ 0. 0.] - [ 0. 0.]] -[[ 0. 0. ] - [ 0.86912776 0. ] - [ 1.41421356 0. ] - [ 0.36035904 0. ] - [ 0. 0. ] - [ 0. 0. ]] -domain=10000 type=beta -[[ 4.89188107e-05 2.27713711e-04] - [ 3.05691886e-04 1.17538858e-03] - [ 3.22244241e-04 1.12212853e-03] - [ 3.82159891e-03 1.14255357e-02] - [ 2.13520995e-03 4.68431744e-03] - [ 8.74939644e-04 1.96224379e-03]] -[[ 4.67388620e-06 2.46946810e-05] - [ 2.95223877e-05 1.27466393e-04] - [ 3.12885004e-05 1.21690543e-04] - [ 3.21434855e-04 1.09939816e-03] - [ 1.82980497e-04 4.50738567e-04] - [ 7.48899920e-05 1.88812772e-04]] -domain=10001 type=delayed-nu-fission -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -domain=10001 type=chi-delayed -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -domain=10001 type=beta -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -domain=10002 type=delayed-nu-fission -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -domain=10002 type=chi-delayed -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -domain=10002 type=beta -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.] - [ 0. 0.]] diff --git a/tests/test_mdgxs_library_hdf5/test_mdgxs_library_hdf5.py b/tests/test_mdgxs_library_hdf5/test_mdgxs_library_hdf5.py deleted file mode 100644 index 79e0edf7c2..0000000000 --- a/tests/test_mdgxs_library_hdf5/test_mdgxs_library_hdf5.py +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -import glob -import hashlib -import h5py -sys.path.insert(0, os.pardir) -from testing_harness import PyAPITestHarness -from input_set import PinCellInputSet -import openmc -import openmc.mgxs - - -class MDGXSTestHarness(PyAPITestHarness): - def _build_inputs(self): - # Set the input set to use the pincell model - self._input_set = PinCellInputSet() - - # Generate inputs using parent class routine - super(MDGXSTestHarness, self)._build_inputs() - - # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, - 20.]) - - # Initialize a six-group structure - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) - - # Initialize MGXS Library for a few cross section types - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) - self.mgxs_lib.by_nuclide = False - - # Test all MDGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES - self.mgxs_lib.energy_groups = energy_groups - self.mgxs_lib.delayed_groups = delayed_groups - self.mgxs_lib.domain_type = 'material' - self.mgxs_lib.build_library() - - # Initialize a tallies file - self._input_set.tallies = openmc.Tallies() - self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) - self._input_set.tallies.export_to_xml() - - 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) - - # Load the MGXS library from the statepoint - self.mgxs_lib.load_from_statepoint(sp) - - # Export the MGXS Library to an HDF5 file - self.mgxs_lib.build_hdf5_store(directory='.') - - # Open the MGXS HDF5 file - f = h5py.File('mgxs.h5', 'r') - - # Build a string from the datasets in the HDF5 file - outstr = '' - for domain in self.mgxs_lib.domains: - for mgxs_type in self.mgxs_lib.mgxs_types: - outstr += 'domain={0} type={1}\n'.format(domain.id, mgxs_type) - key = 'material/{0}/{1}/average'.format(domain.id, mgxs_type) - outstr += str(f[key][...]) + '\n' - key = 'material/{0}/{1}/std. dev.'.format(domain.id, mgxs_type) - outstr += str(f[key][...]) + '\n' - - # Close the MGXS HDF5 file - f.close() - - # 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(MDGXSTestHarness, self)._cleanup() - f = os.path.join(os.getcwd(), 'tallies.xml') - if os.path.exists(f): os.remove(f) - f = os.path.join(os.getcwd(), 'mgxs.h5') - if os.path.exists(f): os.remove(f) - - -if __name__ == '__main__': - harness = MDGXSTestHarness('statepoint.10.*', True) - harness.main() diff --git a/tests/test_mdgxs_library_mesh/inputs_true.dat b/tests/test_mdgxs_library_mesh/inputs_true.dat deleted file mode 100644 index 02a9147f88..0000000000 --- a/tests/test_mdgxs_library_mesh/inputs_true.dat +++ /dev/null @@ -1 +0,0 @@ -f76b5d0cc2dbadd48d51918d8c82e4457e9ce3eafb191cd51394e420ba3ae80eccdff03098b276f7d3eb87f6a4616f1dd0e39e1892244a29d0f486ff2bf4ddbb \ No newline at end of file diff --git a/tests/test_mdgxs_library_mesh/results_true.dat b/tests/test_mdgxs_library_mesh/results_true.dat deleted file mode 100644 index 82f8014f90..0000000000 --- a/tests/test_mdgxs_library_mesh/results_true.dat +++ /dev/null @@ -1,78 +0,0 @@ - mesh 1 delayedgroup group in nuclide mean std. dev. - x y z -0 1 1 1 1 1 total 0.000004 4.432287e-07 -1 1 1 1 2 1 total 0.000026 2.652890e-06 -2 1 1 1 3 1 total 0.000024 2.402024e-06 -3 1 1 1 4 1 total 0.000054 5.463683e-06 -4 1 1 1 5 1 total 0.000026 2.662762e-06 -5 1 1 1 6 1 total 0.000010 1.037947e-06 -6 1 2 1 1 1 total 0.000005 1.099501e-06 -7 1 2 1 2 1 total 0.000029 6.440339e-06 -8 1 2 1 3 1 total 0.000027 5.929275e-06 -9 1 2 1 4 1 total 0.000061 1.359998e-05 -10 1 2 1 5 1 total 0.000029 6.491514e-06 -11 1 2 1 6 1 total 0.000011 2.575232e-06 -12 2 1 1 1 1 total 0.000004 6.988358e-07 -13 2 1 1 2 1 total 0.000023 4.116310e-06 -14 2 1 1 3 1 total 0.000021 3.817611e-06 -15 2 1 1 4 1 total 0.000049 8.889347e-06 -16 2 1 1 5 1 total 0.000024 4.380665e-06 -17 2 1 1 6 1 total 0.000009 1.746558e-06 -18 2 2 1 1 1 total 0.000004 1.661116e-06 -19 2 2 1 2 1 total 0.000025 9.704053e-06 -20 2 2 1 3 1 total 0.000023 9.007295e-06 -21 2 2 1 4 1 total 0.000054 2.084505e-05 -22 2 2 1 5 1 total 0.000026 9.981347e-06 -23 2 2 1 6 1 total 0.000010 3.988280e-06 - mesh 1 delayedgroup group out nuclide mean std. dev. - x y z -0 1 1 1 1 1 total 0 0.000000 -1 1 1 1 2 1 total 0 0.000000 -2 1 1 1 3 1 total 0 0.000000 -3 1 1 1 4 1 total 1 1.414214 -4 1 1 1 5 1 total 0 0.000000 -5 1 1 1 6 1 total 0 0.000000 -6 1 2 1 1 1 total 0 0.000000 -7 1 2 1 2 1 total 0 0.000000 -8 1 2 1 3 1 total 0 0.000000 -9 1 2 1 4 1 total 0 0.000000 -10 1 2 1 5 1 total 0 0.000000 -11 1 2 1 6 1 total 0 0.000000 -12 2 1 1 1 1 total 0 0.000000 -13 2 1 1 2 1 total 0 0.000000 -14 2 1 1 3 1 total 0 0.000000 -15 2 1 1 4 1 total 0 0.000000 -16 2 1 1 5 1 total 0 0.000000 -17 2 1 1 6 1 total 0 0.000000 -18 2 2 1 1 1 total 0 0.000000 -19 2 2 1 2 1 total 0 0.000000 -20 2 2 1 3 1 total 0 0.000000 -21 2 2 1 4 1 total 0 0.000000 -22 2 2 1 5 1 total 0 0.000000 -23 2 2 1 6 1 total 0 0.000000 - mesh 1 delayedgroup group in nuclide mean std. dev. - x y z -0 1 1 1 1 1 total 0.000166 0.000023 -1 1 1 1 2 1 total 0.000990 0.000136 -2 1 1 1 3 1 total 0.000907 0.000123 -3 1 1 1 4 1 total 0.002088 0.000282 -4 1 1 1 5 1 total 0.001014 0.000137 -5 1 1 1 6 1 total 0.000400 0.000054 -6 1 2 1 1 1 total 0.000171 0.000039 -7 1 2 1 2 1 total 0.001003 0.000226 -8 1 2 1 3 1 total 0.000919 0.000208 -9 1 2 1 4 1 total 0.002101 0.000478 -10 1 2 1 5 1 total 0.000997 0.000228 -11 1 2 1 6 1 total 0.000395 0.000090 -12 2 1 1 1 1 total 0.000168 0.000030 -13 2 1 1 2 1 total 0.001003 0.000178 -14 2 1 1 3 1 total 0.000927 0.000165 -15 2 1 1 4 1 total 0.002150 0.000385 -16 2 1 1 5 1 total 0.001057 0.000190 -17 2 1 1 6 1 total 0.000418 0.000076 -18 2 2 1 1 1 total 0.000171 0.000082 -19 2 2 1 2 1 total 0.001010 0.000481 -20 2 2 1 3 1 total 0.000932 0.000445 -21 2 2 1 4 1 total 0.002151 0.001030 -22 2 2 1 5 1 total 0.001030 0.000493 -23 2 2 1 6 1 total 0.000410 0.000197 diff --git a/tests/test_mdgxs_library_mesh/test_mdgxs_library_mesh.py b/tests/test_mdgxs_library_mesh/test_mdgxs_library_mesh.py deleted file mode 100644 index 88ee7213da..0000000000 --- a/tests/test_mdgxs_library_mesh/test_mdgxs_library_mesh.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/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 MDGXSTestHarness(PyAPITestHarness): - def _build_inputs(self): - # Generate inputs using parent class routine - super(MDGXSTestHarness, self)._build_inputs() - - # Initialize a one-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) - - # Initialize a six-group structure - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) - - # Initialize MGXS Library for a few cross section types - # for one material-filled cell in the geometry - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) - self.mgxs_lib.by_nuclide = False - - # Test all MDGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES - self.mgxs_lib.energy_groups = energy_groups - self.mgxs_lib.delayed_groups = delayed_groups - self.mgxs_lib.domain_type = 'mesh' - - # Instantiate a tally mesh - mesh = openmc.Mesh(mesh_id=1) - mesh.type = 'regular' - mesh.dimension = [2, 2] - mesh.lower_left = [-100., -100.] - mesh.width = [100., 100.] - - self.mgxs_lib.domains = [mesh] - self.mgxs_lib.build_library() - - # Initialize a tallies file - self._input_set.tallies = openmc.Tallies() - self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) - self._input_set.tallies.export_to_xml() - - 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) - - # Load the MGXS library from the statepoint - self.mgxs_lib.load_from_statepoint(sp) - - # Build a string from Pandas Dataframe for each 1-group MGXS - outstr = '' - for domain in self.mgxs_lib.domains: - for mgxs_type in self.mgxs_lib.mgxs_types: - mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) - df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + '\n' - - # 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(MDGXSTestHarness, self)._cleanup() - f = os.path.join(os.getcwd(), 'tallies.xml') - if os.path.exists(f): os.remove(f) - - -if __name__ == '__main__': - harness = MDGXSTestHarness('statepoint.10.*', True) - harness.main() diff --git a/tests/test_mdgxs_library_no_nuclides/inputs_true.dat b/tests/test_mdgxs_library_no_nuclides/inputs_true.dat deleted file mode 100644 index 49fe693ee4..0000000000 --- a/tests/test_mdgxs_library_no_nuclides/inputs_true.dat +++ /dev/null @@ -1 +0,0 @@ -9e8d8b468bdd81d996956d0d43eef5779b7b7d5ca3f6a1e628f10318748086183e45cf221edf7a274ff2dc6aff34f4411e21952740cdb7652477dfa0a1ffb5f2 \ No newline at end of file diff --git a/tests/test_mdgxs_library_no_nuclides/results_true.dat b/tests/test_mdgxs_library_no_nuclides/results_true.dat deleted file mode 100644 index e3afdcdb6d..0000000000 --- a/tests/test_mdgxs_library_no_nuclides/results_true.dat +++ /dev/null @@ -1,117 +0,0 @@ - material delayedgroup group in nuclide mean std. dev. -1 10000 1 1 total 0.000023 0.000002 -3 10000 2 1 total 0.000144 0.000011 -5 10000 3 1 total 0.000151 0.000011 -7 10000 4 1 total 0.000074 0.000005 -9 10000 5 1 total 0.000041 0.000003 -11 10000 6 1 total 0.000017 0.000001 -0 10000 1 2 total 0.000107 0.000009 -2 10000 2 2 total 0.000552 0.000049 -4 10000 3 2 total 0.000527 0.000047 -6 10000 4 2 total 0.000222 0.000019 -8 10000 5 2 total 0.000091 0.000008 -10 10000 6 2 total 0.000038 0.000003 - material delayedgroup group out nuclide mean std. dev. -1 10000 1 1 total 0 0.000000 -3 10000 2 1 total 1 0.869128 -5 10000 3 1 total 1 1.414214 -7 10000 4 1 total 1 0.360359 -9 10000 5 1 total 0 0.000000 -11 10000 6 1 total 0 0.000000 -0 10000 1 2 total 0 0.000000 -2 10000 2 2 total 0 0.000000 -4 10000 3 2 total 0 0.000000 -6 10000 4 2 total 0 0.000000 -8 10000 5 2 total 0 0.000000 -10 10000 6 2 total 0 0.000000 - material delayedgroup group in nuclide mean std. dev. -1 10000 1 1 total 0.000049 0.000005 -3 10000 2 1 total 0.000306 0.000030 -5 10000 3 1 total 0.000322 0.000031 -7 10000 4 1 total 0.003822 0.000321 -9 10000 5 1 total 0.002135 0.000183 -11 10000 6 1 total 0.000875 0.000075 -0 10000 1 2 total 0.000228 0.000025 -2 10000 2 2 total 0.001175 0.000127 -4 10000 3 2 total 0.001122 0.000122 -6 10000 4 2 total 0.011426 0.001099 -8 10000 5 2 total 0.004684 0.000451 -10 10000 6 2 total 0.001962 0.000189 - material delayedgroup group in nuclide mean std. dev. -1 10001 1 1 total 0 0 -3 10001 2 1 total 0 0 -5 10001 3 1 total 0 0 -7 10001 4 1 total 0 0 -9 10001 5 1 total 0 0 -11 10001 6 1 total 0 0 -0 10001 1 2 total 0 0 -2 10001 2 2 total 0 0 -4 10001 3 2 total 0 0 -6 10001 4 2 total 0 0 -8 10001 5 2 total 0 0 -10 10001 6 2 total 0 0 - material delayedgroup group out nuclide mean std. dev. -1 10001 1 1 total 0 0 -3 10001 2 1 total 0 0 -5 10001 3 1 total 0 0 -7 10001 4 1 total 0 0 -9 10001 5 1 total 0 0 -11 10001 6 1 total 0 0 -0 10001 1 2 total 0 0 -2 10001 2 2 total 0 0 -4 10001 3 2 total 0 0 -6 10001 4 2 total 0 0 -8 10001 5 2 total 0 0 -10 10001 6 2 total 0 0 - material delayedgroup group in nuclide mean std. dev. -1 10001 1 1 total 0 0 -3 10001 2 1 total 0 0 -5 10001 3 1 total 0 0 -7 10001 4 1 total 0 0 -9 10001 5 1 total 0 0 -11 10001 6 1 total 0 0 -0 10001 1 2 total 0 0 -2 10001 2 2 total 0 0 -4 10001 3 2 total 0 0 -6 10001 4 2 total 0 0 -8 10001 5 2 total 0 0 -10 10001 6 2 total 0 0 - material delayedgroup group in nuclide mean std. dev. -1 10002 1 1 total 0 0 -3 10002 2 1 total 0 0 -5 10002 3 1 total 0 0 -7 10002 4 1 total 0 0 -9 10002 5 1 total 0 0 -11 10002 6 1 total 0 0 -0 10002 1 2 total 0 0 -2 10002 2 2 total 0 0 -4 10002 3 2 total 0 0 -6 10002 4 2 total 0 0 -8 10002 5 2 total 0 0 -10 10002 6 2 total 0 0 - material delayedgroup group out nuclide mean std. dev. -1 10002 1 1 total 0 0 -3 10002 2 1 total 0 0 -5 10002 3 1 total 0 0 -7 10002 4 1 total 0 0 -9 10002 5 1 total 0 0 -11 10002 6 1 total 0 0 -0 10002 1 2 total 0 0 -2 10002 2 2 total 0 0 -4 10002 3 2 total 0 0 -6 10002 4 2 total 0 0 -8 10002 5 2 total 0 0 -10 10002 6 2 total 0 0 - material delayedgroup group in nuclide mean std. dev. -1 10002 1 1 total 0 0 -3 10002 2 1 total 0 0 -5 10002 3 1 total 0 0 -7 10002 4 1 total 0 0 -9 10002 5 1 total 0 0 -11 10002 6 1 total 0 0 -0 10002 1 2 total 0 0 -2 10002 2 2 total 0 0 -4 10002 3 2 total 0 0 -6 10002 4 2 total 0 0 -8 10002 5 2 total 0 0 -10 10002 6 2 total 0 0 diff --git a/tests/test_mdgxs_library_no_nuclides/test_mdgxs_library_no_nuclides.py b/tests/test_mdgxs_library_no_nuclides/test_mdgxs_library_no_nuclides.py deleted file mode 100644 index 6ee8e9adbe..0000000000 --- a/tests/test_mdgxs_library_no_nuclides/test_mdgxs_library_no_nuclides.py +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -import glob -import hashlib -sys.path.insert(0, os.pardir) -from testing_harness import PyAPITestHarness -from input_set import PinCellInputSet -import openmc -import openmc.mgxs - - -class MDGXSTestHarness(PyAPITestHarness): - def _build_inputs(self): - # Set the input set to use the pincell model - self._input_set = PinCellInputSet() - - # Generate inputs using parent class routine - super(MDGXSTestHarness, self)._build_inputs() - - # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, - 20.]) - - # Initialize a six-group structure - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) - - # Initialize MGXS Library for a few cross section types - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) - self.mgxs_lib.by_nuclide = False - - # Test all MDGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES - self.mgxs_lib.energy_groups = energy_groups - self.mgxs_lib.delayed_groups = delayed_groups - self.mgxs_lib.domain_type = 'material' - self.mgxs_lib.build_library() - - # Initialize a tallies file - self._input_set.tallies = openmc.Tallies() - self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) - self._input_set.tallies.export_to_xml() - - 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) - - # Load the MGXS library from the statepoint - self.mgxs_lib.load_from_statepoint(sp) - - # Build a string from Pandas Dataframe for each MGXS - outstr = '' - for domain in self.mgxs_lib.domains: - for mgxs_type in self.mgxs_lib.mgxs_types: - mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) - df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + '\n' - - # 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(MDGXSTestHarness, self)._cleanup() - f = os.path.join(os.getcwd(), 'tallies.xml') - if os.path.exists(f): os.remove(f) - - -if __name__ == '__main__': - harness = MDGXSTestHarness('statepoint.10.*', True) - harness.main() diff --git a/tests/test_mdgxs_library_nuclides/inputs_true.dat b/tests/test_mdgxs_library_nuclides/inputs_true.dat deleted file mode 100644 index af136e1ec0..0000000000 --- a/tests/test_mdgxs_library_nuclides/inputs_true.dat +++ /dev/null @@ -1 +0,0 @@ -1cf1a4e8f46f3a5e4bb2824b8b3e4f4af5b43f12e0025ef98f7f54e3212305d8ec4334b3dffeab0e0df94de2eedae2d4aa4d0f15649129264a1cc3e3f9d08b58 \ No newline at end of file diff --git a/tests/test_mdgxs_library_nuclides/results_true.dat b/tests/test_mdgxs_library_nuclides/results_true.dat deleted file mode 100644 index d8cb494c74..0000000000 --- a/tests/test_mdgxs_library_nuclides/results_true.dat +++ /dev/null @@ -1 +0,0 @@ -7a6b9ba8f6289f1dac2d474f88003561a0179b45db58eedd671583eced3952f9ed708c1e35248351e469d511a6d99d33e02a9ba5135a0123f7f9c474c4e55a68 \ No newline at end of file diff --git a/tests/test_mdgxs_library_nuclides/test_mdgxs_library_nuclides.py b/tests/test_mdgxs_library_nuclides/test_mdgxs_library_nuclides.py deleted file mode 100644 index 4e67c23c7f..0000000000 --- a/tests/test_mdgxs_library_nuclides/test_mdgxs_library_nuclides.py +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -import glob -import hashlib -sys.path.insert(0, os.pardir) -from testing_harness import PyAPITestHarness -from input_set import PinCellInputSet -import openmc -import openmc.mgxs - - -class MDGXSTestHarness(PyAPITestHarness): - def _build_inputs(self): - # Set the input set to use the pincell model - self._input_set = PinCellInputSet() - - # Generate inputs using parent class routine - super(MDGXSTestHarness, self)._build_inputs() - - # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, - 20.]) - - # Initialize a six-group structure - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) - - # Initialize MGXS Library for a few cross section types - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) - self.mgxs_lib.by_nuclide = True - - # Test all MDGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MDGXS_TYPES - self.mgxs_lib.energy_groups = energy_groups - self.mgxs_lib.delayed_groups = delayed_groups - self.mgxs_lib.domain_type = 'material' - self.mgxs_lib.build_library() - - # Initialize a tallies file - self._input_set.tallies = openmc.Tallies() - self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) - self._input_set.tallies.export_to_xml() - - def _get_results(self, hash_output=True): - """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) - - # Load the MGXS library from the statepoint - self.mgxs_lib.load_from_statepoint(sp) - - # Build a string from Pandas Dataframe for each MGXS - outstr = '' - for domain in self.mgxs_lib.domains: - for mgxs_type in self.mgxs_lib.mgxs_types: - mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) - df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + '\n' - - # 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(MDGXSTestHarness, self)._cleanup() - f = os.path.join(os.getcwd(), 'tallies.xml') - if os.path.exists(f): os.remove(f) - - -if __name__ == '__main__': - harness = MDGXSTestHarness('statepoint.10.*', True) - harness.main() From 65eca3d841ec9a467dbc33da736ace5eba85e5fc Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 5 Aug 2016 08:58:19 -0400 Subject: [PATCH 238/417] updated results for cmfd tests --- tests/test_cmfd_feed/results_true.dat | 852 ++++++++++++------------ tests/test_cmfd_nofeed/results_true.dat | 852 ++++++++++++------------ 2 files changed, 852 insertions(+), 852 deletions(-) diff --git a/tests/test_cmfd_feed/results_true.dat b/tests/test_cmfd_feed/results_true.dat index 4579fa5459..04103129dd 100644 --- a/tests/test_cmfd_feed/results_true.dat +++ b/tests/test_cmfd_feed/results_true.dat @@ -124,92 +124,8 @@ tally 3: 1.020705E+00 5.413570E-02 tally 4: -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.049469E+00 4.677325E-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.514939E+00 -1.528899E+00 2.770358E+00 3.879191E-01 0.000000E+00 @@ -220,44 +136,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.294002E+00 -2.675589E+00 +5.514939E+00 +1.528899E+00 5.032131E+00 1.275040E+00 0.000000E+00 @@ -268,44 +148,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.668860E+00 -3.776102E+00 +7.294002E+00 +2.675589E+00 7.036008E+00 2.490719E+00 0.000000E+00 @@ -316,44 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.345868E+00 -4.380719E+00 +8.668860E+00 +3.776102E+00 8.352414E+00 3.501945E+00 0.000000E+00 @@ -364,44 +172,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.223771E+00 -4.270119E+00 +9.345868E+00 +4.380719E+00 9.093766E+00 4.158282E+00 0.000000E+00 @@ -412,44 +184,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.530966E+00 -3.651778E+00 +9.223771E+00 +4.270119E+00 9.219150E+00 4.264346E+00 0.000000E+00 @@ -460,44 +196,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.204424E+00 -2.604203E+00 +8.530966E+00 +3.651778E+00 8.690373E+00 3.785262E+00 0.000000E+00 @@ -508,44 +208,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.326721E+00 -1.426975E+00 +7.204424E+00 +2.604203E+00 7.513640E+00 2.833028E+00 0.000000E+00 @@ -556,44 +220,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.847310E+00 -4.090440E-01 +5.326721E+00 +1.426975E+00 5.661144E+00 1.607138E+00 0.000000E+00 @@ -604,44 +232,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.847310E+00 +4.090440E-01 3.025812E+00 4.597241E-01 0.000000E+00 @@ -652,6 +244,414 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 cmfd indices 1.000000E+01 1.000000E+00 diff --git a/tests/test_cmfd_nofeed/results_true.dat b/tests/test_cmfd_nofeed/results_true.dat index d8a17d676b..54825f5db7 100644 --- a/tests/test_cmfd_nofeed/results_true.dat +++ b/tests/test_cmfd_nofeed/results_true.dat @@ -124,92 +124,8 @@ tally 3: 9.213728E-01 4.422001E-02 tally 4: -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.090000E+00 4.810640E-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.555000E+00 -1.551579E+00 2.833000E+00 4.078910E-01 0.000000E+00 @@ -220,44 +136,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.271000E+00 -2.659755E+00 +5.555000E+00 +1.551579E+00 5.095000E+00 1.310819E+00 0.000000E+00 @@ -268,44 +148,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.577000E+00 -3.703215E+00 +7.271000E+00 +2.659755E+00 7.026000E+00 2.486552E+00 0.000000E+00 @@ -316,44 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.393000E+00 -4.422429E+00 +8.577000E+00 +3.703215E+00 8.572000E+00 3.680852E+00 0.000000E+00 @@ -364,44 +172,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.265000E+00 -4.305625E+00 +9.393000E+00 +4.422429E+00 9.261000E+00 4.304411E+00 0.000000E+00 @@ -412,44 +184,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.535000E+00 -3.659395E+00 +9.265000E+00 +4.305625E+00 9.303000E+00 4.350791E+00 0.000000E+00 @@ -460,44 +196,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.104000E+00 -2.544182E+00 +8.535000E+00 +3.659395E+00 8.693000E+00 3.799545E+00 0.000000E+00 @@ -508,44 +208,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.168000E+00 -1.344390E+00 +7.104000E+00 +2.544182E+00 7.334000E+00 2.700052E+00 0.000000E+00 @@ -556,44 +220,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.724000E+00 -3.745680E-01 +5.168000E+00 +1.344390E+00 5.416000E+00 1.471086E+00 0.000000E+00 @@ -604,44 +232,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.724000E+00 +3.745680E-01 2.960000E+00 4.397840E-01 0.000000E+00 @@ -652,6 +244,414 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 cmfd indices 1.000000E+01 1.000000E+00 From ad9fe27d26940a7120ed920d37d9cb176bde6402 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 5 Aug 2016 10:03:26 -0400 Subject: [PATCH 239/417] fixed mesh indexing error in trigger.F90 --- src/trigger.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/trigger.F90 b/src/trigger.F90 index 570493a5de..4af03a2dea 100644 --- a/src/trigger.F90 +++ b/src/trigger.F90 @@ -329,7 +329,7 @@ contains end if matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /) + 1) + mesh_indices_to_bin(m, (/ i, j, k /)) ! Left Surface matching_bins(i_filter_surf) = OUT_LEFT From 6bb147fe8fd5db4a844cb8d080518a0f9c9fea82 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 5 Aug 2016 11:25:55 -0500 Subject: [PATCH 240/417] Add openmc.data.atomic_mass function, finally --- docs/source/pythonapi/index.rst | 10 + openmc/data/data.py | 41 +- openmc/data/mass.mas12 | 3392 +++++++++++++++++++++++++++++++ setup.py | 8 +- 4 files changed, 3449 insertions(+), 2 deletions(-) create mode 100644 openmc/data/mass.mas12 diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index df50eee0ba..f6a7ae939c 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -324,6 +324,16 @@ Functions :mod:`openmc.data` -- Nuclear Data Interface -------------------------------------------- +Physical Data +------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myfunction.rst + + openmc.data.atomic_mass + Core Classes ------------ diff --git a/openmc/data/data.py b/openmc/data/data.py index 0365b37944..da1406a9cf 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -1,3 +1,7 @@ +import itertools +import os + + # Isotopic abundances from M. Berglund and M. E. Wieser, "Isotopic compositions # of the elements 2009 (IUPAC Technical Report)", Pure. Appl. Chem. 83 (2), # pp. 397--410 (2011). @@ -119,9 +123,12 @@ ATOMIC_SYMBOL = {1: 'H', 2: 'He', 3: 'Li', 4: 'Be', 5: 'B', 6: 'C', 7: 'N', 98: 'Cf', 99: 'Es', 100: 'Fm', 101: 'Md', 102: 'No', 103: 'Lr', 104: 'Rf', 105: 'Db', 106: 'Sg', 107: 'Bh', 108: 'Hs', 109: 'Mt', 110: 'Ds', 111: 'Rg', 112: 'Cn', - 114: 'Fl', 116: 'Lv'} + 113: 'Nh', 114: 'Fl', 115: 'Mc', 116: 'Lv', 117: 'Ts', + 118: 'Og'} ATOMIC_NUMBER = {value: key for key, value in ATOMIC_SYMBOL.items()} +_ATOMIC_MASS = {} + REACTION_NAME = {1: '(n,total)', 2: '(n,elastic)', 4: '(n,level)', 5: '(n,misc)', 11: '(n,2nd)', 16: '(n,2n)', 17: '(n,3n)', 18: '(n,fission)', 19: '(n,f)', 20: '(n,nf)', 21: '(n,2nf)', @@ -175,3 +182,35 @@ SUM_RULES = {1: [2, 3], 105: list(range(700, 750)), 106: list(range(750, 800)), 107: list(range(800, 850))} + + +def atomic_mass(isotope): + """Return atomic mass of isotope in atomic mass units. + + Atomic mass data comes from the Atomic Mass Evaluation 2012, published in + Chinese Physics C 36 (2012), 1287--1602. + + Parameters + ---------- + isotope : str + Name of isotope, e.g. 'Pu239' + + Returns + ------- + float or None + Atomic mass of isotope in atomic mass units. If the isotope listed does + not have a known atomic mass, None is returned. + + """ + if not _ATOMIC_MASS: + # Load data from AME2012 file + mass_file = os.path.join(os.path.dirname(__file__), 'mass.mas12') + with open(mass_file, 'r') as ame: + # Read lines in file starting at line 40 + for line in itertools.islice(ame, 40, None): + name = '{}{}'.format(line[20:22].strip(), int(line[16:19])) + mass = float(line[96:99]) + 1e-6*float( + line[100:106] + '.' + line[107:112]) + _ATOMIC_MASS[name.lower()] = mass + + return _ATOMIC_MASS.get(isotope.lower()) diff --git a/openmc/data/mass.mas12 b/openmc/data/mass.mas12 new file mode 100644 index 0000000000..04029367d0 --- /dev/null +++ b/openmc/data/mass.mas12 @@ -0,0 +1,3392 @@ +1 a0znogdq A T O M I C M A S S A D J U S T M E N T +0 DATE 16 Nov 2012 TIME 17:44 +0 ********************* A= 0 TO 295 + * file : mass.mas12 * + ********************* + + This is one file out of a series of 3 files published in: + "The Ame2012 atomic mass evaluation (I)" by G.Audi, M.Wang, A.H.Wapstra, F.G.Kondev, M.MacCormick, X.Xu, and B.~Pfeiffer + Chinese Physics C36 p. 1287-1602, December 2012. + "The Ame2012 atomic mass evaluation (II)" by M.Wang, G.Audi, A.H.Wapstra, F.G.Kondev, M.MacCormick, X.Xu, and B.~Pfeiffer + Chinese Physics C36 p. 1603-2014, December 2012. + for files : mass.mas12 : atomic masses + rct1.mas12 : react and sep energies, part 1 + rct2.mas12 : react and sep energies, part 2 + + All files are 3353 lines long with 124 character per line. + Headers are 39 lines long. + + Values in all files are unrounded values + + col 1 : Fortran character control: 1 = page feed 0 = line feed + format : a1,i3,i5,i5,i5,1x,a3,a4,1x,f13.5,f11.5,f11.3,f9.3,1x,a2,f11.3,f9.3,1x,i3,1x,f12.5,f11.5 + cc NZ N Z A el o mass unc binding unc B beta unc atomic_mass unc + Warnings : this format is identical to the one used in Ame2003 + in particular "Mass Excess" and "Atomic Mass" values are given now, when necessary, + with 5 digits after decimal point. + + decimal point is replaced by # for (non-experimental) estimated values. + * in place of value : not calculable + +....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+...10....+...11....+...12.... + + + + MASS LIST + for analysis + +1N-Z N Z A EL O MASS EXCESS BINDING ENERGY/A BETA-DECAY ENERGY ATOMIC MASS V/S + (keV) (keV) (keV) (micro-u) +0 1 1 0 1 n 8071.31714 0.00046 0.0 0.0 B- 782.347 0.000 1 008664.91585 0.00049 + -1 0 1 1 H 7288.97059 0.00009 0.0 0.0 B- * 1 007825.03223 0.00009 +0 0 1 1 2 H 13135.72174 0.00011 1112.283 0.000 B- * 2 014101.77812 0.00012 +0 1 2 1 3 H 14949.80611 0.00221 2827.266 0.001 B- 18.591 0.001 3 016049.27791 0.00237 + -1 1 2 3 He 14931.21551 0.00233 2572.681 0.001 B- -13736# 2000# 3 016029.32008 0.00250 + -3 0 3 3 Li -pp 28667# 2000# -2267# 667# B- * 3 030775# 2147# +0 2 3 1 4 H -n 24621.123 100.000 1720.450 25.000 B- 22196.208 100.000 4 026431.864 107.354 + 0 2 2 4 He 2424.91561 0.00006 7073.915 0.000 B- -22898.270 212.132 4 002603.25413 0.00006 + -2 1 3 4 Li -p 25323.186 212.132 1153.761 53.033 B- * 4 027185.559 227.733 +0 3 4 1 5 H -nn 32892.440 89.443 1336.360 17.889 B- 21661.208 91.652 5 035311.489 96.020 + 1 3 2 5 He -n 11231.233 20.000 5512.132 4.000 B- -447.653 53.852 5 012057.224 21.470 + -1 2 3 5 Li -p 11678.886 50.000 5266.132 10.000 B- -25460# 2003# 5 012537.800 53.677 + -3 1 4 5 Be x 37139# 2003# 18# 401# B- * 5 039870# 2150# +0 4 5 1 6 H -3n 41875.717 254.127 961.640 42.354 B- 24283.622 254.127 6 044955.433 272.816 + 2 4 2 6 He 17592.095 0.053 4878.519 0.009 B- 3505.216 0.053 6 018885.891 0.057 + 0 3 3 6 Li 14086.87893 0.00144 5332.331 0.000 B- -4288.155 5.448 6 015122.88742 0.00155 + -2 2 4 6 Be - 18375.034 5.448 4487.247 0.908 B- -28945# 2003# 6 019726.411 5.848 + -4 1 5 6 B x 47320# 2003# -467# 334# B- * 6 050800# 2150# +0 5 6 1 7 H -nn 49135# 1004# 940# 143# B- 23062# 1004# 7 052749# 1078# + 3 5 2 7 He -n 26073.126 7.559 4123.057 1.080 B- 11166.021 7.559 7 027990.654 8.115 + 1 4 3 7 Li 14907.10520 0.00423 5606.439 0.001 B- -861.893 0.071 7 016003.43659 0.00454 + -1 3 4 7 Be 15768.999 0.071 5371.548 0.010 B- -11907.551 25.150 7 016928.717 0.076 + -3 2 5 7 B p4n 27676.550 25.150 3558.705 3.593 B- * 7 029712.000 27.000 +0 4 6 2 8 He 31609.681 0.089 3924.520 0.011 B- 10663.878 0.100 8 033934.390 0.095 + 2 5 3 8 Li 20945.804 0.047 5159.712 0.006 B- 16004.133 0.059 8 022486.246 0.050 + 0 4 4 8 Be -a 4941.671 0.035 7062.435 0.004 B- -17979.906 1.001 8 005305.102 0.037 + -2 3 5 8 B 22921.577 1.000 4717.153 0.125 B- -12142.691 18.270 8 024607.326 1.073 + -4 2 6 8 C 35064.269 18.243 3101.524 2.280 B- * 8 037643.042 19.584 +0 5 7 2 9 He 40935.896 46.816 3349.029 5.202 B- 15980.994 46.817 9 043946.494 50.259 + 3 6 3 9 Li -3n 24954.902 0.186 5037.768 0.021 B- 13606.450 0.201 9 026790.191 0.200 + 1 5 4 9 Be 11348.453 0.077 6462.668 0.009 B- -1068.035 0.899 9 012183.065 0.082 + -1 4 5 9 B - 12416.488 0.903 6257.070 0.100 B- -16494.482 2.319 9 013329.649 0.969 + -3 3 6 9 C -pp 28910.970 2.137 4337.423 0.237 B- * 9 031037.204 2.293 +0 6 8 2 10 He -nn 49172.316 100.000 2997.616 10.000 B- 16119.692 100.806 10 052788.655 107.354 + 4 7 3 10 Li -n 33052.624 12.721 4531.351 1.272 B- 20445.136 12.722 10 035483.453 13.656 + 2 6 4 10 Be 12607.488 0.081 6497.630 0.008 B- 556.797 0.392 10 013534.695 0.086 + 0 5 5 10 B 12050.690 0.384 6475.075 0.038 B- -3648.064 0.069 10 012936.949 0.412 + -2 4 6 10 C 15698.755 0.390 6032.034 0.039 B- -23101.353 400.000 10 016853.307 0.418 + -4 3 7 10 N -- 38800.107 400.000 3643.664 40.000 B- * 10 041653.630 429.417 +0 5 8 3 11 Li x 40728.254 0.615 4155.381 0.056 B- 20551.087 0.659 11 043723.581 0.660 + 3 7 4 11 Be 20177.167 0.238 5952.540 0.022 B- 11509.284 0.479 11 021661.081 0.255 + 1 6 5 11 B 8667.883 0.416 6927.716 0.038 B- -1982.412 0.854 11 009305.355 0.446 + -1 5 6 11 C 10650.295 0.950 6676.374 0.086 B- -13653.347 46.162 11 011433.563 1.019 + -3 4 7 11 N -p 24303.642 46.155 5364.038 4.196 B- * 11 026091.034 49.549 +0 6 9 3 12 Li -n 48919.571 15.013 3799.100 1.251 B- 23841.813 15.133 12 052517.322 16.116 + 4 8 4 12 Be 25077.759 1.909 5720.722 0.159 B- 11708.343 2.322 12 026922.082 2.048 + 2 7 5 12 B 13369.416 1.322 6631.221 0.110 B- 13369.416 1.322 12 014352.658 1.419 + 0 6 6 12 C 0.0 0.0 7680.144 0.000 B- -17338.072 1.000 12 000000.0 0.0 + -2 5 7 12 N 17338.072 1.000 6170.109 0.083 B- -14576.623 24.024 12 018613.187 1.073 + -4 4 8 12 O -pp 31914.696 24.003 4890.195 2.000 B- * 12 034261.836 25.768 +0 7 10 3 13 Li -nn 58340.888 350.001 3403.015 26.923 B- 24681.813 350.149 13 062631.523 375.741 + 5 9 4 13 Be -n 33659.076 10.180 5241.435 0.783 B- 17096.957 10.238 13 036134.506 10.929 + 3 8 5 13 B -nn 16562.119 1.083 6496.406 0.083 B- 13437.110 1.083 13 017780.166 1.162 + 1 7 6 13 C 3125.00875 0.00021 7469.849 0.000 B- -2220.472 0.270 13 003354.83507 0.00023 + -1 6 7 13 N 5345.481 0.270 7238.863 0.021 B- -17769.959 9.530 13 005738.609 0.289 + -3 5 8 13 O +3n 23115.439 9.526 5811.762 0.733 B- * 13 024815.446 10.226 +0 6 10 4 14 Be x 39954.498 132.245 4993.897 9.446 B- 16290.813 133.936 14 042892.920 141.970 + 4 9 5 14 B 23663.685 21.213 6101.644 1.515 B- 20643.792 21.213 14 025404.012 22.773 + 2 8 6 14 C 3019.89278 0.00376 7520.319 0.000 B- 156.476 0.004 14 003241.98843 0.00403 + 0 7 7 14 N 2863.41669 0.00019 7475.614 0.000 B- -5144.040 0.110 14 003074.00443 0.00020 + -2 6 8 14 O 8007.457 0.110 7052.301 0.008 B- -23956.953 41.119 14 008596.359 0.117 + -4 5 9 14 F -p 31964.410 41.119 5285.208 2.937 B- * 14 034315.207 44.142 +0 7 11 4 15 Be -n2p 49760# 401# 4545# 27# B- 20802# 401# 15 053420# 430# + 5 10 5 15 B 28957.988 21.043 5880.002 1.403 B- 19084.844 21.059 15 031087.680 22.590 + 3 9 6 15 C -n 9873.144 0.800 7100.169 0.053 B- 9771.705 0.800 15 010599.256 0.858 + 1 8 7 15 N 101.43866 0.00060 7699.460 0.000 B- -2754.166 0.491 15 000108.89888 0.00064 + -1 7 8 15 O 2855.605 0.491 7463.692 0.033 B- -13951.205 62.398 15 003065.618 0.526 + -3 6 9 15 F 16806.810 62.396 6481.455 4.160 B- * 15 018042.853 66.985 +0 8 12 4 16 Be -nn 57447.132 165.797 4285.285 10.362 B- 20334.862 167.609 16 061672.036 177.990 + 6 11 5 16 B 37112.271 24.577 5507.317 1.536 B- 23418.142 24.836 16 039841.663 26.384 + 4 10 6 16 C -nn 13694.128 3.578 6922.054 0.224 B- 8010.221 4.254 16 014701.252 3.840 + 2 9 7 16 N -n 5683.907 2.301 7373.796 0.144 B- 10420.908 2.301 16 006101.925 2.470 + 0 8 8 16 O -4737.00137 0.00016 7976.206 0.000 B- -15417.256 8.321 15 994914.61957 0.00017 + -2 7 9 16 F - 10680.254 8.321 6963.731 0.520 B- -13305.900 22.106 16 011465.725 8.932 + -4 6 10 16 Ne -- 23986.154 20.480 6083.216 1.280 B- * 16 025750.197 21.986 +0 7 12 5 17 B x 43770.816 170.873 5266.461 10.051 B- 22740.038 171.753 17 046989.906 183.440 + 5 11 6 17 C 2p-n 21030.778 17.365 6558.090 1.021 B- 13160.703 22.946 17 022577.470 18.641 + 3 10 7 17 N +p 7870.075 15.000 7286.229 0.882 B- 8678.839 15.000 17 008448.873 16.103 + 1 9 8 17 O -808.76361 0.00064 7750.728 0.000 B- -2760.465 0.248 16 999131.75650 0.00069 + -1 8 9 17 F 1951.701 0.248 7542.328 0.015 B- -14548.749 0.432 17 002095.237 0.266 + -3 7 10 17 Ne x 16500.451 0.354 6640.499 0.021 B- * 17 017713.963 0.380 +0 8 13 5 18 B -n 51847.133 170.947 4973.602 9.497 B- 26929.008 173.559 18 055660.189 183.518 + 6 12 6 18 C ++ 24918.124 30.000 6426.195 1.667 B- 11804.956 35.282 18 026750.708 32.206 + 4 11 7 18 N + 13113.168 18.570 7038.562 1.032 B- 13895.984 18.570 18 014077.565 19.935 + 2 10 8 18 O -782.81558 0.00071 7767.097 0.000 B- -1655.929 0.463 17 999159.61286 0.00076 + 0 9 9 18 F 873.113 0.463 7631.638 0.026 B- -4444.510 0.589 18 000937.325 0.497 + -2 8 10 18 Ne 5317.623 0.364 7341.257 0.020 B- -19719.308 112.477 18 005708.703 0.390 + -4 7 11 18 Na -p 25036.931 112.476 6202.276 6.249 B- * 18 026878.252 120.748 +0 9 14 5 19 B x 58777# 401# 4772# 21# B- 26365# 412# 19 063100# 430# + 7 13 6 19 C -n 32412.612 98.389 6118.333 5.178 B- 16557.091 99.748 19 034796.372 105.625 + 5 12 7 19 N p-2n 15855.521 16.404 6948.583 0.863 B- 12522.664 16.614 19 017021.603 17.610 + 3 11 8 19 O -n 3332.858 2.637 7566.494 0.139 B- 4820.302 2.637 19 003577.970 2.830 + 1 10 9 19 F -1487.44434 0.00086 7779.018 0.000 B- -3239.498 0.160 18 998403.16273 0.00092 + -1 9 10 19 Ne +3n 1752.054 0.160 7567.342 0.008 B- -11177.337 10.536 19 001880.907 0.171 + -3 8 11 19 Na 12929.391 10.535 6937.885 0.554 B- -18899.001 51.099 19 013880.272 11.309 + -5 7 12 19 Mg -pp 31828.392 50.001 5902.025 2.632 B- * 19 034169.186 53.678 +0 10 15 5 20 B x 67133# 699# 4519# 35# B- 29575# 738# 20 072070# 750# + 8 14 6 20 C x 37557.610 239.161 5958.733 11.958 B- 15792.500 245.536 20 040319.754 256.749 + 6 13 7 20 N x 21765.110 55.590 6709.240 2.779 B- 17968.942 55.597 20 023365.807 59.678 + 4 12 8 20 O -nn 3796.168 0.885 7568.570 0.044 B- 3813.632 0.885 20 004075.354 0.950 + 2 11 9 20 F -n -17.463 0.030 7720.134 0.002 B- 7024.467 0.030 19 999981.252 0.031 + 0 10 10 20 Ne -7041.93055 0.00157 8032.240 0.000 B- -13892.535 1.114 19 992440.17617 0.00168 + -2 9 11 20 Na 6850.604 1.114 7298.496 0.056 B- -10708.063 27.023 20 007354.426 1.195 + -4 8 12 20 Mg 4n 17558.667 27.000 6723.976 1.350 B- * 20 018850.004 28.985 +0 11 16 5 21 B x 75721# 904# 4279# 43# B- 30078# 988# 21 081290# 970# + 9 15 6 21 C x 45643# 401# 5674# 19# B- 20392# 412# 21 049000# 430# + 7 14 7 21 N x 25251.164 95.045 6608.099 4.526 B- 17189.257 95.800 21 027108.240 102.035 + 5 13 8 21 O -3n 8061.907 12.000 7389.380 0.571 B- 8109.516 12.134 21 008654.813 12.882 + 3 12 9 21 F -nn -47.609 1.800 7738.293 0.086 B- 5684.167 1.800 20 999948.889 1.932 + 1 11 10 21 Ne -n -5731.776 0.038 7971.713 0.002 B- -3547.138 0.279 20 993846.685 0.041 + -1 10 11 21 Na -2184.637 0.276 7765.547 0.013 B- -13098.152 16.417 20 997654.695 0.296 + -3 9 12 21 Mg +3n 10913.515 16.415 7104.571 0.782 B- -16077# 401# 21 011716.140 17.621 + -5 8 13 21 Al x 26990# 401# 6302# 19# B- * 21 028975# 430# +0 10 16 6 22 C -nn 53590.244 246.572 5422.030 11.208 B- 21551.569 312.640 22 057531.496 264.706 + 8 15 7 22 N x 32038.675 192.213 6366.085 8.737 B- 22755.353 200.464 22 034394.934 206.349 + 6 14 8 22 O -4n 9283.322 56.921 7364.858 2.587 B- 6489.946 58.256 22 009966.057 61.107 + 4 13 9 22 F + 2793.377 12.399 7624.295 0.564 B- 10818.091 12.399 22 002998.813 13.310 + 2 12 10 22 Ne -8024.714 0.018 8080.465 0.001 B- -2843.196 0.171 21 991385.114 0.018 + 0 11 11 22 Na -5181.518 0.171 7915.667 0.008 B- -4781.580 0.321 21 994437.411 0.183 + -2 10 12 22 Mg -399.939 0.313 7662.762 0.014 B- -18601# 401# 21 999570.648 0.335 + -4 9 13 22 Al x 18201# 401# 6782# 18# B- -15137# 643# 22 019540# 430# + -6 8 14 22 Si x 33338# 503# 6058# 23# B- * 22 035790# 540# +0 11 17 6 23 C x 64171# 997# 5077# 43# B- 25849# 1040# 23 068890# 1070# + 9 16 7 23 N x 38322# 298# 6167# 13# B- 23701# 311# 23 041140# 320# + 7 15 8 23 O x 14620.657 90.010 7163.516 3.913 B- 11307.616 102.951 23 015695.922 96.629 + 5 14 9 23 F 3313.042 49.970 7621.136 2.173 B- 8467.086 49.970 23 003556.696 53.644 + 3 13 10 23 Ne -n -5154.044 0.104 7955.255 0.005 B- 4375.808 0.104 22 994466.905 0.112 + 1 12 11 23 Na -9529.85249 0.00181 8111.493 0.000 B- -4056.588 0.687 22 989769.28196 0.00194 + -1 11 12 23 Mg -5473.264 0.687 7901.104 0.030 B- -12221.335 0.769 22 994124.208 0.737 + -3 10 13 23 Al -- 6748.070 0.345 7335.727 0.015 B- -16949# 503# 23 007244.351 0.370 + -5 9 14 23 Si x 23697# 503# 6565# 22# B- * 23 025440# 540# +0 10 17 7 24 N x 46938# 401# 5887# 17# B- 28438# 415# 24 050390# 430# + 8 16 8 24 O x 18500.402 109.916 7039.685 4.580 B- 10940.876 131.553 24 019861.000 118.000 + 6 15 9 24 F x 7559.527 72.282 7462.957 3.012 B- 13511.167 72.284 24 008115.485 77.598 + 4 14 10 24 Ne -nn -5951.641 0.513 7993.324 0.021 B- 2466.317 0.514 23 993610.650 0.550 + 2 13 11 24 Na -n -8417.958 0.036 8063.490 0.002 B- 5515.611 0.039 23 990962.950 0.038 + 0 12 12 24 Mg -13933.569 0.013 8260.709 0.001 B- -13885.955 1.104 23 985041.697 0.014 + -2 11 13 24 Al -47.614 1.104 7649.530 0.046 B- -10791.968 19.503 23 999948.883 1.185 + -4 10 14 24 Si -- 10744.353 19.472 7167.267 0.811 B- -22575# 503# 24 011534.538 20.904 + -6 9 15 24 P x 33320# 503# 6194# 21# B- * 24 035770# 540# +0 11 18 7 25 N x 55983# 503# 5613# 20# B- 28635# 515# 25 060100# 540# + 9 17 8 25 O -n 27347.719 110.935 6727.057 4.437 B- 15984.210 134.174 25 029358.986 119.093 + 7 16 9 25 F x 11363.509 75.472 7335.132 3.019 B- 13423.315 87.727 25 012199.229 81.022 + 5 15 10 25 Ne 2p-n -2059.806 44.721 7840.771 1.789 B- 7298.011 44.737 24 997788.707 48.010 + 3 14 11 25 Na -nn -9357.817 1.200 8101.397 0.048 B- 3834.954 1.201 24 989953.969 1.288 + 1 13 12 25 Mg -13192.771 0.047 8223.502 0.002 B- -4276.606 0.475 24 985836.976 0.050 + -1 12 13 25 Al -8916.165 0.473 8021.144 0.019 B- -12743.496 10.011 24 990428.102 0.508 + -3 11 14 25 Si +3n 3827.331 10.000 7480.110 0.400 B- -15911# 401# 25 004108.808 10.735 + -5 10 15 25 P x 19738# 401# 6812# 16# B- * 25 021190# 430# +0 10 18 8 26 O -nn 34733.037 155.504 6494.709 5.981 B- 16067.976 173.649 26 037287.450 166.940 + 8 17 9 26 F x 18665.061 77.280 7082.618 2.972 B- 18185.615 79.391 26 020037.768 82.963 + 6 16 10 26 Ne x 479.445 18.186 7751.974 0.699 B- 7340.225 18.520 26 000514.705 19.523 + 4 15 11 26 Na x -6860.780 3.502 8004.201 0.135 B- 9353.766 3.502 25 992634.649 3.759 + 2 14 12 26 Mg -16214.546 0.030 8333.870 0.001 B- -4004.433 0.061 25 982592.968 0.031 + 0 13 13 26 Al -12210.112 0.064 8149.764 0.002 B- -5069.136 0.085 25 986891.904 0.069 + -2 12 14 26 Si - -7140.977 0.107 7924.707 0.004 B- -18114# 196# 25 992333.845 0.114 + -4 11 15 26 P x 10973# 196# 7198# 8# B- -16106# 627# 26 011780# 210# + -6 10 16 26 S x 27079# 596# 6548# 23# B- * 26 029070# 640# +0 11 19 8 27 O x 44451# 503# 6193# 19# B- 19821# 538# 27 047720# 540# + 9 18 9 27 F x 24629.633 190.025 6898.326 7.038 B- 17593.809 200.901 27 026441.000 204.000 + 7 17 10 27 Ne x 7035.824 65.205 7520.973 2.415 B- 12553.499 65.312 27 007553.268 70.000 + 5 16 11 27 Na ++ -5517.676 3.727 7956.942 0.138 B- 9068.939 3.728 26 994076.531 4.001 + 3 15 12 27 Mg -n -14586.614 0.050 8263.853 0.002 B- 2610.133 0.114 26 984340.624 0.053 + 1 14 13 27 Al -17196.747 0.104 8331.548 0.004 B- -4812.359 0.096 26 981538.531 0.111 + -1 13 14 27 Si - -12384.389 0.142 8124.337 0.005 B- -11661.928 26.341 26 986704.811 0.152 + -3 12 15 27 P p4n -722.461 26.340 7663.438 0.976 B- -17750# 400# 26 999224.406 28.277 + -5 11 16 27 S - 17028# 401# 6977# 15# B- * 27 018280# 430# +0 12 20 8 28 O x 52080# 699# 5988# 25# B- 19159# 726# 28 055910# 750# + 10 19 9 28 F -n 32920.950 196.493 6644.100 7.018 B- 21629.381 218.613 28 035342.095 210.943 + 8 18 10 28 Ne x 11291.569 95.825 7388.637 3.422 B- 12279.884 96.371 28 012121.998 102.872 + 6 17 11 28 Na x -988.315 10.246 7799.264 0.366 B- 14030.415 10.440 27 998939.000 11.000 + 4 16 12 28 Mg + -15018.730 2.004 8272.409 0.072 B- 1831.800 2.000 27 983876.728 2.150 + 2 15 13 28 Al -n -16850.530 0.121 8309.889 0.004 B- 4642.264 0.121 27 981910.210 0.129 + 0 14 14 28 Si -21492.79459 0.00041 8447.744 0.000 B- -14345.055 1.152 27 976926.53465 0.00044 + -2 13 15 28 P -7147.740 1.152 7907.479 0.041 B- -11220.945 160.004 27 992326.585 1.236 + -4 12 16 28 S -- 4073.205 160.000 7478.790 5.714 B- -23443# 617# 28 004372.766 171.767 + -6 11 17 28 Cl x 27516# 596# 6614# 21# B- * 28 029540# 640# +0 11 20 9 29 F x 39626# 503# 6462# 17# B- 21226# 513# 29 042540# 540# + 9 19 10 29 Ne x 18399.801 99.670 7167.067 3.437 B- 15719.825 99.943 29 019753.000 107.000 + 7 18 11 29 Na 2679.976 7.383 7682.152 0.255 B- 13282.806 13.582 29 002877.073 7.926 + 5 17 12 29 Mg x -10602.829 11.400 8113.202 0.393 B- 7601.833 11.438 28 988617.393 12.238 + 3 16 13 29 Al x -18204.662 0.931 8348.357 0.032 B- 3690.417 0.931 28 980456.490 1.000 + 1 15 14 29 Si -21895.07867 0.00049 8448.635 0.000 B- -4942.628 0.563 28 976494.66490 0.00052 + -1 14 15 29 P -16952.451 0.563 8251.222 0.019 B- -13796.043 50.003 28 981800.794 0.604 + -3 13 16 29 S +3n -3156.408 50.000 7748.519 1.724 B- -16924# 404# 28 996611.456 53.677 + -5 12 17 29 Cl x 13767# 401# 7138# 14# B- * 29 014780# 430# +0 12 21 9 30 F x 48112# 596# 6233# 20# B- 25072# 659# 30 051650# 640# + 10 20 10 30 Ne x 23039.573 280.380 7042.549 9.346 B- 14564.903 280.420 30 024734.000 301.000 + 8 19 11 30 Na 8474.670 4.727 7501.968 0.158 B- 17358.397 5.850 30 009097.932 5.074 + 6 18 12 30 Mg x -8883.727 3.447 8054.503 0.115 B- 6988.725 14.462 29 990462.926 3.700 + 4 17 13 30 Al + -15872.452 14.045 8261.382 0.468 B- 8560.508 14.045 29 982960.220 15.077 + 2 16 14 30 Si -n -24432.961 0.022 8520.654 0.001 B- -4232.352 0.313 29 973770.136 0.023 + 0 15 15 30 P -p -20200.608 0.312 8353.497 0.010 B- -6141.601 0.196 29 978313.753 0.335 + -2 14 16 30 S - -14059.007 0.369 8122.699 0.012 B- -18502# 196# 29 984907.033 0.395 + -4 13 17 30 Cl x 4443# 196# 7480# 7# B- -17046# 540# 30 004770# 210# + -6 12 18 30 Ar x 21490# 503# 6886# 17# B- * 30 023070# 540# +0 13 22 9 31 F -nn 55618# 525# 6050# 17# B- 24798# 1703# 31 059709# 563# + 11 21 10 31 Ne x 30820.342 1619.868 6824.743 52.254 B- 18559.407 1620.035 31 033087.000 1739.000 + 9 20 11 31 Na x 12260.935 23.287 7398.196 0.751 B- 15383.272 23.489 31 013162.656 25.000 + 7 19 12 31 Mg x -3122.337 3.074 7869.194 0.099 B- 11832.639 20.574 30 996648.032 3.300 + 5 18 13 31 Al p-2n -14954.976 20.343 8225.655 0.656 B- 7994.060 20.343 30 983945.171 21.839 + 3 17 14 31 Si -n -22949.036 0.043 8458.291 0.001 B- 1491.505 0.043 30 975363.194 0.046 + 1 16 15 31 P -24440.54111 0.00065 8481.167 0.000 B- -5398.016 0.229 30 973761.99842 0.00070 + -1 15 16 31 S -19042.525 0.229 8281.800 0.007 B- -11976.401 50.001 30 979557.007 0.246 + -3 14 17 31 Cl p4n -7066.124 50.000 7870.228 1.613 B- -18360# 200# 30 992414.203 53.677 + -5 13 18 31 Ar - 11294# 206# 7253# 7# B- * 31 012124# 221# +0 12 22 10 32 Ne x 36999# 503# 6671# 16# B- 18189# 517# 32 039720# 540# + 10 21 11 32 Na x 18809.658 120.163 7214.584 3.755 B- 19638.465 120.204 32 020193.000 129.000 + 8 20 12 32 Mg x -828.807 3.167 7803.837 0.099 B- 10269.721 12.517 31 999110.239 3.400 + 6 19 13 32 Al x -11098.528 12.109 8100.318 0.378 B- 12979.158 12.113 31 988085.239 13.000 + 4 18 14 32 Si x -24077.686 0.298 8481.468 0.009 B- 227.188 0.301 31 974151.539 0.320 + 2 17 15 32 P -n -24304.874 0.040 8464.120 0.001 B- 1710.660 0.040 31 973907.643 0.042 + 0 16 16 32 S -26015.53353 0.00132 8493.129 0.000 B- -12680.859 0.562 31 972071.17441 0.00141 + -2 15 17 32 Cl -13334.674 0.562 8072.404 0.018 B- -11134.323 1.857 31 985684.637 0.603 + -4 14 18 32 Ar x -2200.351 1.770 7700.008 0.055 B- -23299# 503# 31 997637.826 1.900 + -6 13 19 32 K x 21098# 503# 6947# 16# B- * 32 022650# 540# +0 13 23 10 33 Ne x 45997# 596# 6440# 18# B- 22030# 843# 33 049380# 640# + 11 22 11 33 Na x 23967# 596# 7084# 18# B- 19005# 596# 33 025730# 640# + 9 21 12 33 Mg x 4962.204 2.888 7636.458 0.088 B- 13430.437 75.602 33 005327.145 3.100 + 7 20 13 33 Al x -8468.233 75.547 8019.733 2.289 B- 12046.093 75.550 32 990908.977 81.103 + 5 19 14 33 Si x -20514.326 0.699 8361.059 0.021 B- 5823.021 1.295 32 977976.964 0.750 + 3 18 15 33 P + -26337.346 1.090 8513.806 0.033 B- 248.508 1.090 32 971725.694 1.170 + 1 17 16 33 S -26585.85432 0.00135 8497.630 0.000 B- -5582.517 0.391 32 971458.90982 0.00145 + -1 16 17 33 Cl -21003.337 0.391 8304.755 0.012 B- -11619.044 0.560 32 977451.989 0.419 + -3 15 18 33 Ar x -9384.293 0.401 7928.955 0.012 B- -16426# 196# 32 989925.546 0.430 + -5 14 19 33 K x 7042# 196# 7407# 6# B- * 33 007560# 210# +0 14 24 10 34 Ne -nn 52842# 513# 6287# 15# B- 21553# 718# 34 056728# 551# + 12 23 11 34 Na x 31289# 503# 6898# 15# B- 22966# 504# 34 033590# 540# + 10 22 12 34 Mg x 8323.347 28.876 7550.390 0.849 B- 11392.249 74.764 34 008935.481 31.000 + 8 21 13 34 Al x -3068.901 68.963 7862.446 2.028 B- 16887.828 70.393 33 996705.398 74.034 + 6 20 14 34 Si +pp -19956.729 14.118 8336.137 0.415 B- 4591.970 14.141 33 978575.569 15.155 + 4 19 15 34 P x -24548.698 0.810 8448.185 0.024 B- 5382.994 0.812 33 973645.886 0.870 + 2 18 16 34 S -29931.693 0.045 8583.498 0.001 B- -5491.605 0.038 33 967867.004 0.047 + 0 17 17 34 Cl -24440.087 0.049 8398.970 0.001 B- -6061.795 0.063 33 973762.485 0.052 + -2 16 18 34 Ar -18378.293 0.078 8197.672 0.002 B- -17158# 298# 33 980270.090 0.083 + -4 15 19 34 K x -1220# 298# 7670# 9# B- -15072# 422# 33 998690# 320# + -6 14 20 34 Ca x 13851# 298# 7204# 9# B- * 34 014870# 320# +0 13 24 11 35 Na -n 37840# 586# 6744# 17# B- 22200# 613# 35 040623# 629# + 11 23 12 35 Mg x 15639.784 179.778 7356.233 5.137 B- 15859.617 192.875 35 016790.000 193.000 + 9 22 13 35 Al x -219.833 69.862 7787.012 1.996 B- 14140.566 79.725 34 999764.000 75.000 + 7 21 14 35 Si 2p-n -14360.399 38.412 8168.676 1.097 B- 10497.392 38.456 34 984583.476 41.236 + 5 20 15 35 P +p -24857.791 1.866 8446.248 0.053 B- 3988.426 1.867 34 973314.062 2.003 + 3 19 16 35 S -28846.217 0.040 8537.851 0.001 B- 167.323 0.026 34 969032.310 0.043 + 1 18 17 35 Cl -29013.540 0.035 8520.279 0.001 B- -5966.130 0.746 34 968852.682 0.037 + -1 17 18 35 Ar - -23047.410 0.746 8327.465 0.021 B- -11874.519 0.905 34 975257.586 0.801 + -3 16 19 35 K 4n -11172.891 0.512 7965.840 0.015 B- -15961# 196# 34 988005.407 0.550 + -5 15 20 35 Ca x 4788# 196# 7487# 6# B- * 35 005140# 210# +0 14 25 11 36 Na -n 45912# 594# 6557# 17# B- 25531# 752# 36 049288# 638# + 12 24 12 36 Mg x 20380.157 460.158 7244.419 12.782 B- 14429.774 470.829 36 021879.000 494.000 + 10 23 13 36 Al x 5950.384 99.670 7623.515 2.769 B- 18343.707 122.559 36 006388.000 107.000 + 8 22 14 36 Si x -12393.323 71.320 8111.330 1.981 B- 7857.705 72.516 35 986695.219 76.565 + 6 21 15 36 P + -20251.028 13.114 8307.868 0.364 B- 10413.096 13.112 35 978259.625 14.078 + 4 20 16 36 S -30664.124 0.188 8575.389 0.005 B- -1142.107 0.189 35 967080.706 0.201 + 2 19 17 36 Cl -29522.017 0.036 8521.932 0.001 B- 709.522 0.045 35 968306.809 0.038 + 0 18 18 36 Ar -30231.540 0.027 8519.909 0.001 B- -12814.475 0.342 35 967545.105 0.028 + -2 17 19 36 K -17417.065 0.341 8142.219 0.009 B- -10965.915 40.001 35 981302.010 0.366 + -4 16 20 36 Ca 4n -6451.150 40.000 7815.879 1.111 B- -21802# 301# 35 993074.404 42.941 + -6 15 21 36 Sc x 15351# 298# 7189# 8# B- * 36 016480# 320# +0 15 26 11 37 Na -nn 53143# 605# 6402# 16# B- 24853# 786# 37 057051# 649# + 13 25 12 37 Mg x 28289# 503# 7053# 14# B- 18480# 517# 37 030370# 540# + 11 24 13 37 Al x 9809.563 120.163 7531.315 3.248 B- 16403.851 146.026 37 010531.000 129.000 + 9 23 14 37 Si x -6594.287 82.973 7953.518 2.243 B- 12401.817 91.239 36 992920.740 89.074 + 7 22 15 37 P p-2n -18996.105 37.948 8267.558 1.026 B- 7900.306 37.947 36 979606.841 40.738 + 5 21 16 37 S -n -26896.410 0.198 8459.935 0.005 B- 4865.111 0.196 36 971125.514 0.212 + 3 20 17 37 Cl -31761.521 0.052 8570.280 0.001 B- -813.873 0.200 36 965902.602 0.055 + 1 19 18 37 Ar - -30947.648 0.207 8527.139 0.006 B- -6147.449 0.227 36 966776.331 0.221 + -1 18 19 37 K -p -24800.199 0.094 8339.847 0.003 B- -11664.133 0.641 36 973375.889 0.100 + -3 17 20 37 Ca x -13136.066 0.634 8003.456 0.017 B- -16620# 298# 36 985897.852 0.680 + -5 16 21 37 Sc x 3484# 298# 7533# 8# B- * 37 003740# 320# +0 14 26 12 38 Mg x 34074# 503# 6928# 13# B- 17864# 562# 38 036580# 540# + 12 25 13 38 Al x 16209.859 249.640 7377.097 6.569 B- 20380.157 259.232 38 017402.000 268.000 + 10 24 14 38 Si x -4170.299 69.862 7892.829 1.838 B- 10499.257 111.407 37 995523.000 75.000 + 8 23 15 38 P x -14669.556 86.780 8148.537 2.284 B- 12191.631 87.076 37 984251.583 93.162 + 6 22 16 38 S + -26861.187 7.172 8448.781 0.189 B- 2936.900 7.171 37 971163.328 7.699 + 4 21 17 38 Cl -n -29798.087 0.098 8505.480 0.003 B- 4916.733 0.218 37 968010.436 0.105 + 2 20 18 38 Ar -34714.820 0.195 8614.280 0.005 B- -5914.066 0.045 37 962732.106 0.209 + 0 19 19 38 K -28800.754 0.195 8438.058 0.005 B- -6742.253 0.063 37 969081.117 0.209 + -2 18 20 38 Ca -22058.500 0.194 8240.043 0.005 B- -17513# 196# 37 976319.224 0.208 + -4 17 21 38 Sc x -4546# 196# 7759# 5# B- -15211# 357# 37 995120# 210# + -6 16 22 38 Ti x 10666# 298# 7338# 8# B- * 38 011450# 320# +0 15 27 12 39 Mg -n 42275# 513# 6747# 13# B- 21279# 718# 39 045384# 551# + 13 26 13 39 Al x 20996# 503# 7272# 13# B- 18676# 511# 39 022540# 540# + 11 25 14 39 Si x 2320.352 90.355 7730.979 2.317 B- 15149.625 128.539 39 002491.000 97.000 + 9 24 15 39 P x -12829.273 91.423 8099.370 2.344 B- 10333.073 104.203 38 986227.208 98.146 + 7 23 16 39 S 2p-n -23162.346 50.000 8344.261 1.282 B- 6637.846 50.030 38 975134.197 53.677 + 5 22 17 39 Cl -nn -29800.192 1.732 8494.402 0.044 B- 3441.998 5.292 38 968008.176 1.859 + 3 21 18 39 Ar + -33242.190 5.000 8562.598 0.128 B- 565.000 5.000 38 964313.038 5.367 + 1 20 19 39 K -33807.19022 0.00458 8557.025 0.000 B- -6524.488 0.596 38 963706.48643 0.00492 + -1 19 20 39 Ca -27282.702 0.596 8369.670 0.015 B- -13109.992 24.007 38 970710.813 0.640 + -3 18 21 39 Sc 2n-p -14172.710 24.000 8013.456 0.615 B- -16371# 206# 38 984784.968 25.765 + -5 17 22 39 Ti x 2198# 205# 7574# 5# B- * 39 002360# 220# +0 16 28 12 40 Mg x 48605# 596# 6621# 15# B- 20633# 780# 40 052180# 640# + 14 27 13 40 Al x 27973# 503# 7118# 13# B- 22543# 553# 40 030030# 540# + 12 26 14 40 Si x 5429.679 230.079 7661.754 5.752 B- 13504.103 255.542 40 005829.000 247.000 + 10 25 15 40 P x -8074.425 111.199 7979.798 2.780 B- 14763.421 111.271 39 991331.748 119.377 + 8 24 16 40 S -22837.846 3.982 8329.325 0.100 B- 4719.967 32.312 39 975482.562 4.274 + 6 23 17 40 Cl + -27557.813 32.066 8427.765 0.802 B- 7482.082 32.066 39 970415.469 34.423 + 4 22 18 40 Ar -35039.89464 0.00224 8595.259 0.000 B- -1504.403 0.056 39 962383.12372 0.00240 + 2 21 19 40 K -33535.492 0.056 8538.090 0.001 B- 1310.894 0.060 39 963998.166 0.060 + 0 20 20 40 Ca -34846.386 0.021 8551.304 0.001 B- -14323.050 2.828 39 962590.863 0.022 + -2 19 21 40 Sc - -20523.336 2.828 8173.669 0.071 B- -11672.950 160.025 39 977967.291 3.036 + -4 18 22 40 Ti -- -8850.386 160.000 7862.286 4.000 B- -20736# 431# 39 990498.719 171.767 + -6 17 23 40 V x 11886# 401# 7324# 10# B- * 40 012760# 430# +0 15 28 13 41 Al x 33888# 596# 6997# 15# B- 21768# 702# 41 036380# 640# + 13 27 14 41 Si x 12119.668 369.803 7508.573 9.020 B- 17099.435 378.380 41 013011.000 397.000 + 11 26 15 41 P x -4979.767 80.108 7906.551 1.954 B- 14028.810 80.213 40 994654.000 86.000 + 9 25 16 41 S x -19008.577 4.099 8229.635 0.100 B- 8298.611 68.846 40 979593.451 4.400 + 7 24 17 41 Cl x -27307.189 68.723 8412.959 1.676 B- 5760.317 68.724 40 970684.525 73.777 + 5 23 18 41 Ar -n -33067.505 0.347 8534.372 0.008 B- 2492.038 0.347 40 964500.570 0.372 + 3 22 19 41 K -35559.54329 0.00380 8576.072 0.000 B- -421.656 0.138 40 961825.25792 0.00408 + 1 21 20 41 Ca -35137.887 0.138 8546.706 0.003 B- -6495.476 0.158 40 962277.924 0.147 + -1 20 21 41 Sc -28642.411 0.083 8369.198 0.002 B- -12944.874 27.945 40 969251.105 0.088 + -3 19 22 41 Ti x -15697.537 27.945 8034.388 0.682 B- -15893# 299# 40 983148.000 30.000 + -5 18 23 41 V x 196# 298# 7628# 7# B- * 41 000210# 320# +0 16 29 13 42 Al x 40837# 596# 6857# 14# B- 24275# 780# 42 043840# 640# + 14 28 14 42 Si x 16562# 503# 7416# 12# B- 15552# 545# 42 017780# 540# + 12 27 15 42 P x 1009.739 209.586 7767.866 4.990 B- 18647.485 209.605 42 001084.000 225.000 + 10 26 16 42 S x -17637.746 2.794 8193.227 0.067 B- 7275.244 143.787 41 981065.100 3.000 + 8 25 17 42 Cl x -24912.990 143.760 8347.819 3.423 B- 9509.686 143.876 41 973254.804 154.332 + 6 24 18 42 Ar x -34422.675 5.775 8555.613 0.138 B- 599.351 5.776 41 963045.736 6.200 + 4 23 19 42 K -n -35022.026 0.106 8551.256 0.003 B- 3525.217 0.183 41 962402.306 0.113 + 2 22 20 42 Ca -38547.243 0.149 8616.563 0.004 B- -6426.100 0.097 41 958617.830 0.159 + 0 21 21 42 Sc -32121.143 0.169 8444.933 0.004 B- -7016.480 0.224 41 965516.532 0.181 + -2 20 22 42 Ti -25104.663 0.277 8259.247 0.007 B- -17485# 298# 41 973049.034 0.297 + -4 19 23 42 V x -7620# 298# 7824# 7# B- -13861# 499# 41 991820# 320# + -6 18 24 42 Cr x 6241# 401# 7476# 10# B- * 42 006700# 430# +0 17 30 13 43 Al x 47944# 699# 6720# 16# B- 24843# 918# 43 051470# 750# + 15 29 14 43 Si x 23101# 596# 7279# 14# B- 18421# 702# 43 024800# 640# + 13 28 15 43 P x 4679.826 369.803 7689.572 8.600 B- 16875.285 369.837 43 005024.000 397.000 + 11 27 16 43 S x -12195.459 4.970 8063.827 0.116 B- 12127.168 95.466 42 986907.635 5.335 + 9 26 17 43 Cl x -24322.627 95.336 8327.660 2.217 B- 7687.181 95.484 42 973888.584 102.347 + 7 25 18 43 Ar x -32009.808 5.310 8488.237 0.123 B- 4565.581 5.325 42 965636.055 5.700 + 5 24 19 43 K -4n -36575.389 0.410 8576.220 0.010 B- 1833.426 0.469 42 960734.702 0.440 + 3 23 20 43 Ca -38408.815 0.228 8600.663 0.005 B- -2220.715 1.865 42 958766.438 0.244 + 1 22 21 43 Sc -p -36188.100 1.863 8530.825 0.043 B- -6867.016 7.481 42 961150.474 1.999 + -1 21 22 43 Ti -n2p -29321.084 7.245 8352.932 0.168 B- -11404.728 43.457 42 968522.520 7.777 + -3 20 23 43 V x -17916.356 42.849 8069.512 0.996 B- -15616# 403# 42 980766.000 46.000 + -5 19 24 43 Cr x -2301# 401# 7688# 9# B- * 42 997530# 430# +0 16 30 14 44 Si x 28513# 596# 7174# 14# B- 18071# 780# 44 030610# 640# + 14 29 15 44 P x 10442# 503# 7567# 11# B- 19646# 503# 44 011210# 540# + 12 28 16 44 S x -9204.234 5.216 7996.015 0.119 B- 11405.496 188.452 43 990118.848 5.600 + 10 27 17 44 Cl x -20609.730 188.380 8237.450 4.281 B- 12063.525 188.386 43 977874.543 202.234 + 8 26 18 44 Ar x -32673.255 1.584 8493.840 0.036 B- 3108.237 1.638 43 964923.815 1.700 + 6 25 19 44 K x -35781.492 0.419 8546.701 0.010 B- 5687.166 0.530 43 961586.985 0.450 + 4 24 20 44 Ca -41468.658 0.325 8658.175 0.007 B- -3652.680 1.757 43 955481.561 0.348 + 2 23 21 44 Sc -p -37815.978 1.756 8557.379 0.040 B- -267.407 1.890 43 959402.875 1.884 + 0 22 22 44 Ti -a -37548.570 0.700 8533.520 0.016 B- -13432.191 181.643 43 959689.949 0.751 + -2 21 23 44 V x -24116.380 181.641 8210.463 4.128 B- -10479# 349# 43 974110.000 195.000 + -4 20 24 44 Cr x -13637# 298# 7955# 7# B- -20297# 585# 43 985360# 320# + -6 19 25 44 Mn x 6660# 503# 7475# 11# B- * 44 007150# 540# +0 17 31 14 45 Si x 37213# 699# 7001# 16# B- 21890# 918# 45 039950# 750# + 15 30 15 45 P x 15323# 596# 7470# 13# B- 19313# 912# 45 016450# 640# + 13 29 16 45 S x -3989.589 690.237 7881.807 15.339 B- 14370.158 697.396 44 995717.000 741.000 + 11 28 17 45 Cl x -18359.747 99.670 8183.758 2.215 B- 11411.050 99.671 44 980290.000 107.000 + 9 27 18 45 Ar x -29770.796 0.512 8419.952 0.011 B- 6844.841 0.731 44 968039.733 0.550 + 7 26 19 45 K x -36615.638 0.522 8554.674 0.012 B- 4196.514 0.637 44 960691.493 0.560 + 5 25 20 45 Ca -40812.152 0.366 8630.544 0.008 B- 259.025 0.786 44 956186.350 0.392 + 3 24 21 45 Sc -41071.177 0.721 8618.915 0.016 B- -2062.055 0.509 44 955908.275 0.773 + 1 23 22 45 Ti - -39009.121 0.882 8555.706 0.020 B- -7128.572 8.028 44 958121.983 0.946 + -1 22 23 45 V -31880.549 7.981 8379.908 0.177 B- -12365.750 36.285 44 965774.820 8.567 + -3 21 24 45 Cr x -19514.799 35.397 8087.728 0.787 B- -14382# 402# 44 979050.000 38.000 + -5 20 25 45 Mn x -5133# 401# 7751# 9# B- -18564# 567# 44 994490# 430# + -7 19 26 45 Fe -pp 13431# 401# 7321# 9# B- * 45 014419# 430# +0 16 31 15 46 P x 22784# 699# 7321# 15# B- 22747# 861# 46 024460# 750# + 14 30 16 46 S x 37# 503# 7798# 11# B- 13848# 528# 46 000040# 540# + 12 29 17 46 Cl x -13810.330 160.217 8082.414 3.483 B- 15920.432 165.302 45 985174.000 172.000 + 10 28 18 46 Ar +pp -29730.762 40.687 8411.502 0.884 B- 5683.162 40.693 45 968082.712 43.679 + 8 27 19 46 K x -35413.924 0.727 8518.042 0.016 B- 7724.473 2.375 45 961981.586 0.780 + 6 26 20 46 Ca -43138.396 2.261 8668.958 0.049 B- -1377.897 2.335 45 953689.023 2.426 + 4 25 21 46 Sc -n -41760.499 0.728 8621.996 0.016 B- 2366.496 0.667 45 955168.257 0.781 + 2 24 22 46 Ti -44126.996 0.327 8656.434 0.007 B- -7052.394 0.095 45 952627.718 0.351 + 0 23 23 46 V -37074.602 0.332 8486.113 0.007 B- -7601.071 19.997 45 960198.775 0.356 + -2 22 24 46 Cr x -29473.531 19.994 8303.865 0.435 B- -16516# 401# 45 968358.861 21.464 + -4 21 25 46 Mn x -12957# 401# 7928# 9# B- -13544# 643# 45 986090# 430# + -6 20 26 46 Fe x 587# 503# 7616# 11# B- * 46 000630# 540# +0 17 32 15 47 P x 29240# 801# 7200# 17# B- 21834# 946# 47 031390# 860# + 15 31 16 47 S x 7405# 503# 7647# 11# B- 17503# 643# 47 007950# 540# + 13 30 17 47 Cl x -10097# 401# 8003# 9# B- 15114# 410# 46 989160# 430# + 11 29 18 47 Ar -n -25211.011 89.752 8308.100 1.910 B- 10500.966 89.763 46 972934.865 96.352 + 9 28 19 47 K x -35711.976 1.397 8514.879 0.030 B- 6631.477 2.647 46 961661.614 1.500 + 7 27 20 47 Ca -42343.453 2.248 8639.328 0.048 B- 1992.177 1.185 46 954542.430 2.413 + 5 26 21 47 Sc -44335.630 1.962 8665.069 0.042 B- 600.770 1.929 46 952403.740 2.106 + 3 25 22 47 Ti -44936.400 0.357 8661.206 0.008 B- -2930.599 0.147 46 951758.787 0.382 + 1 24 23 47 V -42005.801 0.333 8582.207 0.007 B- -7444.914 6.962 46 954904.914 0.357 + -1 23 24 47 Cr -34560.887 6.956 8407.159 0.148 B- -11995.445 32.426 46 962897.359 7.468 + -3 22 25 47 Mn x -22565.442 31.671 8135.291 0.674 B- -14974# 504# 46 975775.000 34.000 + -5 21 26 47 Fe x -7592# 503# 7800# 11# B- -17438# 946# 46 991850# 540# + -7 20 27 47 Co x 9846# 801# 7412# 17# B- * 47 010570# 860# +0 16 32 16 48 S x 12761# 596# 7545# 12# B- 16823# 780# 48 013700# 640# + 14 31 17 48 Cl x -4061# 503# 7879# 10# B- 18378# 585# 47 995640# 540# + 12 30 18 48 Ar x -22440# 298# 8245# 6# B- 9845# 298# 47 975910# 320# + 10 29 19 48 K x -32284.477 0.773 8434.232 0.016 B- 11940.282 0.782 47 965341.186 0.830 + 8 28 20 48 Ca -44224.759 0.120 8666.689 0.003 B- 278.661 4.953 47 952522.765 0.129 + 6 27 21 48 Sc -44503.420 4.953 8656.195 0.103 B- 3988.314 4.953 47 952223.611 5.317 + 4 26 22 48 Ti -48491.734 0.358 8722.986 0.007 B- -4014.966 0.969 47 947941.979 0.384 + 2 25 23 48 V -44476.768 1.027 8623.042 0.021 B- -1655.114 7.426 47 952252.223 1.102 + 0 24 24 48 Cr +nn -42821.654 7.363 8572.262 0.153 B- -13498.222 167.831 47 954029.061 7.904 + -2 23 25 48 Mn x -29323.431 167.669 8274.750 3.493 B- -10908# 434# 47 968520.000 180.000 + -4 22 26 48 Fe x -18416# 401# 8031# 8# B- -19282# 896# 47 980230# 430# + -6 21 27 48 Co x 866# 801# 7613# 17# B- -15610# 947# 48 000930# 860# + -8 20 28 48 Ni -pp 16477# 506# 7272# 11# B- * 48 017688# 543# +0 17 33 16 49 S -n 21203# 667# 7383# 14# B- 20057# 895# 49 022762# 716# + 15 32 17 49 Cl x 1146# 596# 7777# 12# B- 18006# 718# 49 001230# 640# + 13 31 18 49 Ar x -16860# 401# 8128# 8# B- 12751# 401# 48 981900# 430# + 11 30 19 49 K x -29611.491 0.801 8372.274 0.016 B- 11688.404 0.829 48 968210.755 0.860 + 9 29 20 49 Ca -n -41299.895 0.214 8594.847 0.004 B- 5261.178 2.704 48 955662.736 0.229 + 7 28 21 49 Sc -46561.073 2.700 8686.252 0.055 B- 2001.737 2.710 48 950014.629 2.898 + 5 27 22 49 Ti -48562.809 0.360 8711.137 0.007 B- -601.856 0.820 48 947865.676 0.386 + 3 26 23 49 V - -47960.953 0.896 8682.888 0.018 B- -2628.260 2.505 48 948511.795 0.961 + 1 25 24 49 Cr +n -45332.693 2.369 8613.284 0.048 B- -7695.955 10.404 48 951333.349 2.543 + -1 24 25 49 Mn -37636.738 10.133 8440.257 0.207 B- -12886.011 26.253 48 959595.297 10.878 + -3 23 26 49 Fe x -24750.727 24.219 8161.311 0.494 B- -14420# 699# 48 973429.000 26.000 + -5 22 27 49 Co x -10330# 699# 7851# 14# B- -17503# 1063# 48 988910# 750# + -7 21 28 49 Ni x 7173# 801# 7478# 16# B- * 49 007700# 860# +0 16 33 17 50 Cl x 8430# 596# 7637# 12# B- 21350# 780# 50 009050# 640# + 14 32 18 50 Ar x -12920# 503# 8048# 10# B- 12808# 503# 49 986130# 540# + 12 31 19 50 K x -25727.848 7.731 8288.582 0.155 B- 13861.376 7.892 49 972380.017 8.300 + 10 30 20 50 Ca x -39589.224 1.584 8550.163 0.032 B- 4958.290 15.084 49 957499.217 1.700 + 8 29 21 50 Sc -pn -44547.514 15.000 8633.682 0.300 B- 6883.167 15.005 49 952176.274 16.103 + 6 28 22 50 Ti -51430.681 0.362 8755.698 0.007 B- -2206.825 0.871 49 944786.889 0.389 + 4 27 23 50 V +n -49223.856 0.881 8695.915 0.018 B- 1037.853 0.317 49 947156.014 0.945 + 2 26 24 50 Cr -50261.709 0.879 8701.025 0.018 B- -7634.477 0.067 49 946041.833 0.943 + 0 25 25 50 Mn -42627.232 0.882 8532.689 0.018 B- -8138.601 60.006 49 954237.781 0.946 + -2 24 26 50 Fe 4n -34488.631 60.002 8354.270 1.200 B- -16706# 599# 49 962974.929 64.414 + -4 23 27 50 Co x -17782# 596# 8004# 12# B- -12883# 999# 49 980910# 640# + -6 22 28 50 Ni x -4900# 801# 7731# 16# B- * 49 994740# 860# +0 17 34 17 51 Cl x 14475# 699# 7527# 14# B- 20344# 918# 51 015540# 750# + 15 33 18 51 Ar x -5868# 596# 7910# 12# B- 16648# 596# 50 993700# 640# + 13 32 19 51 K x -22516.039 13.070 8221.346 0.256 B- 13822.490 25.896 50 975828.036 14.031 + 11 31 20 51 Ca x -36338.529 22.360 8477.035 0.438 B- 6890.284 30.000 50 960988.981 24.004 + 9 30 21 51 Sc -p2n -43228.814 20.000 8596.798 0.392 B- 6503.044 20.010 50 953591.956 21.471 + 7 29 22 51 Ti -n -49731.858 0.609 8708.969 0.012 B- 2471.826 0.996 50 946610.651 0.654 + 5 28 23 51 V -52203.685 0.877 8742.096 0.017 B- -752.630 0.238 50 943957.036 0.942 + 3 27 24 51 Cr -51451.054 0.879 8711.998 0.017 B- -3207.559 0.352 50 944765.018 0.943 + 1 26 25 51 Mn -48243.495 0.880 8633.765 0.017 B- -8041.165 9.001 50 948208.475 0.944 + -1 25 26 51 Fe -40202.330 8.965 8460.755 0.176 B- -12860.187 49.260 50 956841.021 9.624 + -3 24 27 51 Co x -27342.143 48.438 8193.254 0.950 B- -14404# 803# 50 970647.000 52.000 + -5 23 28 51 Ni x -12938# 801# 7895# 16# B- * 50 986110# 860# +0 16 34 18 52 Ar x -969# 596# 7819# 11# B- 15575# 718# 51 998960# 640# + 14 33 19 52 K x -16543# 401# 8104# 8# B- 17720# 405# 51 982240# 430# + 12 32 20 52 Ca -34263.009 59.809 8429.319 1.150 B- 5903.497 142.381 51 963217.145 64.207 + 10 31 21 52 Sc -40166.506 141.950 8527.802 2.730 B- 9302.339 142.127 51 956879.479 152.390 + 8 30 22 52 Ti -nn -49468.845 7.080 8691.648 0.136 B- 1974.766 7.125 51 946893.006 7.601 + 6 29 23 52 V -n -51443.612 0.886 8714.579 0.017 B- 3974.477 0.929 51 944773.007 0.951 + 4 28 24 52 Cr -55418.089 0.588 8775.967 0.011 B- -4711.235 1.893 51 940506.231 0.631 + 2 27 25 52 Mn +pn -50706.854 1.901 8670.321 0.037 B- -2374.561 6.247 51 945563.949 2.040 + 0 26 26 52 Fe - -48332.293 6.530 8609.611 0.126 B- -14342# 196# 51 948113.146 7.009 + -2 25 27 52 Co x -33990# 196# 8319# 4# B- -10517# 725# 51 963510# 210# + -4 24 28 52 Ni x -23474# 699# 8101# 13# B- -20409# 1063# 51 974800# 750# + -6 23 29 52 Cu x -3065# 801# 7694# 15# B- * 51 996710# 860# +0 17 35 18 53 Ar x 6791# 699# 7677# 13# B- 18472# 861# 53 007290# 750# + 15 34 19 53 K x -11681# 503# 8011# 9# B- 16776# 643# 52 987460# 540# + 13 33 20 53 Ca x -28457# 401# 8313# 8# B- 9650# 483# 52 969450# 430# + 11 32 21 53 Sc x -38107.420 270.133 8480.339 5.097 B- 8722.572 288.066 52 959090.000 290.000 + 9 31 22 53 Ti + -46829.991 100.050 8630.154 1.888 B- 5020.000 100.000 52 949725.933 107.407 + 7 30 23 53 V +p -51849.991 3.152 8710.110 0.059 B- 3435.903 3.103 52 944336.741 3.383 + 5 29 24 53 Cr -55285.894 0.578 8760.177 0.011 B- -596.849 0.357 52 940648.147 0.620 + 3 28 25 53 Mn -54689.045 0.638 8734.155 0.012 B- -3742.311 1.716 52 941288.891 0.684 + 1 27 26 53 Fe -50946.734 1.707 8648.784 0.032 B- -8288.106 0.443 52 945306.428 1.832 + -1 26 27 53 Co -42658.627 1.763 8477.643 0.033 B- -13027.803 25.212 52 954204.077 1.892 + -3 25 28 53 Ni x -29630.824 25.150 8217.074 0.475 B- -15277# 801# 52 968190.000 27.000 + -5 24 29 53 Cu x -14354# 801# 7914# 15# B- * 52 984590# 860# +0 16 35 19 54 K x -5002# 596# 7889# 11# B- 19776# 780# 53 994630# 640# + 14 34 20 54 Ca x -24778# 503# 8240# 9# B- 8821# 620# 53 973400# 540# + 12 33 21 54 Sc x -33598.989 363.283 8389.275 6.727 B- 11998.064 384.095 53 963930.000 390.000 + 10 32 22 54 Ti x -45597.053 124.717 8596.973 2.310 B- 4295.054 125.617 53 951049.547 133.889 + 8 31 23 54 V + -49892.107 15.011 8662.023 0.278 B- 7041.591 15.000 53 946438.617 16.114 + 6 30 24 54 Cr -56933.697 0.570 8777.935 0.011 B- -1377.174 1.008 53 938879.158 0.611 + 4 29 25 54 Mn -p -55556.524 1.155 8737.944 0.021 B- 697.343 1.096 53 940357.615 1.240 + 2 28 26 54 Fe -56253.867 0.494 8736.370 0.009 B- -8244.547 0.089 53 939608.986 0.529 + 0 27 27 54 Co -48009.320 0.502 8569.205 0.009 B- -8786.402 50.001 53 948459.872 0.538 + -2 26 28 54 Ni 4n -39222.917 50.002 8392.006 0.926 B- -17482# 505# 53 957892.463 53.679 + -4 25 29 54 Cu x -21741# 503# 8054# 9# B- -14325# 861# 53 976660# 540# + -6 24 30 54 Zn -pp -7416# 699# 7774# 13# B- * 53 992039# 750# +0 17 36 19 55 K x 708# 699# 7788# 13# B- 19058# 861# 55 000760# 750# + 15 35 20 55 Ca x -18350# 503# 8120# 9# B- 11626# 684# 54 980300# 540# + 13 34 21 55 Sc x -29976.509 463.247 8317.630 8.423 B- 11691.021 490.625 54 967818.892 497.316 + 11 33 22 55 Ti -41667.530 161.602 8515.970 2.938 B- 7476.090 157.206 54 955268.064 173.486 + 9 32 23 55 V -49143.620 95.105 8637.674 1.729 B- 5965.023 95.103 54 947242.150 102.099 + 7 31 24 55 Cr -55108.643 0.600 8731.905 0.011 B- 2603.082 0.409 54 940838.434 0.643 + 5 30 25 55 Mn -57711.725 0.444 8765.009 0.008 B- -231.088 0.179 54 938043.910 0.476 + 3 29 26 55 Fe -57480.637 0.472 8746.583 0.009 B- -3451.379 0.324 54 938291.994 0.506 + 1 28 27 55 Co -54029.258 0.535 8669.606 0.010 B- -8694.034 0.578 54 941997.202 0.574 + -1 27 28 55 Ni - -45335.224 0.787 8497.308 0.014 B- -13699.825 155.561 54 951330.632 0.845 + -3 26 29 55 Cu x -31635.399 155.559 8233.996 2.828 B- -16713# 716# 54 966038.000 167.000 + -5 25 30 55 Zn x -14923# 699# 7916# 13# B- * 54 983980# 750# +0 18 37 19 56 K x 7927# 801# 7664# 14# B- 21825# 999# 56 008510# 860# + 16 36 20 56 Ca x -13898# 596# 8040# 11# B- 10833# 718# 55 985080# 640# + 14 35 21 56 Sc x -24731# 401# 8220# 7# B- 14474# 423# 55 973450# 430# + 12 34 22 56 Ti -39205.322 135.683 8464.062 2.423 B- 6917.780 199.470 55 957911.353 145.661 + 10 33 23 56 V -46123.102 177.701 8573.623 3.173 B- 9158.143 177.710 55 950484.810 190.769 + 8 32 24 56 Cr x -55281.245 1.863 8723.191 0.033 B- 1629.600 1.919 55 940653.139 2.000 + 6 31 25 56 Mn -56910.845 0.460 8738.320 0.008 B- 3695.577 0.209 55 938903.691 0.493 + 4 30 26 56 Fe -60606.422 0.456 8790.342 0.008 B- -4566.624 0.411 55 934936.326 0.489 + 2 29 27 56 Co -56039.798 0.584 8694.825 0.010 B- -2132.889 0.374 55 939838.798 0.626 + 0 28 28 56 Ni -53906.909 0.533 8642.767 0.010 B- -15669# 196# 55 942128.549 0.571 + -2 27 29 56 Cu x -38238# 196# 8349# 3# B- -12659# 540# 55 958950# 210# + -4 26 30 56 Zn x -25579# 503# 8109# 9# B- -21257# 780# 55 972540# 540# + -6 25 31 56 Ga x -4322# 596# 7715# 11# B- * 55 995360# 640# +0 17 37 20 57 Ca x -6874# 596# 7917# 10# B- 13833# 780# 56 992620# 640# + 15 36 21 57 Sc x -20707# 503# 8146# 9# B- 13160# 561# 56 977770# 540# + 13 35 22 57 Ti -33867.607 248.036 8363.527 4.352 B- 10360.782 325.483 56 963641.626 266.277 + 11 34 23 57 V -44228.389 226.711 8531.570 3.977 B- 8295.751 226.719 56 952518.869 243.384 + 9 33 24 57 Cr x -52524.139 1.863 8663.384 0.033 B- 4961.992 2.396 56 943613.013 2.000 + 7 32 25 57 Mn -57486.131 1.506 8736.711 0.026 B- 2695.049 1.553 56 938286.096 1.616 + 5 31 26 57 Fe -60181.180 0.457 8770.267 0.008 B- -836.232 0.451 56 935392.841 0.490 + 3 30 27 57 Co -59344.948 0.619 8741.871 0.011 B- -3261.729 0.642 56 936290.574 0.664 + 1 29 28 57 Ni -56083.219 0.663 8670.923 0.012 B- -8774.967 0.439 56 939792.184 0.712 + -1 28 29 57 Cu -47308.253 0.614 8503.251 0.011 B- -14762# 205# 56 949212.498 0.659 + -3 27 30 57 Zn x -32546# 205# 8231# 4# B- -16897# 362# 56 965060# 220# + -5 26 31 57 Ga x -15649# 298# 7920# 5# B- * 56 983200# 320# +0 18 38 20 58 Ca x -1919# 699# 7835# 12# B- 12957# 918# 57 997940# 750# + 16 37 21 58 Sc x -14876# 596# 8045# 10# B- 16236# 718# 57 984030# 640# + 14 36 22 58 Ti x -31112# 401# 8311# 7# B- 9208# 421# 57 966600# 430# + 12 35 23 58 V x -40319.499 128.029 8456.240 2.207 B- 11515.227 239.931 57 956715.235 137.444 + 10 34 24 58 Cr x -51834.726 202.917 8641.290 3.499 B- 3992.834 202.935 57 944353.129 217.840 + 8 33 25 58 Mn x -55827.560 2.701 8696.643 0.047 B- 6326.907 2.746 57 940066.645 2.900 + 6 32 26 58 Fe -62154.467 0.492 8792.239 0.008 B- -2307.909 1.140 57 933274.431 0.527 + 4 31 27 58 Co -59846.558 1.201 8738.959 0.021 B- 381.595 1.107 57 935752.073 1.289 + 2 30 28 58 Ni -60228.153 0.483 8732.049 0.008 B- -8561.019 0.443 57 935342.414 0.518 + 0 29 29 58 Cu -51667.134 0.654 8570.957 0.011 B- -9368.981 50.002 57 944533.046 0.702 + -2 28 30 58 Zn -- -42298.153 50.002 8395.934 0.862 B- -18806# 202# 57 954591.062 53.679 + -4 27 31 58 Ga x -23492# 196# 8058# 3# B- -15780# 446# 57 974780# 210# + -6 26 32 58 Ge x -7713# 401# 7773# 7# B- * 57 991720# 430# +0 17 38 21 59 Sc x -10302# 596# 7967# 10# B- 15342# 718# 58 988940# 640# + 15 37 22 59 Ti x -25644# 401# 8214# 7# B- 12188# 432# 58 972470# 430# + 13 36 23 59 V x -37832.015 161.874 8407.555 2.744 B- 10059.475 293.090 58 959385.659 173.778 + 11 35 24 59 Cr x -47891.490 244.333 8564.795 4.141 B- 7633.830 244.344 58 948586.367 262.302 + 9 34 25 59 Mn x -55525.320 2.329 8680.921 0.039 B- 5138.843 2.383 58 940391.113 2.500 + 7 33 26 59 Fe -n -60664.164 0.503 8754.760 0.009 B- 1564.956 0.372 58 934874.338 0.540 + 5 32 27 59 Co -62229.119 0.518 8768.025 0.009 B- -1073.001 0.194 58 933194.288 0.556 + 3 31 28 59 Ni -61156.118 0.483 8736.578 0.008 B- -4798.386 0.397 58 934346.202 0.518 + 1 30 29 59 Cu -56357.732 0.625 8641.990 0.011 B- -9142.777 0.602 58 939497.482 0.671 + -1 29 30 59 Zn -47214.955 0.830 8473.767 0.014 B- -13243# 168# 58 949312.657 0.891 + -3 28 31 59 Ga x -33972# 168# 8236# 3# B- -17661# 342# 58 963530# 180# + -5 27 32 59 Ge x -16310# 298# 7923# 5# B- * 58 982490# 320# +0 18 39 21 60 Sc x -4052# 699# 7865# 12# B- 18276# 861# 59 995650# 750# + 16 38 22 60 Ti x -22328# 503# 8157# 8# B- 10914# 549# 59 976030# 540# + 14 37 23 60 V x -33241.956 220.159 8325.450 3.669 B- 13261.920 306.608 59 964313.290 236.350 + 12 36 24 60 Cr x -46503.876 213.397 8533.443 3.557 B- 6464.062 213.410 59 950076.033 229.090 + 10 35 25 60 Mn x -52967.938 2.329 8628.138 0.039 B- 8444.437 4.143 59 943136.576 2.500 + 8 34 26 60 Fe -nn -61412.375 3.427 8755.840 0.057 B- 237.345 3.411 59 934071.100 3.678 + 6 33 27 60 Co -n -61649.720 0.523 8746.757 0.009 B- 2822.813 0.212 59 933816.299 0.561 + 4 32 28 60 Ni -64472.533 0.483 8780.764 0.008 B- -6127.982 1.573 59 930785.885 0.518 + 2 31 29 60 Cu - -58344.551 1.646 8665.592 0.027 B- -4170.819 1.629 59 937364.544 1.767 + 0 30 30 60 Zn -54173.732 0.646 8583.039 0.011 B- -14390# 196# 59 941842.103 0.694 + -2 29 31 60 Ga x -39784# 196# 8330# 3# B- -12175# 277# 59 957290# 210# + -4 28 32 60 Ge x -27609# 196# 8114# 3# B- -21909# 446# 59 970360# 210# + -6 27 33 60 As x -5701# 401# 7736# 7# B- * 59 993880# 430# +0 19 40 21 61 Sc x 931# 801# 7787# 13# B- 17279# 999# 61 001000# 860# + 17 39 22 61 Ti x -16348# 596# 8057# 10# B- 14159# 1075# 60 982450# 640# + 15 38 23 61 V x -30506.429 894.234 8276.439 14.660 B- 11948.660 903.480 60 967250.000 960.000 + 13 37 24 61 Cr x -42455.089 128.922 8459.494 2.113 B- 9287.033 128.943 60 954422.585 138.403 + 11 36 25 61 Mn x -51742.122 2.329 8598.915 0.038 B- 7178.372 3.497 60 944452.544 2.500 + 9 35 26 61 Fe x -58920.494 2.608 8703.768 0.043 B- 3977.129 2.755 60 936746.244 2.800 + 7 34 27 61 Co p2n -62897.623 0.887 8756.141 0.015 B- 1323.699 0.793 60 932476.620 0.952 + 5 33 28 61 Ni -64221.322 0.484 8765.016 0.008 B- -2237.488 0.981 60 931055.570 0.519 + 3 32 29 61 Cu p2n -61983.834 0.963 8715.510 0.016 B- -5635.144 15.903 60 933457.612 1.033 + 1 31 30 61 Zn -56348.691 15.900 8610.306 0.261 B- -9214.149 37.679 60 939507.188 17.069 + -1 30 31 61 Ga -47134.542 37.994 8446.429 0.623 B- -13405# 300# 60 949398.984 40.787 + -3 29 32 61 Ge x -33729# 298# 8214# 5# B- -16143# 422# 60 963790# 320# + -5 28 33 61 As x -17587# 298# 7936# 5# B- * 60 981120# 320# +0 18 40 22 62 Ti x -12566# 699# 7996# 11# B- 12911# 760# 61 986510# 750# + 16 39 23 62 V x -25476# 298# 8192# 5# B- 15419# 333# 61 972650# 320# + 14 38 24 62 Cr x -40894.961 148.099 8428.069 2.389 B- 7586# 211# 61 956097.451 158.991 + 12 37 25 62 Mn IT -48481# 150# 8538# 2# B- 10397# 150# 61 947954# 161# + 10 36 26 62 Fe x -58878.048 2.794 8692.882 0.045 B- 2545.776 18.786 61 936791.812 3.000 + 8 35 27 62 Co + -61423.824 18.577 8721.325 0.300 B- 5322.039 18.570 61 934058.809 19.942 + 6 34 28 62 Ni -66745.863 0.517 8794.546 0.008 B- -3958.896 0.475 61 928345.365 0.554 + 4 33 29 62 Cu - -62786.966 0.702 8718.074 0.011 B- -1619.455 0.651 61 932595.415 0.753 + 2 32 30 62 Zn -61167.512 0.682 8679.335 0.011 B- -9181.066 0.376 61 934333.971 0.731 + 0 31 31 62 Ga -51986.446 0.702 8518.635 0.011 B- -10088# 140# 61 944190.251 0.753 + -2 30 32 62 Ge x -41899# 140# 8343# 2# B- -17316# 329# 61 955020# 150# + -4 29 33 62 As x -24582# 298# 8051# 5# B- * 61 973610# 320# +0 19 41 22 63 Ti x -5822# 699# 7891# 11# B- 16171# 805# 62 993750# 750# + 17 40 23 63 V x -21993# 401# 8135# 6# B- 13730# 609# 62 976390# 430# + 15 39 24 63 Cr x -35722.114 458.743 8340.298 7.282 B- 11164.939 458.758 62 961650.731 492.481 + 13 38 25 63 Mn x -46887.053 3.726 8505.101 0.059 B- 8748.568 5.692 62 949664.675 4.000 + 11 37 26 63 Fe -55635.621 4.302 8631.549 0.068 B- 6215.378 19.069 62 940272.700 4.618 + 9 36 27 63 Co -61850.999 18.577 8717.788 0.295 B- 3661.322 18.570 62 933600.217 19.943 + 7 35 28 63 Ni -65512.321 0.518 8763.486 0.008 B- 66.977 0.015 62 929669.626 0.556 + 5 34 29 63 Cu -65579.298 0.518 8752.131 0.008 B- -3366.187 1.549 62 929597.723 0.556 + 3 33 30 63 Zn -62213.111 1.571 8686.281 0.025 B- -5666.019 2.041 62 933211.474 1.686 + 1 32 31 63 Ga x -56547.092 1.304 8583.926 0.021 B- -9625.876 37.283 62 939294.196 1.400 + -1 31 32 63 Ge x -46921.216 37.260 8418.716 0.591 B- -13294# 199# 62 949628.000 40.000 + -3 30 33 63 As x -33627# 196# 8195# 3# B- * 62 963900# 210# +0 18 41 23 64 V x -16171# 401# 8043# 6# B- 17289# 499# 63 982640# 430# + 16 40 24 64 Cr x -33459# 298# 8301# 5# B- 9530# 298# 63 964080# 320# + 14 39 25 64 Mn x -42989.034 3.540 8437.417 0.055 B- 11980.510 6.140 63 953849.370 3.800 + 12 38 26 64 Fe x -54969.544 5.017 8612.388 0.078 B- 4822.343 20.627 63 940987.763 5.386 + 10 37 27 64 Co + -59791.888 20.007 8675.513 0.313 B- 7306.591 20.000 63 935810.764 21.478 + 8 36 28 64 Ni -67098.478 0.545 8777.454 0.009 B- -1674.385 0.225 63 927966.816 0.584 + 6 35 29 64 Cu -65424.094 0.524 8739.068 0.008 B- 579.696 0.664 63 929764.342 0.562 + 4 34 30 64 Zn -66003.789 0.661 8735.901 0.010 B- -7171.039 1.486 63 929142.013 0.709 + 2 33 31 64 Ga -58832.751 1.429 8611.630 0.022 B- -4517.255 3.991 63 936840.440 1.534 + 0 32 32 64 Ge x -54315.496 3.726 8528.823 0.058 B- -14663# 302# 63 941689.913 4.000 + -2 31 33 64 As -p -39652# 302# 8287# 5# B- -12723# 587# 63 957432# 325# + -4 30 34 64 Se x -26929# 503# 8076# 8# B- * 63 971090# 540# +0 19 42 23 65 V x -11644# 503# 7974# 8# B- 16338# 585# 64 987500# 540# + 17 41 24 65 Cr x -27982# 298# 8213# 5# B- 12985# 298# 64 969960# 320# + 15 40 25 65 Mn x -40967.338 3.726 8400.681 0.057 B- 10254.154 7.768 64 956019.750 4.000 + 13 39 26 65 Fe x -51221.492 6.816 8546.401 0.105 B- 7963.706 7.127 64 945011.462 7.317 + 11 38 27 65 Co x -59185.198 2.083 8656.884 0.032 B- 5940.044 2.157 64 936462.072 2.235 + 9 37 28 65 Ni -n -65125.242 0.562 8736.233 0.009 B- 2138.215 0.721 64 930085.173 0.603 + 7 36 29 65 Cu -67263.457 0.661 8757.093 0.010 B- -1351.659 0.360 64 927789.704 0.709 + 5 35 30 65 Zn -65911.798 0.663 8724.262 0.010 B- -3254.470 0.663 64 929240.770 0.711 + 3 34 31 65 Ga -62657.328 0.822 8662.157 0.013 B- -6179.112 2.315 64 932734.588 0.882 + 1 33 32 65 Ge -56478.216 2.165 8555.058 0.033 B- -9541.165 84.794 64 939368.137 2.323 + -1 32 33 65 As x -46937.051 84.766 8396.234 1.304 B- -13776# 602# 64 949611.000 91.000 + -3 31 34 65 Se x -33161# 596# 8172# 9# B- * 64 964400# 640# +0 20 43 23 66 V x -5608# 596# 7884# 9# B- 18928# 780# 65 993980# 640# + 18 42 24 66 Cr x -24536# 503# 8159# 8# B- 12215# 503# 65 973660# 540# + 16 41 25 66 Mn x -36750.387 11.178 8331.798 0.169 B- 13317.453 11.906 65 960546.834 12.000 + 14 40 26 66 Fe x -50067.840 4.099 8521.724 0.062 B- 6340.694 14.561 65 946249.960 4.400 + 12 39 27 66 Co x -56408.533 13.972 8605.941 0.212 B- 9597.751 14.042 65 939442.945 15.000 + 10 38 28 66 Ni x -66006.285 1.397 8739.508 0.021 B- 251.785 1.548 65 929139.334 1.500 + 8 37 29 66 Cu -66258.070 0.666 8731.469 0.010 B- 2640.993 1.001 65 928869.032 0.715 + 6 36 30 66 Zn -68899.062 0.876 8759.630 0.013 B- -5175.000 3.000 65 926033.809 0.939 + 4 35 31 66 Ga - -63724.062 3.125 8669.367 0.047 B- -2117.030 3.941 65 931589.401 3.354 + 2 34 32 66 Ge x -61607.033 2.401 8625.437 0.036 B- -9581.956 6.168 65 933862.126 2.577 + 0 33 33 66 As x -52025.077 5.682 8468.403 0.086 B- -10657# 298# 65 944148.779 6.100 + -2 32 34 66 Se x -41368# 298# 8295# 5# B- * 65 955590# 320# +0 19 43 24 67 Cr x -18481# 503# 8067# 8# B- 14829# 643# 66 980160# 540# + 17 42 25 67 Mn x -33310# 401# 8277# 6# B- 12758# 456# 66 964240# 430# + 15 41 26 67 Fe x -46068.530 217.972 8455.310 3.253 B- 9253.245 218.067 66 950543.395 234.002 + 13 40 27 67 Co x -55321.775 6.443 8581.741 0.096 B- 8420.904 7.061 66 940609.627 6.917 + 11 39 28 67 Ni x -63742.680 2.888 8695.750 0.043 B- 3576.099 3.131 66 931569.414 3.100 + 9 38 29 67 Cu x -67318.779 1.211 8737.447 0.018 B- 561.288 1.505 66 927730.314 1.300 + 7 37 30 67 Zn -67880.067 0.893 8734.148 0.013 B- -1001.171 1.136 66 927127.746 0.958 + 5 36 31 67 Ga -66878.896 1.216 8707.528 0.018 B- -4220.892 4.804 66 928202.547 1.305 + 3 35 32 67 Ge -n2p -62658.004 4.663 8632.853 0.070 B- -6070.780 4.683 66 932733.861 5.005 + 1 34 33 67 As -56587.225 0.443 8530.568 0.007 B- -10006.936 67.069 66 939251.112 0.475 + -1 33 34 67 Se x -46580.289 67.068 8369.534 1.001 B- -13652# 507# 66 949994.000 72.000 + -3 32 35 67 Br x -32928# 503# 8154# 8# B- * 66 964650# 540# +0 20 44 24 68 Cr x -14876# 699# 8014# 10# B- 13423# 861# 67 984030# 750# + 18 43 25 68 Mn x -28299# 503# 8200# 7# B- 15527# 622# 67 969620# 540# + 16 42 26 68 Fe x -43825.349 365.259 8416.675 5.371 B- 8098.373 394.777 67 952951.550 392.121 + 14 41 27 68 Co x -51923.721 149.782 8524.264 2.203 B- 11540.093 149.812 67 944257.589 160.798 + 12 40 28 68 Ni x -63463.814 2.981 8682.466 0.044 B- 2103.220 3.375 67 931868.789 3.200 + 10 39 29 68 Cu x -65567.034 1.584 8701.890 0.023 B- 4439.812 1.828 67 929610.889 1.700 + 8 38 30 68 Zn -70006.846 0.913 8755.677 0.013 B- -2921.100 1.200 67 924844.554 0.980 + 6 37 31 68 Ga - -67085.746 1.508 8701.214 0.022 B- -106.957 2.407 67 927980.485 1.618 + 4 36 32 68 Ge x -66978.789 1.876 8688.136 0.028 B- -8084.271 2.632 67 928095.307 2.014 + 2 35 33 68 As -58894.519 1.846 8557.745 0.027 B- -4705.077 1.911 67 936774.130 1.981 + 0 34 34 68 Se x -54189.441 0.496 8477.047 0.007 B- -15748# 307# 67 941825.238 0.532 + -2 33 35 68 Br -p -38441# 307# 8234# 5# B- * 67 958732# 330# +0 19 44 25 69 Mn x -24536# 596# 8143# 9# B- 14522# 718# 68 973660# 640# + 17 43 26 69 Fe x -39058# 401# 8343# 6# B- 11112# 444# 68 958070# 430# + 15 42 27 69 Co x -50169.085 190.770 8492.270 2.765 B- 9809.563 190.806 68 946141.268 204.799 + 13 41 28 69 Ni x -59978.648 3.726 8623.099 0.054 B- 5757.564 3.979 68 935610.269 4.000 + 11 40 29 69 Cu x -65736.212 1.397 8695.204 0.020 B- 2681.387 1.677 68 929429.269 1.500 + 9 39 30 69 Zn -n -68417.599 0.927 8722.726 0.013 B- 910.200 1.496 68 926550.682 0.995 + 7 38 31 69 Ga -69327.799 1.198 8724.579 0.017 B- -2227.146 0.550 68 925573.541 1.285 + 5 37 32 69 Ge -67100.654 1.318 8680.963 0.019 B- -3988.490 31.982 68 927964.481 1.414 + 3 36 33 69 As -63112.163 31.999 8611.820 0.464 B- -6677.457 32.021 68 932246.302 34.352 + 1 35 34 69 Se -56434.706 1.490 8503.707 0.022 B- -10323.236 37.033 68 939414.847 1.599 + -1 34 35 69 Br -p -46111.471 37.003 8342.757 0.536 B- -13677# 402# 68 950497.297 39.724 + -3 33 36 69 Kr x -32435# 401# 8133# 6# B- * 68 965180# 430# +0 20 45 25 70 Mn x -19217# 699# 8066# 10# B- 17093# 861# 69 979370# 750# + 18 44 26 70 Fe x -36310# 503# 8299# 7# B- 10610# 585# 69 961020# 540# + 16 43 27 70 Co x -46919.353 298.078 8439.831 4.258 B- 12294.507 298.086 69 949630.000 320.000 + 14 42 28 70 Ni x -59213.860 2.144 8604.291 0.031 B- 3762.512 2.401 69 936431.302 2.301 + 12 41 29 70 Cu x -62976.372 1.082 8646.865 0.015 B- 6588.337 2.202 69 932392.079 1.161 + 10 40 30 70 Zn -69564.709 1.918 8729.807 0.027 B- -654.578 1.574 69 925319.208 2.059 + 8 39 31 70 Ga -68910.131 1.201 8709.280 0.017 B- 1651.704 1.464 69 926021.927 1.289 + 6 38 32 70 Ge -70561.835 0.842 8721.699 0.012 B- -6220.000 50.000 69 924248.750 0.903 + 4 37 33 70 As - -64341.835 50.007 8621.666 0.714 B- -2411.943 50.032 69 930926.195 53.684 + 2 36 34 70 Se x -61929.891 1.584 8576.033 0.023 B- -10504.272 14.988 69 933515.523 1.700 + 0 35 35 70 Br x -51425.620 14.904 8414.796 0.213 B- -10477# 196# 69 944792.323 16.000 + -2 34 36 70 Kr x -40948# 196# 8254# 3# B- * 69 956040# 210# +0 21 46 25 71 Mn x -15202# 699# 8010# 10# B- 15798# 918# 70 983680# 750# + 19 45 26 71 Fe x -31000# 596# 8221# 8# B- 13370# 756# 70 966720# 640# + 17 44 27 71 Co x -44369.925 465.030 8398.734 6.550 B- 11036.302 465.035 70 952366.923 499.230 + 15 43 28 71 Ni x -55406.228 2.237 8543.156 0.032 B- 7304.898 2.688 70 940518.964 2.401 + 13 42 29 71 Cu x -62711.126 1.490 8635.022 0.021 B- 4617.649 3.044 70 932676.833 1.600 + 11 41 30 71 Zn -67328.775 2.654 8689.041 0.037 B- 2810.322 2.776 70 927719.582 2.849 + 9 40 31 71 Ga -70139.097 0.815 8717.604 0.011 B- -232.641 0.223 70 924702.577 0.874 + 7 39 32 71 Ge -69906.457 0.837 8703.308 0.012 B- -2013.400 4.082 70 924952.327 0.898 + 5 38 33 71 As - -67893.057 4.167 8663.932 0.059 B- -4746.550 5.018 70 927113.801 4.473 + 3 37 34 71 Se x -63146.507 2.794 8586.060 0.039 B- -6644.089 6.082 70 932209.433 3.000 + 1 36 35 71 Br -56502.418 5.402 8481.462 0.076 B- -10175.212 128.845 70 939342.155 5.799 + -1 35 36 71 Kr -46327.205 128.769 8327.130 1.814 B- -14023# 519# 70 950265.696 138.238 + -3 34 37 71 Rb x -32304# 503# 8119# 7# B- * 70 965320# 540# +0 20 46 26 72 Fe x -28103# 699# 8179# 10# B- 11681# 805# 71 969830# 750# + 18 45 27 72 Co x -39784# 401# 8330# 6# B- 14442# 401# 71 957290# 430# + 16 44 28 72 Ni x -54226.061 2.237 8520.211 0.031 B- 5556.938 2.637 71 941785.926 2.401 + 14 43 29 72 Cu x -59782.998 1.397 8586.525 0.019 B- 8362.487 2.558 71 935820.307 1.500 + 12 42 30 72 Zn x -68145.486 2.142 8691.804 0.030 B- 442.770 2.295 71 926842.807 2.300 + 10 41 31 72 Ga -68588.256 0.822 8687.088 0.011 B- 3997.645 0.825 71 926367.474 0.882 + 8 40 32 72 Ge -72585.901 0.076 8731.745 0.001 B- -4356.102 4.082 71 922075.826 0.081 + 6 39 33 72 As - -68229.798 4.083 8660.378 0.057 B- -361.618 4.528 71 926752.294 4.383 + 4 38 34 72 Se x -67868.180 1.956 8644.489 0.027 B- -8800.859 6.986 71 927140.507 2.100 + 2 37 35 72 Br x -59067.321 6.707 8511.389 0.093 B- -5126.746 10.448 71 936588.619 7.200 + 0 36 36 72 Kr x -53940.575 8.011 8429.319 0.111 B- -15824# 503# 71 942092.407 8.600 + -2 35 37 72 Rb x -38117# 503# 8199# 7# B- * 71 959080# 540# +0 21 47 26 73 Fe x -22617# 699# 8102# 10# B- 14280# 861# 72 975720# 750# + 19 46 27 73 Co x -36896# 503# 8287# 7# B- 13212# 503# 72 960390# 540# + 17 45 28 73 Ni x -50108.152 2.423 8457.652 0.033 B- 8879.285 3.104 72 946206.683 2.601 + 15 44 29 73 Cu -58987.437 1.942 8568.569 0.027 B- 6605.965 2.691 72 936674.378 2.084 + 13 43 30 73 Zn x -65593.402 1.863 8648.345 0.026 B- 4105.932 2.506 72 929582.582 2.000 + 11 42 31 73 Ga x -69699.335 1.677 8693.873 0.023 B- 1598.189 1.678 72 925174.682 1.800 + 9 41 32 73 Ge -71297.523 0.057 8705.049 0.001 B- -344.774 3.853 72 923458.956 0.061 + 7 40 33 73 As -70952.749 3.853 8689.609 0.053 B- -2725.361 7.399 72 923829.086 4.136 + 5 39 34 73 Se -68227.388 7.424 8641.558 0.102 B- -4579.803 10.388 72 926754.882 7.969 + 3 38 35 73 Br x -63647.585 7.266 8568.104 0.100 B- -7095.834 9.801 72 931671.503 7.800 + 1 37 36 73 Kr x -56551.750 6.578 8460.184 0.090 B- -10470# 101# 72 939289.195 7.061 + -1 36 37 73 Rb -p -46082# 100# 8306# 1# B- -14131# 413# 72 950529# 108# + -3 35 38 73 Sr x -31950# 401# 8102# 5# B- * 72 965700# 430# +0 22 48 26 74 Fe x -19235# 801# 8056# 11# B- 13227# 999# 73 979350# 860# + 20 47 27 74 Co x -32463# 596# 8225# 8# B- 15994# 718# 73 965150# 640# + 18 46 28 74 Ni x -48456# 401# 8430# 5# B- 7550# 401# 73 947980# 430# + 16 45 29 74 Cu x -56006.205 6.148 8521.562 0.083 B- 9750.507 6.642 73 939874.862 6.600 + 14 44 30 74 Zn x -65756.712 2.515 8642.754 0.034 B- 2292.905 3.910 73 929407.262 2.700 + 12 43 31 74 Ga x -68049.617 2.994 8663.167 0.040 B- 5372.825 2.994 73 926945.727 3.214 + 10 42 32 74 Ge -73422.442 0.013 8725.200 0.000 B- -2562.387 1.693 73 921177.761 0.013 + 8 41 33 74 As -70860.055 1.693 8680.001 0.023 B- 1353.147 1.693 73 923928.598 1.817 + 6 40 34 74 Se -72213.202 0.015 8687.715 0.000 B- -6924.952 5.836 73 922475.934 0.015 + 4 39 35 74 Br -65288.249 5.836 8583.562 0.079 B- -2956.415 6.173 73 929910.177 6.265 + 2 38 36 74 Kr -62331.834 2.013 8533.038 0.027 B- -10415.849 3.424 73 933084.020 2.161 + 0 37 37 74 Rb -51915.985 3.027 8381.711 0.041 B- -11089# 100# 73 944265.894 3.249 + -2 36 38 74 Sr x -40827# 100# 8221# 1# B- * 73 956170# 107# +0 21 48 27 75 Co x -29100# 699# 8178# 9# B- 15146# 760# 74 968760# 750# + 19 47 28 75 Ni x -44246# 298# 8369# 4# B- 10225# 298# 74 952500# 320# + 17 46 29 75 Cu x -54471.341 2.330 8495.094 0.031 B- 8087.566 3.042 74 941522.606 2.501 + 15 45 30 75 Zn x -62558.908 1.956 8592.497 0.026 B- 5905.672 3.113 74 932840.246 2.100 + 13 44 31 75 Ga x -68464.580 2.422 8660.808 0.032 B- 3392.385 2.422 74 926500.246 2.600 + 11 43 32 75 Ge -n -71856.965 0.052 8695.609 0.001 B- 1177.226 0.885 74 922858.370 0.055 + 9 42 33 75 As -73034.190 0.884 8700.874 0.012 B- -864.709 0.882 74 921594.567 0.948 + 7 41 34 75 Se -72169.481 0.073 8678.913 0.001 B- -3062.363 4.285 74 922522.870 0.078 + 5 40 35 75 Br x -69107.118 4.285 8627.650 0.057 B- -4783.495 9.167 74 925810.452 4.600 + 3 39 36 75 Kr x -64323.623 8.104 8553.439 0.108 B- -7104.929 8.189 74 930945.746 8.700 + 1 38 37 75 Rb x -57218.694 1.180 8448.275 0.016 B- -10600.000 220.000 74 938573.201 1.266 + -1 37 38 75 Sr - -46618.694 220.003 8296.511 2.933 B- * 74 949952.770 236.183 +0 22 49 27 76 Co x -24098# 801# 8110# 11# B- 17512# 946# 75 974130# 860# + 20 48 28 76 Ni x -41610# 503# 8331# 7# B- 9366# 503# 75 955330# 540# + 18 47 29 76 Cu x -50975.985 6.707 8443.527 0.088 B- 11327.031 6.863 75 945275.026 7.200 + 16 46 30 76 Zn -62303.016 1.456 8582.273 0.019 B- 3993.624 2.438 75 933114.957 1.562 + 14 45 31 76 Ga x -66296.639 1.956 8624.526 0.026 B- 6916.250 1.956 75 928827.626 2.100 + 12 44 32 76 Ge -73212.889 0.018 8705.236 0.000 B- -921.517 0.886 75 921402.726 0.019 + 10 43 33 76 As -n -72291.372 0.886 8682.816 0.012 B- 2960.578 0.886 75 922392.015 0.951 + 8 42 34 76 Se -75251.950 0.016 8711.477 0.000 B- -4962.881 9.322 75 919213.704 0.017 + 6 41 35 76 Br - -70289.069 9.322 8635.882 0.123 B- -1274.931 10.151 75 924541.576 10.007 + 4 40 36 76 Kr -69014.137 4.018 8608.813 0.053 B- -8535.057 4.126 75 925910.271 4.313 + 2 39 37 76 Rb x -60479.081 0.938 8486.215 0.012 B- -6231.442 34.478 75 935073.032 1.006 + 0 38 38 76 Sr x -54247.638 34.465 8393.929 0.453 B- -15647# 504# 75 941762.761 37.000 + -2 37 39 76 Y x -38601# 503# 8178# 7# B- * 75 958560# 540# +0 21 49 28 77 Ni x -36747# 503# 8264# 7# B- 11765# 525# 76 960550# 540# + 19 48 29 77 Cu x -48512# 149# 8407# 2# B- 10277# 149# 76 947920# 160# + 17 47 30 77 Zn -58789.195 1.973 8530.003 0.026 B- 7203.149 3.124 76 936887.199 2.117 + 15 46 31 77 Ga x -65992.344 2.422 8613.390 0.031 B- 5220.518 2.422 76 929154.300 2.600 + 13 45 32 77 Ge -n -71212.862 0.053 8671.028 0.001 B- 2703.457 1.717 76 923549.843 0.057 + 11 44 33 77 As -73916.319 1.716 8695.978 0.022 B- 683.166 1.716 76 920647.563 1.842 + 9 43 34 77 Se -74599.485 0.063 8694.690 0.001 B- -1364.680 2.810 76 919914.154 0.067 + 7 42 35 77 Br - -73234.805 2.811 8666.806 0.037 B- -3065.363 3.424 76 921379.198 3.017 + 5 41 36 77 Kr x -70169.442 1.956 8616.836 0.025 B- -5338.951 2.351 76 924670.000 2.100 + 3 40 37 77 Rb x -64830.491 1.304 8537.339 0.017 B- -7027.056 8.024 76 930401.600 1.400 + 1 39 38 77 Sr x -57803.436 7.918 8435.918 0.103 B- -11025# 61# 76 937945.455 8.500 + -1 38 39 77 Y -p -46779# 61# 8283# 1# B- * 76 949781# 65# +0 22 50 28 78 Ni x -34130# 801# 8228# 10# B- 10368# 946# 77 963360# 860# + 20 49 29 78 Cu x -44497.468 503.007 8350.925 6.449 B- 12985.766 503.011 77 952230.000 540.000 + 18 48 30 78 Zn -57483.234 1.944 8507.379 0.025 B- 6222.716 2.719 77 938289.206 2.086 + 16 47 31 78 Ga -63705.950 1.903 8577.127 0.024 B- 8156.103 4.015 77 931608.845 2.043 + 14 46 32 78 Ge -nn -71862.053 3.536 8671.663 0.045 B- 954.907 10.430 77 922852.908 3.795 + 12 45 33 78 As +pn -72816.961 9.813 8673.875 0.126 B- 4208.949 9.813 77 921827.773 10.534 + 10 44 34 78 Se -77025.909 0.182 8717.806 0.002 B- -3573.784 3.575 77 917309.280 0.195 + 8 43 35 78 Br - -73452.125 3.580 8661.958 0.046 B- 727.452 3.648 77 921145.895 3.842 + 6 42 36 78 Kr -74179.577 0.705 8661.254 0.009 B- -7244.158 3.313 77 920364.944 0.756 + 4 41 37 78 Rb x -66935.418 3.237 8558.350 0.042 B- -3761.477 8.125 77 928141.868 3.475 + 2 40 38 78 Sr x -63173.941 7.452 8500.096 0.096 B- -10647# 401# 77 932179.980 8.000 + 0 39 39 78 Y x -52527# 401# 8354# 5# B- -11225# 643# 77 943610# 430# + -2 38 40 78 Zr x -41302# 503# 8200# 6# B- * 77 955660# 540# +0 23 51 28 79 Ni x -27710# 800# 8145# 10# B- 14189# 895# 78 970252# 859# + 21 50 29 79 Cu x -41899# 401# 8314# 5# B- 11534# 401# 78 955020# 430# + 19 49 30 79 Zn -53432.294 2.225 8450.582 0.028 B- 9115.384 2.901 78 942638.069 2.388 + 17 48 31 79 Ga -62547.678 1.868 8556.063 0.024 B- 6978.916 37.147 78 932852.301 2.005 + 15 47 32 79 Ge -69526.594 37.181 8634.501 0.471 B- 4109.475 37.463 78 925360.127 39.915 + 13 46 33 79 As -73636.069 5.386 8676.616 0.068 B- 2281.356 5.389 78 920948.423 5.782 + 11 45 34 79 Se -n -75917.425 0.225 8695.591 0.003 B- 150.630 1.302 78 918499.287 0.241 + 9 44 35 79 Br +n -76068.055 1.292 8687.595 0.016 B- -1625.778 3.333 78 918337.579 1.387 + 7 43 36 79 Kr - -74442.277 3.575 8657.112 0.045 B- -3639.292 4.168 78 920082.923 3.838 + 5 42 37 79 Rb x -70802.985 2.142 8601.142 0.027 B- -5326.096 8.653 78 923989.864 2.300 + 3 41 38 79 Sr x -65476.889 8.383 8523.820 0.106 B- -7120.000 450.000 78 929707.664 9.000 + 1 40 39 79 Y - -58356.889 450.078 8423.790 5.697 B- -11298# 602# 78 937351.299 483.178 + -1 39 40 79 Zr x -47059# 401# 8271# 5# B- * 78 949480# 430# +0 22 51 29 80 Cu x -36431# 596# 8243# 7# B- 15218# 596# 79 960890# 640# + 20 50 30 80 Zn -51648.612 2.585 8423.545 0.032 B- 7575.055 3.877 79 944552.931 2.774 + 18 49 31 80 Ga x -59223.667 2.891 8508.454 0.036 B- 10311.639 3.541 79 936420.775 3.103 + 16 48 32 80 Ge x -69535.305 2.054 8627.570 0.026 B- 2679.155 3.916 79 925350.775 2.205 + 14 47 33 80 As x -72214.460 3.334 8651.280 0.042 B- 5545.017 3.517 79 922474.584 3.579 + 12 46 34 80 Se -77759.477 1.247 8710.813 0.016 B- -1870.463 0.310 79 916521.762 1.339 + 10 45 35 80 Br - -75889.014 1.285 8677.653 0.016 B- 2004.299 1.356 79 918529.788 1.379 + 8 44 36 80 Kr -77893.313 0.697 8692.928 0.009 B- -5717.846 1.989 79 916378.084 0.747 + 6 43 37 80 Rb x -72175.467 1.863 8611.675 0.023 B- -1863.987 3.933 79 922516.444 2.000 + 4 42 38 80 Sr -70311.480 3.464 8578.596 0.043 B- -9164.578 7.151 79 924517.516 3.718 + 2 41 39 80 Y x -61146.903 6.257 8454.259 0.078 B- -5629.860 1490.404 79 934356.096 6.716 + 0 40 40 80 Zr x -55517.043 1490.390 8374.107 18.630 B- * 79 940400.000 1600.000 +0 23 52 29 81 Cu x -31790# 800# 8184# 10# B- 14410# 800# 80 965872# 859# + 21 51 30 81 Zn x -46199.663 5.030 8351.925 0.062 B- 11428.291 5.996 80 950402.619 5.400 + 19 50 31 81 Ga x -57627.954 3.264 8483.357 0.040 B- 8663.733 3.851 80 938133.843 3.503 + 17 49 32 81 Ge x -66291.686 2.055 8580.658 0.025 B- 6241.628 3.362 80 928832.943 2.205 + 15 48 33 81 As -72533.314 2.667 8648.056 0.033 B- 3855.693 2.845 80 922132.280 2.863 + 13 47 34 81 Se -76389.007 1.264 8685.999 0.016 B- 1586.644 1.700 80 917993.023 1.357 + 11 46 35 81 Br -77975.651 1.281 8695.929 0.016 B- -280.837 0.483 80 916289.690 1.375 + 9 45 36 81 Kr -77694.814 1.352 8682.803 0.017 B- -2238.151 5.084 80 916591.181 1.451 + 7 44 37 81 Rb -75456.663 4.904 8645.513 0.061 B- -3928.538 5.817 80 918993.936 5.265 + 5 43 38 81 Sr x -71528.125 3.128 8587.354 0.039 B- -5816.399 6.259 80 923211.395 3.358 + 3 42 39 81 Y -65711.726 5.421 8505.888 0.067 B- -7315.335 164.700 80 929455.556 5.820 + 1 41 40 81 Zr -58396.391 164.669 8405.916 2.033 B- -11449# 433# 80 937308.892 176.778 + -1 40 41 81 Nb x -46947# 401# 8255# 5# B- * 80 949600# 430# +0 24 53 29 82 Cu x -25670# 800# 8108# 10# B- 16936# 854# 81 972442# 859# + 22 52 30 82 Zn x -42607# 298# 8305# 4# B- 10324# 298# 81 954260# 320# + 20 51 31 82 Ga x -52930.718 2.426 8421.049 0.030 B- 12484.348 3.296 81 943176.533 2.604 + 18 50 32 82 Ge x -65415.066 2.241 8563.756 0.027 B- 4688.023 4.833 81 929774.033 2.405 + 16 49 33 82 As x -70103.089 4.287 8611.386 0.052 B- 7490.829 4.514 81 924741.233 4.602 + 14 48 34 82 Se -77593.919 1.412 8693.197 0.017 B- -96.642 1.748 81 916699.497 1.516 + 12 47 35 82 Br -77497.277 1.277 8682.477 0.016 B- 3093.041 0.973 81 916803.246 1.370 + 10 46 36 82 Kr -80590.318 0.877 8710.657 0.011 B- -4402.515 3.134 81 913482.730 0.940 + 8 45 37 82 Rb IT -76187.803 3.009 8647.427 0.037 B- -177.757 6.705 81 918209.024 3.230 + 6 44 38 82 Sr -76010.046 5.992 8635.718 0.073 B- -7947.084 8.143 81 918399.855 6.432 + 4 43 39 82 Y x -68062.962 5.515 8529.262 0.067 B- -4120# 200# 81 926931.401 5.920 + 2 42 40 82 Zr - -63943# 200# 8469# 2# B- -11742# 359# 81 931354# 215# + 0 41 41 82 Nb x -52201# 298# 8317# 4# B- * 81 943960# 320# +0 23 53 30 83 Zn x -36738# 503# 8231# 6# B- 12519# 503# 82 960560# 540# + 21 52 31 83 Ga x -49257.122 2.613 8372.575 0.031 B- 11719.312 3.559 82 947120.301 2.804 + 19 51 32 83 Ge x -60976.434 2.427 8504.345 0.029 B- 8692.888 3.698 82 934539.101 2.605 + 17 50 33 83 As x -69669.322 2.799 8599.653 0.034 B- 5671.245 4.339 82 925206.901 3.004 + 15 49 34 83 Se -n -75340.567 3.316 8658.556 0.040 B- 3672.833 4.895 82 919118.569 3.559 + 13 48 35 83 Br -79013.401 3.847 8693.381 0.046 B- 976.630 3.846 82 915175.620 4.130 + 11 47 36 83 Kr -79990.031 0.300 8695.721 0.004 B- -919.402 2.348 82 914127.164 0.321 + 9 46 37 83 Rb -79070.629 2.329 8675.218 0.028 B- -2273.024 6.424 82 915114.183 2.500 + 7 45 38 83 Sr -76797.605 6.834 8638.407 0.082 B- -4593.081 19.849 82 917554.374 7.336 + 5 44 39 83 Y x -72204.524 18.636 8573.643 0.225 B- -6294.012 19.707 82 922485.250 20.006 + 3 43 40 83 Zr x -65910.513 6.444 8488.385 0.078 B- -7500.000 300.000 82 929242.150 6.918 + 1 42 41 83 Nb - -58410.513 300.069 8388.598 3.615 B- -11724# 500# 82 937293.731 322.137 + -1 41 42 83 Mo x -46686# 401# 8238# 5# B- * 82 949880# 430# +0 24 54 30 84 Zn x -32410# 600# 8178# 7# B- 11873# 721# 83 965206# 644# + 22 53 31 84 Ga x -44283# 401# 8310# 5# B- 13865# 401# 83 952460# 430# + 20 52 32 84 Ge x -58148.427 3.171 8465.524 0.038 B- 7705.132 4.479 83 937575.092 3.403 + 18 51 33 84 As x -65853.559 3.171 8547.938 0.038 B- 10094.161 3.722 83 929303.292 3.403 + 16 50 34 84 Se -75947.721 1.961 8658.793 0.023 B- 1835.364 25.765 83 918466.763 2.105 + 14 49 35 84 Br -77783.084 25.730 8671.329 0.306 B- 4656.251 25.730 83 916496.419 27.622 + 12 48 36 84 Kr -82439.33541 0.00412 8717.446 0.000 B- -2680.375 2.194 83 911497.72816 0.00442 + 10 47 37 84 Rb -79758.960 2.194 8676.224 0.026 B- 890.595 2.336 83 914375.229 2.355 + 8 46 38 84 Sr -80649.555 1.243 8677.512 0.015 B- -6756.079 4.426 83 913419.136 1.334 + 6 45 39 84 Y -73893.476 4.314 8587.769 0.051 B- -2472.943 6.977 83 920672.086 4.631 + 4 44 40 84 Zr x -71420.533 5.516 8549.016 0.066 B- -10400# 300# 83 923326.899 5.921 + 2 43 41 84 Nb - -61021# 300# 8416# 4# B- -6519# 500# 83 934492# 322# + 0 42 42 84 Mo x -54502# 401# 8329# 5# B- * 83 941490# 430# +0 25 55 30 85 Zn x -25840# 700# 8099# 8# B- 14224# 760# 84 972260# 751# + 23 54 31 85 Ga x -40064# 298# 8257# 4# B- 13060# 298# 84 956990# 320# + 21 53 32 85 Ge x -53123.419 3.729 8401.768 0.044 B- 10065.724 4.830 84 942969.660 4.003 + 19 52 33 85 As x -63189.143 3.078 8510.984 0.036 B- 9224.492 4.031 84 932163.660 3.304 + 17 51 34 85 Se +3p -72413.635 2.613 8610.304 0.031 B- 6161.833 4.031 84 922260.760 2.804 + 15 50 35 85 Br +n2p -78575.468 3.078 8673.592 0.036 B- 2904.862 3.671 84 915645.760 3.304 + 13 49 36 85 Kr + -81480.330 2.000 8698.562 0.024 B- 687.000 2.000 84 912527.262 2.147 + 11 48 37 85 Rb -82167.33008 0.00498 8697.441 0.000 B- -1064.054 2.813 84 911789.73790 0.00535 + 9 47 38 85 Sr -81103.276 2.813 8675.718 0.033 B- -3261.153 19.173 84 912932.046 3.020 + 7 46 39 85 Y x -77842.123 18.965 8628.148 0.223 B- -4668.098 20.031 84 916433.039 20.360 + 5 45 40 85 Zr x -73174.025 6.445 8564.025 0.076 B- -6894.349 7.638 84 921444.448 6.918 + 3 44 41 85 Nb x -66279.675 4.099 8473.711 0.048 B- -8769.923 16.357 84 928845.837 4.400 + 1 43 42 85 Mo x -57509.752 15.835 8361.331 0.186 B- -11475# 401# 84 938260.737 17.000 + -1 42 43 85 Tc x -46034# 401# 8217# 5# B- * 84 950580# 430# +0 24 55 31 86 Ga x -34456# 699# 8190# 8# B- 15304# 760# 85 963010# 750# + 22 54 32 86 Ge x -49760# 298# 8359# 3# B- 9202# 298# 85 946580# 320# + 20 53 33 86 As x -58962.142 3.450 8456.721 0.040 B- 11541.024 4.267 85 936701.533 3.703 + 18 52 34 86 Se x -70503.166 2.520 8581.822 0.029 B- 5129.085 3.972 85 924311.733 2.705 + 16 51 35 86 Br +pp -75632.251 3.078 8632.365 0.036 B- 7633.414 3.078 85 918805.433 3.304 + 14 50 36 86 Kr -83265.66488 0.00379 8712.029 0.000 B- -518.655 0.199 85 910610.62693 0.00407 + 12 49 37 86 Rb -82747.010 0.199 8696.901 0.002 B- 1776.189 1.076 85 911167.425 0.213 + 10 48 38 86 Sr -84523.199 1.076 8708.457 0.013 B- -5240.000 14.142 85 909260.608 1.154 + 8 47 39 86 Y - -79283.199 14.183 8638.430 0.165 B- -1314.546 14.625 85 914885.980 15.226 + 6 46 40 86 Zr -77968.652 3.568 8614.047 0.041 B- -8835.774 6.559 85 916297.204 3.830 + 4 45 41 86 Nb x -69132.879 5.517 8502.209 0.064 B- -5022.634 6.657 85 925782.798 5.922 + 2 44 42 86 Mo x -64110.244 3.726 8434.709 0.043 B- -12813# 298# 85 931174.817 4.000 + 0 43 43 86 Tc x -51297# 298# 8277# 3# B- * 85 944930# 320# +0 25 56 31 87 Ga x -29580# 800# 8133# 9# B- 14499# 895# 86 968245# 859# + 23 55 32 87 Ge x -44078# 401# 8290# 5# B- 11540# 401# 86 952680# 430# + 21 54 33 87 As x -55617.906 2.985 8413.851 0.034 B- 10808.218 3.726 86 940291.718 3.204 + 19 53 34 87 Se x -66426.124 2.241 8529.091 0.026 B- 7465.552 3.877 86 928688.618 2.405 + 17 52 35 87 Br 2p-n -73891.676 3.171 8605.910 0.036 B- 6817.845 3.181 86 920674.018 3.404 + 15 51 36 87 Kr -n -80709.521 0.246 8675.283 0.003 B- 3888.269 0.246 86 913354.760 0.264 + 13 50 37 87 Rb -84597.790 0.006 8710.983 0.000 B- 282.243 1.075 86 909180.531 0.006 + 11 49 38 87 Sr -84880.033 1.075 8705.235 0.012 B- -1861.690 1.128 86 908877.531 1.154 + 9 48 39 87 Y - -83018.343 1.558 8674.844 0.018 B- -3671.810 4.461 86 910876.138 1.672 + 7 47 40 87 Zr -79346.533 4.194 8623.647 0.048 B- -5473.234 7.979 86 914817.988 4.501 + 5 46 41 87 Nb x -73873.299 6.817 8551.743 0.078 B- -6988.491 7.392 86 920693.747 7.318 + 3 45 42 87 Mo -66884.808 2.857 8462.423 0.033 B- -9194.764 5.073 86 928196.201 3.067 + 1 44 43 87 Tc x -57690.044 4.192 8347.744 0.048 B- -11758# 401# 86 938067.187 4.500 + -1 43 44 87 Ru x -45932# 401# 8204# 5# B- * 86 950690# 430# +0 24 56 32 88 Ge x -40138# 503# 8243# 6# B- 10582# 540# 87 956910# 540# + 22 55 33 88 As x -50720# 196# 8354# 2# B- 13164# 196# 87 945550# 210# + 20 54 34 88 Se x -63884.195 3.357 8495.004 0.038 B- 6831.763 4.613 87 931417.492 3.604 + 18 53 35 88 Br ++ -70715.958 3.171 8563.747 0.036 B- 8975.327 4.106 87 924083.292 3.404 + 16 52 36 88 Kr x -79691.285 2.608 8656.849 0.030 B- 2917.709 2.613 87 914447.881 2.800 + 14 51 37 88 Rb -82608.994 0.159 8681.115 0.002 B- 5312.357 1.097 87 911315.592 0.171 + 12 50 38 88 Sr -87921.351 1.085 8732.592 0.012 B- -3622.600 1.500 87 905612.542 1.164 + 10 49 39 88 Y - -84298.751 1.851 8682.536 0.021 B- -670.422 5.739 87 909501.563 1.987 + 8 48 40 88 Zr -83628.329 5.444 8666.027 0.062 B- -7452.342 56.873 87 910221.290 5.844 + 6 47 41 88 Nb -76175.987 56.783 8572.451 0.645 B- -3489.443 56.911 87 918221.710 60.958 + 4 46 42 88 Mo x -72686.543 3.819 8523.908 0.043 B- -11005.229 149.088 87 921967.781 4.100 + 2 45 43 88 Tc x -61681.314 149.039 8389.958 1.694 B- -7282# 333# 87 933782.381 160.000 + 0 44 44 88 Ru x -54399# 298# 8298# 3# B- * 87 941600# 320# +0 25 57 32 89 Ge x -33729# 600# 8169# 7# B- 13069# 670# 88 963790# 644# + 23 56 33 89 As x -46798# 298# 8307# 3# B- 12194# 298# 88 949760# 320# + 21 55 34 89 Se x -58992.390 3.729 8435.279 0.042 B- 9281.872 4.951 88 936669.060 4.003 + 19 54 35 89 Br x -68274.262 3.264 8530.779 0.037 B- 8261.522 3.904 88 926704.560 3.504 + 17 53 36 89 Kr x -76535.784 2.142 8614.815 0.024 B- 5176.454 5.867 88 917835.451 2.300 + 15 52 37 89 Rb -81712.239 5.462 8664.187 0.061 B- 4496.511 5.447 88 912278.298 5.863 + 13 51 38 89 Sr -86208.750 1.089 8705.919 0.012 B- 1500.401 2.335 88 907451.095 1.168 + 11 50 39 89 Y -87709.151 2.233 8713.987 0.025 B- -2832.760 2.776 88 905840.348 2.397 + 9 49 40 89 Zr -84876.390 3.467 8673.368 0.039 B- -4250.996 23.774 88 908881.441 3.722 + 7 48 41 89 Nb -80625.395 23.634 8616.814 0.266 B- -5610.460 23.956 88 913445.073 25.372 + 5 47 42 89 Mo x -75014.934 3.912 8544.984 0.044 B- -7620.087 5.467 88 919468.151 4.200 + 3 46 43 89 Tc x -67394.848 3.819 8450.575 0.043 B- -9288# 298# 88 927648.651 4.100 + 1 45 44 89 Ru x -58107# 298# 8337# 3# B- -12076# 467# 88 937620# 320# + -1 44 45 89 Rh -p -46030# 359# 8193# 4# B- * 88 950584# 385# +0 26 58 32 90 Ge x -29221# 699# 8118# 8# B- 12109# 918# 89 968630# 750# + 24 57 33 90 As x -41330# 596# 8244# 7# B- 14470# 681# 89 955630# 640# + 22 56 34 90 Se x -55800.217 329.749 8395.766 3.664 B- 8200.081 329.766 89 940096.000 354.000 + 20 55 35 90 Br x -64000.297 3.357 8478.186 0.037 B- 10958.952 3.840 89 931292.850 3.604 + 18 54 36 90 Kr x -74959.250 1.863 8591.259 0.021 B- 4405.480 6.776 89 919527.931 2.000 + 16 53 37 90 Rb -79364.730 6.515 8631.516 0.072 B- 6584.187 6.606 89 914798.453 6.993 + 14 52 38 90 Sr -85948.917 2.617 8695.981 0.029 B- 545.944 1.406 89 907730.037 2.809 + 12 51 39 90 Y -86494.860 2.233 8693.354 0.025 B- 2278.698 1.647 89 907143.942 2.397 + 10 50 40 90 Zr -88773.558 1.849 8709.980 0.021 B- -6111.336 3.366 89 904697.659 1.984 + 8 49 41 90 Nb -82662.222 3.551 8633.384 0.039 B- -2489.336 3.366 89 911258.449 3.812 + 6 48 42 90 Mo -80172.886 3.531 8597.032 0.039 B- -9448.200 3.676 89 913930.861 3.790 + 4 47 43 90 Tc x -70724.686 1.025 8483.359 0.011 B- -5840.894 3.869 89 924073.921 1.100 + 2 46 44 90 Ru -64883.792 3.730 8409.768 0.041 B- -12925# 401# 89 930344.380 4.004 + 0 45 45 90 Rh x -51959# 401# 8257# 4# B- * 89 944220# 430# +0 25 58 33 91 As x -36896# 596# 8193# 7# B- 13441# 780# 90 960390# 640# + 23 57 34 91 Se x -50338# 503# 8332# 6# B- 10769# 503# 90 945960# 540# + 21 56 35 91 Br -n2p -61107.293 3.544 8441.923 0.039 B- 9866.671 4.190 90 934398.619 3.804 + 19 55 36 91 Kr x -70973.964 2.236 8541.751 0.025 B- 6771.161 8.121 90 923806.311 2.400 + 17 54 37 91 Rb -77745.126 7.807 8607.562 0.086 B- 5907.281 8.951 90 916537.169 8.381 + 15 53 38 91 Sr -83652.406 5.651 8663.880 0.062 B- 2699.470 5.256 90 910195.442 6.066 + 13 52 39 91 Y -86351.877 2.572 8684.947 0.028 B- 1544.281 1.841 90 907297.442 2.761 + 11 51 40 91 Zr -87896.158 1.830 8693.320 0.020 B- -1257.582 2.925 90 905639.587 1.964 + 9 50 41 91 Nb -86638.575 3.428 8670.904 0.038 B- -4429.863 6.926 90 906989.658 3.679 + 7 49 42 91 Mo -82208.712 6.244 8613.627 0.069 B- -6222.459 6.677 90 911745.312 6.703 + 5 48 43 91 Tc -75986.253 2.367 8536.651 0.026 B- -7746.735 3.242 90 918425.397 2.540 + 3 47 44 91 Ru -68239.518 2.223 8442.925 0.024 B- -9444# 401# 90 926741.859 2.386 + 1 46 45 91 Rh x -58796# 401# 8331# 4# B- -12519# 643# 90 936880# 430# + -1 45 46 91 Pd x -46277# 503# 8184# 6# B- * 90 950320# 540# +0 26 59 33 92 As x -30981# 699# 8127# 8# B- 15742# 918# 91 966740# 750# + 24 58 34 92 Se x -46724# 596# 8290# 6# B- 9509# 596# 91 949840# 640# + 22 57 35 92 Br x -56232.805 6.709 8384.911 0.073 B- 12536.515 7.232 91 939631.597 7.202 + 20 56 36 92 Kr x -68769.319 2.701 8512.674 0.029 B- 6003.204 6.697 91 926173.094 2.900 + 18 55 37 92 Rb -74772.524 6.128 8569.423 0.067 B- 8094.868 6.421 91 919728.389 6.579 + 16 54 38 92 Sr -82867.392 3.424 8648.907 0.037 B- 1949.662 9.451 91 911038.190 3.676 + 14 53 39 92 Y -84817.054 9.206 8661.595 0.100 B- 3642.576 9.153 91 908945.142 9.882 + 12 52 40 92 Zr -88459.630 1.828 8692.684 0.020 B- -2005.885 1.790 91 905034.675 1.962 + 10 51 41 92 Nb -86453.745 2.394 8662.377 0.026 B- 354.082 2.488 91 907188.081 2.570 + 8 50 42 92 Mo -86807.827 0.781 8657.722 0.008 B- -7882.135 3.199 91 906807.959 0.837 + 6 49 43 92 Tc -78925.692 3.102 8563.543 0.034 B- -4624.492 4.125 91 915269.779 3.330 + 4 48 44 92 Ru -74301.201 2.718 8504.773 0.030 B- -11302.114 5.153 91 920234.375 2.917 + 2 47 45 92 Rh x -62999.087 4.378 8373.420 0.048 B- -7929# 503# 91 932367.694 4.700 + 0 46 46 92 Pd x -55070# 503# 8279# 5# B- * 91 940880# 540# +0 25 59 34 93 Se x -40716# 801# 8223# 9# B- 12255# 919# 92 956290# 860# + 23 58 35 93 Br x -52970.338 449.912 8346.459 4.838 B- 11165.656 449.919 92 943134.000 483.000 + 21 57 36 93 Kr x -64135.994 2.515 8458.108 0.027 B- 8483.959 8.225 92 931147.174 2.700 + 19 56 37 93 Rb -72619.953 7.831 8540.921 0.084 B- 7465.963 8.877 92 922039.269 8.406 + 17 55 38 93 Sr -80085.915 7.557 8612.788 0.081 B- 4141.741 11.754 92 914024.228 8.112 + 15 54 39 93 Y -84227.656 10.574 8648.910 0.114 B- 2895.027 10.491 92 909577.886 11.351 + 13 53 40 93 Zr -87122.683 1.819 8671.627 0.020 B- 90.301 1.549 92 906469.947 1.952 + 11 52 41 93 Nb -87212.984 1.824 8664.186 0.020 B- -406.665 1.934 92 906373.004 1.958 + 9 51 42 93 Mo -86806.320 0.785 8651.401 0.008 B- -3200.963 1.004 92 906809.577 0.843 + 7 50 43 93 Tc -p -83605.357 1.269 8608.569 0.014 B- -6388.644 2.423 92 910245.952 1.361 + 5 49 44 93 Ru -77216.712 2.065 8531.462 0.022 B- -8204.913 3.343 92 917104.444 2.216 + 3 48 45 93 Rh -69011.800 2.629 8434.825 0.028 B- -9872# 400# 92 925912.781 2.821 + 1 47 46 93 Pd +p -59140# 400# 8320# 4# B- -12872# 643# 92 936511# 430# + -1 46 47 93 Ag x -46267# 503# 8173# 5# B- * 92 950330# 540# +0 26 60 34 94 Se x -36803# 801# 8180# 9# B- 10796# 896# 93 960490# 860# + 24 59 35 94 Br x -47599# 401# 8286# 4# B- 13748# 401# 93 948900# 430# + 22 58 36 94 Kr x -61347.771 12.109 8424.331 0.129 B- 7215.018 12.278 93 934140.454 13.000 + 20 57 37 94 Rb -68562.789 2.029 8492.764 0.022 B- 10282.959 2.623 93 926394.814 2.177 + 18 56 38 94 Sr -78845.748 1.663 8593.834 0.018 B- 3507.094 6.500 93 915355.602 1.785 + 16 55 39 94 Y -82352.842 6.463 8622.821 0.069 B- 4918.059 6.440 93 911590.582 6.938 + 14 54 40 94 Zr -87270.901 1.881 8666.818 0.020 B- -901.694 2.180 93 906310.828 2.019 + 12 53 41 94 Nb -86369.207 1.824 8648.902 0.019 B- 2043.636 1.809 93 907278.836 1.958 + 10 52 42 94 Mo -88412.843 0.447 8662.320 0.005 B- -4255.748 4.069 93 905084.903 0.479 + 8 51 43 94 Tc - -84157.095 4.093 8608.723 0.044 B- -1573.504 5.161 93 909653.637 4.394 + 6 50 44 94 Ru -82583.591 3.143 8583.661 0.033 B- -9675.978 4.615 93 911342.863 3.374 + 4 49 45 94 Rh -72907.613 3.379 8472.402 0.036 B- -6806.567 5.475 93 921730.453 3.627 + 2 48 46 94 Pd x -66101.047 4.308 8391.669 0.046 B- -13690# 640# 93 929037.603 4.624 + 0 47 47 94 Ag IT -52411# 640# 8238# 7# B- * 93 943734# 687# +0 27 61 34 95 Se x -30460# 800# 8112# 8# B- 13311# 824# 94 967300# 859# + 25 60 35 95 Br x -43771# 196# 8244# 2# B- 12388# 196# 94 953010# 210# + 23 59 36 95 Kr x -56158.912 18.630 8365.995 0.196 B- 9734.969 27.487 94 939710.924 20.000 + 21 58 37 95 Rb -65893.881 20.210 8460.234 0.213 B- 9228.370 20.171 94 929260.004 21.696 + 19 57 38 95 Sr -75122.251 5.890 8549.139 0.062 B- 6089.067 7.261 94 919352.941 6.323 + 17 56 39 95 Y -81211.319 6.890 8604.999 0.073 B- 4450.238 6.802 94 912816.058 7.396 + 15 55 40 95 Zr -85661.557 1.808 8643.609 0.019 B- 1123.500 1.785 94 908038.530 1.940 + 13 54 41 95 Nb -86785.057 0.660 8647.200 0.007 B- 925.567 0.495 94 906832.404 0.709 + 11 53 42 95 Mo -87710.624 0.441 8648.707 0.005 B- -1690.518 5.078 94 905838.766 0.473 + 9 52 43 95 Tc -86020.106 5.097 8622.677 0.054 B- -2563.609 10.531 94 907653.612 5.472 + 7 51 44 95 Ru -83456.497 9.511 8587.457 0.100 B- -5115.891 10.274 94 910405.759 10.210 + 5 50 45 95 Rh -78340.606 3.886 8525.370 0.041 B- -8375.941 4.947 94 915897.895 4.171 + 3 49 46 95 Pd x -69964.665 3.061 8428.967 0.032 B- -10368# 401# 94 924889.838 3.286 + 1 48 47 95 Ag x -59597# 401# 8312# 4# B- -12966# 643# 94 936020# 430# + -1 47 48 95 Cd x -46631# 503# 8167# 5# B- * 94 949940# 540# +0 26 61 35 96 Br x -38163# 298# 8184# 3# B- 14916# 299# 95 959030# 320# + 24 60 36 96 Kr x -53079.678 20.493 8330.850 0.213 B- 8274.683 20.765 95 943016.618 22.000 + 22 59 37 96 Rb -61354.361 3.353 8408.896 0.035 B- 11575.494 9.314 95 934133.380 3.599 + 20 58 38 96 Sr -72929.855 8.690 8521.324 0.091 B- 5411.738 9.726 95 921706.575 9.328 + 18 57 39 96 Y -78341.593 6.383 8569.547 0.066 B- 7103.017 6.087 95 915896.835 6.852 + 16 56 40 96 Zr -85444.610 1.995 8635.387 0.021 B- 162.217 3.761 95 908271.433 2.141 + 14 55 41 96 Nb + -85606.827 3.230 8628.928 0.034 B- 3186.800 3.200 95 908097.286 3.467 + 12 54 42 96 Mo -88793.627 0.441 8653.974 0.005 B- -2973.242 5.145 95 904676.115 0.473 + 10 53 43 96 Tc - -85820.385 5.164 8614.853 0.054 B- 258.738 5.146 95 907868.022 5.543 + 8 52 44 96 Ru -86079.123 0.457 8609.399 0.005 B- -6392.653 10.000 95 907590.255 0.491 + 6 51 45 96 Rh - -79686.469 10.010 8534.660 0.104 B- -3504.311 10.844 95 914453.051 10.746 + 4 50 46 96 Pd x -76182.159 4.216 8490.007 0.044 B- -11670.523 90.182 95 918215.084 4.526 + 2 49 47 96 Ag ep -64511.635 90.084 8360.290 0.938 B- -8939# 411# 95 930743.906 96.708 + 0 48 48 96 Cd x -55573# 401# 8259# 4# B- * 95 940340# 430# +0 27 62 35 97 Br x -34055# 401# 8140# 4# B- 13368# 421# 96 963440# 430# + 25 61 36 97 Kr x -47423.491 130.409 8269.864 1.344 B- 11095.629 130.423 96 949088.785 140.000 + 23 60 37 97 Rb -58519.121 1.912 8376.186 0.020 B- 10063.093 3.896 96 937177.136 2.052 + 21 59 38 97 Sr -68582.214 3.395 8471.864 0.035 B- 7544.965 7.707 96 926373.960 3.644 + 19 58 39 97 Y + -76127.179 6.993 8541.582 0.072 B- 6821.237 6.707 96 918274.106 7.507 + 17 57 40 97 Zr -82948.417 1.981 8603.838 0.020 B- 2659.671 1.721 96 910951.206 2.126 + 15 56 41 97 Nb -85608.088 1.762 8623.192 0.018 B- 1935.471 1.721 96 908095.932 1.892 + 13 55 42 97 Mo -87543.559 0.457 8635.080 0.005 B- -324.708 3.744 96 906018.118 0.490 + 11 54 43 97 Tc -87218.851 3.769 8623.667 0.039 B- -1099.548 4.652 96 906366.706 4.045 + 9 53 44 97 Ru -n -86119.303 2.795 8604.266 0.029 B- -3523.000 35.355 96 907547.120 3.000 + 7 52 45 97 Rh - -82596.303 35.466 8559.881 0.366 B- -4790.461 35.795 96 911329.216 38.073 + 5 51 46 97 Pd x -77805.842 4.844 8502.430 0.050 B- -6980.000 110.000 96 916471.988 5.200 + 3 50 47 97 Ag - -70825.842 110.107 8422.405 1.135 B- -10372# 318# 96 923965.326 118.204 + 1 49 48 97 Cd x -60454# 298# 8307# 3# B- -13264# 585# 96 935100# 320# + -1 48 49 97 In x -47189# 503# 8163# 5# B- * 96 949340# 540# +0 28 63 35 98 Br x -28448# 401# 8082# 4# B- 15863# 499# 97 969460# 430# + 26 62 36 98 Kr x -44311# 298# 8236# 3# B- 10007# 298# 97 952430# 320# + 24 61 37 98 Rb x -54318.333 3.447 8330.210 0.035 B- 12107.643 5.051 97 941686.868 3.700 + 22 60 38 98 Sr -66425.976 3.693 8445.774 0.038 B- 5874.614 8.893 97 928688.778 3.964 + 20 59 39 98 Y p-2n -72300.590 8.167 8497.736 0.083 B- 8991.924 11.576 97 922382.119 8.767 + 18 58 40 98 Zr -81292.514 8.676 8581.507 0.089 B- 2237.851 9.819 97 912728.892 9.314 + 16 57 41 98 Nb -pn -83530.365 5.383 8596.360 0.055 B- 4584.477 5.376 97 910326.459 5.779 + 14 56 42 98 Mo -88114.842 0.460 8635.157 0.005 B- -1683.717 3.377 97 905404.820 0.493 + 12 55 43 98 Tc -86431.125 3.399 8609.993 0.035 B- 1793.640 7.165 97 907212.365 3.649 + 10 54 44 98 Ru -88224.765 6.463 8620.312 0.066 B- -5049.653 10.000 97 905286.813 6.937 + 8 53 45 98 Rh - -83175.112 11.907 8560.802 0.121 B- -1854.137 12.816 97 910707.839 12.782 + 6 52 46 98 Pd -81320.975 4.742 8533.899 0.048 B- -8254.560 33.098 97 912698.337 5.090 + 4 51 47 98 Ag -73066.415 32.907 8441.686 0.336 B- -5430.000 40.000 97 921559.973 35.327 + 2 50 48 98 Cd - -67636.415 51.797 8378.294 0.529 B- -13740# 202# 97 927389.318 55.605 + 0 49 49 98 In x -53896# 196# 8230# 2# B- * 97 942140# 210# +0 27 63 36 99 Kr x -38759# 503# 8178# 5# B- 12446# 515# 98 958390# 540# + 25 62 37 99 Rb -51205.403 111.802 8296.151 1.129 B- 11306.539 111.760 98 945028.735 120.023 + 23 61 38 99 Sr -62511.942 3.562 8402.456 0.036 B- 8143.760 7.641 98 932890.666 3.824 + 21 60 39 99 Y x -70655.702 6.916 8476.814 0.070 B- 6968.724 12.429 98 924147.979 7.424 + 19 59 40 99 Zr -77624.426 10.580 8539.303 0.107 B- 4707.369 16.030 98 916666.746 11.358 + 17 58 41 99 Nb +p -82331.795 12.046 8578.949 0.122 B- 3637.175 12.049 98 911613.177 12.931 + 15 57 42 99 Mo -85968.970 0.482 8607.786 0.005 B- 1357.806 0.891 98 907708.509 0.517 + 13 56 43 99 Tc -87326.776 0.966 8613.599 0.010 B- 295.062 1.133 98 906250.844 1.037 + 11 55 44 99 Ru -87621.838 1.052 8608.677 0.011 B- -2043.844 6.691 98 905934.082 1.129 + 9 54 45 99 Rh -85577.994 6.757 8580.129 0.068 B- -3396.755 8.055 98 908128.239 7.253 + 7 53 46 99 Pd -82181.239 5.000 8537.916 0.051 B- -5468.766 8.015 98 911774.806 5.367 + 5 52 47 99 Ag x -76712.473 6.265 8474.774 0.063 B- -6781.350 6.462 98 917645.768 6.725 + 3 51 48 99 Cd x -69931.122 1.584 8398.373 0.016 B- -8555# 196# 98 924925.848 1.700 + 1 50 49 99 In x -61376# 196# 8304# 2# B- -13432# 540# 98 934110# 210# + -1 49 50 99 Sn x -47944# 503# 8160# 5# B- * 98 948530# 540# +0 28 64 36 100 Kr x -35052# 401# 8140# 4# B- 11495# 446# 99 962370# 430# + 26 63 37 100 Rb x -46547# 196# 8247# 2# B- 13283# 196# 99 950030# 210# + 24 62 38 100 Sr -n2p -59830.146 9.536 8372.327 0.095 B- 7503.184 14.550 99 935769.692 10.237 + 22 61 39 100 Y x -67333.330 11.363 8439.535 0.114 B- 9048.641 13.838 99 927714.692 12.198 + 20 60 40 100 Zr -76381.971 8.291 8522.198 0.083 B- 3421.362 11.408 99 918000.576 8.900 + 18 59 41 100 Nb IT -79803.334 8.232 8548.588 0.082 B- 6386.146 8.292 99 914327.592 8.837 + 16 58 42 100 Mo -86189.480 1.048 8604.626 0.010 B- -169.620 1.513 99 907471.782 1.124 + 14 57 43 100 Tc -n -86019.859 1.391 8595.107 0.014 B- 3203.986 1.511 99 907653.877 1.492 + 12 56 44 100 Ru -89223.846 1.052 8619.323 0.011 B- -3635.629 18.124 99 904214.256 1.129 + 10 55 45 100 Rh -85588.217 18.144 8575.143 0.181 B- -360.992 25.324 99 908117.264 19.477 + 8 54 46 100 Pd -85227.225 17.695 8563.710 0.177 B- -7089.266 18.388 99 908504.805 18.996 + 6 53 47 100 Ag x -78137.959 5.000 8484.994 0.050 B- -3943.363 5.273 99 916115.445 5.367 + 4 52 48 100 Cd -74194.596 1.677 8437.737 0.017 B- -9881.624 182.517 99 920348.820 1.799 + 2 51 49 100 In -64312.972 182.519 8331.097 1.825 B- -7030.000 240.000 99 930957.180 195.942 + 0 50 50 100 Sn - -57282.972 301.518 8252.974 3.015 B- * 99 938504.196 323.693 +0 29 65 36 101 Kr x -29128# 503# 8081# 5# B- 13684# 547# 100 968730# 540# + 27 64 37 101 Rb + -42812# 216# 8209# 2# B- 12750# 200# 100 954039# 231# + 25 63 38 101 Sr + -55561.993 80.339 8327.088 0.795 B- 9505.000 80.000 100 940351.743 86.247 + 23 62 39 101 Y x -65066.993 7.374 8413.451 0.073 B- 8103.757 10.941 100 930147.705 7.915 + 21 61 40 101 Zr -73170.750 8.493 8485.940 0.084 B- 5717.240 9.331 100 921447.964 9.117 + 19 60 41 101 Nb x -78887.990 3.875 8534.800 0.038 B- 4628.414 3.738 100 915310.254 4.160 + 17 59 42 101 Mo -n -83516.403 1.050 8572.880 0.010 B- 2824.654 24.002 100 910341.447 1.127 + 15 58 43 101 Tc + -86341.057 24.024 8593.101 0.238 B- 1613.520 24.000 100 907309.057 25.790 + 13 57 44 101 Ru -87954.577 1.075 8601.330 0.011 B- -543.751 5.922 100 905576.872 1.154 + 11 56 45 101 Rh -87410.826 5.856 8588.201 0.058 B- -1980.169 3.903 100 906160.613 6.286 + 9 55 46 101 Pd -85430.657 4.608 8560.849 0.046 B- -4096.283 6.682 100 908286.412 4.947 + 7 54 47 101 Ag x -81334.373 4.838 8512.546 0.048 B- -5497.918 5.063 100 912683.953 5.193 + 5 53 48 101 Cd x -75836.455 1.490 8450.365 0.015 B- -7223# 298# 100 918586.211 1.600 + 3 52 49 101 In x -68614# 298# 8371# 3# B- -8308# 423# 100 926340# 320# + 1 51 50 101 Sn ep -60305.625 300.005 8281.102 2.970 B- * 100 935259.244 322.068 +0 28 65 37 102 Rb x -37707# 298# 8157# 3# B- 14651# 306# 101 959520# 320# + 26 64 38 102 Sr + -52358.366 70.119 8293.172 0.687 B- 8815.000 70.000 101 943790.979 75.275 + 24 63 39 102 Y x -61173.366 4.079 8371.924 0.040 B- 10420.396 9.882 101 934327.687 4.378 + 22 62 40 102 Zr -71593.762 9.001 8466.414 0.088 B- 4716.837 9.053 101 923140.930 9.663 + 20 61 41 102 Nb -76310.599 3.260 8504.988 0.032 B- 7259.862 8.684 101 918077.197 3.500 + 18 60 42 102 Mo -83570.462 8.485 8568.493 0.083 B- 1000.127 12.495 101 910283.414 9.108 + 16 59 43 102 Tc -84570.589 9.191 8570.628 0.090 B- 4532.311 9.170 101 909209.733 9.866 + 14 58 44 102 Ru -89102.900 1.076 8607.392 0.011 B- -2322.473 4.561 101 904344.096 1.155 + 12 57 45 102 Rh -86780.428 4.684 8576.953 0.046 B- 1150.568 4.520 101 906837.373 5.028 + 10 56 46 102 Pd -87930.996 2.639 8580.563 0.026 B- -5684.462 8.586 101 905602.187 2.833 + 8 55 47 102 Ag + -82246.534 8.171 8517.163 0.080 B- -2587.000 8.000 101 911704.708 8.772 + 6 54 48 102 Cd -79659.534 1.663 8484.130 0.016 B- -8965.789 4.877 101 914481.967 1.785 + 4 53 49 102 In -70693.745 4.589 8388.560 0.045 B- -5760.000 100.000 101 924107.138 4.926 + 2 52 50 102 Sn - -64933.745 100.105 8324.419 0.981 B- * 101 930290.753 107.467 +0 29 66 37 103 Rb x -33608# 401# 8117# 4# B- 13814# 446# 102 963920# 430# + 27 65 38 103 Sr x -47422# 196# 8243# 2# B- 11035# 196# 102 949090# 210# + 25 64 39 103 Y x -58457.765 11.205 8342.640 0.109 B- 9363.681 14.663 102 937243.004 12.028 + 23 63 40 103 Zr x -67821.446 9.459 8425.954 0.092 B- 7203.653 10.287 102 927190.678 10.154 + 21 62 41 103 Nb x -75025.099 4.061 8488.297 0.039 B- 5941.683 10.287 102 919457.238 4.359 + 19 61 42 103 Mo x -80966.783 9.459 8538.387 0.092 B- 3635.106 13.636 102 913078.578 10.154 + 17 60 43 103 Tc +p -84601.889 9.828 8566.084 0.095 B- 2661.748 9.817 102 909176.131 10.550 + 15 59 44 103 Ru -87263.637 1.086 8584.331 0.011 B- 764.415 2.185 102 906318.627 1.165 + 13 58 45 103 Rh -88028.052 2.431 8584.157 0.024 B- -543.020 0.797 102 905497.993 2.610 + 11 57 46 103 Pd -87485.032 2.542 8571.289 0.025 B- -2684.742 4.611 102 906080.949 2.728 + 9 56 47 103 Ag -84800.290 3.847 8537.628 0.037 B- -4148.295 4.149 102 908963.138 4.129 + 7 55 48 103 Cd -80651.995 1.788 8489.758 0.017 B- -6022.480 9.229 102 913416.517 1.919 + 5 54 49 103 In -74629.515 9.127 8423.691 0.089 B- -7660.000 70.000 102 919881.915 9.798 + 3 53 50 103 Sn - -66969.515 70.592 8341.727 0.685 B- -10791# 306# 102 928105.264 75.784 + 1 52 51 103 Sb x -56178# 298# 8229# 3# B- * 102 939690# 320# +0 28 66 38 104 Sr x -44106# 298# 8210# 3# B- 9958# 499# 103 952650# 320# + 26 65 39 104 Y x -54064# 401# 8298# 4# B- 11666# 401# 103 941960# 430# + 24 64 40 104 Zr x -65730.230 9.554 8402.436 0.092 B- 6094.952 9.699 103 929435.691 10.256 + 22 63 41 104 Nb x -71825.182 3.436 8453.519 0.033 B- 8530.732 9.311 103 922892.491 3.688 + 20 62 42 104 Mo -80355.913 9.146 8528.023 0.088 B- 2151.272 24.174 103 913734.373 9.819 + 18 61 43 104 Tc -82507.185 24.932 8541.185 0.240 B- 5586.549 24.984 103 911424.888 26.765 + 16 60 44 104 Ru -88093.734 2.567 8587.380 0.025 B- -1138.042 3.337 103 905427.481 2.755 + 14 59 45 104 Rh -n -86955.692 2.433 8568.914 0.023 B- 2439.284 2.760 103 906649.220 2.611 + 12 58 46 104 Pd +n -89394.976 1.337 8584.846 0.013 B- -4278.653 4.000 103 904030.540 1.435 + 10 57 47 104 Ag - -85116.322 4.218 8536.183 0.041 B- -1148.087 4.537 103 908623.864 4.527 + 8 56 48 104 Cd -83968.236 1.674 8517.621 0.016 B- -7785.571 6.013 103 909856.386 1.796 + 6 55 49 104 In x -76182.664 5.775 8435.237 0.056 B- -4555.623 8.146 103 918214.541 6.200 + 4 54 50 104 Sn -71627.041 5.745 8383.911 0.055 B- -12456.496 122.541 103 923105.204 6.167 + 2 53 51 104 Sb -p -59170.544 122.406 8256.614 1.177 B- * 103 936477.804 131.408 +0 29 67 38 105 Sr x -38610# 503# 8156# 5# B- 12212# 711# 104 958550# 540# + 27 66 39 105 Y x -50822# 503# 8265# 5# B- 10649# 503# 104 945440# 540# + 25 65 40 105 Zr x -61470.962 12.298 8358.718 0.117 B- 8440.950 12.976 104 934008.204 13.202 + 23 64 41 105 Nb x -69911.912 4.156 8431.657 0.040 B- 7431.323 10.176 104 924946.471 4.461 + 21 63 42 105 Mo -77343.235 9.297 8494.981 0.089 B- 4949.711 35.041 104 916968.617 9.980 + 19 62 43 105 Tc -82292.947 35.287 8534.670 0.336 B- 3639.569 35.302 104 911654.883 37.881 + 17 61 44 105 Ru -85932.515 2.568 8561.882 0.024 B- 1918.035 2.876 104 907747.645 2.756 + 15 60 45 105 Rh -87850.550 2.510 8572.698 0.024 B- 567.208 2.352 104 905688.549 2.694 + 13 59 46 105 Pd -88417.759 1.139 8570.649 0.011 B- -1346.930 4.670 104 905079.626 1.222 + 11 58 47 105 Ag -87070.828 4.544 8550.370 0.043 B- -2736.991 4.362 104 906525.615 4.877 + 9 57 48 105 Cd -84333.837 1.392 8516.852 0.013 B- -4693.266 10.341 104 909463.896 1.494 + 7 56 49 105 In x -79640.571 10.246 8464.704 0.098 B- -6302.586 10.989 104 914502.325 11.000 + 5 55 50 105 Sn -73337.986 3.971 8397.228 0.038 B- -9321.896 21.900 104 921268.429 4.263 + 3 54 51 105 Sb +a -64016.090 21.537 8300.997 0.205 B- -11204.580 300.792 104 931275.897 23.120 + 1 53 52 105 Te -a -52811.510 300.020 8186.836 2.857 B- * 104 943304.508 322.084 +0 30 68 38 106 Sr x -34790# 600# 8119# 6# B- 11263# 783# 105 962651# 644# + 28 67 39 106 Y x -46053# 503# 8218# 5# B- 12855# 540# 105 950560# 540# + 26 66 40 106 Zr x -58908# 196# 8332# 2# B- 7292# 196# 105 936760# 210# + 24 65 41 106 Nb x -66199.683 4.248 8393.237 0.040 B- 9941.136 10.293 105 928931.712 4.560 + 22 64 42 106 Mo x -76140.819 9.382 8479.640 0.089 B- 3634.565 15.430 105 918259.464 10.071 + 20 63 43 106 Tc + -79775.384 12.252 8506.548 0.116 B- 6547.000 11.000 105 914357.598 13.153 + 18 62 44 106 Ru -86322.384 5.397 8560.932 0.051 B- 39.405 0.212 105 907329.104 5.793 + 16 61 45 106 Rh -86361.788 5.395 8553.923 0.051 B- 3545.616 5.339 105 907286.801 5.792 + 14 60 46 106 Pd -89907.404 1.106 8579.991 0.010 B- -2965.142 2.817 105 903480.426 1.187 + 12 59 47 106 Ag -86942.262 3.016 8544.638 0.028 B- 189.753 2.819 105 906663.637 3.237 + 10 58 48 106 Cd -87132.015 1.104 8539.047 0.010 B- -6524.003 12.176 105 906459.928 1.185 + 8 57 49 106 In - -80608.012 12.226 8470.119 0.115 B- -3254.332 13.244 105 913463.735 13.125 + 6 56 50 106 Sn -77353.680 5.091 8432.037 0.048 B- -10880.389 9.025 105 916957.404 5.465 + 4 55 51 106 Sb x -66473.291 7.452 8322.012 0.070 B- -8254.603 100.817 105 928637.982 8.000 + 2 54 52 106 Te -a -58218.688 100.541 8236.757 0.949 B- * 105 937499.664 107.935 +0 31 69 38 107 Sr x -28900# 700# 8064# 7# B- 13465# 862# 106 968975# 751# + 29 68 39 107 Y x -42364# 503# 8182# 5# B- 11904# 585# 106 954520# 540# + 27 67 40 107 Zr x -54269# 298# 8286# 3# B- 9451# 298# 106 941740# 320# + 25 66 41 107 Nb x -63720.100 8.090 8367.054 0.076 B- 8837.808 12.455 106 931593.654 8.685 + 23 65 42 107 Mo x -72557.908 9.477 8442.339 0.089 B- 6189.994 12.856 106 922105.877 10.174 + 21 64 43 107 Tc x -78747.902 8.693 8492.878 0.081 B- 5112.598 11.724 106 915460.645 9.332 + 19 63 44 107 Ru -nn -83860.500 8.693 8533.348 0.081 B- 3003.355 14.860 106 909972.045 9.332 + 17 62 45 107 Rh +p -86863.855 12.051 8554.105 0.113 B- 1508.662 12.111 106 906747.811 12.937 + 15 61 46 107 Pd -88372.517 1.202 8560.893 0.011 B- 34.078 2.318 106 905128.195 1.290 + 13 60 47 107 Ag -88406.595 2.382 8553.899 0.022 B- -1416.347 2.567 106 905091.611 2.557 + 11 59 48 107 Cd -86990.248 1.665 8533.351 0.016 B- -3426.000 11.000 106 906612.122 1.787 + 9 58 49 107 In - -83564.248 11.125 8494.021 0.104 B- -5052.021 12.327 106 910290.084 11.943 + 7 57 50 107 Sn x -78512.227 5.310 8439.494 0.050 B- -7859.005 6.738 106 915713.652 5.700 + 5 56 51 107 Sb -70653.222 4.148 8358.733 0.039 B- -10116.893 70.886 106 924150.641 4.452 + 3 55 52 107 Te -a -60536.329 70.764 8256.871 0.661 B- -10962# 306# 106 935011.573 75.968 + 1 54 53 107 I x -49574# 298# 8147# 3# B- * 106 946780# 320# +0 30 69 39 108 Y x -37297# 596# 8134# 6# B- 14056# 718# 107 959960# 640# + 28 68 40 108 Zr x -51353# 401# 8257# 4# B- 8193# 401# 107 944870# 430# + 26 67 41 108 Nb x -59545.965 8.237 8325.667 0.076 B- 11216.383 12.560 107 936074.773 8.843 + 24 66 42 108 Mo x -70762.348 9.482 8422.278 0.088 B- 5158.397 12.925 107 924033.490 10.178 + 22 65 43 108 Tc x -75920.745 8.790 8462.797 0.081 B- 7738.573 11.790 107 918495.722 9.436 + 20 64 44 108 Ru -3n -83659.318 8.701 8527.207 0.081 B- 1372.602 16.480 107 910188.022 9.341 + 18 63 45 108 Rh x -85031.920 13.996 8532.672 0.130 B- 4492.440 14.039 107 908714.473 15.025 + 16 62 46 108 Pd -89524.361 1.110 8567.025 0.010 B- -1917.673 2.634 107 903891.640 1.191 + 14 61 47 108 Ag -n -87606.688 2.388 8542.025 0.022 B- 1645.863 2.640 107 905950.346 2.563 + 12 60 48 108 Cd -89252.551 1.124 8550.020 0.010 B- -5132.610 8.584 107 904183.440 1.206 + 10 59 49 108 In -84119.941 8.641 8495.252 0.080 B- -2049.998 9.837 107 909693.524 9.276 + 8 58 50 108 Sn -82069.943 5.382 8469.027 0.050 B- -9624.613 7.692 107 911894.287 5.778 + 6 57 51 108 Sb x -72445.330 5.496 8372.666 0.051 B- -6663.659 7.712 107 922226.735 5.900 + 4 56 52 108 Te -65781.671 5.411 8303.721 0.050 B- -13135.142 132.335 107 929380.467 5.808 + 2 55 53 108 I -a -52646.529 132.224 8174.856 1.224 B- * 107 943481.623 141.948 +0 31 70 39 109 Y x -33200# 700# 8096# 6# B- 12992# 862# 108 964358# 751# + 29 69 40 109 Zr x -46193# 503# 8208# 5# B- 10427# 727# 108 950410# 540# + 27 68 41 109 Nb x -56619.931 525.363 8296.489 4.820 B- 10052.534 525.486 108 939216.000 564.000 + 25 67 42 109 Mo x -66672.465 11.398 8381.536 0.105 B- 7608.260 14.955 108 928424.160 12.235 + 23 66 43 109 Tc x -74280.725 9.689 8444.160 0.089 B- 6455.626 12.657 108 920256.356 10.401 + 21 65 44 109 Ru -4n -80736.351 8.975 8496.208 0.082 B- 4263.574 9.845 108 913325.956 9.634 + 19 64 45 109 Rh -84999.925 4.047 8528.146 0.037 B- 2606.706 4.191 108 908748.821 4.344 + 17 63 46 109 Pd -87606.632 1.116 8544.883 0.010 B- 1113.251 1.413 108 905950.406 1.198 + 15 62 47 109 Ag -88719.883 1.309 8547.919 0.012 B- -215.521 1.790 108 904755.282 1.405 + 13 61 48 109 Cd -88504.363 1.537 8538.764 0.014 B- -2016.432 4.119 108 904986.653 1.650 + 11 60 49 109 In -86487.931 4.026 8513.087 0.037 B- -3857.018 8.927 108 907151.381 4.321 + 9 59 50 109 Sn -82630.914 7.958 8470.524 0.073 B- -6379.860 8.814 108 911292.060 8.543 + 7 58 51 109 Sb -76251.054 5.265 8404.816 0.048 B- -8535.664 6.850 108 918141.122 5.652 + 5 57 52 109 Te -67715.390 4.382 8319.330 0.040 B- -10042.207 7.206 108 927304.534 4.704 + 3 56 53 109 I -p -57673.183 5.721 8220.022 0.052 B- -11503.556 300.162 108 938085.287 6.141 + 1 55 54 109 Xe -a -46169.627 300.108 8107.307 2.753 B- * 108 950434.864 322.178 +0 30 70 40 110 Zr x -42886# 596# 8177# 5# B- 9250# 627# 109 953960# 640# + 28 69 41 110 Nb x -52136# 196# 8254# 2# B- 12413# 197# 109 944030# 210# + 26 68 42 110 Mo x -64549.112 24.323 8359.413 0.221 B- 6483.328 26.116 109 930703.673 26.111 + 24 67 43 110 Tc x -71032.441 9.517 8411.240 0.087 B- 9038.135 12.509 109 923743.534 10.216 + 22 66 44 110 Ru -80070.575 8.944 8486.293 0.081 B- 2758.402 19.414 109 914040.696 9.602 + 20 65 45 110 Rh -82828.978 17.807 8504.257 0.162 B- 5502.549 17.797 109 911079.429 19.116 + 18 64 46 110 Pd -88331.527 0.694 8547.168 0.006 B- -873.766 1.380 109 905172.199 0.745 + 16 63 47 110 Ag -87457.761 1.309 8532.112 0.012 B- 2891.004 1.289 109 906110.226 1.404 + 14 62 48 110 Cd -90348.765 0.564 8551.282 0.005 B- -3878.000 11.547 109 903006.606 0.606 + 12 61 49 110 In - -86470.765 11.561 8508.915 0.105 B- -628.781 17.985 109 907169.810 12.411 + 10 60 50 110 Sn x -85841.983 13.777 8496.087 0.125 B- -8392.250 15.012 109 907844.835 14.790 + 8 59 51 110 Sb x -77449.733 5.962 8412.681 0.054 B- -5219.910 8.875 109 916854.287 6.400 + 6 58 52 110 Te -72229.823 6.575 8358.115 0.060 B- -11765.648 50.978 109 922458.091 7.058 + 4 57 53 110 I -a -60464.175 50.552 8244.043 0.460 B- -8545.589 113.041 109 935089.034 54.270 + 2 56 54 110 Xe -a -51918.586 101.107 8159.243 0.919 B- * 109 944263.102 108.543 +0 31 71 40 111 Zr x -37560# 700# 8128# 6# B- 11316# 760# 110 959678# 751# + 29 70 41 111 Nb x -48875# 298# 8223# 3# B- 11062# 298# 110 947530# 320# + 27 69 42 111 Mo + -59937.674 12.593 8315.273 0.113 B- 9084.861 6.800 110 935654.257 13.519 + 25 68 43 111 Tc x -69022.535 10.600 8390.071 0.095 B- 7760.649 13.848 110 925901.257 11.379 + 23 67 44 111 Ru x -76783.184 9.702 8452.938 0.087 B- 5521.474 11.877 110 917569.857 10.415 + 21 66 45 111 Rh -82304.658 6.851 8495.633 0.062 B- 3681.852 6.891 110 911642.310 7.355 + 19 65 46 111 Pd -n -85986.510 0.801 8521.755 0.007 B- 2229.769 1.576 110 907689.679 0.859 + 17 64 47 111 Ag + -88216.279 1.523 8534.795 0.014 B- 1036.800 1.414 110 905295.923 1.634 + 15 63 48 111 Cd -89253.079 0.564 8537.087 0.005 B- -862.178 3.509 110 904182.872 0.605 + 13 62 49 111 In -88390.901 3.510 8522.271 0.032 B- -2451.383 6.389 110 905108.458 3.768 + 11 61 50 111 Sn +n -85939.518 5.359 8493.139 0.048 B- -5102.783 10.345 110 907740.127 5.753 + 9 60 51 111 Sb x -80836.736 8.849 8440.119 0.080 B- -7249.259 10.937 110 913218.189 9.500 + 7 59 52 111 Te x -73587.477 6.427 8367.763 0.058 B- -8633.669 7.994 110 921000.589 6.900 + 5 58 53 111 I -64953.808 4.754 8282.934 0.043 B- -10561.271 86.777 110 930269.214 5.103 + 3 57 54 111 Xe -a -54392.537 86.646 8180.739 0.781 B- * 110 941607.206 93.018 +0 32 72 40 112 Zr x -33810# 700# 8094# 6# B- 10463# 760# 111 963703# 751# + 30 71 41 112 Nb x -44274# 298# 8180# 3# B- 13190# 357# 111 952470# 320# + 28 70 42 112 Mo x -57464# 196# 8291# 2# B- 7791# 196# 111 938310# 210# + 26 69 43 112 Tc x -65255.055 5.621 8353.586 0.050 B- 10373.656 11.070 111 929945.813 6.034 + 24 68 44 112 Ru x -75628.711 9.620 8439.223 0.086 B- 4104.174 45.123 111 918809.234 10.327 + 22 67 45 112 Rh -79732.885 44.085 8468.882 0.394 B- 6588.945 43.927 111 914403.222 47.327 + 20 66 46 112 Pd -86321.830 6.545 8520.727 0.058 B- 261.888 6.979 111 907329.698 7.026 + 18 65 47 112 Ag x -86583.717 2.422 8516.080 0.022 B- 3992.088 2.485 111 907048.550 2.600 + 16 64 48 112 Cd -90575.805 0.555 8544.738 0.005 B- -2584.734 4.243 111 902762.868 0.595 + 14 63 49 112 In -87991.071 4.279 8514.675 0.038 B- 664.919 4.243 111 905537.694 4.593 + 12 62 50 112 Sn -88655.990 0.573 8513.627 0.005 B- -7057.026 17.838 111 904823.874 0.614 + 10 61 51 112 Sb x -81598.964 17.829 8443.632 0.159 B- -4031.457 19.702 111 912399.903 19.140 + 8 60 52 112 Te x -77567.508 8.383 8400.652 0.075 B- -10504.178 13.239 111 916727.850 9.000 + 6 59 53 112 I x -67063.329 10.246 8299.879 0.091 B- -7036.908 13.175 111 928004.550 11.000 + 4 58 54 112 Xe -a -60026.421 8.283 8230.065 0.074 B- -13739.142 87.136 111 935558.982 8.891 + 2 57 55 112 Cs -p -46287.280 86.742 8100.408 0.774 B- * 111 950308.558 93.121 +0 31 72 41 113 Nb x -40511# 401# 8146# 4# B- 12258# 499# 112 956510# 430# + 29 71 42 113 Mo x -52769# 298# 8248# 3# B- 10042# 298# 112 943350# 320# + 27 70 43 113 Tc x -62811.539 3.353 8329.464 0.030 B- 9058.813 36.620 112 932569.035 3.600 + 25 69 44 113 Ru -71870.352 36.467 8402.707 0.323 B- 6897.393 37.157 112 922843.999 39.148 + 23 68 45 113 Rh x -78767.745 7.130 8456.823 0.063 B- 4823.555 9.881 112 915439.342 7.654 + 21 67 46 113 Pd x -83591.301 6.946 8492.586 0.061 B- 3435.488 18.036 112 910261.042 7.456 + 19 66 47 113 Ag + -87026.789 16.646 8516.065 0.147 B- 2016.462 16.641 112 906572.893 17.870 + 17 65 48 113 Cd -89043.251 0.415 8526.986 0.004 B- 322.571 0.790 112 904408.133 0.445 + 15 64 49 113 In -89365.821 0.852 8522.917 0.008 B- -1037.581 1.696 112 904061.839 0.914 + 13 63 50 113 Sn -88328.240 1.642 8506.812 0.015 B- -3911.164 17.121 112 905175.728 1.762 + 11 62 51 113 Sb - -84417.076 17.199 8465.276 0.152 B- -6070.047 32.813 112 909374.536 18.464 + 9 61 52 113 Te x -78347.029 27.945 8404.636 0.247 B- -7227.523 29.070 112 915891.000 30.000 + 7 60 53 113 I x -71119.507 8.011 8333.752 0.071 B- -8915.874 10.533 112 923650.064 8.600 + 5 59 54 113 Xe -62203.632 6.839 8247.927 0.061 B- -10439.713 11.042 112 933221.650 7.342 + 3 58 55 113 Cs -p -51763.919 8.669 8148.617 0.077 B- * 112 944429.144 9.306 +0 32 73 41 114 Nb x -35387# 503# 8100# 4# B- 14420# 585# 113 962010# 540# + 30 72 42 114 Mo x -49807# 298# 8220# 3# B- 8961# 315# 113 946530# 320# + 28 71 43 114 Tc IT -58768# 101# 8292# 1# B- 11454# 101# 113 936910# 108# + 26 70 44 114 Ru x -70222.022 3.552 8385.341 0.031 B- 5491.399 71.643 113 924613.554 3.813 + 24 69 45 114 Rh -75713.421 71.561 8426.649 0.628 B- 7777.733 71.891 113 918718.294 76.824 + 22 68 46 114 Pd x -83491.154 6.946 8488.012 0.061 B- 1439.645 8.312 113 910368.554 7.457 + 20 67 47 114 Ag x -84930.799 4.564 8493.778 0.040 B- 5084.043 4.582 113 908823.031 4.900 + 18 66 48 114 Cd -90014.842 0.401 8531.512 0.004 B- -1446.445 0.825 113 903365.086 0.430 + 16 65 49 114 In -88568.397 0.875 8511.961 0.008 B- 1988.939 0.628 113 904917.909 0.938 + 14 64 50 114 Sn -90557.336 0.971 8522.545 0.009 B- -6061.691 21.846 113 902782.695 1.042 + 12 63 51 114 Sb -84495.645 21.841 8462.510 0.192 B- -2607.075 35.468 113 909290.189 23.447 + 10 62 52 114 Te x -81888.569 27.945 8432.778 0.245 B- -9092# 299# 113 912089.000 30.000 + 8 61 53 114 I x -72796# 298# 8346# 3# B- -5710# 298# 113 921850# 320# + 6 60 54 114 Xe x -67085.889 11.178 8289.205 0.098 B- -12403.629 71.976 113 927980.331 12.000 + 4 59 55 114 Cs -a -54682.260 71.102 8173.538 0.624 B- -8722.755 130.372 113 941296.176 76.331 + 2 58 56 114 Ba -a -45959.505 109.276 8090.160 0.959 B- * 113 950660.438 117.312 +0 33 74 41 115 Nb x -31354# 503# 8065# 4# B- 13395# 643# 114 966340# 540# + 31 73 42 115 Mo x -44749# 401# 8175# 3# B- 11159# 446# 114 951960# 430# + 29 72 43 115 Tc x -55908# 196# 8265# 2# B- 10396# 207# 114 939980# 210# + 27 71 44 115 Ru -66303.837 66.352 8348.540 0.577 B- 7925.439 66.395 114 928819.898 71.232 + 25 70 45 115 Rh -74229.276 7.306 8410.654 0.064 B- 6197.307 15.345 114 920311.589 7.843 + 23 69 46 115 Pd -80426.583 13.546 8457.740 0.118 B- 4556.078 21.649 114 913658.506 14.542 + 21 68 47 115 Ag -84982.661 18.268 8490.555 0.159 B- 3101.728 18.276 114 908767.355 19.611 + 19 67 48 115 Cd -88084.389 0.713 8510.724 0.006 B- 1451.955 0.713 114 905437.513 0.765 + 17 66 49 115 In -89536.343 0.012 8516.546 0.000 B- 497.490 0.010 114 903878.776 0.012 + 15 65 50 115 Sn -90033.833 0.015 8514.069 0.000 B- -3030.430 16.025 114 903344.699 0.016 + 13 64 51 115 Sb x -87003.403 16.025 8480.915 0.139 B- -4940.644 32.214 114 906598.000 17.203 + 11 63 52 115 Te x -82062.759 27.945 8431.150 0.243 B- -5724.962 40.184 114 911902.000 30.000 + 9 62 53 115 I x -76337.796 28.876 8374.564 0.251 B- -7681.049 31.313 114 918048.000 31.000 + 7 61 54 115 Xe x -68656.747 12.109 8300.970 0.105 B- -8957# 298# 114 926293.945 13.000 + 5 60 55 115 Cs x -59699# 298# 8216# 3# B- -10675# 585# 114 935910# 320# + 3 59 56 115 Ba x -49025# 503# 8117# 4# B- * 114 947370# 540# +0 32 74 42 116 Mo x -41500# 500# 8146# 4# B- 9956# 582# 115 955448# 537# + 30 73 43 116 Tc x -51456# 298# 8225# 3# B- 12613# 298# 115 944760# 320# + 28 72 44 116 Ru x -64068.907 3.726 8326.883 0.032 B- 6670.118 70.778 115 931219.195 4.000 + 26 71 45 116 Rh -70739.025 70.680 8377.640 0.609 B- 9092.824 71.033 115 924058.528 75.878 + 24 70 46 116 Pd x -79831.849 7.133 8449.282 0.061 B- 2710.804 7.843 115 914296.979 7.657 + 22 69 47 116 Ag x -82542.653 3.260 8465.906 0.028 B- 6169.903 3.264 115 911386.812 3.500 + 20 68 48 116 Cd -88712.556 0.160 8512.351 0.001 B- -462.810 0.272 115 904763.148 0.171 + 18 67 49 116 In -n -88249.746 0.220 8501.617 0.002 B- 3276.249 0.240 115 905259.995 0.236 + 16 66 50 116 Sn -91525.995 0.096 8523.116 0.001 B- -4704.341 5.167 115 901742.797 0.102 + 14 65 51 116 Sb -86821.654 5.168 8475.817 0.045 B- -1552.693 28.419 115 906793.115 5.547 + 12 64 52 116 Te x -85268.961 27.945 8455.687 0.241 B- -7776.725 100.553 115 908460.000 30.000 + 10 63 53 116 I + -77492.236 96.592 8381.902 0.833 B- -4445.512 95.707 115 916808.658 103.695 + 8 62 54 116 Xe x -73046.723 13.041 8336.834 0.112 B- -10984# 101# 115 921581.112 14.000 + 6 61 55 116 Cs ea -62063# 100# 8235# 1# B- -7365# 315# 115 933373# 108# + 4 60 56 116 Ba x -54697# 298# 8165# 3# B- -13995# 369# 115 941280# 320# + 2 59 57 116 La -a -40702# 218# 8038# 2# B- * 115 956304# 234# +0 33 75 42 117 Mo x -36170# 500# 8100# 4# B- 12212# 641# 116 961170# 537# + 31 74 43 117 Tc x -48382# 401# 8197# 3# B- 11138# 709# 116 948060# 430# + 29 73 44 117 Ru x -59519.672 585.444 8285.816 5.004 B- 9377.917 585.512 116 936103.000 628.500 + 27 72 45 117 Rh x -68897.589 8.893 8359.283 0.076 B- 7527.095 11.411 116 926035.391 9.547 + 25 71 46 117 Pd -76424.685 7.253 8416.930 0.062 B- 5757.366 14.767 116 917954.721 7.786 + 23 70 47 117 Ag -82182.050 13.572 8459.452 0.116 B- 4236.414 13.610 116 911773.934 14.570 + 21 69 48 117 Cd -n -86418.465 1.013 8488.974 0.009 B- 2524.608 4.983 116 907225.956 1.087 + 19 68 49 117 In -88943.073 4.881 8503.865 0.042 B- 1454.710 4.857 116 904515.678 5.239 + 17 67 50 117 Sn -90397.782 0.483 8509.612 0.004 B- -1758.218 8.445 116 902953.983 0.519 + 15 66 51 117 Sb -88639.564 8.437 8487.897 0.072 B- -3544.139 13.079 116 904841.508 9.057 + 13 65 52 117 Te -85095.425 13.456 8450.919 0.115 B- -4659.346 28.673 116 908646.298 14.446 + 11 64 53 117 I -80436.079 26.196 8404.409 0.224 B- -6250.743 28.177 116 913648.312 28.123 + 9 63 54 117 Xe x -74185.336 10.378 8344.297 0.089 B- -7692.245 63.267 116 920358.761 11.141 + 7 62 55 117 Cs x -66493.091 62.410 8271.864 0.533 B- -8871.404 202.362 116 928616.726 67.000 + 5 61 56 117 Ba ep -57621.687 192.498 8189.354 1.645 B- -11033# 355# 116 938140.570 206.654 + 3 60 57 117 La -p -46588# 298# 8088# 3# B- * 116 949985# 320# +0 32 75 43 118 Tc x -43790# 401# 8157# 3# B- 13469# 499# 117 952990# 430# + 30 74 44 118 Ru x -57259# 298# 8265# 3# B- 7629# 299# 117 938530# 320# + 28 73 45 118 Rh x -64887.678 24.235 8322.860 0.205 B- 10501.206 24.342 117 930340.208 26.017 + 26 72 46 118 Pd -75388.883 2.492 8405.223 0.021 B- 4164.908 3.540 117 919066.700 2.674 + 24 71 47 118 Ag x -79553.791 2.515 8433.889 0.021 B- 7147.929 20.158 117 914595.487 2.700 + 22 70 48 118 Cd -nn -86701.720 20.001 8487.835 0.169 B- 526.530 21.450 117 906921.869 21.471 + 20 69 49 118 In -87228.250 7.752 8485.667 0.066 B- 4424.635 7.740 117 906356.616 8.322 + 18 68 50 118 Sn -91652.886 0.500 8516.534 0.004 B- -3656.640 2.975 117 901606.574 0.536 + 16 67 51 118 Sb - -87996.246 3.016 8478.915 0.026 B- -299.466 18.730 117 905532.139 3.238 + 14 66 52 118 Te +nn -87696.780 18.486 8469.747 0.157 B- -6725.732 27.059 117 905853.629 19.845 + 12 65 53 118 I x -80971.048 19.760 8406.120 0.167 B- -2891.991 22.320 117 913074.000 21.213 + 10 64 54 118 Xe x -78079.056 10.378 8374.981 0.088 B- -9669.689 16.442 117 916178.680 11.141 + 8 63 55 118 Cs IT -68409.367 12.753 8286.404 0.108 B- -6055# 196# 117 926559.519 13.690 + 6 62 56 118 Ba x -62354# 196# 8228# 2# B- -12734# 357# 117 933060# 210# + 4 61 57 118 La x -49621# 298# 8114# 3# B- * 117 946730# 320# +0 33 76 43 119 Tc x -40371# 503# 8128# 4# B- 12193# 585# 118 956660# 540# + 31 75 44 119 Ru x -52564# 298# 8224# 3# B- 10259# 298# 118 943570# 320# + 29 74 45 119 Rh x -62822.792 9.315 8303.394 0.078 B- 8585.330 12.441 118 932556.954 10.000 + 27 73 46 119 Pd x -71408.122 8.246 8368.966 0.069 B- 7237.648 16.856 118 923340.223 8.852 + 25 72 47 119 Ag -78645.771 14.703 8423.212 0.124 B- 5331.346 35.926 118 915570.287 15.783 + 23 71 48 119 Cd -83977.117 37.695 8461.439 0.317 B- 3722.384 38.088 118 909846.851 40.467 + 21 70 49 119 In -87699.500 7.308 8486.145 0.061 B- 2365.563 7.336 118 905850.708 7.845 + 19 69 50 119 Sn -90065.063 0.726 8499.449 0.006 B- -590.846 7.689 118 903311.172 0.779 + 17 68 51 119 Sb -89474.217 7.701 8487.910 0.065 B- -2293.000 2.000 118 903945.471 8.267 + 15 67 52 119 Te - -87181.217 7.957 8462.067 0.067 B- -3415.687 29.055 118 906407.108 8.541 + 13 66 53 119 I x -83765.530 27.945 8426.789 0.235 B- -4971.117 29.810 118 910074.000 30.000 + 11 65 54 119 Xe x -78794.412 10.378 8378.441 0.087 B- -6489.361 17.379 118 915410.714 11.141 + 9 64 55 119 Cs IT -72305.051 13.940 8317.334 0.117 B- -7714.965 200.754 118 922377.330 14.965 + 7 63 56 119 Ba ep -64590.086 200.269 8245.928 1.683 B- -9623# 359# 118 930659.686 214.997 + 5 62 57 119 La x -54967# 298# 8158# 3# B- -10917# 585# 118 940990# 320# + 3 61 58 119 Ce x -44050# 503# 8060# 4# B- * 118 952710# 540# +0 34 77 43 120 Tc x -35518# 503# 8087# 4# B- 14494# 643# 119 961870# 540# + 32 76 44 120 Ru x -50012# 401# 8201# 3# B- 8803# 446# 119 946310# 430# + 30 75 45 120 Rh x -58815# 196# 8268# 2# B- 11466# 196# 119 936860# 210# + 28 74 46 120 Pd -70280.208 2.293 8357.086 0.019 B- 5371.293 5.025 119 924551.089 2.461 + 26 73 47 120 Ag x -75651.501 4.471 8395.327 0.037 B- 8305.853 5.820 119 918784.768 4.800 + 24 72 48 120 Cd x -83957.354 3.726 8458.023 0.031 B- 1771.237 40.183 119 909868.068 4.000 + 22 71 49 120 In + -85728.591 40.010 8466.264 0.333 B- 5370.000 40.000 119 907966.567 42.952 + 20 70 50 120 Sn -91098.591 0.904 8504.494 0.008 B- -2680.608 7.140 119 902201.634 0.970 + 18 69 51 120 Sb - -88417.983 7.197 8475.636 0.060 B- 950.204 7.823 119 905079.385 7.726 + 16 68 52 120 Te -89368.186 3.113 8477.035 0.026 B- -5615.000 15.000 119 904059.300 3.341 + 14 67 53 120 I - -83753.186 15.320 8423.724 0.128 B- -1580.763 19.348 119 910087.251 16.446 + 12 66 54 120 Xe x -82172.423 11.817 8404.031 0.098 B- -8283.785 15.461 119 911784.270 12.686 + 10 65 55 120 Cs IT -73888.638 9.970 8328.480 0.083 B- -5000.000 300.000 119 920677.279 10.702 + 8 64 56 120 Ba - -68888.638 300.166 8280.294 2.501 B- -11201# 423# 119 926045.000 322.241 + 6 63 57 120 La x -57687# 298# 8180# 2# B- -7890# 585# 119 938070# 320# + 4 62 58 120 Ce x -49798# 503# 8108# 4# B- * 119 946540# 540# +0 33 77 44 121 Ru x -45047# 401# 8159# 3# B- 11383# 499# 120 951640# 430# + 31 76 45 121 Rh x -56430# 298# 8247# 2# B- 9752# 298# 120 939420# 320# + 29 75 46 121 Pd x -66182.327 3.353 8320.858 0.028 B- 8220.493 12.565 120 928950.345 3.600 + 27 74 47 121 Ag x -74402.820 12.109 8382.330 0.100 B- 6671.005 12.264 120 920125.282 13.000 + 25 73 48 121 Cd x -81073.825 1.942 8430.996 0.016 B- 4762.358 27.483 120 912963.663 2.085 + 23 72 49 121 In +p -85836.183 27.415 8463.889 0.227 B- 3361.303 27.409 120 907851.062 29.430 + 21 71 50 121 Sn -89197.486 0.963 8485.203 0.008 B- 401.089 2.900 120 904242.554 1.033 + 19 70 51 121 Sb -89598.575 2.803 8482.052 0.023 B- -1054.306 25.769 120 903811.967 3.009 + 17 69 52 121 Te -88544.269 25.863 8466.873 0.214 B- -2292.629 26.062 120 904943.812 27.764 + 15 68 53 121 I -86251.640 5.372 8441.460 0.044 B- -3770.655 11.566 120 907405.050 5.766 + 13 67 54 121 Xe -82480.985 10.243 8403.832 0.085 B- -5378.654 13.979 120 911453.015 10.995 + 11 66 55 121 Cs -77102.331 14.290 8352.914 0.118 B- -6357.495 141.176 120 917227.238 15.340 + 9 65 56 121 Ba - -70744.836 141.898 8293.907 1.173 B- -8474# 330# 120 924052.290 152.333 + 7 64 57 121 La x -62270# 298# 8217# 2# B- -9501# 499# 120 933150# 320# + 5 63 58 121 Ce x -52769# 401# 8132# 3# B- -11150# 643# 120 943350# 430# + 3 62 59 121 Pr -p -41619# 503# 8034# 4# B- * 120 955320# 540# +0 34 78 44 122 Ru x -42411# 503# 8137# 4# B- 9762# 585# 121 954470# 540# + 32 77 45 122 Rh x -52173# 298# 8210# 2# B- 12443# 299# 121 943990# 320# + 30 76 46 122 Pd x -64616.159 19.561 8305.975 0.160 B- 6489.949 42.909 121 930631.696 21.000 + 28 75 47 122 Ag x -71106.108 38.191 8352.758 0.313 B- 9506.265 38.260 121 923664.449 41.000 + 26 74 48 122 Cd -80612.373 2.299 8424.266 0.019 B- 2960.581 50.110 121 913459.053 2.468 + 24 73 49 122 In + -83572.954 50.058 8442.120 0.410 B- 6368.591 50.000 121 910280.738 53.739 + 22 72 50 122 Sn -89941.545 2.400 8487.909 0.020 B- -1607.921 3.540 121 903443.774 2.576 + 20 71 51 122 Sb -88333.624 2.800 8468.317 0.023 B- 1980.816 2.412 121 905169.948 3.006 + 18 70 52 122 Te -90314.440 1.509 8478.140 0.012 B- -4234.000 5.000 121 903043.455 1.619 + 16 69 53 122 I - -86080.440 5.223 8437.023 0.043 B- -725.464 12.277 121 907588.841 5.606 + 14 68 54 122 Xe x -85354.976 11.111 8424.664 0.091 B- -7210.218 35.472 121 908367.658 11.928 + 12 67 55 122 Cs -78144.759 33.687 8359.151 0.276 B- -3535.815 43.769 121 916108.146 36.164 + 10 66 56 122 Ba x -74608.944 27.945 8323.756 0.229 B- -10066# 299# 121 919904.000 30.000 + 8 65 57 122 La x -64543# 298# 8235# 2# B- -6669# 499# 121 930710# 320# + 6 64 58 122 Ce x -57874# 401# 8174# 3# B- -12929# 643# 121 937870# 430# + 4 63 59 122 Pr x -44945# 503# 8061# 4# B- * 121 951750# 540# +0 35 79 44 123 Ru x -37362# 503# 8095# 4# B- 12147# 643# 122 959890# 540# + 33 78 45 123 Rh x -49509# 401# 8188# 3# B- 10908# 446# 122 946850# 430# + 31 77 46 123 Pd x -60417# 196# 8270# 2# B- 9131# 198# 122 935140# 210# + 29 76 47 123 Ag x -69548.078 30.739 8337.803 0.250 B- 7866.103 30.857 122 925337.063 33.000 + 27 75 48 123 Cd -77414.181 2.696 8395.395 0.022 B- 6016.274 19.893 122 916892.453 2.894 + 25 74 49 123 In -83430.454 19.827 8437.947 0.161 B- 4385.936 19.839 122 910433.718 21.285 + 23 73 50 123 Sn -87816.391 2.423 8467.244 0.020 B- 1408.435 2.976 122 905725.221 2.601 + 21 72 51 123 Sb -89224.825 2.122 8472.335 0.017 B- -52.689 1.564 122 904213.204 2.278 + 19 71 52 123 Te -89172.136 1.507 8465.546 0.012 B- -1228.425 3.445 122 904269.769 1.617 + 17 70 53 123 I -87943.711 3.741 8449.198 0.030 B- -2695.017 9.691 122 905588.537 4.015 + 15 69 54 123 Xe -85248.694 9.537 8420.927 0.078 B- -4205.048 15.414 122 908481.757 10.238 + 13 68 55 123 Cs x -81043.645 12.109 8380.379 0.098 B- -5388.693 17.125 122 912996.063 13.000 + 11 67 56 123 Ba x -75654.952 12.109 8330.208 0.098 B- -7004# 196# 122 918781.063 13.000 + 9 66 57 123 La x -68651# 196# 8267# 2# B- -8365# 357# 122 926300# 210# + 7 65 58 123 Ce x -60286# 298# 8193# 2# B- -9948# 499# 122 935280# 320# + 5 64 59 123 Pr x -50338# 401# 8105# 3# B- * 122 945960# 430# +0 36 80 44 124 Ru x -34419# 596# 8071# 5# B- 10749# 718# 123 963050# 640# + 34 79 45 124 Rh x -45168# 401# 8152# 3# B- 13386# 499# 123 951510# 430# + 32 78 46 124 Pd x -58554# 298# 8253# 2# B- 7646# 390# 123 937140# 320# + 30 77 47 124 Ag x -66200.133 251.503 8308.655 2.028 B- 10501.538 251.521 123 928931.229 270.000 + 28 76 48 124 Cd -76701.671 2.995 8387.035 0.024 B- 4168.546 30.539 123 917657.364 3.215 + 26 75 49 124 In -80870.217 30.572 8414.343 0.247 B- 7364.020 30.576 123 913182.245 32.820 + 24 74 50 124 Sn -88234.237 1.014 8467.421 0.008 B- -613.233 2.125 123 905276.645 1.089 + 22 73 51 124 Sb -87621.004 2.122 8456.167 0.017 B- 2904.299 1.561 123 905934.978 2.277 + 20 72 52 124 Te -90525.302 1.504 8473.279 0.012 B- -3159.587 1.859 123 902817.085 1.614 + 18 71 53 124 I - -87365.715 2.391 8441.489 0.019 B- 295.337 2.851 123 906209.041 2.567 + 16 70 54 124 Xe -87661.052 1.803 8437.562 0.015 B- -5929.718 8.497 123 905891.984 1.936 + 14 69 55 124 Cs x -81731.334 8.304 8383.432 0.067 B- -2641.560 15.004 123 912257.798 8.914 + 12 68 56 124 Ba x -79089.775 12.497 8355.820 0.101 B- -8831.165 58.030 123 915093.629 13.416 + 10 67 57 124 La x -70258.610 56.669 8278.292 0.457 B- -5343# 303# 123 924574.275 60.836 + 8 66 58 124 Ce x -64916# 298# 8229# 2# B- -11765# 499# 123 930310# 320# + 6 65 59 124 Pr x -53151# 401# 8128# 3# B- -8626# 643# 123 942940# 430# + 4 64 60 124 Nd x -44525# 503# 8052# 4# B- * 123 952200# 540# +0 35 80 45 125 Rh x -42206# 503# 8127# 4# B- 12016# 643# 124 954690# 540# + 33 79 46 125 Pd x -54222# 401# 8217# 3# B- 10008# 721# 124 941790# 430# + 31 78 47 125 Ag x -64230.237 599.416 8290.997 4.795 B- 9117.857 599.423 124 931046.000 643.500 + 29 77 48 125 Cd -73348.094 2.885 8357.681 0.023 B- 7128.746 27.119 124 921257.577 3.097 + 27 76 49 125 In -80476.840 27.023 8408.452 0.216 B- 5419.579 27.011 124 913604.553 29.010 + 25 75 50 125 Sn -85896.420 1.034 8445.550 0.008 B- 2359.836 2.611 124 907786.395 1.109 + 23 74 51 125 Sb + -88256.255 2.600 8458.170 0.021 B- 766.700 2.121 124 905253.007 2.791 + 21 73 52 125 Te -89022.955 1.504 8458.045 0.012 B- -185.770 0.060 124 904429.920 1.614 + 19 72 53 125 I - -88837.185 1.505 8450.300 0.012 B- -1644.173 2.199 124 904629.353 1.615 + 17 71 54 125 Xe -87193.012 1.846 8430.888 0.015 B- -3105.172 7.832 124 906394.445 1.982 + 15 70 55 125 Cs -84087.840 7.744 8399.787 0.062 B- -4418.875 13.446 124 909727.985 8.313 + 13 69 56 125 Ba -79668.965 10.992 8358.178 0.088 B- -5909.481 27.631 124 914471.843 11.800 + 11 68 57 125 La -73759.484 25.997 8304.643 0.208 B- -7102# 197# 124 920815.932 27.909 + 9 67 58 125 Ce x -66658# 196# 8242# 2# B- -8626# 357# 124 928440# 210# + 7 66 59 125 Pr x -58032# 298# 8166# 2# B- -10433# 499# 124 937700# 320# + 5 65 60 125 Nd x -47599# 401# 8077# 3# B- * 124 948900# 430# +0 36 81 45 126 Rh x -37763# 503# 8092# 4# B- 14252# 711# 125 959460# 540# + 34 80 46 126 Pd x -52015# 503# 8199# 4# B- 8765# 540# 125 944160# 540# + 32 79 47 126 Ag x -60780# 196# 8262# 2# B- 11477# 196# 125 934750# 210# + 30 78 48 126 Cd -72256.802 2.476 8346.747 0.020 B- 5516.127 26.908 125 922429.128 2.658 + 28 77 49 126 In -77772.929 26.921 8384.317 0.214 B- 8242.357 27.078 125 916507.322 28.901 + 26 76 50 126 Sn -86015.286 10.447 8443.523 0.083 B- 378.000 30.000 125 907658.786 11.215 + 24 75 51 126 Sb - -86393.286 31.767 8440.314 0.252 B- 3672.043 31.787 125 907252.987 34.103 + 22 74 52 126 Te -90065.330 1.505 8463.248 0.012 B- -2154.027 3.677 125 903310.886 1.616 + 20 73 53 126 I -87911.302 3.810 8439.944 0.030 B- 1234.264 5.230 125 905623.329 4.090 + 18 72 54 126 Xe -89145.566 3.584 8443.530 0.028 B- -4795.112 10.686 125 904298.292 3.847 + 16 71 55 126 Cs -84350.454 10.403 8399.265 0.083 B- -1680.553 16.261 125 909446.057 11.168 + 14 70 56 126 Ba x -82669.902 12.497 8379.718 0.099 B- -7696.434 91.366 125 911250.204 13.416 + 12 69 57 126 La x -74973.468 90.508 8312.426 0.718 B- -4152.910 94.723 125 919512.667 97.163 + 10 68 58 126 Ce x -70820.558 27.945 8273.257 0.222 B- -10497# 198# 125 923971.000 30.000 + 8 67 59 126 Pr x -60324# 196# 8184# 2# B- -7331# 357# 125 935240# 210# + 6 66 60 126 Nd x -52993# 298# 8119# 2# B- -13795# 585# 125 943110# 320# + 4 65 61 126 Pm x -39197# 503# 8004# 4# B- * 125 957920# 540# +0 35 81 46 127 Pd x -47441# 503# 8161# 4# B- 11141# 540# 126 949070# 540# + 33 80 47 127 Ag x -58582# 196# 8243# 2# B- 9909# 196# 126 937110# 210# + 31 79 48 127 Cd -68490.514 12.800 8314.922 0.101 B- 8407.785 23.997 126 926472.404 13.741 + 29 78 49 127 In -76898.298 21.187 8374.965 0.167 B- 6572.931 19.119 126 917446.276 22.745 + 27 77 50 127 Sn -83471.230 10.060 8420.560 0.079 B- 3228.247 10.877 126 910389.943 10.799 + 25 76 51 127 Sb -86699.477 5.126 8439.820 0.040 B- 1582.183 4.913 126 906924.278 5.503 + 23 75 52 127 Te -88281.659 1.516 8446.117 0.012 B- 702.236 3.576 126 905225.735 1.627 + 21 74 53 127 I -88983.895 3.647 8445.487 0.029 B- -662.349 2.044 126 904471.853 3.915 + 19 73 54 127 Xe -88321.546 4.111 8434.111 0.032 B- -2081.396 6.421 126 905182.914 4.412 + 17 72 55 127 Cs -86240.151 5.578 8411.562 0.044 B- -3422.207 12.653 126 907417.384 5.988 + 15 71 56 127 Ba -82817.944 11.357 8378.455 0.089 B- -4921.836 27.740 126 911091.275 12.192 + 13 70 57 127 La -77896.108 26.000 8333.540 0.205 B- -5916.772 38.857 126 916375.084 27.912 + 11 69 58 127 Ce x -71979.336 28.876 8280.791 0.227 B- -7436# 198# 126 922727.000 31.000 + 9 68 59 127 Pr x -64543# 196# 8216# 2# B- -9008# 357# 126 930710# 210# + 7 67 60 127 Nd x -55536# 298# 8139# 2# B- -10749# 499# 126 940380# 320# + 5 66 61 127 Pm x -44786# 401# 8048# 3# B- * 126 951920# 430# +0 36 82 46 128 Pd x -44870# 596# 8141# 5# B- 10032# 667# 127 951830# 640# + 34 81 47 128 Ag x -54902# 298# 8213# 2# B- 12340# 298# 127 941060# 320# + 32 80 48 128 Cd -67241.890 7.244 8303.264 0.057 B- 6904.060 153.554 127 927812.858 7.776 + 30 79 49 128 In -74145.950 153.479 8351.090 1.199 B- 9216.071 153.027 127 920401.044 164.766 + 28 78 50 128 Sn -83362.021 17.660 8416.979 0.138 B- 1268.282 13.796 127 910507.184 18.958 + 26 77 51 128 Sb IT -84630.302 19.119 8420.775 0.149 B- 4363.443 19.117 127 909145.628 20.525 + 24 76 52 128 Te -88993.745 0.866 8448.752 0.007 B- -1255.036 3.715 127 904461.279 0.929 + 22 75 53 128 I -87738.709 3.648 8432.835 0.028 B- 2121.568 3.748 127 905808.615 3.915 + 20 74 54 128 Xe -89860.278 1.061 8443.298 0.008 B- -3928.713 5.380 127 903531.018 1.138 + 18 73 55 128 Cs -85931.564 5.443 8406.493 0.043 B- -552.657 7.563 127 907748.666 5.843 + 16 72 56 128 Ba -85378.907 5.251 8396.063 0.041 B- -6753.477 54.700 127 908341.967 5.637 + 14 71 57 128 La x -78625.430 54.448 8337.190 0.425 B- -3091.513 61.200 127 915592.123 58.452 + 12 70 58 128 Ce x -75533.917 27.945 8306.925 0.218 B- -9203.161 40.859 127 918911.000 30.000 + 10 69 59 128 Pr x -66330.756 29.808 8228.913 0.233 B- -6017# 198# 127 928791.000 32.000 + 8 68 60 128 Nd x -60314# 196# 8176# 2# B- -12529# 357# 127 935250# 210# + 6 67 61 128 Pm x -47786# 298# 8072# 2# B- -9054# 585# 127 948700# 320# + 4 66 62 128 Sm x -38732# 503# 7995# 4# B- * 127 958420# 540# +0 35 82 47 129 Ag x -52210# 298# 8191# 2# B- 11299# 357# 128 943950# 320# + 33 81 48 129 Cd x -63509# 196# 8273# 2# B- 9329# 196# 128 931820# 210# + 31 80 49 129 In -72837.892 2.695 8338.782 0.021 B- 7769.210 19.360 128 921805.301 2.893 + 29 79 50 129 Sn -80607.102 19.379 8392.943 0.150 B- 4022.234 28.746 128 913464.711 20.804 + 27 78 51 129 Sb + -84629.337 21.231 8418.059 0.165 B- 2375.500 21.213 128 909146.665 22.792 + 25 77 52 129 Te -87004.837 0.869 8430.409 0.007 B- 1502.305 3.142 128 906596.460 0.933 + 23 76 53 129 I -88507.142 3.168 8435.990 0.025 B- 188.915 3.168 128 904983.669 3.401 + 21 75 54 129 Xe -88696.05676 0.00555 8431.390 0.000 B- -1196.805 4.555 128 904780.86113 0.00596 + 19 74 55 129 Cs -87499.252 4.555 8416.047 0.035 B- -2435.964 10.625 128 906065.683 4.889 + 17 73 56 129 Ba -85063.288 10.578 8391.099 0.082 B- -3738.675 21.639 128 908680.798 11.356 + 15 72 57 129 La -81324.613 21.351 8356.052 0.166 B- -5037.117 35.168 128 912694.431 22.920 + 13 71 58 129 Ce x -76287.496 27.945 8310.940 0.217 B- -6513.938 40.859 128 918102.000 30.000 + 11 70 59 129 Pr x -69773.558 29.808 8254.380 0.231 B- -7459# 204# 128 925095.000 32.000 + 9 69 60 129 Nd ep -62315# 202# 8190# 2# B- -9434# 360# 128 933102# 217# + 7 68 61 129 Pm x -52881# 298# 8111# 2# B- -10740# 585# 128 943230# 320# + 5 67 62 129 Sm x -42141# 503# 8022# 4# B- * 128 954760# 540# +0 36 83 47 130 Ag -nn -45920# 334# 8142# 3# B- 15614# 372# 129 950703# 358# + 34 82 48 130 Cd + -61533.861 164.464 8255.788 1.265 B- 8350.000 160.000 129 933940.679 176.559 + 32 81 49 130 In + -69883.861 38.059 8314.001 0.293 B- 10249.000 38.000 129 924976.585 40.858 + 30 80 50 130 Sn -80132.861 2.126 8386.821 0.016 B- 2153.406 14.113 129 913973.830 2.282 + 28 79 51 130 Sb -82286.266 14.241 8397.368 0.110 B- 5066.681 14.241 129 911662.054 15.288 + 26 78 52 130 Te -87352.947 0.011 8430.324 0.000 B- -416.792 3.168 129 906222.748 0.012 + 24 77 53 130 I -n -86936.155 3.168 8421.100 0.024 B- 2944.307 3.168 129 906670.193 3.401 + 22 76 54 130 Xe -89880.462 0.009 8437.731 0.000 B- -2980.719 8.357 129 903509.349 0.010 + 20 75 55 130 Cs -86899.743 8.357 8408.784 0.064 B- 361.992 8.745 129 906709.283 8.971 + 18 74 56 130 Ba -87261.734 2.578 8405.550 0.020 B- -5634.369 26.074 129 906320.669 2.767 + 16 73 57 130 La x -81627.365 25.946 8356.191 0.200 B- -2204.461 38.133 129 912369.413 27.854 + 14 72 58 130 Ce x -79422.905 27.945 8333.216 0.215 B- -8247.448 70.085 129 914736.000 30.000 + 12 71 59 130 Pr x -71175.457 64.273 8263.756 0.494 B- -4579.225 70.085 129 923590.000 69.000 + 10 70 60 130 Nd x -66596.232 27.945 8222.513 0.215 B- -11200# 198# 129 928506.000 30.000 + 8 69 61 130 Pm x -55396# 196# 8130# 2# B- -7890# 446# 129 940530# 210# + 6 68 62 130 Sm x -47506# 401# 8064# 3# B- -13682# 643# 129 949000# 430# + 4 67 63 130 Eu -p -33824# 503# 7952# 4# B- * 129 963689# 540# +0 35 83 48 131 Cd x -55331# 196# 8207# 1# B- 12695# 196# 130 940600# 210# + 33 82 49 131 In -68025.582 2.675 8297.963 0.020 B- 9246.546 6.512 130 926971.529 2.871 + 31 81 50 131 Sn -77272.128 6.072 8362.575 0.046 B- 4709.778 6.032 130 917044.954 6.518 + 29 80 51 131 Sb -81981.906 2.109 8392.556 0.016 B- 3229.104 2.110 130 911988.799 2.264 + 27 79 52 131 Te -n -85211.010 0.061 8411.233 0.001 B- 2231.774 0.646 130 908522.213 0.065 + 25 78 53 131 I + -87442.784 0.643 8422.297 0.005 B- 970.848 0.605 130 906126.305 0.690 + 23 77 54 131 Xe -88413.631 0.220 8423.736 0.002 B- -354.752 4.976 130 905084.057 0.236 + 21 76 55 131 Cs -88058.879 4.977 8415.056 0.038 B- -1374.958 5.287 130 905464.899 5.343 + 19 75 56 131 Ba -86683.922 2.593 8398.588 0.020 B- -2914.666 28.065 130 906940.977 2.784 + 17 74 57 131 La x -83769.256 27.945 8370.367 0.213 B- -4060.816 43.092 130 910070.000 30.000 + 15 73 58 131 Ce -79708.439 32.802 8333.396 0.250 B- -5407.784 55.446 130 914429.465 35.214 + 13 72 59 131 Pr -74300.656 46.995 8286.143 0.359 B- -6532.623 53.081 130 920234.960 50.451 + 11 71 60 131 Nd -67768.033 27.517 8230.304 0.210 B- -7845# 198# 130 927248.020 29.541 + 9 70 61 131 Pm x -59923# 196# 8164# 1# B- -9790# 446# 130 935670# 210# + 7 69 62 131 Sm x -50133# 401# 8084# 3# B- -10863# 566# 130 946180# 430# + 5 68 63 131 Eu -p -39270# 401# 7995# 3# B- * 130 957842# 430# +0 36 84 48 132 Cd x -50263# 196# 8168# 1# B- 12145# 205# 131 946040# 210# + 34 83 49 132 In + -62408.912 60.070 8253.695 0.455 B- 14135.000 60.000 131 933001.273 64.487 + 32 82 50 132 Sn -76543.912 2.897 8354.852 0.022 B- 3091.660 3.961 131 917826.725 3.110 + 30 81 51 132 Sb x -79635.573 2.701 8372.347 0.020 B- 5552.613 4.410 131 914507.691 2.900 + 28 80 52 132 Te -85188.185 3.486 8408.485 0.026 B- 515.305 3.483 131 908546.716 3.742 + 26 79 53 132 I -85703.490 4.065 8406.462 0.031 B- 3575.473 4.065 131 907993.514 4.364 + 24 78 54 132 Xe -89278.96289 0.00521 8427.622 0.000 B- -2122.715 2.000 131 904155.08563 0.00559 + 22 77 55 132 Cs +n -87156.248 2.000 8405.614 0.015 B- 1278.742 2.261 131 906433.914 2.147 + 20 76 56 132 Ba -88434.990 1.055 8409.375 0.008 B- -4711.358 36.354 131 905061.128 1.132 + 18 75 57 132 La -83723.632 36.359 8367.756 0.275 B- -1252.669 41.723 131 910118.979 39.032 + 16 74 58 132 Ce -82470.963 20.451 8352.339 0.155 B- -7257.479 60.389 131 911463.775 21.955 + 14 73 59 132 Pr x -75213.483 56.821 8291.431 0.430 B- -3787.676 61.762 131 919255.000 61.000 + 12 72 60 132 Nd x -71425.807 24.205 8256.810 0.183 B- -9798# 151# 131 923321.237 25.985 + 10 71 61 132 Pm x -61628# 149# 8177# 1# B- -6548# 333# 131 933840# 160# + 8 70 62 132 Sm x -55079# 298# 8121# 2# B- -12855# 499# 131 940870# 320# + 6 69 63 132 Eu x -42225# 401# 8018# 3# B- * 131 954670# 430# +0 37 85 48 133 Cd x -43920# 298# 8119# 2# B- 13544# 357# 132 952850# 320# + 35 84 49 133 In x -57464# 196# 8215# 1# B- 13410# 196# 132 938310# 210# + 33 83 50 133 Sn x -70874.208 2.387 8310.091 0.018 B- 8048.300 3.977 132 923913.404 2.562 + 31 82 51 133 Sb -78922.507 3.181 8364.722 0.024 B- 4009.553 4.246 132 915273.198 3.415 + 29 81 52 133 Te -82932.060 3.608 8388.987 0.027 B- 2954.511 5.897 132 910968.766 3.873 + 27 80 53 133 I + -85886.571 4.665 8405.319 0.035 B- 1757.000 4.000 132 907796.968 5.007 + 25 79 54 133 Xe + -87643.571 2.400 8412.647 0.018 B- 427.360 2.400 132 905910.751 2.576 + 23 78 55 133 Cs -88070.931 0.008 8409.978 0.000 B- -517.343 0.993 132 905451.961 0.008 + 21 77 56 133 Ba -87553.588 0.994 8400.206 0.007 B- -2059.206 27.962 132 906007.351 1.066 + 19 76 57 133 La x -85494.383 27.945 8378.841 0.210 B- -3076.168 32.379 132 908218.000 30.000 + 17 75 58 133 Ce x -82418.214 16.354 8349.829 0.123 B- -4480.634 20.583 132 911520.402 17.557 + 15 74 59 133 Pr x -77937.580 12.497 8310.258 0.094 B- -5605.208 48.222 132 916330.561 13.416 + 13 73 60 133 Nd x -72332.372 46.575 8262.231 0.350 B- -6924.726 68.552 132 922348.000 50.000 + 11 72 61 133 Pm x -65407.646 50.301 8204.283 0.378 B- -8177# 302# 132 929782.000 54.000 + 9 71 62 133 Sm x -57231# 298# 8137# 2# B- -9995# 422# 132 938560# 320# + 7 70 63 133 Eu x -47236# 298# 8056# 2# B- -11215# 585# 132 949290# 320# + 5 69 64 133 Gd x -36021# 503# 7966# 4# B- * 132 961330# 540# +0 36 85 49 134 In x -51661# 298# 8171# 2# B- 14772# 298# 133 944540# 320# + 34 84 50 134 Sn x -66432.229 3.277 8275.160 0.024 B- 7588.311 3.694 133 928682.064 3.518 + 32 83 51 134 Sb x -74020.541 1.705 8325.950 0.013 B- 8515.455 3.254 133 920535.676 1.830 + 30 82 52 134 Te -82535.996 2.772 8383.660 0.021 B- 1523.107 5.414 133 911393.959 2.975 + 28 81 53 134 I -84059.102 5.511 8389.188 0.041 B- 4065.201 5.515 133 909758.836 5.916 + 26 80 54 134 Xe -88124.303 0.842 8413.687 0.006 B- -1233.149 0.842 133 905394.664 0.904 + 24 79 55 134 Cs -86891.154 0.016 8398.646 0.000 B- 2058.901 0.276 133 906718.503 0.017 + 22 78 56 134 Ba -88950.055 0.276 8408.173 0.002 B- -3731.405 19.932 133 904508.182 0.296 + 20 77 57 134 La x -85218.650 19.930 8374.488 0.149 B- -385.760 28.510 133 908514.011 21.395 + 18 76 58 134 Ce x -84832.889 20.387 8365.771 0.152 B- -6304.898 28.781 133 908928.142 21.886 + 16 75 59 134 Pr x -78527.991 20.316 8312.881 0.152 B- -2881.559 23.503 133 915696.729 21.810 + 14 74 60 134 Nd x -75646.432 11.817 8285.538 0.088 B- -8907.681 58.949 133 918790.210 12.686 + 12 73 61 134 Pm x -66738.751 57.753 8213.225 0.431 B- -5363# 204# 133 928353.000 62.000 + 10 72 62 134 Sm x -61376# 196# 8167# 1# B- -11448# 357# 133 934110# 210# + 8 71 63 134 Eu x -49928# 298# 8076# 2# B- -8626# 499# 133 946400# 320# + 6 70 64 134 Gd x -41302# 401# 8006# 3# B- * 133 955660# 430# +0 37 86 49 135 In x -46528# 401# 8132# 3# B- 14104# 401# 134 950050# 430# + 35 85 50 135 Sn x -60632.243 3.074 8230.687 0.023 B- 9057.382 4.218 134 934908.606 3.300 + 33 84 51 135 Sb x -69689.625 2.888 8291.983 0.021 B- 8038.234 3.954 134 925185.106 3.100 + 31 83 52 135 Te x -77727.859 2.701 8345.731 0.020 B- 6061.100 6.039 134 916555.706 2.900 + 29 82 53 135 I -83788.959 5.402 8384.833 0.040 B- 2627.807 4.990 134 910048.847 5.798 + 27 81 54 135 Xe -86416.766 4.150 8398.503 0.031 B- 1165.048 4.071 134 907227.780 4.455 + 25 80 55 135 Cs -87581.815 0.996 8401.338 0.007 B- 268.898 1.033 134 905977.049 1.069 + 23 79 56 135 Ba -87850.713 0.274 8397.534 0.002 B- -1207.205 9.430 134 905688.375 0.294 + 21 78 57 135 La -86643.508 9.433 8382.797 0.070 B- -2027.152 4.610 134 906984.363 10.126 + 19 77 58 135 Ce -84616.356 10.267 8361.986 0.076 B- -3680.496 15.654 134 909160.599 11.021 + 17 76 59 135 Pr x -80935.860 11.817 8328.928 0.088 B- -4722.252 22.484 134 913111.775 12.686 + 15 75 60 135 Nd x -76213.609 19.128 8288.153 0.142 B- -6186.684 67.952 134 918181.321 20.534 + 13 74 61 135 Pm x -70026.925 65.205 8236.530 0.483 B- -7169.709 167.814 134 924823.000 70.000 + 11 73 62 135 Sm x -62857.215 154.628 8177.626 1.145 B- -8709# 249# 134 932520.000 166.000 + 9 72 63 135 Eu x -54148# 196# 8107# 1# B- -9855# 446# 134 941870# 210# + 7 71 64 135 Gd x -44293# 401# 8029# 3# B- -11467# 566# 134 952450# 430# + 5 70 65 135 Tb -p -32825# 401# 7938# 3# B- * 134 964760# 430# +0 36 86 50 136 Sn x -55899# 401# 8195# 3# B- 8611# 401# 135 939990# 430# + 34 85 51 136 Sb x -64509.798 6.334 8252.274 0.047 B- 9916.006 6.790 135 930745.879 6.800 + 32 84 52 136 Te -74425.804 2.445 8319.433 0.018 B- 5119.674 14.195 135 920100.608 2.624 + 30 83 53 136 I -79545.478 14.195 8351.325 0.104 B- 6883.674 14.195 135 914604.412 15.238 + 28 82 54 136 Xe -86429.152 0.010 8396.188 0.000 B- -90.238 1.877 135 907214.484 0.011 + 26 81 55 136 Cs + -86338.914 1.877 8389.772 0.014 B- 2548.224 1.857 135 907311.358 2.015 + 24 80 56 136 Ba -88887.138 0.274 8402.756 0.002 B- -2849.660 53.172 135 904575.727 0.294 + 22 79 57 136 La x -86037.478 53.171 8376.050 0.391 B- 471.110 53.172 135 907634.962 57.081 + 20 78 58 136 Ce -86508.588 0.385 8373.762 0.003 B- -5168.163 11.457 135 907129.205 0.412 + 18 77 59 136 Pr -81340.426 11.455 8330.008 0.084 B- -2141.140 16.458 135 912677.456 12.297 + 16 76 60 136 Nd x -79199.286 11.817 8308.512 0.087 B- -8018.786 72.340 135 914976.064 12.686 + 14 75 61 136 Pm x -71180.500 71.368 8243.798 0.525 B- -4369.611 72.454 135 923584.586 76.616 + 12 74 62 136 Sm x -66810.889 12.497 8205.916 0.092 B- -10567# 196# 135 928275.556 13.416 + 10 73 63 136 Eu x -56244# 196# 8122# 1# B- -7154# 357# 135 939620# 210# + 8 72 64 136 Gd x -49090# 298# 8064# 2# B- -13032# 585# 135 947300# 320# + 6 71 65 136 Tb x -36058# 503# 7963# 4# B- * 135 961290# 540# +0 37 87 50 137 Sn x -49788# 503# 8149# 4# B- 10242# 586# 136 946550# 540# + 35 86 51 137 Sb x -60030.131 300.407 8218.255 2.193 B- 9274.091 300.417 136 935555.000 322.500 + 33 85 52 137 Te x -69304.222 2.515 8280.238 0.018 B- 7052.029 8.753 136 925598.852 2.700 + 31 84 53 137 I p-2n -76356.251 8.383 8326.002 0.061 B- 6027.146 8.384 136 918028.188 9.000 + 29 83 54 137 Xe -n -82383.396 0.104 8364.286 0.001 B- 4162.428 0.347 136 911557.781 0.111 + 27 82 55 137 Cs + -86545.824 0.331 8388.958 0.002 B- 1175.629 0.172 136 907089.231 0.355 + 25 81 56 137 Ba -87721.453 0.283 8391.828 0.002 B- -580.548 1.632 136 905827.141 0.303 + 23 80 57 137 La + -87140.904 1.653 8381.880 0.012 B- -1222.100 1.600 136 906450.385 1.774 + 21 79 58 137 Ce -85918.804 0.415 8367.249 0.003 B- -2716.969 8.133 136 907762.364 0.445 + 19 78 59 137 Pr -83201.836 8.137 8341.707 0.059 B- -3617.269 14.282 136 910679.150 8.734 + 17 77 60 137 Nd -79584.566 11.737 8309.593 0.086 B- -5511.719 17.545 136 914562.448 12.600 + 15 76 61 137 Pm x -74072.847 13.041 8263.651 0.095 B- -6046.323 44.355 136 920479.523 14.000 + 13 75 62 137 Sm -68026.525 42.395 8213.806 0.309 B- -7908# 200# 136 926970.517 45.512 + 11 74 63 137 Eu x -60119# 196# 8150# 1# B- -8905# 357# 136 935460# 210# + 9 73 64 137 Gd x -51214# 298# 8080# 2# B- -10246# 585# 136 945020# 320# + 7 72 65 137 Tb x -40967# 503# 7999# 4# B- * 136 956020# 540# +0 38 88 50 138 Sn x -44861# 596# 8113# 4# B- 9678# 667# 137 951840# 640# + 36 87 51 138 Sb x -54539# 298# 8177# 2# B- 11157# 298# 137 941450# 320# + 34 86 52 138 Te x -65696.198 4.378 8252.579 0.032 B- 6283.694 7.396 137 929472.226 4.700 + 32 85 53 138 I x -71979.892 5.962 8292.444 0.043 B- 7992.339 6.588 137 922726.402 6.400 + 30 84 54 138 Xe -79972.231 2.804 8344.690 0.020 B- 2914.817 9.578 137 914146.273 3.010 + 28 83 55 138 Cs -82887.048 9.159 8360.143 0.066 B- 5374.808 9.159 137 911017.089 9.832 + 26 82 56 138 Ba -88261.856 0.285 8393.422 0.002 B- -1739.960 3.431 137 905246.995 0.306 + 24 81 57 138 La +n -86521.895 3.432 8375.144 0.025 B- 1046.841 10.166 137 907114.919 3.684 + 22 80 58 138 Ce -87568.736 9.886 8377.061 0.072 B- -4437.000 10.000 137 905991.089 10.612 + 20 79 59 138 Pr - -83131.736 14.062 8339.240 0.102 B- -1113.427 18.229 137 910754.405 15.095 + 18 78 60 138 Nd -82018.309 11.601 8325.502 0.084 B- -7077.827 28.756 137 911949.718 12.454 + 16 77 61 138 Pm -74940.483 27.739 8268.544 0.201 B- -3442.721 30.151 137 919548.077 29.778 + 14 76 62 138 Sm x -71497.762 11.817 8237.928 0.086 B- -9748.093 30.341 137 923243.991 12.686 + 12 75 63 138 Eu x -61749.669 27.945 8161.620 0.202 B- -6093# 198# 137 933709.000 30.000 + 10 74 64 138 Gd x -55657# 196# 8112# 1# B- -11988# 357# 137 940250# 210# + 8 73 65 138 Tb x -43668# 298# 8019# 2# B- -8737# 499# 137 953120# 320# + 6 72 66 138 Dy x -34931# 401# 7950# 3# B- * 137 962500# 430# +0 37 88 51 139 Sb x -49788# 401# 8142# 3# B- 10417# 401# 138 946550# 430# + 35 87 52 139 Te x -60205.071 3.540 8211.771 0.025 B- 8253.957 29.092 138 935367.194 3.800 + 33 86 53 139 I x -68459.027 28.876 8265.523 0.208 B- 7185.548 28.956 138 926506.206 31.000 + 31 85 54 139 Xe x -75644.575 2.142 8311.590 0.015 B- 5056.565 3.799 138 918792.203 2.300 + 29 84 55 139 Cs + -80701.140 3.137 8342.339 0.023 B- 4212.829 3.123 138 913363.758 3.367 + 27 83 56 139 Ba -84913.969 0.288 8367.019 0.002 B- 2314.616 2.271 138 908841.099 0.309 + 25 82 57 139 La -87228.585 2.271 8378.043 0.016 B- -278.382 6.953 138 906356.256 2.438 + 23 81 58 139 Ce -86950.204 7.305 8370.411 0.053 B- -2129.070 2.996 138 906655.111 7.842 + 21 80 59 139 Pr -84821.133 7.879 8349.466 0.057 B- -2806.486 28.043 138 908940.762 8.458 + 19 79 60 139 Nd -82014.648 27.602 8323.647 0.199 B- -4514.039 25.928 138 911953.649 29.632 + 17 78 61 139 Pm -77500.608 13.593 8285.544 0.098 B- -5120.390 17.414 138 916799.670 14.593 + 15 77 62 139 Sm x -72380.218 10.884 8243.078 0.078 B- -6982.177 17.071 138 922296.635 11.684 + 13 76 63 139 Eu x -65398.041 13.151 8187.218 0.095 B- -7767# 196# 138 929792.310 14.117 + 11 75 64 139 Gd x -57632# 196# 8126# 1# B- -9501# 357# 138 938130# 210# + 9 74 65 139 Tb x -48130# 298# 8052# 2# B- -10489# 585# 138 948330# 320# + 7 73 66 139 Dy x -37642# 503# 7971# 4# B- * 138 959590# 540# +0 38 89 51 140 Sb x -43939# 596# 8100# 4# B- 12418# 597# 139 952830# 640# + 36 88 52 140 Te x -56356.721 27.945 8183.279 0.200 B- 7239.169 183.778 139 939498.567 30.000 + 34 87 53 140 I x -63595.890 181.641 8229.399 1.297 B- 9390.561 181.656 139 931727.000 195.000 + 32 86 54 140 Xe x -72986.451 2.329 8290.887 0.017 B- 4063.879 8.526 139 921645.817 2.500 + 30 85 55 140 Cs -77050.330 8.202 8314.326 0.059 B- 6219.896 9.886 139 917283.063 8.804 + 28 84 56 140 Ba -83270.226 7.943 8353.166 0.057 B- 1048.019 8.020 139 910605.730 8.527 + 26 83 57 140 La -84318.245 2.272 8355.064 0.016 B- 3760.933 1.797 139 909480.635 2.438 + 24 82 58 140 Ce -88079.178 2.180 8376.339 0.016 B- -3388.000 6.000 139 905443.107 2.340 + 22 81 59 140 Pr - -84691.178 6.384 8346.551 0.046 B- -437.406 26.786 139 909080.275 6.853 + 20 80 60 140 Nd -84253.772 26.014 8337.838 0.186 B- -6045.200 24.000 139 909549.849 27.927 + 18 79 61 140 Pm - -78208.572 35.394 8289.070 0.253 B- -2752.638 37.536 139 916039.639 37.997 + 16 78 62 140 Sm x -75455.934 12.497 8263.820 0.089 B- -8470.000 50.000 139 918994.717 13.416 + 14 77 63 140 Eu - -66985.934 51.538 8197.732 0.368 B- -5203.663 58.627 139 928087.637 55.328 + 12 76 64 140 Gd x -61782.271 27.945 8154.975 0.200 B- -11300.000 800.000 139 933674.000 30.000 + 10 75 65 140 Tb - -50482.271 800.488 8068.672 5.718 B- -7652# 945# 139 945805.049 859.359 + 8 74 66 140 Dy x -42830# 503# 8008# 4# B- -13571# 711# 139 954020# 540# + 6 73 67 140 Ho -p -29259# 503# 7906# 4# B- * 139 968589# 540# +0 37 89 52 141 Te x -50487# 401# 8141# 3# B- 9417# 446# 140 945800# 430# + 35 88 53 141 I x -59904# 196# 8202# 1# B- 8293# 196# 140 935690# 210# + 33 87 54 141 Xe x -68197.298 2.888 8255.364 0.020 B- 6279.847 9.562 140 926787.184 3.100 + 31 86 55 141 Cs -74477.145 9.115 8294.353 0.065 B- 5255.636 9.558 140 920045.491 9.785 + 29 85 56 141 Ba -79732.781 5.318 8326.079 0.038 B- 3201.827 6.731 140 914403.333 5.709 + 27 84 57 141 La -82934.609 4.455 8343.238 0.032 B- 2501.393 3.928 140 910966.030 4.782 + 25 83 58 141 Ce -85436.002 2.180 8355.430 0.015 B- 580.420 1.053 140 908280.674 2.340 + 23 82 59 141 Pr -86016.422 2.135 8353.998 0.015 B- -1823.014 2.809 140 907657.568 2.292 + 21 81 60 141 Nd - -84193.408 3.528 8335.520 0.025 B- -3670.488 14.411 140 909614.653 3.787 + 19 80 61 141 Pm x -80522.920 13.972 8303.940 0.099 B- -4589.054 16.386 140 913555.084 15.000 + 17 79 62 141 Sm -75933.866 8.560 8265.845 0.061 B- -6008.246 14.292 140 918481.636 9.189 + 15 78 63 141 Eu -69925.620 12.639 8217.684 0.090 B- -6701.396 23.456 140 924931.754 13.568 + 13 77 64 141 Gd x -63224.224 19.760 8164.608 0.140 B- -8683.387 107.098 140 932126.000 21.213 + 11 76 65 141 Tb x -54540.837 105.259 8097.475 0.747 B- -9158# 316# 140 941448.000 113.000 + 9 75 66 141 Dy x -45382# 298# 8027# 2# B- -11018# 585# 140 951280# 320# + 7 74 67 141 Ho -p -34364# 503# 7943# 4# B- * 140 963108# 540# +0 38 90 52 142 Te x -46370# 503# 8111# 4# B- 8400# 627# 141 950220# 540# + 36 89 53 142 I x -54769.984 374.461 8165.019 2.637 B- 10459.654 374.470 141 941202.000 402.000 + 34 88 54 142 Xe x -65229.639 2.701 8233.169 0.019 B- 5288.192 7.838 141 929973.098 2.900 + 32 87 55 142 Cs -70517.830 7.358 8264.900 0.052 B- 7324.904 8.542 141 924295.991 7.898 + 30 86 56 142 Ba -77842.734 5.929 8310.974 0.042 B- 2181.086 8.446 141 916432.382 6.364 + 28 85 57 142 La -80023.821 6.384 8320.825 0.045 B- 4508.911 5.845 141 914090.890 6.853 + 26 84 58 142 Ce -84532.731 2.711 8347.068 0.019 B- -744.480 2.387 141 909250.375 2.910 + 24 83 59 142 Pr -83788.251 2.135 8336.316 0.015 B- 2161.635 1.487 141 910049.607 2.291 + 22 82 60 142 Nd -85949.886 1.820 8346.029 0.013 B- -4807.827 23.653 141 907728.996 1.953 + 20 81 61 142 Pm -81142.059 23.598 8306.662 0.166 B- -2155.453 23.778 141 912890.411 25.333 + 18 80 62 142 Sm -78986.606 3.323 8285.973 0.023 B- -7673.000 30.000 141 915204.385 3.567 + 16 79 63 142 Eu - -71313.606 30.183 8226.428 0.213 B- -4354.091 41.133 141 923441.690 32.403 + 14 78 64 142 Gd x -66959.515 27.945 8190.256 0.197 B- -10400.000 700.000 141 928116.000 30.000 + 12 77 65 142 Tb - -56559.515 700.558 8111.507 4.934 B- -6440# 200# 141 939280.859 752.079 + 10 76 66 142 Dy - -50120# 729# 8061# 5# B- -12869# 885# 141 946194# 782# + 8 75 67 142 Ho x -37250# 503# 7965# 4# B- -9399# 711# 141 960010# 540# + 6 74 68 142 Er x -27852# 503# 7893# 4# B- * 141 970100# 540# +0 39 91 52 143 Te x -40278# 503# 8068# 4# B- 10349# 585# 142 956760# 540# + 37 90 53 143 I x -50627# 298# 8135# 2# B- 9576# 298# 142 945650# 320# + 35 89 54 143 Xe x -60202.873 4.657 8196.885 0.033 B- 7470.793 22.544 142 935369.554 5.000 + 33 88 55 143 Cs -67673.666 22.057 8243.657 0.154 B- 6263.397 21.537 142 927349.327 23.679 + 31 87 56 143 Ba -73937.063 6.921 8281.986 0.048 B- 4234.368 10.083 142 920625.293 7.430 + 29 86 57 143 La -78171.430 7.333 8306.126 0.051 B- 3434.784 7.641 142 916079.512 7.871 + 27 85 58 143 Ce -81606.215 2.711 8324.675 0.019 B- 1461.816 1.829 142 912392.120 2.909 + 25 84 59 143 Pr -83068.031 2.232 8329.426 0.016 B- 934.108 1.355 142 910822.796 2.396 + 23 83 60 143 Nd -84002.139 1.819 8330.487 0.013 B- -1041.664 2.687 142 909819.989 1.953 + 21 82 61 143 Pm -82960.475 3.202 8317.732 0.022 B- -3443.772 3.563 142 910938.262 3.437 + 19 81 62 143 Sm -79516.703 3.039 8288.179 0.021 B- -5275.403 11.398 142 914635.303 3.262 + 17 80 63 143 Eu x -74241.300 10.986 8245.817 0.077 B- -6010.000 200.000 142 920298.681 11.793 + 15 79 64 143 Gd - -68231.300 200.301 8198.318 1.401 B- -7812.117 206.750 142 926750.682 215.032 + 13 78 65 143 Tb x -60419.183 51.232 8138.217 0.358 B- -8250.242 52.866 142 935137.335 55.000 + 11 77 66 143 Dy x -52168.941 13.041 8075.052 0.091 B- -10121# 401# 142 943994.335 14.000 + 9 76 67 143 Ho x -42048# 401# 7999# 3# B- -10954# 566# 142 954860# 430# + 7 75 68 143 Er x -31093# 401# 7917# 3# B- * 142 966620# 430# +0 38 91 53 144 I x -45280# 401# 8098# 3# B- 11592# 401# 143 951390# 430# + 36 90 54 144 Xe x -56872.292 5.310 8172.884 0.037 B- 6398.215 25.800 143 938945.079 5.700 + 34 89 55 144 Cs -63270.507 25.247 8211.883 0.175 B- 8496.573 25.039 143 932076.313 27.104 + 32 88 56 144 Ba -71767.080 7.175 8265.454 0.050 B- 3082.572 14.793 143 922954.866 7.702 + 30 87 57 144 La x -74849.652 12.937 8281.428 0.090 B- 5582.117 13.309 143 919645.589 13.888 + 28 86 58 144 Ce + -80431.769 3.124 8314.759 0.022 B- 318.646 0.832 143 913652.939 3.354 + 26 85 59 144 Pr + -80750.415 3.012 8311.539 0.021 B- 2997.440 2.400 143 913310.859 3.233 + 24 84 60 144 Nd -83747.855 1.819 8326.922 0.013 B- -2331.923 2.650 143 910092.974 1.952 + 22 83 61 144 Pm -81415.932 3.174 8305.295 0.022 B- 549.516 2.670 143 912596.396 3.407 + 20 82 62 144 Sm -81965.449 1.947 8303.678 0.014 B- -6346.349 10.838 143 912006.466 2.090 + 18 81 63 144 Eu -75619.099 10.799 8254.173 0.075 B- -3859.596 29.959 143 918819.553 11.593 + 16 80 64 144 Gd x -71759.503 27.945 8221.937 0.194 B- -9391.323 39.520 143 922963.000 30.000 + 14 79 65 144 Tb x -62368.181 27.945 8151.287 0.194 B- -5798.099 28.851 143 933045.000 30.000 + 12 78 66 144 Dy x -56570.082 7.173 8105.589 0.050 B- -11960.569 11.104 143 939269.515 7.700 + 10 77 67 144 Ho x -44609.513 8.477 8017.097 0.059 B- -8002# 196# 143 952109.715 9.100 + 8 76 68 144 Er x -36608# 196# 7956# 1# B- -14515# 446# 143 960700# 210# + 6 75 69 144 Tm -p -22092# 401# 7850# 3# B- * 143 976283# 430# +0 39 92 53 145 I x -40939# 503# 8068# 3# B- 10554# 503# 144 956050# 540# + 37 91 54 145 Xe x -51493.329 11.178 8135.087 0.077 B- 8562.479 15.514 144 944719.634 12.000 + 35 90 55 145 Cs -60055.807 10.759 8188.743 0.074 B- 7460.368 13.697 144 935527.435 11.549 + 33 89 56 145 Ba x -67516.176 8.477 8234.798 0.058 B- 5319.139 14.912 144 927518.400 9.100 + 31 88 57 145 La -72835.315 12.269 8266.087 0.085 B- 4231.629 35.308 144 921808.068 13.170 + 29 87 58 145 Ce -77066.944 33.912 8289.875 0.234 B- 2558.881 33.637 144 917265.228 36.405 + 27 86 59 145 Pr -79625.824 7.264 8302.127 0.050 B- 1806.013 7.037 144 914518.156 7.798 + 25 85 60 145 Nd -81431.837 1.819 8309.186 0.013 B- -164.515 2.537 144 912579.322 1.953 + 23 84 61 145 Pm -81267.322 3.080 8302.656 0.021 B- -616.093 2.540 144 912755.935 3.306 + 21 83 62 145 Sm -80651.229 1.966 8293.012 0.014 B- -2659.686 2.724 144 913417.339 2.110 + 19 82 63 145 Eu -77991.543 3.317 8269.274 0.023 B- -5067.506 19.944 144 916272.629 3.560 + 17 81 64 145 Gd -72924.037 19.666 8228.930 0.136 B- -6622.108 96.886 144 921712.821 21.112 + 15 80 65 145 Tb -66301.929 97.477 8177.865 0.672 B- -8059.331 97.695 144 928821.947 104.645 + 13 79 66 145 Dy x -58242.598 6.520 8116.888 0.045 B- -9122.493 9.902 144 937473.995 7.000 + 11 78 67 145 Ho x -49120.105 7.452 8048.578 0.051 B- -10044# 196# 144 947267.395 8.000 + 9 77 68 145 Er x -39076# 196# 7974# 1# B- -11494# 277# 144 958050# 210# + 7 76 69 145 Tm -p -27583# 196# 7889# 1# B- * 144 970389# 210# +0 38 92 54 146 Xe x -47954.942 24.219 8110.415 0.166 B- 7614.011 46.389 145 948518.249 26.000 + 36 91 55 146 Cs -55568.953 39.565 8157.207 0.271 B- 9371.350 35.630 145 940344.271 42.474 + 34 90 56 146 Ba -64940.303 20.429 8216.036 0.140 B- 4106.527 33.439 145 930283.712 21.931 + 32 89 57 146 La -69046.831 33.547 8238.804 0.230 B- 6588.235 34.401 145 925875.174 36.014 + 30 88 58 146 Ce -75635.066 16.304 8278.570 0.112 B- 1045.660 32.519 145 918802.412 17.503 + 28 87 59 146 Pr -76680.726 34.817 8280.374 0.238 B- 4245.025 34.841 145 917679.850 37.377 + 26 86 60 146 Nd -80925.751 1.819 8304.091 0.012 B- -1471.545 4.121 145 913122.628 1.953 + 24 85 61 146 Pm + -79454.206 4.445 8288.653 0.030 B- 1542.000 3.000 145 914702.396 4.771 + 22 84 62 146 Sm -80996.206 3.280 8293.856 0.022 B- -3878.786 5.872 145 913046.991 3.520 + 20 83 63 146 Eu -77117.420 6.093 8261.931 0.042 B- -1031.888 7.081 145 917211.039 6.541 + 18 82 64 146 Gd -76085.532 4.255 8249.504 0.029 B- -8322.123 44.749 145 918318.817 4.568 + 16 81 65 146 Tb -67763.409 44.871 8187.145 0.307 B- -5208.492 45.168 145 927252.984 48.170 + 14 80 66 146 Dy -62554.917 6.695 8146.112 0.046 B- -11316.698 9.392 145 932844.530 7.187 + 12 79 67 146 Ho -51238.218 6.587 8063.242 0.045 B- -6916.206 9.399 145 944993.506 7.071 + 10 78 68 146 Er -44322.012 6.705 8010.512 0.046 B- -13431# 196# 145 952418.360 7.197 + 8 77 69 146 Tm -p -30892# 196# 7913# 1# B- * 145 966837# 210# +0 39 93 54 147 Xe x -42607# 196# 8074# 1# B- 9412# 203# 146 954260# 210# + 37 92 55 147 Cs -52018.205 53.016 8132.468 0.361 B- 8245.824 56.575 146 944156.156 56.915 + 35 91 56 147 Ba x -60264.029 19.748 8183.240 0.134 B- 6414.361 22.466 146 935303.900 21.200 + 33 90 57 147 La x -66678.390 10.712 8221.553 0.073 B- 5335.492 13.725 146 928417.800 11.500 + 31 89 58 147 Ce -72013.882 8.581 8252.527 0.058 B- 3430.129 15.540 146 922689.913 9.211 + 29 88 59 147 Pr -75444.011 15.867 8270.539 0.108 B- 2702.620 15.872 146 919007.518 17.033 + 27 87 60 147 Nd -78146.631 1.820 8283.602 0.012 B- 895.303 0.915 146 916106.136 1.953 + 25 86 61 147 Pm -79041.934 1.795 8284.370 0.012 B- 224.074 0.301 146 915144.988 1.926 + 23 85 62 147 Sm -79266.008 1.788 8280.572 0.012 B- -1721.609 2.302 146 914904.435 1.919 + 21 84 63 147 Eu -77544.399 2.842 8263.539 0.019 B- -2187.824 2.582 146 916752.659 3.051 + 19 83 64 147 Gd -75356.575 2.289 8243.333 0.016 B- -4614.066 8.170 146 919101.384 2.456 + 17 82 65 147 Tb -70742.509 8.119 8206.623 0.055 B- -6546.472 12.009 146 924054.788 8.716 + 15 81 66 147 Dy x -64196.037 8.849 8156.767 0.060 B- -8438.945 10.164 146 931082.715 9.500 + 13 80 67 147 Ho -55757.092 5.001 8094.037 0.034 B- -9149.286 38.517 146 940142.296 5.368 + 11 79 68 147 Er x -46607.806 38.191 8026.475 0.260 B- -10633.406 38.799 146 949964.459 41.000 + 9 78 69 147 Tm -35974.400 6.839 7948.817 0.047 B- * 146 961379.891 7.341 +0 40 94 54 148 Xe x -39002# 196# 8049# 1# B- 8295# 608# 147 958130# 210# + 38 93 55 148 Cs -47296.480 575.562 8100.151 3.889 B- 10297.255 579.008 147 949225.137 617.890 + 36 92 56 148 Ba + -57593.735 63.079 8164.441 0.426 B- 5115.000 60.000 147 938170.578 67.718 + 34 91 57 148 La x -62708.735 19.468 8193.716 0.132 B- 7689.645 22.458 147 932679.400 20.900 + 32 90 58 148 Ce -70398.380 11.196 8240.387 0.076 B- 2136.980 12.569 147 924424.225 12.019 + 30 89 59 148 Pr -72535.360 15.048 8249.540 0.102 B- 4872.449 15.109 147 922130.083 16.154 + 28 88 60 148 Nd -77407.809 2.417 8277.175 0.016 B- -542.735 5.915 147 916899.294 2.594 + 26 87 61 148 Pm +p -76865.073 5.829 8268.222 0.039 B- 2470.992 5.645 147 917481.945 6.257 + 24 86 62 148 Sm -79336.065 1.789 8279.632 0.012 B- -3036.687 10.056 147 914829.226 1.920 + 22 85 63 148 Eu -76299.378 10.032 8253.828 0.068 B- -30.057 10.037 147 918089.243 10.769 + 20 84 64 148 Gd -76269.321 1.947 8248.338 0.013 B- -5738.041 12.921 147 918121.511 2.090 + 18 83 65 148 Tb -70531.280 12.808 8204.282 0.087 B- -2678.064 9.600 147 924281.552 13.749 + 16 82 66 148 Dy -67853.216 9.300 8180.901 0.063 B- -9862.059 84.349 147 927156.571 9.984 + 14 81 67 148 Ho x -57991.157 83.834 8108.979 0.566 B- -6512.169 84.458 147 937743.928 90.000 + 12 80 68 148 Er x -51478.988 10.246 8059.692 0.069 B- -12713.962 14.491 147 944735.029 11.000 + 10 79 69 148 Tm x -38765.027 10.246 7968.500 0.069 B- -8566# 596# 147 958384.029 11.000 + 8 78 70 148 Yb x -30199# 596# 7905# 4# B- * 147 967580# 640# +0 39 94 55 149 Cs x -43762# 196# 8076# 1# B- 9259# 277# 148 953020# 210# + 37 93 56 149 Ba x -53021# 196# 8133# 1# B- 7199# 280# 148 943080# 210# + 35 92 57 149 La + -60219.913 200.262 8176.191 1.344 B- 6450.000 200.000 148 935351.260 214.990 + 33 91 58 149 Ce x -66669.913 10.246 8214.229 0.069 B- 4369.452 14.230 148 928426.900 11.000 + 31 90 59 149 Pr x -71039.365 9.874 8238.303 0.066 B- 3335.913 10.166 148 923736.100 10.600 + 29 89 60 149 Nd -n -74375.279 2.418 8255.441 0.016 B- 1688.400 2.528 148 920154.849 2.595 + 27 88 61 149 Pm -76063.679 2.513 8261.522 0.017 B- 1071.418 1.877 148 918342.277 2.698 + 25 87 62 149 Sm -77135.097 1.714 8263.462 0.012 B- -694.616 3.792 148 917192.062 1.839 + 23 86 63 149 Eu -76440.481 4.092 8253.550 0.027 B- -1313.737 4.147 148 917937.763 4.393 + 21 85 64 149 Gd -75126.744 3.531 8239.482 0.024 B- -3637.887 4.347 148 919348.117 3.791 + 19 84 65 149 Tb -71488.858 3.846 8209.816 0.026 B- -3789.450 9.316 148 923253.549 4.129 + 17 83 66 149 Dy -67699.408 9.456 8179.133 0.063 B- -6036.970 14.270 148 927321.692 10.151 + 15 82 67 149 Ho -61662.438 14.485 8133.366 0.097 B- -7920.823 31.476 148 933802.646 15.549 + 13 81 68 149 Er x -53741.615 27.945 8074.955 0.188 B- -9859# 299# 148 942306.000 30.000 + 11 80 69 149 Tm x -43883# 298# 8004# 2# B- -10684# 585# 148 952890# 320# + 9 79 70 149 Yb x -33198# 503# 7927# 3# B- * 148 964360# 540# +0 40 95 55 150 Cs x -38815# 298# 8043# 2# B- 11439# 422# 149 958330# 320# + 38 94 56 150 Ba x -50254# 298# 8114# 2# B- 6129# 357# 149 946050# 320# + 36 93 57 150 La x -56383# 196# 8150# 1# B- 8464# 196# 149 939470# 210# + 34 92 58 150 Ce -64846.847 11.697 8201.122 0.078 B- 3453.551 14.292 149 930384.042 12.556 + 32 91 59 150 Pr -68300.398 9.016 8218.930 0.060 B- 5378.682 9.136 149 926676.502 9.679 + 30 90 60 150 Nd -73679.080 1.696 8249.572 0.011 B- -82.616 20.001 149 920902.249 1.821 + 28 89 61 150 Pm + -73596.464 20.071 8243.806 0.134 B- 3454.000 20.000 149 920990.941 21.546 + 26 88 62 150 Sm -77050.464 1.685 8261.617 0.011 B- -2258.642 6.190 149 917282.919 1.809 + 24 87 63 150 Eu -74791.823 6.322 8241.344 0.042 B- 971.780 3.543 149 919707.671 6.787 + 22 86 64 150 Gd -75763.602 6.145 8242.607 0.041 B- -4657.953 8.381 149 918664.422 6.597 + 20 85 65 150 Tb -71105.649 7.440 8206.338 0.050 B- -1796.221 8.394 149 923664.941 7.986 + 18 84 66 150 Dy -69309.428 4.486 8189.148 0.030 B- -7363.595 14.490 149 925593.264 4.815 + 16 83 67 150 Ho -61945.833 14.172 8134.841 0.094 B- -4114.557 13.591 149 933498.408 15.213 + 14 82 68 150 Er -57831.276 17.196 8102.195 0.115 B- -11340# 196# 149 937915.567 18.460 + 12 81 69 150 Tm x -46491# 196# 8021# 1# B- -7852# 446# 149 950090# 210# + 10 80 70 150 Yb x -38638# 401# 7964# 3# B- -13998# 643# 149 958520# 430# + 8 79 71 150 Lu -p -24640# 503# 7865# 3# B- * 149 973548# 540# +0 41 96 55 151 Cs x -34857# 401# 8017# 3# B- 10535# 499# 150 962580# 430# + 39 95 56 151 Ba x -45392# 298# 8082# 2# B- 8337# 357# 150 951270# 320# + 37 94 57 151 La x -53729# 196# 8132# 1# B- 7496# 196# 150 942320# 210# + 35 93 58 151 Ce x -61225.051 17.698 8176.277 0.117 B- 5554.420 21.191 150 934272.200 19.000 + 33 92 59 151 Pr -66779.471 11.654 8207.880 0.077 B- 4162.843 11.719 150 928309.285 12.510 + 31 91 60 151 Nd -70942.314 1.699 8230.268 0.011 B- 2443.076 4.473 150 923840.289 1.823 + 29 90 61 151 Pm -73385.389 4.781 8241.266 0.032 B- 1190.210 4.476 150 921217.539 5.132 + 27 89 62 151 Sm -74575.599 1.684 8243.967 0.011 B- 76.376 0.535 150 919939.796 1.807 + 25 88 63 151 Eu -74651.975 1.717 8239.292 0.011 B- -464.021 2.779 150 919857.803 1.843 + 23 87 64 151 Gd -74187.955 3.243 8231.038 0.021 B- -2565.008 3.763 150 920355.950 3.481 + 21 86 65 151 Tb -71622.947 4.275 8208.870 0.028 B- -2870.832 4.986 150 923109.599 4.588 + 19 85 66 151 Dy -a -68752.115 3.496 8184.676 0.023 B- -5129.533 8.778 150 926191.564 3.752 + 17 84 67 151 Ho -a -63622.582 8.320 8145.525 0.055 B- -5356.298 18.452 150 931698.345 8.932 + 15 83 68 151 Er x -58266.284 16.470 8104.872 0.109 B- -7488.567 25.648 150 937448.567 17.681 + 13 82 69 151 Tm +a -50777.717 19.661 8050.097 0.130 B- -9235.411 300.151 150 945487.875 21.107 + 11 81 70 151 Yb ep -41542.306 300.492 7983.755 1.990 B- -11434# 501# 150 955402.497 322.591 + 9 80 71 151 Lu -p -30108# 401# 7903# 3# B- * 150 967677# 430# +0 40 96 56 152 Ba x -42094# 401# 8060# 3# B- 7443# 499# 151 954810# 430# + 38 95 57 152 La x -49537# 298# 8104# 2# B- 9520# 357# 151 946820# 320# + 36 94 58 152 Ce x -59057# 196# 8161# 1# B- 4701# 196# 151 936600# 210# + 34 93 59 152 Pr x -63758.063 18.537 8187.104 0.122 B- 6390.686 30.730 151 931552.900 19.900 + 32 92 60 152 Nd -70148.749 24.509 8224.001 0.161 B- 1104.784 18.501 151 924692.216 26.312 + 30 91 61 152 Pm -71253.533 25.936 8226.122 0.171 B- 3508.436 25.886 151 923506.181 27.842 + 28 90 62 152 Sm -74761.968 1.639 8244.057 0.011 B- -1874.597 0.675 151 919739.721 1.759 + 26 89 63 152 Eu -72887.371 1.717 8226.577 0.011 B- 1818.919 0.689 151 921752.184 1.843 + 24 88 64 152 Gd -74706.290 1.634 8233.397 0.011 B- -3990.000 40.000 151 919799.494 1.754 + 22 87 65 152 Tb - -70716.290 40.033 8202.000 0.263 B- -598.346 40.265 151 924082.936 42.977 + 20 86 66 152 Dy -a -70117.944 4.770 8192.916 0.031 B- -6518.909 13.694 151 924725.286 5.121 + 18 85 67 152 Ho -63599.035 12.871 8144.882 0.085 B- -3105.100 9.822 151 931723.623 13.817 + 16 84 68 152 Er -60493.935 9.432 8119.306 0.062 B- -8723.362 74.190 151 935057.085 10.125 + 14 83 69 152 Tm -51770.574 73.588 8056.769 0.484 B- -5449.892 139.620 151 944422.000 79.000 + 12 82 70 152 Yb -46320.681 157.826 8015.767 1.038 B- -12899# 251# 151 950272.700 169.432 + 10 81 71 152 Lu x -33422# 196# 7926# 1# B- * 151 964120# 210# +0 41 97 56 153 Ba x -36924# 401# 8026# 3# B- 9315# 499# 152 960360# 430# + 39 96 57 153 La x -46239# 298# 8082# 2# B- 8784# 357# 152 950360# 320# + 37 95 58 153 Ce x -55023# 196# 8134# 1# B- 6545# 196# 152 940930# 210# + 35 94 59 153 Pr -61568.457 11.882 8172.036 0.078 B- 5761.813 12.190 152 933903.539 12.755 + 33 93 60 153 Nd -67330.270 2.747 8204.582 0.018 B- 3317.322 9.362 152 927717.978 2.949 + 31 92 61 153 Pm -70647.592 9.073 8221.150 0.059 B- 1911.459 9.123 152 924156.686 9.740 + 29 91 62 153 Sm -n -72559.051 1.644 8228.530 0.011 B- 807.276 0.695 152 922104.650 1.765 + 27 90 63 153 Eu -73366.327 1.720 8228.693 0.011 B- -484.399 0.702 152 921238.003 1.846 + 25 89 64 153 Gd -72881.928 1.632 8220.414 0.011 B- -1568.987 3.852 152 921758.027 1.751 + 23 88 65 153 Tb -71312.942 4.136 8205.045 0.027 B- -2170.358 1.934 152 923442.403 4.440 + 21 87 66 153 Dy -69142.584 4.187 8185.747 0.027 B- -4130.292 6.174 152 925772.378 4.494 + 19 86 67 153 Ho -a -65012.292 5.224 8153.638 0.034 B- -4540.112 10.058 152 930206.429 5.608 + 17 85 68 153 Er -60472.180 9.554 8118.851 0.062 B- -6482.882 14.374 152 935080.440 10.256 + 15 84 69 153 Tm -53989.298 14.511 8071.365 0.095 B- -6781# 196# 152 942040.101 15.577 + 13 83 70 153 Yb x -47208# 196# 8022# 1# B- -8785# 252# 152 949320# 210# + 11 82 71 153 Lu +a -38423.145 158.135 7959.399 1.034 B- -11121# 527# 152 958751.054 169.764 + 9 81 72 153 Hf x -27302# 503# 7882# 3# B- * 152 970690# 540# +0 40 97 57 154 La x -41759# 401# 8053# 3# B- 10591# 499# 153 955170# 430# + 38 96 58 154 Ce x -52350# 298# 8117# 2# B- 5844# 334# 153 943800# 320# + 36 95 59 154 Pr + -58194.398 151.640 8149.473 0.985 B- 7490.000 100.000 153 937525.741 162.792 + 34 94 60 154 Nd + -65684.398 113.995 8193.029 0.740 B- 2806.930 122.439 153 929484.894 122.378 + 32 93 61 154 Pm + -68491.327 44.759 8206.176 0.291 B- 3963.200 44.721 153 926471.531 48.050 + 30 92 62 154 Sm -72454.527 1.830 8226.830 0.012 B- -717.345 1.092 153 922216.861 1.964 + 28 91 63 154 Eu -71737.183 1.730 8217.092 0.011 B- 1968.156 0.737 153 922986.962 1.857 + 26 90 64 154 Gd -73705.338 1.628 8224.792 0.011 B- -3549.651 45.298 153 920874.060 1.747 + 24 89 65 154 Tb - -70155.687 45.328 8196.662 0.294 B- 237.987 45.903 153 924684.767 48.661 + 22 88 66 154 Dy -70393.674 7.493 8193.128 0.049 B- -5754.357 10.180 153 924429.277 8.043 + 20 87 67 154 Ho -a -64639.317 8.278 8150.681 0.054 B- -2034.390 9.466 153 930606.834 8.886 + 18 86 68 154 Er -62604.927 5.105 8132.391 0.033 B- -8177.764 14.937 153 932790.842 5.480 + 16 85 69 154 Tm -a -54427.163 14.416 8074.208 0.094 B- -4495.038 13.953 153 941570.033 15.475 + 14 84 70 154 Yb -49932.125 17.283 8039.940 0.112 B- -10217# 203# 153 946395.655 18.554 + 12 83 71 154 Lu +a -39715# 202# 7969# 1# B- -6982# 542# 153 957364# 217# + 10 82 72 154 Hf x -32733# 503# 7918# 3# B- * 153 964860# 540# +0 41 98 57 155 La x -38182# 401# 8030# 3# B- 9743# 566# 154 959010# 430# + 39 97 58 155 Ce x -47925# 401# 8088# 3# B- 7490# 401# 154 948550# 430# + 37 96 59 155 Pr -55415.247 17.198 8131.038 0.111 B- 6868.455 19.472 154 940509.281 18.462 + 35 95 60 155 Nd -62283.702 9.154 8170.304 0.059 B- 4656.206 10.278 154 933135.691 9.826 + 33 94 61 155 Pm -66939.908 4.719 8195.296 0.030 B- 3250.262 5.067 154 928137.048 5.065 + 31 93 62 155 Sm -n -70190.170 1.849 8211.218 0.012 B- 1626.986 1.193 154 924647.748 1.985 + 29 92 63 155 Eu -71817.156 1.773 8216.668 0.011 B- 252.094 0.856 154 922901.107 1.902 + 27 91 64 155 Gd -72069.250 1.624 8213.247 0.010 B- -819.784 9.789 154 922630.473 1.742 + 25 90 65 155 Tb + -71249.466 9.902 8202.910 0.064 B- -2094.500 1.897 154 923510.547 10.629 + 23 89 66 155 Dy -69154.966 9.718 8184.350 0.063 B- -3115.813 16.594 154 925759.086 10.432 + 21 88 67 155 Ho -66039.153 17.487 8159.201 0.113 B- -3830.175 18.490 154 929104.049 18.773 + 19 87 68 155 Er -a -62208.978 6.210 8129.442 0.040 B- -5583.141 11.531 154 933215.911 6.666 + 17 86 69 155 Tm -a -56625.836 9.940 8088.375 0.064 B- -6123.149 19.348 154 939209.660 10.671 + 15 85 70 155 Yb -a -50502.687 16.600 8043.823 0.107 B- -7952.600 25.603 154 945783.132 17.820 + 13 84 71 155 Lu +a -42550.087 19.493 7987.469 0.126 B- -8187# 299# 154 954320.600 20.926 + 11 83 72 155 Hf x -34363# 298# 7930# 2# B- -10372# 585# 154 963110# 320# + 9 82 73 155 Ta -p -23991# 503# 7858# 3# B- * 154 974245# 540# +0 40 98 58 156 Ce x -44870# 401# 8068# 3# B- 6697# 499# 155 951830# 430# + 38 97 59 156 Pr x -51568# 298# 8106# 2# B- 8906# 359# 155 944640# 320# + 36 96 60 156 Nd + -60473.620 200.033 8158.066 1.282 B- 3690.000 200.000 155 935078.894 214.744 + 34 95 61 156 Pm -64163.620 3.631 8176.705 0.023 B- 5199.086 10.035 155 931117.516 3.898 + 32 94 62 156 Sm -69362.706 9.356 8205.017 0.060 B- 722.442 7.913 155 925536.067 10.044 + 30 93 63 156 Eu -70085.148 5.521 8204.633 0.035 B- 2449.134 5.283 155 924760.494 5.927 + 28 92 64 156 Gd -72534.282 1.624 8215.318 0.010 B- -2444.184 3.681 155 922131.241 1.742 + 26 91 65 156 Tb -70090.097 4.004 8194.635 0.026 B- 438.238 3.682 155 924755.181 4.298 + 24 90 66 156 Dy -70528.335 1.627 8192.429 0.010 B- -5050.000 60.000 155 924284.713 1.746 + 22 89 67 156 Ho - -65478.335 60.022 8155.042 0.385 B- -1267.951 64.881 155 929706.112 64.436 + 20 88 68 156 Er -64210.384 24.639 8141.899 0.158 B- -7381.401 26.801 155 931067.313 26.450 + 18 87 69 156 Tm -56828.983 14.570 8089.568 0.093 B- -3570.533 12.579 155 938991.573 15.642 + 16 86 70 156 Yb -53258.450 10.046 8061.665 0.064 B- -9508.527 74.340 155 942824.698 10.784 + 14 85 71 156 Lu -a -43749.924 73.658 7995.697 0.472 B- -5882.648 139.709 155 953032.522 79.074 + 12 84 72 156 Hf -37867.276 157.872 7952.973 1.012 B- -11813# 337# 155 959347.805 169.482 + 10 83 73 156 Ta -p -26054# 298# 7872# 2# B- * 155 972030# 320# +0 41 99 58 157 Ce x -40008# 503# 8037# 3# B- 8532# 643# 156 957050# 540# + 39 98 59 157 Pr x -48540# 401# 8086# 3# B- 7921# 401# 156 947890# 430# + 37 97 60 157 Nd -56461.520 24.918 8131.959 0.159 B- 5835.500 25.877 156 939386.061 26.751 + 35 96 61 157 Pm -62297.021 7.006 8164.144 0.045 B- 4380.533 8.265 156 933121.393 7.521 + 33 95 62 157 Sm -66677.553 4.434 8187.063 0.028 B- 2780.744 6.179 156 928418.698 4.759 + 31 94 63 157 Eu -69458.297 4.322 8199.791 0.028 B- 1364.524 4.218 156 925433.446 4.639 + 29 93 64 157 Gd -70822.822 1.623 8203.500 0.010 B- -60.044 0.297 156 923968.569 1.742 + 27 92 65 157 Tb -70762.778 1.649 8198.134 0.011 B- -1339.145 5.139 156 924033.028 1.770 + 25 91 66 157 Dy -69423.633 5.351 8184.621 0.034 B- -2593.062 23.799 156 925470.660 5.744 + 23 90 67 157 Ho -66830.570 23.459 8163.122 0.149 B- -3441.154 32.709 156 928254.427 25.184 + 21 89 68 157 Er -63389.417 25.028 8136.221 0.159 B- -4653.243 33.823 156 931948.658 26.868 + 19 88 69 157 Tm -58736.174 26.208 8101.599 0.167 B- -5310.661 28.467 156 936944.120 28.135 + 17 87 70 157 Yb -53425.513 11.115 8062.790 0.071 B- -6968.803 15.634 156 942645.349 11.932 + 15 86 71 157 Lu -46456.710 14.628 8013.420 0.093 B- -7553# 196# 156 950126.667 15.704 + 13 85 72 157 Hf -a -38903# 196# 7960# 1# B- -9260# 252# 156 958236# 210# + 11 84 73 157 Ta IT -29643.709 158.168 7896.364 1.007 B- -9933# 431# 156 968176.167 169.800 + 9 83 74 157 W x -19710# 401# 7828# 3# B- * 156 978840# 430# +0 40 99 59 158 Pr x -44330# 401# 8060# 3# B- 9725# 499# 157 952410# 430# + 38 98 60 158 Nd x -54055# 298# 8116# 2# B- 5035# 298# 157 941970# 320# + 36 97 61 158 Pm -59089.187 13.453 8143.254 0.085 B- 6161.033 14.299 157 936565.144 14.442 + 34 96 62 158 Sm -65250.220 4.892 8177.296 0.031 B- 2004.946 10.369 157 929951.004 5.251 + 32 95 63 158 Eu -67255.165 10.255 8185.034 0.065 B- 3433.727 10.382 157 927798.606 11.008 + 30 94 64 158 Gd -70688.892 1.623 8201.815 0.010 B- -1218.952 0.993 157 924112.348 1.742 + 28 93 65 158 Tb -69469.940 1.861 8189.149 0.012 B- 936.219 2.523 157 925420.947 1.997 + 26 92 66 158 Dy -70406.159 2.865 8190.123 0.018 B- -4219.755 27.005 157 924415.875 3.075 + 24 91 67 158 Ho - -66186.403 27.156 8158.464 0.172 B- -882.595 37.061 157 928945.969 29.153 + 22 90 68 158 Er -65303.808 25.219 8147.926 0.160 B- -6600.615 31.341 157 929893.474 27.074 + 20 89 69 158 Tm -58703.194 25.219 8101.199 0.160 B- -2692.971 26.475 157 936979.525 27.074 + 18 88 70 158 Yb -56010.223 8.057 8079.203 0.051 B- -8797.922 16.887 157 939870.549 8.649 + 16 87 71 158 Lu -a -47212.300 15.128 8018.568 0.096 B- -5109.789 14.937 157 949315.507 16.240 + 14 86 72 158 Hf -42102.511 17.495 7981.276 0.111 B- -10936# 203# 157 954801.092 18.782 + 12 85 73 158 Ta +a -31167# 202# 7907# 1# B- -7471# 542# 157 966541# 217# + 10 84 74 158 W -a -23695# 503# 7855# 3# B- * 157 974562# 540# +0 41 100 59 159 Pr x -41088# 503# 8039# 3# B- 8719# 643# 158 955890# 540# + 39 99 60 159 Nd x -49807# 401# 8089# 3# B- 6747# 401# 158 946530# 430# + 37 98 61 159 Pm -56554.259 10.039 8126.859 0.063 B- 5653.494 11.644 158 939286.502 10.777 + 35 97 62 159 Sm -62207.753 5.934 8157.495 0.037 B- 3835.109 7.335 158 933217.226 6.370 + 33 96 63 159 Eu -66042.861 4.345 8176.695 0.027 B- 2517.920 4.444 158 929100.067 4.664 + 31 95 64 159 Gd -68560.782 1.625 8187.610 0.010 B- 970.858 0.765 158 926396.969 1.744 + 29 94 65 159 Tb -69531.640 1.751 8188.796 0.011 B- -365.377 1.168 158 925354.710 1.879 + 27 93 66 159 Dy -69166.263 2.037 8181.577 0.013 B- -1837.600 2.683 158 925746.958 2.187 + 25 92 67 159 Ho - -67328.663 3.369 8165.100 0.021 B- -2768.500 2.000 158 927719.703 3.616 + 23 91 68 159 Er - -64560.163 3.918 8142.767 0.025 B- -3989.765 28.218 158 930691.810 4.206 + 21 90 69 159 Tm x -60570.397 27.945 8112.754 0.176 B- -4731.639 33.159 158 934975.000 30.000 + 19 89 70 159 Yb x -55838.758 17.849 8078.075 0.112 B- -6130.155 41.679 158 940054.623 19.162 + 17 88 71 159 Lu x -49708.604 37.663 8034.600 0.237 B- -6855.846 41.246 158 946635.615 40.433 + 15 87 72 159 Hf -a -42852.758 16.813 7986.561 0.106 B- -8408.491 26.075 158 953995.669 18.049 + 13 86 73 159 Ta IT -34444.267 19.931 7928.757 0.125 B- -8957# 299# 158 963022.556 21.397 + 11 85 74 159 W -a -25487# 298# 7868# 2# B- -10750# 587# 158 972638# 320# + 9 84 75 159 Re IT -14737# 506# 7795# 3# B- * 158 984179# 543# +0 40 100 60 160 Nd x -47134# 401# 8073# 3# B- 5868# 499# 159 949400# 430# + 38 99 61 160 Pm x -53002# 298# 8104# 2# B- 7233# 298# 159 943100# 320# + 36 98 62 160 Sm -60234.770 5.934 8144.625 0.037 B- 3245.671 11.183 159 935335.311 6.370 + 34 97 63 160 Eu -63480.441 9.501 8160.021 0.059 B- 4460.485 9.654 159 931850.939 10.199 + 32 96 64 160 Gd -67940.926 1.714 8183.009 0.011 B- -105.394 1.018 159 927062.411 1.840 + 30 95 65 160 Tb -67835.532 1.756 8177.461 0.011 B- 1835.891 1.264 159 927175.556 1.884 + 28 94 66 160 Dy -69671.423 1.883 8184.046 0.012 B- -3290.000 15.000 159 925204.646 2.021 + 26 93 67 160 Ho - -66381.423 15.118 8158.593 0.094 B- -317.196 28.580 159 928736.606 16.229 + 24 92 68 160 Er -66064.228 24.254 8151.721 0.152 B- -5762.200 40.311 159 929077.130 26.037 + 22 91 69 160 Tm -60302.028 34.262 8110.818 0.214 B- -2137.127 37.791 159 935263.106 36.781 + 20 90 70 160 Yb x -58164.901 15.947 8092.571 0.100 B- -7894.964 59.017 159 937557.406 17.119 + 18 89 71 160 Lu x -50269.937 56.821 8038.338 0.355 B- -4338.665 57.757 159 946033.000 61.000 + 16 88 72 160 Hf -45931.271 10.354 8006.332 0.065 B- -10057.118 74.523 159 950690.749 11.115 + 14 87 73 160 Ta -a -35874.153 73.801 7938.585 0.461 B- -6497.240 139.859 159 961487.510 79.228 + 12 86 74 160 W -29376.914 157.938 7893.088 0.987 B- -12445# 337# 159 968462.584 169.553 + 10 85 75 160 Re -a -16931# 298# 7810# 2# B- * 159 981823# 320# +0 41 101 60 161 Nd x -42588# 503# 8044# 3# B- 7648# 585# 160 954280# 540# + 39 100 61 161 Pm x -50235# 298# 8087# 2# B- 6436# 298# 160 946070# 320# + 37 99 62 161 Sm -56671.937 6.817 8122.040 0.042 B- 5119.564 12.415 160 939160.170 7.318 + 35 98 63 161 Eu -61791.501 10.400 8148.980 0.065 B- 3713.508 10.586 160 933664.091 11.164 + 33 97 64 161 Gd -n -65505.009 1.985 8167.186 0.012 B- 1955.813 1.441 160 929677.476 2.130 + 31 96 65 161 Tb -67460.822 1.828 8174.474 0.011 B- 593.672 1.339 160 927577.825 1.962 + 29 95 66 161 Dy -68054.493 1.882 8173.302 0.012 B- -857.957 2.173 160 926940.492 2.020 + 27 94 67 161 Ho -67196.536 2.816 8163.114 0.017 B- -1996.241 9.013 160 927861.547 3.023 + 25 93 68 161 Er +n -65200.295 8.947 8145.856 0.056 B- -3301.587 29.342 160 930004.599 9.604 + 23 92 69 161 Tm x -61898.708 27.945 8120.490 0.174 B- -4059.580 31.917 160 933549.000 30.000 + 21 91 70 161 Yb x -57839.128 15.419 8090.416 0.096 B- -5276.784 31.917 160 937907.138 16.553 + 19 90 71 161 Lu x -52562.344 27.945 8052.781 0.174 B- -6246.944 35.911 160 943572.000 30.000 + 17 89 72 161 Hf -46315.400 22.555 8009.121 0.140 B- -7613.934 33.994 160 950278.370 24.213 + 15 88 73 161 Ta +a -38701.466 25.465 7956.970 0.158 B- -8146# 197# 160 958452.265 27.337 + 13 87 74 161 W -a -30556# 196# 7902# 1# B- -9665# 252# 160 967197# 210# + 11 86 75 161 Re -20890.661 158.029 7836.626 0.982 B- -10671# 431# 160 977572.951 169.650 + 9 85 76 161 Os -a -10220# 401# 7765# 2# B- * 160 989029# 430# +0 40 101 61 162 Pm x -46370# 401# 8063# 2# B- 8160# 446# 161 950220# 430# + 38 100 62 162 Sm x -54530# 196# 8109# 1# B- 4165# 205# 161 941460# 210# + 36 99 63 162 Eu + -58694.590 60.145 8129.384 0.371 B- 5585.000 60.000 161 936988.761 64.567 + 34 98 64 162 Gd -nn -64279.590 4.169 8159.030 0.026 B- 1395.059 36.584 161 930993.017 4.475 + 32 97 65 162 Tb + -65674.649 36.412 8162.812 0.225 B- 2505.521 36.364 161 929495.360 39.090 + 30 96 66 162 Dy -68180.170 1.883 8173.449 0.012 B- -2139.364 3.118 161 926805.573 2.021 + 28 95 67 162 Ho -66040.806 3.596 8155.413 0.022 B- 292.405 3.132 161 929102.274 3.860 + 26 94 68 162 Er -66333.211 1.906 8152.389 0.012 B- -4856.728 26.047 161 928788.364 2.046 + 24 93 69 162 Tm - -61476.483 26.117 8117.580 0.161 B- -1649.980 30.263 161 934002.277 28.037 + 22 92 70 162 Yb x -59826.502 15.425 8102.566 0.095 B- -6994.749 76.605 161 935773.604 16.559 + 20 91 71 162 Lu x -52831.753 75.036 8054.559 0.463 B- -3662.691 75.576 161 943282.776 80.554 + 18 90 72 162 Hf -49169.062 9.018 8027.120 0.056 B- -9388.757 52.934 161 947214.837 9.681 + 16 89 73 162 Ta -a -39780.305 52.239 7964.336 0.322 B- -5779.975 52.254 161 957294.083 56.080 + 14 88 74 162 W -34000.330 17.705 7923.828 0.109 B- -11499# 203# 161 963499.142 19.007 + 12 87 75 162 Re +a -22501# 202# 7848# 1# B- -7998# 542# 161 975844# 217# + 10 86 76 162 Os -a -14503# 503# 7794# 3# B- * 161 984431# 540# +0 41 102 61 163 Pm x -43249# 503# 8044# 3# B- 7471# 585# 162 953570# 540# + 39 101 62 163 Sm x -50720# 298# 8085# 2# B- 5919# 306# 162 945550# 320# + 37 100 63 163 Eu + -56638.864 70.505 8116.415 0.433 B- 4675.000 70.000 162 939195.675 75.690 + 35 99 64 163 Gd -61313.864 8.426 8140.297 0.052 B- 3280.905 9.515 162 934176.855 9.045 + 33 98 65 163 Tb +p -64594.769 4.421 8155.625 0.027 B- 1785.092 4.001 162 930654.659 4.746 + 31 97 66 163 Dy -66379.861 1.883 8161.777 0.012 B- -2.555 0.016 162 928738.284 2.021 + 29 96 67 163 Ho -66377.306 1.883 8156.962 0.012 B- -1210.729 4.575 162 928741.027 2.021 + 27 95 68 163 Er -65166.577 4.948 8144.734 0.030 B- -2439.000 3.000 162 930040.797 5.311 + 25 94 69 163 Tm - -62727.577 5.786 8124.972 0.035 B- -3428.327 16.352 162 932659.172 6.211 + 23 93 70 163 Yb x -59299.250 15.431 8099.139 0.095 B- -4507.842 31.922 162 936339.632 16.565 + 21 92 71 163 Lu x -54791.409 27.945 8066.684 0.171 B- -5527.435 37.348 162 941179.000 30.000 + 19 91 72 163 Hf -49263.973 24.778 8027.974 0.152 B- -6729.266 45.416 162 947112.946 26.599 + 17 90 73 163 Ta -a -42534.708 38.061 7981.890 0.234 B- -7626.357 65.049 162 954337.110 40.860 + 15 89 74 163 W -a -34908.351 52.751 7930.303 0.324 B- -8900.909 55.998 162 962524.342 56.630 + 13 88 75 163 Re +a -26007.442 18.791 7870.897 0.115 B- -9622# 303# 162 972079.860 20.173 + 11 87 76 163 Os -a -16385# 302# 7807# 2# B- * 162 982410# 324# +0 40 102 62 164 Sm x -48102# 298# 8069# 2# B- 5232# 363# 163 948360# 320# + 38 101 63 164 Eu + -53334# 208# 8096# 1# B- 6440.000 70.000 163 942744# 223# + 36 100 64 164 Gd x -59774# 196# 8130# 1# B- 2303# 220# 163 935830# 210# + 34 99 65 164 Tb + -62076.660 100.018 8139.757 0.610 B- 3890.000 100.000 163 933357.961 107.373 + 32 98 66 164 Dy -65966.660 1.883 8158.706 0.011 B- -985.893 1.427 163 929181.874 2.021 + 30 97 67 164 Ho -64980.767 2.291 8147.924 0.014 B- 960.819 1.430 163 930240.273 2.459 + 28 96 68 164 Er -65941.586 1.886 8149.012 0.012 B- -4037.862 24.436 163 929208.791 2.024 + 26 95 69 164 Tm -61903.724 24.398 8119.621 0.149 B- -886.149 28.854 163 933543.614 26.191 + 24 94 70 164 Yb x -61017.575 15.437 8109.447 0.094 B- -6375.206 31.925 163 934494.934 16.571 + 22 93 71 164 Lu x -54642.370 27.945 8065.804 0.170 B- -2824.146 32.112 163 941339.000 30.000 + 20 92 72 164 Hf -51818.224 15.820 8043.813 0.096 B- -8535.424 32.112 163 944370.845 16.983 + 18 91 73 164 Ta x -43282.800 27.945 7986.997 0.170 B- -5054.923 29.864 163 953534.000 30.000 + 16 90 74 164 W -38227.878 10.534 7951.404 0.064 B- -10704.904 74.723 163 958960.683 11.309 + 14 89 75 164 Re -a -27522.974 73.976 7881.360 0.451 B- -7050.331 140.051 163 970452.870 79.417 + 12 88 76 164 Os -20472.643 158.026 7833.599 0.964 B- -12936# 352# 163 978021.712 169.647 + 10 87 77 164 Ir -a -7537# 314# 7750# 2# B- * 163 991909# 338# +0 41 103 62 165 Sm x -43808# 401# 8043# 2# B- 6878# 514# 164 952970# 430# + 39 102 63 165 Eu + -50686# 321# 8080# 2# B- 5800.000 120.000 164 945587# 345# + 37 101 64 165 Gd x -56486# 298# 8110# 2# B- 4080# 357# 164 939360# 320# + 35 100 65 165 Tb x -60566# 196# 8130# 1# B- 3046# 196# 164 934980# 210# + 33 99 66 165 Dy -n -63611.300 1.884 8143.902 0.011 B- 1286.972 0.849 164 931710.456 2.022 + 31 98 67 165 Ho -64898.272 1.983 8146.960 0.012 B- -377.871 1.021 164 930328.835 2.129 + 29 97 68 165 Er -64520.401 1.963 8139.928 0.012 B- -1591.591 1.544 164 930734.496 2.107 + 27 96 69 165 Tm -62928.809 2.378 8125.541 0.014 B- -2633.428 26.645 164 932443.140 2.552 + 25 95 70 165 Yb -60295.381 26.539 8104.839 0.161 B- -3853.140 35.432 164 935270.241 28.490 + 23 94 71 165 Lu -56442.241 26.539 8076.745 0.161 B- -4806.734 38.539 164 939406.758 28.490 + 21 93 72 165 Hf x -51635.507 27.945 8042.872 0.169 B- -5787.906 31.195 164 944567.000 30.000 + 19 92 73 165 Ta -45847.601 13.863 8003.052 0.084 B- -6986.406 28.567 164 950780.572 14.882 + 17 91 74 165 W -38861.195 24.977 7955.969 0.151 B- -8217.521 35.355 164 958280.788 26.814 + 15 90 75 165 Re +a -30643.674 25.029 7901.424 0.152 B- -8849# 204# 164 967102.660 26.870 + 13 89 76 165 Os -a -21795# 202# 7843# 1# B- -10152# 261# 164 976602# 217# + 11 88 77 165 Ir IT -11643# 166# 7777# 1# B- * 164 987501# 178# +0 40 103 63 166 Eu x -46929# 298# 8057# 2# B- 7601# 667# 165 949620# 320# + 38 102 64 166 Gd x -54530# 596# 8098# 4# B- 3354# 600# 165 941460# 640# + 36 101 65 166 Tb + -57883.483 70.026 8113.672 0.422 B- 4700.000 70.000 165 937859.521 75.176 + 34 100 66 166 Dy -n -62583.483 1.926 8137.273 0.012 B- 487.112 0.939 165 932813.863 2.067 + 32 99 67 166 Ho -63070.595 1.983 8135.494 0.012 B- 1854.974 0.907 165 932290.927 2.129 + 30 98 68 166 Er -64925.569 2.030 8141.956 0.012 B- -3037.667 11.547 165 930299.530 2.179 + 28 97 69 166 Tm - -61887.902 11.724 8118.944 0.071 B- -292.628 13.507 165 933560.600 12.586 + 26 96 70 166 Yb +nn -61595.275 7.293 8112.468 0.044 B- -5574.294 30.687 165 933874.749 7.829 + 24 95 71 166 Lu x -56020.981 29.808 8074.175 0.180 B- -2161.998 40.859 165 939859.000 32.000 + 22 94 72 166 Hf x -53858.983 27.945 8056.438 0.168 B- -7761.208 39.520 165 942180.000 30.000 + 20 93 73 166 Ta x -46097.775 27.945 8004.971 0.168 B- -4209.617 29.522 165 950512.000 30.000 + 18 92 74 166 W -41888.158 9.521 7974.899 0.057 B- -9994.569 72.881 165 955031.210 10.221 + 16 91 75 166 Re -a -31893.589 72.311 7909.977 0.436 B- -6456.795 72.453 165 965760.821 77.628 + 14 90 76 166 Os -25436.794 18.231 7866.368 0.110 B- -12083# 203# 165 972692.476 19.571 + 12 89 77 166 Ir -p -13354# 202# 7789# 1# B- -8562# 542# 165 985664# 217# + 10 88 78 166 Pt -a -4792# 503# 7733# 3# B- * 165 994855# 540# +0 41 104 63 167 Eu x -43883# 401# 8039# 2# B- 6930# 566# 166 952890# 430# + 39 103 64 167 Gd x -50813# 401# 8076# 2# B- 5114# 446# 166 945450# 430# + 37 102 65 167 Tb x -55927# 196# 8102# 1# B- 4004# 205# 166 939960# 210# + 35 101 66 167 Dy + -59931.039 60.255 8120.995 0.361 B- 2350.000 60.000 166 935661.379 64.686 + 33 100 67 167 Ho p2n -62281.039 5.538 8130.382 0.033 B- 1009.677 5.224 166 933138.550 5.945 + 31 99 68 167 Er -63290.716 2.031 8131.743 0.012 B- -746.662 1.524 166 932054.617 2.180 + 29 98 69 167 Tm -62544.054 2.295 8122.587 0.014 B- -1953.153 3.798 166 932856.192 2.464 + 27 97 70 167 Yb -60590.901 4.398 8106.207 0.026 B- -3089.776 31.975 166 934952.988 4.721 + 25 96 71 167 Lu x -57501.125 31.671 8083.021 0.190 B- -4033.369 42.237 166 938270.000 34.000 + 23 95 72 167 Hf x -53467.756 27.945 8054.184 0.167 B- -5116.697 39.520 166 942600.000 30.000 + 21 94 73 167 Ta x -48351.059 27.945 8018.861 0.167 B- -6251.778 33.381 166 948093.000 30.000 + 19 93 74 167 W -42099.281 18.259 7976.740 0.109 B- -7257# 45# 166 954804.560 19.601 + 17 92 75 167 Re +a -34843# 41# 7929# 0# B- -8341# 84# 166 962595# 44# + 15 91 76 167 Os -a -26502.151 72.682 7873.975 0.435 B- -9424.435 75.026 166 971548.768 78.027 + 13 90 77 167 Ir -17077.717 18.605 7812.856 0.111 B- -10273# 307# 166 981666.315 19.973 + 11 89 78 167 Pt -a -6805# 306# 7747# 2# B- * 166 992695# 329# +0 40 104 64 168 Gd x -48363# 401# 8061# 2# B- 4359# 499# 167 948080# 430# + 38 103 65 168 Tb x -52723# 298# 8082# 2# B- 5837# 329# 167 943400# 320# + 36 102 66 168 Dy +pp -58559.979 140.020 8112.538 0.833 B- 1500.730 143.186 167 937133.273 150.317 + 34 101 67 168 Ho + -60060.709 30.069 8116.814 0.179 B- 2930.000 30.000 167 935522.173 32.280 + 32 100 68 168 Er -62990.709 2.033 8129.598 0.012 B- -1677.361 1.891 167 932376.688 2.182 + 30 99 69 168 Tm -61313.348 2.554 8114.957 0.015 B- 268.091 1.908 167 934177.409 2.741 + 28 98 70 168 Yb -61581.439 2.048 8111.896 0.012 B- -4514.051 39.248 167 933889.602 2.198 + 26 97 71 168 Lu - -57067.388 39.301 8080.369 0.234 B- -1706.837 48.223 167 938735.635 42.191 + 24 96 72 168 Hf x -55360.552 27.945 8065.553 0.166 B- -6966.644 39.520 167 940568.000 30.000 + 22 95 73 168 Ta x -48393.908 27.945 8019.428 0.166 B- -3501.055 30.936 167 948047.000 30.000 + 20 94 74 168 W -44892.853 13.272 7993.931 0.079 B- -9097.968 33.557 167 951805.537 14.247 + 18 93 75 168 Re -a -35794.885 30.821 7935.120 0.183 B- -5807.998 32.675 167 961572.608 33.087 + 16 92 76 168 Os -29986.887 10.852 7895.892 0.065 B- -11270.045 75.253 167 967807.751 11.650 + 14 91 77 168 Ir -a -18716.842 74.466 7824.151 0.443 B- -7658.765 140.344 167 979906.642 79.942 + 12 90 78 168 Pt -a -11058.077 158.056 7773.907 0.941 B- * 167 988128.665 169.679 +0 41 105 64 169 Gd x -44153# 503# 8036# 3# B- 6176# 585# 168 952600# 540# + 39 104 65 169 Tb x -50329# 298# 8068# 2# B- 5269# 423# 168 945970# 320# + 37 103 66 169 Dy + -55597.587 300.675 8094.765 1.779 B- 3200.000 300.000 168 940313.531 322.788 + 35 102 67 169 Ho +p -58797.587 20.141 8109.071 0.119 B- 2125.054 20.058 168 936878.189 21.622 + 33 101 68 169 Er -n -60922.642 2.039 8117.016 0.012 B- 352.999 1.150 168 934596.850 2.188 + 31 100 69 169 Tm -61275.641 2.065 8114.475 0.012 B- -898.540 1.176 168 934217.889 2.217 + 29 99 70 169 Yb -n -60377.101 2.054 8104.529 0.012 B- -2293.000 3.000 168 935182.512 2.204 + 27 98 71 169 Lu - -58084.101 3.636 8086.332 0.022 B- -3367.211 28.180 168 937644.149 3.903 + 25 97 72 169 Hf x -54716.889 27.945 8061.778 0.165 B- -4426.459 39.520 168 941259.000 30.000 + 23 96 73 169 Ta x -50290.430 27.945 8030.957 0.165 B- -5372.713 31.925 168 946011.000 30.000 + 21 95 74 169 W -44917.716 15.436 7994.537 0.091 B- -6508.552 19.173 168 951778.845 16.571 + 19 94 75 169 Re +a -38409.165 11.374 7951.395 0.067 B- -7686.234 27.618 168 958766.063 12.210 + 17 93 76 169 Os -a -30722.931 25.167 7901.285 0.149 B- -8645.115 35.299 168 967017.574 27.018 + 15 92 77 169 Ir +a -22077.816 24.760 7845.501 0.147 B- -9565# 204# 168 976298.488 26.580 + 13 91 78 169 Pt -a -12513# 202# 7784# 1# B- -10724# 360# 168 986567# 217# + 11 90 79 169 Au x -1788# 298# 7716# 2# B- * 168 998080# 320# +0 40 105 65 170 Tb x -46724# 401# 8047# 2# B- 6940# 446# 169 949840# 430# + 38 104 66 170 Dy x -53663# 196# 8083# 1# B- 2576# 202# 169 942390# 210# + 36 103 67 170 Ho + -56239.094 50.057 8093.799 0.294 B- 3870.000 50.000 169 939624.846 53.738 + 34 102 68 170 Er -60109.094 2.381 8111.961 0.014 B- -312.798 1.868 169 935470.230 2.556 + 32 101 69 170 Tm -59796.295 2.066 8105.519 0.012 B- 968.433 0.805 169 935806.032 2.218 + 30 100 70 170 Yb -60764.729 2.059 8106.614 0.012 B- -3457.695 16.843 169 934766.376 2.210 + 28 99 71 170 Lu - -57307.034 16.968 8081.673 0.100 B- -1053.179 32.693 169 938478.365 18.216 + 26 98 72 170 Hf x -56253.854 27.945 8070.875 0.164 B- -6116.190 39.520 169 939609.000 30.000 + 24 97 73 170 Ta x -50137.665 27.945 8030.296 0.164 B- -2847.193 30.904 169 946175.000 30.000 + 22 96 74 170 W -47290.471 13.196 8008.946 0.078 B- -8372.718 28.975 169 949231.588 14.167 + 20 95 75 170 Re x -38917.753 25.795 7955.092 0.152 B- -4991.302 27.599 169 958220.071 27.692 + 18 94 76 170 Os -33926.451 9.814 7921.130 0.058 B- -10567# 89# 169 963578.454 10.536 + 16 93 77 170 Ir -a -23360# 89# 7854# 1# B- -7055# 89# 169 974922# 95# + 14 92 78 170 Pt -16304.550 18.507 7808.267 0.109 B- -12553# 203# 169 982496.345 19.868 + 12 91 79 170 Au -p -3752# 202# 7730# 1# B- * 169 995972# 217# +0 41 106 65 171 Tb x -44032# 503# 8031# 3# B- 6157# 585# 170 952730# 540# + 39 105 66 171 Dy x -50189# 298# 8063# 2# B- 4330# 670# 170 946120# 320# + 37 104 67 171 Ho + -54519.391 600.005 8083.611 3.509 B- 3200.000 600.000 170 941471.022 644.131 + 35 103 68 171 Er -57719.391 2.392 8097.749 0.014 B- 1492.076 1.276 170 938035.681 2.568 + 33 102 69 171 Tm -59211.468 2.232 8101.899 0.013 B- 96.561 0.972 170 936433.871 2.396 + 31 101 70 171 Yb -59308.029 2.019 8097.889 0.012 B- -1478.049 1.916 170 936330.208 2.167 + 29 100 71 171 Lu -57829.979 2.504 8084.670 0.015 B- -2398.634 28.985 170 937916.960 2.688 + 27 99 72 171 Hf x -55431.345 28.876 8066.068 0.169 B- -3711.072 40.184 170 940492.000 31.000 + 25 98 73 171 Ta x -51720.273 27.945 8039.791 0.163 B- -4634.183 39.520 170 944476.000 30.000 + 23 97 74 171 W x -47086.090 27.945 8008.115 0.163 B- -5835.810 39.520 170 949451.000 30.000 + 21 96 75 171 Re x -41250.280 27.945 7969.412 0.163 B- -6947.054 33.143 170 955716.000 30.000 + 19 95 76 171 Os -34303.227 17.820 7924.211 0.104 B- -7886.292 42.607 170 963173.969 19.131 + 17 94 77 171 Ir -a -26416.935 38.701 7873.517 0.226 B- -8946.996 82.401 170 971640.252 41.547 + 15 93 78 171 Pt -a -17469.939 72.747 7816.621 0.425 B- -9902.288 75.702 170 981245.248 78.097 + 13 92 79 171 Au -p -7567.651 20.944 7754.137 0.122 B- -10855# 307# 170 991875.791 22.483 + 11 91 80 171 Hg -a 3288# 307# 7686# 2# B- * 171 003529# 329# +0 40 106 66 172 Dy x -48009# 298# 8050# 2# B- 3474# 357# 171 948460# 320# + 38 105 67 172 Ho x -51484# 196# 8066# 1# B- 5000# 196# 171 944730# 210# + 36 104 68 172 Er -56484.065 4.407 8090.413 0.026 B- 890.823 4.544 171 939361.858 4.731 + 34 103 69 172 Tm -57374.888 5.812 8091.044 0.034 B- 1881.291 5.506 171 938405.521 6.239 + 32 102 70 172 Yb -59256.179 2.018 8097.433 0.012 B- -2518.043 2.367 171 936385.872 2.166 + 30 101 71 172 Lu -56738.135 2.771 8078.245 0.016 B- -335.910 24.585 171 939089.103 2.974 + 28 100 72 172 Hf x -56402.225 24.428 8071.743 0.142 B- -5072.248 37.117 171 939449.716 26.224 + 26 99 73 172 Ta x -51329.977 27.945 8037.705 0.162 B- -2232.791 39.520 171 944895.000 30.000 + 24 98 74 172 W x -49097.186 27.945 8020.175 0.162 B- -7570.872 48.442 171 947292.000 30.000 + 22 97 75 172 Re -41526.314 39.570 7971.610 0.230 B- -4282.685 41.583 171 955419.665 42.479 + 20 96 76 172 Os -37243.629 12.783 7942.162 0.074 B- -9864.260 34.833 171 960017.317 13.722 + 18 95 77 172 Ir -a -27379.369 32.402 7880.263 0.188 B- -6281.889 34.395 171 970607.036 34.785 + 16 94 78 172 Pt -21097.480 11.538 7839.192 0.067 B- -11728.779 76.047 171 977350.921 12.386 + 14 93 79 172 Au -a -9368.702 75.166 7766.453 0.437 B- -8259.262 140.853 171 989942.284 80.694 + 12 92 80 172 Hg -a -1109.439 158.177 7713.885 0.920 B- * 171 998808.967 169.809 +0 41 107 66 173 Dy x -43939# 401# 8027# 2# B- 5412# 499# 172 952830# 430# + 39 106 67 173 Ho x -49351# 298# 8054# 2# B- 4304# 357# 172 947020# 320# + 37 105 68 173 Er x -53654# 196# 8074# 1# B- 2600# 196# 172 942400# 210# + 35 104 69 173 Tm p2n -56254.440 4.941 8084.453 0.029 B- 1297.789 4.518 172 939608.371 5.304 + 33 103 70 173 Yb -57552.229 2.013 8087.433 0.012 B- -669.644 1.648 172 938215.136 2.160 + 31 102 71 173 Lu -56882.585 2.161 8079.040 0.012 B- -1470.802 28.028 172 938934.029 2.319 + 29 101 72 173 Hf x -55411.784 27.945 8066.016 0.162 B- -3015.246 39.520 172 940513.000 30.000 + 27 100 73 173 Ta x -52396.538 27.945 8044.064 0.162 B- -3669.155 39.520 172 943750.000 30.000 + 25 99 74 173 W x -48727.383 27.945 8018.333 0.162 B- -5173.518 39.520 172 947689.000 30.000 + 23 98 75 173 Re x -43553.865 27.945 7983.906 0.162 B- -6115.692 31.697 172 953243.000 30.000 + 21 97 76 173 Os -37438.173 14.959 7944.033 0.086 B- -7169.868 18.583 172 959808.465 16.059 + 19 96 77 173 Ir -30268.305 11.026 7898.066 0.064 B- -8325.155 57.052 172 967505.636 11.837 + 17 95 78 173 Pt -a -21943.150 55.977 7845.422 0.324 B- -9126.654 61.007 172 976443.058 60.093 + 15 94 79 173 Au +a -12816.496 24.267 7788.144 0.140 B- -10107# 204# 172 986240.924 26.052 + 13 93 80 173 Hg -a -2710# 202# 7725# 1# B- * 172 997091# 217# +0 40 107 67 174 Ho x -45690# 298# 8033# 2# B- 6260# 422# 173 950950# 320# + 38 106 68 174 Er x -51949# 298# 8064# 2# B- 1916# 301# 173 944230# 320# + 36 105 69 174 Tm + -53865.547 44.767 8070.648 0.257 B- 3080.000 44.721 173 942172.953 48.058 + 34 104 70 174 Yb -56945.547 2.013 8083.853 0.012 B- -1373.411 1.607 173 938866.437 2.160 + 32 103 71 174 Lu -55572.136 2.149 8071.464 0.012 B- 274.523 2.169 173 940340.854 2.307 + 30 102 72 174 Hf -55846.659 2.651 8068.545 0.015 B- -4105.893 28.070 173 940046.141 2.845 + 28 101 73 174 Ta x -51740.766 27.945 8040.452 0.161 B- -1513.678 39.520 173 944454.000 30.000 + 26 100 74 174 W x -50227.088 27.945 8027.256 0.161 B- -6553.992 39.520 173 946079.000 30.000 + 24 99 75 174 Re x -43673.096 27.945 7985.094 0.161 B- -3678.011 29.767 173 953115.000 30.000 + 22 98 76 174 Os -39995.085 10.256 7959.459 0.059 B- -9126.348 29.506 173 957063.507 11.010 + 20 97 77 174 Ir -a -30868.738 27.666 7902.513 0.159 B- -5550.291 29.553 173 966861.045 29.700 + 18 96 78 174 Pt -a -25318.446 10.390 7866.118 0.060 B- -11083# 89# 173 972819.528 11.154 + 16 95 79 174 Au -a -14236# 89# 7798# 1# B- -7589# 89# 173 984717# 95# + 14 94 80 174 Hg -a -6646.444 19.459 7749.816 0.112 B- * 173 992864.748 20.890 +0 41 108 67 175 Ho x -43203# 401# 8019# 2# B- 5449# 566# 174 953620# 430# + 39 107 68 175 Er x -48652# 401# 8045# 2# B- 3660# 404# 174 947770# 430# + 37 106 69 175 Tm + -52311.585 50.041 8061.772 0.286 B- 2385.000 50.000 174 943841.200 53.720 + 35 105 70 175 Yb -54696.585 2.013 8070.930 0.012 B- 470.968 1.255 174 941280.797 2.161 + 33 104 71 175 Lu -55167.553 1.902 8069.151 0.011 B- -683.712 1.951 174 940775.191 2.041 + 31 103 72 175 Hf -54483.841 2.670 8060.774 0.015 B- -2075.194 28.072 174 941509.187 2.866 + 29 102 73 175 Ta x -52408.647 27.945 8044.445 0.160 B- -2775.852 39.520 174 943737.000 30.000 + 27 101 74 175 W x -49632.795 27.945 8024.112 0.160 B- -4344.488 39.520 174 946717.000 30.000 + 25 100 75 175 Re x -45288.307 27.945 7994.816 0.160 B- -5183.125 30.325 174 951381.000 30.000 + 23 99 76 175 Os -40105.182 11.776 7960.728 0.067 B- -6710.740 17.089 174 956945.313 12.641 + 21 98 77 175 Ir -33394.442 12.384 7917.910 0.071 B- -7694.263 21.825 174 964149.589 13.295 + 19 97 78 175 Pt -25700.179 17.972 7869.472 0.103 B- -8284.700 43.278 174 972409.721 19.293 + 17 96 79 175 Au -a -17415.479 39.370 7817.661 0.225 B- -9442.587 82.848 174 981303.712 42.265 + 15 95 80 175 Hg -a -7972.892 72.896 7759.232 0.417 B- * 174 991440.747 78.257 +0 40 108 68 176 Er x -46631# 401# 8034# 2# B- 2739# 413# 175 949940# 430# + 38 107 69 176 Tm + -49369.695 100.025 8045.111 0.568 B- 4120.000 100.000 175 946999.449 107.381 + 36 106 70 176 Yb -53489.695 2.249 8064.075 0.013 B- -105.476 1.614 175 942576.447 2.414 + 34 105 71 176 Lu -53384.219 1.900 8059.031 0.011 B- 1194.223 0.874 175 942689.680 2.039 + 32 104 72 176 Hf -54578.442 2.041 8061.371 0.012 B- -3213.068 30.807 175 941407.628 2.190 + 30 103 73 176 Ta x -51365.374 30.739 8038.670 0.175 B- -723.771 41.543 175 944857.000 33.000 + 28 102 74 176 W x -50641.603 27.945 8030.112 0.159 B- -5578.718 39.520 175 945634.000 30.000 + 26 101 75 176 Re x -45062.885 27.945 7993.970 0.159 B- -2964.945 39.520 175 951623.000 30.000 + 24 100 76 176 Os x -42097.940 27.945 7972.679 0.159 B- -8238.496 34.636 175 954806.000 30.000 + 22 99 77 176 Ir -33859.444 20.463 7921.424 0.116 B- -4925.715 24.097 175 963650.389 21.968 + 20 98 78 176 Pt -28933.729 12.725 7888.992 0.072 B- -10537.126 35.522 175 968938.362 13.661 + 18 97 79 176 Au -a -18396.604 33.165 7824.676 0.188 B- -6623.324 35.528 175 980250.432 35.604 + 16 96 80 176 Hg -11773.280 12.741 7782.599 0.072 B- -12354.558 76.159 175 987360.863 13.677 + 14 95 81 176 Tl -p 581.278 75.086 7707.957 0.427 B- * 176 000624.028 80.607 +0 41 109 68 177 Er x -42858# 503# 8013# 3# B- 4611# 585# 176 953990# 540# + 39 108 69 177 Tm x -47469# 298# 8035# 2# B- 3516# 298# 176 949040# 320# + 37 107 70 177 Yb -n -50984.778 2.260 8049.964 0.013 B- 1401.024 1.620 176 945265.586 2.425 + 35 106 71 177 Lu -52385.802 1.901 8053.459 0.011 B- 497.239 0.789 176 943761.525 2.040 + 33 105 72 177 Hf -52883.041 1.892 8051.849 0.011 B- -1166.000 3.000 176 943227.717 2.031 + 31 104 73 177 Ta - -51717.041 3.547 8040.841 0.020 B- -2015.315 28.169 176 944479.469 3.807 + 29 103 74 177 W x -49701.725 27.945 8025.035 0.158 B- -3432.555 39.520 176 946643.000 30.000 + 27 102 75 177 Re x -46269.170 27.945 8001.222 0.158 B- -4319.923 32.062 176 950328.000 30.000 + 25 101 76 177 Os +a -41949.247 15.718 7972.396 0.089 B- -5901.826 25.249 176 954965.628 16.873 + 23 100 77 177 Ir x -36047.421 19.760 7934.632 0.112 B- -6676.984 24.801 176 961301.500 21.213 + 21 99 78 177 Pt -29370.436 14.988 7892.489 0.085 B- -7825.389 18.297 176 968469.537 16.090 + 19 98 79 177 Au -21545.047 10.496 7843.858 0.059 B- -8762.453 75.786 176 976870.439 11.268 + 17 97 80 177 Hg -a -12782.594 75.056 7789.932 0.424 B- -9457.933 78.553 176 986277.319 80.575 + 15 96 81 177 Tl IT -3324.661 23.186 7732.078 0.131 B- * 176 996430.829 24.891 +0 40 109 69 178 Tm x -44116# 401# 8016# 2# B- 5578# 401# 177 952640# 430# + 38 108 70 178 Yb -nn -49693.859 10.250 8042.832 0.058 B- 645.923 10.303 177 946651.444 11.003 + 36 107 71 178 Lu -50339.782 2.681 8042.065 0.015 B- 2097.896 2.056 177 945958.018 2.878 + 34 106 72 178 Hf -52437.678 1.890 8049.456 0.011 B- -1837# 52# 177 943705.833 2.029 + 32 105 73 178 Ta IT -50601# 52# 8035# 0# B- -191# 50# 177 945678# 56# + 30 104 74 178 W - -50409.378 15.250 8029.271 0.086 B- -4755.926 31.835 177 945883.303 16.371 + 28 103 75 178 Re x -45653.453 27.945 7998.157 0.157 B- -2109.487 31.093 177 950989.000 30.000 + 26 102 76 178 Os -43543.966 13.633 7981.911 0.077 B- -7292.082 24.007 177 953253.627 14.635 + 24 101 77 178 Ir x -36251.884 19.760 7936.549 0.111 B- -4254.621 22.208 177 961082.000 21.213 + 22 100 78 178 Pt -31997.263 10.135 7908.251 0.057 B- -9671.141 58.036 177 965649.523 10.880 + 20 99 79 178 Au -a -22326.122 57.144 7849.524 0.321 B- -6009.858 58.157 177 976031.920 61.346 + 18 98 80 178 Hg -a -16316.264 10.808 7811.365 0.061 B- -11523# 103# 177 982483.769 11.602 + 16 97 81 178 Tl -a -4794# 102# 7742# 1# B- -8362# 103# 177 994854# 109# + 14 96 82 178 Pb -a 3568.780 24.162 7690.861 0.136 B- * 178 003831.243 25.938 +0 41 110 69 179 Tm x -41601# 503# 8002# 3# B- 4937# 540# 178 955340# 540# + 39 109 70 179 Yb x -46537# 196# 8025# 1# B- 2523# 196# 178 950040# 210# + 37 108 71 179 Lu -49060.918 5.351 8035.084 0.030 B- 1404.435 5.067 178 947330.935 5.744 + 35 107 72 179 Hf -50465.352 1.890 8038.560 0.011 B- -105.578 0.409 178 945823.212 2.028 + 33 106 73 179 Ta -50359.774 1.925 8033.599 0.011 B- -1062.358 14.520 178 945936.555 2.066 + 31 105 74 179 W -49297.416 14.620 8023.294 0.082 B- -2712.592 26.817 178 947077.043 15.694 + 29 104 75 179 Re -46584.825 24.640 8003.769 0.138 B- -3565.527 29.657 178 949989.130 26.452 + 27 103 76 179 Os -43019.298 16.505 7979.479 0.092 B- -4939.989 19.160 178 953816.881 17.718 + 25 102 77 179 Ir -38079.308 9.732 7947.511 0.054 B- -5811.382 12.584 178 959120.178 10.447 + 23 101 78 179 Pt -32267.927 7.978 7910.674 0.045 B- -7279.346 14.157 178 965358.953 8.564 + 21 100 79 179 Au -24988.580 11.696 7865.637 0.065 B- -8064.573 29.660 178 973173.654 12.555 + 19 99 80 179 Hg -16924.007 27.257 7816.213 0.152 B- -8643.674 48.136 178 981831.329 29.261 + 17 98 81 179 Tl -a -8280.333 39.675 7763.553 0.222 B- -10330.656 85.370 178 991110.696 42.592 + 15 97 82 179 Pb -a 2050.323 75.590 7701.469 0.422 B- * 179 002201.112 81.149 +0 40 110 70 180 Yb x -44600# 298# 8015# 2# B- 2079# 306# 179 952120# 320# + 38 109 71 180 Lu + -46678.794 70.736 8022.052 0.393 B- 3103.000 70.711 179 949888.250 75.938 + 36 108 72 180 Hf -49781.794 1.893 8034.944 0.011 B- -845.601 2.596 179 946557.042 2.032 + 34 107 73 180 Ta +n -48936.193 2.278 8025.900 0.013 B- 702.372 2.605 179 947464.832 2.445 + 32 106 74 180 W -49638.565 1.904 8025.456 0.011 B- -3801.207 21.477 179 946710.805 2.043 + 30 105 75 180 Re x -45837.359 21.392 7999.991 0.119 B- -1475.409 26.860 179 950791.568 22.965 + 28 104 76 180 Os -44361.950 16.244 7987.448 0.090 B- -6384.424 27.111 179 952375.485 17.438 + 26 103 77 180 Ir x -37977.526 21.706 7947.633 0.121 B- -3542.014 24.324 179 959229.446 23.302 + 24 102 78 180 Pt +a -34435.511 10.978 7923.609 0.061 B- -8841.221 22.830 179 963031.955 11.784 + 22 101 79 180 Au -25594.291 20.017 7870.144 0.111 B- -5343.923 23.679 179 972523.397 21.489 + 20 100 80 180 Hg -20250.367 12.650 7836.110 0.070 B- -10988.079 61.318 179 978260.335 13.580 + 18 99 81 180 Tl -a -9262.288 59.999 7770.718 0.333 B- -7332.499 61.581 179 990056.524 64.411 + 16 98 82 180 Pb -a -1929.789 13.868 7725.636 0.077 B- * 179 997928.286 14.888 +0 41 111 70 181 Yb x -41088# 298# 7996# 2# B- 3709# 338# 180 955890# 320# + 39 110 71 181 Lu x -44797.410 159.285 8011.929 0.880 B- 2607.868 159.297 180 951908.000 171.000 + 37 109 72 181 Hf -n -47405.277 1.894 8022.015 0.010 B- 1036.352 2.226 180 949108.338 2.033 + 35 108 73 181 Ta -48441.629 1.844 8023.418 0.010 B- -188.175 4.536 180 947995.769 1.979 + 33 107 74 181 W -48253.454 4.734 8018.056 0.026 B- -1732.476 13.400 180 948197.783 5.081 + 31 106 75 181 Re 4n -46520.978 12.583 8004.162 0.070 B- -2971.015 28.291 180 950057.673 13.508 + 29 105 76 181 Os -43549.963 25.338 7983.426 0.140 B- -4078.330 36.039 180 953247.188 27.201 + 27 104 77 181 Ir x -39471.633 25.627 7956.571 0.142 B- -5097.258 29.625 180 957625.456 27.512 + 25 103 78 181 Pt x -34374.375 14.863 7924.087 0.082 B- -6503.187 24.899 180 963097.588 15.956 + 23 102 79 181 Au -a -27871.188 19.976 7883.835 0.110 B- -7210.066 25.212 180 970079.047 21.445 + 21 101 80 181 Hg -20661.122 15.383 7839.678 0.085 B- -7862.376 17.876 180 977819.371 16.513 + 19 100 81 181 Tl -12798.747 9.108 7791.918 0.050 B- -9681.326 75.959 180 986259.979 9.778 + 17 99 82 181 Pb -a -3117.421 75.411 7734.107 0.417 B- * 180 996653.310 80.957 +0 40 111 71 182 Lu x -41880# 196# 7996# 1# B- 4172# 196# 181 955040# 210# + 38 110 72 182 Hf -nn -46051.959 6.292 8014.850 0.035 B- 381.290 6.400 181 950561.185 6.754 + 36 109 73 182 Ta -46433.249 1.845 8012.647 0.010 B- 1814.465 1.702 181 950151.853 1.980 + 34 108 74 182 W -48247.714 0.843 8018.318 0.005 B- -2800.000 101.980 181 948203.945 0.905 + 32 107 75 182 Re IT -45447.714 101.984 7998.634 0.560 B- -838.641 104.276 181 951209.869 109.484 + 30 106 76 182 Os -44609.073 21.745 7989.728 0.119 B- -5557.395 30.207 181 952110.187 23.344 + 28 105 77 182 Ir -39051.678 20.967 7954.894 0.115 B- -2883.465 24.721 181 958076.296 22.509 + 26 104 78 182 Pt -36168.213 13.096 7934.752 0.072 B- -7867.445 24.124 181 961171.823 14.058 + 24 103 79 182 Au -a -28300.768 20.260 7887.226 0.111 B- -4724.051 22.502 181 969617.874 21.749 + 22 102 80 182 Hg -23576.717 9.793 7856.971 0.054 B- -10268.611 59.886 181 974689.351 10.513 + 20 101 81 182 Tl -a -13308.106 59.080 7796.251 0.325 B- -6482.553 60.312 181 985713.159 63.424 + 18 100 82 182 Pb -a -6825.554 12.131 7756.334 0.067 B- * 181 992672.466 13.023 +0 41 112 71 183 Lu x -39716.110 91.286 7984.812 0.499 B- 3570.002 96.107 182 957363.000 98.000 + 39 111 72 183 Hf + -43286.112 30.057 8000.045 0.164 B- 2010.000 30.000 182 953530.444 32.267 + 37 110 73 183 Ta -n -45296.112 1.855 8006.753 0.010 B- 1071.100 1.713 182 951372.620 1.991 + 35 109 74 183 W -46367.212 0.842 8008.331 0.005 B- -556.000 8.000 182 950222.748 0.903 + 33 108 75 183 Re - -45811.212 8.044 8001.018 0.044 B- -2147.169 50.406 182 950819.638 8.635 + 31 107 76 183 Os -43664.042 49.760 7985.010 0.272 B- -3460.732 52.733 182 953124.719 53.420 + 29 106 77 183 Ir -40203.311 24.398 7961.823 0.133 B- -4430.964 28.923 182 956839.968 26.191 + 27 105 78 183 Pt -35772.347 15.534 7933.335 0.085 B- -5583.218 18.147 182 961596.804 16.676 + 25 104 79 183 Au -30189.129 9.382 7898.551 0.051 B- -6384.599 11.757 182 967590.635 10.071 + 23 103 80 183 Hg -23804.531 7.085 7859.387 0.039 B- -7217.268 11.717 182 974444.783 7.606 + 21 102 81 183 Tl -16587.263 9.331 7815.673 0.051 B- -9016.171 29.648 182 982192.839 10.017 + 19 101 82 183 Pb -a -7571.092 28.141 7762.130 0.154 B- * 182 991872.098 30.211 +0 42 113 71 184 Lu x -36412# 298# 7967# 2# B- 5089# 301# 183 960910# 320# + 40 112 72 184 Hf + -41501.557 39.709 7990.733 0.216 B- 1340.000 30.000 183 955446.243 42.628 + 38 111 73 184 Ta + -42841.557 26.015 7993.764 0.141 B- 2866.000 26.000 183 954007.694 27.928 + 36 110 74 184 W -45707.557 0.878 8005.088 0.005 B- -1482.839 4.281 183 950930.916 0.942 + 34 109 75 184 Re -44224.718 4.367 7992.778 0.024 B- 31.925 4.173 183 952522.809 4.688 + 32 108 76 184 Os -44256.643 1.343 7988.699 0.007 B- -4645.792 27.977 183 952488.536 1.441 + 30 107 77 184 Ir x -39610.851 27.945 7959.198 0.152 B- -2272.019 31.907 183 957476.000 30.000 + 28 106 78 184 Pt -37338.832 15.400 7942.599 0.084 B- -7020.122 27.080 183 959915.113 16.532 + 26 105 79 184 Au -a -30318.710 22.275 7900.194 0.121 B- -3970.032 24.443 183 967451.524 23.912 + 24 104 80 184 Hg -26348.678 10.065 7874.366 0.055 B- -9475.458 22.467 183 971713.528 10.805 + 22 103 81 184 Tl -16873.221 20.086 7818.617 0.109 B- -5821.698 23.821 183 981885.851 21.562 + 20 102 82 184 Pb -11051.523 12.807 7782.725 0.070 B- -12238.950 79.145 183 988135.701 13.748 + 18 101 83 184 Bi -a 1187.428 78.102 7711.957 0.424 B- * 184 001274.756 83.845 +0 43 114 71 185 Lu x -33888# 298# 7954# 2# B- 4432# 312# 184 963620# 320# + 41 113 72 185 Hf x -38319.800 91.286 7973.970 0.493 B- 3076.646 92.380 184 958862.000 98.000 + 39 112 73 185 Ta + -41396.446 14.172 7986.372 0.077 B- 1993.500 14.142 184 955559.084 15.214 + 37 111 74 185 W -43389.946 0.925 7992.919 0.005 B- 432.668 0.860 184 953418.974 0.993 + 35 110 75 185 Re -43822.614 1.235 7991.029 0.007 B- -1012.771 0.447 184 952954.486 1.326 + 33 109 76 185 Os -42809.843 1.313 7981.325 0.007 B- -2474.289 27.976 184 954041.741 1.410 + 31 108 77 185 Ir x -40335.553 27.945 7963.722 0.151 B- -3647.414 38.055 184 956698.000 30.000 + 29 107 78 185 Pt -36688.140 25.832 7939.777 0.140 B- -4821.329 36.671 184 960613.659 27.731 + 27 106 79 185 Au -a -31866.811 26.028 7909.487 0.141 B- -5691.260 30.312 184 965789.569 27.942 + 25 105 80 185 Hg -a -26175.551 15.536 7874.495 0.084 B- -6417.679 25.861 184 971899.388 16.678 + 23 104 81 185 Tl IT -19757.872 20.674 7835.576 0.112 B- -8216.665 26.249 184 978789.050 22.194 + 21 103 82 185 Pb -a -11541.207 16.175 7786.932 0.087 B- -9305# 83# 184 987610.004 17.364 + 19 102 83 185 Bi IT -2236# 81# 7732# 0# B- * 184 997600# 87# +0 42 114 72 186 Hf x -36424.210 54.958 7964.302 0.295 B- 2185.595 81.380 185 960897.000 59.000 + 40 113 73 186 Ta + -38609.805 60.020 7971.847 0.323 B- 3901.000 60.000 185 958550.667 64.433 + 38 112 74 186 W -42510.805 1.542 7988.614 0.008 B- -580.156 1.318 185 954362.771 1.655 + 36 111 75 186 Re -41930.648 1.245 7981.288 0.007 B- 1071.731 1.002 185 954985.595 1.336 + 34 110 76 186 Os -43002.379 1.487 7982.844 0.008 B- -3827.610 16.592 185 953835.044 1.596 + 32 109 77 186 Ir x -39174.769 16.526 7958.060 0.089 B- -1310.295 27.312 185 957944.153 17.740 + 30 108 78 186 Pt -37864.474 21.745 7946.809 0.117 B- -6149.622 30.207 185 959350.812 23.344 + 28 107 79 186 Au -31714.852 20.967 7909.540 0.113 B- -3175.993 23.988 185 965952.703 22.509 + 26 106 80 186 Hg -28538.859 11.653 7888.259 0.063 B- -8652.247 25.211 185 969362.272 12.509 + 24 105 81 186 Tl x -19886.613 22.356 7837.535 0.120 B- -5204.713 25.079 185 978650.841 24.000 + 22 104 82 186 Pb -a -14681.900 11.366 7805.347 0.061 B- -11555.509 61.348 185 984238.331 12.201 + 20 103 83 186 Bi -a -3126.391 60.286 7739.014 0.324 B- -7218.669 68.714 185 996643.681 64.719 + 18 102 84 186 Po -a 4092.278 32.973 7695.998 0.177 B- * 186 004393.241 35.398 +0 43 115 72 187 Hf x -32817# 298# 7946# 2# B- 4084# 305# 186 964770# 320# + 41 114 73 187 Ta x -36900.203 66.136 7963.236 0.354 B- 3006.079 66.154 186 960386.000 71.000 + 39 113 74 187 W -39906.282 1.542 7975.128 0.008 B- 1312.261 1.189 186 957158.841 1.655 + 37 112 75 187 Re -41218.543 1.500 7977.962 0.008 B- 2.467 0.002 186 955750.071 1.609 + 35 111 76 187 Os -41221.010 1.500 7973.791 0.008 B- -1671.638 27.985 186 955747.422 1.609 + 33 110 77 187 Ir x -39549.372 27.945 7960.668 0.149 B- -2864.323 36.868 186 957542.000 30.000 + 31 109 78 187 Pt -36685.050 24.048 7941.168 0.129 B- -3657.212 27.377 186 960616.976 25.816 + 29 108 79 187 Au -33027.838 22.308 7917.427 0.119 B- -4910.159 26.288 186 964543.155 23.948 + 27 107 80 187 Hg -28117.679 13.908 7886.985 0.074 B- -5674.587 16.125 186 969814.428 14.930 + 25 106 81 187 Tl -22443.092 8.161 7852.456 0.044 B- -7456.187 9.620 186 975906.348 8.760 + 23 105 82 187 Pb -14986.905 5.094 7808.400 0.027 B- -8603.549 11.227 186 983910.895 5.468 + 21 104 83 187 Bi -a -6383.356 10.005 7758.208 0.054 B- -9216.080 33.422 186 993147.184 10.740 + 19 103 84 187 Po -a 2832.724 31.890 7704.740 0.171 B- * 187 003041.054 34.234 +0 44 116 72 188 Hf x -30879# 298# 7936# 2# B- 2733# 305# 187 966850# 320# + 42 115 73 188 Ta x -33612.030 66.136 7946.321 0.352 B- 5057.847 66.221 187 963916.000 71.000 + 40 114 74 188 W + -38669.876 3.354 7969.063 0.018 B- 349.000 3.000 187 958486.177 3.600 + 38 113 75 188 Re -n -39018.876 1.500 7966.758 0.008 B- 2120.394 0.153 187 958111.510 1.610 + 36 112 76 188 Os -41139.270 1.506 7973.875 0.008 B- -2787.888 9.496 187 955835.174 1.616 + 34 111 77 188 Ir -38351.382 9.561 7954.885 0.051 B- -522.376 8.698 187 958828.095 10.264 + 32 110 78 188 Pt -37829.006 5.641 7947.945 0.030 B- -5552.173 16.391 187 959388.889 6.056 + 30 109 79 188 Au -32276.833 15.391 7914.250 0.082 B- -2065.584 15.311 187 965349.392 16.522 + 28 108 80 188 Hg -30211.250 11.280 7899.102 0.060 B- -7874.849 31.961 187 967566.887 12.109 + 26 107 81 188 Tl x -22336.400 29.904 7853.053 0.159 B- -4521.405 31.736 187 976020.886 32.103 + 24 106 82 188 Pb -a -17814.995 10.626 7824.841 0.057 B- -10630.329 23.261 187 980874.815 11.407 + 22 105 83 188 Bi -a -7184.666 20.693 7764.136 0.110 B- -6640.273 28.760 187 992286.943 22.214 + 20 104 84 188 Po -a -544.393 19.973 7724.654 0.106 B- * 187 999415.569 21.442 +0 45 117 72 189 Hf x -27162# 298# 7917# 2# B- 4667# 422# 188 970840# 320# + 43 116 73 189 Ta x -31829# 298# 7938# 2# B- 3788# 301# 188 965830# 320# + 41 115 74 189 W x -35617.536 40.986 7953.454 0.217 B- 2363.182 41.821 188 961763.000 44.000 + 39 114 75 189 Re +p -37980.718 8.318 7961.818 0.044 B- 1007.744 8.167 188 959226.020 8.929 + 37 113 76 189 Os -38988.462 1.578 7963.011 0.008 B- -531.759 12.693 188 958144.162 1.694 + 35 112 77 189 Ir -38456.703 12.777 7956.058 0.068 B- -1971.278 13.954 188 958715.028 13.716 + 33 111 78 189 Pt -36485.425 11.232 7941.489 0.059 B- -2903.471 23.009 188 960831.282 12.057 + 31 110 79 189 Au x -33581.954 20.081 7921.987 0.106 B- -3955.720 37.401 188 963948.286 21.558 + 29 109 80 189 Hg -29626.234 31.553 7896.918 0.167 B- -5024.054 33.380 188 968194.927 33.873 + 27 108 81 189 Tl +a -24602.181 10.891 7866.196 0.058 B- -6724.016 36.145 188 973588.471 11.692 + 25 107 82 189 Pb x -17878.164 34.465 7826.480 0.182 B- -7813.358 40.282 188 980807.000 37.000 + 23 106 83 189 Bi -a -10064.807 20.851 7781.000 0.110 B- -8642.816 30.354 188 989194.984 22.384 + 21 105 84 189 Po -a -1421.991 22.060 7731.131 0.117 B- * 188 998473.429 23.681 +0 44 117 73 190 Ta x -28513# 196# 7921# 1# B- 5868# 199# 189 969390# 210# + 42 116 74 190 W -34380.894 38.876 7947.566 0.205 B- 1254.097 63.503 189 963090.589 41.735 + 40 115 75 190 Re -35634.992 70.542 7950.049 0.371 B- 3074.450 70.551 189 961744.260 75.729 + 38 114 76 190 Os -38709.442 1.588 7962.112 0.008 B- -1953.820 1.223 189 958443.702 1.705 + 36 113 77 190 Ir +n -36755.621 1.963 7947.712 0.010 B- 569.616 5.665 189 960541.215 2.107 + 34 112 78 190 Pt -37325.237 5.834 7946.592 0.031 B- -4442.000 15.000 189 959929.707 6.263 + 32 111 79 190 Au - -32883.237 16.095 7919.095 0.085 B- -1513.068 22.631 189 964698.390 17.278 + 30 110 80 190 Hg -31370.170 15.913 7907.014 0.084 B- -6991# 53# 189 966322.735 17.083 + 28 109 81 190 Tl IT -24379# 50# 7866# 0# B- -3963# 52# 189 973828# 54# + 26 108 82 190 Pb -a -20416.486 12.516 7841.128 0.066 B- -9817.539 25.864 189 978081.999 13.436 + 24 107 83 190 Bi -a -10598.947 22.634 7785.339 0.119 B- -6035.157 26.337 189 988621.561 24.298 + 22 106 84 190 Po -a -4563.790 13.467 7749.458 0.071 B- * 189 995100.569 14.457 +0 45 118 73 191 Ta x -26492# 298# 7911# 2# B- 4684# 301# 190 971560# 320# + 43 117 74 191 W x -31176.173 44.712 7931.435 0.234 B- 3175.881 45.897 190 966531.000 48.000 + 41 116 75 191 Re +p -34352.054 10.365 7943.967 0.054 B- 2044.806 10.245 190 963121.551 11.127 + 39 115 76 191 Os -36396.860 1.592 7950.576 0.008 B- 313.977 1.151 190 960926.361 1.708 + 37 114 77 191 Ir -36710.837 1.922 7948.124 0.010 B- -1009.384 3.924 190 960589.293 2.063 + 35 113 78 191 Pt -35701.452 4.960 7938.743 0.026 B- -1890.315 37.023 190 961672.912 5.325 + 33 112 79 191 Au -33811.138 37.054 7924.750 0.194 B- -3218.230 40.065 190 963702.248 39.779 + 31 111 80 191 Hg -30592.908 22.591 7903.805 0.118 B- -4310.059 23.756 190 967157.160 24.251 + 29 110 81 191 Tl +a -26282.849 7.349 7877.143 0.038 B- -6047.073 38.892 190 971784.199 7.889 + 27 109 82 191 Pb x -20235.776 38.191 7841.387 0.200 B- -6996.039 38.918 190 978276.000 41.000 + 25 108 83 191 Bi -13239.737 7.486 7800.663 0.039 B- -8170.977 10.319 190 985786.556 8.036 + 23 107 84 191 Po -5068.760 7.103 7753.787 0.037 B- -8932.513 17.600 190 994558.462 7.625 + 21 106 85 191 At -a 3863.753 16.103 7702.923 0.084 B- * 191 004147.909 17.287 +0 46 119 73 192 Ta x -23157# 401# 7894# 2# B- 6493# 446# 191 975140# 430# + 44 118 74 192 W x -29649# 196# 7924# 1# B- 1939# 210# 191 968170# 210# + 42 117 75 192 Re x -31588.825 76.383 7930.238 0.398 B- 4295.120 76.431 191 966088.000 82.000 + 40 116 76 192 Os -35883.945 2.726 7948.534 0.014 B- -1046.300 2.400 191 961476.998 2.926 + 38 115 77 192 Ir -34837.645 1.924 7939.010 0.010 B- 1454.529 2.346 191 962600.247 2.065 + 36 114 78 192 Pt -36292.174 3.004 7942.511 0.016 B- -3516.341 15.617 191 961038.746 3.225 + 34 113 79 192 Au - -32775.833 15.904 7920.122 0.083 B- -764.764 22.236 191 964813.694 17.073 + 32 112 80 192 Hg x -32011.069 15.543 7912.064 0.081 B- -6138.823 35.279 191 965634.702 16.686 + 30 111 81 192 Tl x -25872.246 31.671 7876.016 0.165 B- -3306.812 34.005 191 972225.000 34.000 + 28 110 82 192 Pb -a -22565.434 12.382 7854.718 0.064 B- -9029.950 32.750 191 975775.008 13.292 + 26 109 83 192 Bi -a -13535.485 30.319 7803.613 0.158 B- -5464.952 32.291 191 985469.058 32.548 + 24 108 84 192 Po -a -8070.533 11.113 7771.075 0.058 B- -11006.330 34.693 191 991335.925 11.929 + 22 107 85 192 At -a 2935.796 32.865 7709.675 0.171 B- * 192 003151.707 35.281 +0 45 119 74 193 W x -26287# 196# 7908# 1# B- 3949# 199# 192 971780# 210# + 43 118 75 193 Re x -30235.364 38.191 7923.956 0.198 B- 3160.680 38.289 192 967541.000 41.000 + 41 117 76 193 Os -33396.044 2.730 7936.279 0.014 B- 1142.275 2.404 192 964147.870 2.931 + 39 116 77 193 Ir -34538.319 1.932 7938.144 0.010 B- -56.628 0.300 192 962921.587 2.074 + 37 115 78 193 Pt -34481.690 1.952 7933.797 0.010 B- -1075.761 8.889 192 962982.380 2.095 + 35 114 79 193 Au -33405.930 8.681 7924.170 0.045 B- -2343.081 14.371 192 964137.257 9.319 + 33 113 80 193 Hg -31062.849 15.508 7907.976 0.080 B- -3585.637 16.896 192 966652.658 16.648 + 31 112 81 193 Tl x -27477.212 6.707 7885.344 0.035 B- -5282.722 50.028 192 970501.998 7.200 + 29 111 82 193 Pb x -22194.490 49.577 7853.919 0.257 B- -6321.658 50.501 192 976173.234 53.222 + 27 110 83 193 Bi x -15872.832 9.620 7817.110 0.050 B- -7513.305 35.970 192 982959.813 10.327 + 25 109 84 193 Po -a -8359.526 34.659 7774.128 0.180 B- -8291.917 40.856 192 991025.678 37.208 + 23 108 85 193 At -a -67.609 21.632 7727.111 0.112 B- -9110.533 33.144 192 999927.418 23.222 + 21 107 86 193 Rn -a 9042.924 25.112 7675.852 0.130 B- * 193 009707.979 26.959 +0 46 120 74 194 W x -24526# 298# 7899# 2# B- 2711# 357# 193 973670# 320# + 44 119 75 194 Re x -27237# 196# 7909# 1# B- 5200# 196# 193 970760# 210# + 42 118 76 194 Os + -32437.191 2.783 7932.033 0.014 B- 96.600 2.000 193 965177.240 2.987 + 40 117 77 194 Ir -n -32533.791 1.935 7928.498 0.010 B- 2228.772 2.096 193 965073.536 2.077 + 38 116 78 194 Pt -34762.564 0.935 7935.954 0.005 B- -2549.409 2.156 193 962680.850 1.003 + 36 115 79 194 Au +3n -32213.155 2.149 7918.780 0.011 B- -29.210 3.600 193 965417.754 2.307 + 34 114 80 194 Hg x -32183.944 2.888 7914.597 0.015 B- -5246.454 14.268 193 965449.112 3.100 + 32 113 81 194 Tl x -26937.491 13.972 7883.520 0.072 B- -2730.058 22.348 193 971081.412 15.000 + 30 112 82 194 Pb -24207.433 17.441 7865.415 0.090 B- -8171# 54# 193 974012.250 18.723 + 28 111 83 194 Bi -a -16036# 51# 7819# 0# B- -5032# 52# 193 982785# 54# + 26 110 84 194 Po -a -11004.576 12.913 7789.294 0.067 B- -10293.044 30.067 193 988186.101 13.863 + 24 109 85 194 At -a -711.531 27.153 7732.204 0.140 B- -6434.994 31.983 193 999236.139 29.149 + 22 108 86 194 Rn -a 5723.462 16.900 7695.001 0.087 B- * 194 006144.389 18.143 +0 45 120 75 195 Re x -25579# 298# 7902# 2# B- 3933# 304# 194 972540# 320# + 43 119 76 195 Os x -29511.593 60.547 7917.744 0.310 B- 2182.741 60.578 194 968318.000 65.000 + 41 118 77 195 Ir -n -31694.334 1.936 7924.926 0.010 B- 1101.968 2.094 194 965974.730 2.078 + 39 117 78 195 Pt -32796.302 0.927 7926.565 0.005 B- -226.824 1.000 194 964791.719 0.995 + 37 116 79 195 Au -32569.478 1.363 7921.389 0.007 B- -1569.861 23.166 194 965035.225 1.463 + 35 115 80 195 Hg -30999.617 23.145 7909.327 0.119 B- -2844.529 25.659 194 966720.540 24.847 + 33 114 81 195 Tl -28155.088 11.094 7890.727 0.057 B- -4441.973 25.867 194 969774.268 11.909 + 31 113 82 195 Pb x -23713.115 23.367 7863.936 0.120 B- -5687.571 23.957 194 974542.922 25.085 + 29 112 83 195 Bi -18025.544 5.287 7830.757 0.027 B- -6964.549 38.657 194 980648.781 5.675 + 27 111 84 195 Po -a -11060.995 38.293 7791.029 0.196 B- -7585.169 39.361 194 988125.532 41.109 + 25 110 85 195 At -a -3475.827 9.104 7748.119 0.047 B- -8526.083 51.316 194 996268.546 9.773 + 23 109 86 195 Rn -a 5050.256 50.502 7700.384 0.259 B- * 195 005421.673 54.216 +0 46 121 75 196 Re x -22542# 298# 7887# 2# B- 5737# 301# 195 975800# 320# + 44 120 76 196 Os +pp -28278.795 40.059 7912.238 0.204 B- 1159.106 55.496 195 969641.463 43.004 + 42 119 77 196 Ir + -29437.900 38.422 7914.160 0.196 B- 3209.016 38.411 195 968397.112 41.247 + 40 118 78 196 Pt -32646.917 0.918 7926.541 0.005 B- -1506.987 2.985 195 964952.091 0.985 + 38 117 79 196 Au -31139.930 2.985 7914.861 0.015 B- 686.836 3.120 195 966569.908 3.204 + 36 116 80 196 Hg -31826.765 2.955 7914.373 0.015 B- -4330.174 12.465 195 965832.560 3.172 + 34 115 81 196 Tl x -27496.591 12.109 7888.289 0.062 B- -2135.953 18.717 195 970481.193 13.000 + 32 114 82 196 Pb x -25360.638 14.272 7873.400 0.073 B- -7351.608 28.292 195 972774.233 15.322 + 30 113 83 196 Bi x -18009.031 24.428 7831.900 0.125 B- -4526.495 27.493 195 980666.509 26.224 + 28 112 84 196 Po -a -13482.535 12.615 7804.814 0.064 B- -9569.906 33.073 195 985525.902 13.542 + 26 111 85 196 At -a -3912.629 30.573 7751.997 0.156 B- -5883.669 33.803 195 995799.619 32.821 + 24 110 86 196 Rn -a 1971.040 14.419 7717.986 0.074 B- * 196 002115.998 15.479 +0 47 122 75 197 Re x -20502# 298# 7878# 2# B- 4807# 357# 196 977990# 320# + 45 121 76 197 Os x -25309# 196# 7898# 1# B- 2957# 197# 196 972830# 210# + 43 120 77 197 Ir +p -28265.798 20.117 7909.008 0.102 B- 2156.155 20.107 196 969655.415 21.596 + 41 119 78 197 Pt -30421.954 0.879 7915.982 0.004 B- 719.021 0.590 196 967340.687 0.943 + 39 118 79 197 Au -31140.975 0.657 7915.660 0.003 B- -599.939 3.205 196 966568.786 0.705 + 37 117 80 197 Hg -30541.036 3.214 7908.644 0.016 B- -2201.161 16.678 196 967212.847 3.450 + 35 116 81 197 Tl +a -28339.875 16.367 7893.499 0.083 B- -3591.166 17.295 196 969575.890 17.570 + 33 115 82 197 Pb IT -24748.709 5.590 7871.298 0.028 B- -5061.676 10.034 196 973431.166 6.001 + 31 114 83 197 Bi +a -19687.033 8.333 7841.633 0.042 B- -6328.964 50.373 196 978865.099 8.946 + 29 113 84 197 Po -a -13358.069 49.679 7805.535 0.252 B- -7013.838 71.138 196 985659.522 53.332 + 27 112 85 197 At -a -6344.231 50.917 7765.961 0.258 B- -7820.295 62.007 196 993189.187 54.661 + 25 111 86 197 Rn -a 1476.065 35.388 7722.292 0.180 B- * 197 001584.620 37.990 +0 48 123 75 198 Re x -17139# 401# 7862# 2# B- 6697# 446# 197 981600# 430# + 46 122 76 198 Os x -23837# 196# 7891# 1# B- 1984# 277# 197 974410# 210# + 44 121 77 198 Ir x -25821# 196# 7897# 1# B- 4085# 196# 197 972280# 210# + 42 120 78 198 Pt -29905.689 2.165 7914.159 0.011 B- -323.694 2.065 197 967894.920 2.324 + 40 119 79 198 Au -29581.995 0.651 7908.573 0.003 B- 1372.852 0.535 197 968242.420 0.698 + 38 118 80 198 Hg -30954.847 0.480 7911.555 0.002 B- -3460.000 80.000 197 966768.602 0.515 + 36 117 81 198 Tl - -27494.847 80.001 7890.129 0.404 B- -1444.758 81.318 197 970483.065 85.885 + 34 116 82 198 Pb x -26050.089 14.573 7878.881 0.074 B- -6680.603 31.517 197 972034.077 15.645 + 32 115 83 198 Bi x -19369.486 27.945 7841.189 0.141 B- -3896.563 32.935 197 979206.000 30.000 + 30 114 84 198 Po -15472.924 17.430 7817.559 0.088 B- -8752# 54# 197 983389.132 18.711 + 28 113 85 198 At -a -6721# 51# 7769# 0# B- -5491# 52# 197 992784# 54# + 26 112 86 198 Rn -a -1230.357 13.422 7737.724 0.068 B- * 197 998679.156 14.409 +0 47 123 76 199 Os x -20484# 196# 7875# 1# B- 3917# 200# 198 978010# 210# + 45 122 77 199 Ir p-2n -24400.204 41.057 7891.214 0.206 B- 2990.167 41.003 198 973805.301 44.076 + 43 121 78 199 Pt -n -27390.372 2.222 7902.309 0.011 B- 1704.580 2.126 198 970595.224 2.385 + 41 120 79 199 Au -29094.952 0.652 7906.943 0.003 B- 451.438 0.649 198 968765.282 0.699 + 39 119 80 199 Hg -29546.390 0.426 7905.280 0.002 B- -1486.996 27.948 198 968280.643 0.457 + 37 118 81 199 Tl x -28059.394 27.945 7893.877 0.140 B- -2827.718 29.679 198 969877.000 30.000 + 35 117 82 199 Pb +a -25231.676 9.996 7875.736 0.050 B- -4434.219 14.547 198 972912.680 10.730 + 33 116 83 199 Bi -20797.457 10.569 7849.522 0.053 B- -5583.473 25.716 198 977673.010 11.345 + 31 115 84 199 Po -a -15213.984 23.444 7817.533 0.118 B- -6390.551 24.054 198 983667.115 25.167 + 29 114 85 199 At -8823.433 5.384 7781.488 0.027 B- -7323.594 63.209 198 990527.654 5.780 + 27 113 86 199 Rn -a -1499.839 62.979 7740.755 0.316 B- -8261.176 75.602 198 998389.856 67.611 + 25 112 87 199 Fr -a 6761.337 41.825 7695.310 0.210 B- * 199 007258.594 44.900 +0 48 124 76 200 Os x -18779# 298# 7868# 1# B- 2832# 357# 199 979840# 320# + 46 123 77 200 Ir x -21611# 196# 7878# 1# B- 4990# 197# 199 976800# 210# + 44 122 78 200 Pt -nn -26600.853 20.117 7899.206 0.101 B- 639.332 33.442 199 971442.807 21.596 + 42 121 79 200 Au -27240.185 26.716 7898.491 0.134 B- 2263.406 26.718 199 970756.456 28.681 + 40 120 80 200 Hg -29503.591 0.435 7905.896 0.002 B- -2456.040 5.735 199 968326.590 0.467 + 38 119 81 200 Tl - -27047.551 5.751 7889.705 0.029 B- -797.019 12.348 199 970963.258 6.174 + 36 118 82 200 Pb 4n -26250.532 10.938 7881.808 0.055 B- -5879.857 24.849 199 971818.893 11.742 + 34 117 83 200 Bi +a -20370.675 22.312 7848.497 0.112 B- -3416.357 26.552 199 978131.179 23.953 + 32 116 84 200 Po -a -16954.318 14.393 7827.503 0.072 B- -7966.347 28.384 199 981798.790 15.451 + 30 115 85 200 At -a -8987.971 24.465 7783.760 0.122 B- -4973.633 27.609 199 990351.015 26.264 + 28 114 86 200 Rn -a -4014.338 12.795 7754.980 0.064 B- -10149.160 59.987 199 995690.431 13.735 + 26 113 87 200 Fr -a 6134.822 58.606 7700.322 0.293 B- * 200 006586.003 62.916 +0 49 125 76 201 Os x -15239# 298# 7851# 1# B- 4657# 357# 200 983640# 320# + 47 124 77 201 Ir x -19897# 196# 7871# 1# B- 3844# 202# 200 978640# 210# + 45 123 78 201 Pt + -23740.883 50.103 7885.834 0.249 B- 2660.000 50.000 200 974513.112 53.787 + 43 122 79 201 Au -26400.883 3.206 7895.175 0.016 B- 1261.844 3.147 200 971657.484 3.441 + 41 121 80 201 Hg -27662.727 0.646 7897.561 0.003 B- -483.793 14.336 200 970302.839 0.693 + 39 120 81 201 Tl -27178.934 14.342 7891.262 0.071 B- -1919.535 23.614 200 970822.212 15.397 + 37 119 82 201 Pb -25259.399 21.634 7877.820 0.108 B- -3844.740 26.450 200 972882.917 23.225 + 35 118 83 201 Bi +a -21414.660 15.227 7854.799 0.076 B- -4889.775 16.312 200 977010.416 16.347 + 33 117 84 201 Po -a -16524.884 5.848 7826.580 0.029 B- -5735.526 10.059 200 982259.806 6.278 + 31 116 85 201 At +a -10789.358 8.184 7794.152 0.041 B- -6716.876 50.401 200 988417.147 8.786 + 29 115 86 201 Rn -a -4072.482 49.732 7756.843 0.247 B- -7674.191 86.981 200 995628.010 53.389 + 27 114 87 201 Fr -a 3601.709 71.362 7714.771 0.355 B- -8239# 128# 201 003866.593 76.610 + 25 113 88 201 Ra -a 11841# 106# 7670# 1# B- * 201 012712# 114# +0 50 126 76 202 Os x -13087# 401# 7842# 2# B- 3689# 499# 201 985950# 430# + 48 125 77 202 Ir x -16776# 298# 7856# 1# B- 5916# 299# 201 981990# 320# + 46 124 78 202 Pt x -22692.125 25.150 7881.560 0.125 B- 1660.854 34.276 201 975639.000 27.000 + 44 123 79 202 Au x -24352.979 23.287 7885.909 0.115 B- 2992.517 23.296 201 973856.000 25.000 + 42 122 80 202 Hg -27345.496 0.645 7896.851 0.003 B- -1359.088 14.286 201 970643.400 0.692 + 40 121 81 202 Tl -25986.409 14.285 7886.250 0.071 B- -46.188 14.277 201 972102.441 15.335 + 38 120 82 202 Pb -25940.221 3.764 7882.148 0.019 B- -5199.446 15.855 201 972152.026 4.040 + 36 119 83 202 Bi -20740.775 15.404 7852.535 0.076 B- -2816.648 21.263 201 977733.861 16.536 + 34 118 84 202 Po -a -17924.127 14.672 7834.718 0.073 B- -7333.321 31.591 201 980757.657 15.750 + 32 117 85 202 At -a -10590.805 27.977 7794.542 0.138 B- -4316.520 33.013 201 988630.302 30.034 + 30 116 86 202 Rn -a -6274.285 17.526 7769.300 0.087 B- -9366# 54# 201 993264.277 18.814 + 28 115 87 202 Fr -a 3092# 51# 7719# 0# B- -5999# 56# 202 003320# 55# + 26 114 88 202 Ra -a 9091.143 24.423 7685.487 0.121 B- * 202 009759.744 26.219 +0 49 126 77 203 Ir x -14690# 401# 7847# 2# B- 4937# 446# 202 984230# 430# + 47 125 78 203 Pt x -19627# 196# 7867# 1# B- 3517# 196# 202 978930# 210# + 45 124 79 203 Au -23143.484 3.082 7880.864 0.015 B- 2125.305 3.479 202 975154.446 3.308 + 43 123 80 203 Hg -25268.789 1.690 7887.480 0.008 B- 492.056 1.225 202 972872.837 1.814 + 41 122 81 203 Tl -25760.846 1.271 7886.050 0.006 B- -974.840 6.461 202 972344.593 1.363 + 39 121 82 203 Pb -24786.006 6.572 7877.394 0.032 B- -3261.769 14.362 202 973391.126 7.055 + 37 120 83 203 Bi +a -21524.237 12.782 7857.472 0.063 B- -4213.477 15.436 202 976892.779 13.721 + 35 119 84 203 Po +a -17310.760 8.655 7832.862 0.043 B- -5148.234 13.666 202 981416.133 9.291 + 33 118 85 203 At -12162.526 10.576 7803.648 0.052 B- -6003.247 25.803 202 986942.990 11.353 + 31 117 86 203 Rn -a -6159.279 23.536 7770.221 0.116 B- -7035.563 24.347 202 993387.741 25.266 + 29 116 87 203 Fr 876.284 6.232 7731.709 0.031 B- -7790.592 80.655 203 000940.729 6.689 + 27 115 88 203 Ra -a 8666.876 80.414 7689.478 0.396 B- * 203 009304.274 86.327 +0 50 127 77 204 Ir x -9688# 401# 7824# 2# B- 8234# 446# 203 989600# 430# + 48 126 78 204 Pt x -17922# 196# 7860# 1# B- 2728# 280# 203 980760# 210# + 46 125 79 204 Au + -20650# 200# 7870# 1# B- 4040# 200# 203 977831# 215# + 44 124 80 204 Hg -24690.197 0.491 7885.545 0.002 B- -344.578 1.282 203 973493.981 0.527 + 42 123 81 204 Tl -24345.620 1.250 7880.021 0.006 B- 763.750 0.177 203 973863.900 1.341 + 40 122 82 204 Pb -25109.370 1.242 7879.930 0.006 B- -4463.795 9.257 203 973043.981 1.333 + 38 121 83 204 Bi +a -20645.575 9.181 7854.213 0.045 B- -2304.774 14.341 203 977836.062 9.856 + 36 120 84 204 Po -a -18340.801 11.023 7839.080 0.054 B- -6465.369 24.857 203 980310.339 11.833 + 34 119 85 204 At -11875.432 22.279 7803.552 0.109 B- -3892.456 26.586 203 987251.198 23.917 + 32 118 86 204 Rn -a -7982.976 14.508 7780.637 0.071 B- -8590.365 28.551 203 991429.922 15.575 + 30 117 87 204 Fr -a 607.390 24.590 7734.692 0.121 B- -5439.745 28.539 204 000652.059 26.398 + 28 116 88 204 Ra -a 6047.135 14.485 7704.191 0.071 B- * 204 006491.866 15.550 +0 49 127 78 205 Pt x -12966# 298# 7837# 1# B- 5803# 357# 204 986080# 320# + 47 126 79 205 Au x -18770# 196# 7861# 1# B- 3518# 196# 204 979850# 210# + 45 125 80 205 Hg -22287.468 3.661 7874.731 0.018 B- 1532.881 3.732 204 976073.417 3.930 + 43 124 81 205 Tl -23820.349 1.329 7878.392 0.006 B- -50.632 0.503 204 974427.801 1.426 + 41 123 82 205 Pb -23769.717 1.239 7874.328 0.006 B- -2705.559 5.112 204 974482.157 1.330 + 39 122 83 205 Bi -21064.159 5.117 7857.314 0.025 B- -3554.951 20.947 204 977386.694 5.493 + 37 121 84 205 Po -17509.208 20.320 7836.157 0.099 B- -4538.956 25.330 204 981203.091 21.814 + 35 120 85 205 At +a -12970.252 15.130 7810.199 0.074 B- -5256.401 52.565 204 986075.861 16.242 + 33 119 86 205 Rn -a -7713.850 50.341 7780.742 0.246 B- -6404.038 50.945 204 991718.840 54.043 + 31 118 87 205 Fr x -1309.812 7.824 7745.686 0.038 B- -7148.645 70.954 204 998593.858 8.399 + 29 117 88 205 Ra -a 5838.833 70.521 7706.998 0.344 B- * 205 006268.245 75.707 +0 50 128 78 206 Pt x -9632# 298# 7822# 1# B- 4583# 422# 205 989660# 320# + 48 127 79 206 Au x -14215# 298# 7840# 1# B- 6731# 299# 205 984740# 320# + 46 126 80 206 Hg +a -20945.200 20.446 7869.169 0.099 B- 1307.643 20.410 205 977514.401 21.949 + 44 125 81 206 Tl -22252.843 1.373 7871.719 0.007 B- 1532.219 0.612 205 976110.589 1.473 + 42 124 82 206 Pb -23785.062 1.238 7875.359 0.006 B- -3757.306 7.546 205 974465.683 1.329 + 40 123 83 206 Bi - -20027.757 7.647 7853.322 0.037 B- -1839.397 8.593 205 978499.317 8.209 + 38 122 84 206 Po -a -18188.360 3.981 7840.595 0.019 B- -5759.374 15.579 205 980473.991 4.274 + 36 121 85 206 At -12428.986 15.064 7808.839 0.073 B- -3313.590 21.082 205 986656.933 16.171 + 34 120 86 206 Rn -a -9115.396 14.764 7788.956 0.072 B- -7872.906 31.827 205 990214.219 15.850 + 32 119 87 206 Fr -a -1242.490 28.195 7746.940 0.137 B- -4808.299 33.458 205 998666.132 30.268 + 30 118 88 206 Ra -a 3565.809 18.013 7719.801 0.087 B- -9896# 74# 206 003828.053 19.338 + 28 117 89 206 Ac -a 13462# 71# 7668# 0# B- * 206 014452# 77# +0 49 128 79 207 Au x -10805# 298# 7825# 1# B- 5682# 300# 206 988400# 320# + 47 127 80 207 Hg x -16487.444 29.808 7848.610 0.144 B- 4545.959 30.310 206 982300.000 32.000 + 45 126 81 207 Tl -21033.402 5.494 7866.792 0.027 B- 1418.121 5.427 206 977419.712 5.897 + 43 125 82 207 Pb -22451.523 1.241 7869.864 0.006 B- -2397.410 2.118 206 975897.297 1.332 + 41 124 83 207 Bi -20054.113 2.445 7854.502 0.012 B- -2908.813 6.614 206 978471.022 2.624 + 39 123 84 207 Po -17145.300 6.676 7836.671 0.032 B- -3918.395 14.081 206 981593.762 7.167 + 37 122 85 207 At +a -13226.905 12.410 7813.962 0.060 B- -4592.192 15.040 206 985800.332 13.322 + 35 121 86 207 Rn +a -8634.713 8.497 7787.998 0.041 B- -5790.376 19.458 206 990730.254 9.121 + 33 120 87 207 Fr -2844.337 17.505 7756.246 0.085 B- -6383.231 57.969 206 996946.478 18.792 + 31 119 88 207 Ra -a 3538.895 55.262 7721.629 0.267 B- -7607.205 74.785 207 003799.159 59.326 + 29 118 89 207 Ac -a 11146.100 50.387 7681.100 0.243 B- * 207 011965.830 54.092 +0 50 129 79 208 Au x -6101# 298# 7804# 1# B- 7164# 300# 207 993450# 320# + 48 128 80 208 Hg x -13265.406 30.739 7834.191 0.148 B- 3483.786 30.803 207 985759.000 33.000 + 46 127 81 208 Tl +a -16749.192 1.977 7847.178 0.010 B- 4998.882 1.716 207 982019.001 2.122 + 44 126 82 208 Pb -21748.074 1.242 7867.450 0.006 B- -2878.363 2.013 207 976652.481 1.333 + 42 125 83 208 Bi +n -18869.711 2.354 7849.851 0.011 B- -1400.559 2.397 207 979742.530 2.527 + 40 124 84 208 Po -a -17469.152 1.801 7839.356 0.009 B- -4999.524 9.095 207 981246.092 1.933 + 38 123 85 208 At +a -12469.628 8.922 7811.558 0.043 B- -2814.402 14.275 207 986613.302 9.578 + 36 122 86 208 Rn -a -9655.227 11.148 7794.266 0.054 B- -6989.414 15.940 207 989634.687 11.968 + 34 121 87 208 Fr -2665.813 11.393 7756.902 0.055 B- -4380.807 19.138 207 997138.132 12.230 + 32 120 88 208 Ra -a 1714.994 15.378 7732.079 0.074 B- -9044.140 57.803 208 001841.122 16.509 + 30 119 89 208 Ac -a 10759.134 55.719 7684.836 0.268 B- -5914.866 65.193 208 011550.406 59.817 + 28 118 90 208 Th -a 16674.000 33.845 7652.638 0.163 B- * 208 017900.275 36.334 +0 51 130 79 209 Au x -2468# 401# 7787# 2# B- 6176# 427# 208 997350# 430# + 49 129 80 209 Hg x -8644# 149# 7813# 1# B- 4993# 149# 208 990720# 160# + 47 128 81 209 Tl +a -13637.674 8.029 7833.363 0.038 B- 3976.448 8.079 208 985359.353 8.619 + 45 127 82 209 Pb -17614.122 1.813 7848.646 0.009 B- 644.028 1.146 208 981090.461 1.946 + 43 126 83 209 Bi -18258.150 1.447 7847.984 0.007 B- -1892.580 1.564 208 980399.068 1.553 + 41 125 84 209 Po -a -16365.570 1.840 7835.185 0.009 B- -3483.209 5.293 208 982430.836 1.975 + 39 124 85 209 At -12882.361 5.107 7814.776 0.024 B- -3953.536 21.036 208 986170.215 5.483 + 37 123 86 209 Rn -a -8928.826 20.414 7792.116 0.098 B- -5160.869 25.148 208 990414.510 21.915 + 35 122 87 209 Fr x -3767.956 14.695 7763.680 0.070 B- -5622.054 52.510 208 995954.932 15.775 + 33 121 88 209 Ra -a 1854.098 50.412 7733.037 0.241 B- -6990.216 71.433 209 001990.455 54.120 + 31 120 89 209 Ac -a 8844.314 50.608 7695.847 0.242 B- -7692.475 100.172 209 009494.762 54.330 + 29 119 90 209 Th -a 16536.789 86.448 7655.298 0.414 B- * 209 017752.974 92.805 +0 52 131 79 210 Au x 2329# 401# 7766# 2# B- 7694# 446# 210 002500# 430# + 50 130 80 210 Hg x -5365# 196# 7799# 1# B- 3881# 196# 209 994240# 210# + 48 129 81 210 Tl +a -9246.048 11.621 7813.584 0.055 B- 5481.933 11.566 209 990073.958 12.475 + 46 128 82 210 Pb -14727.981 1.526 7835.963 0.007 B- 63.486 0.499 209 984188.861 1.638 + 44 127 83 210 Bi -14791.467 1.446 7832.540 0.007 B- 1161.228 0.766 209 984120.705 1.552 + 42 126 84 210 Po -15952.695 1.240 7834.344 0.006 B- -3981.039 7.610 209 982874.076 1.331 + 40 125 85 210 At -a -11971.655 7.710 7811.661 0.037 B- -2367.121 8.915 209 987147.898 8.276 + 38 124 86 210 Rn -a -9604.535 4.531 7796.663 0.022 B- -6272.031 15.824 209 989689.107 4.863 + 36 123 87 210 Fr -3332.504 15.164 7763.071 0.072 B- -3792.820 21.404 209 996422.409 16.279 + 34 122 88 210 Ra -a 460.315 15.122 7741.285 0.072 B- -8329.310 59.360 210 000494.169 16.234 + 32 121 89 210 Ac -a 8789.626 57.402 7697.896 0.273 B- -5270.012 60.438 210 009436.052 61.623 + 30 120 90 210 Th -a 14059.638 18.914 7669.075 0.090 B- * 210 015093.642 20.305 +0 51 131 80 211 Hg x -624# 196# 7778# 1# B- 5454# 200# 210 999330# 210# + 49 130 81 211 Tl x -6077.998 41.917 7799.791 0.199 B- 4413.302 42.000 210 993475.000 45.000 + 47 129 82 211 Pb -10491.300 2.641 7816.999 0.013 B- 1366.859 5.512 210 988737.125 2.834 + 45 128 83 211 Bi -11858.159 5.497 7819.769 0.026 B- 573.967 5.454 210 987269.741 5.901 + 43 127 84 211 Po -a -12432.126 1.342 7818.782 0.006 B- -785.297 2.539 210 986653.562 1.440 + 41 126 85 211 At -a -11646.829 2.771 7811.352 0.013 B- -2891.820 6.894 210 987496.614 2.974 + 39 125 86 211 Rn -a -8755.009 6.830 7793.939 0.032 B- -4615.192 13.792 210 990601.110 7.332 + 37 124 87 211 Fr -4139.817 11.995 7768.358 0.057 B- -4971.841 14.372 210 995555.723 12.876 + 35 123 88 211 Ra x 832.024 7.918 7741.087 0.038 B- -6370.194 53.564 211 000893.214 8.500 + 33 122 89 211 Ac -a 7202.218 52.976 7707.189 0.251 B- -6704.492 91.435 211 007731.899 56.871 + 31 121 90 211 Th -a 13906.710 74.525 7671.706 0.353 B- * 211 014929.468 80.005 +0 52 132 80 212 Hg x 2757# 298# 7763# 1# B- 4308# 359# 212 002960# 320# + 50 131 81 212 Tl +a -1551# 200# 7780# 1# B- 5996# 200# 211 998335# 215# + 48 130 82 212 Pb -7547.241 2.167 7804.312 0.010 B- 569.773 1.902 211 991897.703 2.326 + 46 129 83 212 Bi -8117.014 1.977 7803.309 0.009 B- 2252.026 1.714 211 991286.026 2.122 + 44 128 84 212 Po -10369.040 1.246 7810.241 0.006 B- -1741.252 2.107 211 988868.376 1.337 + 42 127 85 212 At -a -8627.788 2.432 7798.338 0.011 B- 31.455 3.605 211 990737.688 2.611 + 40 126 86 212 Rn -a -8659.243 3.181 7794.796 0.015 B- -5143.461 9.327 211 990703.919 3.414 + 38 125 87 212 Fr -3515.782 8.776 7766.844 0.041 B- -3317.109 14.282 211 996225.652 9.421 + 36 124 88 212 Ra -a -198.673 11.273 7747.507 0.053 B- -7476.596 52.506 211 999786.715 12.102 + 34 123 89 212 Ac -a 7277.922 51.282 7708.549 0.242 B- -4819.945 53.731 212 007813.171 55.052 + 32 122 90 212 Th -a 12097.868 16.039 7682.123 0.076 B- -9515.582 76.563 212 012987.595 17.219 + 30 121 91 212 Pa -a 21613.450 74.864 7633.548 0.353 B- * 212 023202.993 80.370 +0 53 133 80 213 Hg x 7666# 298# 7741# 1# B- 5882# 299# 213 008230# 320# + 51 132 81 213 Tl x 1783.811 27.013 7765.430 0.127 B- 4985.454 27.827 213 001915.000 29.000 + 49 131 82 213 Pb +a -3201.643 6.682 7785.163 0.031 B- 2028.633 8.037 212 996562.894 7.173 + 47 130 83 213 Bi -5230.276 5.203 7791.014 0.024 B- 1422.804 5.553 212 994385.067 5.585 + 45 129 84 213 Po -6653.080 3.094 7794.021 0.015 B- -73.918 5.465 212 992857.623 3.321 + 43 128 85 213 At -a -6579.162 4.921 7790.001 0.023 B- -881.278 7.309 212 992936.978 5.283 + 41 127 86 213 Rn -a -5697.884 5.677 7782.191 0.027 B- -2145.205 7.535 212 993883.069 6.094 + 39 126 87 213 Fr -3552.680 5.096 7768.446 0.024 B- -3910.614 21.158 212 996186.041 5.470 + 37 125 88 213 Ra -a 357.934 20.542 7746.414 0.096 B- -5798.329 56.015 213 000384.258 22.052 + 35 124 89 213 Ac -a 6156.263 52.115 7715.519 0.245 B- -5961.751 88.076 213 006609.020 55.947 + 33 123 90 213 Th -a 12118.013 71.003 7683.856 0.333 B- -7545.116 100.512 213 013009.223 76.224 + 31 122 91 213 Pa -a 19663.130 71.142 7644.760 0.334 B- * 213 021109.239 76.374 +0 54 134 80 214 Hg x 11178# 401# 7727# 2# B- 4713# 446# 214 012000# 430# + 52 133 81 214 Tl x 6465# 196# 7745# 1# B- 6645# 196# 214 006940# 210# + 50 132 82 214 Pb -180.786 2.343 7772.384 0.011 B- 1019.046 11.280 213 999805.917 2.515 + 48 131 83 214 Bi -1199.832 11.227 7773.490 0.052 B- 3269.771 11.170 213 998711.926 12.053 + 46 130 84 214 Po -4469.603 1.527 7785.114 0.007 B- -1090.204 4.107 213 995201.683 1.639 + 44 129 85 214 At -a -3379.399 4.325 7776.364 0.020 B- 939.980 10.014 213 996372.066 4.643 + 42 128 86 214 Rn -a -4319.378 9.199 7777.100 0.043 B- -3361.181 12.503 213 995362.956 9.875 + 40 127 87 214 Fr -a -958.197 8.647 7757.738 0.040 B- -1051.093 10.080 213 998971.333 9.282 + 38 126 88 214 Ra -a 92.896 5.227 7749.170 0.024 B- -6351.635 16.231 214 000099.727 5.611 + 36 125 89 214 Ac -a 6444.531 15.370 7715.834 0.072 B- -4267.798 22.216 214 006918.488 16.499 + 34 124 90 214 Th -a 10712.329 16.057 7692.235 0.075 B- -8773.112 77.800 214 011500.159 17.237 + 32 123 91 214 Pa -a 19485.441 76.125 7647.584 0.356 B- * 214 020918.483 81.723 +0 55 135 80 215 Hg x 16208# 401# 7705# 2# B- 6297# 499# 215 017400# 430# + 53 134 81 215 Tl x 9911# 298# 7730# 1# B- 5495# 315# 215 010640# 320# + 51 133 82 215 Pb +a 4416# 101# 7752# 0# B- 2768# 102# 215 004741# 109# + 49 132 83 215 Bi x 1648.580 14.904 7761.627 0.069 B- 2188.710 15.116 215 001769.823 16.000 + 47 131 84 215 Po -540.130 2.526 7768.168 0.012 B- 714.732 6.852 214 999420.146 2.711 + 45 130 85 215 At -a -1254.862 6.843 7767.854 0.032 B- -86.667 10.181 214 998652.849 7.346 + 43 129 86 215 Rn -a -1168.195 7.687 7763.812 0.036 B- -1486.616 10.306 214 998745.890 8.252 + 41 128 87 215 Fr -a 318.420 7.082 7753.259 0.033 B- -2215.635 10.077 215 000341.838 7.602 + 39 127 88 215 Ra -a 2534.055 7.628 7739.315 0.035 B- -3496.913 14.556 215 002720.420 8.189 + 37 126 89 215 Ac -a 6030.969 12.410 7719.411 0.058 B- -4890.588 15.237 215 006474.511 13.322 + 35 125 90 215 Th -a 10921.557 8.840 7693.025 0.041 B- -6947.227 73.380 215 011724.774 9.490 + 33 124 91 215 Pa -a 17868.783 72.845 7657.074 0.339 B- * 215 019182.929 78.202 +0 56 136 80 216 Hg x 19859# 401# 7690# 2# B- 5142# 499# 216 021320# 430# + 54 135 81 216 Tl x 14718# 298# 7710# 1# B- 7238# 357# 216 015800# 320# + 52 134 82 216 Pb x 7480# 196# 7740# 1# B- 1606# 196# 216 008030# 210# + 50 133 83 216 Bi x 5873.992 11.178 7743.499 0.052 B- 4090.007 11.385 216 006305.989 12.000 + 48 132 84 216 Po 1783.984 2.159 7758.812 0.010 B- -473.543 3.616 216 001915.186 2.318 + 46 131 85 216 At -a 2257.527 3.640 7752.998 0.017 B- 2004.292 6.847 216 002423.555 3.907 + 44 130 86 216 Rn -a 253.235 6.013 7758.655 0.028 B- -2718.105 7.126 216 000271.859 6.455 + 42 129 87 216 Fr -a 2971.341 4.201 7742.449 0.019 B- -320.022 9.548 216 003189.865 4.510 + 40 128 88 216 Ra -a 3291.363 8.750 7737.346 0.041 B- -4853.139 13.927 216 003533.423 9.393 + 38 127 89 216 Ac -a 8144.502 10.841 7711.255 0.050 B- -2154.103 16.206 216 008743.482 11.638 + 36 126 90 216 Th -a 10298.604 12.052 7697.661 0.056 B- -7501.234 54.773 216 011056.007 12.938 + 34 125 91 216 Pa -a 17799.838 53.430 7659.311 0.247 B- * 216 019108.913 57.359 +0 55 136 81 217 Tl x 18313# 401# 7695# 2# B- 6073# 499# 217 019660# 430# + 53 135 82 217 Pb x 12240# 298# 7719# 1# B- 3510# 299# 217 013140# 320# + 51 134 83 217 Bi x 8729.962 17.698 7731.848 0.082 B- 2844.634 18.771 217 009372.000 19.000 + 49 133 84 217 Po +a 5885.328 6.254 7741.352 0.029 B- 1489.400 7.627 217 006318.159 6.713 + 47 132 85 217 At 4395.928 5.126 7744.610 0.024 B- 737.003 6.209 217 004719.222 5.503 + 45 131 86 217 Rn -a 3658.925 4.228 7744.401 0.019 B- -656.018 7.539 217 003928.018 4.538 + 43 130 87 217 Fr -a 4314.943 6.548 7737.773 0.030 B- -1572.776 10.610 217 004632.282 7.029 + 41 129 88 217 Ra -a 5887.719 8.529 7726.920 0.039 B- -2816.043 14.180 217 006320.726 9.155 + 39 128 89 217 Ac -a 8703.762 11.391 7710.337 0.052 B- -3514.367 23.826 217 009343.872 12.229 + 37 127 90 217 Th -a 12218.129 20.934 7690.537 0.096 B- -4851.837 56.339 217 013116.701 22.473 + 35 126 91 217 Pa -a 17069.966 52.308 7664.573 0.241 B- -5901# 113# 217 018325.363 56.154 + 33 125 92 217 U -a 22971# 100# 7634# 0# B- * 217 024661# 108# +0 56 137 81 218 Tl x 23092# 401# 7675# 2# B- 7638# 499# 218 024790# 430# + 54 136 82 218 Pb x 15453# 298# 7706# 1# B- 2237# 299# 218 016590# 320# + 52 135 83 218 Bi x 13216.037 27.013 7712.827 0.124 B- 4857.232 27.115 218 014188.000 29.000 + 50 134 84 218 Po 8358.805 2.341 7731.519 0.011 B- 259.722 11.672 218 008973.546 2.513 + 48 133 85 218 At -a 8099.083 11.621 7729.122 0.053 B- 2881.239 11.709 218 008694.723 12.475 + 46 132 86 218 Rn 5217.844 2.372 7738.750 0.011 B- -1841.626 4.943 218 005601.586 2.546 + 44 131 87 218 Fr -a 7059.470 4.781 7726.713 0.022 B- 408.015 12.039 218 007578.653 5.132 + 42 130 88 218 Ra -a 6651.455 11.186 7724.996 0.051 B- -4192.664 51.931 218 007140.631 12.008 + 40 129 89 218 Ac -a 10844.119 50.742 7702.175 0.233 B- -1522.704 51.813 218 011641.640 54.473 + 38 128 90 218 Th -a 12366.823 10.504 7691.601 0.048 B- -6317.624 21.130 218 013276.331 11.276 + 36 127 91 218 Pa -a 18684.447 18.336 7659.033 0.084 B- -3227.527 25.845 218 020058.579 19.684 + 34 126 92 218 U -a 21911.973 18.228 7640.639 0.084 B- * 218 023523.472 19.568 +0 55 137 82 219 Pb x 20279# 401# 7686# 2# B- 3996# 446# 219 021770# 430# + 53 136 83 219 Bi x 16283# 196# 7700# 1# B- 3601# 196# 219 017480# 210# + 51 135 84 219 Po x 12681.359 15.835 7713.333 0.072 B- 2284.165 16.301 219 013614.000 17.000 + 49 134 85 219 At +a 10397.195 3.869 7720.191 0.018 B- 1566.295 3.177 219 011161.848 4.153 + 47 133 86 219 Rn 8830.900 2.509 7723.771 0.011 B- 212.319 7.090 219 009480.361 2.693 + 45 132 87 219 Fr -a 8618.581 7.082 7721.168 0.032 B- -775.987 10.785 219 009252.427 7.602 + 43 131 88 219 Ra -a 9394.568 8.272 7714.052 0.038 B- -2175.268 51.142 219 010085.484 8.880 + 41 130 89 219 Ac -a 11569.836 50.499 7700.547 0.231 B- -2903.235 71.425 219 012420.730 54.212 + 39 129 90 219 Th -a 14473.071 50.579 7683.718 0.231 B- -4067.413 72.193 219 015537.481 54.298 + 37 128 91 219 Pa -a 18540.484 51.517 7661.573 0.235 B- -4746.056 72.334 219 019904.029 55.305 + 35 127 92 219 U -a 23286.540 50.775 7636.329 0.232 B- -5990# 202# 219 024999.130 54.509 + 33 126 93 219 Np x 29277# 196# 7605# 1# B- * 219 031430# 210# +0 56 138 82 220 Pb x 23669# 401# 7672# 2# B- 2850# 499# 220 025410# 430# + 54 137 83 220 Bi x 20819# 298# 7682# 1# B- 5555# 299# 220 022350# 320# + 52 136 84 220 Po x 15263.461 17.698 7703.224 0.080 B- 887.714 22.549 220 016386.000 19.000 + 50 135 85 220 At x 14375.747 13.972 7703.703 0.064 B- 3762.183 14.138 220 015433.000 15.000 + 48 134 86 220 Rn 10613.564 2.159 7717.247 0.010 B- -869.617 4.065 220 011394.130 2.317 + 46 133 87 220 Fr -a 11483.181 4.086 7709.738 0.019 B- 1212.647 9.069 220 012327.702 4.387 + 44 132 88 220 Ra -a 10270.534 8.251 7711.694 0.038 B- -3473.524 10.141 220 011025.872 8.857 + 42 131 89 220 Ac -a 13744.058 6.148 7692.349 0.028 B- -925.248 22.941 220 014754.854 6.600 + 40 130 90 220 Th -a 14669.306 22.171 7684.588 0.101 B- -5549# 56# 220 015748.148 23.801 + 38 129 91 220 Pa -a 20218# 51# 7656# 0# B- -2715# 113# 220 021705# 55# + 36 128 92 220 U -a 22934# 101# 7640# 0# B- -7377# 220# 220 024620# 108# + 34 127 93 220 Np x 30311# 196# 7603# 1# B- * 220 032540# 210# +0 55 138 83 221 Bi x 24098# 298# 7668# 1# B- 4324# 299# 221 025870# 320# + 53 137 84 221 Po x 19773.755 19.561 7684.481 0.089 B- 2991.027 24.039 221 021228.000 21.000 + 51 136 85 221 At x 16782.727 13.972 7694.475 0.063 B- 2310.034 15.160 221 018017.000 15.000 + 49 135 86 221 Rn +a 14472.693 5.883 7701.387 0.027 B- 1194.094 7.243 221 015537.076 6.315 + 47 134 87 221 Fr 13278.600 5.018 7703.250 0.023 B- 314.364 6.444 221 014255.163 5.386 + 45 133 88 221 Ra -a 12964.236 4.657 7701.133 0.021 B- -1559.227 50.603 221 013917.680 4.999 + 43 132 89 221 Ac -a 14523.463 50.427 7690.537 0.228 B- -2414.892 51.258 221 015591.579 54.135 + 41 131 90 221 Th -a 16938.354 9.357 7676.070 0.042 B- -3438.023 52.114 221 018184.072 10.045 + 39 130 91 221 Pa -a 20376.377 51.281 7656.974 0.232 B- -4107# 114# 221 021874.941 55.052 + 37 129 92 221 U -a 24483# 102# 7635# 0# B- -5362# 221# 221 026284# 110# + 35 128 93 221 Np x 29845# 196# 7607# 1# B- * 221 032040# 210# +0 56 139 83 222 Bi x 28671# 298# 7650# 1# B- 6185# 301# 222 030780# 320# + 54 138 84 222 Po x 22486.265 40.054 7674.005 0.180 B- 1533.239 43.071 222 024140.000 43.000 + 52 137 85 222 At x 20953.026 15.835 7677.387 0.071 B- 4578.995 16.005 222 022494.000 17.000 + 50 136 86 222 Rn 16374.031 2.321 7694.489 0.010 B- 24.269 21.120 222 017578.246 2.492 + 48 135 87 222 Fr 16349.762 21.219 7691.074 0.096 B- 2028.185 21.610 222 017552.192 22.779 + 46 134 88 222 Ra 14321.577 4.568 7696.686 0.021 B- -2300.171 6.687 222 015374.846 4.903 + 44 133 89 222 Ac -a 16621.748 5.197 7682.801 0.023 B- -581.568 13.227 222 017844.181 5.578 + 42 132 90 222 Th -a 17203.317 12.288 7676.657 0.055 B- -4952# 74# 222 018468.521 13.191 + 40 131 91 222 Pa -a 22155# 72# 7651# 0# B- -2067# 124# 222 023784# 78# + 38 130 92 222 U -a 24222# 101# 7638# 0# B- -6797# 220# 222 026003# 108# + 36 129 93 222 Np x 31019# 196# 7604# 1# B- * 222 033300# 210# +0 57 140 83 223 Bi x 32137# 401# 7636# 2# B- 5058# 446# 223 034500# 430# + 55 139 84 223 Po x 27079# 196# 7655# 1# B- 3651# 196# 223 029070# 210# + 53 138 85 223 At x 23428.006 13.972 7668.055 0.063 B- 3038.267 16.013 223 025151.000 15.000 + 51 137 86 223 Rn 20389.739 7.822 7678.171 0.035 B- 2005.761 8.174 223 021889.286 8.397 + 49 136 87 223 Fr +a 18383.978 2.374 7683.657 0.011 B- 1149.170 0.848 223 019736.013 2.548 + 47 135 88 223 Ra 17234.808 2.501 7685.302 0.011 B- -591.889 7.160 223 018502.327 2.684 + 45 134 89 223 Ac -a 17826.697 7.152 7679.140 0.032 B- -1559.420 11.575 223 019137.747 7.677 + 43 133 90 223 Th -a 19386.117 9.225 7668.639 0.041 B- -2934.915 71.639 223 020811.853 9.902 + 41 132 91 223 Pa -a 22321.032 71.064 7651.969 0.319 B- -3517.855 100.506 223 023962.614 76.290 + 39 131 92 223 U -a 25838.886 71.121 7632.686 0.319 B- -4761# 208# 223 027739.187 76.351 + 37 130 93 223 Np x 30600# 196# 7608# 1# B- * 223 032850# 210# +0 58 141 83 224 Bi x 36766# 401# 7617# 2# B- 6856# 446# 224 039470# 430# + 56 140 84 224 Po x 29910# 196# 7644# 1# B- 2199# 197# 224 032110# 210# + 54 139 85 224 At x 27711.015 22.356 7650.735 0.100 B- 5265.917 24.415 224 029749.000 24.000 + 52 138 86 224 Rn 22445.098 9.814 7670.751 0.044 B- 650.001 16.321 224 024095.805 10.536 + 50 137 87 224 Fr x 21795.097 13.041 7670.160 0.058 B- 2967.769 13.218 224 023398.000 14.000 + 48 136 88 224 Ra 18827.328 2.158 7679.916 0.010 B- -1407.669 4.126 224 020211.968 2.316 + 46 135 89 224 Ac -a 20234.997 4.146 7670.139 0.019 B- 241.053 10.831 224 021723.163 4.450 + 44 134 90 224 Th -a 19993.944 10.131 7667.723 0.045 B- -3868.710 12.546 224 021464.382 10.876 + 42 133 91 224 Pa -a 23862.654 7.602 7646.959 0.034 B- -1851.390 26.374 224 025617.614 8.161 + 40 132 92 224 U -a 25714.044 25.315 7635.201 0.113 B- -6162# 197# 224 027605.163 27.176 + 38 131 93 224 Np x 31876# 196# 7604# 1# B- * 224 034220# 210# +0 57 141 84 225 Po x 34530# 298# 7626# 1# B- 4136# 422# 225 037070# 320# + 55 140 85 225 At x 30395# 298# 7641# 1# B- 3861# 298# 225 032630# 320# + 53 139 86 225 Rn 26534.142 11.140 7654.357 0.050 B- 2713.342 16.351 225 028485.574 11.958 + 51 138 87 225 Fr 23820.800 11.969 7662.940 0.053 B- 1826.497 12.214 225 025572.682 12.849 + 49 137 88 225 Ra 21994.303 2.949 7667.580 0.013 B- 355.709 5.023 225 023611.857 3.166 + 47 136 89 225 Ac 21638.594 4.897 7665.684 0.022 B- -671.957 6.716 225 023229.987 5.256 + 45 135 90 225 Th -a 22310.551 5.117 7659.221 0.023 B- -2030.327 71.170 225 023951.363 5.493 + 43 134 91 225 Pa -a 24340.878 71.013 7646.720 0.316 B- -3036.988 71.970 225 026131.009 76.235 + 41 133 92 225 U -a 27377.867 11.827 7629.745 0.053 B- -4209.926 72.583 225 029391.350 12.696 + 39 132 93 225 Np -a 31587.793 71.622 7607.557 0.318 B- * 225 033910.892 76.889 +0 58 142 84 226 Po x 37549# 401# 7614# 2# B- 2934# 499# 226 040310# 430# + 56 141 85 226 At x 34614# 298# 7624# 1# B- 5867# 298# 226 037160# 320# + 54 140 86 226 Rn 28747.193 10.477 7646.410 0.046 B- 1206.641 16.013 226 030861.382 11.247 + 52 139 87 226 Fr x 27540.552 12.109 7648.287 0.054 B- 3870.981 12.327 226 029566.000 13.000 + 50 138 88 226 Ra 23669.571 2.308 7661.954 0.010 B- -640.917 3.279 226 025410.330 2.477 + 48 137 89 226 Ac 24310.487 3.318 7655.656 0.015 B- 1113.135 4.693 226 026098.383 3.561 + 46 136 90 226 Th 23197.352 4.703 7657.120 0.021 B- -2836.119 12.239 226 024903.383 5.049 + 44 135 91 226 Pa -a 26033.471 11.430 7641.109 0.051 B- -1295.725 17.252 226 027948.082 12.270 + 42 134 92 226 U -a 27329.197 13.040 7631.914 0.058 B- -5448# 89# 226 029339.101 13.998 + 40 133 93 226 Np -a 32777# 88# 7604# 0# B- * 226 035188# 95# +0 59 143 84 227 Po x 42281# 401# 7596# 2# B- 4797# 499# 227 045390# 430# + 57 142 85 227 At x 37483# 298# 7613# 1# B- 4597# 298# 227 040240# 320# + 55 141 86 227 Rn 32885.834 14.091 7630.050 0.062 B- 3200.052 19.199 227 035304.396 15.127 + 53 140 87 227 Fr x 29685.782 13.041 7640.701 0.057 B- 2506.324 13.246 227 031869.000 14.000 + 51 139 88 227 Ra -n 27179.458 2.323 7648.295 0.010 B- 1328.372 2.290 227 029178.349 2.494 + 49 138 89 227 Ac 25851.085 2.370 7650.701 0.010 B- 44.764 0.830 227 027752.283 2.544 + 47 137 90 227 Th 25806.321 2.499 7647.451 0.011 B- -1025.691 7.468 227 027704.227 2.682 + 45 136 91 227 Pa -a 26832.012 7.460 7639.487 0.033 B- -2190.335 18.379 227 028805.351 8.008 + 43 135 92 227 U -a 29022.347 16.864 7626.391 0.074 B- -3540.009 74.423 227 031156.773 18.104 + 41 134 93 227 Np -a 32562.356 72.508 7607.350 0.319 B- * 227 034957.129 77.840 +0 58 143 85 228 At x 41684# 401# 7597# 2# B- 6441# 401# 228 044750# 430# + 56 142 86 228 Rn 35243.465 17.677 7621.645 0.078 B- 1874.392 22.234 228 037835.418 18.977 + 54 141 87 228 Fr x 33369.073 13.485 7626.435 0.059 B- 4426.876 13.697 228 035823.175 14.477 + 52 140 88 228 Ra +a 28942.197 2.400 7642.419 0.011 B- 45.811 0.667 228 031070.728 2.576 + 50 139 89 228 Ac - 28896.386 2.491 7639.189 0.011 B- 2124.063 2.645 228 031021.547 2.673 + 48 138 90 228 Th 26772.323 2.156 7645.074 0.009 B- -2152.124 4.378 228 028741.272 2.315 + 46 137 91 228 Pa -a 28924.447 4.394 7632.203 0.019 B- -297.909 14.934 228 031051.673 4.717 + 44 136 92 228 U -a 29222.357 14.361 7627.465 0.063 B- -4373.713 52.545 228 031371.492 15.417 + 42 135 93 228 Np -a 33596.070 50.575 7604.851 0.222 B- -2483.014 59.228 228 036066.866 54.294 + 40 134 94 228 Pu -a 36079.083 30.875 7590.529 0.135 B- * 228 038732.491 33.145 +0 59 144 85 229 At x 44823# 401# 7585# 2# B- 5461# 401# 229 048120# 430# + 57 143 86 229 Rn x 39362.400 13.041 7605.622 0.057 B- 3688.043 19.113 229 042257.277 14.000 + 55 142 87 229 Fr x 35674.357 13.972 7618.311 0.061 B- 3125.849 20.125 229 038298.000 15.000 + 53 141 88 229 Ra 32548.508 14.484 7628.544 0.063 B- 1850.300 17.617 229 034942.262 15.549 + 51 140 89 229 Ac 30698.209 11.654 7633.208 0.051 B- 1111.431 11.982 229 032955.884 12.510 + 49 139 90 229 Th 29586.778 2.784 7634.645 0.012 B- -311.606 3.741 229 031762.713 2.989 + 47 138 91 229 Pa 29898.383 3.530 7629.868 0.015 B- -1312.516 6.736 229 032097.236 3.789 + 45 137 92 229 U -a 31210.899 5.959 7620.720 0.026 B- -2568.930 87.031 229 033506.280 6.397 + 43 136 93 229 Np -a 33779.829 86.850 7606.085 0.379 B- -3613.708 100.895 229 036264.139 93.237 + 41 135 94 229 Pu -a 37393.536 51.380 7586.889 0.224 B- * 229 040143.614 55.158 +0 58 144 86 230 Rn x 42048# 196# 7596# 1# B- 2537# 196# 230 045140# 210# + 56 143 87 230 Fr 39510.575 15.798 7603.601 0.069 B- 4994.268 18.857 230 042416.349 16.959 + 54 142 88 230 Ra x 34516.307 10.296 7621.914 0.045 B- 677.924 18.888 230 037054.781 11.053 + 52 141 89 230 Ac x 33838.383 15.835 7621.460 0.069 B- 2974.139 15.933 230 036327.000 17.000 + 50 140 90 230 Th 30864.244 1.757 7630.989 0.008 B- -1310.534 2.840 230 033134.130 1.886 + 48 139 91 230 Pa 32174.778 3.262 7621.890 0.014 B- 559.782 4.751 230 034541.047 3.501 + 46 138 92 230 U -a 31614.997 4.757 7620.922 0.021 B- -3621.490 51.481 230 033940.096 5.106 + 44 137 93 230 Np -a 35236.487 51.290 7601.775 0.223 B- -1697.515 53.437 230 037827.926 55.061 + 42 136 94 230 Pu -a 36934.002 15.096 7590.993 0.066 B- -5998# 134# 230 039650.283 16.206 + 40 135 95 230 Am -a 42932# 133# 7562# 1# B- * 230 046090# 143# +0 59 145 86 231 Rn x 46454# 298# 7579# 1# B- 4389# 299# 231 049870# 320# + 57 144 87 231 Fr x 42064.406 25.150 7594.570 0.109 B- 3847.920 27.601 231 045158.000 27.000 + 55 143 88 231 Ra 38216.486 11.370 7607.841 0.049 B- 2453.636 17.301 231 041027.087 12.206 + 53 142 89 231 Ac x 35762.849 13.041 7615.076 0.056 B- 1945.305 13.160 231 038393.000 14.000 + 51 141 90 231 Th 33817.544 1.765 7620.111 0.008 B- 391.587 1.482 231 036304.628 1.895 + 49 140 91 231 Pa 33425.957 2.232 7618.419 0.010 B- -381.556 2.034 231 035884.243 2.395 + 47 139 92 231 U -a 33807.514 3.002 7613.380 0.013 B- -1817.814 50.582 231 036293.861 3.223 + 45 138 93 231 Np -a 35625.328 50.553 7602.124 0.219 B- -2660.484 57.027 231 038245.364 54.271 + 43 137 94 231 Pu -a 38285.812 26.432 7587.220 0.114 B- -4153# 299# 231 041101.511 28.375 + 41 136 95 231 Am x 42439# 298# 7566# 1# B- * 231 045560# 320# +0 58 145 87 232 Fr +a 45986# 155# 7580# 1# B- 5489# 155# 232 049368# 166# + 56 144 88 232 Ra 40496.954 9.151 7600.009 0.039 B- 1342.535 15.931 232 043475.270 9.823 + 54 143 89 232 Ac x 39154.419 13.041 7602.424 0.056 B- 3705.706 13.186 232 042034.000 14.000 + 52 142 90 232 Th 35448.712 1.949 7615.024 0.008 B- -499.260 7.731 232 038055.760 2.092 + 50 141 91 232 Pa + 35947.972 7.735 7609.500 0.033 B- 1337.103 7.428 232 038591.737 8.303 + 48 140 92 232 U 34610.869 2.158 7611.891 0.009 B- -2750# 100# 232 037156.297 2.317 + 46 139 93 232 Np - 37361# 100# 7597# 0# B- -1002# 102# 232 040109# 107# + 44 138 94 232 Pu -a 38363.191 17.601 7588.973 0.076 B- -4905# 299# 232 041184.582 18.895 + 42 137 95 232 Am x 43268# 298# 7564# 1# B- -3136# 360# 232 046450# 320# + 40 136 96 232 Cm -a 46404# 202# 7548# 1# B- * 232 049817# 217# +0 59 146 87 233 Fr x 49034# 298# 7569# 1# B- 4711# 298# 233 052640# 320# + 57 145 88 233 Ra x 44322.348 15.835 7585.614 0.068 B- 3014.315 20.514 233 047582.000 17.000 + 55 144 89 233 Ac x 41308.033 13.041 7595.193 0.056 B- 2574.390 13.186 233 044346.000 14.000 + 53 143 90 233 Th 38733.643 1.951 7602.884 0.008 B- 1243.596 1.332 233 041582.278 2.094 + 51 142 91 233 Pa 37490.046 2.090 7604.864 0.009 B- 569.792 2.010 233 040247.222 2.243 + 49 141 92 233 U 36920.254 2.667 7603.952 0.011 B- -1029.733 51.006 233 039635.525 2.863 + 47 140 93 233 Np -a 37949.987 50.997 7596.175 0.219 B- -2102.128 71.649 233 040740.989 54.747 + 45 139 94 233 Pu -a 40052.115 50.354 7583.795 0.216 B- -3211# 113# 233 042997.716 54.057 + 43 138 95 233 Am -a 43263# 102# 7567# 0# B- -4029# 124# 233 046445# 109# + 41 137 96 233 Cm -a 47291.952 71.693 7546.007 0.308 B- * 233 050770.001 76.965 +0 58 146 88 234 Ra x 46893.271 30.739 7576.703 0.131 B- 2052.081 33.766 234 050342.000 33.000 + 56 145 89 234 Ac x 44841.190 13.972 7582.129 0.060 B- 4226.740 14.401 234 048139.000 15.000 + 54 144 90 234 Th +a 40614.449 3.487 7596.849 0.015 B- 274.088 3.172 234 043601.407 3.743 + 52 143 91 234 Pa IT 40340.361 4.714 7594.677 0.020 B- 2193.533 4.489 234 043307.161 5.060 + 50 142 92 234 U 38146.828 1.792 7600.707 0.008 B- -1809.846 8.321 234 040952.306 1.923 + 48 141 93 234 Np - 39956.674 8.511 7589.630 0.036 B- -393.213 10.858 234 042895.256 9.137 + 46 140 94 234 Pu -a 40349.887 6.965 7584.606 0.030 B- -4112# 159# 234 043317.387 7.476 + 44 139 95 234 Am -a 44461# 159# 7564# 1# B- -2263# 160# 234 047731# 170# + 42 138 96 234 Cm -a 46723.960 18.204 7550.679 0.078 B- -6620# 143# 234 050160.237 19.543 + 40 137 97 234 Bk -a 53344# 142# 7519# 1# B- * 234 057267# 153# +0 59 147 88 235 Ra x 51204# 298# 7560# 1# B- 3847# 298# 235 054970# 320# + 57 146 89 235 Ac x 47357.155 13.972 7573.504 0.059 B- 3339.406 19.113 235 050840.000 15.000 + 55 145 90 235 Th x 44017.749 13.041 7584.385 0.055 B- 1728.853 19.113 235 047255.000 14.000 + 53 144 91 235 Pa x 42288.896 13.972 7588.413 0.059 B- 1368.242 14.086 235 045399.000 15.000 + 51 143 92 235 U 40920.654 1.789 7590.906 0.008 B- -124.220 0.854 235 043930.131 1.920 + 49 142 93 235 Np 41044.874 1.963 7587.049 0.008 B- -1138.955 20.501 235 044063.487 2.106 + 47 141 94 235 Pu -a 42183.829 20.567 7578.873 0.088 B- -2442.414 56.049 235 045286.206 22.079 + 45 140 95 235 Am -a 44626.243 52.198 7565.150 0.222 B- -3384# 208# 235 047908.245 56.037 + 43 139 96 235 Cm -a 48011# 202# 7547# 1# B- -4693# 448# 235 051542# 217# + 41 138 97 235 Bk x 52704# 401# 7524# 2# B- * 235 056580# 430# +0 58 147 89 236 Ac x 51220.992 38.191 7559.242 0.162 B- 4965.795 40.667 236 054988.000 41.000 + 56 146 90 236 Th x 46255.198 13.972 7576.968 0.059 B- 921.248 19.760 236 049657.000 15.000 + 54 145 91 236 Pa x 45333.950 13.972 7577.557 0.059 B- 2887.435 14.087 236 048668.000 15.000 + 52 144 92 236 U 42446.515 1.792 7586.476 0.008 B- -932.923 50.416 236 045568.210 1.923 + 50 143 93 236 Np IT 43379.438 50.435 7579.208 0.214 B- 476.585 50.389 236 046569.744 54.144 + 48 142 94 236 Pu 42902.852 2.160 7577.913 0.009 B- -3139# 112# 236 046058.109 2.318 + 46 141 95 236 Am -a 46042# 112# 7561# 0# B- -1813# 113# 236 049428# 120# + 44 140 96 236 Cm -a 47855.018 18.321 7550.299 0.078 B- -5687# 401# 236 051374.477 19.668 + 42 139 97 236 Bk x 53542# 401# 7523# 2# B- * 236 057480# 430# +0 59 148 89 237 Ac x 54278# 401# 7549# 2# B- 4323# 401# 237 058270# 430# + 57 147 90 237 Th x 49955.092 15.835 7563.443 0.067 B- 2427.473 20.514 237 053629.000 17.000 + 55 146 91 237 Pa x 47527.618 13.041 7570.384 0.055 B- 2135.563 13.171 237 051023.000 14.000 + 53 145 92 237 U 45392.055 1.849 7576.094 0.008 B- 518.590 0.509 237 048730.378 1.985 + 51 144 93 237 Np 44873.466 1.798 7574.981 0.008 B- -220.001 1.295 237 048173.649 1.930 + 49 143 94 237 Pu 45093.467 2.197 7570.752 0.009 B- -1478# 59# 237 048409.830 2.358 + 47 142 95 237 Am -a 46571# 59# 7561# 0# B- -2676# 93# 237 049996# 64# + 45 141 96 237 Cm -a 49247.430 70.961 7546.622 0.299 B- -3941# 235# 237 052869.294 76.180 + 43 140 97 237 Bk -a 53188# 224# 7527# 1# B- -4749# 241# 237 057100# 241# + 41 139 98 237 Cf -a 57936.868 87.406 7503.356 0.369 B- * 237 062197.789 93.834 +0 58 148 90 238 Th +a 52626# 283# 7554# 1# B- 1732# 284# 238 056496# 304# + 56 147 91 238 Pa x 50894.038 15.835 7558.344 0.067 B- 3584.926 15.947 238 054637.000 17.000 + 54 146 92 238 U 47309.112 1.881 7570.120 0.008 B- -147.351 1.203 238 050788.423 2.019 + 52 145 93 238 Np -n 47456.463 1.809 7566.213 0.008 B- 1291.516 0.446 238 050946.611 1.942 + 50 144 94 238 Pu 46164.946 1.799 7568.353 0.008 B- -2258.343 50.688 238 049560.111 1.931 + 48 143 95 238 Am -a 48423.290 50.719 7555.577 0.213 B- -1021.735 52.166 238 051984.542 54.449 + 46 142 96 238 Cm -a 49445.025 12.327 7547.997 0.052 B- -4771# 255# 238 053081.420 13.233 + 44 141 97 238 Bk -a 54216# 255# 7525# 1# B- -3061# 392# 238 058204# 274# + 42 140 98 238 Cf x 57278# 298# 7509# 1# B- * 238 061490# 320# +0 59 149 90 239 Th x 56607# 401# 7540# 2# B- 3270# 446# 239 060770# 430# + 57 148 91 239 Pa x 53337# 196# 7550# 1# B- 2763# 196# 239 057260# 210# + 55 147 92 239 U -n 50574.046 1.889 7558.556 0.008 B- 1261.461 1.556 239 054293.475 2.027 + 53 146 93 239 Np 49312.586 2.047 7560.561 0.009 B- 722.513 0.992 239 052939.241 2.197 + 51 145 94 239 Pu 48590.073 1.792 7560.310 0.008 B- -802.117 1.664 239 052163.591 1.924 + 49 144 95 239 Am -a 49392.190 2.419 7553.681 0.010 B- -1756.255 54.058 239 053024.699 2.596 + 47 143 96 239 Cm -a 51148.445 54.065 7543.059 0.226 B- -3103# 214# 239 054910.117 58.040 + 45 142 97 239 Bk -a 54251# 207# 7527# 1# B- -3995# 294# 239 058241# 222# + 43 141 98 239 Cf -a 58246# 209# 7507# 1# B- -5310# 364# 239 062529# 225# + 41 140 99 239 Es x 63556# 298# 7481# 1# B- * 239 068230# 320# +0 58 149 91 240 Pa x 56803# 298# 7538# 1# B- 4086# 298# 240 060980# 320# + 56 148 92 240 U 52716.372 5.282 7551.766 0.022 B- 398.614 17.308 240 056593.356 5.670 + 54 147 93 240 Np 52317.758 17.166 7550.167 0.072 B- 2190.573 17.075 240 056165.427 18.428 + 52 146 94 240 Pu 50127.186 1.790 7556.035 0.007 B- -1384.790 13.788 240 053813.750 1.921 + 50 145 95 240 Am +n 51511.976 13.903 7547.005 0.058 B- -213.589 13.898 240 055300.384 14.925 + 48 144 96 240 Cm 51725.565 2.240 7542.855 0.009 B- -3940# 150# 240 055529.681 2.404 + 46 143 97 240 Bk - 55666# 150# 7523# 1# B- -2325# 151# 240 059759# 161# + 44 142 98 240 Cf -a 57990.838 18.706 7510.230 0.078 B- -6208# 401# 240 062255.728 20.081 + 42 141 99 240 Es x 64199# 401# 7481# 2# B- * 240 068920# 430# +0 59 150 91 241 Pa x 59690# 401# 7528# 2# B- 3493# 499# 241 064080# 430# + 57 149 92 241 U x 56197# 298# 7539# 1# B- 1935# 306# 241 060330# 320# + 55 148 93 241 Np + 54261.981 70.733 7544.262 0.293 B- 1305.000 70.711 241 058252.636 75.935 + 53 147 94 241 Pu 52956.981 1.790 7546.431 0.007 B- 20.783 0.128 241 056851.661 1.921 + 51 146 95 241 Am 52936.198 1.794 7543.271 0.007 B- -767.384 1.169 241 056829.349 1.926 + 49 145 96 241 Cm 53703.583 2.129 7536.841 0.009 B- -2330# 200# 241 057653.170 2.285 + 47 144 97 241 Bk - 56034# 200# 7524# 1# B- -3293# 260# 241 060155# 215# + 45 143 98 241 Cf -a 59327# 166# 7507# 1# B- -4536# 280# 241 063690# 178# + 43 142 99 241 Es -a 63863# 225# 7485# 1# B- -5263# 374# 241 068560# 242# + 41 141 100 241 Fm x 69126# 298# 7460# 1# B- * 241 074210# 320# +0 58 150 92 242 U +a 58621# 201# 7532# 1# B- 1202# 283# 242 062932# 215# + 56 149 93 242 Np + 57418.575 200.008 7533.396 0.826 B- 2700.000 200.000 242 061641.379 214.717 + 54 148 94 242 Pu 54718.575 1.829 7541.321 0.008 B- -751.301 0.704 242 058742.809 1.963 + 52 147 95 242 Am -n 55469.876 1.797 7534.983 0.007 B- 664.458 0.402 242 059549.364 1.929 + 50 146 96 242 Cm 54805.418 1.801 7534.496 0.007 B- -2930# 200# 242 058836.039 1.933 + 48 145 97 242 Bk - 57735# 200# 7519# 1# B- -1651# 200# 242 061982# 215# + 46 144 98 242 Cf -a 59386.724 12.981 7509.099 0.054 B- -5415# 256# 242 063754.274 13.935 + 44 143 99 242 Es -a 64801# 256# 7483# 1# B- -3598# 475# 242 069567# 275# + 42 142 100 242 Fm x 68400# 401# 7465# 2# B- * 242 073430# 430# +0 59 151 92 243 U x 62401# 401# 7518# 2# B- 2524# 402# 243 066990# 430# + 57 150 93 243 Np IT 59877# 32# 7525# 0# B- 2121# 32# 243 064280# 34# + 55 149 94 243 Pu 57755.978 3.185 7531.002 0.013 B- 579.663 2.940 243 062003.595 3.419 + 53 148 95 243 Am 57176.315 2.266 7530.168 0.009 B- -7.473 1.713 243 061381.302 2.432 + 51 147 96 243 Cm -a 57183.788 2.052 7526.918 0.008 B- -1507.591 4.507 243 061389.325 2.203 + 49 146 97 243 Bk -a 58691.380 4.732 7517.494 0.019 B- -2300# 114# 243 063007.791 5.080 + 47 145 98 243 Cf -a 60991# 114# 7505# 0# B- -3757# 236# 243 065477# 123# + 45 144 99 243 Es -a 64748# 207# 7486# 1# B- -4616# 299# 243 069510# 222# + 43 143 100 243 Fm -a 69364# 215# 7464# 1# B- * 243 074465# 231# +0 58 151 93 244 Np x 63202# 298# 7514# 1# B- 3395# 298# 244 067850# 320# + 56 150 94 244 Pu 59806.815 5.190 7524.811 0.021 B- -74.326 5.002 244 064205.260 5.571 + 54 149 95 244 Am + 59881.141 2.051 7521.300 0.008 B- 1427.300 1.000 244 064285.052 2.202 + 52 148 96 244 Cm -a 58453.841 1.791 7523.944 0.007 B- -2261.850 14.356 244 062752.783 1.922 + 50 147 97 244 Bk -a 60715.692 14.467 7511.468 0.059 B- -763.659 14.574 244 065180.979 15.531 + 48 146 98 244 Cf 61479.351 2.866 7505.131 0.012 B- -4547# 181# 244 066000.801 3.076 + 46 145 99 244 Es -a 66027# 181# 7483# 1# B- -2939# 271# 244 070883# 195# + 44 144 100 244 Fm -a 68966# 201# 7468# 1# B- * 244 074038# 216# +0 59 152 93 245 Np x 65950# 401# 7505# 2# B- 2770# 401# 245 070800# 430# + 57 151 94 245 Pu -n 63179.566 14.385 7513.276 0.059 B- 1277.287 14.522 245 067826.058 15.443 + 55 150 95 245 Am 61902.280 3.176 7515.296 0.013 B- 897.383 2.425 245 066454.834 3.409 + 53 149 96 245 Cm 61004.897 2.051 7515.765 0.008 B- -810.742 1.729 245 065491.454 2.201 + 51 148 97 245 Bk -a 61815.639 2.279 7509.263 0.009 B- -1571.296 2.586 245 066361.821 2.446 + 49 147 98 245 Cf 63386.935 2.789 7499.656 0.011 B- -2981# 200# 245 068048.677 2.994 + 47 146 99 245 Es -a 66368# 200# 7484# 1# B- -3820# 279# 245 071249# 215# + 45 145 100 245 Fm -a 70187# 195# 7466# 1# B- -5085# 362# 245 075349# 209# + 43 144 101 245 Md -a 75272# 305# 7442# 1# B- * 245 080808# 328# +0 58 152 94 246 Pu 65395.964 15.266 7506.534 0.062 B- 401# 14# 246 070205.458 16.388 + 56 151 95 246 Am IT 64995# 18# 7505# 0# B- 2377# 18# 246 069775# 20# + 54 150 96 246 Cm 62618.605 2.034 7511.464 0.008 B- -1350.000 60.000 246 067223.841 2.183 + 52 149 97 246 Bk - 63968.605 60.034 7502.796 0.244 B- -123.335 60.020 246 068673.126 64.449 + 50 148 98 246 Cf 64091.940 2.055 7499.114 0.008 B- -3810# 224# 246 068805.531 2.206 + 48 147 99 246 Es -a 67902# 224# 7480# 1# B- -2286# 224# 246 072896# 240# + 46 146 100 246 Fm -a 70188.512 15.408 7467.971 0.063 B- -5926# 260# 246 075350.470 16.540 + 44 145 101 246 Md -a 76115# 259# 7441# 1# B- * 246 081713# 278# +0 59 153 94 247 Pu x 69108# 196# 7494# 1# B- 1953# 220# 247 074190# 210# + 57 152 95 247 Am + 67154# 100# 7499# 0# B- 1620# 100# 247 072093# 107# + 55 151 96 247 Cm 65534.451 4.370 7501.926 0.018 B- 43.621 6.534 247 070354.131 4.690 + 53 150 97 247 Bk -a 65490.830 5.489 7498.935 0.022 B- -613.073 16.287 247 070307.302 5.893 + 51 149 98 247 Cf +a 66103.904 15.334 7493.285 0.062 B- -2474.564 24.760 247 070965.463 16.461 + 49 148 99 247 Es +a 68578.468 19.441 7480.099 0.079 B- -3095# 116# 247 073622.017 20.870 + 47 147 100 247 Fm +a 71674# 115# 7464# 0# B- -4264# 237# 247 076945# 123# + 45 146 101 247 Md -a 75937# 207# 7444# 1# B- * 247 081522# 222# +0 58 153 95 248 Am + 70563# 200# 7487# 1# B- 3170# 200# 248 075753# 215# + 56 152 96 248 Cm 67393.463 5.193 7496.725 0.021 B- -687# 71# 248 072349.862 5.575 + 54 151 97 248 Bk IT 68081# 71# 7491# 0# B- 841# 71# 248 073088# 76# + 52 150 98 248 Cf -a 67239.957 5.311 7491.035 0.021 B- -3061# 53# 248 072185.066 5.701 + 50 149 99 248 Es -a 70301# 52# 7476# 0# B- -1598# 53# 248 075471# 56# + 48 148 100 248 Fm 71898.728 8.546 7465.941 0.034 B- -5250# 238# 248 077186.463 9.174 + 46 147 101 248 Md -a 77149# 237# 7442# 1# B- -3472# 327# 248 082823# 255# + 44 146 102 248 No -a 80621# 224# 7424# 1# B- * 248 086550# 241# +0 59 154 95 249 Am x 73104# 298# 7479# 1# B- 2352# 298# 249 078480# 320# + 57 153 96 249 Cm -n 70751.410 5.199 7485.547 0.021 B- 900.839 5.236 249 075954.767 5.581 + 55 152 97 249 Bk 69850.571 2.551 7486.023 0.010 B- 124.609 1.370 249 074987.676 2.738 + 53 151 98 249 Cf 69725.962 2.165 7483.382 0.009 B- -1451# 30# 249 074853.903 2.324 + 51 150 99 249 Es -a 71177# 30# 7474# 0# B- -2344# 31# 249 076411# 32# + 49 149 100 249 Fm 73520.540 6.306 7461.859 0.025 B- -3713# 201# 249 078927.550 6.770 + 47 148 101 249 Md -a 77234# 201# 7444# 1# B- -4549# 344# 249 082914# 216# + 45 147 102 249 No -a 81782# 279# 7422# 1# B- * 249 087797# 300# +0 58 154 96 250 Cm -nn 72990.299 11.268 7478.935 0.045 B- 38.764 11.652 250 078358.313 12.096 + 56 153 97 250 Bk +a 72951.535 3.954 7475.961 0.016 B- 1779.577 3.386 250 078316.698 4.245 + 54 152 98 250 Cf -a 71171.958 2.043 7479.949 0.008 B- -2055# 100# 250 076406.244 2.193 + 52 151 99 250 Es - 73227# 100# 7469# 0# B- -846# 100# 250 078612# 107# + 50 150 100 250 Fm 74073.366 8.019 7462.085 0.032 B- -4558# 301# 250 079521.034 8.608 + 48 149 101 250 Md -a 78632# 301# 7441# 1# B- -2932# 362# 250 084415# 323# + 46 148 102 250 No -a 81563# 201# 7426# 1# B- * 250 087562# 215# +0 59 155 96 251 Cm + 76649.327 22.801 7466.717 0.091 B- 1420.000 20.000 251 082286.441 24.478 + 57 154 97 251 Bk + 75229.327 10.950 7469.258 0.044 B- 1093.000 10.000 251 080762.009 11.754 + 55 153 98 251 Cf -a 74136.327 4.460 7470.495 0.018 B- -377.219 7.245 251 079588.625 4.788 + 53 152 99 251 Es -a 74513.546 6.256 7465.875 0.025 B- -1440.373 16.440 251 079993.586 6.715 + 51 151 100 251 Fm +a 75953.919 15.203 7457.020 0.061 B- -3012.904 24.271 251 081539.890 16.320 + 49 150 101 251 Md +a 78966.824 18.919 7441.900 0.075 B- -3884# 116# 251 084774.376 20.310 + 47 149 102 251 No IT 82850# 114# 7423# 0# B- -4878# 319# 251 088944# 123# + 45 148 103 251 Lr x 87728# 298# 7401# 1# B- * 251 094180# 320# +0 60 156 96 252 Cm x 79056# 298# 7460# 1# B- 521# 359# 252 084870# 320# + 58 155 97 252 Bk + 78535# 200# 7459# 1# B- 2500# 200# 252 084311# 215# + 56 154 98 252 Cf -a 76035.247 5.193 7465.344 0.021 B- -1260.000 50.000 252 081627.199 5.575 + 54 153 99 252 Es - 77295.247 50.269 7457.240 0.199 B- 477.674 50.528 252 082979.865 53.965 + 52 152 100 252 Fm -a 76817.572 5.675 7456.031 0.023 B- -3693# 130# 252 082467.060 6.092 + 50 151 101 252 Md IT 80511# 130# 7438# 1# B- -2362# 131# 252 086432# 140# + 48 150 102 252 No 82872.142 9.328 7425.795 0.037 B- -5866# 238# 252 088966.908 10.014 + 46 149 103 252 Lr -a 88738# 238# 7399# 1# B- * 252 095264# 255# +0 59 156 97 253 Bk -a 80929# 359# 7451# 1# B- 1626# 359# 253 086880# 385# + 57 155 98 253 Cf -a 79302.276 6.287 7454.826 0.025 B- 287.630 6.318 253 085134.499 6.749 + 55 154 99 253 Es -a 79014.646 2.551 7452.871 0.010 B- -334.272 3.013 253 084825.715 2.738 + 53 153 100 253 Fm -a 79348.918 3.448 7448.457 0.014 B- -1826# 31# 253 085184.571 3.701 + 51 152 101 253 Md -a 81175# 31# 7438# 0# B- -3185# 32# 253 087144# 34# + 49 151 102 253 No 84359.919 6.978 7422.466 0.028 B- -4217# 202# 253 090564.103 7.490 + 47 150 103 253 Lr -a 88577# 202# 7403# 1# B- -4980# 457# 253 095091# 217# + 45 149 104 253 Rf -a 93557# 410# 7380# 2# B- * 253 100438# 440# +0 60 157 97 254 Bk x 84393# 298# 7440# 1# B- 3051# 298# 254 090600# 320# + 58 156 98 254 Cf -a 81342.027 12.360 7449.223 0.049 B- -650.123 12.800 254 087324.263 13.269 + 56 155 99 254 Es -a 81992.151 4.229 7443.583 0.017 B- 1087.800 3.202 254 088022.199 4.540 + 54 154 100 254 Fm -a 80904.351 2.763 7444.786 0.011 B- -2550# 100# 254 086854.397 2.966 + 52 153 101 254 Md - 83454# 100# 7432# 0# B- -1270# 101# 254 089592# 107# + 50 152 102 254 No 84724.653 10.023 7423.585 0.039 B- -5148# 301# 254 090955.661 10.759 + 48 151 103 254 Lr -a 89873# 301# 7400# 1# B- -3325# 414# 254 096483# 323# + 46 150 104 254 Rf -a 93198# 283# 7384# 1# B- * 254 100053# 304# +0 59 157 98 255 Cf + 84811# 200# 7438# 1# B- 720# 200# 255 091048# 215# + 57 156 99 255 Es -a 84090.583 11.031 7437.816 0.043 B- 289.620 10.247 255 090274.958 11.842 + 55 155 100 255 Fm -a 83800.963 4.806 7435.883 0.019 B- -1043.376 7.919 255 089964.038 5.158 + 53 154 101 255 Md -a 84844.339 6.793 7428.724 0.027 B- -1962.896 16.379 255 091084.149 7.293 + 51 153 102 255 No x 86807.235 14.904 7417.958 0.058 B- -3140.066 23.138 255 093191.404 16.000 + 49 152 103 255 Lr x 89947.301 17.698 7402.576 0.069 B- -4383# 116# 255 096562.404 19.000 + 47 151 104 255 Rf -a 94331# 115# 7382# 0# B- -5402# 438# 255 101268# 123# + 45 150 105 255 Db -a 99733# 423# 7358# 2# B- * 255 107068# 454# +0 60 158 98 256 Cf -a 87041# 314# 7432# 1# B- -147# 330# 256 093442# 338# + 58 157 99 256 Es + 87187# 100# 7428# 0# B- 1700# 100# 256 093599# 108# + 56 156 100 256 Fm -a 85487.368 7.264 7431.778 0.028 B- -1969# 123# 256 091774.469 7.798 + 54 155 101 256 Md IT 87457# 123# 7421# 0# B- -367# 123# 256 093889# 132# + 52 154 102 256 No -a 87823.929 7.870 7416.539 0.031 B- -3922.670 83.276 256 094282.870 8.448 + 50 153 103 256 Lr x 91746.599 82.903 7398.160 0.324 B- -2476.086 84.806 256 098494.030 89.000 + 48 152 104 256 Rf -a 94222.685 17.867 7385.431 0.070 B- -6276# 241# 256 101152.218 19.180 + 46 151 105 256 Db -a 100499# 240# 7358# 1# B- * 256 107890# 258# +0 59 158 99 257 Es -a 89403# 411# 7422# 2# B- 813# 411# 257 095979# 441# + 57 157 100 257 Fm -a 88590.741 6.445 7422.191 0.025 B- -406.420 6.551 257 095106.078 6.918 + 55 156 101 257 Md -a 88997.161 2.740 7417.566 0.011 B- -1253.272 6.788 257 095542.387 2.941 + 53 155 102 257 No -a 90250.433 6.920 7409.645 0.027 B- -2357# 45# 257 096887.830 7.429 + 51 154 103 257 Lr -a 92607# 44# 7397# 0# B- -3261# 45# 257 099418# 47# + 49 153 104 257 Rf -a 95867.612 10.859 7381.700 0.042 B- -4341# 203# 257 102918.120 11.657 + 47 152 105 257 Db -a 100208# 203# 7362# 1# B- * 257 107578# 218# +0 60 159 99 258 Es x 92702# 298# 7412# 1# B- 2275# 359# 258 099520# 320# + 58 158 100 258 Fm -a 90427# 200# 7418# 1# B- -1261# 200# 258 097077# 215# + 56 157 101 258 Md -a 91688.349 4.619 7409.668 0.018 B- 209# 100# 258 098431.496 4.958 + 54 156 102 258 No -a 91479# 100# 7407# 0# B- -3304# 143# 258 098207# 107# + 52 155 103 258 Lr -a 94784# 102# 7392# 0# B- -1559# 107# 258 101755# 109# + 50 154 104 258 Rf -a 96342.263 32.079 7382.533 0.124 B- -5456# 307# 258 103427.679 34.438 + 48 153 105 258 Db -a 101799# 305# 7358# 1# B- -3445# 513# 258 109285# 328# + 46 152 106 258 Sg -a 105243# 413# 7342# 2# B- * 258 112983# 443# +0 59 159 100 259 Fm -a 93705# 283# 7407# 1# B- 80# 346# 259 100597# 304# + 57 158 101 259 Md -a 93625# 200# 7405# 1# B- -486# 224# 259 100511# 215# + 55 157 102 259 No -a 94111# 100# 7400# 0# B- -1742# 123# 259 101032# 108# + 53 156 103 259 Lr -a 95853# 71# 7390# 0# B- -2509# 101# 259 102902# 76# + 51 155 104 259 Rf -a 98362# 72# 7377# 0# B- -3629# 90# 259 105596# 78# + 49 154 105 259 Db -a 101991.017 53.040 7360.362 0.205 B- -4568# 128# 259 109491.866 56.940 + 47 153 106 259 Sg -a 106559# 116# 7340# 0# B- * 259 114396# 125# +0 60 160 100 260 Fm -a 95766# 509# 7402# 2# B- -787# 599# 260 102809# 546# + 58 159 101 260 Md -a 96552# 316# 7396# 1# B- 940# 374# 260 103653# 340# + 56 158 102 260 No -a 95612# 200# 7397# 1# B- -2665# 235# 260 102644# 215# + 54 157 103 260 Lr -a 98277# 124# 7383# 0# B- -872# 236# 260 105505# 133# + 52 156 104 260 Rf -a 99149# 200# 7377# 1# B- -4524# 221# 260 106441# 215# + 50 155 105 260 Db -a 103673# 93# 7357# 0# B- -2875# 95# 260 111297# 100# + 48 154 106 260 Sg -a 106548.108 20.552 7342.560 0.079 B- -6776# 246# 260 114384.105 22.063 + 46 153 107 260 Bh -a 113324# 245# 7313# 1# B- * 260 121659# 263# +0 59 160 101 261 Md -a 98578# 573# 7391# 2# B- 123# 607# 261 105828# 616# + 57 159 102 261 No -a 98456# 200# 7388# 1# B- -1106# 283# 261 105697# 215# + 55 158 103 261 Lr -a 99562# 200# 7381# 1# B- -1760# 206# 261 106884# 215# + 53 157 104 261 Rf -a 101321.771 50.477 7371.372 0.193 B- -2928# 121# 261 108773.401 54.188 + 51 156 105 261 Db -a 104250# 110# 7357# 0# B- -3756# 112# 261 111917# 118# + 49 155 106 261 Sg -a 108006.228 18.518 7339.766 0.071 B- -5128# 210# 261 115949.461 19.879 + 47 154 107 261 Bh -a 113135# 209# 7317# 1# B- * 261 121455# 224# +0 60 161 101 262 Md -a 101627# 423# 7382# 2# B- 1525# 556# 262 109101# 454# + 58 160 102 262 No -a 100102# 361# 7385# 1# B- -2001# 413# 262 107464# 387# + 56 159 103 262 Lr -a 102103# 200# 7374# 1# B- -291# 300# 262 109612# 215# + 54 158 104 262 Rf -a 102394# 224# 7370# 1# B- -3863# 265# 262 109925# 240# + 52 157 105 262 Db -a 106257# 143# 7352# 1# B- -2110# 147# 262 114072# 154# + 50 156 106 262 Sg -a 108366.919 35.512 7341.181 0.136 B- -6176# 308# 262 116336.679 38.123 + 48 155 107 262 Bh -a 114543# 306# 7315# 1# B- * 262 122967# 328# +0 59 161 102 263 No -a 103130# 490# 7376# 2# B- -600# 566# 263 110715# 526# + 57 160 103 263 Lr -a 103730# 283# 7371# 1# B- -1058# 337# 263 111359# 304# + 55 159 104 263 Rf -a 104788# 183# 7364# 1# B- -2324# 248# 263 112495# 196# + 53 158 105 263 Db -a 107112# 168# 7352# 1# B- -3078# 193# 263 114990# 181# + 51 157 106 263 Sg -a 110190# 95# 7337# 0# B- -4306# 319# 263 118294# 102# + 49 156 107 263 Bh -a 114496# 305# 7318# 1# B- -5222# 330# 263 122916# 327# + 47 155 108 263 Hs -a 119718# 127# 7295# 0# B- * 263 128522# 136# +0 60 162 102 264 No -a 105011# 647# 7371# 2# B- -1367# 780# 264 112734# 695# + 58 161 103 264 Lr -a 106377# 436# 7363# 2# B- 300# 566# 264 114201# 468# + 56 160 104 264 Rf -a 106077# 361# 7361# 1# B- -3285# 431# 264 113879# 387# + 54 159 105 264 Db -a 109362# 235# 7346# 1# B- -1422# 368# 264 117405# 253# + 52 158 106 264 Sg -a 110784# 283# 7338# 1# B- -5274# 334# 264 118931# 304# + 50 157 107 264 Bh -a 116058# 177# 7315# 1# B- -3506# 180# 264 124593# 190# + 48 156 108 264 Hs -a 119563.699 28.893 7298.373 0.109 B- * 264 128356.917 31.017 +0 59 162 103 265 Lr -a 108233# 607# 7359# 2# B- -457# 706# 265 116193# 652# + 57 161 104 265 Rf -a 108691# 361# 7354# 1# B- -1796# 424# 265 116684# 387# + 55 160 105 265 Db -a 110487# 224# 7344# 1# B- -2310# 255# 265 118613# 240# + 53 159 106 265 Sg -a 112797# 123# 7333# 0# B- -3559# 264# 265 121093# 132# + 51 158 107 265 Bh -a 116357# 234# 7316# 1# B- -4545# 235# 265 124914# 251# + 49 157 108 265 Hs -a 120901.389 23.977 7296.242 0.090 B- -5778# 452# 265 129792.986 25.739 + 47 156 109 265 Mt -a 126680# 451# 7271# 2# B- * 265 135996# 484# +0 60 163 103 266 Lr -a 111622# 519# 7349# 2# B- 1545# 699# 266 119831# 557# + 58 162 104 266 Rf -a 110077# 469# 7352# 2# B- -2661# 548# 266 118172# 504# + 56 161 105 266 Db -a 112738# 283# 7339# 1# B- -881# 374# 266 121029# 304# + 54 160 106 266 Sg -a 113619# 245# 7332# 1# B- -4489# 294# 266 121975# 263# + 52 159 107 266 Bh -a 118108# 163# 7313# 1# B- -3029# 167# 266 126794# 175# + 50 158 108 266 Hs -a 121137.442 38.787 7298.269 0.146 B- -6826# 309# 266 130046.400 41.639 + 48 157 109 266 Mt -a 127963# 307# 7270# 1# B- * 266 137374# 329# +0 59 163 104 267 Rf -a 113445# 575# 7342# 2# B- -630# 707# 267 121789# 617# + 57 162 105 267 Db -a 114075# 412# 7336# 2# B- -1763# 496# 267 122465# 443# + 55 161 106 267 Sg -a 115838# 275# 7327# 1# B- -2929# 381# 267 124357# 296# + 53 160 107 267 Bh -a 118767# 263# 7313# 1# B- -3886# 279# 267 127501# 282# + 51 159 108 267 Hs -a 122653# 96# 7295# 0# B- -5138# 512# 267 131673# 103# + 49 158 109 267 Mt -a 127791# 503# 7273# 2# B- -6128# 521# 267 137189# 540# + 47 157 110 267 Ds -a 133919# 136# 7247# 1# B- * 267 143768# 147# +0 60 164 104 268 Rf -a 115476# 713# 7337# 3# B- -1587# 888# 268 123968# 766# + 58 163 105 268 Db -a 117062# 529# 7328# 2# B- 260# 707# 268 125671# 568# + 56 162 106 268 Sg -a 116802# 469# 7326# 2# B- -4005# 605# 268 125392# 504# + 54 161 107 268 Bh -a 120807# 381# 7308# 1# B- -2024# 475# 268 129692# 409# + 52 160 108 268 Hs -a 122831# 283# 7298# 1# B- -6319# 367# 268 131865# 304# + 50 159 109 268 Mt -a 129151# 233# 7271# 1# B- -4498# 381# 268 138649# 250# + 48 158 110 268 Ds -a 133649# 301# 7252# 1# B- * 268 143478# 324# +0 59 164 105 269 Db -a 119148# 677# 7323# 3# B- -667# 769# 269 127911# 727# + 57 163 106 269 Sg -a 119815# 364# 7318# 1# B- -1667# 522# 269 128627# 391# + 55 162 107 269 Bh -a 121482# 374# 7309# 1# B- -3108# 394# 269 130416# 402# + 53 161 108 269 Hs -a 124590# 125# 7294# 0# B- -4721# 480# 269 133753# 134# + 51 160 109 269 Mt -a 129312# 463# 7274# 2# B- -5524# 464# 269 138822# 497# + 49 159 110 269 Ds -a 134835.736 31.418 7250.150 0.117 B- * 269 144752.124 33.728 +0 60 165 105 270 Db -a 122357# 599# 7314# 2# B- 865# 818# 270 131356# 643# + 58 164 106 270 Sg -a 121492# 557# 7314# 2# B- -2735# 627# 270 130427# 598# + 56 163 107 270 Bh -a 124227# 287# 7301# 1# B- -863# 380# 270 133363# 308# + 54 162 108 270 Hs -a 125090# 249# 7295# 1# B- -5624# 301# 270 134290# 267# + 52 161 109 270 Mt -a 130714# 170# 7271# 1# B- -3965# 177# 270 140327# 183# + 50 160 110 270 Ds -a 134679.272 48.086 7253.771 0.178 B- * 270 144584.153 51.621 +0 59 165 106 271 Sg -a 124758# 585# 7305# 2# B- -1232# 734# 271 133933# 628# + 57 164 107 271 Bh -a 125990# 443# 7298# 2# B- -1783# 534# 271 135256# 476# + 55 163 108 271 Hs -a 127773# 297# 7288# 1# B- -3329# 444# 271 137170# 319# + 53 162 109 271 Mt -a 131102# 330# 7273# 1# B- -4846# 344# 271 140744# 354# + 51 161 110 271 Ds -a 135947# 97# 7252# 0# B- * 271 145946# 104# +0 60 166 106 272 Sg -a 126580# 774# 7301# 3# B- -2211# 944# 272 135890# 831# + 58 165 107 272 Bh -a 128792# 541# 7290# 2# B- -215# 743# 272 138264# 581# + 56 164 108 272 Hs -a 129007# 510# 7286# 2# B- -4575# 704# 272 138495# 547# + 54 163 109 272 Mt -a 133582# 485# 7267# 2# B- -2434# 637# 272 143406# 521# + 52 162 110 272 Ds -a 136016# 413# 7255# 2# B- -6756# 474# 272 146020# 443# + 50 161 111 272 Rg -a 142773# 233# 7227# 1# B- * 272 153273# 251# +0 61 167 106 273 Sg x 130018# 503# 7291# 2# B- -615# 895# 273 139580# 540# + 59 166 107 273 Bh -a 130633# 741# 7286# 3# B- -1340# 827# 273 140240# 795# + 57 165 108 273 Hs -a 131973# 367# 7278# 1# B- -2534# 604# 273 141679# 395# + 55 164 109 273 Mt -a 134507# 480# 7266# 2# B- -3876# 498# 273 144399# 515# + 53 163 110 273 Ds -a 138383# 134# 7249# 0# B- -4253# 543# 273 148560# 144# + 51 162 111 273 Rg -a 142636# 526# 7231# 2# B- * 273 153127# 565# +0 60 167 107 274 Bh -a 133714# 601# 7278# 2# B- 227# 844# 274 143548# 645# + 58 166 108 274 Hs -a 133487# 592# 7276# 2# B- -3671# 689# 274 143304# 635# + 56 165 109 274 Mt -a 137158# 354# 7260# 1# B- -2017# 526# 274 147245# 380# + 54 164 110 274 Ds -a 139175# 390# 7249# 1# B- -5442# 428# 274 149411# 418# + 52 163 111 274 Rg -a 144617# 177# 7227# 1# B- * 274 155253# 190# +0 61 168 107 275 Bh x 135691# 596# 7273# 2# B- -930# 837# 275 145670# 640# + 59 167 108 275 Hs -a 136621# 587# 7267# 2# B- -2005# 751# 275 146668# 631# + 57 166 109 275 Mt -a 138625# 468# 7257# 2# B- -2993# 630# 275 148820# 502# + 55 165 110 275 Ds -a 141618# 422# 7243# 2# B- -3639# 669# 275 152033# 453# + 53 164 111 275 Rg -a 145257# 519# 7227# 2# B- * 275 155939# 557# +0 60 168 108 276 Hs -a 138285# 799# 7264# 3# B- -2924# 972# 276 148455# 858# + 58 167 109 276 Mt -a 141209# 552# 7251# 2# B- -1333# 778# 276 151594# 593# + 56 166 110 276 Ds -a 142542# 548# 7243# 2# B- -4945# 834# 276 153025# 588# + 54 165 111 276 Rg -a 147487# 629# 7222# 2# B- -2866# 867# 276 158334# 675# + 52 164 112 276 Cn x 150352# 596# 7209# 2# B- * 276 161410# 640# +0 61 169 108 277 Hs -a 141493# 541# 7255# 2# B- -1275# 939# 277 151899# 581# + 59 168 109 277 Mt -a 142768# 767# 7248# 3# B- -2465# 858# 277 153268# 824# + 57 167 110 277 Ds -a 145233# 384# 7236# 1# B- -2939# 684# 277 155914# 412# + 55 166 111 277 Rg -a 148172# 566# 7223# 2# B- -4259# 584# 277 159069# 607# + 53 165 112 277 Cn -a 152430# 143# 7205# 1# B- * 277 163641# 154# +0 60 169 109 278 Mt -a 145599# 634# 7241# 2# B- -683# 890# 278 156307# 680# + 58 168 110 278 Ds -a 146282# 625# 7236# 2# B- -4148# 719# 278 157040# 671# + 56 167 111 278 Rg -a 150430# 357# 7218# 1# B- -2480# 565# 278 161493# 383# + 54 166 112 278 Cn -a 152910# 438# 7206# 2# B- -5983# 475# 278 164156# 470# + 52 165 113 278 Ed -a 158893# 184# 7182# 1# B- * 278 170578# 198# +0 61 170 109 279 Mt -a 147246# 667# 7238# 2# B- -1884# 896# 279 158075# 716# + 59 169 110 279 Ds -a 149130# 598# 7228# 2# B- -2445# 761# 279 160097# 642# + 57 168 111 279 Rg -a 151574# 471# 7217# 2# B- -3559# 663# 279 162722# 505# + 55 167 112 279 Cn -a 155133# 467# 7201# 2# B- -4106# 840# 279 166542# 502# + 53 166 113 279 Ed x 159239# 699# 7184# 3# B- * 279 170950# 750# +0 60 170 110 280 Ds -a 150260# 824# 7227# 3# B- -3565# 998# 280 161311# 885# + 58 169 111 280 Rg -a 153825# 564# 7212# 2# B- -1871# 811# 280 165138# 605# + 56 168 112 280 Cn -a 155697# 583# 7202# 2# B- -5386# 910# 280 167147# 626# + 54 167 113 280 Ed x 161083# 699# 7180# 2# B- * 280 172930# 750# +0 61 171 110 281 Ds -a 153241# 553# 7220# 2# B- -1722# 992# 281 164511# 593# + 59 170 111 281 Rg -a 154963# 824# 7211# 3# B- -3154# 910# 281 166360# 885# + 57 169 112 281 Cn -a 158117# 387# 7197# 1# B- -3478# 799# 281 169746# 416# + 55 168 113 281 Ed x 161596# 699# 7182# 2# B- * 281 173480# 750# +0 60 171 111 282 Rg -a 157534# 666# 7205# 2# B- -1283# 935# 282 169119# 715# + 58 170 112 282 Cn -a 158816# 656# 7197# 2# B- -4821# 748# 282 170496# 704# + 56 169 113 282 Ed -a 163638# 361# 7178# 1# B- * 282 175672# 387# +0 61 172 111 283 Rg -a 158861# 732# 7203# 3# B- -2539# 952# 283 170544# 786# + 59 171 112 283 Cn -a 161400# 608# 7191# 2# B- -3075# 777# 283 173270# 653# + 57 170 113 283 Ed -a 164475# 484# 7178# 2# B- * 283 176571# 519# +0 60 172 112 284 Cn -a 162225# 848# 7192# 3# B- -4258# 1024# 284 174156# 910# + 58 171 113 284 Ed -a 166483# 575# 7174# 2# B- * 284 178727# 617# +0 61 173 112 285 Cn -a 164983# 555# 7185# 2# B- -2431# 995# 285 177117# 596# + 59 172 113 285 Ed -a 167415# 825# 7174# 3# B- -3647# 933# 285 179727# 886# + 57 171 114 285 Fl -a 171062# 436# 7158# 2# B- * 285 183643# 468# +0 60 173 113 286 Ed -a 169725# 668# 7169# 2# B- -1888# 937# 286 182208# 717# + 58 172 114 286 Fl -a 171613# 657# 7159# 2# B- * 286 184235# 705# +0 61 174 113 287 Ed -a 170825# 759# 7168# 3# B- -3161# 974# 287 183389# 814# + 59 173 114 287 Fl -a 173987# 610# 7154# 2# B- -3653# 781# 287 186783# 655# + 57 172 115 287 Ef -a 177639# 488# 7139# 2# B- * 287 190704# 523# +0 60 174 114 288 Fl -a 174722# 848# 7155# 3# B- -4814# 1025# 288 187572# 910# + 58 173 115 288 Ef -a 179536# 577# 7136# 2# B- * 288 192740# 619# +0 61 175 114 289 Fl -a 177374# 557# 7149# 2# B- -2988# 997# 289 190419# 598# + 59 174 115 289 Ef -a 180363# 827# 7136# 3# B- -4224# 982# 289 193627# 888# + 57 173 116 289 Lv -a 184587# 529# 7119# 2# B- * 289 198162# 568# +0 60 175 115 290 Ef -a 182550# 677# 7132# 2# B- -2480# 947# 290 195975# 727# + 58 174 116 290 Lv -a 185030# 662# 7120# 2# B- * 290 198638# 710# +0 61 176 115 291 Ef -a 183570# 816# 7131# 3# B- -3731# 1020# 291 197071# 876# + 59 175 116 291 Lv -a 187302# 612# 7116# 2# B- -4153# 879# 291 201077# 658# + 57 174 117 291 Eh -a 191454# 631# 7099# 2# B- * 291 205535# 677# +0 60 176 116 292 Lv -a 187921# 848# 7117# 3# B- -5329# 1101# 292 201742# 910# + 58 175 117 292 Eh -a 193251# 702# 7096# 2# B- * 292 207463# 753# +0 61 177 116 293 Lv -a 190479# 559# 7111# 2# B- -3492# 1000# 293 204487# 601# + 59 176 117 293 Eh -a 193970# 828# 7097# 3# B- -4962# 1103# 293 208236# 889# + 57 175 118 293 Ei -a 198932# 728# 7077# 2# B- * 293 213562# 782# +0 60 177 117 294 Eh -a 196044# 687# 7093# 2# B- -3222# 955# 294 210462# 737# + 58 176 118 294 Ei -a 199266# 664# 7080# 2# B- * 294 213921# 713# +0 59 177 118 295 Ei -a 201427# 644# 7076# 2# B- * 295 216240# 692# diff --git a/setup.py b/setup.py index 393f40bd35..4479bb82c5 100644 --- a/setup.py +++ b/setup.py @@ -40,6 +40,12 @@ if have_setuptools: 'sparse' : ['scipy'], 'vtk': ['vtk', 'silomesh'], 'validate': ['lxml'] - }}) + }, + + # Data files + 'package_data': { + 'openmc.data': ['mass.mas12'] + }, + }) setup(**kwargs) From 14b8ef6a1f6bd248a22e6c4cf806d27fcd812fca Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 5 Aug 2016 13:48:12 -0500 Subject: [PATCH 241/417] Make PyAPI Polynomial class, remove Constant1D --- openmc/data/function.py | 91 ++++++++++++++++++++++++++++++++++++++++- openmc/data/product.py | 28 +++---------- openmc/data/reaction.py | 6 +-- src/endf_header.F90 | 30 -------------- src/nuclide_header.F90 | 8 ++-- src/product_header.F90 | 8 ++-- src/tally.F90 | 44 +++++--------------- 7 files changed, 115 insertions(+), 100 deletions(-) diff --git a/openmc/data/function.py b/openmc/data/function.py index bea6f5e9a6..e827e12833 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -1,3 +1,4 @@ +from abc import ABCMeta, abstractmethod from collections import Iterable, Callable from numbers import Real, Integral @@ -9,7 +10,53 @@ INTERPOLATION_SCHEME = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log', 4: 'log-linear', 5: 'log-log'} -class Tabulated1D(object): +class Function1D(object): + """A function of one independent variable with HDF5 support.""" + + __meta__class = ABCMeta + + def __init__(self): pass + + @abstractmethod + def __call__(self): pass + + @abstractmethod + def to_hdf5(self, group, name='xy'): + """Write function to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + name : str + Name of the dataset to create + + """ + pass + + @classmethod + def from_hdf5(cls, dataset): + """Generate function from an HDF5 dataset + + Parameters + ---------- + dataset : h5py.Dataset + Dataset to read from + + Returns + ------- + openmc.data.Function1D + Function read from dataset + + """ + for subclass in cls.__subclasses__(): + if dataset.attrs['type'].decode() == subclass.__name__: + return subclass.from_hdf5(dataset) + raise ValueError("Unrecognized Function1D class: '" + + dataset.attrs['type'].decode() + "'") + + +class Tabulated1D(Function1D): """A one-dimensional tabulated function. This class mirrors the TAB1 type from the ENDF-6 format. A tabulated @@ -239,7 +286,7 @@ class Tabulated1D(object): """ dataset = group.create_dataset(name, data=np.vstack( [self.x, self.y])) - dataset.attrs['type'] = np.string_('tab1') + dataset.attrs['type'] = np.string_(type(self).__name__) dataset.attrs['breakpoints'] = self.breakpoints dataset.attrs['interpolation'] = self.interpolation @@ -258,6 +305,10 @@ class Tabulated1D(object): Function read from dataset """ + if dataset.attrs['type'].decode() != cls.__name__: + raise ValueError("Expected an HDF5 attribute 'type' equal to '" + + cls.__name__ + "'") + x = dataset.value[0, :] y = dataset.value[1, :] breakpoints = dataset.attrs['breakpoints'] @@ -304,6 +355,42 @@ class Tabulated1D(object): return Tabulated1D(x, y, breakpoints, interpolation) +class Polynomial(np.polynomial.Polynomial, Function1D): + def to_hdf5(self, group, name='xy'): + """Write polynomial function to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + name : str + Name of the dataset to create + + """ + dataset = group.create_dataset(name, data=self.coef) + dataset.attrs['type'] = np.string_(type(self).__name__) + + @classmethod + def from_hdf5(cls, dataset): + """Generate function from an HDF5 dataset + + Parameters + ---------- + dataset : h5py.Dataset + Dataset to read from + + Returns + ------- + openmc.data.Function1D + Function read from dataset + + """ + if dataset.attrs['type'].decode() != cls.__name__: + raise ValueError("Expected an HDF5 attribute 'type' equal to '" + + cls.__name__ + "'") + return cls(dataset.value) + + class Sum(object): """Sum of multiple functions. diff --git a/openmc/data/product.py b/openmc/data/product.py index dd276daac3..116905f7a3 100644 --- a/openmc/data/product.py +++ b/openmc/data/product.py @@ -3,10 +3,9 @@ from numbers import Real import sys import numpy as np -from numpy.polynomial.polynomial import Polynomial import openmc.checkvalue as cv -from .function import Tabulated1D +from .function import Tabulated1D, Polynomial, Function1D from .angle_energy import AngleEnergy if sys.version_info[0] >= 3: @@ -36,7 +35,7 @@ class Product(object): yield represents particles from prompt and delayed sources. particle : str What particle the reaction product is. - yield_ : float or openmc.data.Tabulated1D or numpy.polynomial.Polynomial + yield_ : float or openmc.data.Tabulated1D or openmc.data.Polynomial Yield of secondary particle in the reaction. """ @@ -47,7 +46,7 @@ class Product(object): self.emission_mode = 'prompt' self.distribution = [] self.applicability = [] - self.yield_ = 1 + self.yield_ = Polynomial((1,)) # 0-order polynomial i.e. a constant def __repr__(self): if isinstance(self.yield_, Real): @@ -120,7 +119,7 @@ class Product(object): @yield_.setter def yield_(self, yield_): cv.check_type('product yield', yield_, - (Real, Tabulated1D, Polynomial)) + (Tabulated1D, Polynomial)) self._yield = yield_ def to_hdf5(self, group): @@ -138,16 +137,7 @@ class Product(object): group.attrs['decay_rate'] = self.decay_rate # Write yield - if isinstance(self.yield_, Tabulated1D): - self.yield_.to_hdf5(group, 'yield') - dset = group['yield'] - dset.attrs['type'] = np.string_('tabulated') - elif isinstance(self.yield_, Polynomial): - dset = group.create_dataset('yield', data=self.yield_.coef) - dset.attrs['type'] = np.string_('polynomial') - else: - dset = group.create_dataset('yield', data=float(self.yield_)) - dset.attrs['type'] = np.string_('constant') + self.yield_.to_hdf5(group, 'yield') # Write applicability/distribution group.attrs['n_distribution'] = len(self.distribution) @@ -180,13 +170,7 @@ class Product(object): p.decay_rate = group.attrs['decay_rate'] # Read yield - yield_type = group['yield'].attrs['type'].decode() - if yield_type == 'constant': - p.yield_ = group['yield'].value - elif yield_type == 'polynomial': - p.yield_ = Polynomial(group['yield'].value) - elif yield_type == 'tabulated': - p.yield_ = Tabulated1D.from_hdf5(group['yield']) + p.yield_ = Function1D.from_hdf5(group['yield']) # Read applicability/distribution n_distribution = group.attrs['n_distribution'] diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index ad707d276e..d35599579d 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -5,13 +5,12 @@ from numbers import Real from warnings import warn import numpy as np -from numpy.polynomial import Polynomial import openmc.checkvalue as cv from openmc.stats import Uniform from .angle_distribution import AngleDistribution from .angle_energy import AngleEnergy -from .function import Tabulated1D +from .function import Tabulated1D, Polynomial from .data import REACTION_NAME from .product import Product from .uncorrelated import UncorrelatedAngleEnergy @@ -465,7 +464,8 @@ class Reaction(object): idx = ace.jxs[11] + abs(ty) - 101 yield_ = Tabulated1D.from_ace(ace, idx) else: - yield_ = abs(ty) + # 0-order polynomial i.e. a constant + yield_ = Polynomial((abs(ty),)) neutron = Product('neutron') neutron.yield_ = yield_ diff --git a/src/endf_header.F90 b/src/endf_header.F90 index c4b4ef3ad8..8d8aefaa3c 100644 --- a/src/endf_header.F90 +++ b/src/endf_header.F90 @@ -30,17 +30,6 @@ module endf_header end subroutine function1d_from_hdf5_ end interface -!=============================================================================== -! CONSTANT1D represents a constant one-dimensional function -!=============================================================================== - - type, extends(Function1D) :: Constant1D - real(8) :: y - contains - procedure :: from_hdf5 => constant1d_from_hdf5 - procedure :: evaluate => constant1d_evaluate - end type Constant1D - !=============================================================================== ! POLYNOMIAL represents a one-dimensional function expressed as a polynomial !=============================================================================== @@ -72,25 +61,6 @@ module endf_header contains -!=============================================================================== -! Constant1D implementation -!=============================================================================== - - subroutine constant1d_from_hdf5(this, dset_id) - class(Constant1D), intent(inout) :: this - integer(HID_T), intent(in) :: dset_id - - call read_dataset(this % y, dset_id) - end subroutine constant1d_from_hdf5 - - 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 !=============================================================================== diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 8ff83482e5..514958a07e 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -10,7 +10,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, Constant1D, Polynomial, Tabulated1D + use endf_header, only: Function1D, Polynomial, Tabulated1D use error, only: fatal_error, warning use hdf5_interface, only: read_attribute, open_group, close_group, & open_dataset, read_dataset, close_dataset, get_shape @@ -283,11 +283,9 @@ module nuclide_header total_nu = open_dataset(nu_group, 'yield') call read_attribute(temp, total_nu, 'type') select case (temp) - case ('constant') - allocate(Constant1D :: this % total_nu) - case ('tabulated') + case ('Tabulated1D') allocate(Tabulated1D :: this % total_nu) - case ('polynomial') + case ('Polynomial') allocate(Polynomial :: this % total_nu) end select call this % total_nu % from_hdf5(total_nu) diff --git a/src/product_header.F90 b/src/product_header.F90 index f20adf0d40..a69929473d 100644 --- a/src/product_header.F90 +++ b/src/product_header.F90 @@ -5,7 +5,7 @@ module product_header use angleenergy_header, only: AngleEnergyContainer use constants, only: ZERO, MAX_WORD_LEN, EMISSION_PROMPT, EMISSION_DELAYED, & EMISSION_TOTAL, NEUTRON, PHOTON - use endf_header, only: Tabulated1D, Function1D, Constant1D, Polynomial + use endf_header, only: Tabulated1D, Function1D, Polynomial use hdf5_interface, only: read_attribute, open_group, close_group, & open_dataset, close_dataset, read_dataset use random_lcg, only: prn @@ -109,11 +109,9 @@ contains yield = open_dataset(group_id, 'yield') call read_attribute(temp, yield, 'type') select case (temp) - case ('constant') - allocate(Constant1D :: this % yield) - case ('tabulated') + case ('Tabulated1D') allocate(Tabulated1D :: this % yield) - case ('polynomial') + case ('Polynomial') allocate(Polynomial :: this % yield) end select call this % yield % from_hdf5(yield) diff --git a/src/tally.F90 b/src/tally.F90 index ec46a61940..0a910a9696 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1,7 +1,6 @@ module tally use constants - use endf_header, only: Constant1D use error, only: fatal_error use geometry_header use global @@ -247,24 +246,17 @@ contains ! 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. + ! Don't waste time on very common reactions we know have + ! multiplicities of one. score = p % last_wgt * flux else - m = nuclides(p%event_nuclide)%reaction_index% & + m = nuclides(p % event_nuclide) % reaction_index % & get_key(p % event_MT) ! Get yield and apply to score - associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - select type (yield => rxn % products(1) % yield) - type is (Constant1D) - ! Grab the yield from the reaction - score = p % last_wgt * yield % y * flux - class default - ! the yield was already incorporated in to p % wgt per the - ! scattering routine - score = p % wgt * flux - end select + associate (rxn => nuclides(p % event_nuclide) % reactions(m)) + score = p % last_wgt * flux & + * rxn % products(1) % yield % evaluate(p % last_E) end associate end if @@ -289,16 +281,9 @@ contains get_key(p % event_MT) ! Get yield and apply to score - associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - select type (yield => rxn % products(1) % yield) - type is (Constant1D) - ! Grab the yield from the reaction - score = p % last_wgt * yield % y * flux - class default - ! the yield was already incorporated in to p % wgt per the - ! scattering routine - score = p % wgt * flux - end select + associate (rxn => nuclides(p % event_nuclide) % reactions(m)) + score = p % last_wgt * flux & + * rxn % products(1) % yield % evaluate(p % last_E) end associate end if @@ -324,15 +309,8 @@ contains ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - select type (yield => rxn % products(1) % yield) - type is (Constant1D) - ! Grab the yield from the reaction - score = p % last_wgt * yield % y * flux - class default - ! the yield was already incorporated in to p % wgt per the - ! scattering routine - score = p % wgt * flux - end select + score = p % last_wgt * flux & + * rxn % products(1) % yield % evaluate(p % last_E) end associate end if From 2025306f9a32cbcc611cbe1f4916d211888ea8e1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 6 Aug 2016 06:43:25 -0400 Subject: [PATCH 242/417] Added capability to use MGXS with a mesh domain in create_mg_mode and create_mg_library. --- openmc/filter.py | 2 +- openmc/mesh.py | 104 +++++++++++++++ openmc/mgxs/library.py | 285 +++++++++++++++++++++++++++++------------ openmc/mgxs/mgxs.py | 3 +- openmc/mgxs_library.py | 124 ++++++++++++++---- 5 files changed, 403 insertions(+), 115 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 8a54e05cee..f9f4f74766 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -376,7 +376,7 @@ class Filter(object): cell instance ID for 'distribcell' Filters. The bin is a 2-tuple of floats for 'energy' and 'energyout' filters corresponding to the energy boundaries of the bin of interest. The bin is an (x,y,z) - 3-tuple for 'mesh' filters corresponding to the mesh cell + 3-tuple for 'mesh' filters corresponding to the mesh cell of interest. Returns diff --git a/openmc/mesh.py b/openmc/mesh.py index 169e7705cc..9496a06511 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -6,6 +6,8 @@ import sys import numpy as np import openmc.checkvalue as cv +import openmc.surface +import openmc.cell if sys.version_info[0] >= 3: @@ -181,6 +183,21 @@ class Mesh(object): string += '{0: <16}{1}{2}\n'.format('\tPixels', '=\t', self._width) return string + def cell_generator(self): + """Generator function to traverse through every [i,j,k] index + of the mesh. + + """ + if len(self.dimension) == 2: + for x in range(self.dimension[0]): + for y in range(self.dimension[1]): + yield [x + 1, y + 1, 1] + else: + for x in range(self.dimension[0]): + for y in range(self.dimension[1]): + for z in range(self.dimension[2]): + yield [x + 1, y + 1, z + 1] + def get_mesh_xml(self): """Return XML representation of the mesh @@ -210,3 +227,90 @@ class Mesh(object): subelement.text = ' '.join(map(str, self._width)) return element + + def build_cells(self, bc=['reflective'] * 6): + """Generates a list of cells which mimic the mesh geometry. + + Parameters + ---------- + bc : iterable of {'reflective', 'periodic', or 'vacuum'} + Boundary conditions for each of the six faces of a parallelopiped: + North, East, South, West, Up, and Down. + + Returns + ------- + root_cell : openmc.Cell + The cell containing the lattice mimicking the mesh geometry. + cells : iterable of openmc.Cell + The list of cells within each lattice position mimicking the mesh + geometry. + + """ + + cv.check_length('bc', bc, length_min=6, length_max=6) + for entry in bc: + cv.check_value('bc', entry, ['transmission', 'vacuum', + 'reflective', 'periodic']) + + if len(self.dimension) == 2: + twod = True + else: + twod = False + + # Build enclosing cell + xplanes = [openmc.XPlane(x0=self.lower_left[0], + boundary_type=bc[3]), + openmc.XPlane(x0=self.upper_right[0], + boundary_type=bc[1])] + yplanes = [openmc.YPlane(y0=self.lower_left[1], + boundary_type=bc[2]), + openmc.YPlane(y0=self.upper_right[1], + boundary_type=bc[0])] + if twod: + zplanes = [openmc.ZPlane(z0=-1.E50, boundary_type=bc[5]), + openmc.ZPlane(z0=+1.E50, boundary_type=bc[5])] + else: + zplanes = [openmc.ZPlane(z0=self.lower_left[2], + boundary_type=bc[5]), + openmc.ZPlane(z0=self.upper_right[2], + boundary_type=bc[5])] + root_cell = openmc.Cell() + root_cell.region = ((+xplanes[0] & -xplanes[1]) & + (+yplanes[0] & -yplanes[1]) & + (+zplanes[0] & -zplanes[1])) + + # Build our universes + universes = np.ndarray(self.dimension[::-1], dtype=np.object) + cells = [] + for [i, j, k] in self.cell_generator(): + if twod: + universes[j - 1, i - 1] = openmc.Universe() + cells.append(openmc.Cell()) + universes[j - 1, i - 1].add_cells([cells[-1]]) + else: + universes[k - 1, j - 1, i - 1] = openmc.Universe() + cells.append(openmc.Cell()) + universes[k - 1, j - 1, i - 1].add_cells([cells[-1]]) + + lattice = openmc.RectLattice() + lattice.lower_left = self.lower_left + + if self.width is not None: + lattice.pitch = self.width + else: + dx = ((self.upper_right[0] - self.lower_left[0]) / + self.dimension[0]) + dy = ((self.upper_right[1] - self.lower_left[1]) / + self.dimension[1]) + if twod: + lattice.pitch = [dx, dy] + else: + dz = ((self.upper_right[2] - self.lower_left[2]) / + self.dimension[2]) + lattice.pitch = [dx, dy, dz] + lattice.universes = universes + + # Fill Cell with the Lattice + root_cell.fill = lattice + + return root_cell, cells diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 84571ce236..c5e039cea5 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -756,14 +756,14 @@ class Library(object): def get_xsdata(self, domain, xsdata_name, nuclide='total', xs_type='macro', xs_id='1m', order=None, tabular_legendre=None, - tabular_points=33): + tabular_points=33, subdomain=None): """Generates an openmc.XSdata object describing a multi-group cross section data set for eventual combination in to an openmc.MGXSLibrary object (i.e., the library). Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe + domain : openmc.Material, openmc.Cell, openmc.Universe, or openmc.Mesh The domain for spatial homogenization xsdata_name : str Name to apply to the "xsdata" entry produced by this method @@ -792,6 +792,10 @@ class Library(object): parameter is set to `True`. In this case, this parameter sets the number of equally-spaced points in the domain of [-1,1] to be used in building the tabular distribution. Default is `33`. + subdomain : iterable of int + This parameter is not used unless using a mesh domain. In that + case, the subdomain is an [i,j,k] index (1-based indexing) of the + mesh cell of interest in the openmc.Mesh object. Returns ------- @@ -811,7 +815,7 @@ class Library(object): """ cv.check_type('domain', domain, (openmc.Material, openmc.Cell, - openmc.Cell)) + openmc.Universe, openmc.Mesh)) cv.check_type('xsdata_name', xsdata_name, basestring) cv.check_type('nuclide', nuclide, basestring) cv.check_value('xs_type', xs_type, ['macro', 'micro']) @@ -824,6 +828,9 @@ class Library(object): (type(None), bool)) if tabular_points is not None: cv.check_greater_than('tabular_points', tabular_points, 1) + if subdomain is not None: + cv.check_iterable_type('subdomain', subdomain, Integral, + max_depth=2) # Make sure statepoint has been loaded if self._sp_filename is None: @@ -865,38 +872,43 @@ class Library(object): xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) elif 'total' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'total') - xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) + xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], + subdomain=subdomain) if 'absorption' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'absorption') xsdata.set_absorption_mgxs(mymgxs, xs_type=xs_type, - nuclide=[nuclide]) + nuclide=[nuclide], subdomain=subdomain) if 'fission' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'fission') xsdata.set_fission_mgxs(mymgxs, xs_type=xs_type, - nuclide=[nuclide]) + nuclide=[nuclide], subdomain=subdomain) if 'kappa-fission' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'kappa-fission') xsdata.set_kappa_fission_mgxs(mymgxs, xs_type=xs_type, - nuclide=[nuclide]) + nuclide=[nuclide], + subdomain=subdomain) # For chi and nu-fission we can either have only a nu-fission matrix # provided, or vectors of chi and nu-fission provided if 'nu-fission matrix' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'nu-fission matrix') xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, - nuclide=[nuclide]) + nuclide=[nuclide], subdomain=subdomain) else: if 'chi' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'chi') - xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) + xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], + subdomain=subdomain) if 'nu-fission' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'nu-fission') xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, - nuclide=[nuclide]) + nuclide=[nuclide], + subdomain=subdomain) # If multiplicity matrix is available, prefer that if 'multiplicity matrix' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'multiplicity matrix') xsdata.set_multiplicity_mgxs(mymgxs, xs_type=xs_type, - nuclide=[nuclide]) + nuclide=[nuclide], + subdomain=subdomain) using_multiplicity = True # multiplicity wil fall back to using scatter and nu-scatter elif ((('scatter matrix' in self.mgxs_types) and @@ -904,7 +916,8 @@ class Library(object): scatt_mgxs = self.get_mgxs(domain, 'scatter matrix') nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') xsdata.set_multiplicity_mgxs(nuscatt_mgxs, scatt_mgxs, - xs_type=xs_type, nuclide=[nuclide]) + xs_type=xs_type, nuclide=[nuclide], + subdomain=subdomain) using_multiplicity = True else: using_multiplicity = False @@ -912,12 +925,12 @@ class Library(object): if using_multiplicity: nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, - nuclide=[nuclide]) + nuclide=[nuclide], subdomain=subdomain) else: if 'nu-scatter matrix' in self.mgxs_types: nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, - nuclide=[nuclide]) + nuclide=[nuclide], subdomain=subdomain) # Since we are not using multiplicity, then # scattering multiplication (nu-scatter) must be @@ -988,15 +1001,6 @@ class Library(object): cv.check_value('xs_type', xs_type, ['macro', 'micro']) if xsdata_names is not None: cv.check_iterable_type('xsdata_names', xsdata_names, basestring) - if xs_ids is not None: - if isinstance(xs_ids, basestring): - # If we only have a string lets convert it now to a list - # of strings. - xs_ids = [xs_ids for i in range(len(self.domains))] - else: - cv.check_iterable_type('xs_ids', xs_ids, basestring) - else: - xs_ids = ['1m' for i in range(len(self.domains))] # If gathering material-specific data, set the xs_type to macro if not self.by_nuclide: @@ -1005,32 +1009,79 @@ class Library(object): # Initialize file mgxs_file = openmc.MGXSLibrary(self.energy_groups) - # Create the xsdata object and add it to the mgxs_file - for i, domain in enumerate(self.domains): - if self.by_nuclide: - nuclides = list(domain.get_all_nuclides().keys()) + if xs_ids is not None: + if isinstance(xs_ids, basestring): + # If we only have a string lets convert it now to a list + # of strings. + xs_id_input = xs_ids + xs_ids = [] + for domain in self.domains: + if self.domain_type is 'mesh': + for subdomain in domain.cell_generator(): + xs_ids.append(xs_id_input) + else: + xs_ids.append(xs_id_input) else: - nuclides = ['total'] - for nuclide in nuclides: - # Build & add metadata to XSdata object - if xsdata_names is None: - xsdata_name = 'set' + str(i + 1) + cv.check_iterable_type('xs_ids', xs_ids, basestring) + else: + xs_ids = [] + for domain in self.domains: + if self.domain_type is 'mesh': + for subdomain in domain.cell_generator(): + xs_ids.append('1m') else: - xsdata_name = xsdata_names[i] - if nuclide is not 'total': - xsdata_name += '_' + nuclide + xs_ids.append('1m') - xsdata = self.get_xsdata(domain, xsdata_name, nuclide=nuclide, - xs_type=xs_type, xs_id=xs_ids[i], - tabular_legendre=tabular_legendre, - tabular_points=tabular_points) + if self.domain_type == 'mesh': + # Create the xsdata objects and add to the mgxs_file + i = 0 + for domain in self.domains: + for subdomain in domain.cell_generator(): + # Build & add metadata to XSdata object + if xsdata_names is None: + xsdata_name = 'set' + str(i + 1) + else: + xsdata_name = xsdata_names[i] - mgxs_file.add_xsdata(xsdata) + # Create XSdata and Macroscopic for this domain + xsdata = self.get_xsdata(domain, xsdata_name, + nuclide='total', + xs_type=xs_type, xs_id=xs_ids[i], + tabular_legendre=tabular_legendre, + tabular_points=tabular_points, + subdomain=subdomain) + mgxs_file.add_xsdata(xsdata) + i += 1 + + else: + # Create the xsdata object and add it to the mgxs_file + for i, domain in enumerate(self.domains): + if self.by_nuclide: + nuclides = list(domain.get_all_nuclides().keys()) + else: + nuclides = ['total'] + for nuclide in nuclides: + # Build & add metadata to XSdata object + if xsdata_names is None: + xsdata_name = 'set' + str(i + 1) + else: + xsdata_name = xsdata_names[i] + if nuclide is not 'total': + xsdata_name += '_' + nuclide + + xsdata = self.get_xsdata(domain, xsdata_name, + nuclide=nuclide, + xs_type=xs_type, xs_id=xs_ids[i], + tabular_legendre=tabular_legendre, + tabular_points=tabular_points) + + mgxs_file.add_xsdata(xsdata) return mgxs_file def create_mg_mode(self, xsdata_names=None, xs_ids=None, - tabular_legendre=None, tabular_points=33): + tabular_legendre=None, tabular_points=33, + bc=['reflective'] * 6): """Creates an openmc.MGXSLibrary object to contain the MGXS data for the Multi-Group mode of OpenMC as well as the associated openmc.Materials and openmc.Geometry objects. The created Geometry is the same as that @@ -1060,6 +1111,9 @@ class Library(object): parameter is set to `True`. In this case, this parameter sets the number of equally-spaced points in the domain of [-1,1] to be used in building the tabular distribution. Default is `33`. + bc : iterable of {'reflective', 'periodic', or 'vacuum'} + Boundary conditions for each of the six faces of a parallelopiped: + North, East, South, Wwest, Up, and Down. Returns ------- @@ -1092,60 +1146,121 @@ class Library(object): if xsdata_names is not None: cv.check_iterable_type('xsdata_names', xsdata_names, basestring) - if xs_ids is not None: - if isinstance(xs_ids, basestring): - # If we only have a string lets convert it now to a list - # of strings. - xs_ids = [xs_ids for i in range(len(self.domains))] - else: - cv.check_iterable_type('xs_ids', xs_ids, basestring) - else: - xs_ids = ['1m' for i in range(len(self.domains))] xs_type = 'macro' # Initialize MGXS File mgxs_file = openmc.MGXSLibrary(self.energy_groups) - # Create a copy of the Geometry to differentiate for these Macroscopics - geometry = copy.deepcopy(self.openmc_geometry) - materials = openmc.Materials() - - # Get all Cells from the Geometry for differentiation - all_cells = geometry.get_all_material_cells() - - # Create the xsdata object and add it to the mgxs_file - for i, domain in enumerate(self.domains): - - # Build & add metadata to XSdata object - if xsdata_names is None: - xsdata_name = 'set' + str(i + 1) + # Set ID names + if xs_ids is not None: + if isinstance(xs_ids, basestring): + # If we only have a string lets convert it now to a list + # of strings. + xs_id_input = xs_ids + xs_ids = [] + for domain in self.domains: + if self.domain_type is 'mesh': + for subdomain in domain.cell_generator(): + xs_ids.append(xs_id_input) + else: + xs_ids.append(xs_id_input) else: - xsdata_name = xsdata_names[i] + cv.check_iterable_type('xs_ids', xs_ids, basestring) + else: + xs_ids = [] + for domain in self.domains: + if self.domain_type is 'mesh': + for subdomain in domain.cell_generator(): + xs_ids.append('1m') + else: + xs_ids.append('1m') - # Create XSdata and Macroscopic for this domain - xsdata = self.get_xsdata(domain, xsdata_name, nuclide='total', - xs_type=xs_type, xs_id=xs_ids[i], - tabular_legendre=tabular_legendre, - tabular_points=tabular_points) - mgxs_file.add_xsdata(xsdata) - macroscopic = openmc.Macroscopic(name=xsdata_name, xs=xs_ids[i]) + if self.domain_type == 'mesh': + # Before continuing, we cant build a model automatically if + # the user provided multiple mesh domains for library generation. + # So check and complain as needed. + cv.check_length("domains", self.domains, 1, 1) - # Create Material and add to collection - material = openmc.Material(name=xsdata_name + '.' + xs_ids[i]) - material.add_macroscopic(macroscopic) - materials.append(material) + # Create the xsdata objects and add to the mgxs_file + # and assign to materials and geometry as we go + materials = openmc.Materials() + root = openmc.Universe(name='root', universe_id=0) + # Add cells representative of the mesh with reflective BC + root_cell, cells = \ + self.domains[0].build_cells(bc) + root.add_cell(root_cell) + geometry = openmc.Geometry() + geometry.root_universe = root - # Differentiate Geometry with new Material - if self.domain_type == 'material': - # Fill all appropriate Cells with new Material - for cell in all_cells: - if cell.fill.id == domain.id: - cell.fill = material + for i, subdomain in enumerate(self.domains[0].cell_generator()): + # Build & add metadata to XSdata object + if xsdata_names is None: + xsdata_name = 'set' + str(i + 1) + else: + xsdata_name = xsdata_names[i] - elif self.domain_type == 'cell': - for cell in all_cells: - if cell.id == domain.id: - cell.fill = material + # Create XSdata and Macroscopic for this domain + xsdata = self.get_xsdata(domain, xsdata_name, + nuclide='total', + xs_type=xs_type, xs_id=xs_ids[i], + tabular_legendre=tabular_legendre, + tabular_points=tabular_points, + subdomain=subdomain) + mgxs_file.add_xsdata(xsdata) + macroscopic = openmc.Macroscopic(name=xsdata_name, + xs=xs_ids[i]) + + # Create Material and add to collection + material = openmc.Material(name=xsdata_name + '.' + + xs_ids[i]) + material.add_macroscopic(macroscopic) + materials.append(material) + + # Set the materials for each of the universes + cells[i].fill = materials[i] + + else: + # Create a copy of the Geometry for these Macroscopics + geometry = copy.deepcopy(self.openmc_geometry) + materials = openmc.Materials() + + # Get all Cells from the Geometry for differentiation + all_cells = geometry.get_all_material_cells() + + # Create the xsdata object and add it to the mgxs_file + for i, domain in enumerate(self.domains): + + # Build & add metadata to XSdata object + if xsdata_names is None: + xsdata_name = 'set' + str(i + 1) + else: + xsdata_name = xsdata_names[i] + + # Create XSdata and Macroscopic for this domain + xsdata = self.get_xsdata(domain, xsdata_name, nuclide='total', + xs_type=xs_type, xs_id=xs_ids[i], + tabular_legendre=tabular_legendre, + tabular_points=tabular_points) + mgxs_file.add_xsdata(xsdata) + macroscopic = openmc.Macroscopic(name=xsdata_name, + xs=xs_ids[i]) + + # Create Material and add to collection + material = openmc.Material(name=xsdata_name + '.' + xs_ids[i]) + material.add_macroscopic(macroscopic) + materials.append(material) + + # Differentiate Geometry with new Material + if self.domain_type == 'material': + # Fill all appropriate Cells with new Material + for cell in all_cells: + if cell.fill.id == domain.id: + cell.fill = material + + elif self.domain_type == 'cell': + for cell in all_cells: + if cell.id == domain.id: + cell.fill = material return mgxs_file, materials, geometry diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e1c2e62217..608f232b74 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -781,7 +781,8 @@ class MGXS(object): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) + cv.check_iterable_type('subdomains', subdomains, Integral, + max_depth=3) for subdomain in subdomains: filters.append(self.domain_type) filter_bins.append((subdomain,)) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 6f8188b101..fca5f437cf 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -603,7 +603,8 @@ class XSdata(object): if np.sum(self._nu_fission) > 0.0: self._fissionable = True - def set_total_mgxs(self, total, nuclide='total', xs_type='macro'): + def set_total_mgxs(self, total, nuclide='total', xs_type='macro', + subdomain=None): """This method allows for an openmc.mgxs.TotalXS or openmc.mgxs.TransportXS to be used to set the total cross section for this XSdata object. @@ -619,6 +620,9 @@ class XSdata(object): xs_type: {'macro', 'micro'} Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + subdomain : iterable of int + If the MGXS contains a mesh domain type, the subdomain parameter + specifies which mesh cell ([i, j, k]) to use. See also -------- @@ -631,16 +635,21 @@ class XSdata(object): openmc.mgxs.TransportXS)) check_value('energy_groups', total.energy_groups, [self.energy_groups]) check_value('domain_type', total.domain_type, - ['universe', 'cell', 'material']) + ['universe', 'cell', 'material', 'mesh']) + if subdomain is None: + subdomain_val = None + else: + subdomain_val = [subdomain] if self.representation is 'isotropic': - self._total = total.get_xs(nuclides=nuclide, xs_type=xs_type) + self._total = total.get_xs(nuclides=nuclide, xs_type=xs_type, + subdomains=subdomain_val) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) def set_absorption_mgxs(self, absorption, nuclide='total', - xs_type='macro'): + xs_type='macro', subdomain=None): """This method allows for an openmc.mgxs.AbsorptionXS to be used to set the absorption cross section for this XSdata object. @@ -655,6 +664,9 @@ class XSdata(object): xs_type: {'macro', 'micro'} Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + subdomain : iterable of int + If the MGXS contains a mesh domain type, the subdomain parameter + specifies which mesh cell ([i, j, k]) to use. See also -------- @@ -667,16 +679,22 @@ class XSdata(object): check_value('energy_groups', absorption.energy_groups, [self.energy_groups]) check_value('domain_type', absorption.domain_type, - ['universe', 'cell', 'material']) + ['universe', 'cell', 'material', 'mesh']) + if subdomain is None: + subdomain_val = None + else: + subdomain_val = [subdomain] if self.representation is 'isotropic': self._absorption = absorption.get_xs(nuclides=nuclide, - xs_type=xs_type) + xs_type=xs_type, + subdomains=subdomain_val) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_fission_mgxs(self, fission, nuclide='total', xs_type='macro'): + def set_fission_mgxs(self, fission, nuclide='total', xs_type='macro', + subdomain=None): """This method allows for an openmc.mgxs.FissionXS to be used to set the fission cross section for this XSdata object. @@ -691,6 +709,9 @@ class XSdata(object): xs_type: {'macro', 'micro'} Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + subdomain : iterable of int + If the MGXS contains a mesh domain type, the subdomain parameter + specifies which mesh cell ([i, j, k]) to use. See also -------- @@ -703,17 +724,22 @@ class XSdata(object): check_value('energy_groups', fission.energy_groups, [self.energy_groups]) check_value('domain_type', fission.domain_type, - ['universe', 'cell', 'material']) + ['universe', 'cell', 'material', 'mesh']) + if subdomain is None: + subdomain_val = None + else: + subdomain_val = [subdomain] if self.representation is 'isotropic': self._fission = fission.get_xs(nuclides=nuclide, - xs_type=xs_type) + xs_type=xs_type, + subdomains=subdomain_val) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) def set_nu_fission_mgxs(self, nu_fission, nuclide='total', - xs_type='macro'): + xs_type='macro', subdomain=None): """This method allows for an openmc.mgxs.NuFissionXS to be used to set the nu-fission cross section for this XSdata object. @@ -728,6 +754,9 @@ class XSdata(object): xs_type: {'macro', 'micro'} Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + subdomain : iterable of int + If the MGXS contains a mesh domain type, the subdomain parameter + specifies which mesh cell ([i, j, k]) to use. See also -------- @@ -741,11 +770,16 @@ class XSdata(object): check_value('energy_groups', nu_fission.energy_groups, [self.energy_groups]) check_value('domain_type', nu_fission.domain_type, - ['universe', 'cell', 'material']) + ['universe', 'cell', 'material', 'mesh']) + if subdomain is None: + subdomain_val = None + else: + subdomain_val = [subdomain] if self.representation is 'isotropic': self._nu_fission = nu_fission.get_xs(nuclides=nuclide, - xs_type=xs_type) + xs_type=xs_type, + subdomains=subdomain_val) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -759,7 +793,7 @@ class XSdata(object): self._fissionable = True def set_kappa_fission_mgxs(self, k_fission, nuclide='total', - xs_type='macro'): + xs_type='macro', subdomain=None): """This method allows for an openmc.mgxs.KappaFissionXS to be used to set the kappa-fission cross section for this XSdata object. @@ -775,6 +809,9 @@ class XSdata(object): xs_type: {'macro', 'micro'} Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + subdomain : iterable of int + If the MGXS contains a mesh domain type, the subdomain parameter + specifies which mesh cell ([i, j, k]) to use. See also -------- @@ -787,16 +824,22 @@ class XSdata(object): check_value('energy_groups', k_fission.energy_groups, [self.energy_groups]) check_value('domain_type', k_fission.domain_type, - ['universe', 'cell', 'material']) + ['universe', 'cell', 'material', 'mesh']) + if subdomain is None: + subdomain_val = None + else: + subdomain_val = [subdomain] if self.representation is 'isotropic': self._kappa_fission = k_fission.get_xs(nuclides=nuclide, - xs_type=xs_type) + xs_type=xs_type, + subdomains=subdomain_val) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_chi_mgxs(self, chi, nuclide='total', xs_type='macro'): + def set_chi_mgxs(self, chi, nuclide='total', xs_type='macro', + subdomain=None): """This method allows for an openmc.mgxs.Chi to be used to set chi for this XSdata object. @@ -810,6 +853,9 @@ class XSdata(object): xs_type: {'macro', 'micro'} Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + subdomain : iterable of int + If the MGXS contains a mesh domain type, the subdomain parameter + specifies which mesh cell ([i, j, k]) to use. See also -------- @@ -827,11 +873,15 @@ class XSdata(object): check_type('chi', chi, openmc.mgxs.Chi) check_value('energy_groups', chi.energy_groups, [self.energy_groups]) check_value('domain_type', chi.domain_type, - ['universe', 'cell', 'material']) + ['universe', 'cell', 'material', 'mesh']) + if subdomain is None: + subdomain_val = None + else: + subdomain_val = [subdomain] if self.representation is 'isotropic': self._chi = chi.get_xs(nuclides=nuclide, - xs_type=xs_type) + xs_type=xs_type, subdomains=subdomain_val) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -839,7 +889,8 @@ class XSdata(object): if self.use_chi is not None: self.use_chi = True - def set_scatter_mgxs(self, scatter, nuclide='total', xs_type='macro'): + def set_scatter_mgxs(self, scatter, nuclide='total', xs_type='macro', + subdomain=None): """This method allows for an openmc.mgxs.ScatterMatrixXS to be used to set the scatter matrix cross section for this XSdata object. If the XSdata.order attribute has not yet been set, then @@ -856,6 +907,9 @@ class XSdata(object): xs_type: {'macro', 'micro'} Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + subdomain : iterable of int + If the MGXS contains a mesh domain type, the subdomain parameter + specifies which mesh cell ([i, j, k]) to use. See also -------- @@ -868,7 +922,7 @@ class XSdata(object): check_value('energy_groups', scatter.energy_groups, [self.energy_groups]) check_value('domain_type', scatter.domain_type, - ['universe', 'cell', 'material']) + ['universe', 'cell', 'material', 'mesh']) if self.scatt_type != 'legendre': msg = 'Anisotropic scattering representations other than ' \ @@ -886,22 +940,27 @@ class XSdata(object): check_value('legendre_order', scatter.legendre_order, [self.order]) + if subdomain is None: + subdomain_val = None + else: + subdomain_val = [subdomain] + if self.representation is 'isotropic': # Get the scattering orders in the outermost dimension self._scatter = np.zeros((self.num_orders, self.energy_groups.num_groups, self.energy_groups.num_groups)) for moment in range(self.num_orders): - self._scatter[moment, :, :] = scatter.get_xs(nuclides=nuclide, - xs_type=xs_type, - moment=moment) + self._scatter[moment, :, :] = \ + scatter.get_xs(nuclides=nuclide, xs_type=xs_type, + moment=moment, subdomains=subdomain_val) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) def set_multiplicity_mgxs(self, nuscatter, scatter=None, nuclide='total', - xs_type='macro'): + xs_type='macro', subdomain=None): """This method allows for either the direct use of only an openmc.mgxs.MultiplicityMatrixXS OR an openmc.mgxs.NuScatterMatrixXS and openmc.mgxs.ScatterMatrixXS to be used to set the scattering @@ -926,6 +985,9 @@ class XSdata(object): xs_type: {'macro', 'micro'} Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + subdomain : iterable of int + If the MGXS contains a mesh domain type, the subdomain parameter + specifies which mesh cell ([i, j, k]) to use. See also -------- @@ -939,7 +1001,7 @@ class XSdata(object): check_value('energy_groups', nuscatter.energy_groups, [self.energy_groups]) check_value('domain_type', nuscatter.domain_type, - ['universe', 'cell', 'material']) + ['universe', 'cell', 'material', 'mesh']) if scatter is not None: check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrixXS): @@ -950,16 +1012,22 @@ class XSdata(object): check_value('energy_groups', scatter.energy_groups, [self.energy_groups]) check_value('domain_type', scatter.domain_type, - ['universe', 'cell', 'material']) + ['universe', 'cell', 'material', 'mesh']) + if subdomain is None: + subdomain_val = None + else: + subdomain_val = [subdomain] if self.representation is 'isotropic': nuscatt = nuscatter.get_xs(nuclides=nuclide, - xs_type=xs_type, moment=0) + xs_type=xs_type, moment=0, + subdomains=subdomain_val) if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrixXS): self._multiplicity = nuscatt else: scatt = scatter.get_xs(nuclides=nuclide, - xs_type=xs_type, moment=0) + xs_type=xs_type, moment=0, + subdomains=subdomain_val) self._multiplicity = np.divide(nuscatt, scatt) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' From 5c6280b206e031faffb2e068349fc98206d45e9f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 6 Aug 2016 06:59:17 -0400 Subject: [PATCH 243/417] some cleaning up --- openmc/mgxs/library.py | 33 ++++++++++++++++---------- openmc/mgxs_library.py | 53 ++++++++---------------------------------- 2 files changed, 31 insertions(+), 55 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index c5e039cea5..9372998a0f 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -866,49 +866,57 @@ class Library(object): xsdata.zaid = self._nuclides[nuclide][0] xsdata.awr = self._nuclides[nuclide][1] + if subdomain is None: + subdomain_val = 'all' + else: + subdomain_val = [subdomain] + # Now get xs data itself if 'nu-transport' in self.mgxs_types and self.correction == 'P0': mymgxs = self.get_mgxs(domain, 'nu-transport') - xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) + xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], + subdomains=subdomain_val) elif 'total' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'total') xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain) + subdomain=subdomain_val) if 'absorption' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'absorption') xsdata.set_absorption_mgxs(mymgxs, xs_type=xs_type, - nuclide=[nuclide], subdomain=subdomain) + nuclide=[nuclide], + subdomain=subdomain_val) if 'fission' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'fission') xsdata.set_fission_mgxs(mymgxs, xs_type=xs_type, - nuclide=[nuclide], subdomain=subdomain) + nuclide=[nuclide], subdomain=subdomain_val) if 'kappa-fission' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'kappa-fission') xsdata.set_kappa_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain) + subdomain=subdomain_val) # For chi and nu-fission we can either have only a nu-fission matrix # provided, or vectors of chi and nu-fission provided if 'nu-fission matrix' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'nu-fission matrix') xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, - nuclide=[nuclide], subdomain=subdomain) + nuclide=[nuclide], + subdomain=subdomain_val) else: if 'chi' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'chi') xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain) + subdomain=subdomain_val) if 'nu-fission' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'nu-fission') xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain) + subdomain=subdomain_val) # If multiplicity matrix is available, prefer that if 'multiplicity matrix' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'multiplicity matrix') xsdata.set_multiplicity_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain) + subdomain=subdomain_val) using_multiplicity = True # multiplicity wil fall back to using scatter and nu-scatter elif ((('scatter matrix' in self.mgxs_types) and @@ -917,7 +925,7 @@ class Library(object): nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') xsdata.set_multiplicity_mgxs(nuscatt_mgxs, scatt_mgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain) + subdomain=subdomain_val) using_multiplicity = True else: using_multiplicity = False @@ -925,12 +933,13 @@ class Library(object): if using_multiplicity: nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, - nuclide=[nuclide], subdomain=subdomain) + nuclide=[nuclide], subdomain=subdomain_val) else: if 'nu-scatter matrix' in self.mgxs_types: nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, - nuclide=[nuclide], subdomain=subdomain) + nuclide=[nuclide], + subdomain=subdomain_val) # Since we are not using multiplicity, then # scattering multiplication (nu-scatter) must be diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index fca5f437cf..aaea0ce4b7 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -604,7 +604,7 @@ class XSdata(object): self._fissionable = True def set_total_mgxs(self, total, nuclide='total', xs_type='macro', - subdomain=None): + subdomain='all'): """This method allows for an openmc.mgxs.TotalXS or openmc.mgxs.TransportXS to be used to set the total cross section for this XSdata object. @@ -636,14 +636,10 @@ class XSdata(object): check_value('energy_groups', total.energy_groups, [self.energy_groups]) check_value('domain_type', total.domain_type, ['universe', 'cell', 'material', 'mesh']) - if subdomain is None: - subdomain_val = None - else: - subdomain_val = [subdomain] if self.representation is 'isotropic': self._total = total.get_xs(nuclides=nuclide, xs_type=xs_type, - subdomains=subdomain_val) + subdomains=subdomain) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -680,15 +676,11 @@ class XSdata(object): [self.energy_groups]) check_value('domain_type', absorption.domain_type, ['universe', 'cell', 'material', 'mesh']) - if subdomain is None: - subdomain_val = None - else: - subdomain_val = [subdomain] if self.representation is 'isotropic': self._absorption = absorption.get_xs(nuclides=nuclide, xs_type=xs_type, - subdomains=subdomain_val) + subdomains=subdomain) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -725,15 +717,11 @@ class XSdata(object): [self.energy_groups]) check_value('domain_type', fission.domain_type, ['universe', 'cell', 'material', 'mesh']) - if subdomain is None: - subdomain_val = None - else: - subdomain_val = [subdomain] if self.representation is 'isotropic': self._fission = fission.get_xs(nuclides=nuclide, xs_type=xs_type, - subdomains=subdomain_val) + subdomains=subdomain) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -771,15 +759,11 @@ class XSdata(object): [self.energy_groups]) check_value('domain_type', nu_fission.domain_type, ['universe', 'cell', 'material', 'mesh']) - if subdomain is None: - subdomain_val = None - else: - subdomain_val = [subdomain] if self.representation is 'isotropic': self._nu_fission = nu_fission.get_xs(nuclides=nuclide, xs_type=xs_type, - subdomains=subdomain_val) + subdomains=subdomain) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -825,15 +809,11 @@ class XSdata(object): [self.energy_groups]) check_value('domain_type', k_fission.domain_type, ['universe', 'cell', 'material', 'mesh']) - if subdomain is None: - subdomain_val = None - else: - subdomain_val = [subdomain] if self.representation is 'isotropic': self._kappa_fission = k_fission.get_xs(nuclides=nuclide, xs_type=xs_type, - subdomains=subdomain_val) + subdomains=subdomain) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -874,14 +854,10 @@ class XSdata(object): check_value('energy_groups', chi.energy_groups, [self.energy_groups]) check_value('domain_type', chi.domain_type, ['universe', 'cell', 'material', 'mesh']) - if subdomain is None: - subdomain_val = None - else: - subdomain_val = [subdomain] if self.representation is 'isotropic': self._chi = chi.get_xs(nuclides=nuclide, - xs_type=xs_type, subdomains=subdomain_val) + xs_type=xs_type, subdomains=subdomain) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -940,11 +916,6 @@ class XSdata(object): check_value('legendre_order', scatter.legendre_order, [self.order]) - if subdomain is None: - subdomain_val = None - else: - subdomain_val = [subdomain] - if self.representation is 'isotropic': # Get the scattering orders in the outermost dimension self._scatter = np.zeros((self.num_orders, @@ -953,7 +924,7 @@ class XSdata(object): for moment in range(self.num_orders): self._scatter[moment, :, :] = \ scatter.get_xs(nuclides=nuclide, xs_type=xs_type, - moment=moment, subdomains=subdomain_val) + moment=moment, subdomains=subdomain) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' @@ -1013,21 +984,17 @@ class XSdata(object): [self.energy_groups]) check_value('domain_type', scatter.domain_type, ['universe', 'cell', 'material', 'mesh']) - if subdomain is None: - subdomain_val = None - else: - subdomain_val = [subdomain] if self.representation is 'isotropic': nuscatt = nuscatter.get_xs(nuclides=nuclide, xs_type=xs_type, moment=0, - subdomains=subdomain_val) + subdomains=subdomain) if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrixXS): self._multiplicity = nuscatt else: scatt = scatter.get_xs(nuclides=nuclide, xs_type=xs_type, moment=0, - subdomains=subdomain_val) + subdomains=subdomain) self._multiplicity = np.divide(nuscatt, scatt) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' From ef2f6bdc7c36327ccf535780cc07522ccef04c1c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 6 Aug 2016 11:52:55 -0400 Subject: [PATCH 244/417] Addressing comments --- openmc/macroscopic.py | 2 +- openmc/mesh.py | 56 +++++++++++++++------- openmc/mgxs/library.py | 105 ++++++++++++++++++++++------------------- openmc/mgxs_library.py | 4 ++ 4 files changed, 99 insertions(+), 68 deletions(-) diff --git a/openmc/macroscopic.py b/openmc/macroscopic.py index 1dd087903f..9f55998e3a 100644 --- a/openmc/macroscopic.py +++ b/openmc/macroscopic.py @@ -30,7 +30,7 @@ class Macroscopic(object): self._name = '' self._xs = None - # Set the Material class attributes + # Set the Macroscopic class attributes self.name = name if xs is not None: diff --git a/openmc/mesh.py b/openmc/mesh.py index 9496a06511..c2b23bf1f9 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -187,6 +187,17 @@ class Mesh(object): """Generator function to traverse through every [i,j,k] index of the mesh. + For example the following code: + for mesh_index in mymesh.cell_generator(): + print mesh_index + + will produce the following output for a 3-D 2x2x2 mesh in mymesh: + [1, 1, 1] + [1, 1, 2] + [1, 2, 1] + [1, 2, 2] + ... + """ if len(self.dimension) == 2: for x in range(self.dimension[0]): @@ -229,49 +240,56 @@ class Mesh(object): return element def build_cells(self, bc=['reflective'] * 6): - """Generates a list of cells which mimic the mesh geometry. + """Generates a lattice of universes with the same dimensionality + as the mesh object in self. The individual cells/universes produced + will not have material definitions applied and so downstream code + will have to apply that information. Parameters ---------- - bc : iterable of {'reflective', 'periodic', or 'vacuum'} - Boundary conditions for each of the six faces of a parallelopiped: - North, East, South, West, Up, and Down. + bc : iterable of {'reflective', 'periodic', 'transmission', or 'vacuum'} + Boundary conditions for each of the four faces of a rectangle + (if aplying to a 2D mesh) or six faces of a parallelepiped + (if applying to a 3D mesh) provided in the following order: + [x min, x max, y min, y max, z min, z max]. 2-D cells do not + contain the z min and z max entries. Returns ------- root_cell : openmc.Cell - The cell containing the lattice mimicking the mesh geometry. + The cell containing the lattice representing the mesh geometry; + this cell is a single parallelepiped with boundaries matching + the outermost mesh boundary with the boundary conditions from bc + applied. cells : iterable of openmc.Cell The list of cells within each lattice position mimicking the mesh geometry. """ - cv.check_length('bc', bc, length_min=6, length_max=6) + twod = len(self.dimension) == 2 + cv.check_length('bc', bc, length_min=4, length_max=6) for entry in bc: cv.check_value('bc', entry, ['transmission', 'vacuum', 'reflective', 'periodic']) - if len(self.dimension) == 2: - twod = True - else: - twod = False - - # Build enclosing cell + # Build the cell which will contain the lattice xplanes = [openmc.XPlane(x0=self.lower_left[0], - boundary_type=bc[3]), + boundary_type=bc[0]), openmc.XPlane(x0=self.upper_right[0], boundary_type=bc[1])] yplanes = [openmc.YPlane(y0=self.lower_left[1], boundary_type=bc[2]), openmc.YPlane(y0=self.upper_right[1], - boundary_type=bc[0])] + boundary_type=bc[3])] if twod: - zplanes = [openmc.ZPlane(z0=-1.E50, boundary_type=bc[5]), - openmc.ZPlane(z0=+1.E50, boundary_type=bc[5])] + zplanes = [openmc.ZPlane(z0=np.finfo(np.float).min, + boundary_type='reflective'), + openmc.ZPlane(z0=np.finfo(np.float).max, + boundary_type='reflective')] else: zplanes = [openmc.ZPlane(z0=self.lower_left[2], - boundary_type=bc[5]), + boundary_type=bc[4]), openmc.ZPlane(z0=self.upper_right[2], boundary_type=bc[5])] root_cell = openmc.Cell() @@ -279,7 +297,9 @@ class Mesh(object): (+yplanes[0] & -yplanes[1]) & (+zplanes[0] & -zplanes[1])) - # Build our universes + # Build the universes which will be used for each of the [i,j,k] + # locations within the mesh. + # We will also have to build cells to assign to these universes universes = np.ndarray(self.dimension[::-1], dtype=np.object) cells = [] for [i, j, k] in self.cell_generator(): diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 9372998a0f..c36034bfc5 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -795,7 +795,9 @@ class Library(object): subdomain : iterable of int This parameter is not used unless using a mesh domain. In that case, the subdomain is an [i,j,k] index (1-based indexing) of the - mesh cell of interest in the openmc.Mesh object. + mesh cell of interest in the openmc.Mesh object. Note: + this parameter currently only supports subdomains within a mesh, + and not the subdomains of a distribcell. Returns ------- @@ -918,7 +920,7 @@ class Library(object): nuclide=[nuclide], subdomain=subdomain_val) using_multiplicity = True - # multiplicity wil fall back to using scatter and nu-scatter + # multiplicity will fall back to using scatter and nu-scatter elif ((('scatter matrix' in self.mgxs_types) and ('nu-scatter matrix' in self.mgxs_types))): scatt_mgxs = self.get_mgxs(domain, 'scatter matrix') @@ -1018,33 +1020,33 @@ class Library(object): # Initialize file mgxs_file = openmc.MGXSLibrary(self.energy_groups) + # Get the number of domains to size arrays with + if self.domain_type is 'mesh': + num_domains = np.sum(d.num_mesh_cells for d in self.domains) + else: + num_domains = len(self.domains) + + # Set id names if xs_ids is not None: if isinstance(xs_ids, basestring): # If we only have a string lets convert it now to a list # of strings. - xs_id_input = xs_ids - xs_ids = [] - for domain in self.domains: - if self.domain_type is 'mesh': - for subdomain in domain.cell_generator(): - xs_ids.append(xs_id_input) - else: - xs_ids.append(xs_id_input) + all_xs_ids = [xs_ids] * num_domains else: cv.check_iterable_type('xs_ids', xs_ids, basestring) + cv.check_length('xs_ids', xs_ids, num_domains, num_domains) + all_xs_ids = xs_ids + else: - xs_ids = [] - for domain in self.domains: - if self.domain_type is 'mesh': - for subdomain in domain.cell_generator(): - xs_ids.append('1m') - else: - xs_ids.append('1m') + all_xs_ids = ['1m'] * num_domains if self.domain_type == 'mesh': # Create the xsdata objects and add to the mgxs_file i = 0 for domain in self.domains: + if self.by_nuclide: + raise NotImplementedError("Mesh domains do not currently " + "support nuclidic tallies") for subdomain in domain.cell_generator(): # Build & add metadata to XSdata object if xsdata_names is None: @@ -1055,7 +1057,8 @@ class Library(object): # Create XSdata and Macroscopic for this domain xsdata = self.get_xsdata(domain, xsdata_name, nuclide='total', - xs_type=xs_type, xs_id=xs_ids[i], + xs_type=xs_type, + xs_id=all_xs_ids[i], tabular_legendre=tabular_legendre, tabular_points=tabular_points, subdomain=subdomain) @@ -1079,8 +1082,8 @@ class Library(object): xsdata_name += '_' + nuclide xsdata = self.get_xsdata(domain, xsdata_name, - nuclide=nuclide, - xs_type=xs_type, xs_id=xs_ids[i], + nuclide=nuclide, xs_type=xs_type, + xs_id=all_xs_ids[i], tabular_legendre=tabular_legendre, tabular_points=tabular_points) @@ -1120,9 +1123,12 @@ class Library(object): parameter is set to `True`. In this case, this parameter sets the number of equally-spaced points in the domain of [-1,1] to be used in building the tabular distribution. Default is `33`. - bc : iterable of {'reflective', 'periodic', or 'vacuum'} - Boundary conditions for each of the six faces of a parallelopiped: - North, East, South, Wwest, Up, and Down. + bc : iterable of {'reflective', 'periodic', 'transmission', or 'vacuum'} + Boundary conditions for each of the four faces of a rectangle + (if aplying to a 2D mesh) or six faces of a parallelepiped + (if applying to a 3D mesh) provided in the following order: + [x min, x max, y min, y max, z min, z max]. 2-D cells do not + contain the z min and z max entries. Returns ------- @@ -1160,40 +1166,39 @@ class Library(object): # Initialize MGXS File mgxs_file = openmc.MGXSLibrary(self.energy_groups) - # Set ID names + # Get the number of domains to size arrays with + if self.domain_type is 'mesh': + num_domains = np.sum(d.num_mesh_cells for d in self.domains) + else: + num_domains = len(self.domains) + + # Set id names if xs_ids is not None: if isinstance(xs_ids, basestring): # If we only have a string lets convert it now to a list # of strings. - xs_id_input = xs_ids - xs_ids = [] - for domain in self.domains: - if self.domain_type is 'mesh': - for subdomain in domain.cell_generator(): - xs_ids.append(xs_id_input) - else: - xs_ids.append(xs_id_input) + all_xs_ids = [xs_ids] * num_domains else: cv.check_iterable_type('xs_ids', xs_ids, basestring) + cv.check_length('xs_ids', xs_ids, num_domains, num_domains) + all_xs_ids = xs_ids + else: - xs_ids = [] - for domain in self.domains: - if self.domain_type is 'mesh': - for subdomain in domain.cell_generator(): - xs_ids.append('1m') - else: - xs_ids.append('1m') + all_xs_ids = ['1m'] * num_domains if self.domain_type == 'mesh': - # Before continuing, we cant build a model automatically if - # the user provided multiple mesh domains for library generation. - # So check and complain as needed. + # We cant build a model automatically if the user provided multiple + # mesh domains for library generation since the multiple meshes + # could be overlapping or in disparate regions of the continuous + # energy model. The next step makes sure there is only one before + # continuing. cv.check_length("domains", self.domains, 1, 1) # Create the xsdata objects and add to the mgxs_file # and assign to materials and geometry as we go materials = openmc.Materials() root = openmc.Universe(name='root', universe_id=0) + # Add cells representative of the mesh with reflective BC root_cell, cells = \ self.domains[0].build_cells(bc) @@ -1209,19 +1214,20 @@ class Library(object): xsdata_name = xsdata_names[i] # Create XSdata and Macroscopic for this domain - xsdata = self.get_xsdata(domain, xsdata_name, + xsdata = self.get_xsdata(self.domains[0], xsdata_name, nuclide='total', - xs_type=xs_type, xs_id=xs_ids[i], + xs_type=xs_type, + xs_id=all_xs_ids[i], tabular_legendre=tabular_legendre, tabular_points=tabular_points, subdomain=subdomain) mgxs_file.add_xsdata(xsdata) macroscopic = openmc.Macroscopic(name=xsdata_name, - xs=xs_ids[i]) + xs=all_xs_ids[i]) # Create Material and add to collection material = openmc.Material(name=xsdata_name + '.' + - xs_ids[i]) + all_xs_ids[i]) material.add_macroscopic(macroscopic) materials.append(material) @@ -1247,15 +1253,16 @@ class Library(object): # Create XSdata and Macroscopic for this domain xsdata = self.get_xsdata(domain, xsdata_name, nuclide='total', - xs_type=xs_type, xs_id=xs_ids[i], + xs_type=xs_type, xs_id=all_xs_ids[i], tabular_legendre=tabular_legendre, tabular_points=tabular_points) mgxs_file.add_xsdata(xsdata) macroscopic = openmc.Macroscopic(name=xsdata_name, - xs=xs_ids[i]) + xs=all_xs_ids[i]) # Create Material and add to collection - material = openmc.Material(name=xsdata_name + '.' + xs_ids[i]) + material = openmc.Material(name=xsdata_name + '.' + + all_xs_ids[i]) material.add_macroscopic(macroscopic) materials.append(material) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index aaea0ce4b7..c9a7debdcd 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -1120,6 +1120,10 @@ class MGXSLibrary(object): def energy_groups(self): return self._energy_groups + @property + def xsdatas(self): + return self._xsdatas + @inverse_velocities.setter def inverse_velocities(self, inverse_velocities): check_type('inverse_velocities', inverse_velocities, Iterable, Real) From 72d4496482b7b3d0dcd44010ccb85f312d29a87c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 6 Aug 2016 12:02:32 -0400 Subject: [PATCH 245/417] Simplified create_mg_mode by making it call create_mg_library to create mgxs_file, leaving only the material and geometry work for create_mg_mode. Also removed subdomain_val --- openmc/mgxs/library.py | 121 +++++++++++++---------------------------- 1 file changed, 37 insertions(+), 84 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index c36034bfc5..e2964f3faa 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -869,56 +869,56 @@ class Library(object): xsdata.awr = self._nuclides[nuclide][1] if subdomain is None: - subdomain_val = 'all' + subdomain = 'all' else: - subdomain_val = [subdomain] + subdomain = [subdomain] # Now get xs data itself if 'nu-transport' in self.mgxs_types and self.correction == 'P0': mymgxs = self.get_mgxs(domain, 'nu-transport') xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomains=subdomain_val) + subdomains=subdomain) elif 'total' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'total') xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain_val) + subdomain=subdomain) if 'absorption' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'absorption') xsdata.set_absorption_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain_val) + subdomain=subdomain) if 'fission' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'fission') xsdata.set_fission_mgxs(mymgxs, xs_type=xs_type, - nuclide=[nuclide], subdomain=subdomain_val) + nuclide=[nuclide], subdomain=subdomain) if 'kappa-fission' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'kappa-fission') xsdata.set_kappa_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain_val) + subdomain=subdomain) # For chi and nu-fission we can either have only a nu-fission matrix # provided, or vectors of chi and nu-fission provided if 'nu-fission matrix' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'nu-fission matrix') xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain_val) + subdomain=subdomain) else: if 'chi' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'chi') xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain_val) + subdomain=subdomain) if 'nu-fission' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'nu-fission') xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain_val) + subdomain=subdomain) # If multiplicity matrix is available, prefer that if 'multiplicity matrix' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'multiplicity matrix') xsdata.set_multiplicity_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain_val) + subdomain=subdomain) using_multiplicity = True # multiplicity will fall back to using scatter and nu-scatter elif ((('scatter matrix' in self.mgxs_types) and @@ -927,7 +927,7 @@ class Library(object): nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') xsdata.set_multiplicity_mgxs(nuscatt_mgxs, scatt_mgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain_val) + subdomain=subdomain) using_multiplicity = True else: using_multiplicity = False @@ -935,13 +935,13 @@ class Library(object): if using_multiplicity: nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, - nuclide=[nuclide], subdomain=subdomain_val) + nuclide=[nuclide], subdomain=subdomain) else: if 'nu-scatter matrix' in self.mgxs_types: nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, nuclide=[nuclide], - subdomain=subdomain_val) + subdomain=subdomain) # Since we are not using multiplicity, then # scattering multiplication (nu-scatter) must be @@ -1159,44 +1159,21 @@ class Library(object): # multi-group cross section types self.check_library_for_openmc_mgxs() - if xsdata_names is not None: - cv.check_iterable_type('xsdata_names', xsdata_names, basestring) - xs_type = 'macro' - - # Initialize MGXS File - mgxs_file = openmc.MGXSLibrary(self.energy_groups) - - # Get the number of domains to size arrays with - if self.domain_type is 'mesh': - num_domains = np.sum(d.num_mesh_cells for d in self.domains) - else: - num_domains = len(self.domains) - - # Set id names - if xs_ids is not None: - if isinstance(xs_ids, basestring): - # If we only have a string lets convert it now to a list - # of strings. - all_xs_ids = [xs_ids] * num_domains - else: - cv.check_iterable_type('xs_ids', xs_ids, basestring) - cv.check_length('xs_ids', xs_ids, num_domains, num_domains) - all_xs_ids = xs_ids - - else: - all_xs_ids = ['1m'] * num_domains - + # If the domain type is a mesh, then there can only be one domain for + # this method. Thi is because we can build a model automatically if + # the user provided multiple mesh domains for library generation since + # the multiple meshes could be overlapping or in disparate regions + # of the continuous energy model. The next step makes sure there is + # only one before continuing. if self.domain_type == 'mesh': - # We cant build a model automatically if the user provided multiple - # mesh domains for library generation since the multiple meshes - # could be overlapping or in disparate regions of the continuous - # energy model. The next step makes sure there is only one before - # continuing. cv.check_length("domains", self.domains, 1, 1) - # Create the xsdata objects and add to the mgxs_file - # and assign to materials and geometry as we go - materials = openmc.Materials() + # Get the MGXS File Data + mgxs_file = self.create_mg_library('macro', xsdata_names, xs_ids, + tabular_legendre, tabular_points) + + # Now move on the creating the geometry and assigning materials + if self.domain_type == 'mesh': root = openmc.Universe(name='root', universe_id=0) # Add cells representative of the mesh with reflective BC @@ -1205,29 +1182,17 @@ class Library(object): root.add_cell(root_cell) geometry = openmc.Geometry() geometry.root_universe = root + materials = openmc.Materials() for i, subdomain in enumerate(self.domains[0].cell_generator()): - # Build & add metadata to XSdata object - if xsdata_names is None: - xsdata_name = 'set' + str(i + 1) - else: - xsdata_name = xsdata_names[i] - - # Create XSdata and Macroscopic for this domain - xsdata = self.get_xsdata(self.domains[0], xsdata_name, - nuclide='total', - xs_type=xs_type, - xs_id=all_xs_ids[i], - tabular_legendre=tabular_legendre, - tabular_points=tabular_points, - subdomain=subdomain) - mgxs_file.add_xsdata(xsdata) - macroscopic = openmc.Macroscopic(name=xsdata_name, - xs=all_xs_ids[i]) + xsdata = mgxs_file.xsdatas[i] + [name, id] = xsdata.name.split('.') + # Build the macroscopic and assign it to the cell of + # interest + macroscopic = openmc.Macroscopic(name=name, xs=id) # Create Material and add to collection - material = openmc.Material(name=xsdata_name + '.' + - all_xs_ids[i]) + material = openmc.Material(name=xsdata.name) material.add_macroscopic(macroscopic) materials.append(material) @@ -1244,25 +1209,13 @@ class Library(object): # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): + xsdata = mgxs_file.xsdatas[i] + [name, id] = xsdata.name.split('.') - # Build & add metadata to XSdata object - if xsdata_names is None: - xsdata_name = 'set' + str(i + 1) - else: - xsdata_name = xsdata_names[i] - - # Create XSdata and Macroscopic for this domain - xsdata = self.get_xsdata(domain, xsdata_name, nuclide='total', - xs_type=xs_type, xs_id=all_xs_ids[i], - tabular_legendre=tabular_legendre, - tabular_points=tabular_points) - mgxs_file.add_xsdata(xsdata) - macroscopic = openmc.Macroscopic(name=xsdata_name, - xs=all_xs_ids[i]) + macroscopic = openmc.Macroscopic(name=name, xs=id) # Create Material and add to collection - material = openmc.Material(name=xsdata_name + '.' + - all_xs_ids[i]) + material = openmc.Material(name=xsdata.name) material.add_macroscopic(macroscopic) materials.append(material) From cdca6f3e1a7004dd295268ff29b22a3ec901d653 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Sat, 6 Aug 2016 16:44:22 -0400 Subject: [PATCH 246/417] removed DelayedGroups and addressed PR comments --- .../pythonapi/examples/mdgxs-part-i.ipynb | 47 ++-- .../pythonapi/examples/mdgxs-part-ii.ipynb | 37 ++-- openmc/mgxs/__init__.py | 2 +- openmc/mgxs/groups.py | 130 +---------- openmc/mgxs/library.py | 16 +- openmc/mgxs/mdgxs.py | 205 ++++-------------- openmc/mgxs/mgxs.py | 9 +- tests/input_set.py | 153 +++++++++++++ .../test_mgxs_library_condense.py | 2 +- .../inputs_true.dat | 2 +- .../results_true.dat | 126 +++++------ .../test_mgxs_library_distribcell.py | 8 +- .../test_mgxs_library_hdf5.py | 2 +- .../test_mgxs_library_mesh.py | 2 +- .../results_true.dat | 192 ++++++++-------- .../test_mgxs_library_no_nuclides.py | 2 +- .../results_true.dat | 2 +- 17 files changed, 431 insertions(+), 506 deletions(-) diff --git a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb index a7a9598415..94be516fca 100644 --- a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb @@ -356,8 +356,7 @@ "one_group = mgxs.EnergyGroups()\n", "one_group.group_edges = np.array([energy_groups.group_edges[0], energy_groups.group_edges[-1]])\n", "\n", - "delayed_groups = mgxs.DelayedGroups()\n", - "delayed_groups.groups = range(1,7)" + "delayed_groups = range(1,7)" ] }, { @@ -581,8 +580,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", - " Git SHA1: c23c1cabfbb8c726ee0b4bd01bb7e74e679edcd0\n", - " Date/Time: 2016-08-03 16:02:28\n", + " Git SHA1: ad9fe27d26940a7120ed920d37d9cb176bde6402\n", + " Date/Time: 2016-08-06 15:47:51\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -669,20 +668,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.3800E-01 seconds\n", - " Reading cross sections = 2.5200E-01 seconds\n", - " Total time in simulation = 8.4618E+01 seconds\n", - " Time in transport only = 8.4594E+01 seconds\n", - " Time in inactive batches = 5.0040E+00 seconds\n", - " Time in active batches = 7.9614E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 4.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 = 7.5000E-02 seconds\n", - " Total time elapsed = 8.5157E+01 seconds\n", - " Calculation Rate (inactive) = 9992.01 neutrons/second\n", - " Calculation Rate (active) = 2512.12 neutrons/second\n", + " Total time for initialization = 4.7100E-01 seconds\n", + " Reading cross sections = 2.6500E-01 seconds\n", + " Total time in simulation = 8.5400E+01 seconds\n", + " Time in transport only = 8.5378E+01 seconds\n", + " Time in inactive batches = 4.8000E+00 seconds\n", + " Time in active batches = 8.0600E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 8.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 = 7.2000E-02 seconds\n", + " Total time elapsed = 8.5969E+01 seconds\n", + " Calculation Rate (inactive) = 10416.7 neutrons/second\n", + " Calculation Rate (active) = 2481.39 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -866,6 +865,14 @@ "collapsed": false }, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/shape_base.py:873: VisibleDeprecationWarning: 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": [ @@ -1310,7 +1317,7 @@ "data": { "image/png": "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\n771XLz/wwAO55JJLWLBgAfPmzVt9R8qOtPXkVe/EUikFl7+jrW3T5r6SGshKOGdGxNK0+HLggxGx\nK1mp5sftjtisizQ3w9KlVTfr1pYuza7D1rjjjjtYuHAhr7zyCj/72c/o379/m9ufcsopq29XfOGF\nF6617tvf/jZTp07lpptuqrhvv379GDNmDBdccAEvvvgiAP/1X//Fbrvtxq677so+++zD4YcfzoYb\nbsgWW2xRmwusoN5VYbOBYSWvtwHmlm0zC9gWmCupLzAwIt6UNDstX2dfSRuQJZVrI+KOlg0i4l8l\n2/8auKu1wJpLPv1NTU00NTXlviizeih6UmnRna6jM1VXNYuhQulk0003XavEMG/evNXPr7jiCq64\n4op19hk3bhz33Xcfjz76KA0NDW2ec/ny5bz88svsvPPO9O/fn0svvZRLL70UgF/96lfsvvvuuare\nJk2axKRJk6put448dwPr6APoC/w3MBzoBzwH7Fi2zanA5en5WLJ2FYCdgGfTfiPTcVpuTHYNWSN9\n+fm2Knl+FnBDK3FVv4Wa2XqW3aE9exRRV8Xfnf+eR4wYEQ8++OA6y48++ug4+uijY/ny5TF58uQY\nMmRIHHvssa0e5wc/+EGMGjUq5s2bt866J598Mh577LF47733YtmyZXHhhRfGgAED4vXXX4+IiDlz\n5sTcuXMjIuKJJ56IbbfdNh544IE2427tPSXnHSTXx22ADwD+DswAzknLxgOfS883Am5O658ERpTs\ne25KKNOA0WnZ3sDKlKSeBaYAB8SahPNCWvf/gC1bianNN9WsKzixdPS83fcNGzlyZMXE8vLLL8de\ne+0VjY2N8bnPfS7OPPPMNhOLpOjfv380Njauvl3xBRdcEBERjzzySOyyyy4xYMCAGDx4cDQ1NcVj\njz22et9HH300RowYEZtuumnssMMOceONN1aNu7OJxbcmNusmSmsmivjx7Kr4fWvi2vOtic3MrFup\n2ngv6ePAMcAnga2BZcBfgd8D10XEorpGaGZmhdJmVZikP5D1xLoD+AvwT6A/sD2wL3AwWSP6nfUP\ntXZcFWbdkavCOnpeV4XVWmerwqolliERsaBKAFW36W6cWKw7cmLp6HmdWGqtrm0sLQlD0qZp3i8k\nbS/pEEkblm5jZmYG+RvvHwX6SxoK3A8cC/y2XkGZmVlx5R15r4h4R9IJZIMZL5L0bD0DMzPLY/jw\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1373,7 +1380,7 @@ "data": { "image/png": "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\n9erFmWeeyRtvvAFAkyZNgmWqSk5ODjt37mTHjh2AnT5zwoQJFBQU0KZNGyZMmBDTNPTCCy9w3HHH\n0bp1a8aPH1+ts3/wwQc5/vjjadOmDQMHDmTdunUR21m6dCmnnHIKBQUFFBcXh/xIBw8ezF/+8peQ\n+ieddBJPP23/dNasWUP//v1p06YNxx13HE888USw3o4dOzj//PMpKCigd+/eCaU3bciULi8NboaG\nR1IVg6oeAK4Dngc+Bhao6iciUioigwFE5Mcish64CLhPRAKJfYcCfYCxIvK+iLwnIifWpXyW30JK\npdoWzS4bqX5dRJ9cv359sKOMhldzyPfff8/KlSurpfw86aSTaNq0KRdccAFXXHFFMEdDIMxugIMH\nD7JhwwZ2795dre3t27dz0UUXcdttt7Ft2zaOPvpoXnvttWD5U089xe9//3ueeuoptm7dyplnnsmI\nESMiypmXl8fcuXPZtWsXS5Ys4b777gt2/IEcDQFWrVrFpk2bGDRoEHv37qV///6MHDmSbdu2MX/+\nfK699lo++eQTAK699lqaN2/Oli1bmD17tmf/h8FgqCLpsZJU9TlVPUZVu6rq751jJar6rPP5HVXt\nqKotVfVQZ3oqqvqYqjZR1VNU9WTn73+SLW99csEFF1BYWMhZZ51Fv379IialqSlXX301J598Mv37\n9w85vmrVKnbv3s28efM444wzgscHDhzI3XffzbZt2/jqq6+CWeH27t1bre2lS5dywgkn8LOf/YxG\njRpx/fXX065du2D5Aw88wJQpU+jWrRs5OTnceOONfPDBByFJfwKcddZZQeX1ox/9iOHDh7N8+XIA\nhgwZwmeffRZ823/00UcZNmwYjRo14tlnn6Vz586MHj0aEaFHjx5ceOGFLFy4kIMHD/Lkk09yyy23\n0LRpU0444QTGjBmT4BM1GBoeJoheClm8eDE7duzgyy+/5M9//jNNmjSJe84111wTzMXw+9//PqRs\n8uTJrF69Omou58aNGzNs2DBmzJjBhx/aA7OpU6dy8skn06NHD/r06cPPfvYzcnNzOeyww6qdH57y\nEwjZLy8vZ+LEicF0nG3atEFEqmVbA3jrrbc4++yzOeyww2jVqhX3339/MOVn48aNGTp0KI8++iiq\nyvz584O5oMvLy3nzzTdDUn7OmzePLVu2sHXrViorKznyyCOD12mwwfn8JVVbBALO6Ax0z0Uk/F6y\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb index 7df67ce4d5..c6bf077f82 100644 --- a/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb @@ -456,7 +456,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -512,8 +512,7 @@ "one_group.group_edges = np.array([energy_groups.group_edges[0], energy_groups.group_edges[-1]])\n", "\n", "# Instantiate a 6-group DelayedGroups object\n", - "delayed_groups = openmc.mgxs.DelayedGroups()\n", - "delayed_groups.groups = range(1,7)" + "delayed_groups = range(1,7)" ] }, { @@ -608,8 +607,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", - " Git SHA1: c23c1cabfbb8c726ee0b4bd01bb7e74e679edcd0\n", - " Date/Time: 2016-08-03 15:59:52\n", + " Git SHA1: ad9fe27d26940a7120ed920d37d9cb176bde6402\n", + " Date/Time: 2016-08-06 15:52:56\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -714,20 +713,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.1300E-01 seconds\n", - " Reading cross sections = 2.3300E-01 seconds\n", - " Total time in simulation = 7.3036E+01 seconds\n", - " Time in transport only = 7.2812E+01 seconds\n", - " Time in inactive batches = 4.9340E+00 seconds\n", - " Time in active batches = 6.8102E+01 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", + " Total time for initialization = 4.2200E-01 seconds\n", + " Reading cross sections = 2.3800E-01 seconds\n", + " Total time in simulation = 7.5197E+01 seconds\n", + " Time in transport only = 7.4942E+01 seconds\n", + " Time in inactive batches = 4.8400E+00 seconds\n", + " Time in active batches = 7.0357E+01 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", " Sampling source sites = 4.0000E-03 seconds\n", " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 2.0400E-01 seconds\n", - " Total time for finalization = 7.0000E-03 seconds\n", - " Total time elapsed = 7.3477E+01 seconds\n", - " Calculation Rate (inactive) = 5066.88 neutrons/second\n", - " Calculation Rate (active) = 1468.39 neutrons/second\n", + " Time accumulating tallies = 2.1900E-01 seconds\n", + " Total time for finalization = 8.0000E-03 seconds\n", + " Total time elapsed = 7.5653E+01 seconds\n", + " Calculation Rate (inactive) = 5165.29 neutrons/second\n", + " Calculation Rate (active) = 1421.32 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1250,7 +1249,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -1261,7 +1260,7 @@ "data": { "image/png": "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\nDmZmZmZmZmbW5TzgYGZmZmZmZmZdzgMOZmZmZmZmZtblPOBgZmZmZmZmZl3OAw5mZmZmZmZm1uU8\n4GBmZmZmZmZmXc4DDmZmZmZmZmbW5TzgYGZmZmZmZmZdzgMOZmZmZmZmZtblPOBgZmZmZmZmZl3O\nAw5mZmZmZmZm1uU84GBmZmZmZmZmXc4DDusJSZMlnZlx2ycl7d/dfapqcz9JT/Vkm2ZmPck5bGZW\nPmexWXPxgEMdkuZLelXSy5Kel3S9pJ0y1jpIaouyO9CI9N91ZdZfYmbWGOdwt1gnc7jqZ+FlSTeV\n3Sez3sJZ3C3WySwGkHSKpCck/UvSo5KGlt0na24ecKgvgEMiYnNgB+AfwIUZa8U6HCTNTlJrCW32\nAS4A7u7pts16Medwkyohh1f9LKSP0T3cvllv5ixuUj2dxZI+C3wGOCgiNgU+DPxfT/bB1j0ecOiY\nACLidWAqsOuqFVJfSedKWiDpGUk/krShpI2BG4EdJf0zHQ3uL+ldkv4iaamkpyVdmP4RW6xj0h6S\n7pP0kqQpwEZV6z8s6YG0vTskvb3Ofur2S9JFks6t2n6apC+mz3eQNFXSPyT9XdIXKrbbSNLPJb0g\n6RHgXZ28n1GS5qb9+KGkGZKOTdeNS9/D+ZKeB8Yr8Y101P3ZtK3N0u3XGk2vnDInabyk30iakv77\n/FXS7p185F8GbgbmdrKdmXUt57BzeNUuOllvZt3HWdzLs1iSgG8CX4qIxwAi4smIeLGj92PmAYcM\n0sD8BHBXxeJzgKHA7ul/dwS+GRGvAgcBiyNis/SbmGeBNuC/gH7A3sD+wIkF+7MBcA1wWbq/3wAf\nq1i/JzAJOD5d/xNgWlpXraN+XQaMrdjv1un6K9PQuR54gGS0+wDgFEkfSjefALwxfRwIjOvg/Wyd\nvofTgK2Bx9K+VHo38DdgW+DbJKOrnwL2A94EbAb8sGL7zkbTDwV+DWwF/Aq4VnVGiSUNTts7Ex/w\nmpXCObxqv70yh1NXSFoi6aYMgxNm1g2cxav22xuzeED6eLukhenAyoRO9m0GEeFHjQfwJPAy8AKw\nHFgE7Fax/l/AGyte7w08kT7fD1jYyf5PAa4u2Lf3AYuqlt0JnJk+vxiYWLV+LvC+ive2f5Z+AY8C\nB6TPTwJuSJ+/G5hfVXs6MCl9/nfgQxXrjq/3mQCfBO6sWrYQODZ9Pq5GW7cC/1nx+i3AMpJBtLU+\n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\neuPVxnRsyZiOLXtfXzzliVq7DchEZX2NMUvHOIJsgsgeRwPXR0Q38Likm4E3A0tqfjgzsyGkH+Zw\nMDOzJjmL81MaejdwJ5Ci68FaP07W176qu9y5StTd+sY3ljrXL+I9hWu+1H5yqXM92r1P8XPFfxWu\nmfqtEwvXAHzg5FmFa8ZFuZVVfhUdxWs+/P5S5/rsles1HDZ0/kFnFK55501zCtcAfDr+t3DNR9uu\nISKK/Q+ZSIpbYkyuff9R89c7T/rL/31kk0b+mWy82VEV3b2QdALwhog4QdJE4PCI6Jk08jLgLWRD\nKW4ARkdESPoh8ERETKpxzYcCp0XEARXbTgX2iIjjJW2ermNCRNyb/9vYsJTJYYB2rWq803rnKpff\n83b+h8I1v4x3lzrXf7SfX7hmzROvKH6erc5uvFMN519SPEfGHzez1LneyW8L18yOw0qd6zefKP7n\n5umXTm68U5WvvH9K4RqAg352beGa4+KSwjWv4U0c2HZWqSwuksNQO4utdUrdE5fI4excxbO4TA5D\nuSz+j/avFa5Z88SrCtcAfHar4vdzF15yaqlzlcniMjkM5bJ4sHIYymVxmRyGclncynvijY17OJhZ\nbkNtvFqOMWYTWHc4BcB3gGmSehoYpr6cGxvM7OXFQyrMzFrPWZyfGxzMLLcm1xzu9/FqjcaYRcR6\nM5tHxPP1zmFmNtQ1m8NmZtY8Z3F+bnAws9w8Xs3MrLWcw2Zmrecszs8NDmaWW7Prv5uZWXOcw2Zm\nrecszs/flJnl5vFqZmat5Rw2M2s9Z3F+bnAws9wcrmZmreUcNjNrPWdxfm5wMLPcPF7NzKy1nMNm\nZq3nLM7PDQ5mlpvHq5mZtZZz2Mys9ZzF+fmbMrPc3H3MzKy1nMNmZq3nLM7PDQ5mltsqrzlsZtZS\nzmEzs9ZzFufnBgczy83dx8zMWss5bGbWes7i/PxNmVlu7j5mZtZazmEzs9ZzFufnBgczy83hambW\nWs5hM7PWcxbnNygNDjfv8qZC+4+PGaXOc7WOKlzTdt0fSp1Ls6NwTXeXSp1r2zX3FK5ZOfPvC9d0\nn1S4BID2X36ocM0XDvxyqXN9QV8rXNM2rtz3fsH3Ti9c0/3L4uc5jVuLFwG/VkeJqmtKnauHw3XD\nddsu+xSu+UBcXbhmto4sXAPQNv++wjW6pHgOQ7ks3p6HCtc8celOhWsAuo8rXtP+mwmlzvXl/b9Y\n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\n+8b/K1zTdUrx/wY/ru8XrgH4Il8uXLOHlhERxS+S7P/ltuXVoxVq695hi5rnSctiXsDaZTG/Urn2\nu6RNyVaQeBNp7feIWJJqzyBbxWI1a5fFfDvwG+AesiEWAZyZllRD0jTgloi4uOo6jgbOBLqBn0bE\nGcW+jQ1LmRwG0CXFs6fr7aX+82KbrurOLo1t2fZsqXM9pNcXrml/sPj3d96unylcA/BZ/W/hmrZa\nzW05aFLx/Onq+mSpc02Pmqss9ukT515euKbrtHL/DR5b4ns/my8WrtmUA3m1ZpXK4iI5DPWz2Fqj\n1D1xiRyGcllcJoehXBYPVg5DuSwuk8NQLovL5DCUy+LBymEol8VlchjgLM4qXLOrHm/pPfHGxEMq\nzCy37q7mIqO/136PiJuh/jTBEXFsne0zgBm5L9zMbIhoNofNzKx5zuL8/E2ZWX7uGmZm1lrOYTOz\n1nMW5+YGBzPLz+FqZtZazmEzs9ZzFufmBgczy2/NRj0Ezcys9ZzDZmat5yzOzQ0OZpbfmlZfgJnZ\nRs45bGbWes7i3Lwsppnl92LOh5mZDYy8OewsNjMbOE3msKRDJS2SdL+k02q8P1zSTEmLJd0iaVTF\ne2ek7QslHdLomJKmSXpQ0l2S5knaJ23fQ9LvJb0oaVLF/ptKui3tf4+k3gney3APBzPLb3WrL8DM\nbCPnHDYza70mslhSG3AhcBDwGDBX0jURsahit+OBpyJitKQJwLnAREl7ka3oticwErhR0mhADY55\nSkRcXXUpTwL/DhxeuTEiVkk6ICJekNQO3Czp5xFxe5nP6x4OZpZfV86HmZkNjLw57Cw2Mxs4zeXw\nOGBxRDwcEauBmcD4qn3GA5em57OAA9Pzw4CZEbEmIpYAi9PxGh1zvb/3R8QTEXEnNQaIRMQL6emm\nZJ0Uou6nacANDmaW35qcDzMzGxh5c9hZbGY2cJrL4R2BpRWvl6VtNfeJiC7gGUlb16h9NG1rdMyz\nJc2XdJ6kTRp9PEltku4ClgM3RMTcRjX1uMHBzPLzTa6ZWWv1Q4PDAI0dnipphaQ/VB3r3LTvfElX\nStoybd8vjQ/ueRyeto+UdJOkBWns8EllvyozswHTXA7XWuKiugdBvX2Kbgc4PSL2BPYDtgHWy/31\nCiO6I+JNZMM23pKGcpTiORzMLD83JpiZtVaTOTwQY4cjIoBpwLeBH1adcg7ZzW63pK8AZ6THPcC+\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/__init__.py b/openmc/mgxs/__init__.py index b41deac843..7fd6e0a692 100644 --- a/openmc/mgxs/__init__.py +++ b/openmc/mgxs/__init__.py @@ -1,4 +1,4 @@ -from openmc.mgxs.groups import EnergyGroups, DelayedGroups +from openmc.mgxs.groups import EnergyGroups from openmc.mgxs.library import Library from openmc.mgxs.mgxs import * from openmc.mgxs.mdgxs import * diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index c0eaa27c17..068977d888 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -1,5 +1,5 @@ from collections import Iterable -from numbers import Real, Integral +from numbers import Real import copy import sys @@ -11,10 +11,6 @@ import openmc.checkvalue as cv if sys.version_info[0] >= 3: basestring = str -# Maximum number of delayed groups -# TODO: Get value from OpenMC -MAX_DELAYED_GROUPS = 8 - class EnergyGroups(object): """An energy groups structure used for multi-group cross-sections. @@ -303,127 +299,3 @@ class EnergyGroups(object): # Assign merged edges to merged groups merged_groups.group_edges = list(merged_edges) return merged_groups - - -class DelayedGroups(object): - """A delayed groups structure used for multi-delayed-group parameters. - - Parameters - ---------- - groups : Iterable of Int - The delayed groups - - Attributes - ---------- - groups : Iterable of Int - The delayed groups - num_groups : int - The number of delayed groups - - """ - - def __init__(self, groups=None): - self._groups = None - - if groups is not None: - self.groups = groups - - def __deepcopy__(self, memo): - existing = memo.get(id(self)) - - # If this is the first time we have tried to copy object, create copy - if existing is None: - clone = type(self).__new__(type(self)) - clone._groups = copy.deepcopy(self.groups, memo) - - memo[id(self)] = clone - - return clone - - # If this object has been copied before, return the first copy made - else: - return existing - - def __eq__(self, other): - if not isinstance(other, DelayedGroups): - return False - elif self.num_groups != other.num_groups: - return False - elif np.allclose(self.groups, other.groups): - return True - else: - return False - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash(tuple(self.groups)) - - @property - def groups(self): - return self._groups - - @property - def num_groups(self): - return len(self.groups) - - @groups.setter - def groups(self, groups): - cv.check_type('groups', groups, Iterable, Integral) - cv.check_greater_than('number of delayed groups', len(groups), 0) - - # Check that the groups are within [1, MAX_DELAYED_GROUPS] - for group in groups: - cv.check_greater_than('delayed group', group, 0) - cv.check_less_than('delayed group', group, MAX_DELAYED_GROUPS, - equality=True) - - self._groups = np.asarray(groups, dtype=int) - - def can_merge(self, other): - """Determine if delayed groups can be merged with another. - - Parameters - ---------- - other : openmc.mgxs.DelayedGroups - DelayedGroups to compare with - - Returns - ------- - bool - Whether the delayed groups can be merged - - """ - - return isinstance(other, DelayedGroups) - - def merge(self, other): - """Merge this delayed groups with another. - - Parameters - ---------- - other : openmc.mgxs.DelayedGroups - DelayedGroups to merge with - - Returns - ------- - merged_groups : openmc.mgxs.DelayedGroups - DelayedGroups resulting from the merge - - """ - - if not self.can_merge(other): - raise ValueError('Unable to merge delayed groups') - - # Create deep copy to return as merged delayed groups - merged_groups = copy.deepcopy(self) - - # Merge unique filter bins - groups = np.concatenate((self.groups, other.groups)) - groups = np.unique(groups) - groups.sort() - - # Assign groups to merged groups - merged_groups.groups = list(groups) - return merged_groups diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 5a4e2c94d4..6d2665566b 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -65,7 +65,7 @@ class Library(object): The highest legendre moment in the scattering matrices (default is 0) energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation - delayed_groups : openmc.mgxs.DelayedGroups + delayed_groups : list of int Delayed groups to filter out the xs tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to @@ -224,7 +224,7 @@ class Library(object): if self.delayed_groups == None: return 0 else: - return self.delayed_groups.num_groups + return len(self.delayed_groups) @property def all_mgxs(self): @@ -327,8 +327,16 @@ class Library(object): @delayed_groups.setter def delayed_groups(self, delayed_groups): - cv.check_type('delayed groups', delayed_groups, - openmc.mgxs.DelayedGroups) + + cv.check_type('delayed groups', delayed_groups, list, int) + cv.check_greater_than('num delayed groups', len(delayed_groups), 0) + + # Check that the groups are within [1, MAX_DELAYED_GROUPS] + for group in delayed_groups: + cv.check_greater_than('delayed group', group, 0) + cv.check_less_than('delayed group', group, + openmc.mgxs.MAX_DELAYED_GROUPS, equality=True) + self._delayed_groups = delayed_groups @correction.setter diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index e985b01515..6d57f10a93 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -10,17 +10,22 @@ import abc import numpy as np -from mgxs import MGXS, MGXS_TYPES, DOMAIN_TYPES, _DOMAINS -from openmc.mgxs import EnergyGroups, DelayedGroups from openmc import Mesh import openmc import openmc.checkvalue as cv +from openmc.mgxs.groups import EnergyGroups +from openmc.mgxs.mgxs import MGXS, MGXS_TYPES, DOMAIN_TYPES, _DOMAINS + # Supported cross section types MDGXS_TYPES = ['delayed-nu-fission', 'chi-delayed', 'beta'] +# Maximum number of delayed groups, from src/constants.F90 +MAX_DELAYED_GROUPS = 8 + + class MDGXS(MGXS): """An abstract multi-delayed-group cross section for some energy and delayed group structures within some spatial domain. @@ -45,7 +50,7 @@ class MDGXS(MGXS): name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. - delayed_groups : openmc.mgxs.DelayedGroups + delayed_groups : list of int Delayed groups to filter out the xs Attributes @@ -62,7 +67,7 @@ class MDGXS(MGXS): Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation - delayed_groups : openmc.mgxs.DelayedGroups + delayed_groups : list of int Delayed groups to filter out the xs tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to @@ -118,6 +123,7 @@ class MDGXS(MGXS): delayed_groups=None, by_nuclide=False, name=''): super(MDGXS, self).__init__(domain, domain_type, energy_groups, by_nuclide, name) + self._delayed_groups = None if delayed_groups is not None: @@ -164,12 +170,20 @@ class MDGXS(MGXS): if self.delayed_groups == None: return 0 else: - return self.delayed_groups.num_groups + return len(self.delayed_groups) @delayed_groups.setter def delayed_groups(self, delayed_groups): - cv.check_type('delayed groups', delayed_groups, - openmc.mgxs.DelayedGroups) + + cv.check_type('delayed groups', delayed_groups, list, int) + cv.check_greater_than('num delayed groups', len(delayed_groups), 0) + + # Check that the groups are within [1, MAX_DELAYED_GROUPS] + for group in delayed_groups: + cv.check_greater_than('delayed group', group, 0) + cv.check_less_than('delayed group', group, MAX_DELAYED_GROUPS, + equality=True) + self._delayed_groups = delayed_groups @property @@ -180,8 +194,7 @@ class MDGXS(MGXS): energy_filter = openmc.Filter('energy', group_edges) if self.delayed_groups != None: - delayed_groups = self.delayed_groups.groups - delayed_filter = openmc.Filter('delayedgroup', delayed_groups) + delayed_filter = openmc.Filter('delayedgroup', self.delayed_groups) return [[energy_filter], [delayed_filter, energy_filter]] else: return [[energy_filter], [energy_filter]] @@ -213,7 +226,7 @@ class MDGXS(MGXS): name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. Defaults to the empty string. - delayed_groups : openmc.mgxs.DelayedGroups + delayed_groups : list of int Delayed groups to filter out the xs Returns @@ -268,7 +281,7 @@ class MDGXS(MGXS): Defaults to 'increasing'. value : {'mean', 'std_dev', 'rel_err'} A string for the type of value to return. Defaults to 'mean'. - delayed_groups : Iterable of Integral or 'all' + delayed_groups : list of int or 'all' Delayed groups of interest. Defaults to 'all'. Returns @@ -316,7 +329,7 @@ class MDGXS(MGXS): # Construct list of delayed group tuples for all requested groups if not isinstance(delayed_groups, basestring): - cv.check_iterable_type('delayed_groups', delayed_groups, Integral) + cv.check_type('delayed groups', delayed_groups, list, int) for delayed_group in delayed_groups: filters.append('delayedgroup') filter_bins.append((delayed_group,)) @@ -402,7 +415,7 @@ class MDGXS(MGXS): cv.check_iterable_type('nuclides', nuclides, basestring) cv.check_iterable_type('energy_groups', groups, Integral) - cv.check_iterable_type('delayed_groups', delayed_groups, Integral) + cv.check_type('delayed groups', delayed_groups, list, int) # Build lists of filters and filter bins to slice filters = [] @@ -447,7 +460,7 @@ class MDGXS(MGXS): # Assign sliced delayed group structure to sliced MDGXS if delayed_groups: - slice_xs.delayed_groups.groups = delayed_groups + slice_xs.delayed_groups = delayed_groups # Assign sliced nuclides to sliced MGXS if nuclides: @@ -456,28 +469,6 @@ class MDGXS(MGXS): slice_xs.sparse = self.sparse return slice_xs - def can_merge(self, other): - """Determine if another MDGXS 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 : openmc.mgxs.MGXS - MGXS to check for merging - - """ - - can_merge = super(MDGXS, self).can_merge(other) - - # Compare delayed groups - if not self.delayed_groups.can_merge(other.delayed_groups): - can_merge = False - - # If all conditionals pass then MDGXS are mergeable - return can_merge - def merge(self, other): """Merge another MDGXS with this one @@ -502,9 +493,8 @@ class MDGXS(MGXS): # Merge delayed groups if self.delayed_groups != other.delayed_groups: - merged_delayed_groups = self.delayed_groups.merge( - other.delayed_groups) - merged_mdgxs.delayed_groups = merged_delayed_groups + merged_mdgxs.delayed_groups = list(set(self.delayed_groups + + other.delayed_groups)) return merged_mdgxs @@ -586,7 +576,7 @@ class MDGXS(MGXS): # Add the cross section header string += '{0: <16}\n'.format(xs_header) - for delayed_group in self.delayed_groups.groups: + for delayed_group in self.delayed_groups: template = '{0: <12}Delayed Group {1}:\t' string += template.format('', delayed_group) @@ -635,7 +625,7 @@ class MDGXS(MGXS): xs_type: {'macro', 'micro'} Store the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - delayed_groups : Iterable of Integral or 'all' + delayed_groups : list of int or 'all' Delayed groups of interest. Defaults to 'all'. """ @@ -715,7 +705,7 @@ class MDGXS(MGXS): The geometric information in the Summary object is embedded into a Multi-index column with a geometric "path" to each distribcell instance. - delayed_groups : Iterable of Integral or 'all' + delayed_groups : list of int or 'all' Delayed groups of interest. Defaults to 'all'. Returns @@ -731,112 +721,11 @@ class MDGXS(MGXS): """ - if not isinstance(groups, basestring): - cv.check_iterable_type('groups', groups, Integral) - if nuclides != 'all' and nuclides != 'sum': - cv.check_iterable_type('nuclides', nuclides, basestring) if not isinstance(delayed_groups, basestring): - cv.check_iterable_type('delayed groups', delayed_groups, Integral) + cv.check_type('delayed groups', delayed_groups, list, int) - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - num_delayed_groups = 1 - if self.delayed_groups != None: - num_delayed_groups = self.delayed_groups.num_groups - - # Get a Pandas DataFrame from the derived xs tally - if self.by_nuclide and nuclides == 'sum': - - # Use tally summation to sum across all nuclides - query_nuclides = self.get_all_nuclides() - xs_tally = self.xs_tally.summation(nuclides=query_nuclides) - df = xs_tally.get_pandas_dataframe( - distribcell_paths=distribcell_paths) - - # Remove nuclide column since it is homogeneous and redundant - if self.domain_type == 'mesh': - df.drop('nuclide', axis=1, level=0, inplace=True) - else: - df.drop('nuclide', axis=1, inplace=True) - - # If the user requested a specific set of nuclides - elif self.by_nuclide and nuclides != 'all': - xs_tally = self.xs_tally.get_slice(nuclides=nuclides) - df = xs_tally.get_pandas_dataframe( - distribcell_paths=distribcell_paths) - - # If the user requested all nuclides, keep nuclide column in dataframe - else: - df = self.xs_tally.get_pandas_dataframe( - distribcell_paths=distribcell_paths) - - # Remove the score column since it is homogeneous and redundant - if self.domain_type == 'mesh': - df = df.drop('score', axis=1, level=0) - else: - df = df.drop('score', axis=1) - - # 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 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 * num_delayed_groups) - in_groups = np.repeat(in_groups, df.shape[0] / in_groups.size) - df['group in'] = in_groups - del df['energy high [MeV]'] - - df.rename(columns={'energyout low [MeV]': 'group out'}, - inplace=True) - out_groups = np.repeat(all_groups, self.xs_tally.num_scores) - out_groups = np.tile(out_groups, df.shape[0] / out_groups.size * num_delayed_groups) - df['group out'] = out_groups - del df['energyout high [MeV]'] - columns = ['group in', 'group out'] - - 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 * num_delayed_groups) - df['group out'] = in_groups - del df['energyout high [MeV]'] - columns = ['group out'] - - 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 * num_delayed_groups) - df['group in'] = in_groups - del df['energy high [MeV]'] - columns = ['group in'] - - # Select out those groups the user requested - if not isinstance(groups, basestring): - if 'group in' in df: - df = df[df['group in'].isin(groups)] - if 'group out' in df: - df = df[df['group out'].isin(groups)] - - # If user requested micro cross sections, divide out the atom densities - if xs_type == 'micro': - if self.by_nuclide: - densities = self.get_nuclide_densities(nuclides) - else: - densities = self.get_nuclide_densities('sum') - densities = np.repeat(densities, len(self.rxn_rate_tally.scores)) - tile_factor = df.shape[0] / len(densities) - df['mean'] /= np.tile(densities, tile_factor) - df['std. dev.'] /= np.tile(densities, tile_factor) - - # Sort the dataframe by domain type id (e.g., distribcell id) and - # energy groups such that data is from fast to thermal - if self.domain_type == 'mesh': - mesh_str = 'mesh {0}'.format(self.domain.id) - df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), \ - (mesh_str, 'z')] + columns, inplace=True) - else: - df.sort_values(by=[self.domain_type] + columns, inplace=True) - return df + df = super(MDGXS, self).get_pandas_dataframe(groups, nuclides, xs_type, + distribcell_paths) # Select out those delayed groups the user requested if not isinstance(delayed_groups, basestring): @@ -890,7 +779,7 @@ class ChiDelayed(MDGXS): name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. - delayed_groups : openmc.mgxs.DelayedGroups + delayed_groups : list of int Delayed groups to filter out the xs Attributes @@ -907,7 +796,7 @@ class ChiDelayed(MDGXS): Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation - delayed_groups : openmc.mgxs.DelayedGroups + delayed_groups : list of int Delayed groups to filter out the xs tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to @@ -974,8 +863,7 @@ class ChiDelayed(MDGXS): energyout = openmc.Filter('energyout', group_edges) energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) if self.delayed_groups != None: - delayed_groups = self.delayed_groups.groups - delayed_filter = openmc.Filter('delayedgroup', delayed_groups) + delayed_filter = openmc.Filter('delayedgroup', self.delayed_groups) return [[delayed_filter, energyin], [delayed_filter, energyout]] else: return [[energyin], [energyout]] @@ -1120,9 +1008,8 @@ class ChiDelayed(MDGXS): # Merge delayed groups if self.delayed_groups != other.delayed_groups: - merged_delayed_groups = self.delayed_groups.merge\ - (other.delayed_groups) - merged_mdgxs.delayed_groups = merged_delayed_groups + merged_mdgxs.delayed_groups = list(set(self.delayed_groups + + other.delayed_groups)) # Merge nuclides if self.nuclides != other.nuclides: @@ -1157,7 +1044,7 @@ class ChiDelayed(MDGXS): ---------- groups : Iterable of Integral or 'all' Energy groups of interest. Defaults to 'all'. - delayed_groups : Iterable of Integral or 'all' + delayed_groups : list of int or 'all' Delayed groups of interest. Defaults to 'all'. subdomains : Iterable of Integral or 'all' Subdomain IDs of interest. Defaults to 'all'. @@ -1222,7 +1109,7 @@ class ChiDelayed(MDGXS): # Construct list of delayed group tuples for all requested groups if not isinstance(delayed_groups, basestring): - cv.check_iterable_type('delayed_groups', delayed_groups, Integral) + cv.check_type('delayed groups', delayed_groups, list, int) for delayed_group in delayed_groups: filters.append('delayedgroup') filter_bins.append((delayed_group,)) @@ -1344,7 +1231,7 @@ class DelayedNuFissionXS(MDGXS): name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. - delayed_groups : openmc.mgxs.DelayedGroups + delayed_groups : list of int Delayed groups to filter out the xs Attributes @@ -1361,7 +1248,7 @@ class DelayedNuFissionXS(MDGXS): Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation - delayed_groups : openmc.mgxs.DelayedGroups + delayed_groups : list of int Delayed groups to filter out the xs tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to @@ -1463,7 +1350,7 @@ class Beta(MDGXS): name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. - delayed_groups : openmc.mgxs.DelayedGroups + delayed_groups : list of int Delayed groups to filter out the xs Attributes @@ -1480,7 +1367,7 @@ class Beta(MDGXS): Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation - delayed_groups : openmc.mgxs.DelayedGroups + delayed_groups : list of int Delayed groups to filter out the xs tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d6f36206ee..4fc4edb38e 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1517,15 +1517,14 @@ class MGXS(object): 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.tile(all_groups, df.shape[0] / all_groups.size) in_groups = np.repeat(in_groups, df.shape[0] / in_groups.size) df['group in'] = in_groups del df['energy high [MeV]'] df.rename(columns={'energyout low [MeV]': 'group out'}, inplace=True) - out_groups = np.repeat(all_groups, self.xs_tally.num_scores) - out_groups = np.tile(out_groups, df.shape[0] / out_groups.size) + out_groups = np.tile(all_groups, df.shape[0] / all_groups.size) df['group out'] = out_groups del df['energyout high [MeV]'] columns = ['group in', 'group out'] @@ -1533,14 +1532,14 @@ class MGXS(object): 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) + in_groups = np.tile(all_groups, df.shape[0] / all_groups.size) df['group out'] = in_groups del df['energyout high [MeV]'] columns = ['group out'] 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) + in_groups = np.tile(all_groups, df.shape[0] / all_groups.size) df['group in'] = in_groups del df['energy high [MeV]'] columns = ['group in'] diff --git a/tests/input_set.py b/tests/input_set.py index 827484022d..8d650cafbc 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -2,6 +2,7 @@ import openmc from openmc.source import Source from openmc.stats import Box +import numpy as np class InputSet(object): def __init__(self): @@ -673,6 +674,158 @@ class PinCellInputSet(object): self.plots.add_plot(plot) +class AssemblyInputSet(object): + def __init__(self): + self.settings = openmc.Settings() + self.materials = openmc.Materials() + self.geometry = openmc.Geometry() + self.tallies = None + self.plots = None + + def export(self): + self.settings.export_to_xml() + self.materials.export_to_xml() + self.geometry.export_to_xml() + if self.tallies is not None: + self.tallies.export_to_xml() + if self.plots is not None: + self.plots.export_to_xml() + + def build_default_materials_and_geometry(self): + # Define materials. + fuel = openmc.Material(name='Fuel') + fuel.set_density('g/cm3', 10.29769) + fuel.add_nuclide("U234", 4.4843e-6) + fuel.add_nuclide("U235", 5.5815e-4) + fuel.add_nuclide("U238", 2.2408e-2) + fuel.add_nuclide("O16", 4.5829e-2) + + clad = openmc.Material(name='Cladding') + clad.set_density('g/cm3', 6.55) + clad.add_nuclide("Zr90", 2.1827e-2) + clad.add_nuclide("Zr91", 4.7600e-3) + clad.add_nuclide("Zr92", 7.2758e-3) + clad.add_nuclide("Zr94", 7.3734e-3) + clad.add_nuclide("Zr96", 1.1879e-3) + + hot_water = openmc.Material(name='Hot borated water') + hot_water.set_density('g/cm3', 0.740582) + hot_water.add_nuclide("H1", 4.9457e-2) + hot_water.add_nuclide("O16", 2.4672e-2) + hot_water.add_nuclide("B10", 8.0042e-6) + hot_water.add_nuclide("B11", 3.2218e-5) + hot_water.add_s_alpha_beta('c_H_in_H2O', '71t') + + # Define the materials file. + self.materials.default_xs = '71c' + self.materials += (fuel, clad, hot_water) + + # Instantiate ZCylinder surfaces + fuel_or = openmc.ZCylinder(x0=0, y0=0, R=0.39218, name='Fuel OR') + clad_or = openmc.ZCylinder(x0=0, y0=0, R=0.45720, name='Clad OR') + + # Create boundary planes to surround the geometry + min_x = openmc.XPlane(x0=-10.71, boundary_type='reflective') + max_x = openmc.XPlane(x0=+10.71, boundary_type='reflective') + min_y = openmc.YPlane(y0=-10.71, boundary_type='reflective') + max_y = openmc.YPlane(y0=+10.71, boundary_type='reflective') + + # Create a Universe to encapsulate a fuel pin + fuel_pin_universe = openmc.Universe(name='Fuel Pin') + + # Create fuel Cell + fuel_cell = openmc.Cell(name='fuel') + fuel_cell.fill = fuel + fuel_cell.region = -fuel_or + fuel_pin_universe.add_cell(fuel_cell) + + # Create a clad Cell + clad_cell = openmc.Cell(name='clad') + clad_cell.fill = clad + clad_cell.region = +fuel_or & -clad_or + fuel_pin_universe.add_cell(clad_cell) + + # Create a moderator Cell + hot_water_cell = openmc.Cell(name='hot water') + hot_water_cell.fill = hot_water + hot_water_cell.region = +clad_or + fuel_pin_universe.add_cell(hot_water_cell) + + # Create a Universe to encapsulate a control rod guide tube + guide_tube_universe = openmc.Universe(name='Guide Tube') + + # Create guide tube inner Cell + gt_inner_cell = openmc.Cell(name='guide tube inner water') + gt_inner_cell.fill = hot_water + gt_inner_cell.region = -fuel_or + guide_tube_universe.add_cell(gt_inner_cell) + + # Create a clad Cell + gt_clad_cell = openmc.Cell(name='guide tube clad') + gt_clad_cell.fill = clad + gt_clad_cell.region = +fuel_or & -clad_or + guide_tube_universe.add_cell(gt_clad_cell) + + # Create a guide tube outer Cell + gt_outer_cell = openmc.Cell(name='guide tube outer water') + gt_outer_cell.fill = hot_water + gt_outer_cell.region = +clad_or + guide_tube_universe.add_cell(gt_outer_cell) + + # Create fuel assembly Lattice + assembly = openmc.RectLattice(name='Fuel Assembly') + assembly.pitch = (1.26, 1.26) + assembly.lower_left = [-1.26 * 17. / 2.0] * 2 + + # Create array indices for guide tube locations in lattice + template_x = np.array([5, 8, 11, 3, 13, 2, 5, 8, 11, 14, 2, 5, 8, + 11, 14, 2, 5, 8, 11, 14, 3, 13, 5, 8, 11]) + template_y = np.array([2, 2, 2, 3, 3, 5, 5, 5, 5, 5, 8, 8, 8, 8, + 8, 11, 11, 11, 11, 11, 13, 13, 14, 14, 14]) + + # Initialize an empty 17x17 array of the lattice universes + universes = np.empty((17, 17), dtype=openmc.Universe) + + # Fill the array with the fuel pin and guide tube universes + universes[:,:] = fuel_pin_universe + universes[template_x, template_y] = guide_tube_universe + + # Store the array of universes in the lattice + assembly.universes = universes + + # Create root Cell + root_cell = openmc.Cell(name='root cell') + root_cell.fill = assembly + + # Add boundary planes + root_cell.region = +min_x & -max_x & +min_y & -max_y + + # Create root Universe + root_universe = openmc.Universe(universe_id=0, name='root universe') + root_universe.add_cell(root_cell) + + # Instantiate a Geometry, register the root Universe, and export to XML + self.geometry.root_universe = root_universe + + def build_default_settings(self): + self.settings.batches = 10 + self.settings.inactive = 5 + self.settings.particles = 100 + self.settings.source = Source(space=Box([-10.71, -10.71, -1], + [10.71, 10.71, 1], + only_fissionable=True)) + + def build_defualt_plots(self): + plot = openmc.Plot() + plot.filename = 'mat' + plot.origin = (0.0, 0.0, 0) + plot.width = (21.42, 21.42) + plot.pixels = (300, 300) + plot.color = 'mat' + + self.plots.add_plot(plot) + + class MGInputSet(InputSet): def build_default_materials_and_geometry(self): # Define materials needed for 1D/1G slab problem diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index b849391690..a3e849d6c5 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -24,7 +24,7 @@ class MGXSTestHarness(PyAPITestHarness): 20.]) # Initialize a six-delayed-group structure - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + delayed_groups = range(1,7) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 64cd6b748d..924c53838f 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -5e4bd179eeb955f61e01dc2a486e3fefd2cef7859390f12a817cd5412359766d7bfe0bf3f8553e8d28af0844ee04a4ebaad6510ec6157ee836d631a2a2b3baec \ No newline at end of file +9ce3d6987d67e92b0924916bb54288429d2bd6dfd12a69f86c5dbefb407f7eb72adb0e44d558c09e9a39610ffeb651aee4aedc629cf3a28a181d62ca4cfbcd5a \ 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 fb301be61f..5a996c8fa9 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,63 +1,63 @@ - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 0.453624 0.02261 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 0.400852 0.024589 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 0.400852 0.024589 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 0.064903 0.004684 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 0.028048 0.004982 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 0.036855 0.002749 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 0.090649 0.006763 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 7.137955 0.532092 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 0.388721 0.018415 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 0.389304 0.023619 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0,) 1 1 total P0 0.389304 0.023619 -1 (0,) 1 1 total P1 0.046224 0.005672 -2 (0,) 1 1 total P2 0.017984 0.002178 -3 (0,) 1 1 total P3 0.006628 0.001620 - avg(distribcell) group in group out nuclide moment mean std. dev. -0 (0,) 1 1 total P0 0.389304 0.023619 -1 (0,) 1 1 total P1 0.046224 0.005672 -2 (0,) 1 1 total P2 0.017984 0.002178 -3 (0,) 1 1 total P3 0.006628 0.001620 - avg(distribcell) group in group out nuclide mean std. dev. -0 (0,) 1 1 total 1.0 0.066327 - avg(distribcell) group in group out nuclide mean std. dev. -0 (0,) 1 1 total 0.085835 0.004328 - avg(distribcell) group out nuclide mean std. dev. -0 (0,) 1 total 1.0 0.046071 - avg(distribcell) group out nuclide mean std. dev. -0 (0,) 1 total 1.0 0.051471 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 4.996730e-07 3.741595e-08 - avg(distribcell) group in nuclide mean std. dev. -0 (0,) 1 total 0.090004 0.006717 - avg(distribcell) delayedgroup group in nuclide mean std. dev. -0 (0,) 1 1 total 0.000021 0.000002 -1 (0,) 2 1 total 0.000110 0.000008 -2 (0,) 3 1 total 0.000107 0.000008 -3 (0,) 4 1 total 0.000249 0.000018 -4 (0,) 5 1 total 0.000112 0.000008 -5 (0,) 6 1 total 0.000046 0.000003 - avg(distribcell) delayedgroup group out nuclide mean std. dev. -0 (0,) 1 1 total 0.0 0.000000 -1 (0,) 2 1 total 1.0 0.869128 -2 (0,) 3 1 total 1.0 1.414214 -3 (0,) 4 1 total 1.0 0.360359 -4 (0,) 5 1 total 0.0 0.000000 -5 (0,) 6 1 total 0.0 0.000000 - avg(distribcell) delayedgroup group in nuclide mean std. dev. -0 (0,) 1 1 total 0.000227 0.000022 -1 (0,) 2 1 total 0.001214 0.000115 -2 (0,) 3 1 total 0.001184 0.000111 -3 (0,) 4 1 total 0.002752 0.000257 -4 (0,) 5 1 total 0.001231 0.000113 -5 (0,) 6 1 total 0.000512 0.000047 + 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.457353 0.010474 + 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.405649 0.015784 + 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.405641 0.015787 + 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.066556 0.00251 + 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.028979 0.002712 + 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.037577 0.001487 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.092377 0.003628 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.276707 0.287579 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.390797 0.008717 + 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.387332 0.014241 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 0.387009 0.014230 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.047179 0.004923 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.015713 0.003654 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.005378 0.003137 + avg(distribcell) group in group out nuclide moment mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 0.387332 0.014241 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.047187 0.004933 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.015727 0.003654 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.005387 0.003141 + 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 1.000834 0.037242 + 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.094516 0.0059 + 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 1.0 0.080455 + 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 1.0 0.080541 + 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 5.139437e-07 2.133314e-08 + 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.091725 0.003604 + avg(distribcell) delayedgroup group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.000021 8.253907e-07 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 0.000112 4.284000e-06 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 0.000109 4.105197e-06 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0.000252 9.271420e-06 +4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0.000112 3.888625e-06 +5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 0.000047 1.625563e-06 + avg(distribcell) delayedgroup 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.0 0.000000 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 1.0 1.414214 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 1.0 1.414214 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0.0 0.000000 +4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0.0 0.000000 +5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 1.0 1.414214 + avg(distribcell) delayedgroup group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.000227 0.000012 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 0.001209 0.000061 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 0.001177 0.000059 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0.002727 0.000135 +4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0.001210 0.000058 +5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 0.000504 0.000024 diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index d03f003134..3103e07382 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -6,7 +6,7 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness -from input_set import PinCellInputSet +from input_set import AssemblyInputSet import openmc import openmc.mgxs @@ -14,7 +14,7 @@ import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): # Set the input set to use the pincell model - self._input_set = PinCellInputSet() + self._input_set = AssemblyInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() @@ -23,7 +23,7 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) # Initialize a six-delayed-group structure - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + delayed_groups = range(1,7) # Initialize MGXS Library for a few cross section types # for one material-filled cell in the geometry @@ -38,7 +38,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'distribcell' cells = self.mgxs_lib.openmc_geometry.get_all_material_cells() - self.mgxs_lib.domains = [c for c in cells if c.name == 'cell 1'] + self.mgxs_lib.domains = [c for c in cells if c.name == 'fuel'] self.mgxs_lib.build_library() # Initialize a tallies file diff --git a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py index a9d4210479..4359b27937 100644 --- a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py +++ b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py @@ -25,7 +25,7 @@ class MGXSTestHarness(PyAPITestHarness): 20.]) # Initialize a six-delayed-group structure - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + delayed_groups = range(1,7) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) diff --git a/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py b/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py index 2db57254b4..bcf2400108 100644 --- a/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py +++ b/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py @@ -19,7 +19,7 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) # Initialize a six-delayed-group structure - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + delayed_groups = range(1,7) # Initialize MGXS Library for a few cross section types # for one material-filled cell in the geometry diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index edd99b44c5..54650970f1 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -29,49 +29,49 @@ 1 10000 1 total 0.385188 0.026946 0 10000 2 total 0.412389 0.015425 material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 0.384199 0.027001 -13 10000 1 1 total P1 0.051870 0.006983 -14 10000 1 1 total P2 0.020069 0.002846 +1 10000 1 1 total P0 0.016482 0.004502 +3 10000 1 1 total P1 -0.010499 0.010438 +5 10000 1 1 total P2 -0.000768 0.000768 +7 10000 1 1 total P3 -0.000171 0.000172 +9 10000 1 1 total P0 -0.000207 0.000149 +11 10000 1 1 total P1 0.000234 0.000128 +13 10000 1 1 total P2 0.051870 0.006983 15 10000 1 1 total P3 0.009478 0.002234 -8 10000 1 2 total P0 0.000989 0.000482 -9 10000 1 2 total P1 -0.000207 0.000149 -10 10000 1 2 total P2 -0.000103 0.000184 -11 10000 1 2 total P3 0.000234 0.000128 -4 10000 2 1 total P0 0.000925 0.000925 -5 10000 2 1 total P1 -0.000768 0.000768 -6 10000 2 1 total P2 0.000494 0.000494 -7 10000 2 1 total P3 -0.000171 0.000172 0 10000 2 2 total P0 0.411465 0.015245 -1 10000 2 2 total P1 0.016482 0.004502 -2 10000 2 2 total P2 0.006371 0.010551 -3 10000 2 2 total P3 -0.010499 0.010438 +2 10000 2 2 total P1 0.006371 0.010551 +4 10000 2 2 total P2 0.000925 0.000925 +6 10000 2 2 total P3 0.000494 0.000494 +8 10000 2 2 total P0 0.000989 0.000482 +10 10000 2 2 total P1 -0.000103 0.000184 +12 10000 2 2 total P2 0.384199 0.027001 +14 10000 2 2 total P3 0.020069 0.002846 material group in group out nuclide moment mean std. dev. -12 10000 1 1 total P0 0.384199 0.027001 -13 10000 1 1 total P1 0.051870 0.006983 -14 10000 1 1 total P2 0.020069 0.002846 +1 10000 1 1 total P0 0.016482 0.004502 +3 10000 1 1 total P1 -0.010499 0.010438 +5 10000 1 1 total P2 -0.000768 0.000768 +7 10000 1 1 total P3 -0.000171 0.000172 +9 10000 1 1 total P0 -0.000207 0.000149 +11 10000 1 1 total P1 0.000234 0.000128 +13 10000 1 1 total P2 0.051870 0.006983 15 10000 1 1 total P3 0.009478 0.002234 -8 10000 1 2 total P0 0.000989 0.000482 -9 10000 1 2 total P1 -0.000207 0.000149 -10 10000 1 2 total P2 -0.000103 0.000184 -11 10000 1 2 total P3 0.000234 0.000128 -4 10000 2 1 total P0 0.000925 0.000925 -5 10000 2 1 total P1 -0.000768 0.000768 -6 10000 2 1 total P2 0.000494 0.000494 -7 10000 2 1 total P3 -0.000171 0.000172 0 10000 2 2 total P0 0.411465 0.015245 -1 10000 2 2 total P1 0.016482 0.004502 -2 10000 2 2 total P2 0.006371 0.010551 -3 10000 2 2 total P3 -0.010499 0.010438 +2 10000 2 2 total P1 0.006371 0.010551 +4 10000 2 2 total P2 0.000925 0.000925 +6 10000 2 2 total P3 0.000494 0.000494 +8 10000 2 2 total P0 0.000989 0.000482 +10 10000 2 2 total P1 -0.000103 0.000184 +12 10000 2 2 total P2 0.384199 0.027001 +14 10000 2 2 total P3 0.020069 0.002846 material group in group out nuclide mean std. dev. +1 10000 1 1 total 1.0 1.414214 3 10000 1 1 total 1.0 0.078516 -2 10000 1 2 total 1.0 0.687184 -1 10000 2 1 total 1.0 1.414214 0 10000 2 2 total 1.0 0.041130 +2 10000 2 2 total 1.0 0.687184 material group in group out nuclide mean std. dev. +1 10000 1 1 total 0.454366 0.027426 3 10000 1 1 total 0.020142 0.003149 -2 10000 1 2 total 0.000000 0.000000 -1 10000 2 1 total 0.454366 0.027426 0 10000 2 2 total 0.000000 0.000000 +2 10000 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. 1 10000 1 total 1.0 0.046071 0 10000 2 total 0.0 0.000000 @@ -154,49 +154,49 @@ 1 10001 1 total 0.310121 0.033788 0 10001 2 total 0.296264 0.043792 material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 0.310121 0.033788 -13 10001 1 1 total P1 0.038230 0.008484 -14 10001 1 1 total P2 0.020745 0.004696 +1 10001 1 1 total P0 -0.011214 0.016180 +3 10001 1 1 total P1 -0.003270 0.007329 +5 10001 1 1 total P2 0.000000 0.000000 +7 10001 1 1 total P3 0.000000 0.000000 +9 10001 1 1 total P0 0.000000 0.000000 +11 10001 1 1 total P1 0.000000 0.000000 +13 10001 1 1 total P2 0.038230 0.008484 15 10001 1 1 total P3 0.007964 0.003732 -8 10001 1 2 total P0 0.000000 0.000000 -9 10001 1 2 total P1 0.000000 0.000000 -10 10001 1 2 total P2 0.000000 0.000000 -11 10001 1 2 total P3 0.000000 0.000000 -4 10001 2 1 total P0 0.000000 0.000000 -5 10001 2 1 total P1 0.000000 0.000000 -6 10001 2 1 total P2 0.000000 0.000000 -7 10001 2 1 total P3 0.000000 0.000000 0 10001 2 2 total P0 0.296264 0.043792 -1 10001 2 2 total P1 -0.011214 0.016180 -2 10001 2 2 total P2 0.008837 0.011504 -3 10001 2 2 total P3 -0.003270 0.007329 +2 10001 2 2 total P1 0.008837 0.011504 +4 10001 2 2 total P2 0.000000 0.000000 +6 10001 2 2 total P3 0.000000 0.000000 +8 10001 2 2 total P0 0.000000 0.000000 +10 10001 2 2 total P1 0.000000 0.000000 +12 10001 2 2 total P2 0.310121 0.033788 +14 10001 2 2 total P3 0.020745 0.004696 material group in group out nuclide moment mean std. dev. -12 10001 1 1 total P0 0.310121 0.033788 -13 10001 1 1 total P1 0.038230 0.008484 -14 10001 1 1 total P2 0.020745 0.004696 +1 10001 1 1 total P0 -0.011214 0.016180 +3 10001 1 1 total P1 -0.003270 0.007329 +5 10001 1 1 total P2 0.000000 0.000000 +7 10001 1 1 total P3 0.000000 0.000000 +9 10001 1 1 total P0 0.000000 0.000000 +11 10001 1 1 total P1 0.000000 0.000000 +13 10001 1 1 total P2 0.038230 0.008484 15 10001 1 1 total P3 0.007964 0.003732 -8 10001 1 2 total P0 0.000000 0.000000 -9 10001 1 2 total P1 0.000000 0.000000 -10 10001 1 2 total P2 0.000000 0.000000 -11 10001 1 2 total P3 0.000000 0.000000 -4 10001 2 1 total P0 0.000000 0.000000 -5 10001 2 1 total P1 0.000000 0.000000 -6 10001 2 1 total P2 0.000000 0.000000 -7 10001 2 1 total P3 0.000000 0.000000 0 10001 2 2 total P0 0.296264 0.043792 -1 10001 2 2 total P1 -0.011214 0.016180 -2 10001 2 2 total P2 0.008837 0.011504 -3 10001 2 2 total P3 -0.003270 0.007329 +2 10001 2 2 total P1 0.008837 0.011504 +4 10001 2 2 total P2 0.000000 0.000000 +6 10001 2 2 total P3 0.000000 0.000000 +8 10001 2 2 total P0 0.000000 0.000000 +10 10001 2 2 total P1 0.000000 0.000000 +12 10001 2 2 total P2 0.310121 0.033788 +14 10001 2 2 total P3 0.020745 0.004696 material group in group out nuclide mean std. dev. +1 10001 1 1 total 0.0 0.000000 3 10001 1 1 total 1.0 0.108779 -2 10001 1 2 total 0.0 0.000000 -1 10001 2 1 total 0.0 0.000000 0 10001 2 2 total 1.0 0.142427 +2 10001 2 2 total 0.0 0.000000 material group in group out nuclide mean std. dev. +1 10001 1 1 total 0.0 0.0 3 10001 1 1 total 0.0 0.0 -2 10001 1 2 total 0.0 0.0 -1 10001 2 1 total 0.0 0.0 0 10001 2 2 total 0.0 0.0 +2 10001 2 2 total 0.0 0.0 material group out nuclide mean std. dev. 1 10001 1 total 0.0 0.0 0 10001 2 total 0.0 0.0 @@ -279,49 +279,49 @@ 1 10002 1 total 0.671269 0.026186 0 10002 2 total 2.035388 0.258060 material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 0.639901 0.024709 -13 10002 1 1 total P1 0.381167 0.016243 -14 10002 1 1 total P2 0.152392 0.008156 +1 10002 1 1 total P0 0.509941 0.051236 +3 10002 1 1 total P1 0.024988 0.008312 +5 10002 1 1 total P2 0.000400 0.000401 +7 10002 1 1 total P3 0.000214 0.000215 +9 10002 1 1 total P0 0.008758 0.000926 +11 10002 1 1 total P1 -0.003785 0.000817 +13 10002 1 1 total P2 0.381167 0.016243 15 10002 1 1 total P3 0.009148 0.003889 -8 10002 1 2 total P0 0.031368 0.001728 -9 10002 1 2 total P1 0.008758 0.000926 -10 10002 1 2 total P2 -0.002568 0.001014 -11 10002 1 2 total P3 -0.003785 0.000817 -4 10002 2 1 total P0 0.000443 0.000445 -5 10002 2 1 total P1 0.000400 0.000401 -6 10002 2 1 total P2 0.000320 0.000321 -7 10002 2 1 total P3 0.000214 0.000215 0 10002 2 2 total P0 2.034945 0.257800 -1 10002 2 2 total P1 0.509941 0.051236 -2 10002 2 2 total P2 0.111175 0.013020 -3 10002 2 2 total P3 0.024988 0.008312 +2 10002 2 2 total P1 0.111175 0.013020 +4 10002 2 2 total P2 0.000443 0.000445 +6 10002 2 2 total P3 0.000320 0.000321 +8 10002 2 2 total P0 0.031368 0.001728 +10 10002 2 2 total P1 -0.002568 0.001014 +12 10002 2 2 total P2 0.639901 0.024709 +14 10002 2 2 total P3 0.152392 0.008156 material group in group out nuclide moment mean std. dev. -12 10002 1 1 total P0 0.639901 0.024709 -13 10002 1 1 total P1 0.381167 0.016243 -14 10002 1 1 total P2 0.152392 0.008156 +1 10002 1 1 total P0 0.509941 0.051236 +3 10002 1 1 total P1 0.024988 0.008312 +5 10002 1 1 total P2 0.000400 0.000401 +7 10002 1 1 total P3 0.000214 0.000215 +9 10002 1 1 total P0 0.008758 0.000926 +11 10002 1 1 total P1 -0.003785 0.000817 +13 10002 1 1 total P2 0.381167 0.016243 15 10002 1 1 total P3 0.009148 0.003889 -8 10002 1 2 total P0 0.031368 0.001728 -9 10002 1 2 total P1 0.008758 0.000926 -10 10002 1 2 total P2 -0.002568 0.001014 -11 10002 1 2 total P3 -0.003785 0.000817 -4 10002 2 1 total P0 0.000443 0.000445 -5 10002 2 1 total P1 0.000400 0.000401 -6 10002 2 1 total P2 0.000320 0.000321 -7 10002 2 1 total P3 0.000214 0.000215 0 10002 2 2 total P0 2.034945 0.257800 -1 10002 2 2 total P1 0.509941 0.051236 -2 10002 2 2 total P2 0.111175 0.013020 -3 10002 2 2 total P3 0.024988 0.008312 +2 10002 2 2 total P1 0.111175 0.013020 +4 10002 2 2 total P2 0.000443 0.000445 +6 10002 2 2 total P3 0.000320 0.000321 +8 10002 2 2 total P0 0.031368 0.001728 +10 10002 2 2 total P1 -0.002568 0.001014 +12 10002 2 2 total P2 0.639901 0.024709 +14 10002 2 2 total P3 0.152392 0.008156 material group in group out nuclide mean std. dev. +1 10002 1 1 total 1.0 1.414214 3 10002 1 1 total 1.0 0.038609 -2 10002 1 2 total 1.0 0.067667 -1 10002 2 1 total 1.0 1.414214 0 10002 2 2 total 1.0 0.135929 +2 10002 2 2 total 1.0 0.067667 material group in group out nuclide mean std. dev. +1 10002 1 1 total 0.0 0.0 3 10002 1 1 total 0.0 0.0 -2 10002 1 2 total 0.0 0.0 -1 10002 2 1 total 0.0 0.0 0 10002 2 2 total 0.0 0.0 +2 10002 2 2 total 0.0 0.0 material group out nuclide mean std. dev. 1 10002 1 total 0.0 0.0 0 10002 2 total 0.0 0.0 diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index d2e61a2da4..5ca90875d4 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -24,7 +24,7 @@ class MGXSTestHarness(PyAPITestHarness): 20.]) # Initialize a six-delayed-group structure - delayed_groups = openmc.mgxs.DelayedGroups(range(1,7)) + delayed_groups = range(1,7) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 3da8146042..9671ad7857 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -e494320a213b5704a2ac915a2ba504857be91961ceb6735b6ad05d81eb31c44c9584d5bd9d40baececf1dcb5b030e6ecec63cfbd20639baf69bcb596c5c46591 \ No newline at end of file +cb61db73f66b40ed1a59a59e6f4fd52678e9dc41c7bb8ad327989233c3b8d78a71d84c3cb8ad9bc8b1585b319e1f1d66a8667e7cad2ead4cc574f415f8f7a35d \ No newline at end of file From b400045ded71a7b8af1336c09313f7cfa8138200 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Sat, 6 Aug 2016 17:11:37 -0400 Subject: [PATCH 247/417] removed unnecessary imports in mdgx.py --- openmc/mgxs/mdgxs.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index 6d57f10a93..c01b0b575b 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -10,12 +10,9 @@ import abc import numpy as np -from openmc import Mesh import openmc +from openmc.mgxs import MGXS import openmc.checkvalue as cv -from openmc.mgxs.groups import EnergyGroups -from openmc.mgxs.mgxs import MGXS, MGXS_TYPES, DOMAIN_TYPES, _DOMAINS - # Supported cross section types MDGXS_TYPES = ['delayed-nu-fission', From 264cb33b3635e54f8d9958b829c0d0660b25258c Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sun, 7 Aug 2016 14:31:18 -0500 Subject: [PATCH 248/417] Address #690 comments --- data/fission_Q_data_endfb71.h5 | Bin 67543 -> 67543 bytes docs/source/io_formats/fission_energy.rst | 7 ++--- openmc/data/endf_utils.py | 5 ++-- openmc/data/fission_energy.py | 35 +++++++++------------- src/tally.F90 | 12 ++++---- 5 files changed, 25 insertions(+), 34 deletions(-) diff --git a/data/fission_Q_data_endfb71.h5 b/data/fission_Q_data_endfb71.h5 index 89e51b70783034b40ce4e207fdb3e34b5d5d33cc..7cc5a86b5249c1abacfbf23bf777639825164c9b 100644 GIT binary patch delta 8209 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/** - Nuclides are named by concatenating their Z and their A numbers. For - example, U235 is named 92235. Metastable nuclides are appended with an - '_m' and their metastable number. For example, the first excited isomer - of Am-242 is named 95242_m1. + Nuclides are named by concatenating their atomic symbol and mass number. For + example, 'U235' or 'Pu239'. Metastable nuclides are appended with an + '_m' and their metastable number. For example, 'Am242_m1' :Datasets: - **data** (*double[][][]*) -- The energy release coefficients. The first axis indexes the component type. The second axis specifies diff --git a/openmc/data/endf_utils.py b/openmc/data/endf_utils.py index bfd9ae5c85..1a77c60a5e 100644 --- a/openmc/data/endf_utils.py +++ b/openmc/data/endf_utils.py @@ -12,9 +12,8 @@ import re def read_float(float_string): """Parse ENDF 6E11.0 formatted string into a float.""" assert len(float_string) == 11 - pattern = '([\s\\-]\d+\\.\d+)([\\+\\-]\d+)' - mantissa, exponent = re.match(pattern, float_string).groups() - return float(mantissa + 'e' + exponent) + pattern = r'([\s\-]\d+\.\d+)([\+\-]\d+)' + return float(re.sub(pattern, r'\1e\2', float_string)) def read_CONT_line(line): diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index 334231a9f6..60cc435646 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -6,8 +6,9 @@ import h5py import numpy as np from numpy.polynomial.polynomial import Polynomial -from .function import Tabulated1D, Sum +from .data import ATOMIC_SYMBOL from .endf_utils import read_float, read_CONT_line, identify_nuclide +from .function import Tabulated1D, Sum import openmc.checkvalue as cv if sys.version_info[0] >= 3: @@ -70,11 +71,11 @@ def _extract_458_data(filename): labels = ('EFR', 'ENP', 'END', 'EGP', 'EGD', 'EB', 'ENU', 'ER', 'ET') # Associate each set of values and uncertainties with its label. - value = dict() - uncertainty = dict() - for i in range(len(labels)): - value[labels[i]] = data[2*i::18] - uncertainty[labels[i]] = data[2*i + 1::18] + value = {} + uncertainty = {} + for i, label in enumerate(labels): + value[label] = data[2*i::18] + uncertainty[label] = data[2*i + 1::18] # In ENDF/B-7.1, data for 2nd-order coefficients were mistakenly not # converted from MeV to eV. Check for this error and fix it if present. @@ -94,13 +95,6 @@ def _extract_458_data(filename): for coeffs in value.values(): coeffs[2] *= 1e-6 for coeffs in uncertainty.values(): coeffs[2] *= 1e-6 - # Perform the sanity check again... just in case. - for coeffs in value.values(): - second_order = coeffs[2] - if abs(second_order) * 1e12 > 1e8: - raise ValueError("Encountered a ludicrously large second-" - "order polynomial coefficient.") - # Convert eV to MeV. for coeffs in value.values(): for i in range(len(coeffs)): @@ -112,8 +106,8 @@ def _extract_458_data(filename): return value, uncertainty -def write_compact_458_library(endf_files, output_name=None, comment=None, - verbose=False): +def write_compact_458_library(endf_files, output_name='fission_Q_data.h5', + comment=None, verbose=False): """Read ENDF files, strip the MF=1 MT=458 data and write to small HDF5. Parameters @@ -130,7 +124,6 @@ def write_compact_458_library(endf_files, output_name=None, comment=None, """ # Open the output file. - if output_name is None: output_name = 'fission_Q_data.h5' out = h5py.File(output_name, 'w', libver='latest') # Write comments, if given. This commented out comment is the one used for @@ -179,7 +172,7 @@ def write_compact_458_library(endf_files, output_name=None, comment=None, value, uncertainty = data # Make a group for this isomer. - name = str(ident['Z']) + str(ident['A']) + name = ATOMIC_SYMBOL[ident['Z']] + str(ident['A']) if ident['LISO'] != 0: name += '_m' + str(ident['LISO']) nuclide_group = out.create_group(name) @@ -447,7 +440,7 @@ class FissionEnergyRelease(object): and p.emission_mode == 'prompt'] else: raise ValueError('IncidentNeutron data has no fission ' - 'reaction.') + 'reaction.') if len(nu_prompt) == 0: raise ValueError('Nu data is needed to compute fission energy ' 'release with the Sher-Beck format.') @@ -533,7 +526,7 @@ class FissionEnergyRelease(object): elif group.attrs['format'].decode() == 'Sher-Beck': obj.form = 'Sher-Beck' obj.prompt_neutrons = Tabulated1D.from_hdf5( - group['prompt_neutrons']) + group['prompt_neutrons']) else: raise ValueError('Unrecognized energy release format') @@ -565,14 +558,14 @@ class FissionEnergyRelease(object): components = [s.decode() for s in fin.attrs['component order']] - nuclide_name = str(incident_neutron.atomic_number) + nuclide_name = ATOMIC_SYMBOL[incident_neutron.atomic_number] nuclide_name += str(incident_neutron.mass_number) if incident_neutron.metastable != 0: nuclide_name += '_m' + str(incident_neutron.metastable) if nuclide_name not in fin: return None - data = {c : fin[nuclide_name + '/data'][i, 0, :] + data = {c: fin[nuclide_name + '/data'][i, 0, :] for i, c in enumerate(components)} return cls._from_dictionary(data, incident_neutron) diff --git a/src/tally.F90 b/src/tally.F90 index ab630ceb25..a949313bd3 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -710,7 +710,7 @@ contains score = p % absorb_wgt * & nuc % reactions(nuc % index_fission(1)) % Q_value * & micro_xs(p % event_nuclide) % fission / & - micro_xs(p % event_nuclide) % absorption + micro_xs(p % event_nuclide) % absorption * flux end if end associate else @@ -724,7 +724,7 @@ contains score = p % last_wgt * & nuc % reactions(nuc % index_fission(1)) % Q_value * & micro_xs(p % event_nuclide) % fission / & - micro_xs(p % event_nuclide) % absorption + micro_xs(p % event_nuclide) % absorption * flux end if end associate end if @@ -785,7 +785,7 @@ contains score = p % absorb_wgt & * nuc % fission_q_prompt % evaluate(p % last_E) & * micro_xs(p % event_nuclide) % fission & - / micro_xs(p % event_nuclide) % absorption + / micro_xs(p % event_nuclide) % absorption * flux end if end associate else @@ -799,7 +799,7 @@ contains score = p % last_wgt & * nuc % fission_q_prompt % evaluate(p % last_E) & * micro_xs(p % event_nuclide) % fission & - / micro_xs(p % event_nuclide) % absorption + / micro_xs(p % event_nuclide) % absorption * flux end if end associate end if @@ -844,7 +844,7 @@ contains score = p % absorb_wgt & * nuc % fission_q_recov % evaluate(p % last_E) & * micro_xs(p % event_nuclide) % fission & - / micro_xs(p % event_nuclide) % absorption + / micro_xs(p % event_nuclide) % absorption * flux end if end associate else @@ -858,7 +858,7 @@ contains score = p % last_wgt & * nuc % fission_q_recov % evaluate(p % last_E) & * micro_xs(p % event_nuclide) % fission & - / micro_xs(p % event_nuclide) % absorption + / micro_xs(p % event_nuclide) % absorption * flux end if end associate end if From 45fb021e8906012c7c3f449c50ca4335cb66519e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 8 Aug 2016 07:05:55 -0500 Subject: [PATCH 249/417] Strip metastable info when getting atomic mass --- openmc/data/data.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openmc/data/data.py b/openmc/data/data.py index da1406a9cf..ebc2cba432 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -213,4 +213,8 @@ def atomic_mass(isotope): line[100:106] + '.' + line[107:112]) _ATOMIC_MASS[name.lower()] = mass + # Get rid of metastable information + if '_' in isotope: + isotope = isotope[:isotope.find('_')] + return _ATOMIC_MASS.get(isotope.lower()) From 75878d583d6b1e0ea158c62226d130238cd552d6 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 8 Aug 2016 10:06:02 -0500 Subject: [PATCH 250/417] Address #695 comments --- openmc/data/function.py | 2 +- openmc/data/product.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/openmc/data/function.py b/openmc/data/function.py index e827e12833..798aa18cdd 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -13,7 +13,7 @@ INTERPOLATION_SCHEME = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log', class Function1D(object): """A function of one independent variable with HDF5 support.""" - __meta__class = ABCMeta + __metaclass__ = ABCMeta def __init__(self): pass diff --git a/openmc/data/product.py b/openmc/data/product.py index 116905f7a3..eec47c9560 100644 --- a/openmc/data/product.py +++ b/openmc/data/product.py @@ -35,7 +35,7 @@ class Product(object): yield represents particles from prompt and delayed sources. particle : str What particle the reaction product is. - yield_ : float or openmc.data.Tabulated1D or openmc.data.Polynomial + yield_ : openmc.data.Function1D Yield of secondary particle in the reaction. """ @@ -118,8 +118,7 @@ class Product(object): @yield_.setter def yield_(self, yield_): - cv.check_type('product yield', yield_, - (Tabulated1D, Polynomial)) + cv.check_type('product yield', yield_, Function1D) self._yield = yield_ def to_hdf5(self, group): From d86583c41683d87b9498a1a7095e49017f684f8c Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 8 Aug 2016 10:55:09 -0500 Subject: [PATCH 251/417] Infer Sher-Beck vs. Madland from data type --- docs/source/io_formats/nuclear_data.rst | 51 +++++++++++-------- openmc/data/fission_energy.py | 65 +++++++++---------------- src/nuclide_header.F90 | 14 ++---- tests/test_tallies/results_true.dat | 2 +- 4 files changed, 60 insertions(+), 72 deletions(-) diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index 7544ca1f5e..2a16c02cec 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -57,24 +57,33 @@ Incident Neutron Data **//fission_energy_release/** -:Attributes: - **format** (*char[]*) -- The energy-dependence format. Either - 'Madland' or 'Sher-Beck' - -:Datasets: - **fragments** (*double[]*) -- Polynomial coefficients for energy - released in the form of fragments - - **prompt_neutrons** (*double[]* or :ref:`tabulated <1d_tabulated>`) - -- Energy released in the form of prompt neutrons. Polynomial if - the format is Madland or a table if Sher-Beck. - - **delayed_neutrons** (*double[]*) -- Polynomial coefficients for - energy released in the form of delayed neutrons - - **prompt_photons** (*double[]*) -- Polynomial coefficients for - energy released in the form of prompt photons - - **delayed_photons** (*double[]*) -- Polynomial coefficients for - energy released in the form of delayed photons - - **betas** (*double[]*) -- Polynomial coefficients for - energy released in the form of betas - - **neutrinos** (*double[]*) -- Polynomial coefficients for - energy released in the form of neutrinos +:Datasets: - **fragments** (:ref:`polynomial <1d_polynomial>`) -- Energy + released in the form of fragments as a function of incident + neutron energy. + - **prompt_neutrons** (:ref:`polynomial <1d_polynomial>` or + :ref:`tabulated <1d_tabulated>`) -- Energy released in the form of + prompt neutrons as a function of incident neutron energy. + - **delayed_neutrons** (:ref:`polynomial <1d_polynomial>`) -- Energy + released in the form of delayed neutrons as a function of incident + neutron energy. + - **prompt_photons** (:ref:`polynomial <1d_polynomial>`) -- Energy + released in the form of prompt photons as a function of incident + neutron energy. + - **delayed_photons** (:ref:`polynomial <1d_polynomial>`) -- Energy + released in the form of delayed photons as a function of incident + neutron energy. + - **betas** (:ref:`polynomial <1d_polynomial>`) -- Energy + released in the form of betas as a function of incident + neutron energy. + - **neutrinos** (:ref:`polynomial <1d_polynomial>`) -- Energy + released in the form of neutrinos as a function of incident + neutron energy. + - **q_prompt** (:ref:`polynomial <1d_polynomial>` or + :ref:`tabulated <1d_tabulated>`) -- The prompt fission Q-value + (fragments + prompt neutrons + prompt photons - incident energy) + - **q_recoverable** (:ref:`polynomial <1d_polynomial>` or + :ref:`tabulated <1d_tabulated>`) -- The recoverable fission Q-value + (Q_prompt + delayed neutrons + delayed photons + betas) ------------------------------- Thermal Neutron Scattering Data @@ -163,17 +172,19 @@ Tabulated :Object type: Dataset :Datatype: *double[2][]* :Description: x-values are listed first followed by corresponding y-values -:Attributes: - **type** (*char[]*) -- 'tabulated' +:Attributes: - **type** (*char[]*) -- 'Tabulated1D' - **breakpoints** (*int[]*) -- Region breakpoints - **interpolation** (*int[]*) -- Region interpolation codes +.. _1d_polynomial: + Polynomial ---------- :Object type: Dataset :Datatype: *double[]* :Description: Polynomial coefficients listed in order of increasing power -:Attributes: - **type** (*char[]*) -- 'polynomial' +:Attributes: - **type** (*char[]*) -- 'Polynomial' Coherent elastic scattering --------------------------- diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index 60cc435646..24743c19c5 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -4,11 +4,10 @@ import sys import h5py import numpy as np -from numpy.polynomial.polynomial import Polynomial from .data import ATOMIC_SYMBOL from .endf_utils import read_float, read_CONT_line, identify_nuclide -from .function import Tabulated1D, Sum +from .function import Function1D, Tabulated1D, Polynomial, Sum import openmc.checkvalue as cv if sys.version_info[0] >= 3: @@ -262,9 +261,6 @@ class FissionEnergyRelease(object): q_total : Callable Function of energy that returns the total fission Q-value (total release - incident neutron energy). - form : str - Format used to compute the energy-dependence of the data. Either - 'Sher-Beck' or 'Madland'. """ def __init__(self): @@ -275,7 +271,6 @@ class FissionEnergyRelease(object): self._delayed_photons = None self._betas = None self._neutrinos = None - self._form = None @property def fragments(self): @@ -328,10 +323,6 @@ class FissionEnergyRelease(object): @property def q_total(self): return Sum([self.total, lambda E: -E]) - - @property - def form(self): - return self._form @fragments.setter def fragments(self, energy_release): @@ -368,11 +359,6 @@ class FissionEnergyRelease(object): cv.check_type('neutrinos', energy_release, Callable) self._neutrinos = energy_release - @form.setter - def form(self, form): - cv.check_value('format', form, ('Madland', 'Sher-Beck')) - self._form = form - @classmethod def _from_dictionary(cls, energy_release, incident_neutron): """Generate fission energy release data from a dictionary. @@ -401,7 +387,6 @@ class FissionEnergyRelease(object): # energy dependence. Otherwise, it is a polynomial. n_coeffs = len(energy_release['EFR']) if n_coeffs > 1: - out.form = 'Madland' out.fragments = Polynomial(energy_release['EFR']) out.prompt_neutrons = Polynomial(energy_release['ENP']) out.delayed_neutrons = Polynomial(energy_release['END']) @@ -410,12 +395,9 @@ class FissionEnergyRelease(object): out.betas = Polynomial(energy_release['EB']) out.neutrinos = Polynomial(energy_release['ENU']) else: - out.form = 'Sher-Beck' - - # EFR and ENP are energy independent. Polynomial is used because it - # has a __call__ attribute that handles Iterable inputs. The - # energy-dependence of END is unspecified in ENDF-102 so assume it - # is independent. + # EFR and ENP are energy independent. Use 0-order polynomials to + # make a constant function. The energy-dependence of END is + # unspecified in ENDF-102 so assume it is independent. out.fragments = Polynomial((energy_release['EFR'][0])) out.prompt_photons = Polynomial((energy_release['EGP'][0])) out.delayed_neutrons = Polynomial((energy_release['END'][0])) @@ -580,41 +562,40 @@ class FissionEnergyRelease(object): """ - group.create_dataset('fragments', data=self.fragments.coef) - group.create_dataset('delayed_neutrons', - data=self.delayed_neutrons.coef) - group.create_dataset('prompt_photons', - data=self.prompt_photons.coef) - group.create_dataset('delayed_photons', - data=self.delayed_photons.coef) - group.create_dataset('betas', data=self.betas.coef) - group.create_dataset('neutrinos', data=self.neutrinos.coef) - - if self.form == 'Madland': - group.attrs['format'] = np.string_('Madland') - group.create_dataset('prompt_neutrons', - data=self.prompt_neutrons.coef) - + self.fragments.to_hdf5(group, 'fragments') + self.prompt_neutrons.to_hdf5(group, 'prompt_neutrons') + self.delayed_neutrons.to_hdf5(group, 'delayed_neutrons') + self.prompt_photons.to_hdf5(group, 'prompt_photons') + self.delayed_photons.to_hdf5(group, 'delayed_photons') + self.betas.to_hdf5(group, 'betas') + self.neutrinos.to_hdf5(group, 'neutrinos') + + if isinstance(self.prompt_neutrons, Polynomial): + # Add the polynomials for the relevant components together. Use a + # Polynomial((0.0, -1.0)) to subtract incident energy. q_prompt = (self.fragments + self.prompt_neutrons + self.prompt_photons + Polynomial((0.0, -1.0))) - group.create_dataset('q_prompt', data=q_prompt.coef) + q_prompt.to_hdf5(group, 'q_prompt') q_recoverable = (self.fragments + self.prompt_neutrons + self.delayed_neutrons + self.prompt_photons + self.delayed_photons + self.betas + Polynomial((0.0, -1.0))) - group.create_dataset('q_recoverable', data=q_recoverable.coef) - elif self.form == 'Sher-Beck': - group.attrs['format'] = np.string_('Sher-Beck') - self.prompt_neutrons.to_hdf5(group, 'prompt_neutrons') + q_recoverable.to_hdf5(group, 'q_recoverable') + elif isinstance(self.prompt_neutrons, Tabulated1D): + # Make a Tabulated1D and evaluate the polynomial components at the + # table x points to get new y points. Subtract x from y to remove + # incident energy. q_prompt = deepcopy(self.prompt_neutrons) q_prompt.y += self.fragments(q_prompt.x) q_prompt.y += self.prompt_photons(q_prompt.x) + q_prompt.y -= q_prompt.x q_prompt.to_hdf5(group, 'q_prompt') q_recoverable = q_prompt q_recoverable.y += self.delayed_neutrons(q_recoverable.x) q_recoverable.y += self.delayed_photons(q_recoverable.x) q_recoverable.y += self.betas(q_recoverable.x) q_recoverable.to_hdf5(group, 'q_recoverable') + else: raise ValueError('Unrecognized energy release format') diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 4fcbf3af85..f32a93030c 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -305,13 +305,13 @@ module nuclide_header hdf5_err) if (exists) then fer_group = open_group(group_id, 'fission_energy_release') - call read_attribute(temp, fer_group, 'format') - if (temp == 'Madland') then - ! The data uses the Madland format, i.e. polynomials + ! Check to see if this is polynomial or tabulated data + fer_dset = open_dataset(fer_group, 'q_prompt') + call read_attribute(temp, fer_dset, 'type') + if (temp == 'Polynomial') then ! Read the prompt Q-value allocate(Polynomial :: this % fission_q_prompt) - fer_dset = open_dataset(fer_group, 'q_prompt') call this % fission_q_prompt % from_hdf5(fer_dset) call close_dataset(fer_dset) @@ -320,13 +320,9 @@ module nuclide_header fer_dset = open_dataset(fer_group, 'q_recoverable') call this % fission_q_recov % from_hdf5(fer_dset) call close_dataset(fer_dset) - else if (temp == 'Sher-Beck') then - ! The data uses the Sher-Beck format. Python has handily converted this - ! format to Tabulated1Ds. - + else if (temp == 'Tabulated1D') then ! Read the prompt Q-value allocate(Tabulated1D :: this % fission_q_prompt) - fer_dset = open_dataset(fer_group, 'q_prompt') call this % fission_q_prompt % from_hdf5(fer_dset) call close_dataset(fer_dset) diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 818d99a92b..d018a65da9 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -a6e5480c66e6510687bf281983b3f387da45005bb08d8cd0aa629e53c5a42a1b2fa8d76345ad2df497d85f2b273fbc5edc36105a71a73c1107479ca0af8329f6 \ No newline at end of file +5a0f3f1ae244ada7d8c9f444d7a98c2589a9720e78174a276cf96162df6728bab6d534f136f65cb0386c3235eb7d5db47a0dd6504636ca77e7eb375e6978a84d \ No newline at end of file From b3c134e9bbef99e48261a18c8d665fdc58228d5a Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 8 Aug 2016 11:09:50 -0500 Subject: [PATCH 252/417] Update FissionEnergyRelease.from_hdf5 --- openmc/data/fission_energy.py | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index 24743c19c5..03d3ed84ed 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -495,22 +495,13 @@ class FissionEnergyRelease(object): obj = cls() - obj.fragments = Polynomial(group['fragments'].value) - obj.delayed_neutrons = Polynomial(group['delayed_neutrons'].value) - obj.prompt_photons = Polynomial(group['prompt_photons'].value) - obj.delayed_photons = Polynomial(group['delayed_photons'].value) - obj.betas = Polynomial(group['betas'].value) - obj.neutrinos = Polynomial(group['neutrinos'].value) - - if group.attrs['format'].decode() == 'Madland': - obj.form = 'Madland' - obj.prompt_neutrons = Polynomial(group['prompt_neutrons'].value) - elif group.attrs['format'].decode() == 'Sher-Beck': - obj.form = 'Sher-Beck' - obj.prompt_neutrons = Tabulated1D.from_hdf5( - group['prompt_neutrons']) - else: - raise ValueError('Unrecognized energy release format') + obj.fragments = Function1D.from_hdf5(group['fragments']) + obj.prompt_neutrons = Function1D.from_hdf5(group['prompt_neutrons']) + obj.delayed_neutrons = Function1D.from_hdf5(group['delayed_neutrons']) + obj.prompt_photons = Function1D.from_hdf5(group['prompt_photons']) + obj.delayed_photons = Function1D.from_hdf5(group['delayed_photons']) + obj.betas = Function1D.from_hdf5(group['betas']) + obj.neutrinos = Function1D.from_hdf5(group['neutrinos']) return obj From d8b9d78a23f76eb8d35b6d7b69ae8a6986f19e76 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 8 Aug 2016 06:49:24 -0500 Subject: [PATCH 253/417] Respond to comments on #692 and make a few little fixes --- openmc/data/ace.py | 2 +- openmc/data/function.py | 2 +- openmc/data/neutron.py | 6 +++++- openmc/data/thermal.py | 1 + scripts/openmc-ace-to-hdf5 | 12 +++++++++--- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/openmc/data/ace.py b/openmc/data/ace.py index 03052bcabc..4085b4222f 100644 --- a/openmc/data/ace.py +++ b/openmc/data/ace.py @@ -282,7 +282,7 @@ class Library(object): lines = [ace_file.readline() for i in range(13)] - while len(lines) != 0 and lines[0] != '': + while len(lines) != 0 and lines[0].strip() != '': # Read name of table, atomic mass ratio, and temperature. If first # line is empty, we are at end of file diff --git a/openmc/data/function.py b/openmc/data/function.py index bea6f5e9a6..56a3d4a45f 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -97,7 +97,7 @@ class Tabulated1D(object): if self.interpolation[k] == 1: # Histogram - y[contined] = yi + y[contained] = yi elif self.interpolation[k] == 2: # Linear-linear diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 75c38e823f..450cf81ec9 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -178,7 +178,7 @@ class IncidentNeutron(object): @temperature.setter def temperature(self, temperature): cv.check_type('temperature', temperature, Real) - cv.check_greater_than('temperature', temperature, 0.0) + cv.check_greater_than('temperature', temperature, 0.0, True) self._temperature = temperature @energy.setter @@ -448,6 +448,10 @@ class IncidentNeutron(object): # Create summed reaction with appropriate cross section rx = Reaction(mt) mts = data.get_reaction_components(mt) + if len(mts) == 0: + warn('Photon production is present for MT={} but no ' + 'reaction components exist.'.format(mt)) + continue rx.xs = Sum([data.reactions[mt_i].xs for mt_i in mts]) # Determine summed cross section diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 6e3f6d452a..9de39f518d 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -16,6 +16,7 @@ from openmc.stats import Discrete, Tabular _THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27', 'be': 'c_Be', + 'beo': 'c_BeO', 'bebeo': 'c_Be_in_BeO', 'be-o': 'c_Be_in_BeO', 'be/o': 'c_Be_in_BeO', 'benz': 'c_Benzine', 'cah': 'c_Ca_in_CaH2', diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 index 21a2718a59..c2198ec4fe 100755 --- a/scripts/openmc-ace-to-hdf5 +++ b/scripts/openmc-ace-to-hdf5 @@ -64,7 +64,9 @@ if args.xml is not None: directory = os.path.dirname(args.xml) for ace_table in root.findall('ace_table'): - ace_libraries.append(os.path.join(directory, ace_table.attrib['path'])) + path = os.path.join(directory, ace_table.attrib['path']) + if path not in ace_libraries: + ace_libraries.append(path) elif args.xsdir is not None: # Find 'directory' section @@ -116,8 +118,12 @@ for filename in ace_libraries: for table in lib.tables: if table.name.endswith('c'): # Continuous-energy neutron data - neutron = openmc.data.IncidentNeutron.from_ace( - table, args.metastable) + try: + neutron = openmc.data.IncidentNeutron.from_ace( + table, args.metastable) + except Exception as e: + print('Failed to convert {}: {}'.format(table.name, e)) + continue print('Converting {} (ACE) to {} (HDF5)'.format(table.name, neutron.name)) # Determine filename From 5b0ba57792aca84b8831d5f93fc9edb476a9b229 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 8 Aug 2016 11:23:00 -0500 Subject: [PATCH 254/417] Allow longer score names in statepoint files --- src/endf.F90 | 2 +- src/state_point.F90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/endf.F90 b/src/endf.F90 index 833082e1c7..07094d5d9b 100644 --- a/src/endf.F90 +++ b/src/endf.F90 @@ -14,7 +14,7 @@ contains pure function reaction_name(MT) result(string) integer, intent(in) :: MT - character(20) :: string + character(MAX_WORD_LEN) :: string select case (MT) ! Special reactions for tallies diff --git a/src/state_point.F90 b/src/state_point.F90 index abe034897a..39532652f1 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -51,7 +51,7 @@ contains integer(HID_T) :: file_id integer(HID_T) :: cmfd_group, tallies_group, tally_group, meshes_group, & mesh_group, filter_group, runtime_group - character(20), allocatable :: str_array(:) + character(MAX_WORD_LEN), allocatable :: str_array(:) character(MAX_FILE_LEN) :: filename type(RegularMesh), pointer :: meshp type(TallyObject), pointer :: tally From 7d23e09710387b0479cccf62eb1117f5c7e11b9f Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 8 Aug 2016 12:51:30 -0500 Subject: [PATCH 255/417] Update Travis data --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 30708de36a..173af7602c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,7 +42,7 @@ install: true before_script: - if [[ ! -e $HOME/nndc_hdf5/cross_sections.xml ]]; then - wget https://anl.box.com/shared/static/6pwyfjnufam0sb96kqwwrve6vdn8m7u4.xz -O - | tar -C $HOME -xvJ; + wget https://anl.box.com/shared/static/dqkwdl7o4lauo91h3mgrn9qno6a3c8mp.xz -O - | tar -C $HOME -xvJ; fi - export OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml From a5763ae599eb082daf170d29ab99dbe7fa537ef9 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 8 Aug 2016 15:27:46 -0500 Subject: [PATCH 256/417] Refactor volume calculation to allow material/universe volumes as well --- openmc/cell.py | 11 +- openmc/geometry.py | 7 +- openmc/volume.py | 101 ++++++---- src/relaxng/settings.rnc | 6 +- src/relaxng/settings.rng | 16 +- src/volume_calc.F90 | 209 ++++++++++++++------- src/volume_header.F90 | 31 ++- tests/test_volume_calc/inputs_true.dat | 2 +- tests/test_volume_calc/results_true.dat | 24 ++- tests/test_volume_calc/test_volume_calc.py | 31 +-- 10 files changed, 298 insertions(+), 140 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index c4a0952e91..fe8b4a52cd 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -369,10 +369,13 @@ class Cell(object): Results from a stochastic volume calculation """ - for cell_id in volume_calc.results: - if cell_id == self.id: - self._volume_information = volume_calc.results[cell_id] - break + if volume_calc.domain_type == 'cell': + for cell_id in volume_calc.results: + if cell_id == self.id: + self._volume_information = volume_calc.results[cell_id] + break + else: + raise ValueError('No volume information found for this cell.') else: raise ValueError('No volume information found for this cell.') diff --git a/openmc/geometry.py b/openmc/geometry.py index c827f4b2a7..b2a9b5e4aa 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -59,9 +59,10 @@ class Geometry(object): Results from a stochastic volume calculation """ - for cell in self.get_all_cells(): - if cell.id in volume_calc.results: - cell.add_volume_information(volume_calc) + if volume_calc.domain_type == 'cell': + for cell in self.get_all_cells(): + if cell.id in volume_calc.results: + cell.add_volume_information(volume_calc) def export_to_xml(self): """Create a geometry.xml file that can be used for a simulation. diff --git a/openmc/volume.py b/openmc/volume.py index 167971bdbd..e9b1dac1d3 100644 --- a/openmc/volume.py +++ b/openmc/volume.py @@ -5,7 +5,7 @@ from xml.etree import ElementTree as ET import numpy as np import pandas as pd -from openmc import Cell, Union +import openmc import openmc.checkvalue as cv @@ -14,8 +14,8 @@ class VolumeCalculation(object): Parameters ---------- - cells : Iterable of Cell - Cells to find volumes of + domains : Iterable of openmc.Cell, openmc.Material, or openmc.Universe + Domains to find volumes of samples : int Number of samples used to generate volume estimates lower_left : Iterable of float @@ -29,8 +29,10 @@ class VolumeCalculation(object): Attributes ---------- - cell_ids : Iterable of int - IDs of cells to find volumes of + ids : Iterable of int + IDs of domains to find volumes of + domain_type : {'cell', 'material', 'universe'} + Type of each domain samples : int Number of samples used to generate volume estimates lower_left : Iterable of float @@ -38,23 +40,31 @@ class VolumeCalculation(object): upper_right : Iterable of float Upper-right coordinates of bounding box used to sample points results : dict - Dictionary whose keys are unique IDs of cells and values are + Dictionary whose keys are unique IDs of domains and values are dictionaries with calculated volumes and total number of atoms for each - nuclide present in the cell. + nuclide present in the domain. volumes : dict - Dictionary whose keys are unique IDs of cells and values are the + Dictionary whose keys are unique IDs of domains and values are the estimated volumes atoms_dataframe : pandas.DataFrame DataFrame showing the estimated number of atoms for each nuclide present - in each cell specified. + in each domain specified. """ - def __init__(self, cells, samples, lower_left=None, + def __init__(self, domains, samples, lower_left=None, upper_right=None): self._results = None - cv.check_type('cells', cells, Iterable, Cell) - self.cell_ids = [c.id for c in cells] + cv.check_type('domains', domains, Iterable, + (openmc.Cell, openmc.Material, openmc.Universe)) + if isinstance(domains[0], openmc.Cell): + self._domain_type = 'cell' + elif isinstance(domains[0], openmc.Material): + self._domain_type = 'material' + elif isinstance(domains[0], openmc.Universe): + self._domain_type = 'universe' + self.ids = [d.id for d in domains] + self.samples = samples if lower_left is not None: @@ -64,17 +74,21 @@ class VolumeCalculation(object): 'should be specified') self.upper_right = upper_right else: - ll, ur = Union(*[c.region for c in cells]).bounding_box - if np.any(np.isinf(ll)) or np.any(np.isinf(ur)): + if self.domain_type == 'cell': + ll, ur = openmc.Union(*[c.region for c in domains]).bounding_box + if np.any(np.isinf(ll)) or np.any(np.isinf(ur)): + raise ValueError('Could not automatically determine bounding ' + 'box for stochastic volume calculation.') + else: + self.lower_left = ll + self.upper_right = ur + else: raise ValueError('Could not automatically determine bounding box ' 'for stochastic volume calculation.') - else: - self.lower_left = ll - self.upper_right = ur @property - def cell_ids(self): - return self._cell_ids + def ids(self): + return self._ids @property def samples(self): @@ -92,6 +106,10 @@ class VolumeCalculation(object): def results(self): return self._results + @property + def domain_type(self): + return self._domain_type + @property def volumes(self): return {uid: results['volume'] for uid, results in self.results.items()} @@ -99,17 +117,18 @@ class VolumeCalculation(object): @property def atoms_dataframe(self): items = [] - columns = ['Cell', 'Nuclide', 'Atoms', 'Uncertainty'] - for cell_id, results in self.results.items(): + columns = [self.domain_type.capitalize(), 'Nuclide', 'Atoms', + 'Uncertainty'] + for uid, results in self.results.items(): for name, atoms in results['atoms']: - items.append((cell_id, name, atoms[0], atoms[1])) + items.append((uid, name, atoms[0], atoms[1])) return pd.DataFrame.from_records(items, columns=columns) - @cell_ids.setter - def cell_ids(self, cell_ids): - cv.check_type('cell IDs', cell_ids, Iterable, Real) - self._cell_ids = cell_ids + @ids.setter + def ids(self, ids): + cv.check_type('domain IDs', ids, Iterable, Real) + self._ids = ids @samples.setter def samples(self, samples): @@ -154,16 +173,17 @@ class VolumeCalculation(object): import h5py with h5py.File(filename, 'r') as f: + domain_type = f.attrs['domain_type'].decode() samples = f.attrs['samples'] lower_left = f.attrs['lower_left'] upper_right = f.attrs['upper_right'] results = {} - cell_ids = [] + ids = [] for obj_name in f: - if obj_name.startswith('cell_'): - cell_id = int(obj_name[5:]) - cell_ids.append(cell_id) + if obj_name.startswith('domain_'): + domain_id = int(obj_name[7:]) + ids.append(domain_id) group = f[obj_name] volume = tuple(group['volume'].value) nucnames = group['nuclides'].value @@ -172,14 +192,19 @@ class VolumeCalculation(object): atom_list = [] for name_i, atoms_i in zip(nucnames, atoms): atom_list.append((name_i.decode(), tuple(atoms_i))) - results[cell_id] = {'volume': volume, 'atoms': atom_list} + results[domain_id] = {'volume': volume, 'atoms': atom_list} - # Instantiate some throw-away cells that are used by the constructor to - # assign IDs - cells = [Cell(uid) for uid in cell_ids] + # Instantiate some throw-away domains that are used by the constructor + # to assign IDs + if domain_type == 'cell': + domains = [openmc.Cell(uid) for uid in ids] + elif domain_type == 'material': + domains = [openmc.Material(uid) for uid in ids] + elif domain_type == 'universe': + domains = [openmc.Universe(uid) for uid in ids] # Instantiate the class and assign results - vol = cls(cells, samples, lower_left, upper_right) + vol = cls(domains, samples, lower_left, upper_right) vol.results = results return vol @@ -193,8 +218,10 @@ class VolumeCalculation(object): """ element = ET.Element("volume_calc") - cell_elem = ET.SubElement(element, "cells") - cell_elem.text = ' '.join(str(uid) for uid in self.cell_ids) + dt_elem = ET.SubElement(element, "domain_type") + dt_elem.text = self.domain_type + id_elem = ET.SubElement(element, "domain_ids") + id_elem.text = ' '.join(str(uid) for uid in self.ids) samples_elem = ET.SubElement(element, "samples") samples_elem.text = str(self.samples) ll_elem = ET.SubElement(element, "lower_left") diff --git a/src/relaxng/settings.rnc b/src/relaxng/settings.rnc index 78a32171b9..e23cbdd6cd 100644 --- a/src/relaxng/settings.rnc +++ b/src/relaxng/settings.rnc @@ -143,8 +143,10 @@ element settings { element verbosity { xsd:positiveInteger }? & element volume_calc { - (element cells { list { xsd:positiveInteger+ } } | - attribute cells { list { xsd:positiveInteger+ } }) & + (element domain_type { xsd:string } | + attribute domain_type { xsd:string }) & + (element domain_ids { list { xsd:integer+ } } | + attribute domain_ids { list { xsd:integer+ } }) & (element samples { xsd:positiveInteger } | attribute samples { xsd:positiveInteger }) & (element lower_left { list { xsd:double+ } } | diff --git a/src/relaxng/settings.rng b/src/relaxng/settings.rng index 64fe42239d..38acea5985 100644 --- a/src/relaxng/settings.rng +++ b/src/relaxng/settings.rng @@ -629,17 +629,25 @@ - + + + + + + + + + - + - + - + diff --git a/src/volume_calc.F90 b/src/volume_calc.F90 index eac96f9ba7..03e241a66b 100644 --- a/src/volume_calc.F90 +++ b/src/volume_calc.F90 @@ -9,7 +9,7 @@ module volume_calc use geometry, only: find_cell use global use hdf5_interface, only: file_create, file_close, write_attribute, & - create_group, close_group, write_dataset + create_group, close_group, write_dataset, write_attribute_string use output, only: write_message, header use message_passing use particle_header, only: Particle @@ -33,7 +33,8 @@ contains subroutine run_volume_calculations() integer :: i, j integer :: n - real(8), allocatable :: volume(:,:) ! volume mean/stdev in each cell + real(8), allocatable :: volume(:,:) ! volume mean/stdev in each domain + character(10) :: domain_type character(MAX_FILE_LEN) :: filename ! filename for HDF5 file type(Timer) :: time_volume ! timer for volume calculation type(VectorInt), allocatable :: nuclide_vec(:) ! indices in nuclides array @@ -46,7 +47,7 @@ contains end if do i = 1, size(volume_calcs) - n = size(volume_calcs(i) % cell_id) + n = size(volume_calcs(i) % domain_id) allocate(nuclide_vec(n)) allocate(atoms_vec(n), uncertainty_vec(n)) allocate(volume(2,n)) @@ -60,11 +61,20 @@ contains uncertainty_vec) if (master) then - ! Display cell volumes - do j = 1, size(volume_calcs(i) % cell_id) - call write_message(" Cell " // trim(to_str(volume_calcs(i) % & - cell_id(j))) // ": " // trim(to_str(volume(1,j))) // " +/- " // & - trim(to_str(volume(2,j))) // " cm^3") + select case (volume_calcs(i) % domain_type) + case (FILTER_CELL) + domain_type = ' Cell' + case (FILTER_MATERIAL) + domain_type = ' Material' + case (FILTER_UNIVERSE) + domain_type = ' Universe' + end select + + ! Display domain volumes + do j = 1, size(volume_calcs(i) % domain_id) + call write_message(trim(domain_type) // " " // trim(to_str(& + volume_calcs(i) % domain_id(j))) // ": " // trim(to_str(& + volume(1,j))) // " +/- " // trim(to_str(volume(2,j))) // " cm^3") end do call write_message("") @@ -85,13 +95,13 @@ contains end subroutine run_volume_calculations !=============================================================================== -! GET_VOLUME stochastically determines the volume of a set of cells along with -! the average number densities of nuclides within the cell +! GET_VOLUME stochastically determines the volume of a set of domains along with +! the average number densities of nuclides within the domain !=============================================================================== subroutine get_volume(this, volume, nuclide_vec, atoms_vec, uncertainty_vec) type(VolumeCalculation), intent(in) :: this - real(8), intent(out) :: volume(:,:) ! volume mean/stdev in each cell + real(8), intent(out) :: volume(:,:) ! volume mean/stdev in each domain type(VectorInt), intent(out) :: nuclide_vec(:) ! indices in nuclides array type(VectorReal), intent(out) :: atoms_vec(:) ! total # of atoms of each nuclide type(VectorReal), intent(out) :: uncertainty_vec(:) ! uncertainty of total # of atoms @@ -99,22 +109,22 @@ contains ! Variables that are private to each thread integer(8) :: i integer :: j, k - integer :: i_cell ! index in cell_id array + integer :: i_domain ! index in domain_id array integer :: i_material ! index in materials array integer :: level ! local coordinate level logical :: found_cell - type(VectorInt) :: indices(size(this % cell_id)) ! List of material indices - type(VectorInt) :: hits(size(this % cell_id)) ! Number of hits for each material + type(VectorInt) :: indices(size(this % domain_id)) ! List of material indices + type(VectorInt) :: hits(size(this % domain_id)) ! Number of hits for each material type(Particle) :: p ! Shared variables integer :: i_start, i_end ! Starting/ending sample for each process - type(VectorInt) :: master_indices(size(this % cell_id)) - type(VectorInt) :: master_hits(size(this % cell_id)) + type(VectorInt) :: master_indices(size(this % domain_id)) + type(VectorInt) :: master_hits(size(this % domain_id)) ! Variables used outside of parallel region integer :: i_nuclide ! index in nuclides array - integer :: total_hits ! total hits for a single cell (summed over materials) + integer :: total_hits ! total hits for a single domain (summed over materials) integer :: min_samples ! minimum number of samples per process integer :: remainder ! leftover samples from uneven divide #ifdef MPI @@ -140,15 +150,15 @@ contains call p % initialize() -!$omp parallel private(i, j, k, i_cell, i_material, level, found_cell, & +!$omp parallel private(i, j, k, i_domain, i_material, level, found_cell, & !$omp& indices, hits) firstprivate(p) ! Reset vectors -- this is really to get around a gfortran 4.6 bug. Ideally, ! indices and hits would just be firstprivate but 4.6 complains because they ! have allocatable components... - do i_cell = 1, size(this % cell_id) - call indices(i_cell) % clear() - call hits(i_cell) % clear() + do i_domain = 1, size(this % domain_id) + call indices(i_domain) % clear() + call hits(i_domain) % clear() end do call prn_set_stream(STREAM_VOLUME) @@ -174,32 +184,89 @@ contains call find_cell(p, found_cell) if (.not. found_cell) cycle - ! Determine if point is within desired cell - LEVEL_LOOP: do level = 1, p % n_coord - CELL_CHECK_LOOP: do i_cell = 1, size(this % cell_id) - if (cells(p % coord(level) % cell) % id == this % cell_id(i_cell)) then - - ! Determine what material this is - i_material = p % material + if (this % domain_type == FILTER_MATERIAL) then + ! ====================================================================== + ! MATERIAL VOLUME + i_material = p % material + MATERIAL_LOOP: do i_domain = 1, size(this % domain_id) + if (i_material == materials(i_domain) % id) then ! Check if we've already had a hit in this material and if so, ! simply add one - do j = 1, indices(i_cell) % size() - if (indices(i_cell) % data(j) == i_material) then - hits(i_cell) % data(j) = hits(i_cell) % data(j) + 1 - cycle CELL_CHECK_LOOP + do j = 1, indices(i_domain) % size() + if (indices(i_domain) % data(j) == i_material) then + hits(i_domain) % data(j) = hits(i_domain) % data(j) + 1 + cycle MATERIAL_LOOP end if end do ! If we make it here, that means we haven't yet had a hit in this ! material. Add an entry to both the indices list and the hits list - call indices(i_cell) % push_back(i_material) - call hits(i_cell) % push_back(1) + call indices(i_domain) % push_back(i_material) + call hits(i_domain) % push_back(1) end if - end do CELL_CHECK_LOOP - end do LEVEL_LOOP + end do MATERIAL_LOOP + + elseif (this % domain_type == FILTER_CELL) THEN + ! ====================================================================== + ! CELL VOLUME + + do level = 1, p % n_coord + CELL_LOOP: do i_domain = 1, size(this % domain_id) + if (cells(p % coord(level) % cell) % id == this % domain_id(i_domain)) then + + ! Determine what material this is + i_material = p % material + + ! Check if we've already had a hit in this material and if so, + ! simply add one + do j = 1, indices(i_domain) % size() + if (indices(i_domain) % data(j) == i_material) then + hits(i_domain) % data(j) = hits(i_domain) % data(j) + 1 + cycle CELL_LOOP + end if + end do + + ! If we make it here, that means we haven't yet had a hit in this + ! material. Add an entry to both the indices list and the hits list + call indices(i_domain) % push_back(i_material) + call hits(i_domain) % push_back(1) + end if + end do CELL_LOOP + end do + + elseif (this % domain_type == FILTER_UNIVERSE) then + ! ====================================================================== + ! UNIVERSE VOLUME + + do level = 1, p % n_coord + UNIVERSE_LOOP: do i_domain = 1, size(this % domain_id) + if (universes(p % coord(level) % universe) % id == & + this % domain_id(i_domain)) then + + ! Determine what material this is + i_material = p % material + + ! Check if we've already had a hit in this material and if so, + ! simply add one + do j = 1, indices(i_domain) % size() + if (indices(i_domain) % data(j) == i_material) then + hits(i_domain) % data(j) = hits(i_domain) % data(j) + 1 + cycle UNIVERSE_LOOP + end if + end do + + ! If we make it here, that means we haven't yet had a hit in this + ! material. Add an entry to both the indices list and the hits list + call indices(i_domain) % push_back(i_material) + call hits(i_domain) % push_back(1) + end if + end do UNIVERSE_LOOP + end do + + end if end do SAMPLE_LOOP - !$omp end do +!$omp end do ! ========================================================================== ! REDUCE HITS ONTO MASTER THREAD @@ -212,14 +279,14 @@ contains !$omp do ordered schedule(static) THREAD_LOOP: do i = 1, omp_get_num_threads() !$omp ordered - do i_cell = 1, size(this % cell_id) - INDEX_LOOP: do j = 1, indices(i_cell) % size() + do i_domain = 1, size(this % domain_id) + INDEX_LOOP: do j = 1, indices(i_domain) % size() ! Check if this material has been added to the master list and if so, ! accumulate the number of hits - do k = 1, master_indices(i_cell) % size() - if (indices(i_cell) % data(j) == master_indices(i_cell) % data(k)) then - master_hits(i_cell) % data(k) = & - master_hits(i_cell) % data(k) + hits(i_cell) % data(j) + do k = 1, master_indices(i_domain) % size() + if (indices(i_domain) % data(j) == master_indices(i_domain) % data(k)) then + master_hits(i_domain) % data(k) = & + master_hits(i_domain) % data(k) + hits(i_domain) % data(j) cycle INDEX_LOOP end if end do @@ -227,8 +294,8 @@ contains ! If we made it here, this means the material hasn't yet been added to ! the master list, so add an entry to both the master indices and master ! hits lists - call master_indices(i_cell) % push_back(indices(i_cell) % data(j)) - call master_hits(i_cell) % push_back(hits(i_cell) % data(j)) + call master_indices(i_domain) % push_back(indices(i_domain) % data(j)) + call master_hits(i_domain) % push_back(hits(i_domain) % data(j)) end do INDEX_LOOP end do !$omp end ordered @@ -247,7 +314,7 @@ contains volume_sample = product(this % upper_right - this % lower_left) - do i_cell = 1, size(this % cell_id) + do i_domain = 1, size(this % domain_id) atoms(:, :) = ZERO total_hits = 0 @@ -261,9 +328,9 @@ contains call MPI_RECV(data, 2*n, MPI_INTEGER, j, 1, MPI_COMM_WORLD, & MPI_STATUS_IGNORE, mpi_err) do k = 0, n - 1 - do m = 1, master_indices(i_cell) % size() - if (data(2*k + 1) == master_indices(i_cell) % data(m)) then - master_hits(i_cell) % data(m) = master_hits(i_cell) % data(m) + & + do m = 1, master_indices(i_domain) % size() + if (data(2*k + 1) == master_indices(i_domain) % data(m)) then + master_hits(i_domain) % data(m) = master_hits(i_domain) % data(m) + & data(2*k + 2) end if end do @@ -272,12 +339,12 @@ contains end do #endif - do j = 1, master_indices(i_cell) % size() - total_hits = total_hits + master_hits(i_cell) % data(j) - f = real(master_hits(i_cell) % data(j), 8) / this % samples + do j = 1, master_indices(i_domain) % size() + total_hits = total_hits + master_hits(i_domain) % data(j) + f = real(master_hits(i_domain) % data(j), 8) / this % samples var_f = f*(ONE - f) / this % samples - i_material = master_indices(i_cell) % data(j) + i_material = master_indices(i_domain) % data(j) if (i_material == MATERIAL_VOID) cycle associate (mat => materials(i_material)) @@ -293,9 +360,9 @@ contains end do ! Determine volume - volume(1, i_cell) = real(total_hits, 8) / this % samples * volume_sample - volume(2, i_cell) = sqrt(volume(1, i_cell) * (volume_sample - & - volume(1, i_cell)) / this % samples) + volume(1, i_domain) = real(total_hits, 8) / this % samples * volume_sample + volume(2, i_domain) = sqrt(volume(1, i_domain) * (volume_sample - & + volume(1, i_domain)) / this % samples) ! Determine total number of atoms. At this point, we have values in ! atoms/b-cm. To get to atoms we multiple by 10^24 V. @@ -307,19 +374,19 @@ contains ! Convert full arrays to vectors do j = 1, size(nuclides) if (atoms(1, j) > ZERO) then - call nuclide_vec(i_cell) % push_back(j) - call atoms_vec(i_cell) % push_back(atoms(1, j)) - call uncertainty_vec(i_cell) % push_back(atoms(2, j)) + call nuclide_vec(i_domain) % push_back(j) + call atoms_vec(i_domain) % push_back(atoms(1, j)) + call uncertainty_vec(i_domain) % push_back(atoms(2, j)) end if end do else #ifdef MPI - n = master_indices(i_cell) % size() + n = master_indices(i_domain) % size() allocate(data(2*n)) do k = 0, n - 1 - data(2*k + 1) = master_indices(i_cell) % data(k + 1) - data(2*k + 2) = master_hits(i_cell) % data(k + 1) + data(2*k + 1) = master_indices(i_domain) % data(k + 1) + data(2*k + 2) = master_hits(i_domain) % data(k + 1) end do call MPI_SEND(n, 1, MPI_INTEGER, 0, 0, MPI_COMM_WORLD, mpi_err) @@ -340,7 +407,7 @@ contains uncertainty_vec) type(VolumeCalculation), intent(in) :: this character(*), intent(in) :: filename ! filename for HDF5 file - real(8), intent(in) :: volume(:,:) ! volume mean/stdev in each cell + real(8), intent(in) :: volume(:,:) ! volume mean/stdev in each domain type(VectorInt), intent(in) :: nuclide_vec(:) ! indices in nuclides array type(VectorReal), intent(in) :: atoms_vec(:) ! total # of atoms of each nuclide type(VectorReal), intent(in) :: uncertainty_vec(:) ! uncertainty of total # of atoms @@ -357,15 +424,23 @@ contains file_id = file_create(filename) ! Write basic metadata + select case (this % domain_type) + case (FILTER_CELL) + call write_attribute_string(file_id, ".", "domain_type", "cell") + case (FILTER_MATERIAL) + call write_attribute_string(file_id, ".", "domain_type", "material") + case (FILTER_UNIVERSE) + call write_attribute_string(file_id, ".", "domain_type", "universe") + end select call write_attribute(file_id, "samples", this % samples) call write_attribute(file_id, "lower_left", this % lower_left) call write_attribute(file_id, "upper_right", this % upper_right) - do i = 1, size(this % cell_id) - group_id = create_group(file_id, "cell_" // trim(to_str(& - this % cell_id(i)))) + do i = 1, size(this % domain_id) + group_id = create_group(file_id, "domain_" // trim(to_str(& + this % domain_id(i)))) - ! Write volume for cell + ! Write volume for domain call write_dataset(group_id, "volume", volume(:, i)) ! Create array of nuclide names from the vector diff --git a/src/volume_header.F90 b/src/volume_header.F90 index 3a34f1231a..c70345f155 100644 --- a/src/volume_header.F90 +++ b/src/volume_header.F90 @@ -1,12 +1,14 @@ module volume_header - use error, only: fatal_error + use constants, only: FILTER_CELL, FILTER_MATERIAL, FILTER_UNIVERSE + use error, only: fatal_error use xml_interface implicit none type VolumeCalculation - integer, allocatable :: cell_id(:) + integer :: domain_type + integer, allocatable :: domain_id(:) real(8) :: lower_left(3) real(8) :: upper_right(3) integer :: samples @@ -20,16 +22,31 @@ contains class(VolumeCalculation), intent(out) :: this type(Node), pointer :: node_vol - integer :: num_cells + integer :: num_domains + character(10) :: temp_str + + ! Check domain type + call get_node_value(node_vol, "domain_type", temp_str) + select case (temp_str) + case ('cell') + this % domain_type = FILTER_CELL + case ('material') + this % domain_type = FILTER_MATERIAL + case ('universe') + this % domain_type = FILTER_UNIVERSE + case default + call fatal_error("Unrecognized domain type for stochastic volume & + &calculation: " // trim(temp_str)) + end select ! Read cell IDs - if (check_for_node(node_vol, "cells")) then - num_cells = get_arraysize_integer(node_vol, "cells") + if (check_for_node(node_vol, "domain_ids")) then + num_domains = get_arraysize_integer(node_vol, "domain_ids") else call fatal_error("Must specify at least one cell for a volume calculation") end if - allocate(this % cell_id(num_cells)) - call get_node_array(node_vol, "cells", this % cell_id) + allocate(this % domain_id(num_domains)) + call get_node_array(node_vol, "domain_ids", this % domain_id) ! Read lower-left and upper-right bounding coordinates call get_node_array(node_vol, "lower_left", this % lower_left) diff --git a/tests/test_volume_calc/inputs_true.dat b/tests/test_volume_calc/inputs_true.dat index 2a3f25e6d0..e146703f31 100644 --- a/tests/test_volume_calc/inputs_true.dat +++ b/tests/test_volume_calc/inputs_true.dat @@ -1 +1 @@ -b2de6ac20ca2ca38b00d61adae707d05519f6130eea25ab050220bac005cb6d23fa5812bf876307e92e90a8806f0b371500c5611ab23f80b7c073f118eb31649 \ No newline at end of file +102569289552d021b6803f404a0c17a9c17a40578fdba43a6ba08b77a731e0368fffa6a8a7abd48555167cb9997c6dba9ec5044c8593b12056957b7e3ec44ed0 \ No newline at end of file diff --git a/tests/test_volume_calc/results_true.dat b/tests/test_volume_calc/results_true.dat index e7a39a9312..da6dfd2afc 100644 --- a/tests/test_volume_calc/results_true.dat +++ b/tests/test_volume_calc/results_true.dat @@ -1,7 +1,8 @@ k-combined: 4.165451e-02 3.582531e-04 -Cell 1: 31.4693 +/- 0.0721 cm^3 -Cell 2: 2.0933 +/- 0.0310 cm^3 -Cell 3: 2.0486 +/- 0.0307 cm^3 +Volume calculation 0 +Domain 1: 31.4693 +/- 0.0721 cm^3 +Domain 2: 2.0933 +/- 0.0310 cm^3 +Domain 3: 2.0486 +/- 0.0307 cm^3 Cell Nuclide Atoms Uncertainty 0 1 U235.71c 3.481769e+23 7.979991e+20 1 1 Mo99.71c 3.481769e+22 7.979991e+19 @@ -11,3 +12,20 @@ Cell 3: 2.0486 +/- 0.0307 cm^3 5 3 H1.71c 1.369920e+23 2.051689e+21 6 3 O16.71c 6.849599e+22 1.025844e+21 7 3 B10.71c 6.849599e+18 1.025844e+17 +Volume calculation 1 +Domain 1: 4.1419 +/- 0.0426 cm^3 +Domain 2: 31.4693 +/- 0.0721 cm^3 + Material Nuclide Atoms Uncertainty +0 1 H1.71c 2.769690e+23 2.850068e+21 +1 1 O16.71c 1.384845e+23 1.425034e+21 +2 1 B10.71c 1.384845e+19 1.425034e+17 +3 2 U235.71c 3.481769e+23 7.979991e+20 +4 2 Mo99.71c 3.481769e+22 7.979991e+19 +Volume calculation 2 +Domain 0: 35.6112 +/- 0.0664 cm^3 + Universe Nuclide Atoms Uncertainty +0 0 H1.71c 2.769690e+23 2.850068e+21 +1 0 O16.71c 1.384845e+23 1.425034e+21 +2 0 B10.71c 1.384845e+19 1.425034e+17 +3 0 U235.71c 3.481769e+23 7.979991e+20 +4 0 Mo99.71c 3.481769e+22 7.979991e+19 diff --git a/tests/test_volume_calc/test_volume_calc.py b/tests/test_volume_calc/test_volume_calc.py index a6d779a25a..e2c3eba797 100644 --- a/tests/test_volume_calc/test_volume_calc.py +++ b/tests/test_volume_calc/test_volume_calc.py @@ -1,6 +1,7 @@ #!/usr/bin/env python import os +import glob import sys sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness @@ -43,9 +44,12 @@ class VolumeTest(PyAPITestHarness): geometry.export_to_xml() # Set up stochastic volume calculation - vol_calc = openmc.VolumeCalculation( - [inside_cyl, top_hemisphere, bottom_hemisphere], - 100000) + ll, ur = openmc.Union(*[c.region for c in root.cells.values()]).bounding_box + vol_calcs = [ + openmc.VolumeCalculation(list(root.cells.values()), 100000), + openmc.VolumeCalculation([water, fuel], 100000, ll, ur), + openmc.VolumeCalculation([root], 100000, ll, ur) + ] # Define settings settings = openmc.Settings() @@ -54,7 +58,7 @@ class VolumeTest(PyAPITestHarness): settings.inactive = 0 settings.source = openmc.Source(space=openmc.stats.Box( [-1., -1., -5.], [1., 1., 5.])) - settings.volume_calculations = vol_calc + settings.volume_calculations = vol_calcs settings.export_to_xml() def _get_results(self): @@ -65,15 +69,18 @@ class VolumeTest(PyAPITestHarness): # Write out k-combined. outstr = 'k-combined: {:12.6e} {:12.6e}\n'.format(*sp.k_combined) - # Read volume calculation results - vol = openmc.VolumeCalculation.from_hdf5( - os.path.join(os.getcwd(), 'volume_1.h5')) + for i, filename in enumerate(sorted(glob.glob(os.path.join( + os.getcwd(), 'volume_*.h5')))): + outstr += 'Volume calculation {}\n'.format(i) - # Write cell volumes and total # of atoms for each nuclide - for cell_id, results in sorted(vol.results.items()): - outstr += 'Cell {0}: {1[0]:.4f} +/- {1[1]:.4f} cm^3\n'.format( - cell_id, results['volume']) - outstr += str(vol.atoms_dataframe) + '\n' + # Read volume calculation results + vol = openmc.VolumeCalculation.from_hdf5(filename) + + # Write cell volumes and total # of atoms for each nuclide + for uid, results in sorted(vol.results.items()): + outstr += 'Domain {0}: {1[0]:.4f} +/- {1[1]:.4f} cm^3\n'.format( + uid, results['volume']) + outstr += str(vol.atoms_dataframe) + '\n' return outstr From f85bf914d9013b4109fc377da736a7ce134f3cba Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 9 Aug 2016 09:44:30 -0500 Subject: [PATCH 257/417] Refactor get_volume to not use VectorInt within !$omp parallel --- src/volume_calc.F90 | 163 ++++++++++++++++++++++---------------------- 1 file changed, 83 insertions(+), 80 deletions(-) diff --git a/src/volume_calc.F90 b/src/volume_calc.F90 index 03e241a66b..22647c4da9 100644 --- a/src/volume_calc.F90 +++ b/src/volume_calc.F90 @@ -112,9 +112,10 @@ contains integer :: i_domain ! index in domain_id array integer :: i_material ! index in materials array integer :: level ! local coordinate level + integer :: n_mat(size(this % domain_id)) ! Number of materials for each domain + integer, allocatable :: indices(:,:) ! List of material indices for each domain + integer, allocatable :: hits(:,:) ! Number of hits for each material in each domain logical :: found_cell - type(VectorInt) :: indices(size(this % domain_id)) ! List of material indices - type(VectorInt) :: hits(size(this % domain_id)) ! Number of hits for each material type(Particle) :: p ! Shared variables @@ -123,10 +124,10 @@ contains type(VectorInt) :: master_hits(size(this % domain_id)) ! Variables used outside of parallel region - integer :: i_nuclide ! index in nuclides array - integer :: total_hits ! total hits for a single domain (summed over materials) + integer :: i_nuclide ! index in nuclides array + integer :: total_hits ! total hits for a single domain (summed over materials) integer :: min_samples ! minimum number of samples per process - integer :: remainder ! leftover samples from uneven divide + integer :: remainder ! leftover samples from uneven divide #ifdef MPI integer :: m ! index over materials integer :: n ! number of materials @@ -151,15 +152,12 @@ contains call p % initialize() !$omp parallel private(i, j, k, i_domain, i_material, level, found_cell, & -!$omp& indices, hits) firstprivate(p) +!$omp& indices, hits, n_mat) firstprivate(p) - ! Reset vectors -- this is really to get around a gfortran 4.6 bug. Ideally, - ! indices and hits would just be firstprivate but 4.6 complains because they - ! have allocatable components... - do i_domain = 1, size(this % domain_id) - call indices(i_domain) % clear() - call hits(i_domain) % clear() - end do + ! Create space for material indices and number of hits for each + allocate(indices(size(this % domain_id), 8)) + allocate(hits(size(this % domain_id), 8)) + n_mat(:) = 0 call prn_set_stream(STREAM_VOLUME) @@ -185,83 +183,32 @@ contains if (.not. found_cell) cycle if (this % domain_type == FILTER_MATERIAL) then - ! ====================================================================== - ! MATERIAL VOLUME - i_material = p % material - MATERIAL_LOOP: do i_domain = 1, size(this % domain_id) + do i_domain = 1, size(this % domain_id) if (i_material == materials(i_domain) % id) then - ! Check if we've already had a hit in this material and if so, - ! simply add one - do j = 1, indices(i_domain) % size() - if (indices(i_domain) % data(j) == i_material) then - hits(i_domain) % data(j) = hits(i_domain) % data(j) + 1 - cycle MATERIAL_LOOP - end if - end do - - ! If we make it here, that means we haven't yet had a hit in this - ! material. Add an entry to both the indices list and the hits list - call indices(i_domain) % push_back(i_material) - call hits(i_domain) % push_back(1) + call check_hit(i_domain, i_material, indices, hits, n_mat) end if - end do MATERIAL_LOOP + end do elseif (this % domain_type == FILTER_CELL) THEN - ! ====================================================================== - ! CELL VOLUME - do level = 1, p % n_coord - CELL_LOOP: do i_domain = 1, size(this % domain_id) + do i_domain = 1, size(this % domain_id) if (cells(p % coord(level) % cell) % id == this % domain_id(i_domain)) then - - ! Determine what material this is i_material = p % material - - ! Check if we've already had a hit in this material and if so, - ! simply add one - do j = 1, indices(i_domain) % size() - if (indices(i_domain) % data(j) == i_material) then - hits(i_domain) % data(j) = hits(i_domain) % data(j) + 1 - cycle CELL_LOOP - end if - end do - - ! If we make it here, that means we haven't yet had a hit in this - ! material. Add an entry to both the indices list and the hits list - call indices(i_domain) % push_back(i_material) - call hits(i_domain) % push_back(1) + call check_hit(i_domain, i_material, indices, hits, n_mat) end if - end do CELL_LOOP + end do end do elseif (this % domain_type == FILTER_UNIVERSE) then - ! ====================================================================== - ! UNIVERSE VOLUME - do level = 1, p % n_coord - UNIVERSE_LOOP: do i_domain = 1, size(this % domain_id) + do i_domain = 1, size(this % domain_id) if (universes(p % coord(level) % universe) % id == & this % domain_id(i_domain)) then - - ! Determine what material this is i_material = p % material - - ! Check if we've already had a hit in this material and if so, - ! simply add one - do j = 1, indices(i_domain) % size() - if (indices(i_domain) % data(j) == i_material) then - hits(i_domain) % data(j) = hits(i_domain) % data(j) + 1 - cycle UNIVERSE_LOOP - end if - end do - - ! If we make it here, that means we haven't yet had a hit in this - ! material. Add an entry to both the indices list and the hits list - call indices(i_domain) % push_back(i_material) - call hits(i_domain) % push_back(1) + call check_hit(i_domain, i_material, indices, hits, n_mat) end if - end do UNIVERSE_LOOP + end do end do end if @@ -280,13 +227,13 @@ contains THREAD_LOOP: do i = 1, omp_get_num_threads() !$omp ordered do i_domain = 1, size(this % domain_id) - INDEX_LOOP: do j = 1, indices(i_domain) % size() + INDEX_LOOP: do j = 1, n_mat(i_domain) ! Check if this material has been added to the master list and if so, ! accumulate the number of hits do k = 1, master_indices(i_domain) % size() - if (indices(i_domain) % data(j) == master_indices(i_domain) % data(k)) then + if (indices(i_domain, j) == master_indices(i_domain) % data(k)) then master_hits(i_domain) % data(k) = & - master_hits(i_domain) % data(k) + hits(i_domain) % data(j) + master_hits(i_domain) % data(k) + hits(i_domain, j) cycle INDEX_LOOP end if end do @@ -294,16 +241,20 @@ contains ! If we made it here, this means the material hasn't yet been added to ! the master list, so add an entry to both the master indices and master ! hits lists - call master_indices(i_domain) % push_back(indices(i_domain) % data(j)) - call master_hits(i_domain) % push_back(hits(i_domain) % data(j)) + call master_indices(i_domain) % push_back(indices(i_domain, j)) + call master_hits(i_domain) % push_back(hits(i_domain, j)) end do INDEX_LOOP end do !$omp end ordered end do THREAD_LOOP !$omp end do #else - master_indices = indices - master_hits = hits + do i_domain = 1, size(this % domain_id) + do j = 1, n_mat(i_domain) + call master_indices(i_domain) % push_back(indices(i_domain, j)) + call master_hits(i_domain) % push_back(hits(i_domain, j)) + end do + end do #endif call prn_set_stream(STREAM_TRACKING) @@ -396,6 +347,58 @@ contains end if end do + contains + + !=========================================================================== + ! CHECK_HIT is an internal subroutine that checks for whether a material has + ! already been hit for a given domain. If not, it increases the list size by + ! one (taking care of re-allocation if needed). + !=========================================================================== + + subroutine check_hit(i_domain, i_material, indices, hits, n_mat) + integer :: i_domain + integer :: i_material + integer, allocatable :: indices(:,:) + integer, allocatable :: hits(:,:) + integer :: n_mat(:) + + integer, allocatable :: temp(:,:) + logical :: already_hit + integer :: j, k, nm + + ! Check if we've already had a hit in this material and if so, + ! simply add one + already_hit = .false. + nm = n_mat(i_domain) + do j = 1, nm + if (indices(i_domain, j) == i_material) then + hits(i_domain, j) = hits(i_domain, j) + 1 + already_hit = .true. + end if + end do + + if (.not. already_hit) then + ! If we make it here, that means we haven't yet had a hit in this + ! material. First check if the indices and hits arrays are large enough + ! and if not, double them. + if (nm == size(indices, 2)) then + k = 2*size(indices, 2) + allocate(temp(size(this % domain_id), k)) + temp(:, 1:nm) = indices(:, 1:nm) + call move_alloc(FROM=temp, TO=indices) + + allocate(temp(size(this % domain_id), k)) + temp(:, 1:nm) = hits(:, 1:nm) + call move_alloc(FROM=temp, TO=indices) + end if + + ! Add an entry to both the indices list and the hits list + n_mat(i_domain) = n_mat(i_domain) + 1 + indices(i_domain, n_mat(i_domain)) = i_material + hits(i_domain, n_mat(i_domain)) = 1 + end if + end subroutine check_hit + end subroutine get_volume !=============================================================================== From 651ee4240b24fa476bd8ba47606f9d89f9d317f7 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 10 Aug 2016 11:29:32 -0500 Subject: [PATCH 258/417] Address #698 comments --- docs/source/io_formats/fission_energy.rst | 4 ++-- openmc/data/function.py | 10 +++++----- scripts/openmc-ace-to-hdf5 | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/source/io_formats/fission_energy.rst b/docs/source/io_formats/fission_energy.rst index 1d3231ee34..768db56ebb 100644 --- a/docs/source/io_formats/fission_energy.rst +++ b/docs/source/io_formats/fission_energy.rst @@ -9,8 +9,8 @@ ENDF-102_ for details). It gives the information needed to compute the energy carried away from fission reactions by each reaction product (e.g. fragment nuclei, neutrons) which depends on the incident neutron energy. OpenMC is distributed with one of these files under -openmc/data/fission_Q_data_endfb71.h5. More files of this format can be -created from ENDF files with the +data/fission_Q_data_endfb71.h5. More files of this format can be created from +ENDF files with the ``openmc.data.write_compact_458_library`` function. They can be read with the ``openmc.data.FissionEnergyRelease.from_compact_hdf5`` class method. diff --git a/openmc/data/function.py b/openmc/data/function.py index 798aa18cdd..0d4fd3b1d8 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -13,12 +13,11 @@ INTERPOLATION_SCHEME = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log', class Function1D(object): """A function of one independent variable with HDF5 support.""" - __metaclass__ = ABCMeta - def __init__(self): pass - @abstractmethod - def __call__(self): pass + def __call__(self): + raise NotImplemented('Subclasses of Function1D should overwrite the ' + '__call__ and to_hdf5 methods') @abstractmethod def to_hdf5(self, group, name='xy'): @@ -32,7 +31,8 @@ class Function1D(object): Name of the dataset to create """ - pass + raise NotImplemented('Subclasses of Function1D should overwrite the ' + '__call__ and to_hdf5 methods') @classmethod def from_hdf5(cls, dataset): diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 index 90031f0faa..2051de00b6 100755 --- a/scripts/openmc-ace-to-hdf5 +++ b/scripts/openmc-ace-to-hdf5 @@ -124,7 +124,7 @@ for filename in ace_libraries: # Fission energy release data, if available if args.fission_energy_release is not None: fer = openmc.data.FissionEnergyRelease.from_compact_hdf5( - args.fission_energy_release, neutron) + args.fission_energy_release, neutron) if fer is not None: neutron.fission_energy = fer From d6ae522c2a70e980319404304b0a8b4b95a10ffa Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Sat, 6 Aug 2016 17:28:53 -0400 Subject: [PATCH 259/417] updated mgxs tests --- .../pythonapi/examples/mdgxs-part-i.ipynb | 254 ++-- .../pythonapi/examples/mdgxs-part-ii.ipynb | 42 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 1053 ++++++++++------- .../pythonapi/examples/mgxs-part-iii.ipynb | 420 +++---- openmc/mgxs/library.py | 21 +- openmc/mgxs/mdgxs.py | 253 +++- openmc/mgxs/mgxs.py | 219 ++-- .../test_mgxs_library_condense.py | 3 +- .../test_mgxs_library_distribcell.py | 3 +- .../test_mgxs_library_hdf5.py | 2 +- .../test_mgxs_library_mesh.py | 3 +- .../results_true.dat | 120 +- .../test_mgxs_library_no_nuclides.py | 3 +- .../results_true.dat | 2 +- .../test_mgxs_library_nuclides.py | 1 + 15 files changed, 1354 insertions(+), 1045 deletions(-) diff --git a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb index 94be516fca..b180141834 100644 --- a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb @@ -265,7 +265,7 @@ "cell_type": "code", "execution_count": 8, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -308,7 +308,7 @@ "cell_type": "code", "execution_count": 10, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -404,6 +404,7 @@ "prompt_nu_fission = mgxs.PromptNuFissionXS(domain=cell, groups=energy_groups, by_nuclide=True)\n", "chi_delayed = mgxs.ChiDelayed(domain=cell, energy_groups=energy_groups, by_nuclide=True)\n", "delayed_nu_fission = mgxs.DelayedNuFissionXS(domain=cell, energy_groups=energy_groups, delayed_groups=delayed_groups, by_nuclide=True)\n", + "#delayed_nu_fission = mgxs.DelayedNuFissionXS(domain=cell, energy_groups=energy_groups, by_nuclide=True)\n", "beta = mgxs.Beta(domain=cell, energy_groups=energy_groups, delayed_groups=delayed_groups, by_nuclide=True)\n", "\n", "chi_prompt.nuclides = ['U235', 'Pu239']\n", @@ -580,8 +581,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", - " Git SHA1: ad9fe27d26940a7120ed920d37d9cb176bde6402\n", - " Date/Time: 2016-08-06 15:47:51\n", + " Git SHA1: be7e6e035d22944a8c80ca32f99935b6822854c9\n", + " Date/Time: 2016-08-10 15:46:45\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -668,20 +669,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.7100E-01 seconds\n", - " Reading cross sections = 2.6500E-01 seconds\n", - " Total time in simulation = 8.5400E+01 seconds\n", - " Time in transport only = 8.5378E+01 seconds\n", - " Time in inactive batches = 4.8000E+00 seconds\n", - " Time in active batches = 8.0600E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-02 seconds\n", - " Sampling source sites = 8.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 7.7400E-01 seconds\n", + " Reading cross sections = 4.7500E-01 seconds\n", + " Total time in simulation = 8.9596E+01 seconds\n", + " Time in transport only = 8.9573E+01 seconds\n", + " Time in inactive batches = 4.8730E+00 seconds\n", + " Time in active batches = 8.4723E+01 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", + " Sampling source sites = 1.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 7.2000E-02 seconds\n", - " Total time elapsed = 8.5969E+01 seconds\n", - " Calculation Rate (inactive) = 10416.7 neutrons/second\n", - " Calculation Rate (active) = 2481.39 neutrons/second\n", + " Total time elapsed = 9.0468E+01 seconds\n", + " Calculation Rate (inactive) = 10260.6 neutrons/second\n", + " Calculation Rate (active) = 2360.63 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -794,61 +795,28 @@ }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Multi-Delayed-Group XS\n", - "\tReaction Type =\tdelayed-nu-fission\n", - "\tDomain Type =\tcell\n", - "\tDomain ID =\t1\n", - "\tNuclide =\tU235\n", - "\tCross Sections [cm^-1]:\n", - " Delayed Group 1:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t5.14e-06 +/- 1.76e-01%\n", - "\n", - " Delayed Group 2:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t2.65e-05 +/- 1.76e-01%\n", - "\n", - " Delayed Group 3:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t2.53e-05 +/- 1.76e-01%\n", - "\n", - " Delayed Group 4:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t5.68e-05 +/- 1.76e-01%\n", - "\n", - " Delayed Group 5:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t2.33e-05 +/- 1.76e-01%\n", - "\n", - " Delayed Group 6:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t9.76e-06 +/- 1.76e-01%\n", - "\n", - "\n", - "\tNuclide =\tPu239\n", - "\tCross Sections [cm^-1]:\n", - " Delayed Group 1:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t1.16e-06 +/- 1.90e-01%\n", - "\n", - " Delayed Group 2:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t7.58e-06 +/- 1.90e-01%\n", - "\n", - " Delayed Group 3:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t5.74e-06 +/- 1.90e-01%\n", - "\n", - " Delayed Group 4:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t1.05e-05 +/- 1.90e-01%\n", - "\n", - " Delayed Group 5:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t5.46e-06 +/- 1.90e-01%\n", - "\n", - " Delayed Group 6:\t\n", - " Group 1 [1e-09 - 19.9526231497MeV]:\t1.65e-06 +/- 1.90e-01%\n", - "\n", - "\n", - "\n" - ] + "data": { + "text/plain": [ + "array([[[[ 5.14239169e-06, 1.16429778e-06]],\n", + "\n", + " [[ 2.65434434e-05, 7.58244504e-06]],\n", + "\n", + " [[ 2.53406770e-05, 5.73814391e-06]],\n", + "\n", + " [[ 5.68158884e-05, 1.04761254e-05]],\n", + "\n", + " [[ 2.32937121e-05, 5.45676114e-06]],\n", + "\n", + " [[ 9.75765501e-06, 1.65156185e-06]]]])" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "delayed_nu_fission.get_condensed_xs(one_group).print_xs()" + "delayed_nu_fission.get_condensed_xs(one_group).get_xs()" ] }, { @@ -865,14 +833,6 @@ "collapsed": false }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/shape_base.py:873: VisibleDeprecationWarning: 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": [ @@ -891,131 +851,111 @@ " \n", " \n", " \n", - " 0\n", + " 198\n", " 1\n", " 1\n", " 1\n", " U235\n", - " 0.000228\n", - " 4.753468e-07\n", + " 9.533842e-11\n", + " 4.789050e-11\n", " \n", " \n", - " 1\n", + " 199\n", " 1\n", " 1\n", " 1\n", " Pu239\n", - " 0.000081\n", - " 1.885620e-07\n", + " 1.606499e-11\n", + " 8.071081e-12\n", " \n", " \n", - " 2\n", + " 398\n", " 1\n", " 2\n", " 1\n", " U235\n", - " 0.001175\n", - " 2.453594e-06\n", + " 1.224131e-09\n", + " 6.149449e-10\n", " \n", " \n", - " 3\n", + " 399\n", " 1\n", " 2\n", " 1\n", " Pu239\n", - " 0.000531\n", - " 1.228003e-06\n", + " 2.602518e-10\n", + " 1.307590e-10\n", " \n", " \n", - " 4\n", + " 598\n", " 1\n", " 3\n", " 1\n", " U235\n", - " 0.001122\n", - " 2.342414e-06\n", + " 9.033000e-10\n", + " 4.537601e-10\n", " \n", " \n", - " 5\n", + " 599\n", " 1\n", " 3\n", " 1\n", " Pu239\n", - " 0.000402\n", - " 9.293122e-07\n", + " 1.522295e-10\n", + " 7.648264e-11\n", " \n", " \n", - " 6\n", + " 798\n", " 1\n", " 4\n", " 1\n", " U235\n", - " 0.002516\n", - " 5.251885e-06\n", + " 1.749138e-09\n", + " 8.786432e-10\n", " \n", " \n", - " 7\n", + " 799\n", " 1\n", " 4\n", " 1\n", " Pu239\n", - " 0.000733\n", - " 1.696645e-06\n", + " 2.400317e-10\n", + " 1.205943e-10\n", " \n", " \n", - " 8\n", + " 998\n", " 1\n", " 5\n", " 1\n", " U235\n", - " 0.001031\n", - " 2.153199e-06\n", + " 2.724017e-10\n", + " 1.368376e-10\n", " \n", " \n", - " 9\n", + " 999\n", " 1\n", " 5\n", " 1\n", " Pu239\n", - " 0.000382\n", - " 8.837413e-07\n", - " \n", - " \n", - " 10\n", - " 1\n", - " 6\n", - " 1\n", - " U235\n", - " 0.000432\n", - " 9.019675e-07\n", - " \n", - " \n", - " 11\n", - " 1\n", - " 6\n", - " 1\n", - " Pu239\n", - " 0.000116\n", - " 2.674761e-07\n", + " 4.749191e-11\n", + " 2.386080e-11\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell delayedgroup group in nuclide mean std. dev.\n", - "0 1 1 1 U235 0.000228 4.753468e-07\n", - "1 1 1 1 Pu239 0.000081 1.885620e-07\n", - "2 1 2 1 U235 0.001175 2.453594e-06\n", - "3 1 2 1 Pu239 0.000531 1.228003e-06\n", - "4 1 3 1 U235 0.001122 2.342414e-06\n", - "5 1 3 1 Pu239 0.000402 9.293122e-07\n", - "6 1 4 1 U235 0.002516 5.251885e-06\n", - "7 1 4 1 Pu239 0.000733 1.696645e-06\n", - "8 1 5 1 U235 0.001031 2.153199e-06\n", - "9 1 5 1 Pu239 0.000382 8.837413e-07\n", - "10 1 6 1 U235 0.000432 9.019675e-07\n", - "11 1 6 1 Pu239 0.000116 2.674761e-07" + " cell delayedgroup group in nuclide mean std. dev.\n", + "198 1 1 1 U235 9.533842e-11 4.789050e-11\n", + "199 1 1 1 Pu239 1.606499e-11 8.071081e-12\n", + "398 1 2 1 U235 1.224131e-09 6.149449e-10\n", + "399 1 2 1 Pu239 2.602518e-10 1.307590e-10\n", + "598 1 3 1 U235 9.033000e-10 4.537601e-10\n", + "599 1 3 1 Pu239 1.522295e-10 7.648264e-11\n", + "798 1 4 1 U235 1.749138e-09 8.786432e-10\n", + "799 1 4 1 Pu239 2.400317e-10 1.205943e-10\n", + "998 1 5 1 U235 2.724017e-10 1.368376e-10\n", + "999 1 5 1 Pu239 4.749191e-11 2.386080e-11" ] }, "execution_count": 19, @@ -1024,8 +964,8 @@ } ], "source": [ - "df = beta.get_condensed_xs(one_group).get_pandas_dataframe()\n", - "df.head(12)" + "df = delayed_nu_fission.get_pandas_dataframe()\n", + "df.head(10)" ] }, { @@ -1061,8 +1001,8 @@ }, "outputs": [], "source": [ - "chi_prompt.build_hdf5_store(filename='mgxs', append=True)\n", - "chi_delayed.build_hdf5_store(filename='mgxs', append=True)" + "chi_prompt.build_hdf5_store(filename='mdgxs', append=True)\n", + "chi_delayed.build_hdf5_store(filename='mdgxs', append=True)" ] }, { @@ -1315,9 +1255,9 @@ }, { "data": { - "image/png": "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\n771XLz/wwAO55JJLWLBgAfPmzVt9R8qOtPXkVe/EUikFl7+jrW3T5r6SGshKOGdGxNK0+HLggxGx\nK1mp5sftjtisizQ3w9KlVTfr1pYuza7D1rjjjjtYuHAhr7zyCj/72c/o379/m9ufcsopq29XfOGF\nF6617tvf/jZTp07lpptuqrhvv379GDNmDBdccAEvvvgiAP/1X//Fbrvtxq677so+++zD4YcfzoYb\nbsgWW2xRmwusoN5VYbOBYSWvtwHmlm0zC9gWmCupLzAwIt6UNDstX2dfSRuQJZVrI+KOlg0i4l8l\n2/8auKu1wJpLPv1NTU00NTXlviizeih6UmnRna6jM1VXNYuhQulk0003XavEMG/evNXPr7jiCq64\n4op19hk3bhz33Xcfjz76KA0NDW2ec/ny5bz88svsvPPO9O/fn0svvZRLL70UgF/96lfsvvvuuare\nJk2axKRJk6put448dwPr6APoC/w3MBzoBzwH7Fi2zanA5en5WLJ2FYCdgGfTfiPTcVpuTHYNWSN9\n+fm2Knl+FnBDK3FVv4Wa2XqW3aE9exRRV8Xfnf+eR4wYEQ8++OA6y48++ug4+uijY/ny5TF58uQY\nMmRIHHvssa0e5wc/+EGMGjUq5s2bt866J598Mh577LF47733YtmyZXHhhRfGgAED4vXXX4+IiDlz\n5sTcuXMjIuKJJ56IbbfdNh544IE2427tPSXnHSTXx22ADwD+DswAzknLxgOfS883Am5O658ERpTs\ne25KKNOA0WnZ3sDKlKSeBaYAB8SahPNCWvf/gC1bianNN9WsKzixdPS83fcNGzlyZMXE8vLLL8de\ne+0VjY2N8bnPfS7OPPPMNhOLpOjfv380Njauvl3xBRdcEBERjzzySOyyyy4xYMCAGDx4cDQ1NcVj\njz22et9HH300RowYEZtuumnssMMOceONN1aNu7OJxbcmNusmSmsmivjx7Kr4fWvi2vOtic3MrFup\n2ngv6ePAMcAnga2BZcBfgd8D10XEorpGaGZmhdJmVZikP5D1xLoD+AvwT6A/sD2wL3AwWSP6nfUP\ntXZcFWbdkavCOnpeV4XVWmerwqolliERsaBKAFW36W6cWKw7cmLp6HmdWGqtrm0sLQlD0qZp3i8k\nbS/pEEkblm5jZmYG+RvvHwX6SxoK3A8cC/y2XkGZmVlx5R15r4h4R9IJZIMZL5L0bD0DMzPLY/jw\n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\n", + "image/png": "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\nA9YuP+yww7jqqqtYtGgRCxYsWHtHyra09eRV78RSKQWXv6PNbdPivpL6kJVwzo+I5WnxdcCHI2JP\nslLND1sdsVkHGTMGli+vulmntnx5dh22zr333svixYt59dVXueaaa+jVq1eL25911llrb1d8+eWX\nr7fum9/8JtOmTePXv/51xX179uzJyJEjueyyy3j55ZcB+K//+i/22msv9txzTw488ECOOeYYNtts\nM7bZZpvaXGAF9a4KmwsMLnm9AzC/bJs5wI7AfEmbAP0i4i1Jc9PyDfaVtClZUrk5Iu5t2iAi/lmy\n/S+Aic0FNqbk09/Y2EhjY2PuizKrh6InlSad6TraU3VVsxgqlE569+69XolhwYIFa59ff/31XH/9\n9RvsM3r0aB588EGeeOIJ+vTp0+I5V65cySuvvMLuu+9Or169uPrqq7n66qsB+PnPf87ee++dq+pt\n8uTJTJ48uep2G8hzN7C2PoBNgP8GhgA9gReAXcu2ORu4Lj0fRdauArAb8Hzab1g6TtONyW4ia6Qv\nP992Jc8vAG5rJq7qt1Az28iyO7RnjyLqqPg789/z0KFD45FHHtlg+YknnhgnnnhirFy5MqZMmRID\nBw6Mk08+udnjfO9734vhw4fHggULNlj39NNPx5NPPhnvv/9+rFixIi6//PLo27dvvPHGGxERMW/e\nvJg/f35ERDz11FOx4447xsMPP9xi3M29p+S8g+TGuA3wocDfgFnARWnZWOBz6fnmwB1p/dPA0JJ9\nL04JZTowIi07AFidktTzwFTg0FiXcF5K6/4fsG0zMbX4ppp1BCeWtp63875hw4YNq5hYXnnlldhv\nv/2ioaEhPve5z8X555/fYmKRFL169YqGhoa1tyu+7LLLIiLi8ccfjz322CP69u0bAwYMiMbGxnjy\nySfX7vvEE0/E0KFDo3fv3rHLLrvE7bffXjXu9iYW35rYrJMorZko4sezo+L3rYlrz7cmNjOzTqVq\n472k/YGTgE8C2wMrgL8AvwVuiYgldY3QzMwKpcWqMEm/I+uJdS/wZ+AfQC9gZ+Ag4AiyRvT76h9q\n7bgqzDojV4W19byuCqu19laFVUssAyNiUZUAqm7T2TixWGfkxNLW8zqx1Fpd21iaEoak3mneLyTt\nLOlISZuVbmNmZgb5G++fAHpJGgQ8AnwR+FW9gjIzs+LKO/JeEfGupNOAayLiCknP1zMwM7M8hgwZ\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1378,9 +1318,9 @@ }, { "data": { - "image/png": "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\n9erFmWeeyRtvvAFAkyZNgmWqSk5ODjt37mTHjh2AnT5zwoQJFBQU0KZNGyZMmBDTNPTCCy9w3HHH\n0bp1a8aPH1+ts3/wwQc5/vjjadOmDQMHDmTdunUR21m6dCmnnHIKBQUFFBcXh/xIBw8ezF/+8peQ\n+ieddBJPP23/dNasWUP//v1p06YNxx13HE888USw3o4dOzj//PMpKCigd+/eCaU3bciULi8NboaG\nR1IVg6oeAK4Dngc+Bhao6iciUioigwFE5Mcish64CLhPRAKJfYcCfYCxIvK+iLwnIifWpXyW30JK\npdoWzS4bqX5dRJ9cv359sKOMhldzyPfff8/KlSurpfw86aSTaNq0KRdccAFXXHFFMEdDIMxugIMH\nD7JhwwZ2795dre3t27dz0UUXcdttt7Ft2zaOPvpoXnvttWD5U089xe9//3ueeuoptm7dyplnnsmI\nESMiypmXl8fcuXPZtWsXS5Ys4b777gt2/IEcDQFWrVrFpk2bGDRoEHv37qV///6MHDmSbdu2MX/+\nfK699lo++eQTAK699lqaN2/Oli1bmD17tmf/h8FgqCLpsZJU9TlVPUZVu6rq751jJar6rPP5HVXt\nqKotVfVQZ3oqqvqYqjZR1VNU9WTn73+SLW99csEFF1BYWMhZZ51Fv379IialqSlXX301J598Mv37\n9w85vmrVKnbv3s28efM444wzgscHDhzI3XffzbZt2/jqq6+CWeH27t1bre2lS5dywgkn8LOf/YxG\njRpx/fXX065du2D5Aw88wJQpU+jWrRs5OTnceOONfPDBByFJfwKcddZZQeX1ox/9iOHDh7N8+XIA\nhgwZwmeffRZ823/00UcZNmwYjRo14tlnn6Vz586MHj0aEaFHjx5ceOGFLFy4kIMHD/Lkk09yyy23\n0LRpU0444QTGjBmT4BM1GBoeJoheClm8eDE7duzgyy+/5M9//jNNmjSJe84111wTzMXw+9//PqRs\n8uTJrF69Omou58aNGzNs2DBmzJjBhx/aA7OpU6dy8skn06NHD/r06cPPfvYzcnNzOeyww6qdH57y\nEwjZLy8vZ+LEicF0nG3atEFEqmVbA3jrrbc4++yzOeyww2jVqhX3339/MOVn48aNGTp0KI8++iiq\nyvz584O5oMvLy3nzzTdDUn7OmzePLVu2sHXrViorKznyyCOD12mwwfn8JVVbBALO6Ax0z0Uk/F6y\n6d5SQYMOiWH5rBo51mpaPx7RnLEtWrQIeWP/6quvgp/vvfde7r333mrnlJSUsGzZMlasWEFeXl7M\n61ZUVPDFF1/QvXt3mjZtyqxZs5g1axZgv/X37Nkzoumqffv21XwG7tFAx44d+d3vfhfVfOTm0ksv\nZcKECSxbtozc3FxuuOGGkLzRo0ePZtSoUZxxxhm0aNGCXr16Ba/h8/lYtmxZtTYPHjxIbm4u69ev\np1u3bgBRfRxZTxwTp9vvmIkdaLgSMNQtZsSQhvTo0YMFCxZQWVnJO++8w8KFC2PWnzFjBvPnz+eF\nF16gVatWIWVvvfUWr732GhUVFfzwww/cfvvtfP3115x22mmAPQrYvHkzAG+++SbTp0+PmjBn0KBB\nrF69mqeeeooDBw5w9913hyitq6++mttuu43Vq1cDsGvXrqiy79mzh9atW5Obm8vbb7/NvHnzQsp7\n9+5NTk4OkyZNCnG8Dx48mE8//ZRHH32UyspKKioqeOedd/jvf/9LTk4OP//5z7Esi++//57Vq1cH\ns741NEpKqrZand+3JLilM35C12qYrHN1RLScn5mykaE5nzt37qwvvfRSxLIvvvhCTzvtNG3ZsqUO\nHjxYJ06cqKNGjYraloho06ZNtWXLlpqXl6ctW7bUGTNmqKrq8uXL9aSTTtL8/Hxt06aN+nw+/fe/\n/x08d8WKFdqpUydt0aKFHnvssTp//vyYci9btky7deumrVq10vHjx6vP5wvJ4fzoo49q9+7dtaCg\nQIuKivTyyy8PlrnzRi9atEiLi4s1Pz9fzzvvPB0/fny1e5w+fbrm5OTol19+GXL8008/1UGDBumh\nhx6qbdu21XPOOUdXrVqlqqpbt27VwYMHa0FBgZ522mk6bdo0PfPMM6PeT7r/TpIFVG1eKXmlJCSX\ndN5tefrH1/6YPCE9ylTySknUfUN0iJHzuUZB9ESkNdBR08gJbILoZS9z587lb3/7GytWrEjaNRrq\n78RtKfR6+5bfqjZ9Na9xHrunVJ/BVl8ERgcBE29g372Oy29sTRFJKOy2iPiB85267wJfi8hrqvqr\nOpXSYHCxd+9e/vrXv3LdddelWhRDDPbs35OS6/pcnb274w8oCJ8xJyWEF+dzgap+KyK/AB5R1RIR\nSZsRgyH7eP755/n5z39O//79PTmyDdWJt3K5Nr4H9+SLdLfjm1FCYsQ1JTkLzvoDc4CpqrpSRP6j\nqnW62Ky2GFOSIRGy9XdiMrAZ4pFoBrebgWXAvx2lcBSwti4FNBgMhrokmqnJ4I24ikFVnwCecO1/\nAVyYTKEMBoMh0J9H+ms6/uTixfl8KHAF0MldX1UvS55YBoPBEFinUOUnCezHPc8oi4TwYkpaDLwK\nvIide9lgMBhSipeOP9pUVhNGPD5eFENzVf1t0iUxGAx1hztGUoQZSImGlKiPfA2WRcjoIHw/3rnB\nqr4I5SbfREy8KIZnReRcVV2adGkMBkPdkORYSeEZ4uqaeOsUDMnFS6ykidjK4QcR2e1s3yZbsGwn\nUv7jWAl59u/fzy9+8Qs6depEQUEBPXv25LnnnguWf/LJJ5x66qnBqKb9+/cP5igItN24cWPy8/OD\n0VnLysqScm/JJhW5ozONRGMlZTqWZSsUH1aV09pngd9Jc+qsyTCKJjJeZiW1rA9BGhrREu9EO15Z\nWUlRURGvvvoqHTt2ZMmSJQwdOpSPPvqIoqIiOnTowKJFiygqKkJVueeeexg+fDirVq0KtjF8+HAe\neeSROr+XgwcPkpNTf/EYG2IO50hEClEBdgC8TEx368Y4j1OLp/9mETlfRP7obIOTLVRDoKaLqpo3\nb860adOC+Q8GDRpE586deffddwHIz8+nqMhOr33gwAFycnJqndZy+fLldOzYkRkzZnDooYdy1FFH\nhUQ/HTduHNdeey2DBg2iZcuW+P1+vv32W0aPHs1hhx1G586dufXWW4P158yZQ58+ffjVr35F69at\n6dKlC2+88QZz5syhqKiIdu3ahSiscePGcc0119C/f3/y8/Pp169fMLx33759UVVOPPFE8vPzQ9J6\nGgxe8VlWcDNUx8t01d8DpwKPOYcmikgfVb0xqZLVA7HmSdfmb32yZcsW1q5dWy2FZ+vWrfnuu+84\nePAgt9xyS0jZM888Q9u2bWnfvj2//OUvufrqq6O2/9VXX7Fjxw42bdrEG2+8wbnnnsupp54azB89\nf/58/vWvf9G7d2/27dvHFVdcwe7duykrK2Pr1q3079+fI444gnHjxgHw9ttvc+WVV7Jjxw6mTZvG\n8OHDOf/88/n888/x+/1ceOGFXHTRRTRv3hyAefPmsXTpUnr16sXkyZO55JJLePXVV1m+fDk5OTl8\n+OGHdO7cuS4fqSGNqKt1CuGnBvaNBSk2XpzP5wI9VPUggIjMAd4HMl4xZCqVlZWMHDmSsWPHBhPS\nBPjmm2/4/vvvg2/jAYYNG8ZVV13F4YcfzptvvsmFF15I69atGTZsWMRriAi33HILubm5nHXWWQwa\nNIjHH3+HCHyBAAAgAElEQVScqVOnAnb6zd69ewOQm5vL448/zqpVq2jevDnFxcVMmjSJuXPnBhVD\nIB1nQJbbbruNkpIScnNz+elPf0rjxo357LPPOPFEO9LKoEGDgilIb731VgoKCti4cSMdOnQAaj7i\nykYSsZEn6ntI9zwN8TCmqth4zeDWCtjhfC5IkiwNikaNGlFRURFyrKKigtzcXADOPfdcXn31VUSE\n+++/PxhMTlUZOXIkTZo0CeZnDqdZs2ZcddVVHHrooaxZs4a2bdty7LHHBstPP/10Jk6cyMKFC6Mq\nhtatW9O0adPgfnFxMZs2bQruu1N6btu2jYqKihBFVFxcHJLS8/DDDw+RD6Bt27Yhx/bsqYrU6W6/\nRYsWFBYWsmnTpqBiMCRGov1isp22puNOLV4UwwzgfRF5BRDgLCDxrPVpQLRhZm33a0JRURFlZWUc\nc8wxwWNffvllcH/p0sizgy+//HK2bdvG0qVLadSoUdT2Dxw4wN69e9m4cWNIBxwgXvC4wMgj0Imv\nW7eO7t27h5wfoG3btuTm5lJeXh5UQOXl5Ql14u6UoXv27GHHjh1GKdQAk/oyNiakRmxiOp/F/u//\nN9AbeNLZTlfVBfUgW1YzbNgwpk+fzsaNG1FVXnzxRZ599lkuuuiiqOdcffXVrFmzhqeffprGjRuH\nlL344ot88MEHHDx4kG+//ZZf/epXFBYWctxxxwHw9NNPs3PnTsC298+aNYsLLrgg6rVUlZKSEioq\nKnj11VeDs6AikZOTw9ChQ5k6dSp79uyhvLycO++8M+rU20D7sVi6dCmvv/46+/fv56abbqJ3794c\nccQRALRr185MV41DaWnVlokY53BqiTliUFUVkaWq2h14up5kahBMmzaNkpIS+vTpw86dOzn66KOZ\nN28exx9/fMT669at44EHHqBp06ZBs4zbzLRz507Gjx/Pxo0badasGaeeeirPPfdcUIEsWLCAyy67\njP3793PkkUcyZcoURo4cGVW+9u3b07p1a4444ghatGjB/fffH3Q8R5ouOmvWLMaPH89RRx1Fs2bN\nuPLKK4P+hUiEtxG+f8kll2BZFm+88QY9e/bkscceC5ZZlsXo0aP54YcfeOCBB2Iq02zFrNxNDDNK\niI2XfAxzgHtUdWWtLiAyALgLe3QyW1VvDys/0yk/ERimqk+6ysYAUwEFblXVapPwTT6Gumf58uWM\nGjWKdevWpeT648aNo2PHjtx8881Jv1am/k7i5VuoTepOQ8Mi0XwMpwGXikg58B22n0G9JOoRkRzg\nHuAcYBOwUkQWq+oaV7VyYAzw67BzWwPTgFOca77rnLvLg8wGgyEGmRArKZkYH0NsvCiG/02g/V7A\nWlUtBxCRBcAQIKgYVHWdUxb+XvO/wPMBRSAizwMDgH8kII8hAzArm5NPpsZKMtQPXhTDdFUN8SKK\nyFwgumexig7Aetf+Bmxl4YXwczc6xwxJpm/fvikzIwE8+OCDKbt2ttBQYyR5xSib2HhRDCFLa0Wk\nEdDTY/uRXv28Wjw9n+uOC+Pz+fD5fB4vYTBkJ5ne75mOu+7x+/34/X5PdaMqBhGZAvwf0MyJphro\nqPcDD3iUZQNQ5No/EtvX4PVcX9i5r0SqmOkBwwyGmpLpK49TTUM0VYW/NJfGmMscVTGo6gxghojM\nUNXaLmhbCXQRkWJgMzAcGBGjvnuUsAy4VUQKsGc0/RQThsNgADLT4RuOyemcvngxJf1LRM4KP6iq\nK+KdqKoHROQ64Hmqpqt+IiKlwEpVfVZEfgz8EzvsxmARsVS1u6p+IyK3AO9gm5BKVXVnDe7NYDBE\nwcRKslItQlrjZR3DM67dptjO43dV9exkCuYVs47BkAjmd1KFZYXOVsrLs49NmlS7duKdH+ybA6Of\nwBTYQI7mLBgVpTMJrWNQ1fPCGuuIvSDNYDCkKXURK2nPnugdu5f2Y53vPi+Qxzl8P5kYU1VsapN2\nawNwXF0L0tDo1KkTzZs3Jz8/n/bt23PZZZexd+/eWrU1efJkunXrRkFBAccffzxz584Nlm3fvp0+\nffrQtm1bCgsLOeOMM3j99deD5fv37+eGG26gQ4cOtGnThuuuu44DBw4kfH+poF+/fg16qqtl2Sue\nReouVpIr4G0IXtuPdr6JhZTeeEnU82eqponmAD2A95IpVENARFiyZAn9+vVj8+bN9O/fn+nTp3Pb\nbbfVuK28vDyWLFlC165defvttxkwYABdu3ald+/e5OXl8dBDDwXjHC1evJjzzjuPrVu3kpOTw4wZ\nM3jvvfdYvXo1lZWVDB48mOnTp1NSBxPhDxw4EDMCrKH2eF15nJdXgzatukk+FW6Sils/TP76MCGZ\nUUIcVDXmhh2uIrBdCpwR75z63OxbqE604+lCp06d9KWXXgruT548Wc8777yIZZZl6ciRIz23ff75\n5+uf/vSnascPHjyoTz/9tObk5OjWrVtVVfXHP/6xLly4MFhn3rx5WlRUFLVtEdFZs2bpUUcdpYce\neqhOnjw5WPbwww/rGWecoTfccIMWFhbqTTfdpAcPHtRbbrlFi4uL9fDDD9cxY8borl27VFW1rKxM\nRUQfeugh7dixoxYWFup9992nK1eu1BNPPFFbt26t1113XbX2x48frwUFBXrccccFn9PUqVO1UaNG\n2qxZM23ZsqWOHz/e07NK999JNLAIbgFKSlTtyEj2lpen+sc/Jun6ruvUptyQepzffsR+1YuPYY6I\nNAOKVPW/yVJQqSDw1hV4Q0l0v7asX7+epUuXxowS6jVMxPfff8/KlSv55S9/GXL8pJNOYs2aNVRW\nVnLFFVcEczRolYIF4ODBg2zYsIHdu3fTsmXLiNd46qmneO+999i9ezfnnHMOxx57LJdddhkAb731\nFpdccglbt26loqKChx56iEceeYTly5dz6KGHMmrUKK677rqQHM9vv/02n332GStWrOC8885j4MCB\nvPzyy+zbt4+TTz6ZoUOHcuaZZwbbHzp0KNu3b2fRokX8/Oc/p6ysjOnTp/Paa68xatSooCwNDfcb\nf9IJ+c1Xv2i6r7w2PobYeDElnQf8EWgMdBaRHsDNqnp+soXLdi644AIOOeQQCgoKGDx4MFOmJJ7/\n6Oqrr+bkk0+mf//+IcdXrVrF/v37+ec//8n+/fuDxwcOHMjdd9+Nz+ejsrIymBVu7969URXDjTfe\nSEFBAQUFBVx//fXMnz8/2Bl36NCBa6+9FoAmTZowb948fvWrX1FcXAzAjBkz+NGPfsTDDz8M2Apv\n2rRpNG7cmP/5n/+hRYsWjBgxgjZt2gBw5pln8v777wcVw+GHH86ECRMAGDp0KDNnzmTJkiVceuml\nCT87Qw3wuW1FVrXieH1tOnXMyXrhy2S8rGOwsKeo+gFU9QMR6ZQ0iRoQixcvpl+/fjU655prruHR\nRx9FRPi///s/bryxas3f5MmTWb16Na+8EnGBOI0bN2bYsGEcf/zx9OjRg+7duzN16lR27dpFjx49\naNq0KVdccQUffPABhx12WFQZjjzyyODnWCk/ATZt2hRUCoH6lZWVbNmyJXjMfa1mzZpVSwPqTvkZ\nnsUt/PoGgxfcysjtrzHYeFEMlaq6KxsjXsZzetV0v6a4TThuWrRoETJD6auvvgp+vvfee7n33nur\nnVNSUsKyZctYsWIFeXE8jhUVFXzxxRd0796dpk2bMmvWLGbNmgXAAw88QM+ePWOartavXx/MDLdu\n3bpgZjWobvI64ogjKC8vD+6Xl5eTm5vL4YcfHpK+0yvuPNKB6w8ZMiTitQ3pS6pHCYbYeJmu+pGI\nXAI0EpGuziyl1+OdZKg9PXr0YMGCBVRWVvLOO++wcOHCmPVnzJjB/PnzeeGFF2jVqlVI2VtvvcVr\nr71GRUUFP/zwA7fffjtff/01p512GmC/0W/evBmAN998k+nTp8dNkHPHHXewc+dO1q9fz913383w\n4cOj1h0xYgR33nknZWVl7Nmzh6lTpzJ8+HBycuyfXjTlGI2vv/6aP//5z1RWVvLEE0+wZs0azj33\nXMA2MzWYlJ/+kqotCVgWjB1bNf01sGVLfx7wx1iW/YLnfslzm5Qa6mjCy4hhPHYWtX3AfOwYRrck\nU6iGQKy321tuuYURI0ZQWFhI3759ufTSS9mxY0fU+lOnTqVJkyZ07doVVQ0xM+3bt48JEybw5Zdf\nkpubS/fu3Vm6dCnt2rUD4PPPP2f06NFs3bqVjh078oc//IFzzjknpuxDhgyhZ8+efPvtt4wbNy6m\ns/eyyy5j8+bNnHXWWezbt48BAwYERyeRnkO8/dNOO421a9fStm1b2rVrx6JFi2jdujUAEydOZMyY\nMdx7772MGjWKu+7K4nWYSe6wZs6MvgahLkgrH4NV/a8faMhBmuOGxEh3TEiM+iUnJ4fPPvuMo446\nqt6vPWfOHGbPns2KFXHDdHkmU38ndbGyORYzZ9rthiuHkhLnLTvOOop48qW7YnD/zVYSCokhIt2w\n0252ctfXNImVZDA0RJLdaU2aFDtGUjz/WrwMcalWBobYeDElPQHcB/wdyMxYCYY6wzh4DdlGuI4K\nhP2uiu0XVqEB4HVWUvVpMIYGSSrjKI0ZM4YxY8ak7PqGuiOdTEmG6nhRDM+IyLXYORP2BQ6qanRv\nqMFgSCpeYyUZakdDV1Ze8jF8GeGwqmr9ex8jYJzPhkTI1N+JlFaZ9LQk/eR3Wxwz8PE2CBLNx9C5\n7kUyGAyZTLwRS7rHSopHQzd1eTElZSTFxcXGUWqIiztcR6aQDouuSpdXTTuKN101Eg294013slYx\nlJWVpVoEg6HWePYh7KtBwgWDZxq6sspaxWAwZDLx3sgBWymkweihNjT0jjfdiep8FpFTYp2oqmmR\nxS2a89lgyGTiOZdT7dytqfM701YXNwRTV22dzzOdv02BHwOrAAFOBN4BTq9LIQ0GQ2TqNQFPHREv\nJIbfyeFg+c1023QkqmJQ1X4AIvIkcIqqfujs/4hImTkMBkO9kepZPyV9Ywvg99ePHMkiW0cJXvGy\njuFjVT0h3rEY5w8A7sIO8T1bVW8PK28MPAL0BLYBw1R1nYgcgh2G4xSgETBXVX8foX1jSjJkHW5T\nTYlqxo0YUm3qMsQnoXUMwH9E5O/Ao4ACI4H/eLxwDnAPcA6wCVgpIotVdY2r2uXADlXtKiLDgD8A\nw4GLgcaqeqKTc3q1iMxT1XVerm0wZDSuPAtW5IR8hiTSEHwMsfCiGMYB1wATnf0VgNfYSb2Atapa\nDiAiC4AhgFsxDAEC/wULgT87nxVoISKNgObY4Ti+9XhdgyGzydDZRl4xIT3SGy8rn38QkfuApar6\n3xq23wFw52/cgK0sItZR1QMisktECrGVxBBgM9AMuEFVd9bw+gZDRpJqH0JDpyGOEtx4ycdwPnAH\n0BjoLCI9gJtV9XwP7UeyX4VbHMPriFOnF1AJtAPaAK+KyIuqWhbeoOX6En0+H76GnHrJkBVkU78U\nGB24U2a69w31g9/vx+9xVoAXU1IJdiftB1DVD0Skk0dZNgBFrv0jsX0NbtYDHYFNjtkoX1W/cfJM\nP6eqB4GtIvIa9rTZsvCLWNn0X2QwZAAmVlLmEf7SXOrOphSG13wMu2oZd2gl0EVEirFNQsOBEWF1\nngHGAG9hO5xfdo6vA84GHhORFkBv4M7aCGEwGOqWeCuz/a4Z7b7ki2OoY7woho+ct/dGItIVmAC8\n7qVxx2dwHfA8VdNVPxGRUmClqj4LzAbmishaYDu28gD4C/CQiHzk7M9W1Y8wGBoA2eScDZc/E+4n\nW0YJtcXLOobmwFSgv3NoGXCLqu6Lflb9YdYxGLKRtM+3kObyGeKT6DqGQao6FVs5BBq8GDsXtMFg\nMGQd2ehjqAleFMMUqiuBSMcMBoMBMB1rphNVMYjIQOBcoIOIzHIV5WNPIzUYDA2UeLGSMj0dSkNX\nZrHCbp8E9ABuBqa5inYDr6jqN8kXLz7Gx2DIRjLdhm9iJaU/tfIxqOoqYJWIHK6qc8IanAjcXbdi\nGgyGIK5YSWT4moBMpKGbwrz4GIZjB7ZzMxajGAyG5JHpsZJCpqRaUSoZ0pVYPoYRwCXYYTCedhW1\nxF5vYDAYkkSmrxzOdBriKMFNLB9DMdAZmAHc6CraDfxHVdPCAW18DAZD+mF8DOlPbX0M5UA5JoWn\nwWAIw/JblO0sY86qEPcjJX1LsHxWxo94jI8hCiLyb1XtIyK7CY2IKoCqan7SpTMYDGnJzDdmsmf/\nnqjl/hC/ghWlliFdiTVi6OP8bVl/4hgMBkj/WElWXwtruRVTOWQyDXGU4CZurCQAEWmNHRo7qEhU\n9b0kyuUZ42MwZCOZvo4hG8j2PBIJxUoSkVuwp6d+ARx0Dit2SGyDwWCoRrqPeOJhWU4CGogYNzzT\n7y8eXtYxDAWOVtX9yRbGYDBkB6UP+4OfLV/KxDDUEi9htxcB16jq1/UjUs0wpiRDNpIppqSAKT78\nb2mZL1hHXUrCkD4kGnZ7BvC+kzAnmIPBY85ng8HQEOm8PNUSGBLAi2KYA9wOfEiVj8FgMCQTEysp\npbgnJUWaoGR8DLBXVWfFr2YwGOqMNI+VFK3jDJqSoueZN2QAXhTDqyIyA3iaUFNSWkxXNRiykUxf\nOUxZ31RLkBDxljFk4yjBjRfn8ysRDquqpsV0VeN8NmQalhX5jbqkJH6HlCmYWEnpT0LOZ1XtV/ci\nGQzZTTwbdbYRvvirb4n915eh4TDCv7/wWVeBWEo+X3aOHrwscDscuA04QlUHisjxwOmqOjvp0hkM\nGYp7RJCNiiFekDmfz/5r1jBkJl58DA8DDwFTnf1PgX8ARjEYDLXA/QYatU6WzXqJZD7Ly7OPT5qU\nColiE+/7CYyEslXxefExrFTVU0XkfVU92Tn2gar28HQBkQHAXUAOMFtVbw8rbww8AvQEtgHDVHWd\nU3YicB+QDxwATg1fgW18DIZ0JFEbe6YscPNKNL9KXh7s3l3v4hhIfIHbdyLSBif0toj0BnZ5vHAO\ncA9wDrAJWCkii1V1java5cAOVe0qIsOw04gOF5FGwFzgUlX9yAnkV+HlugaDIbV4GfGMGQOdOtWL\nOHVOtudr8KIYfoU9VfVoEXkNOBS4yGP7vYC1TtIfRGQBMARwK4YhVC3hWQj82fncH1ilqh8BqOo3\nHq9pMBiSTLyOsXR51fDA8lmezGeG9MHLrKT3RKQvcAx2kp7/qqrXN/cOwHrX/gZsZRGxjqoeEJFd\nIlIIdAMQkeeAtsA/VPUOj9c1GFJKxq9DMMQkG0cJbryMGHDyO39ci/Yj2a/CDabhdcSpcwhwBvBj\n4AfgJRF5R1WrrauwXF+Sz+fDF5gSYTCkiCzvN7K+Y8xG/H4/fr/fU11PiiEBNgBFrv0jsX0NbtZj\nJwHa5PgV8lX1GxHZACwPmJBEZClwChBTMRgM2UBJXzPkSGcy0ccQ/tJcGiNuSbIVw0qgi4gUA5uB\n4cCIsDrPAGOAt4CLgZed48uAySLSFKgE+gJ/SrK8BkNakO5TVDOxYzR4x5NiEJEOQDGhqT1XxDvP\n8RlcBzxP1XTVT0SkFFipqs9ir4eYKyJrge3YygNV3SkifwLewY7qukRV/1WjuzMY0pSZr8+MmDO5\npG9J2isFL8Qb8WT6yvBsV4Ze1jHcDgwDVmOvJQA7VlJa5GMw6xgMmUjLGS2rKQXIHsUQDxNLKfUk\nuo7hAuAYVd0Xt6bBYADivxFPOn0SZTvLmLNqTn2JZKhDst2U5mXE8C/gYlWt/nqTBpgRgyEdyfY3\n4kQ7xkx/PtmgGBIdMewFPhCRlwjNxzChjuQzGAyGjCJTlYFXvIwYxkQ6rqppMQY2IwZDOpLpb8TJ\nxjyf1JNoPoY5TqC7bs6hmqx8NhgMWUB4PoLwv9Xqx4mVlOkrw7PBlBQLL/kYfMAcoAx7VXJHERnj\nZbqqwWDITOI5z/2BsNP+yB1/eKykWO0b0g8vPoaZQH9V/S+AiHQD5mOHyTYYDBGI90acbfkWGhrZ\nOEpw48XH8B9VPTHesVRhfAyGTCTb8i2Ek+33lw0kOivpHRGZjZ0bAeBS4N26Es5gMKQ/4Tmdw/cb\nGtnuY8jxUOca7MiqE4CJ2Cugr06mUAZDJmBZ9uya8C0b+gmfZQU3Q8PDy6ykfdjB60wAO0ODIRDL\naNLpkyI7T/0WpVIK4UX+EqofbHiYWEmZTbKjqxoMGUkgwF3ZzrJUi5ISwju+cOUYz4QUr9wd8TnL\n+9iMxCgGgyECgQB3c1bN4eELHvZ8XkkJWD4P9Uy+hYwm230McWclpTtmVpIhGTT0WTXJ7vgyfeVz\nNiiGhGYlOesWJlM9H8PZdSahwZBlmHUK2U2mKgOveFnHsAq4D3uKaiAfA6qaFlNWzYjBkAwSHTE0\n9BFHPDJ9xJANJLqOoVJV761jmQyGtCbbZ9UkGxMrKbPxMmKwgK+BfxIadntHUiXziBkxGFJBvDfe\nTB8xJJxvIcPvPx7ZoBgSHTEEwm5Pdh1T4KhEBTMYGirGB5HZZKoy8IqZlWQw1IJERwzZ/kad7feX\nDSQ6KykXOyzGWc4hP3C/yclgMETHrFPIbrLBlBQLL6ake4Fc4K/O/ijn2C+SJZTBkOlkunko2zs+\nQ2y8KIZTVfUk1/7LzhRWgyFryfZZNckm22d1Zbuy9DIr6T3gYlX93Nk/Clioqqd4uoDIAOAu7Eiu\ns1X19rDyxsAj2Il/tgHDVHWdq7wIO7priapWC+RnfAyGZJBsG3lDt8FnwzqGTA9FnuispMnAKyLy\nBXZqz2JgnMcL5wD3AOcAm4CVIrJYVde4ql0O7FDVriIyDPgDMNxV/idgqZfrGQyZgvFBZDaWZTtb\nAfBFKM/wWWdewm6/JCJdgWOwFcMaJxS3F3oBa1W1HEBEFgBDALdiGAIE/ksWYisSnPpDgM+B7zxe\nz2DICNK9szA+hoZNVMUgImer6ssi8vOwoqOdIciTHtrvAKx37W/AVhYR66jqARHZKSKFwA/Ab4Cf\nErqGwmCoVyTCYLukJLZtPFPeGAP3EP7XEBv7OVmhx1zfczp/516INWLoC7wMnBehTAEviiGS/Src\nohheR5w6pcCdqrpX7P/MiLYwAMv1a/b5fPh8Pg+iGQzJo3R5VcKBTOwkzCgh+/D7/fj9fk91oyoG\nVQ2Yd25W1S/dZSLS2aMsG4Ai1/6R2L4GN+uBjsAmEWkE5KvqNyJyGnChiPwBaA0cEJHvVfWvYeeH\nKAaDoS4I+AD8flieWlEykmyf1RVvVlU6jhjDX5pL3dmSwvDifF4EhM9AWog9iygeK4EuIlIMbMZ2\nKo8Iq/MMdtiNt4CLsUcpqGpgQR0iUgLsjqQUDIZkEPxn9pGVmTqjdWxBk1KCHVu8EZN5l0tvYvkY\njgVOAArC/Az5QFMvjTs+g+uA56marvqJiJQCK1X1WWA2MFdE1gLbCZ2RZDBkJenyRunHwvJXn3Jp\niI3bJxPYQo9b9S1SnRJrxHAMMBhoRaifYTdwhdcLqOpzTlvuYyWuz/uAoXHaiD7mMRgykFT7IKpG\nBlHK08T8YUgNsXwMi4HFInK6qr5RjzIZDCkn0ZW5Zp1CbCy/xcw3ZmL1tZj0k0mpFqfOyfTpvl5W\nPs8BJqrqTme/NTBTVS+rB/niYlY+G5JBslfmpnrlc7I7rpYzWrJn/x7GnDSGhy94uFr52KfGMmfV\nHPIa57F7yu46v36qyQTFkOjK5xMDSgHAmTF0cp1JZzCkIyGmFCtKJUM0rL4W1nKLTq06RSyfs2oO\nAHv276lHqeqPdFUGXvGa89mnqt84+4XAclXtXg/yxcWMGAzJwMRKSi4N/f7TgURHDDOB10VkobN/\nMXBrXQlnMDREjA8iu8kEU1IsvMRKekRE3gX6Ya8+/rmqrk66ZAZDFpPqWT+Z3nEZkouXEQOq+rGI\nbMVZvyAiRe7Q2AaDIZR0WaeQtvhdI6YsHDxlurL14mM4H9ucdATwNXbY7U9U9YTkixcf42MwJINE\nbeDGhh6bbMjHkOkk6mO4BegNvKiqJ4tIP2BkXQpoMKQbxgeQXDI9VlI8Mt1U50UxVKjqdhHJEZEc\nVX1FRO5KumQGQwrJBvNPtJDalpX6jisD+8oGhRfFsFNE8oAVwGMi8jUmcY7BkBDGB5HdZOIowY0X\nxTAE+B64AbgUKABuTqZQBkO2k+pYSZnecRmSS0zF4ORHeFZV+wEHgTn1IpXBkGKSFSvJ8lshSiGZ\nhNyD3wJf+iSut/wWZTvLgiugA5T0LcmKEVSqTXWJElMxOGGzD4pIgaruqi+hDIZU485hUpv/a6+d\nW17jvJo37oF075hmvjEza8NhZANeTEl7gA9F5AVcvgVVnZA0qQyGVFMPsZLyGudh9U1O2+nO6fss\nXlGLypxQ5eD3YydHynDSURnXBC/rGMZEOq6qaWFWMusYDMnArENILi1bwp4IA4aSEjNjqb6o1TqG\nwOrmdFEABoMhewhkPYukHCDzZ22luykvHrFMSU/h5HoWkUWqemH9iGQwGBIl3TumSZPsLRqpnrXV\n0ImlGNxDjKOSLYjBYDBkC+mojGtCLMWgUT4bDIY0J9M7JkNqiaUYThKRb7FHDs2czzj7qqr5SZfO\nYEgRJlaSIRHS3ZQXj6iKQVUb1acgBkM6kel27UzvmAypxVM+BoPBYKhXMjxfQ6Yr47jrGBK+gMgA\n4C4gB5itqreHlTcGHgF6AtuAYaq6TkT+B/g9kAvsB36jqq9EaN+sYzA0aGJFUc1UIuVrCA8nElgg\nOOknMaY3GaKSaD6GRC6cA9wDnANsAlaKyGJVXeOqdjmwQ1W7isgw4A/AcGArMFhVvxKRE4BlwJHJ\nlNdgCJBorKT6xo+F5a8ygYXvZxpe8jXs2b8Ha3l6KoZMN+Ul25TUC1irquUAIrIAO1qrWzEMoWqw\nuBBbkaCqqwIVnNSiTUQkV1UrkiyzwZBwrKRk4+54fEkK2ZFKvD7zTIi3FB6wMNUBDL2QbMXQAVjv\n2nOjTe8AAA3mSURBVN+ArSwi1nGC9u0UkUJV3RGoICIXAe8bpWCoN+ohVlJdYVlg+aPvZwuWz6rW\nuaYr7lFCussaiWQrhkj2q3CHQHgdcddxzEgzgJ9Gu4jlfnvy+fD5fDUU02AIw+cOjW2lSoqohJsn\nwt8+0/lttC7I9vtLBn6/H7/f76luUp3PItIbsFR1gLN/I/YaiNtddf7l1HnLyf+wWVUPc8qOBF4C\nxqjqm1GuYZzPhjrHBNEzJEI8H1U6xIKK5XzOSfK1VwJdRKTYmX00HHg6rM4zQCCC68XAywAi0gp4\nFrgxmlIwGGrLzJl2hE+R9PQhxMNnWcEtW7Es+/sJ37L4ltOGpJqSHJ/BdcDzVE1X/URESoGVqvos\nMBuYKyJrge3YygPgl8DRwE0iMg3bvNRfVbclU2ZDwyBWZE+DIVHcU4YDW+hxq75FqhFJX+Cmqs8B\nx4QdK3F93gcMjXDercCtyZbP0DDJdKWQiVMgDZmDWflsaPBE6mNNrKTU437TrlaWBjb6REj3dQ5J\nX/mcbIzz2VAbIq2sTTcCnUeg43Dvp3vHkmwyfXJAOnx/KVv5bDCkK15W1hoMySLdlXmyZyUZMhjL\nbyGlUm2rjwU7M1+fScsZLZN2PcsCfBalkpr7SxS/ZQW3hk4mfF+ZhhkxGNISa7kVM9xBPBvzzJmR\nZx5lUrL58E7fKAEX+/KgSe1/H6kmHUxJsTCKwZCWxIuBEy8ncKZPR033jiPl+C07bEkU5WByRieG\ncT4b0pJ4zkV3OZZWGwlYFpSVwZw5oedlyojBKIbYxJs8kOnO6frAOJ8NDY5AX/rww6mUwhuR8ij4\nsDJCgRmyE6MYDLUi2TZcs47AEItMn1WW7iNCoxgMtSLZNtyatJmJlkTLspPpQFU+hSplawUT7YCx\nkUciDfvSrMIoBkNE0n1WR19N7JUxne4vaELyV+1nYz6F+iTdR5zpOEpwY5zPhojUxPmbic69dJA/\nEzN7GbIH43w2GNKQhpZcJxlYVmga1gDpPvvM+BgMhgaKiXVk8EI6jhyNYshQZr4+M2R1cEnfknr9\nIUWz4Vp+K8Qx7a5fE/nSyQdgMNQ16Z4T2iiGDCVeyIikXz+JnbVlQalk98pVM0qoG2KF5jbUHqMY\nMpR4SiHRN+5kz+pI1JSS6Pl1fX9eFqkZZVB/pPuIM3SVvhWciWZZtrw+y8Lnt/D5UiO/UQxZQKRZ\nNbVZZxDqyHOdUwNHnuWzol4vpH3LbW7y2LiL5ZLY+Yn+s7nXIQQ6/MDaA8tnBcsC+4b6xcRKSgyj\nGDKUVM/TDo9LVNdtR5ppYjBkC/H+Z4KLHn3JliQyRjFkKKl+C3J33PVtIbEsIOLs6+QQbXaRzxcq\nk3tRmjEbGWpC+M8l1T8foxgaKJHe+OvSkRevfYkzIkh0ZXN9YNYhGJJFqqczG8WQQYSbWPLy7GOT\nJtW8rWS/8Sfafn38M3hdZ2DIbMzMpZqTdMUgIgOAu7DTiM5W1dvDyhsDjwA9gW3AMFVd55RNAS4D\nKoGJqvp8suXNJPbsia4Y4vsg/IAvamk6R0+1LMDv7fxIs4UA8FmU7Szz1IZbSfn9fmMmqgV+vx+f\n2/aWZHJfL6Fiv7PTt3p5Mn1kdUHgNzb2rrFYfqveF78lVTGISA5wD3AOsAlYKSKLVXWNq9rlwA5V\n7Soiw4A/AMNF5HhgKHAccCTwooh0NYGRQomWpSz+D8dPLMWQyKwOL/9oCc8Kcp0f680fQmcLBfaX\nLy+FnRF6DIdonX99d3DZQn0/txn9raosfhG+5lT6yLxiWeD3lzG2R6eqfUJ9W8kiJ8nt9wLWqmq5\nqlYAC4AhYXWGAIE8WwuBs53P5wMLVLVSVcuAtU579Yrf70/aebHqWBaMHeuv9majCq+84qdviRXc\norUVfqy29xKJkpKqLTL2tfLyvLXnsyx6jB0bsu8257j3/X5/tXI3O8vKIksUfv+dlwPLq8oty96S\n+NziUZtreT0nXr1o5bX5baX6mU2aBLt32/8v0Tv+6ud5bb+2ZXX13AK//2SZPJNtSuoArHftb6B6\n5x6so6oHRGSXiBQ6x99w1dvoHKtGMFLml86rQbmvKicsUNLXfnvodP1YyneWOR2Cx/p+P/ysvObt\nvwJ0il3/ghuvZ9exraLLU2xBZx+WM3Ut2H7Zcujnqo/9gxr7sJ/ycuxzIXh+377OvP9/FkOPTvb1\n+gKtymBXJwLrAKrNtvky9FXL/SZuWW4HWdj5WICfnLP9HNapenm4Dd/ng+VlfvigrOq7LOtLcatO\nRCL8n6dsZxnlO13nflAMdLKH4JYVnC3k9/uxLB++h/1QHjg5cvvut9v6fNutzbW8nhOvXrTySMfj\nPaN0emYRw7RYwEN9odxfzQdRrf4r2P9v/hLwWyEB+vx+P378EcPABNqPWT/QNoH2oaTEF6zfyRnV\nS6kEzafLpRTK+sLOTrCrE53GWnTqVDXKjdfPFY+x68ciqWG3ReQioL+qXunsjwROVdWJrjofOXU2\nOfuBkcEtwOuqOs85/ndgiar+M+waxrRkMBgMtSBVYbc3AEWu/SOxfQ1u1gMdgU0i0ggoUNVvRGSD\nczzWuVFvzGAwGAy1I9k+hpVAFxEpdmYfDQeeDqvzDDDG+Xwx8LLz+WlsJ3RjEekMdAHeTrK8BoPB\n0OBJ6ojB8RlcBzxP1XTVT0SkFFipqs8Cs4G5jglpO7byQFVXi8jjwGqgArjWzEgyGAyG5JPxqT0N\nBoPBULck25RkMBgMhgzDKAaDwWAwhJC1ikFEjhWRe0XkcRG5OtXyZAoiMkREHhCR+SLy01TLkwmI\nSGcR+bvjEzN4QESai8jDInK/iFySankyhfr6rWW9j0FEBJijqqNTLUsmISKtgDtU9YpUy5IpiMjj\nqjo01XJkAs6apm9UdYmI/H979xciVRnGcfz7s4y1KMIuQpPqIk0qwQrKsCKjMoi9SI2UtJBAKLCL\nsLqoIBKifxQhlheVkqSSlUgq9Ef7QwRBmmVqFKiVEdpfIQ2p7enivOOeM85sO7O7s2dnf5+b2Xnf\n95x99uHsPHvO2fO+ayJi9mDHNJQM9LFW+jMGSS9JOiDpy6r2GyV9LekbSQ/U2bYT2ABsakWsZdKX\nvCUPAUsHNspy6YecDVtN5G4c3bMidLUs0JIp6zFX+sIALAem5xtyk/NNBy4E5kiamPrmSXpG0piI\neCsibgLmtjroEmg2b2MlPQ5siojtrQ56kDV9rFWGtzLYkmkod2RFYVxlaKuCLKFG83Zs2EAGVfrC\nEBEfA79XNdednC8iVkbEvcAESc9JWgZsbGnQJdCHvM0kmw13lqQFrYx5sPUhZ0clvQBMHq5nFI3m\nDlhHdowtJXvIdVhqNG+SRrfiWBuqC/X87+R8EVGcOtOgd3lbAixpZVAl15uc/Qbc1cqghoi6uYuI\nI2RrrdjxespbS4610p8x1FHrNKq976L3D+etcc5Z85y75gx63oZqYejN5Hx2POetcc5Z85y75gx6\n3oZKYRDFKtqbyfnMeWuGc9Y85645pctb6QuDpFXAJ2Q3k7+XND8iuoCFZJPz7SRb6W33YMZZNs5b\n45yz5jl3zSlr3tr+ATczM2tM6c8YzMystVwYzMyswIXBzMwKXBjMzKzAhcHMzApcGMzMrMCFwczM\nClwYrG1J6pK0TdLn6fX+wY6pQtJaSeemr/dJ+rCqf3v1HP019rFH0viqtmclLZJ0kaTl/R23DQ9D\ndXZVs944HBGX9OcOJZ2Qnkztyz4uAEZExL7UFMCpks6KiB/T3Pu9efJ0Ndl0CYvTfgXMAq6IiP2S\nzpI0LiL29yVeG358xmDtrOZiJpL2SnpE0lZJX0iakNpPTitqfZr6OlP7HZLWS9oMvKfM85J2SXpH\n0kZJMyRdK+nN3Pe5TtIbNUK4DVhf1fYa2Yc8wBxgVW4/IyQ9meLaLqmy3OqaNLbiamBvrhBsyO3T\nrNdcGKydjaq6lHRLru9gRFwKLAMWpbYHgc0RcTlwLfC0pFGp72JgRkRMA2YAZ0fEBcA84AqAiNgC\nTJR0RtpmPvByjbimAltz7wN4Hbg5ve+kuHjNncAfKa7LgAWSzomIHUCXpElp3Gyys4iKz4CrekqQ\nWS2+lGTt7EgPl5LWpdetdH8g3wB0SrovvT+J7umP342IQ+nrK4G1ABFxQNL7uf2uBOZKWgFMISsc\n1cYAP1e1/Qb8LulWYBfwV67vBmBSrrCdBowHviM7a5gtaRfZKl8P57Y7CIyt+dOb9cCFwYaro+m1\ni+7fAwEzI+Lb/EBJU4DD+aYe9ruC7K/9o8DaiPi3xpgjQEeN9teApcDtVe0CFkbEuzW2WU02C+dH\nwBcR8Uuur4NigTHrFV9KsnbW6ILpbwP3HNtYmlxn3MfAzHSv4UzgmkpHRPxEtqjKg2RFopbdwHk1\n4lwHPEH2QV8d192STkxxja9c4oqIPcCvwOMULyMBTAC+qhODWV0uDNbOOqruMTyW2uv9x89iYKSk\nLyXtAB6tM+4NslW2dgKvkF2OOpTrfxX4ISK+rrP9JmBa7n0ARMSfEfFURPxTNf5FsstL21Jcyyie\n7a8Gzqf78ljFNGBjnRjM6vJ6DGZNkHRKRByWNBr4FJgaEQdT3xJgW0TUfI5AUgewJW0zIL+AaeWv\nD4Ar61zOMqvLhcGsCemG8+nASOCJiFiZ2j8D/gSuj4i/e9j+emD3QD1jIOk8YGxEfDQQ+7f25sJg\nZmYFvsdgZmYFLgxmZlbgwmBmZgUuDGZmVuDCYGZmBf8BTJpf8CIqdVoAAAAASUVORK5CYII=\n", + "image/png": "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\nvPBCdR+hwWCIQFYrhnSlsrKS4cOHM2rUKI4++uigtO+//54dO3bw8MMP06VLl8DxIUOGsHz5cjZv\n3szjjz/OHXfcwT//+c+w5T/33HOMHj2a4447jkMPPRTLsoJ6OH//+9+5//77KSgooHHjxtx6663M\nnDkzbFkXX3wxRxxxBACXXnopnTt35sMPPwTg8ssv55lnDob6nj59OpdffnngGtdeey2nnXYaIsKI\nESNo0KAB77//Pu+//z6VlZWMGTOGevXqcfHFF3P66afX4EmmLyW9SwJbTbB8VmAzGEIx5qpJol69\nelRUVAQdq6iooH79+gCcf/75vPPOO4gIjz32GMOG2WEsVJXhw4fToEEDHnroobBlH3rooVxzzTUc\ndthhrFixgpYtW3LssccG0s8880zGjh3L888/z5AhQ6qcv2HDBk477WCI7cLCwsD3zZs3s2fPHrp1\n6xY4duDAgYhDY0899RT3339/YKL7hx9+YMuWLQB0796dvLw8Fi5cSKtWrfj6668ZOHAgYLs0eeqp\npwL3qKpUVFSwYYMd56lt27ZB13HLmA3UxETVTenC0lory5B5ZLVisKzqDQVVN380OnToQFlZGccc\nc9Aj+TfffBPYnzdvXtjzrrzySrZs2cK8efOoV69exPL379/Pnj17WL9+PS1btqySHs1Ms3Xr1kHm\npuXl5YE5hpYtW9KoUSO+/PJLWrduHfUe16xZw9VXX82CBQs488wzATjllFOCrjty5EimT59Oq1at\nuOSSS8jNzQWgffv2jB8/nttuu61KuYsWLWL9+vVVrtWpU6eo8hgMBm+YoaQkMWTIECZOnMj69etR\nVd58803mzJnDJZdcEvGca6+9lhUrVvDKK68EKlA/b775Jp999hkHDhxg586d3HzzzTRv3pzjjjsO\ngFdeeYXt27cD8OGHHzJlyhQuvPDCsNcZPHgwTz75JMuXL2fPnj1B8wciwlVXXcVNN93E5s2bAVi/\nfj2vv/56lXJ++OEHcnJyaNmyJQcOHOCJJ57giy++CMozfPhwXnrpJZ555pnAMBLAVVddxaOPPhoY\ndvrhhx+YN28eP/zwA2eeeSaHHHIIDz30EPv37+fFF18M5DMYDPFjFEOSmDBhAmeddRY9e/akefPm\n3HrrrcyYMYPjjz8+bP41a9bw+OOP89lnn3HEEUcE1iL4x/a3b9/OsGHDaNq0KZ07d2b16tXMnz8/\n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\nalQgII2f77//nh9//DHQGvczZMgQrrnmGo444gjef/99Lr74Ypo1a8aQIUPCXkNEuPPOO6lfvz5n\nn302/fviYcdKAAAgAElEQVT359lnn2X8+PEADBo0iB49egBQv359nn32WZYuXUqjRo0oLCxk3Lhx\nTJ8+PaAY3OE4hwwZwt13301JSQn169fn5z//Obm5uaxatYqTT7Y9rfTv35+f/exnANx1110UFBSw\nfv162rZtC1S/x5XOhBvWSfc4C4nGDFXFh9cIbk2Bbc73ggTJklXUq1ePioqKoGMVFRXUr18fgPPP\nP5933nkHEeGxxx4LOJNTVYYPH06DBg0C8ZlDOfTQQ7nmmms47LDDWLFiBS1btuTYY48NpJ955pmM\nHTuW559/PqJiaNasGQ0bNgzsFxYWsmHDhsC+O6Tnli1bqKioCFJEhYWFQSE9jzjiiCD5AFq2bBl0\nbPfug61kd/mNGzemefPmbNiwIaAYsp10r/dMxZ3aeFEMk4BPRWQBIMDZQPxR61OASN3Qmu5Xhw4d\nOlBWVsYxxxwTOPbNN98E9ufNC28dfOWVV7JlyxbmzZtHvXr1Ipa/f/9+9uzZw/r164MqYD+xXEH4\nex7+SnzNmjWcdNJJQef7admyJfXr16e8vDyggMrLy+OqxN0hQ3fv3s22bduySinEaw2U6b6SYmFc\nZsRHVMUg9r//30AP7HkGAX6vqt9GO88QmyFDhjBx4kROPPFE2rRpw1tvvcWcOXMCQzXhuPbaa1mx\nYgVvvvkmubm5QWlvvvkmLVu25OSTT2b37t3cfvvtNG/enOOOOw6AV155hbPPPpumTZvy4YcfMmXK\nFO65556I11JVSkpKuOuuu3j//feZO3dulTkLPzk5OQwePJjx48czbdo0tm7dyv3338/vfve7qOVH\nY968ebz33nucdtpp/PGPf6RHjx60adMGgFatWrF69WqOPPLIqGWkM/FWxqWu+Ds1qRcTvbLaVNyp\nTVTFoKoqIi+rajfglTqSKSuYMGECJSUl9OzZk+3bt3PUUUcxY8YMjj/++LD516xZw+OPP07Dhg0D\nwzLuYabt27dz4403sn79eg499FBOP/105s+fH1Ags2bN4oorrmDfvn20a9eO2267jeHDh0eUr3Xr\n1jRr1ow2bdrQuHFjHnvsscDEczhz0SlTpnDjjTdy5JFHcuihh3L11VcH5hfCEVpG6P5ll12GZVks\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1388,21 +1328,15 @@ } ], "source": [ - "chi_d_u235 = chi_delayed.xs_tally.get_values(nuclides=['U235'])\n", - "chi_d_pu239 = chi_delayed.xs_tally.get_values(nuclides=['Pu239'])\n", - "chi_p_u235 = chi_prompt.xs_tally.get_values(nuclides=['U235'])\n", - "chi_p_pu239 = chi_prompt.xs_tally.get_values(nuclides=['Pu239'])\n", + "chi_d_u235 = np.squeeze(chi_delayed.get_xs(nuclides=['U235'], order_groups='decreasing'))\n", + "chi_d_pu239 = np.squeeze(chi_delayed.get_xs(nuclides=['Pu239'], order_groups='decreasing'))\n", + "chi_p_u235 = np.squeeze(chi_prompt.get_xs(nuclides=['U235'], order_groups='decreasing'))\n", + "chi_p_pu239 = np.squeeze(chi_prompt.get_xs(nuclides=['Pu239'], order_groups='decreasing'))\n", "\n", - "# Reshape the betas\n", - "chi_d_u235.shape = (chi_d_u235.shape[0])\n", - "chi_d_pu239.shape = (chi_d_pu239.shape[0])\n", - "chi_p_u235.shape = (chi_p_u235.shape[0])\n", - "chi_p_pu239.shape = (chi_p_pu239.shape[0])\n", - "\n", - "chi_d_u235 = np.append(chi_d_u235[0] , chi_d_u235)\n", - "chi_d_pu239 = np.append(chi_d_pu239[0], chi_d_pu239)\n", - "chi_p_u235 = np.append(chi_p_u235[0] , chi_p_u235)\n", - "chi_p_pu239 = np.append(chi_p_pu239[0], chi_p_pu239)\n", + "chi_d_u235 = np.append(chi_d_u235 , chi_d_u235[0])\n", + "chi_d_pu239 = np.append(chi_d_pu239, chi_d_pu239[0])\n", + "chi_p_u235 = np.append(chi_p_u235 , chi_p_u235[0])\n", + "chi_p_pu239 = np.append(chi_p_pu239, chi_p_pu239[0])\n", "\n", "# Create a step plot for the MGXS\n", "plt.semilogx(energy_groups.group_edges, chi_d_u235 , drawstyle='steps', color='b', linestyle='--', linewidth=3)\n", @@ -1443,7 +1377,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb index c6bf077f82..eb2471e222 100644 --- a/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb @@ -30,7 +30,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.py:1357: 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", @@ -456,7 +456,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -607,8 +607,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", - " Git SHA1: ad9fe27d26940a7120ed920d37d9cb176bde6402\n", - " Date/Time: 2016-08-06 15:52:56\n", + " Git SHA1: be7e6e035d22944a8c80ca32f99935b6822854c9\n", + " Date/Time: 2016-08-10 15:48:40\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -713,20 +713,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.2200E-01 seconds\n", - " Reading cross sections = 2.3800E-01 seconds\n", - " Total time in simulation = 7.5197E+01 seconds\n", - " Time in transport only = 7.4942E+01 seconds\n", - " Time in inactive batches = 4.8400E+00 seconds\n", - " Time in active batches = 7.0357E+01 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 2.1900E-01 seconds\n", - " Total time for finalization = 8.0000E-03 seconds\n", - " Total time elapsed = 7.5653E+01 seconds\n", - " Calculation Rate (inactive) = 5165.29 neutrons/second\n", - " Calculation Rate (active) = 1421.32 neutrons/second\n", + " Total time for initialization = 5.2300E-01 seconds\n", + " Reading cross sections = 3.3300E-01 seconds\n", + " Total time in simulation = 7.3672E+01 seconds\n", + " Time in transport only = 7.3396E+01 seconds\n", + " Time in inactive batches = 5.0250E+00 seconds\n", + " Time in active batches = 6.8647E+01 seconds\n", + " Time synchronizing fission bank = 1.3000E-02 seconds\n", + " Sampling source sites = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 2.0800E-01 seconds\n", + " Total time for finalization = 7.0000E-03 seconds\n", + " Total time elapsed = 7.4227E+01 seconds\n", + " Calculation Rate (inactive) = 4975.12 neutrons/second\n", + " Calculation Rate (active) = 1456.73 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1249,7 +1249,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -1260,7 +1260,7 @@ "data": { "image/png": "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\nDmZmZmZmZmbW5TzgYGZmZmZmZmZdzgMOZmZmZmZmZtblPOBgZmZmZmZmZl3OAw5mZmZmZmZm1uU8\n4GBmZmZmZmZmXc4DDmZmZmZmZmbW5TzgYGZmZmZmZmZdzgMOZmZmZmZmZtblPOBgZmZmZmZmZl3O\nAw5mZmZmZmZm1uU84GBmZmZmZmZmXc4DDusJSZMlnZlx2ycl7d/dfapqcz9JT/Vkm2ZmPck5bGZW\nPmexWXPxgEMdkuZLelXSy5Kel3S9pJ0y1jpIaouyO9CI9N91ZdZfYmbWGOdwt1gnc7jqZ+FlSTeV\n3Sez3sJZ3C3WySwGkHSKpCck/UvSo5KGlt0na24ecKgvgEMiYnNgB+AfwIUZa8U6HCTNTlJrCW32\nAS4A7u7pts16Medwkyohh1f9LKSP0T3cvllv5ixuUj2dxZI+C3wGOCgiNgU+DPxfT/bB1j0ecOiY\nACLidWAqsOuqFVJfSedKWiDpGUk/krShpI2BG4EdJf0zHQ3uL+ldkv4iaamkpyVdmP4RW6xj0h6S\n7pP0kqQpwEZV6z8s6YG0vTskvb3Ofur2S9JFks6t2n6apC+mz3eQNFXSPyT9XdIXKrbbSNLPJb0g\n6RHgXZ28n1GS5qb9+KGkGZKOTdeNS9/D+ZKeB8Yr8Y101P3ZtK3N0u3XGk2vnDInabyk30iakv77\n/FXS7p185F8GbgbmdrKdmXUt57BzeNUuOllvZt3HWdzLs1iSgG8CX4qIxwAi4smIeLGj92PmAYcM\n0sD8BHBXxeJzgKHA7ul/dwS+GRGvAgcBiyNis/SbmGeBNuC/gH7A3sD+wIkF+7MBcA1wWbq/3wAf\nq1i/JzAJOD5d/xNgWlpXraN+XQaMrdjv1un6K9PQuR54gGS0+wDgFEkfSjefALwxfRwIjOvg/Wyd\nvofTgK2Bx9K+VHo38DdgW+DbJKOrnwL2A94EbAb8sGL7zkbTDwV+DWwF/Aq4VnVGiSUNTts7Ex/w\nmpXCObxqv70yh1NXSFoi6aYMgxNm1g2cxav22xuzeED6eLukhenAyoRO9m0GEeFHjQfwJPAy8AKw\nHFgE7Fax/l/AGyte7w08kT7fD1jYyf5PAa4u2Lf3AYuqlt0JnJk+vxiYWLV+LvC+ive2f5Z+AY8C\nB6TPTwJuSJ+/G5hfVXs6MCl9/nfgQxXrjq/3mQCfBO6sWrYQODZ9Pq5GW7cC/1nx+i3AMpJBtLU+\n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\neuPVxnRsyZiOLXtfXzzliVq7DchEZX2NMUvHOIJsgsgeRwPXR0Q38Likm4E3A0tqfjgzsyGkH+Zw\nMDOzJjmL81MaejdwJ5Ci68FaP07W176qu9y5StTd+sY3ljrXL+I9hWu+1H5yqXM92r1P8XPFfxWu\nmfqtEwvXAHzg5FmFa8ZFuZVVfhUdxWs+/P5S5/rsles1HDZ0/kFnFK55501zCtcAfDr+t3DNR9uu\nISKK/Q+ZSIpbYkyuff9R89c7T/rL/31kk0b+mWy82VEV3b2QdALwhog4QdJE4PCI6Jk08jLgLWRD\nKW4ARkdESPoh8ERETKpxzYcCp0XEARXbTgX2iIjjJW2ermNCRNyb/9vYsJTJYYB2rWq803rnKpff\n83b+h8I1v4x3lzrXf7SfX7hmzROvKH6erc5uvFMN519SPEfGHzez1LneyW8L18yOw0qd6zefKP7n\n5umXTm68U5WvvH9K4RqAg352beGa4+KSwjWv4U0c2HZWqSwuksNQO4utdUrdE5fI4excxbO4TA5D\nuSz+j/avFa5Z88SrCtcAfHar4vdzF15yaqlzlcniMjkM5bJ4sHIYymVxmRyGclncynvijY17OJhZ\nbkNtvFqOMWYTWHc4BcB3gGmSehoYpr6cGxvM7OXFQyrMzFrPWZyfGxzMLLcm1xzu9/FqjcaYRcR6\nM5tHxPP1zmFmNtQ1m8NmZtY8Z3F+bnAws9w8Xs3MrLWcw2Zmrecszs8NDmaWW7Prv5uZWXOcw2Zm\nrecszs/flJnl5vFqZmat5Rw2M2s9Z3F+bnAws9wcrmZmreUcNjNrPWdxfm5wMLPcPF7NzKy1nMNm\nZq3nLM7PDQ5mlpvHq5mZtZZz2Mys9ZzF+fmbMrPc3H3MzKy1nMNmZq3nLM7PDQ5mltsqrzlsZtZS\nzmEzs9ZzFufnBgczy83dx8zMWss5bGbWes7i/PxNmVlu7j5mZtZazmEzs9ZzFufnBgczy83hambW\nWs5hM7PWcxbnNygNDjfv8qZC+4+PGaXOc7WOKlzTdt0fSp1Ls6NwTXeXSp1r2zX3FK5ZOfPvC9d0\nn1S4BID2X36ocM0XDvxyqXN9QV8rXNM2rtz3fsH3Ti9c0/3L4uc5jVuLFwG/VkeJqmtKnauHw3XD\nddsu+xSu+UBcXbhmto4sXAPQNv++wjW6pHgOQ7ks3p6HCtc8celOhWsAuo8rXtP+mwmlzvXl/b9Y\n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\n+8b/K1zTdUrx/wY/ru8XrgH4Il8uXLOHlhERxS+S7P/ltuXVoxVq695hi5rnSctiXsDaZTG/Urn2\nu6RNyVaQeBNp7feIWJJqzyBbxWI1a5fFfDvwG+AesiEWAZyZllRD0jTgloi4uOo6jgbOBLqBn0bE\nGcW+jQ1LmRwG0CXFs6fr7aX+82KbrurOLo1t2fZsqXM9pNcXrml/sPj3d96unylcA/BZ/W/hmrZa\nzW05aFLx/Onq+mSpc02Pmqss9ukT515euKbrtHL/DR5b4ns/my8WrtmUA3m1ZpXK4iI5DPWz2Fqj\n1D1xiRyGcllcJoehXBYPVg5DuSwuk8NQLovL5DCUy+LBymEol8VlchjgLM4qXLOrHm/pPfHGxEMq\nzCy37q7mIqO/136PiJuh/jTBEXFsne0zgBm5L9zMbIhoNofNzKx5zuL8/E2ZWX7uGmZm1lrOYTOz\n1nMW5+YGBzPLz+FqZtZazmEzs9ZzFufmBgczy2/NRj0Ezcys9ZzDZmat5yzOzQ0OZpbfmlZfgJnZ\nRs45bGbWes7i3Lwsppnl92LOh5mZDYy8OewsNjMbOE3msKRDJS2SdL+k02q8P1zSTEmLJd0iaVTF\ne2ek7QslHdLomJKmSXpQ0l2S5knaJ23fQ9LvJb0oaVLF/ptKui3tf4+k3gney3APBzPLb3WrL8DM\nbCPnHDYza70mslhSG3AhcBDwGDBX0jURsahit+OBpyJitKQJwLnAREl7ka3oticwErhR0mhADY55\nSkRcXXUpTwL/DhxeuTEiVkk6ICJekNQO3Czp5xFxe5nP6x4OZpZfV86HmZkNjLw57Cw2Mxs4zeXw\nOGBxRDwcEauBmcD4qn3GA5em57OAA9Pzw4CZEbEmIpYAi9PxGh1zvb/3R8QTEXEnNQaIRMQL6emm\nZJ0Uou6nacANDmaW35qcDzMzGxh5c9hZbGY2cJrL4R2BpRWvl6VtNfeJiC7gGUlb16h9NG1rdMyz\nJc2XdJ6kTRp9PEltku4ClgM3RMTcRjX1uMHBzPLzTa6ZWWv1Q4PDAI0dnipphaQ/VB3r3LTvfElX\nStoybd8vjQ/ueRyeto+UdJOkBWns8EllvyozswHTXA7XWuKiugdBvX2Kbgc4PSL2BPYDtgHWy/31\nCiO6I+JNZMM23pKGcpTiORzMLD83JpiZtVaTOTwQY4cjIoBpwLeBH1adcg7ZzW63pK8AZ6THPcC+\nafsOwN2SZqdPOCki5kvaArhT0pyq6zMza616WXx3J/yhs1H1MmBUxeuRZHlcaSmwE/BYmkdhRESs\nlLQsba+uVb1jRsSK9M/VkqYBpzS6wB4R8aykTuBQYEHeukru4WBm+bmHg5lZazXfw2Egxg4TEb8D\nVlafLCJujIju9PJWsptgIuLFiu2vBLrT9uURMT89fw5YyPpdjc3MWqte7u7dAUedtfZR21xgN0k7\nSxoOTARmV+1zLXBMen4kcFN6PpusAXi4pF2B3YDb+zpmatRFksgmiLy3xjX19pCQtK2kEen5K4F3\nA6Ubfd3Dwczyc2OCmVlrNZ/Dtcb5jqu3T0R0SaocO3xLxX49Y4fzOo6sgQMASeOAS8h+lftYRQNE\nz/u7AGOA2wqcw8xs4DWRxSlXTyTrAdYGTI2IhZKmAHMj4jpgKjBd0mKy1SQmptoFkq4g622wGjgh\n9TKrecx0ysskbUvWqDAf+DSApO2BO4BXAd2STgb2Al4DXJp6xLUBl0fEz8p+XmXXN3AkxYNdry5U\n89qfLy91rgvfe1zhmhMf+V6pc/Fkw7k21qOHyn3X//ShywvXrNbwwjVd3e2FawDm/Kj6h5HGXnv0\nH0udaw/uK1zzV72q1LlWxaaFa8pc3zZ6snANwLY8Ubjmi/oGEVFrjFdDkoKZOf8bnqjS57H+Jyke\n6dqmcN2oXz1euOaSA44qXAPwL4//oHBN99OblzpXmSx+33uuLFwzTOXWzOrqLv5bwHVXH1nqXHsf\nUXwOqFHr/F01vxe0WeGaMjEymsWFawBepb8WrtmpxHexM3vxYZ1UKiMb5vAfO2FB59rXV05Z7zyS\nPgwcEhGfSq//GdgvIk6u2OfetM9j6XVPT4YvA7+PiBlp+w+An/YstSZpZ+DaiNinxrV/HhgbER+q\n8d4eZEMx3hkRL6VtWwCdwJcj4pq+vpcNRZksLpPDUC6Ly+QwlMviwcphKJfFZXIYymXx64+YV+pc\nu7KkcM1g5TDArjxYuGYrPV3qXGWy+BR91/fEg8Q9HMwsPy+zZmbWWn3l8Os7skePK6fU2msgxg73\nSdIxwPtYOzRjHRFxn6TngTcA8yQNIxvKMf3l0thgZi8zvifOzXM4mFl+nsPBzKy1mp/DYSDGDvcQ\nVTOlSzoUOBU4LCJWVWzfJTVm9PSM2B16f7K9BFgQERf08U2YmbWO74lzcw8HM8vPwWlm1lpN5vAA\njR1G0gygA9hG0iPA5IjoWbliOHBDNl8Zt0bECcA7gNMlvUQ2YeS/RcRTkt4OfBS4J60BH8CZEXF9\nc5/czKwf+Z44Nzc4mFl+Dlczs9bqhxxOf3nfo2rb5Irnq8iWv6xVew5wTo3tR9fZf3Sd7f8H/F+N\n7TcD5SaVMjMbLL4nzs0NDmaWn8PVzKy1nMNmZq3nLM7NcziYWX5NjleTdKikRZLul3RajfeHS5op\nabGkWySNqnjvjLR9oaRD0raRkm6StEDSPZJOqth/pqR56fGQpHlp+86SXqh476J++GbMzAZH83M4\nmJlZs5zDubmHg5nl10RwprV8LwQOIpvVfK6kayJiUcVuxwNPRcRoSROAc8kmKNuLrHvvnmSzot8o\naXS6okkRMT8toXanpDkRsSgiJlac++tA5VpLf4qIseU/jZlZi/gG1sys9ZzFubnBwczye7Gp6nHA\n4oh4GLIeCMB4oLLBYTzQM454FtlkYwCHATMjYg2wpGdN+Ii4DVgOEBHPSVoI7Fh1TMgaKw6oeL1R\nr4dsZhuw5nLYzMz6g7M4Nw+pMLP8mus+tiPZ2u49lqVtNfeJiC7gGUlb16h9tLpW0i7AGOC2qu3v\nBJZHxAMVm3eRdKekX0l6R90rNjMbajykwsys9ZzDubmHg5nlVy84l3TCw52Nqmv1Koic+/RZm4ZT\nzAJOjojnqvY7CvhRxevHgFERsVLSWOAnkvaqUWdmNvT4BtbMrPWcxbm5wcHM8qsXriM7skeP30yp\ntdcyYFTF65Fkf/mvtBTYCXhMUjswIjUMLEvb16uVNIyssWF6RFxTebB0jCOA3vkaImI1sDI9nyfp\nAWB3YF6dT2dmNnT4JtfMrPWcxbl5SIWZ5bc656O2ucBuaZWI4cBEYHbVPtcCx6TnRwI3peezySaP\nHC5pV2A34Pb03iXAgoi4oMY5DwYWRkRvw4akbdMElkh6bTrWgw0/u5nZUJA3h+tnsZmZNcs5nNug\n9HDY+em/FNp/8fuqh3Xn82s6Ctd077xJqXO1nVe8Jk4p1xT2Nv2+cM3t8ZbCNVc9dHThGoBpR09s\nvFOVWXy41Ll++qnidXpVda/9fLrOKz6vYNsR+xc/0Z7FSwDO+J8vlStsRlf50ojoknQiMIessXNq\nRCyUNAWYGxHXAVOB6WlSyCfJGiWIiAWSrgAWkMX3CRERkt4OfBS4R9JdZMMszoyI69NpJ7DucAqA\n/YH/krQ6faJ/jYineZkb+cSThWsWH1g8i29nXOEagDWv3rxwTdv/lToVmx6/snDNu3Vj4Zo74s2F\nawCuWPmRwjXTjjiq1Lkup/i5fv6pI0qdS9sVz+Ku/y6Rw0e/p3ANAK8vfn1fnXxS452qdDf7W08T\nOWytVzSLy+QwlMviMjkM5bJ4sHIYymVxmRyGcllcJoehXBYPVg4DtJX5a0WJHIZyWdw0Z3FuHlJh\nZvk12X0sNQTsUbVtcsXzVVD7T96IOAc4p2rbzUB7H+c7tsa2q4CrCl24mdlQ4W68Zmat5yzOzQ0O\nZpafw9XMrLWcw2Zmrecszs1zOJhZfi/mfJiZ2cDIm8POYjOzgdNkDks6VNIiSfdLOq3G+8MlzZS0\nWNItkkZVvHdG2r5Q0iGNjilpmqQHJd0laZ6kfdL2PST9XtKLkiYVub4i3MPBzPJza66ZWWs5h83M\nWq+JLE6Tl18IHES26tpcSddExKKK3Y4HnoqI0ZImAOeSTaC+F9nw4z3JVm27UdJosiXk+zrmKRFx\nddWlPAn8O3B4ievLzT0czCy/NTkfZmY2MPLmsLPYzGzgNJfD44DFEfFwWq59JjC+ap/xwKXp+Szg\nwPT8MGBmRKyJiCXA4nS8Rsdc7+/9EfFERNxZ40rzXF9ubnAws/y8BJCZWWt5WUwzs9ZrLod3BJZW\nvF6WttXcJyK6gGckbV2j9tG0rdExz5Y0X9J5khot05jn+nLzkAozy89LAJmZtZZz2Mys9epl8eOd\n8ERno+paa41Wrwlab59622t1JOg55ukRsSI1NHwfOA04u8nry809HMwsP3fjNTNrrX4YUjFAk5VN\nlbRC0h+qjnVu2ne+pCslbZm2v1vSHZLuljRX0gE1rmN29fHMzIaEerm7VQeMPmvto7ZlwKiK1yPJ\n5kqotBTYCUBSOzAiIlam2p1q1NY9ZkSsSP9cDUwjGzLRlzzXl5sbHMwsPzc4mJm1VpMNDhWTgb0H\n2Bs4StLrq3brnawMOJ9ssjKqJit7L3CRpJ5fwqalY1abA+wdEWPIxhqfkbY/DnwgIt4IfAKYXnWd\nHwSe7eurMDNrmebuiecCu0naWdJwYCIwu2qfa4Fj0vMjgZvS89lkk0cOl7QrsBtwe1/HlLRD+qfI\nJoi8t8Y1VfZqyHN9uXlIhZnl5zHBZmat1XwO904GBiCpZzKwytnHxwOT0/NZwLfT897JyoAlknom\nK7stIn4naefqk0XEjRUvbwU+lLbfXbHPHyVtKmmTiFgtaXPgc8CngCua/sRmZv2tiSyOiC5JJ5I1\nyLYBUyNioaQpwNyIuA6YCkxPOfsk2V/6iYgFkq4AFqSrOCEiAqh5zHTKyyRtS9aoMB/4NICk7YE7\ngFcB3ZJOBvaKiOf6OFZhbnAws/xWtfoCzMw2cs3ncK3JwKq7164zWZmkysnKbqnYr2eysryOI5vt\nfB2SPgzclbr7AnwZ+DrwtwLHNjMbPE1mcURcD+xRtW1yxfNVZD3KatWeA5yT55hp+0F1jrOCdYdn\nNDxWGW5wMLP8PFzCzKy1+srhZzrh2c5GRxiIycoakvR5YHVEzKjavjfZjfPB6fUbgd0iYpKkXeqc\n08ystXxPnNugNDicstV/F9r/cP2k1HnGML9wzafi2413qmHeBd8pXDNGixrvVEPbld8qXDP+iB8V\nrul+bbk/09vuXO/HioZ0XbmJTrsvLl7Tdme5zzXi+b8UrtntquWFa0bxSOEagD0p3bOpPA+p2GB9\nabvTC9ccpmsL1+zB/YVrACbFeg31DS3+3IWlzvU6PVq4pu3K7xau+cARPy5cA7Bq6y0L17T9sXjm\nA2hW8Swuk8MAbQ8Ur9mua1nhmn1mFP/3C+WyeBceLlyzPdsUrllHXzm8WUf26LFsSq29ikxW9ljl\nZGWS6k1W1idJxwDvY+068j3bRwJXAR9L68kD/CMwVtKDwCbAqyXdFBHr1G6oPr/dFwrt/0FdXeo8\nZbK4TA5DuSwerByGcllcJoehXBaXyWEoeU9cKofLZereM/5cuKbsPXGZLG6a74lz86SRZpZfV86H\nmZkNjLw5XD+LB2Kysh6iqkeCpEOBU4HDUhfhnu0jgOvIlmu7tWd7RHw3IkZGxGuBdwD3vVwaG8zs\nZcT3xLm5wcHM8vMqFWZmrdXkKhUR0QX0TAb2R7JJIBdKmiLpA2m3qcC2abKyzwKnp9oFZJM4LgB+\nxtrJypA0A/g9sLukRyQdm471bWAL4AZJ8yRdlLafCLwO+KKku9J72zb79ZiZDQrfE+fmORzMLD8H\np5lZa/VDDg/QZGVH19l/dJ3t/w30OeY2raSxT1/7mJm1hO+Jc3ODg5nl5/FqZmat5Rw2M2s9Z3Fu\nbnAws/w8Fs3MrLWcw2Zmrecszs1zOJhZfk2OV5N0qKRFku6XdFqN94dLmilpsaRbJI2qeO+MtH2h\npEPStpGSbpK0QNI9kk6q2H9mGhM8T9JDkuZVnWuUpL9KmtTEN2JmNrianMPBzMz6gXM4N/dwMLP8\n/la+VFIbcCFwENkyanMlXRMRlevFHg88FRGjJU0AziWbEX0vsvHEe5Itw3ajpNFkUT4pIuZL2gK4\nU9KciFgUERMrzv114OmqS/oG2aRnZmYbjiZy2MzM+omzODf3cDCz/JpbAmgcsDgiHo6I1cBMYHzV\nPuOBS9PzWaxds/0wspnU16S12hcD4yJieUTMB4iI54CFwI41zv0RoHdxbEnjgQfIZmg3M9twNL8s\nppmZNcs5nJsbHMwsv+a6j+0ILK14vYz1Gwd690lLtz0jaesatY9W10raBRgD3Fa1/Z3A8oh4IL3e\njGxN+ClUrRdvZjbkeUiFmVnrOYdz85AKM8uvueCs9Zf7yLlPn7VpOMUs4OTU06HSUVT0biBraPhm\nRLwgqd45zcyGJt/Ampm1nrM4Nzc4mFl+9ZYA6u6E6GxUvQwYVfF6JNlcDpWWAjsBj0lqB0ZExEpJ\ny9L29WolDSNrbJgeEddUHiwd4whgbMXmtwAfknQusBXQJelvEXFRow9gZtZyXorNzKz1nMW5ucHB\nzPKrOxatIz16TKm101xgN0k7A38GJpL1Pqh0LXAM2bCII4Gb0vbZwGWSvkk2lGI34Pb03iXAgoi4\noMY5DwYWRkRvw0ZE7N/zXNJk4K9ubDCzDYbHBJuZtZ6zODfP4WBm+UXOR63SbE6GE4E5ZJM1zoyI\nhZKmSPpA2m0qsK2kxcBngdNT7QLgCmAB2coSJ0RESHo78FHgQEl3pSUwD6047QTWHU5hZrZhy5vD\ndbLYzMz6QZM53N9Lxfd1TEnTJD1Yca+8T8V730rHmi9pTNrWUbHvXZL+Jumwsl/VoPRw2J37Cu2/\n//y5pc4z+40HF6753kWfLXWut33ml4VrrokRpc41+4j9CtfsrsWFa3boflvhGoCuv+xauGb1Z8sN\nm2+/u/iAqcvGHlHqXIeNmF245pRnv1G45n/vnlS4BmDGmHKfq5Ui4npgj6ptkyueryJbUaJW7TnA\nOVXbbgba+zjfsQ2up2ZXjJejPbi/cM2bbyq+iMfMA8r9eXTeRV8oXHP4Z8q1JV0Smxeu+dUR/1C4\nZoSqV2LNZ8fusY13qtL9l9GlzhX/VjyLy+QwwKx9PtB4pyofHHV94ZoTl36tcA3AhTf8R+Gaqw95\nb+GaNroL19jLx14sKLR/mRyGcllcJoehXBaXyeEbjxhTuAZgaz1ZuKZMDkO5LC6Tw1Auiwcrh6Fc\nFl/4q+I5DHD1gcWzuJUGaKl4NTjmKRFxddV1vBd4XTrHW4DvAm+NiE7gTWmfrchWh5tT9vO6h4OZ\nmZmZmZnZ4Oj3peJzHLPW3/vHAz8EiIjbgBGStq/a58PAzyPixeIfs/6J1yFpqqQVkv5QsW2ypGWp\nm0V1F2Yze9lanfNh/c1ZbGaZvDnsLO5vzmEzW6upHB6IpeIbHfPsNGziPEmb1LmO9ZadJ5tzranh\nyXl6OEwD3lNj+zciYmx6lOtrY2YbGC863ELOYjMjfw47iweAc9jMkqZyeCCWiu/rmKdHxJ7AfsA2\nQM/8Do2Wnd8BeAPwixr75dZwDoeI+F2aVb6a16432+j4F7NWcRabWcY53CrOYTNbq14W/xb4XaPi\ngVgqXvWOGREr0j9XS5oGnFJxHTWXnU8+AlydeliU1swcDp9J3TJ+IKncbIhmtoHxr2pDkLPYbKPi\nHg5DkHPYbKNTL3f/EfjPikdNvUvFSxpONmyherb6nqXiYf2l4iemVSx2Ze1S8XWPmXoqIEnA4cC9\nFcf6eHrvrcDTPY0TyVH0w2pvZRscLiKb0XIMsBwoPjW/mW2APG54iHEWm210mp/DYYCWY1tvfoO0\n/dy073xJV0raMm3fWtJNkv4q6VtVNZtI+p6k+yQtkPTBwl/T4HEOm22UyufwQCwVX++Y6ViXSbob\nuJtsSMXZ6Vg/Ax6S9Cfge8AJPdeYenONjIhfN/MtQcllMSPi8YqX3ydrganrurPm9z7fvWMHdu/Y\nocxpzayghZ2Ps7Dz8cY75ubGhKGkSBZfddbapdj27NiOPTu2G8ArM7NK93Y+yR87nwJgC55r8mjN\n5fBALMcWEUE2v8G3STOeV5hDNn64W9JXgDPS40XgC2Tjg99QVfN5YEVE7JGueeumPvQAKnpP7Cw2\na43KHO4fzWVxfy8VX++YaftBfVzHiXW2P8y6wy1Ky9vgICrGp0naISKWp5dHsLZbRk0fOKvcurlm\n1pzqm5mrpyzsY+883EW3xUpn8RFn7TXAl2Zm9byhYxve0LENANuzL9Om/LaJozWdw71LpwFI6lk6\nrbLBYTzQc+M7i6whASqWYwOWpF/exgG31ZvfICJurHh5K/ChtP0F4Pdp/fhqx1Fx0xwR/fm3hGY1\ndU/sLDZrjcocBvjxlD81eUTfE+fVsMFB0gygA9hG0iNkfwAdIGkM0A0sI0g+jgAACs1JREFUAf51\nAK/RzIaMv7X6AjZazmIzyzSdw7WWThtXb5+I6JJUuRzbLRX71VpCrS/Hka0NX1fFHAhnS+oA/gSc\nWNWToCWcw2a2lu+J88qzSsXRNTZPG4BrMbMhz0MqWsVZbGaZvnJ4LnBHowMMxHJsDUn6PLA6ImY0\n2HUY2XCN30bEKZI+B5xHmtislZzDZraW74nzKjWHg5ltrNx9zMystfrK4TelR4/v1tppIJZj65Ok\nY4D3AQc22jcinpT0fET8JG36MVnPCDOzIcT3xHk1syymmW10vEqFmVlrNb1KxUAsx9ZjnfkNIFsR\nAzgVOCxNglZLdc+JayUdkJ6/m2w2djOzIcT3xHkpm1h4AE8gRVfBuYVXPlvuXFufXLwmW5ypuO43\n1+pV2Lf/994Jpc71iZV9Dnes6bGti0/o/IM4vnANAO1fK1zyv10PlTrV0md2LVwzrLvUqbhoq+I/\nqISK/3fxYLy2cA3AY/r7wjVX6FgiovhFkv2/DL/Lufc7Sp/H+l+ZHAZ4eGXxml0mFa+Bclkc/1Du\nXD89/IDGO1U55NlfFa55bES52ecvj+J/Vvyt/cJS5yqTxUueL57DAK94oXjNrO3eX7jmURWZUmCt\n+2P3wjUvaXjhmr0ZxSQdXioji+Uw1Mvi1AhwAdkPT1Mj4iuSpgBzI+I6SZsC08m6SzwJTIyIJan2\nDLJVLFYDJ0fEnLS9d34DYAUwOSKmpYklh6fjANwaESekmoeAV6X3nwYOiYhFaRnO6cAI4HHg2IhY\nVuCDD0llsrhMDkO5LC57T1wmiwcrh6FcFs+oOXqmsZfaLyhcU/aeuEwWl8nhmdsdVrwIWKHiqxKW\nyWEol8VTdZLviQeJh1SYWQFuqTUza63mc3iAlmOr+Te0iKi1CkXPezX/xhQRjwDvqldnZtZ6vifO\nyw0OZlaAx6uZmbWWc9jMrPWcxXm5wcHMCnBrrplZazmHzcxaz1mclxsczKwArzlsZtZazmEzs9Zz\nFuflBgczK8CtuWZmreUcNjNrPWdxXl4W08wKWJPzUZukQyUtknS/pNNqvD9c0kxJiyXdkmYq73nv\njLR9oaRD0raRkm6StEDSPZJOqth/pqR56fGQpHlp+36S7qp4HN4f34yZ2eDIm8MeX2xmNnCcw3m5\nh4OZFVC+NVdSG3AhcBDwGDBX0jURsahit+OBpyJitKQJwLlka77vRTZj+p7ASOBGSaPJknxSRMyX\ntAVwp6Q5EbEoIiZWnPvrZEuuAdwD7BsR3ZJ2AO6WNDsiSi6gamY2mPyrmplZ6zmL83IPBzMroKnW\n3HHA4oh4OCJWAzOB8VX7jAcuTc9nAQem54cBMyNiTVoLfjEwLiKWR8R8gIh4DlgI7Fjj3B8BfpT2\ne7GiceGVgBsazGwD4h4OZmat5xzOyz0czKyAplpzdwSWVrxeRtYIUXOfiOiS9IykrdP2Wyr2e5Sq\nhgVJuwBjgNuqtr8TWB4RD1RsGwdcAowCPubeDWa24fCvamZmrecszqulPRw6/e+p16LOFa2+hCHj\npc5bW30JQ8bSzgdbfQlV6rXeLgRmVzxqUo1tkXOfPmvTcIpZwMmpp0Olo0i9G3oLI26PiDcA+wFn\nShpe76Jf7pzDa93TubLVlzBkOIfX9Wjnn1p9CRXcw+HlyFm8lrN4LWfxWkMrh8E5nF9LGxx+7XDt\ndV/nX1p9CUOGw3WtZZ0PtfoSqqyu89gFOLjiUdMysh4FPUaSzeVQaSmwE4CkdmBERKxMtTvVqpU0\njKyxYXpEXFN5sHSMI4DLa11QRNwHPA+8od5Fv9w5h9e6p/PpxjttJJzD63qs84HGOw2aejlc62Eb\nCmfxWs7itZzFaw2tHAbncH6ew8HMCmiqNXcusJuknVOPgoms3x3iWuCY9PxI4Kb0fDbZ5JHDJe0K\n7Abcnt67BFgQERfUOOfBwMKI6G3YkLRLaohA0s7A7sCShh/dzGxIcA8HM7PWcw7nNThzOLxxbO3t\nDz0Gu/79epvbqztE51VrqrhGtih5ri1r9fDu2zbsWve9V7Ks/vvtdb6/PmzCiMI1ryn1BQJji1/f\nPtTvwf4A7byuzvsq8V3U7Iyfw3bsXLimenxAHi+xQ933tmQLRtZ5f1O2KXG2Zv2tdGWak+FEYA5Z\nY+fUiFgoaQowNyKuA6YC0yUtBp4ka5QgIhZIugJYQNZcfEJEhKS3Ax8F7pF0F9m/gjMj4vp02glU\nDacA3gGcLuklsgkj/y0inir9wTYUBXMYYPizJc5TMkZKZfHflTvVCEbX3L4pz9R9T23PFD7PcLYq\nXAOw/TqdefJZVSKHoX4W95nDbeXOVeaO4+94XeGa1by6+ImAv/VRdx+bs1ON91ezSeHzvLrEn8/r\nKp/DNgQUzOJSOQyDe09cIovrZS3Uz+IyOQzlsngHRpY61+rBvCcuk8UlcnirEjkMECXuU8vkMJTL\n4uY5i/NSRJm/IhU4gTSwJzCzQiKiVBOMpCWQuxXm4YjYpcx5rP85h82GnjJZXDCHwVk8pDiLzYYW\n3xMPjgFvcDAzMzMzMzOzjY/ncDAzMzMzMzOzfucGBzMzMzMzMzPrdy1pcJB0qKRFku6XdForrmGo\nkLRE0t2S7pJ0e+OKlxdJUyWtkPSHim1bSZoj6T5Jv5DU7AxbG4Q638VkScskzUuPQ1t5jfby4ixe\na2POYufwWs5hG2zO4bU25hwGZ3ElZ/HLy6A3OEj/v737960pDgMw/rwiBmziR0IYSEgsJXQQAwuJ\nhUgkTEQiBv4AJqupk1gQ6UAkBmFCjDaLQWKw+BVRHfwBwmu4p+452ko0957v7T3PJ2lybjv0zem9\nT5s35/bECuAGcBTYDZyJiF1tzzFCfgGHMnNPZk6WHqaAu/SeC3VXgBeZuZPebRGvtj5VGQudC4Cp\nzNxbfTxd4OvSf7PF83S5xXa4zw6rNXZ4ni53GGxxnS0eIyWucJgE3mXmh8z8ATwAjheYY1QEHX5r\nS2a+BL7/9enjwHR1PA2caHWoQhY5F7DkG3tK/2SLmzrbYjvcZ4fVMjvc1NkOgy2us8XjpcSLejPw\nqfb4M0u/c/s4SOBZRLyKiAulhxkRGzJzBiAzvwLrC89T2qWIeB0Rt7tyKZ1aYYubbHGTHW6ywxoG\nO9xkh+ezxU22eBkqsXBYaDPV5XtzHsjMfcAxei+ig6UH0ki5CWzPzAngKzBVeB6ND1vcZIu1GDus\nYbHDTXZY/2KLl6kSC4fPwNba4y3AlwJzjIRqW0lmzgKP6F1e13UzEbERICI2Ad8Kz1NMZs5m5twf\nH7eA/SXn0VixxTW2eB47XLHDGiI7XGOHF2SLK7Z4+SqxcHgF7IiIbRGxCjgNPCkwR3ERsToi1lbH\na4AjwJuyUxURNLf8T4Bz1fFZ4HHbAxXUOBfVL5c5J+nm80PDYYsrthiww3V2WG2xwxU7/Ict7rPF\nY2Jl298wM39GxGXgOb2Fx53MfNv2HCNiI/AoIpLez+JeZj4vPFOrIuI+cAhYFxEfgWvAdeBhRJwH\nPgKnyk3YnkXOxeGImKD3n5vfAxeLDaixYosbOt1iO9xnh9UmO9zQ6Q6DLa6zxeMl+lemSJIkSZIk\nDUZnbz0jSZIkSZKGx4WDJEmSJEkaOBcOkiRJkiRp4Fw4SJIkSZKkgXPhIEmSJEmSBs6FgyRJkiRJ\nGjgXDpIkSZIkaeBcOEiSJEmSpIH7Db/BFUInlBauAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1332,7 +1332,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index cb4df0fadf..ca4832809a 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -34,7 +34,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/romano/miniconda3/envs/default/lib/python3.5/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.py:878: 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", + "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.py:1357: 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", @@ -440,9 +442,10 @@ "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", - " Date/Time: 2016-07-22 21:32:41\n", + " Version: 0.8.0\n", + " Git SHA1: be7e6e035d22944a8c80ca32f99935b6822854c9\n", + " Date/Time: 2016-08-10 15:31:07\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -452,11 +455,11 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", - " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", - " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", - " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Reading U235.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/O16_71c.h5\n", + " Reading H1.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/H1_71c.h5\n", + " Reading Zr90.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/Zr90_71c.h5\n", " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", @@ -518,7 +521,7 @@ " 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 10054\n", + " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10052\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", @@ -544,7 +547,7 @@ " 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 10054\n", + " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10052\n", " The estimated number of batches is 74\n", " 74/1 1.22437 1.22487 +/- 0.00188\n", " Triggers satisfied for batch 74\n", @@ -557,20 +560,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.3000E-01 seconds\n", - " Reading cross sections = 2.6000E-01 seconds\n", - " Total time in simulation = 3.4077E+02 seconds\n", - " Time in transport only = 3.4068E+02 seconds\n", - " Time in inactive batches = 2.3968E+01 seconds\n", - " Time in active batches = 3.1680E+02 seconds\n", - " Time synchronizing fission bank = 3.0000E-02 seconds\n", + " Total time for initialization = 4.0400E-01 seconds\n", + " Reading cross sections = 2.1100E-01 seconds\n", + " Total time in simulation = 2.8243E+02 seconds\n", + " Time in transport only = 2.8236E+02 seconds\n", + " Time in inactive batches = 1.8781E+01 seconds\n", + " Time in active batches = 2.6365E+02 seconds\n", + " Time synchronizing fission bank = 2.7000E-02 seconds\n", " Sampling source sites = 1.7000E-02 seconds\n", - " SEND/RECV source sites = 1.3000E-02 seconds\n", - " Time accumulating tallies = 3.0000E-03 seconds\n", - " Total time for finalization = 1.6000E-02 seconds\n", - " Total time elapsed = 3.4129E+02 seconds\n", - " Calculation Rate (inactive) = 4172.23 neutrons/second\n", - " Calculation Rate (active) = 1262.62 neutrons/second\n", + " SEND/RECV source sites = 8.0000E-03 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", + " Total time for finalization = 2.4000E-02 seconds\n", + " Total time elapsed = 2.8293E+02 seconds\n", + " Calculation Rate (inactive) = 5324.53 neutrons/second\n", + " Calculation Rate (active) = 1517.17 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -769,6 +772,14 @@ "collapsed": false }, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/shape_base.py:873: VisibleDeprecationWarning: 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": [ @@ -1159,169 +1170,239 @@ "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.658941\tres = 2.793E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.852E-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.522274\tres = 2.841E-02\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.510609\tres = 2.567E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.493831\tres = 1.861E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.488780\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.485923\tres = 1.023E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.485210\tres = 5.846E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.486569\tres = 1.467E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.489903\tres = 2.801E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.495103\tres = 6.852E-03\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.502053\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.510627\tres = 1.404E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.520693\tres = 1.708E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.532117\tres = 1.971E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.544764\tres = 2.194E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.558501\tres = 2.377E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.573195\tres = 2.522E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.588718\tres = 2.631E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.604946\tres = 2.708E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.621759\tres = 2.756E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.639047\tres = 2.779E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656702\tres = 2.780E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.674624\tres = 2.763E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.692722\tres = 2.729E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.710910\tres = 2.683E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.729109\tres = 2.625E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.747248\tres = 2.560E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.765263\tres = 2.488E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.783094\tres = 2.411E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.800690\tres = 2.330E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.818005\tres = 2.247E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.834999\tres = 2.163E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.851638\tres = 2.078E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.867892\tres = 1.993E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883736\tres = 1.909E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.899149\tres = 1.826E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914115\tres = 1.744E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.928622\tres = 1.664E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.942659\tres = 1.587E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.956221\tres = 1.512E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.969305\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.981909\tres = 1.368E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.994035\tres = 1.300E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.005685\tres = 1.235E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.016866\tres = 1.172E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.027584\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037846\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.047661\tres = 9.986E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.057040\tres = 9.457E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.065994\tres = 8.953E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.074533\tres = 8.470E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.082671\tres = 8.011E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.090418\tres = 7.573E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.097790\tres = 7.156E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.104797\tres = 6.760E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.111453\tres = 6.383E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.117770\tres = 6.025E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.123764\tres = 5.684E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.129446\tres = 5.362E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.134828\tres = 5.056E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139924\tres = 4.765E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.144746\tres = 4.491E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.149306\tres = 4.230E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.153617\tres = 3.983E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.157688\tres = 3.751E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.161534\tres = 3.530E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.165163\tres = 3.322E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.168586\tres = 3.124E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.171813\tres = 2.938E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.174855\tres = 2.762E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.177721\tres = 2.596E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.180419\tres = 2.439E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.182960\tres = 2.291E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.185350\tres = 2.152E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.187599\tres = 2.021E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.189713\tres = 1.897E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.191700\tres = 1.780E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.193567\tres = 1.670E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.195321\tres = 1.567E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.196967\tres = 1.469E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.198513\tres = 1.378E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.199964\tres = 1.291E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.201326\tres = 1.211E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.202602\tres = 1.135E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.203800\tres = 1.062E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.204922\tres = 9.959E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.205974\tres = 9.321E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.206961\tres = 8.732E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.207884\tres = 8.175E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.208748\tres = 7.646E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.209558\tres = 7.159E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.210316\tres = 6.699E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.211025\tres = 6.262E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.211689\tres = 5.864E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.212310\tres = 5.481E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.212891\tres = 5.124E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.213434\tres = 4.792E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.213942\tres = 4.477E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.214416\tres = 4.189E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.214861\tres = 3.907E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.215275\tres = 3.660E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.215663\tres = 3.414E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.216025\tres = 3.188E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.216363\tres = 2.981E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.216679\tres = 2.776E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.216974\tres = 2.599E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.217250\tres = 2.427E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.217507\tres = 2.263E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.217747\tres = 2.115E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.217970\tres = 1.970E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.218180\tres = 1.834E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.218375\tres = 1.718E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.218557\tres = 1.602E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.218726\tres = 1.496E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.218885\tres = 1.387E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.219032\tres = 1.301E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.219169\tres = 1.211E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.219298\tres = 1.127E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.219418\tres = 1.058E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.219529\tres = 9.828E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.219633\tres = 9.100E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.219730\tres = 8.530E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.219820\tres = 7.940E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.219904\tres = 7.409E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.219983\tres = 6.876E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.220056\tres = 6.455E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.220124\tres = 5.969E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.220187\tres = 5.603E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.220246\tres = 5.166E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.220301\tres = 4.829E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.220352\tres = 4.510E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.220400\tres = 4.199E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.220445\tres = 3.939E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.220486\tres = 3.630E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.220525\tres = 3.362E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.220561\tres = 3.181E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.220594\tres = 2.977E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.220626\tres = 2.745E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.220655\tres = 2.569E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.220682\tres = 2.376E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.220707\tres = 2.201E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.220730\tres = 2.071E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.220752\tres = 1.925E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.220772\tres = 1.793E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.220791\tres = 1.669E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.220809\tres = 1.554E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.220826\tres = 1.457E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.220841\tres = 1.372E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.220855\tres = 1.249E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.220868\tres = 1.138E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.220881\tres = 1.104E-05\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.220892\tres = 1.028E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.423123\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.475921\tres = 5.769E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.491443\tres = 1.248E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.487441\tres = 3.261E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.483949\tres = 8.144E-03\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.477326\tres = 7.164E-03\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.469012\tres = 1.369E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.460422\tres = 1.742E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.450721\tres = 1.832E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.441532\tres = 2.107E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.432168\tres = 2.039E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.423131\tres = 2.121E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.414705\tres = 2.091E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.406942\tres = 1.991E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.399627\tres = 1.872E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.393329\tres = 1.798E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.387699\tres = 1.576E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.382948\tres = 1.431E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.379028\tres = 1.225E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.375934\tres = 1.024E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.373784\tres = 8.161E-03\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.372654\tres = 5.719E-03\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.372273\tres = 3.023E-03\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.372879\tres = 1.024E-03\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.374353\tres = 1.629E-03\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.376678\tres = 3.951E-03\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.379854\tres = 6.212E-03\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.383870\tres = 8.432E-03\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.388663\tres = 1.057E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.394216\tres = 1.249E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.400506\tres = 1.429E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.407501\tres = 1.596E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.415145\tres = 1.747E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.423426\tres = 1.876E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.432299\tres = 1.995E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.441713\tres = 2.095E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.451665\tres = 2.178E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.462081\tres = 2.253E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.472951\tres = 2.306E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.484220\tres = 2.352E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.495861\tres = 2.383E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.507836\tres = 2.404E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.520110\tres = 2.415E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.532648\tres = 2.417E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.545418\tres = 2.411E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.558388\tres = 2.398E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.571526\tres = 2.378E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.584802\tres = 2.353E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.598189\tres = 2.323E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.611657\tres = 2.289E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.625182\tres = 2.252E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.638738\tres = 2.211E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.652302\tres = 2.168E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.665851\tres = 2.124E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.679364\tres = 2.077E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.692821\tres = 2.029E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 0.706204\tres = 1.981E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 0.719496\tres = 1.932E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 0.732679\tres = 1.882E-02\n", + "[ NORMAL ] Iteration 59:\tk_eff = 0.745740\tres = 1.832E-02\n", + "[ NORMAL ] Iteration 60:\tk_eff = 0.758664\tres = 1.783E-02\n", + "[ NORMAL ] Iteration 61:\tk_eff = 0.771439\tres = 1.733E-02\n", + "[ NORMAL ] Iteration 62:\tk_eff = 0.784053\tres = 1.684E-02\n", + "[ NORMAL ] Iteration 63:\tk_eff = 0.796495\tres = 1.635E-02\n", + "[ NORMAL ] Iteration 64:\tk_eff = 0.808756\tres = 1.587E-02\n", + "[ NORMAL ] Iteration 65:\tk_eff = 0.820827\tres = 1.539E-02\n", + "[ NORMAL ] Iteration 66:\tk_eff = 0.832700\tres = 1.493E-02\n", + "[ NORMAL ] Iteration 67:\tk_eff = 0.844370\tres = 1.447E-02\n", + "[ NORMAL ] Iteration 68:\tk_eff = 0.855828\tres = 1.401E-02\n", + "[ NORMAL ] Iteration 69:\tk_eff = 0.867071\tres = 1.357E-02\n", + "[ NORMAL ] Iteration 70:\tk_eff = 0.878094\tres = 1.314E-02\n", + "[ NORMAL ] Iteration 71:\tk_eff = 0.888893\tres = 1.271E-02\n", + "[ NORMAL ] Iteration 72:\tk_eff = 0.899465\tres = 1.230E-02\n", + "[ NORMAL ] Iteration 73:\tk_eff = 0.909807\tres = 1.189E-02\n", + "[ NORMAL ] Iteration 74:\tk_eff = 0.919919\tres = 1.150E-02\n", + "[ NORMAL ] Iteration 75:\tk_eff = 0.929798\tres = 1.111E-02\n", + "[ NORMAL ] Iteration 76:\tk_eff = 0.939444\tres = 1.074E-02\n", + "[ NORMAL ] Iteration 77:\tk_eff = 0.948856\tres = 1.037E-02\n", + "[ NORMAL ] Iteration 78:\tk_eff = 0.958036\tres = 1.002E-02\n", + "[ NORMAL ] Iteration 79:\tk_eff = 0.966983\tres = 9.674E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 0.975698\tres = 9.339E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 0.984184\tres = 9.013E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 0.992441\tres = 8.697E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.000472\tres = 8.390E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.008280\tres = 8.092E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.015866\tres = 7.804E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.023234\tres = 7.524E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.030386\tres = 7.253E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.037327\tres = 6.990E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.044059\tres = 6.736E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.050585\tres = 6.490E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.056911\tres = 6.251E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.063038\tres = 6.021E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.068972\tres = 5.798E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.074716\tres = 5.582E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.080275\tres = 5.373E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.085651\tres = 5.172E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.090850\tres = 4.977E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.095876\tres = 4.789E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.100733\tres = 4.607E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.105424\tres = 4.432E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.109955\tres = 4.262E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.114328\tres = 4.099E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.118550\tres = 3.941E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.122623\tres = 3.788E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.126551\tres = 3.641E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.130339\tres = 3.499E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.133991\tres = 3.363E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.137511\tres = 3.231E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.140902\tres = 3.104E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.144168\tres = 2.981E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.147313\tres = 2.863E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.150342\tres = 2.749E-03\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.153257\tres = 2.640E-03\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.156062\tres = 2.534E-03\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.158761\tres = 2.432E-03\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.161356\tres = 2.334E-03\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.163852\tres = 2.240E-03\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.166252\tres = 2.149E-03\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.168559\tres = 2.062E-03\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.170776\tres = 1.978E-03\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.172906\tres = 1.897E-03\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.174952\tres = 1.819E-03\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.176918\tres = 1.745E-03\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.178805\tres = 1.673E-03\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.180617\tres = 1.603E-03\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.182356\tres = 1.537E-03\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.184025\tres = 1.473E-03\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.185626\tres = 1.412E-03\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.187163\tres = 1.353E-03\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.188637\tres = 1.296E-03\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.190050\tres = 1.241E-03\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.191405\tres = 1.189E-03\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.192704\tres = 1.139E-03\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.193950\tres = 1.091E-03\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.195144\tres = 1.044E-03\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.196287\tres = 9.997E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.197383\tres = 9.571E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.198433\tres = 9.161E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.199439\tres = 8.768E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.200402\tres = 8.391E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.201324\tres = 8.029E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.202207\tres = 7.682E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.203052\tres = 7.349E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.203861\tres = 7.030E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.204635\tres = 6.724E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.205376\tres = 6.431E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.206084\tres = 6.149E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.206762\tres = 5.880E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.207411\tres = 5.622E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.208031\tres = 5.374E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.208624\tres = 5.137E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.209192\tres = 4.910E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.209734\tres = 4.693E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.210252\tres = 4.484E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.210748\tres = 4.285E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.211221\tres = 4.094E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.211674\tres = 3.911E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.212106\tres = 3.736E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.212519\tres = 3.569E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.212914\tres = 3.408E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.213291\tres = 3.255E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.213651\tres = 3.108E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.213995\tres = 2.968E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.214323\tres = 2.834E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.214637\tres = 2.705E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.214936\tres = 2.582E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.215222\tres = 2.465E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.215495\tres = 2.353E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.215755\tres = 2.245E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.216004\tres = 2.142E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.216241\tres = 2.044E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.216468\tres = 1.951E-04\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.216683\tres = 1.861E-04\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.216889\tres = 1.775E-04\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.217086\tres = 1.693E-04\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.217274\tres = 1.615E-04\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.217452\tres = 1.540E-04\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.217623\tres = 1.469E-04\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.217786\tres = 1.401E-04\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.217941\tres = 1.336E-04\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.218089\tres = 1.274E-04\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.218230\tres = 1.214E-04\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.218364\tres = 1.158E-04\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.218492\tres = 1.104E-04\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.218614\tres = 1.052E-04\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.218731\tres = 1.003E-04\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.218842\tres = 9.556E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.218948\tres = 9.107E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.219048\tres = 8.679E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.219144\tres = 8.270E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.219236\tres = 7.880E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.219323\tres = 7.508E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.219406\tres = 7.152E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.219485\tres = 6.814E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.219561\tres = 6.491E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.219633\tres = 6.183E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.219701\tres = 5.889E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.219766\tres = 5.609E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.219828\tres = 5.341E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.219887\tres = 5.087E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.219944\tres = 4.844E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.219997\tres = 4.612E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.220048\tres = 4.391E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.220097\tres = 4.181E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.220143\tres = 3.981E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.220187\tres = 3.789E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.220229\tres = 3.607E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.220269\tres = 3.434E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.220307\tres = 3.268E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.220343\tres = 3.111E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.220377\tres = 2.961E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.220410\tres = 2.818E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.220441\tres = 2.681E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.220471\tres = 2.552E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.220499\tres = 2.428E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.220526\tres = 2.310E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.220551\tres = 2.198E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.220576\tres = 2.091E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.220599\tres = 1.990E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.220621\tres = 1.893E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.220642\tres = 1.801E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.220661\tres = 1.713E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.220680\tres = 1.629E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.220698\tres = 1.550E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.220715\tres = 1.474E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.220732\tres = 1.402E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.220747\tres = 1.333E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.220762\tres = 1.268E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.220776\tres = 1.206E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.220789\tres = 1.146E-05\n", + "[ NORMAL ] Iteration 231:\tk_eff = 1.220802\tres = 1.090E-05\n", + "[ NORMAL ] Iteration 232:\tk_eff = 1.220814\tres = 1.036E-05\n" ] } ], @@ -1354,8 +1435,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.220892\n", - "bias [pcm]: -258.1\n" + "openmoc keff = 1.220814\n", + "bias [pcm]: -266.0\n" ] } ], @@ -1430,237 +1511,346 @@ "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.496490\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.478834\tres = 6.465E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.479871\tres = 1.960E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.482684\tres = 2.165E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.487084\tres = 5.860E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.492900\tres = 9.116E-03\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.499971\tres = 1.194E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.508153\tres = 1.435E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.517312\tres = 1.637E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.527325\tres = 1.802E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.538079\tres = 1.936E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.549472\tres = 2.039E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.561410\tres = 2.117E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.573807\tres = 2.173E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.586585\tres = 2.208E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.599674\tres = 2.227E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.613007\tres = 2.231E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.626528\tres = 2.223E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.640181\tres = 2.206E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.653920\tres = 2.179E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.667700\tres = 2.146E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.681483\tres = 2.107E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.695234\tres = 2.064E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.708921\tres = 2.018E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.722515\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.735993\tres = 1.918E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.749331\tres = 1.865E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.762510\tres = 1.812E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.775514\tres = 1.759E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.788326\tres = 1.705E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800935\tres = 1.652E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.813328\tres = 1.599E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.825497\tres = 1.547E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.837433\tres = 1.496E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.849130\tres = 1.446E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.860583\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871788\tres = 1.349E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.882742\tres = 1.302E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.893442\tres = 1.256E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.903887\tres = 1.212E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914077\tres = 1.169E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.924012\tres = 1.127E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.933693\tres = 1.087E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.943122\tres = 1.048E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.952299\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.961228\tres = 9.730E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969911\tres = 9.377E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.978351\tres = 9.033E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.986552\tres = 8.702E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 0.994517\tres = 8.382E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.002250\tres = 8.074E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.009755\tres = 7.776E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.017037\tres = 7.488E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.024099\tres = 7.211E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.030947\tres = 6.944E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.037584\tres = 6.687E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.044016\tres = 6.438E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.050247\tres = 6.199E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.056282\tres = 5.969E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.062125\tres = 5.746E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.067781\tres = 5.531E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.073255\tres = 5.326E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.078552\tres = 5.126E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.083676\tres = 4.936E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.088632\tres = 4.751E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.093425\tres = 4.573E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.098058\tres = 4.403E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.102537\tres = 4.237E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106866\tres = 4.079E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.111049\tres = 3.926E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.115090\tres = 3.779E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.118995\tres = 3.638E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.122766\tres = 3.501E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.126408\tres = 3.370E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.129925\tres = 3.244E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.133320\tres = 3.122E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.136597\tres = 3.005E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.139761\tres = 2.892E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142815\tres = 2.783E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.145761\tres = 2.679E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.148605\tres = 2.579E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.151348\tres = 2.482E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.153994\tres = 2.388E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.156547\tres = 2.299E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.159009\tres = 2.212E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.161384\tres = 2.129E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.163674\tres = 2.049E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165882\tres = 1.972E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.168012\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.170064\tres = 1.827E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.172043\tres = 1.757E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173951\tres = 1.692E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.175790\tres = 1.628E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.177562\tres = 1.566E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.179269\tres = 1.507E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.180916\tres = 1.450E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.182502\tres = 1.396E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.184030\tres = 1.343E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.185503\tres = 1.292E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.186922\tres = 1.244E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.188288\tres = 1.197E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.189606\tres = 1.151E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.190874\tres = 1.108E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.192096\tres = 1.066E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.193273\tres = 1.026E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.194407\tres = 9.870E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.195499\tres = 9.504E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.196550\tres = 9.140E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.197563\tres = 8.792E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.198538\tres = 8.468E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.199477\tres = 8.140E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.200382\tres = 7.837E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.201253\tres = 7.539E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.202091\tres = 7.257E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202898\tres = 6.979E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.203676\tres = 6.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.204424\tres = 6.465E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.205144\tres = 6.217E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205838\tres = 5.979E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.206505\tres = 5.760E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.207148\tres = 5.532E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.207767\tres = 5.325E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.208363\tres = 5.125E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208936\tres = 4.935E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.209487\tres = 4.744E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.210018\tres = 4.559E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.210529\tres = 4.392E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.211021\tres = 4.223E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.211495\tres = 4.060E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211951\tres = 3.914E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.212390\tres = 3.763E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212812\tres = 3.623E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.213217\tres = 3.480E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.213608\tres = 3.344E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.213984\tres = 3.223E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.214347\tres = 3.097E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.214695\tres = 2.985E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.215031\tres = 2.869E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.215352\tres = 2.763E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.215663\tres = 2.648E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215962\tres = 2.552E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.216249\tres = 2.460E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.216526\tres = 2.362E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216792\tres = 2.279E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.217048\tres = 2.188E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.217294\tres = 2.100E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.217531\tres = 2.024E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.217759\tres = 1.948E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.217978\tres = 1.872E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.218189\tres = 1.799E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.218393\tres = 1.733E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.218588\tres = 1.668E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.218776\tres = 1.600E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218957\tres = 1.544E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219131\tres = 1.485E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.219298\tres = 1.428E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.219459\tres = 1.374E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.219614\tres = 1.321E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.219763\tres = 1.270E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219906\tres = 1.221E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.220044\tres = 1.175E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.220177\tres = 1.130E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.220304\tres = 1.084E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.220427\tres = 1.045E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.220545\tres = 1.007E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.220659\tres = 9.678E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.220768\tres = 9.304E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220874\tres = 8.984E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.220975\tres = 8.640E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.221073\tres = 8.326E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.221166\tres = 7.985E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.221256\tres = 7.662E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.221343\tres = 7.371E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.221426\tres = 7.091E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.221506\tres = 6.827E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.221583\tres = 6.560E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.221657\tres = 6.320E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.221729\tres = 6.067E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221797\tres = 5.829E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221863\tres = 5.641E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221927\tres = 5.382E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.221987\tres = 5.196E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.222046\tres = 4.968E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.222102\tres = 4.810E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.222157\tres = 4.617E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.222209\tres = 4.456E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.222260\tres = 4.287E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.222308\tres = 4.122E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.222355\tres = 3.971E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.222399\tres = 3.805E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.222442\tres = 3.657E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.222484\tres = 3.521E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.222523\tres = 3.381E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.222561\tres = 3.262E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.222598\tres = 3.107E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.222634\tres = 2.985E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.222668\tres = 2.902E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.222700\tres = 2.804E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.222732\tres = 2.639E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.222762\tres = 2.577E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222792\tres = 2.487E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222820\tres = 2.400E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222847\tres = 2.291E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222872\tres = 2.200E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222897\tres = 2.121E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222921\tres = 2.040E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222944\tres = 1.964E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222967\tres = 1.882E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.222988\tres = 1.821E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.223009\tres = 1.763E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.223029\tres = 1.690E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.223048\tres = 1.630E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.223067\tres = 1.572E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.223084\tres = 1.507E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.223101\tres = 1.427E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.223117\tres = 1.394E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.223133\tres = 1.330E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.223148\tres = 1.298E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.223163\tres = 1.241E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.223177\tres = 1.167E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.223190\tres = 1.151E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.223203\tres = 1.073E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.223215\tres = 1.050E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.223227\tres = 1.000E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.366907\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.391217\tres = 6.331E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.393027\tres = 6.626E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.381142\tres = 4.627E-03\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.375065\tres = 3.024E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.369645\tres = 1.594E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.365597\tres = 1.445E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.363111\tres = 1.095E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.361532\tres = 6.802E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.361339\tres = 4.349E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.362062\tres = 5.322E-04\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.363777\tres = 2.001E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.366395\tres = 4.735E-03\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.369859\tres = 7.198E-03\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.374042\tres = 9.454E-03\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.378972\tres = 1.131E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.384524\tres = 1.318E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.390678\tres = 1.465E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.397373\tres = 1.600E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.404563\tres = 1.714E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.412207\tres = 1.809E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.420270\tres = 1.890E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.428695\tres = 1.956E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.437463\tres = 2.005E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.446530\tres = 2.045E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.455867\tres = 2.073E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.465442\tres = 2.091E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.475229\tres = 2.101E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.485198\tres = 2.103E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.495327\tres = 2.098E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.505591\tres = 2.088E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.515969\tres = 2.072E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.526440\tres = 2.053E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.536985\tres = 2.029E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.547587\tres = 2.003E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.558228\tres = 1.974E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.568893\tres = 1.943E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.579569\tres = 1.911E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.590241\tres = 1.877E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.600898\tres = 1.841E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.611527\tres = 1.805E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.622118\tres = 1.769E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.632662\tres = 1.732E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.643149\tres = 1.695E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.653571\tres = 1.658E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.663920\tres = 1.620E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.674189\tres = 1.583E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.684372\tres = 1.547E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.694464\tres = 1.510E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.704457\tres = 1.475E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.714349\tres = 1.439E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.724134\tres = 1.404E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.733808\tres = 1.370E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.743369\tres = 1.336E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.752812\tres = 1.303E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.762135\tres = 1.270E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 0.771336\tres = 1.238E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 0.780412\tres = 1.207E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 0.789362\tres = 1.177E-02\n", + "[ NORMAL ] Iteration 59:\tk_eff = 0.798184\tres = 1.147E-02\n", + "[ NORMAL ] Iteration 60:\tk_eff = 0.806877\tres = 1.118E-02\n", + "[ NORMAL ] Iteration 61:\tk_eff = 0.815440\tres = 1.089E-02\n", + "[ NORMAL ] Iteration 62:\tk_eff = 0.823872\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 63:\tk_eff = 0.832172\tres = 1.034E-02\n", + "[ NORMAL ] Iteration 64:\tk_eff = 0.840340\tres = 1.007E-02\n", + "[ NORMAL ] Iteration 65:\tk_eff = 0.848377\tres = 9.816E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 0.856281\tres = 9.563E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 0.864053\tres = 9.317E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 0.871693\tres = 9.076E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 0.879202\tres = 8.842E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 0.886580\tres = 8.614E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 0.893828\tres = 8.392E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 0.900946\tres = 8.175E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 0.907936\tres = 7.964E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 0.914798\tres = 7.758E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 0.921534\tres = 7.558E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 0.928144\tres = 7.363E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 0.934629\tres = 7.173E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 0.940992\tres = 6.988E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 0.947233\tres = 6.808E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 0.953353\tres = 6.632E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 0.959355\tres = 6.461E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 0.965238\tres = 6.295E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 0.971006\tres = 6.133E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 0.976659\tres = 5.975E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 0.982199\tres = 5.822E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 0.987627\tres = 5.672E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 0.992945\tres = 5.527E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 0.998155\tres = 5.385E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.003258\tres = 5.247E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.008256\tres = 5.113E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.013151\tres = 4.982E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.017943\tres = 4.854E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.022635\tres = 4.730E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027229\tres = 4.609E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.031726\tres = 4.492E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.036127\tres = 4.377E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.040434\tres = 4.266E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.044649\tres = 4.157E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.048774\tres = 4.051E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.052810\tres = 3.948E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.056759\tres = 3.848E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.060622\tres = 3.751E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.064400\tres = 3.655E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.068096\tres = 3.563E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.071711\tres = 3.473E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.075247\tres = 3.385E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.078705\tres = 3.299E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.082086\tres = 3.216E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.085392\tres = 3.134E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.088624\tres = 3.055E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.091785\tres = 2.978E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.094875\tres = 2.903E-03\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.097895\tres = 2.830E-03\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.100848\tres = 2.759E-03\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.103734\tres = 2.689E-03\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.106555\tres = 2.622E-03\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.109312\tres = 2.556E-03\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.112007\tres = 2.492E-03\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.114641\tres = 2.429E-03\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.117214\tres = 2.368E-03\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.119729\tres = 2.309E-03\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.122187\tres = 2.251E-03\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.124588\tres = 2.195E-03\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.126934\tres = 2.140E-03\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.129226\tres = 2.086E-03\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.131466\tres = 2.034E-03\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.133654\tres = 1.983E-03\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.135791\tres = 1.934E-03\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.137879\tres = 1.885E-03\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.139919\tres = 1.838E-03\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.141911\tres = 1.793E-03\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.143857\tres = 1.748E-03\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.145758\tres = 1.704E-03\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.147615\tres = 1.662E-03\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.149428\tres = 1.620E-03\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.151200\tres = 1.580E-03\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.152929\tres = 1.541E-03\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.154619\tres = 1.503E-03\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.156268\tres = 1.465E-03\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.157879\tres = 1.429E-03\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.159453\tres = 1.393E-03\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.160989\tres = 1.359E-03\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.162489\tres = 1.325E-03\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.163954\tres = 1.292E-03\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.165384\tres = 1.260E-03\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.166781\tres = 1.229E-03\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.168144\tres = 1.198E-03\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.169476\tres = 1.169E-03\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.170776\tres = 1.140E-03\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.172045\tres = 1.112E-03\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.173284\tres = 1.084E-03\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.174494\tres = 1.057E-03\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.175675\tres = 1.031E-03\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.176828\tres = 1.006E-03\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.177953\tres = 9.807E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.179052\tres = 9.565E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.180125\tres = 9.328E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.181172\tres = 9.098E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.182194\tres = 8.873E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.183192\tres = 8.654E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.184166\tres = 8.441E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.185117\tres = 8.232E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.186045\tres = 8.029E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.186951\tres = 7.831E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.187835\tres = 7.638E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.188698\tres = 7.450E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.189541\tres = 7.266E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.190363\tres = 7.087E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.191166\tres = 6.912E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.191949\tres = 6.742E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.192713\tres = 6.576E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.193460\tres = 6.414E-04\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.194188\tres = 6.256E-04\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.194899\tres = 6.102E-04\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.195592\tres = 5.952E-04\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.196269\tres = 5.806E-04\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.196930\tres = 5.663E-04\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.197575\tres = 5.524E-04\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.198204\tres = 5.388E-04\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.198819\tres = 5.255E-04\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.199418\tres = 5.126E-04\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.200003\tres = 5.000E-04\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.200574\tres = 4.877E-04\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.201131\tres = 4.757E-04\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.201675\tres = 4.640E-04\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.202205\tres = 4.526E-04\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.202723\tres = 4.415E-04\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.203228\tres = 4.307E-04\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.203721\tres = 4.201E-04\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.204202\tres = 4.098E-04\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.204672\tres = 3.997E-04\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.205130\tres = 3.899E-04\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.205577\tres = 3.803E-04\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.206014\tres = 3.710E-04\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.206439\tres = 3.619E-04\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.206855\tres = 3.530E-04\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.207260\tres = 3.444E-04\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.207656\tres = 3.359E-04\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.208042\tres = 3.277E-04\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.208418\tres = 3.196E-04\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.208786\tres = 3.118E-04\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.209144\tres = 3.041E-04\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.209494\tres = 2.967E-04\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.209836\tres = 2.894E-04\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.210169\tres = 2.823E-04\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.210494\tres = 2.754E-04\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.210811\tres = 2.686E-04\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.211121\tres = 2.621E-04\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.211423\tres = 2.556E-04\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.211718\tres = 2.494E-04\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.212005\tres = 2.433E-04\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.212286\tres = 2.373E-04\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.212559\tres = 2.315E-04\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.212827\tres = 2.258E-04\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.213087\tres = 2.203E-04\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.213341\tres = 2.149E-04\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.213590\tres = 2.096E-04\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.213832\tres = 2.045E-04\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.214068\tres = 1.995E-04\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.214298\tres = 1.946E-04\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.214523\tres = 1.898E-04\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.214743\tres = 1.852E-04\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.214957\tres = 1.806E-04\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.215165\tres = 1.762E-04\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.215369\tres = 1.719E-04\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.215568\tres = 1.677E-04\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.215762\tres = 1.636E-04\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.215951\tres = 1.596E-04\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.216136\tres = 1.557E-04\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.216316\tres = 1.519E-04\n", + "[ NORMAL ] Iteration 231:\tk_eff = 1.216492\tres = 1.482E-04\n", + "[ NORMAL ] Iteration 232:\tk_eff = 1.216663\tres = 1.445E-04\n", + "[ NORMAL ] Iteration 233:\tk_eff = 1.216831\tres = 1.410E-04\n", + "[ NORMAL ] Iteration 234:\tk_eff = 1.216994\tres = 1.375E-04\n", + "[ NORMAL ] Iteration 235:\tk_eff = 1.217153\tres = 1.342E-04\n", + "[ NORMAL ] Iteration 236:\tk_eff = 1.217309\tres = 1.309E-04\n", + "[ NORMAL ] Iteration 237:\tk_eff = 1.217460\tres = 1.277E-04\n", + "[ NORMAL ] Iteration 238:\tk_eff = 1.217608\tres = 1.246E-04\n", + "[ NORMAL ] Iteration 239:\tk_eff = 1.217753\tres = 1.215E-04\n", + "[ NORMAL ] Iteration 240:\tk_eff = 1.217894\tres = 1.185E-04\n", + "[ NORMAL ] Iteration 241:\tk_eff = 1.218031\tres = 1.156E-04\n", + "[ NORMAL ] Iteration 242:\tk_eff = 1.218165\tres = 1.128E-04\n", + "[ NORMAL ] Iteration 243:\tk_eff = 1.218296\tres = 1.101E-04\n", + "[ NORMAL ] Iteration 244:\tk_eff = 1.218423\tres = 1.074E-04\n", + "[ NORMAL ] Iteration 245:\tk_eff = 1.218548\tres = 1.047E-04\n", + "[ NORMAL ] Iteration 246:\tk_eff = 1.218669\tres = 1.022E-04\n", + "[ NORMAL ] Iteration 247:\tk_eff = 1.218788\tres = 9.967E-05\n", + "[ NORMAL ] Iteration 248:\tk_eff = 1.218903\tres = 9.723E-05\n", + "[ NORMAL ] Iteration 249:\tk_eff = 1.219016\tres = 9.486E-05\n", + "[ NORMAL ] Iteration 250:\tk_eff = 1.219126\tres = 9.254E-05\n", + "[ NORMAL ] Iteration 251:\tk_eff = 1.219234\tres = 9.027E-05\n", + "[ NORMAL ] Iteration 252:\tk_eff = 1.219338\tres = 8.806E-05\n", + "[ NORMAL ] Iteration 253:\tk_eff = 1.219441\tres = 8.591E-05\n", + "[ NORMAL ] Iteration 254:\tk_eff = 1.219540\tres = 8.381E-05\n", + "[ NORMAL ] Iteration 255:\tk_eff = 1.219637\tres = 8.176E-05\n", + "[ NORMAL ] Iteration 256:\tk_eff = 1.219732\tres = 7.976E-05\n", + "[ NORMAL ] Iteration 257:\tk_eff = 1.219825\tres = 7.781E-05\n", + "[ NORMAL ] Iteration 258:\tk_eff = 1.219915\tres = 7.591E-05\n", + "[ NORMAL ] Iteration 259:\tk_eff = 1.220003\tres = 7.405E-05\n", + "[ NORMAL ] Iteration 260:\tk_eff = 1.220089\tres = 7.224E-05\n", + "[ NORMAL ] Iteration 261:\tk_eff = 1.220173\tres = 7.047E-05\n", + "[ NORMAL ] Iteration 262:\tk_eff = 1.220255\tres = 6.875E-05\n", + "[ NORMAL ] Iteration 263:\tk_eff = 1.220335\tres = 6.707E-05\n", + "[ NORMAL ] Iteration 264:\tk_eff = 1.220413\tres = 6.543E-05\n", + "[ NORMAL ] Iteration 265:\tk_eff = 1.220489\tres = 6.383E-05\n", + "[ NORMAL ] Iteration 266:\tk_eff = 1.220563\tres = 6.227E-05\n", + "[ NORMAL ] Iteration 267:\tk_eff = 1.220635\tres = 6.075E-05\n", + "[ NORMAL ] Iteration 268:\tk_eff = 1.220706\tres = 5.926E-05\n", + "[ NORMAL ] Iteration 269:\tk_eff = 1.220775\tres = 5.781E-05\n", + "[ NORMAL ] Iteration 270:\tk_eff = 1.220842\tres = 5.640E-05\n", + "[ NORMAL ] Iteration 271:\tk_eff = 1.220907\tres = 5.502E-05\n", + "[ NORMAL ] Iteration 272:\tk_eff = 1.220971\tres = 5.368E-05\n", + "[ NORMAL ] Iteration 273:\tk_eff = 1.221034\tres = 5.236E-05\n", + "[ NORMAL ] Iteration 274:\tk_eff = 1.221095\tres = 5.108E-05\n", + "[ NORMAL ] Iteration 275:\tk_eff = 1.221154\tres = 4.984E-05\n", + "[ NORMAL ] Iteration 276:\tk_eff = 1.221212\tres = 4.862E-05\n", + "[ NORMAL ] Iteration 277:\tk_eff = 1.221268\tres = 4.743E-05\n", + "[ NORMAL ] Iteration 278:\tk_eff = 1.221324\tres = 4.627E-05\n", + "[ NORMAL ] Iteration 279:\tk_eff = 1.221377\tres = 4.514E-05\n", + "[ NORMAL ] Iteration 280:\tk_eff = 1.221430\tres = 4.403E-05\n", + "[ NORMAL ] Iteration 281:\tk_eff = 1.221481\tres = 4.296E-05\n", + "[ NORMAL ] Iteration 282:\tk_eff = 1.221531\tres = 4.191E-05\n", + "[ NORMAL ] Iteration 283:\tk_eff = 1.221580\tres = 4.088E-05\n", + "[ NORMAL ] Iteration 284:\tk_eff = 1.221627\tres = 3.988E-05\n", + "[ NORMAL ] Iteration 285:\tk_eff = 1.221674\tres = 3.891E-05\n", + "[ NORMAL ] Iteration 286:\tk_eff = 1.221719\tres = 3.796E-05\n", + "[ NORMAL ] Iteration 287:\tk_eff = 1.221763\tres = 3.703E-05\n", + "[ NORMAL ] Iteration 288:\tk_eff = 1.221806\tres = 3.613E-05\n", + "[ NORMAL ] Iteration 289:\tk_eff = 1.221848\tres = 3.524E-05\n", + "[ NORMAL ] Iteration 290:\tk_eff = 1.221889\tres = 3.438E-05\n", + "[ NORMAL ] Iteration 291:\tk_eff = 1.221929\tres = 3.354E-05\n", + "[ NORMAL ] Iteration 292:\tk_eff = 1.221968\tres = 3.272E-05\n", + "[ NORMAL ] Iteration 293:\tk_eff = 1.222006\tres = 3.192E-05\n", + "[ NORMAL ] Iteration 294:\tk_eff = 1.222043\tres = 3.114E-05\n", + "[ NORMAL ] Iteration 295:\tk_eff = 1.222079\tres = 3.038E-05\n", + "[ NORMAL ] Iteration 296:\tk_eff = 1.222115\tres = 2.964E-05\n", + "[ NORMAL ] Iteration 297:\tk_eff = 1.222149\tres = 2.891E-05\n", + "[ NORMAL ] Iteration 298:\tk_eff = 1.222183\tres = 2.821E-05\n", + "[ NORMAL ] Iteration 299:\tk_eff = 1.222216\tres = 2.752E-05\n", + "[ NORMAL ] Iteration 300:\tk_eff = 1.222248\tres = 2.685E-05\n", + "[ NORMAL ] Iteration 301:\tk_eff = 1.222279\tres = 2.619E-05\n", + "[ NORMAL ] Iteration 302:\tk_eff = 1.222309\tres = 2.555E-05\n", + "[ NORMAL ] Iteration 303:\tk_eff = 1.222339\tres = 2.492E-05\n", + "[ NORMAL ] Iteration 304:\tk_eff = 1.222368\tres = 2.432E-05\n", + "[ NORMAL ] Iteration 305:\tk_eff = 1.222396\tres = 2.372E-05\n", + "[ NORMAL ] Iteration 306:\tk_eff = 1.222424\tres = 2.314E-05\n", + "[ NORMAL ] Iteration 307:\tk_eff = 1.222451\tres = 2.258E-05\n", + "[ NORMAL ] Iteration 308:\tk_eff = 1.222477\tres = 2.202E-05\n", + "[ NORMAL ] Iteration 309:\tk_eff = 1.222503\tres = 2.149E-05\n", + "[ NORMAL ] Iteration 310:\tk_eff = 1.222528\tres = 2.096E-05\n", + "[ NORMAL ] Iteration 311:\tk_eff = 1.222552\tres = 2.045E-05\n", + "[ NORMAL ] Iteration 312:\tk_eff = 1.222576\tres = 1.995E-05\n", + "[ NORMAL ] Iteration 313:\tk_eff = 1.222599\tres = 1.946E-05\n", + "[ NORMAL ] Iteration 314:\tk_eff = 1.222622\tres = 1.899E-05\n", + "[ NORMAL ] Iteration 315:\tk_eff = 1.222644\tres = 1.852E-05\n", + "[ NORMAL ] Iteration 316:\tk_eff = 1.222665\tres = 1.807E-05\n", + "[ NORMAL ] Iteration 317:\tk_eff = 1.222686\tres = 1.763E-05\n", + "[ NORMAL ] Iteration 318:\tk_eff = 1.222707\tres = 1.720E-05\n", + "[ NORMAL ] Iteration 319:\tk_eff = 1.222727\tres = 1.678E-05\n", + "[ NORMAL ] Iteration 320:\tk_eff = 1.222746\tres = 1.637E-05\n", + "[ NORMAL ] Iteration 321:\tk_eff = 1.222766\tres = 1.597E-05\n", + "[ NORMAL ] Iteration 322:\tk_eff = 1.222784\tres = 1.558E-05\n", + "[ NORMAL ] Iteration 323:\tk_eff = 1.222802\tres = 1.520E-05\n", + "[ NORMAL ] Iteration 324:\tk_eff = 1.222820\tres = 1.483E-05\n", + "[ NORMAL ] Iteration 325:\tk_eff = 1.222837\tres = 1.446E-05\n", + "[ NORMAL ] Iteration 326:\tk_eff = 1.222854\tres = 1.411E-05\n", + "[ NORMAL ] Iteration 327:\tk_eff = 1.222870\tres = 1.377E-05\n", + "[ NORMAL ] Iteration 328:\tk_eff = 1.222886\tres = 1.343E-05\n", + "[ NORMAL ] Iteration 329:\tk_eff = 1.222902\tres = 1.310E-05\n", + "[ NORMAL ] Iteration 330:\tk_eff = 1.222917\tres = 1.278E-05\n", + "[ NORMAL ] Iteration 331:\tk_eff = 1.222932\tres = 1.247E-05\n", + "[ NORMAL ] Iteration 332:\tk_eff = 1.222947\tres = 1.216E-05\n", + "[ NORMAL ] Iteration 333:\tk_eff = 1.222961\tres = 1.187E-05\n", + "[ NORMAL ] Iteration 334:\tk_eff = 1.222975\tres = 1.158E-05\n", + "[ NORMAL ] Iteration 335:\tk_eff = 1.222988\tres = 1.129E-05\n", + "[ NORMAL ] Iteration 336:\tk_eff = 1.223001\tres = 1.102E-05\n", + "[ NORMAL ] Iteration 337:\tk_eff = 1.223014\tres = 1.075E-05\n", + "[ NORMAL ] Iteration 338:\tk_eff = 1.223027\tres = 1.049E-05\n", + "[ NORMAL ] Iteration 339:\tk_eff = 1.223039\tres = 1.023E-05\n" ] } ], @@ -1686,8 +1876,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.223227\n", - "bias [pcm]: -24.7\n" + "openmoc keff = 1.223039\n", + "bias [pcm]: -43.5\n" ] } ], @@ -1772,9 +1962,9 @@ }, { "data": { - "image/png": "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\nRK5CYII=\n", + "image/png": "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\nYwHYAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1790,6 +1980,7 @@ "energy_groups = nufission.energy_groups\n", "x = energy_groups.group_edges\n", "y = nufission.get_xs(nuclides=['U235'], order_groups='decreasing', xs_type='micro')\n", + "y = np.squeeze(y)\n", "\n", "# Fix low energy bound to the value defined by the ACE library\n", "x[0] = fission.xs.x[0]\n", @@ -1855,9 +2046,9 @@ "outputs": [ { "data": { - "image/png": "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\nfn35+EIOpHUAAAAASUVORK5CYII=\n", + "image/png": "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\nZlZT/x9xJfW8VvykSgAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1897,21 +2088,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.2" + "pygments_lexer": "ipython2", + "version": "2.7.12" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index a1eaa7ad82..9d2b89c512 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/romano/miniconda3/envs/default/lib/python3.5/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.py:1357: 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", @@ -458,7 +458,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -727,9 +727,10 @@ "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", - " Date/Time: 2016-07-23 16:42:32\n", + " Version: 0.8.0\n", + " Git SHA1: be7e6e035d22944a8c80ca32f99935b6822854c9\n", + " Date/Time: 2016-08-10 18:33:28\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -739,12 +740,12 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", - " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", - " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", - " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", - " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Reading U235.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/O16_71c.h5\n", + " Reading H1.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/H1_71c.h5\n", + " Reading B10.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/B10_71c.h5\n", + " Reading Zr90.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/Zr90_71c.h5\n", " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", @@ -780,32 +781,32 @@ " 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", + " 25/1 0.97414 1.02442 +/- 0.00666\n", + " 26/1 1.04709 1.02584 +/- 0.00639\n", + " 27/1 1.05872 1.02777 +/- 0.00631\n", + " 28/1 1.03930 1.02841 +/- 0.00598\n", + " 29/1 1.01488 1.02770 +/- 0.00570\n", + " 30/1 1.04513 1.02857 +/- 0.00548\n", + " 31/1 0.99538 1.02699 +/- 0.00545\n", + " 32/1 1.00106 1.02581 +/- 0.00532\n", + " 33/1 0.99389 1.02442 +/- 0.00527\n", + " 34/1 0.99938 1.02338 +/- 0.00516\n", + " 35/1 1.02161 1.02331 +/- 0.00495\n", + " 36/1 1.04084 1.02398 +/- 0.00480\n", + " 37/1 0.98801 1.02265 +/- 0.00481\n", + " 38/1 1.01348 1.02232 +/- 0.00464\n", + " 39/1 1.06693 1.02386 +/- 0.00474\n", + " 40/1 1.07729 1.02564 +/- 0.00491\n", + " 41/1 1.03191 1.02585 +/- 0.00475\n", + " 42/1 1.05209 1.02667 +/- 0.00468\n", + " 43/1 1.02997 1.02677 +/- 0.00453\n", + " 44/1 1.07288 1.02812 +/- 0.00460\n", + " 45/1 1.01268 1.02768 +/- 0.00449\n", + " 46/1 1.03759 1.02796 +/- 0.00437\n", + " 47/1 1.02620 1.02791 +/- 0.00425\n", + " 48/1 1.02509 1.02783 +/- 0.00414\n", + " 49/1 1.01043 1.02739 +/- 0.00406\n", + " 50/1 1.01457 1.02707 +/- 0.00397\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -815,27 +816,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.3400E-01 seconds\n", - " Reading cross sections = 2.7900E-01 seconds\n", - " Total time in simulation = 6.1121E+01 seconds\n", - " Time in transport only = 6.1101E+01 seconds\n", - " Time in inactive batches = 5.0660E+00 seconds\n", - " Time in active batches = 5.6055E+01 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for initialization = 4.3000E-01 seconds\n", + " Reading cross sections = 2.2800E-01 seconds\n", + " Total time in simulation = 6.1235E+01 seconds\n", + " Time in transport only = 6.1207E+01 seconds\n", + " Time in inactive batches = 5.0280E+00 seconds\n", + " Time in active batches = 5.6207E+01 seconds\n", + " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Sampling source sites = 4.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 6.1576E+01 seconds\n", - " Calculation Rate (inactive) = 4934.86 neutrons/second\n", - " Calculation Rate (active) = 1783.96 neutrons/second\n", + " Total time elapsed = 6.1689E+01 seconds\n", + " Calculation Rate (inactive) = 4972.16 neutrons/second\n", + " Calculation Rate (active) = 1779.14 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\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", + " k-effective (Collision) = 1.02489 +/- 0.00308\n", + " k-effective (Track-length) = 1.02707 +/- 0.00397\n", + " k-effective (Absorption) = 1.02637 +/- 0.00325\n", + " Combined k-effective = 1.02581 +/- 0.00264\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -955,8 +956,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/romano/openmc/openmc/tallies.py:1941: RuntimeWarning: invalid value encountered in true_divide\n", - " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" + "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1944: RuntimeWarning: invalid value encountered in true_divide\n" ] }, { @@ -980,16 +980,16 @@ " 10000\n", " 1\n", " U235\n", - " 8.055246e-03\n", - " 2.857567e-05\n", + " 8.046809e-03\n", + " 2.697198e-05\n", " \n", " \n", " 4\n", " 10000\n", " 1\n", " U238\n", - " 7.339215e-03\n", - " 4.349466e-05\n", + " 7.366624e-03\n", + " 4.255197e-05\n", " \n", " \n", " 5\n", @@ -1004,16 +1004,16 @@ " 10000\n", " 2\n", " U235\n", - " 3.615565e-01\n", - " 2.050486e-03\n", + " 3.614917e-01\n", + " 2.135233e-03\n", " \n", " \n", " 1\n", " 10000\n", " 2\n", " U238\n", - " 6.742638e-07\n", - " 3.795256e-09\n", + " 6.741607e-07\n", + " 3.924924e-09\n", " \n", " \n", " 2\n", @@ -1029,11 +1029,11 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\n", - "3 10000 1 U235 8.055246e-03 2.857567e-05\n", - "4 10000 1 U238 7.339215e-03 4.349466e-05\n", + "3 10000 1 U235 8.046809e-03 2.697198e-05\n", + "4 10000 1 U238 7.366624e-03 4.255197e-05\n", "5 10000 1 O16 0.000000e+00 0.000000e+00\n", - "0 10000 2 U235 3.615565e-01 2.050486e-03\n", - "1 10000 2 U238 6.742638e-07 3.795256e-09\n", + "0 10000 2 U235 3.614917e-01 2.135233e-03\n", + "1 10000 2 U238 6.741607e-07 3.924924e-09\n", "2 10000 2 O16 0.000000e+00 0.000000e+00" ] }, @@ -1071,18 +1071,18 @@ "\tDomain ID =\t10000\n", "\tNuclide =\tU235\n", "\tCross Sections [cm^-1]:\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", + " Group 1 [6.25e-07 - 20.0 MeV]:\t8.05e-03 +/- 3.35e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t3.61e-01 +/- 5.91e-01%\n", "\n", "\tNuclide =\tU238\n", "\tCross Sections [cm^-1]:\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", + " Group 1 [6.25e-07 - 20.0 MeV]:\t7.37e-03 +/- 5.78e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t6.74e-07 +/- 5.82e-01%\n", "\n", "\tNuclide =\tO16\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t0.00e+00 +/- nan%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t0.00e+00 +/- nan%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t0.00e+00 +/- 0.00e+00%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t0.00e+00 +/- 0.00e+00%\n", "\n", "\n", "\n" @@ -1193,16 +1193,16 @@ " 10000\n", " 1\n", " U235\n", - " 0.074860\n", - " 0.000303\n", + " 0.074734\n", + " 0.000325\n", " \n", " \n", " 1\n", " 10000\n", " 1\n", " U238\n", - " 0.005952\n", - " 0.000035\n", + " 0.005977\n", + " 0.000034\n", " \n", " \n", " 2\n", @@ -1218,8 +1218,8 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\n", - "0 10000 1 U235 0.074860 0.000303\n", - "1 10000 1 U238 0.005952 0.000035\n", + "0 10000 1 U235 0.074734 0.000325\n", + "1 10000 1 U238 0.005977 0.000034\n", "2 10000 1 O16 0.000000 0.000000" ] }, @@ -1300,127 +1300,133 @@ "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.854370\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761745\tres = 6.349E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.732366\tres = 5.029E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.711073\tres = 3.869E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.696554\tres = 2.912E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.687670\tres = 2.044E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.683465\tres = 1.277E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.683124\tres = 6.142E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.685943\tres = 7.897E-04\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.691322\tres = 4.180E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.698746\tres = 7.873E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.707777\tres = 1.076E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.718039\tres = 1.295E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.729218\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.741045\tres = 1.559E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.753296\tres = 1.624E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.765784\tres = 1.655E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.778355\tres = 1.659E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.790879\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803253\tres = 1.610E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.815394\tres = 1.566E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.827235\tres = 1.513E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.838724\tres = 1.453E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.849823\tres = 1.390E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.860502\tres = 1.324E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.870744\tres = 1.258E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.880535\tres = 1.191E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.889869\tres = 1.125E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.898747\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.907172\tres = 9.985E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.915150\tres = 9.382E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.922692\tres = 8.802E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.929810\tres = 8.248E-03\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.936517\tres = 7.720E-03\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.942827\tres = 7.219E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.948756\tres = 6.744E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.954321\tres = 6.295E-03\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.959539\tres = 5.871E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.964424\tres = 5.472E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.968995\tres = 5.096E-03\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.973268\tres = 4.744E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.977258\tres = 4.413E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.980981\tres = 4.104E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.984453\tres = 3.814E-03\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.987689\tres = 3.543E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990701\tres = 3.289E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.993505\tres = 3.053E-03\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.996112\tres = 2.832E-03\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.998536\tres = 2.627E-03\n", - "[ NORMAL ] Iteration 50:\tk_eff = 1.000787\tres = 2.435E-03\n", - "[ NORMAL ] Iteration 51:\tk_eff = 1.002878\tres = 2.257E-03\n", - "[ NORMAL ] Iteration 52:\tk_eff = 1.004818\tres = 2.091E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 1.006618\tres = 1.937E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.008287\tres = 1.793E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.009834\tres = 1.660E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.011268\tres = 1.536E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.012595\tres = 1.421E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.013824\tres = 1.314E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.014962\tres = 1.215E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.016015\tres = 1.123E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.016988\tres = 1.038E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.017889\tres = 9.595E-04\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.018721\tres = 8.864E-04\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.019490\tres = 8.187E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.020201\tres = 7.560E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.020857\tres = 6.980E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021464\tres = 6.443E-04\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.022024\tres = 5.947E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022540\tres = 5.488E-04\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.023017\tres = 5.063E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.023457\tres = 4.670E-04\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.023863\tres = 4.308E-04\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.024238\tres = 3.972E-04\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.024583\tres = 3.663E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.024902\tres = 3.376E-04\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.025195\tres = 3.112E-04\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.025466\tres = 2.868E-04\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.025715\tres = 2.643E-04\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.025945\tres = 2.435E-04\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.026157\tres = 2.244E-04\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.026352\tres = 2.067E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.026531\tres = 1.904E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.026697\tres = 1.753E-04\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.026849\tres = 1.614E-04\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.026989\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.027118\tres = 1.368E-04\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.027237\tres = 1.260E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.027346\tres = 1.159E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.027447\tres = 1.067E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027540\tres = 9.821E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027625\tres = 9.040E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027703\tres = 8.316E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027775\tres = 7.652E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027842\tres = 7.039E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027903\tres = 6.480E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.027959\tres = 5.959E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.028011\tres = 5.479E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028058\tres = 5.043E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028102\tres = 4.633E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028142\tres = 4.265E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028180\tres = 3.921E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028214\tres = 3.605E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028245\tres = 3.315E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028273\tres = 3.047E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.028300\tres = 2.800E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028324\tres = 2.575E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028346\tres = 2.368E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028367\tres = 2.176E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028386\tres = 2.003E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.028403\tres = 1.837E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.028419\tres = 1.690E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028434\tres = 1.553E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.028447\tres = 1.426E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028459\tres = 1.309E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028471\tres = 1.202E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028481\tres = 1.107E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028491\tres = 1.015E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.823582\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.780361\tres = 1.940E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.739500\tres = 6.545E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.710868\tres = 5.284E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.689663\tres = 3.926E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.675035\tres = 3.007E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.665831\tres = 2.137E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.661179\tres = 1.377E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.660309\tres = 7.167E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.662566\tres = 1.972E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.667383\tres = 3.708E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.674274\tres = 7.412E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.682821\tres = 1.043E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.692664\tres = 1.276E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.703499\tres = 1.449E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.715063\tres = 1.571E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.727136\tres = 1.650E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.739531\tres = 1.694E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.752091\tres = 1.710E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.764686\tres = 1.703E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.777208\tres = 1.679E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.789567\tres = 1.642E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.801692\tres = 1.595E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.813525\tres = 1.540E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.825022\tres = 1.480E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.836147\tres = 1.417E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.846876\tres = 1.352E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.857190\tres = 1.287E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.867079\tres = 1.221E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.876536\tres = 1.157E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.885559\tres = 1.094E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.894153\tres = 1.032E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.902320\tres = 9.731E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.910071\tres = 9.161E-03\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.917414\tres = 8.614E-03\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.924362\tres = 8.092E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.930926\tres = 7.595E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.937121\tres = 7.122E-03\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.942961\tres = 6.674E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.948460\tres = 6.250E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.953633\tres = 5.849E-03\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.958495\tres = 5.471E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.963061\tres = 5.114E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.967346\tres = 4.779E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.971364\tres = 4.463E-03\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.975128\tres = 4.166E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.978653\tres = 3.888E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.981952\tres = 3.627E-03\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.985037\tres = 3.382E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.987921\tres = 3.152E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.990615\tres = 2.937E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.993131\tres = 2.736E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.995479\tres = 2.548E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.997670\tres = 2.373E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.999713\tres = 2.208E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.001618\tres = 2.055E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.003393\tres = 1.912E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.005046\tres = 1.778E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.006586\tres = 1.654E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.008019\tres = 1.537E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.009352\tres = 1.429E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.010593\tres = 1.328E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.011747\tres = 1.234E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.012820\tres = 1.146E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.013818\tres = 1.065E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.014745\tres = 9.887E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.015606\tres = 9.179E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.016406\tres = 8.522E-04\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.017149\tres = 7.909E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.017839\tres = 7.340E-04\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.018480\tres = 6.811E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.019074\tres = 6.319E-04\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.019626\tres = 5.862E-04\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.020138\tres = 5.437E-04\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.020613\tres = 5.042E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.021054\tres = 4.676E-04\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.021462\tres = 4.335E-04\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.021841\tres = 4.019E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.022193\tres = 3.725E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.022518\tres = 3.453E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.022820\tres = 3.200E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.023100\tres = 2.965E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.023359\tres = 2.748E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.023600\tres = 2.546E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.023822\tres = 2.358E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.024028\tres = 2.185E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.024219\tres = 2.023E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.024396\tres = 1.874E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.024560\tres = 1.735E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.024712\tres = 1.607E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.024852\tres = 1.488E-04\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.024983\tres = 1.378E-04\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.025103\tres = 1.275E-04\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.025215\tres = 1.181E-04\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.025318\tres = 1.093E-04\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.025413\tres = 1.012E-04\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.025502\tres = 9.364E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.025584\tres = 8.666E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.025659\tres = 8.020E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.025729\tres = 7.422E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.025794\tres = 6.868E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.025854\tres = 6.355E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.025910\tres = 5.880E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.025961\tres = 5.440E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.026009\tres = 5.033E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.026053\tres = 4.656E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.026093\tres = 4.307E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.026131\tres = 3.984E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.026166\tres = 3.685E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.026198\tres = 3.409E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.026228\tres = 3.153E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.026255\tres = 2.916E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.026281\tres = 2.697E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.026304\tres = 2.494E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.026326\tres = 2.307E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.026346\tres = 2.133E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.026365\tres = 1.973E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.026382\tres = 1.824E-05\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.026398\tres = 1.687E-05\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.026413\tres = 1.560E-05\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.026426\tres = 1.442E-05\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.026439\tres = 1.333E-05\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.026451\tres = 1.233E-05\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.026461\tres = 1.140E-05\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.026471\tres = 1.054E-05\n" ] } ], @@ -1452,9 +1458,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "openmc keff = 1.028263\n", - "openmoc keff = 1.028491\n", - "bias [pcm]: 22.8\n" + "openmc keff = 1.025806\n", + "openmoc keff = 1.026471\n", + "bias [pcm]: 66.5\n" ] } ], @@ -1562,7 +1568,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 43, @@ -1571,9 +1577,9 @@ }, { "data": { - "image/png": "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\nSUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1613,7 +1619,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.12" } }, "nbformat": 4, diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 6d2665566b..42cfdd06c5 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -328,16 +328,19 @@ class Library(object): @delayed_groups.setter def delayed_groups(self, delayed_groups): - cv.check_type('delayed groups', delayed_groups, list, int) - cv.check_greater_than('num delayed groups', len(delayed_groups), 0) + if delayed_groups != None: - # Check that the groups are within [1, MAX_DELAYED_GROUPS] - for group in delayed_groups: - cv.check_greater_than('delayed group', group, 0) - cv.check_less_than('delayed group', group, - openmc.mgxs.MAX_DELAYED_GROUPS, equality=True) + cv.check_type('delayed groups', delayed_groups, list, int) + cv.check_greater_than('num delayed groups', len(delayed_groups), 0) - self._delayed_groups = delayed_groups + # Check that the groups are within [1, MAX_DELAYED_GROUPS] + for group in delayed_groups: + cv.check_greater_than('delayed group', group, 0) + cv.check_less_than('delayed group', group, + openmc.mgxs.MAX_DELAYED_GROUPS, + equality=True) + + self._delayed_groups = delayed_groups @correction.setter def correction(self, correction): @@ -508,7 +511,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', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi', 'chi-prompt', 'inverse-velocity', 'prompt-nu-fission'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi', 'chi-prompt', 'inverse-velocity', 'prompt-nu-fission', 'delayed-nu-fission', 'chi-delayed', 'beta'} The type of multi-group cross section object to return Returns diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index c01b0b575b..d853ebed34 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -14,6 +14,9 @@ import openmc from openmc.mgxs import MGXS import openmc.checkvalue as cv +if sys.version_info[0] >= 3: + basestring = str + # Supported cross section types MDGXS_TYPES = ['delayed-nu-fission', 'chi-delayed', @@ -102,12 +105,12 @@ class MDGXS(MGXS): 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 MDGXS' tallies use SciPy's LIL sparse matrix format + Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format for compressed data storage loaded_sp : bool Whether or not a statepoint file has been loaded with tally data derived : bool - Whether or not the MDGXS is merged from one or more other MDGXS + Whether or not the MGXS is merged from one or more other MGXS hdf5_key : str The key used to index multi-group cross sections in an HDF5 data store @@ -165,23 +168,25 @@ class MDGXS(MGXS): @property def num_delayed_groups(self): if self.delayed_groups == None: - return 0 + return 1 else: return len(self.delayed_groups) @delayed_groups.setter def delayed_groups(self, delayed_groups): - cv.check_type('delayed groups', delayed_groups, list, int) - cv.check_greater_than('num delayed groups', len(delayed_groups), 0) + if delayed_groups != None: - # Check that the groups are within [1, MAX_DELAYED_GROUPS] - for group in delayed_groups: - cv.check_greater_than('delayed group', group, 0) - cv.check_less_than('delayed group', group, MAX_DELAYED_GROUPS, - equality=True) + cv.check_type('delayed groups', delayed_groups, list, int) + cv.check_greater_than('num delayed groups', len(delayed_groups), 0) - self._delayed_groups = delayed_groups + # Check that the groups are within [1, MAX_DELAYED_GROUPS] + for group in delayed_groups: + cv.check_greater_than('delayed group', group, 0) + cv.check_less_than('delayed group', group, MAX_DELAYED_GROUPS, + equality=True) + + self._delayed_groups = delayed_groups @property def filters(self): @@ -251,12 +256,13 @@ class MDGXS(MGXS): def get_xs(self, groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', - value='mean', delayed_groups='all', **kwargs): + value='mean', delayed_groups='all', squeeze=True, **kwargs): """Returns an array of multi-delayed-group cross sections. - This method constructs a 2D NumPy array for the requested - multi-delayed-group cross section data data for one or more energy - groups, delayed groups, and subdomains. + This method constructs a 4D NumPy array for the requested + multi-delayed-group cross section data for one or more + subdomains (1st dimension), delayed groups (2nd demension), + energy groups (3rd dimension), and nuclides (4th dimension). Parameters ---------- @@ -280,6 +286,10 @@ class MDGXS(MGXS): A string for the type of value to return. Defaults to 'mean'. delayed_groups : list of int or 'all' Delayed groups of interest. Defaults to 'all'. + squeeze : bool + A boolean representing whether to eliminate the extra dimensions + of the multi-dimensional array this is to be retured. Defaults to + True. Returns ------- @@ -359,25 +369,36 @@ class MDGXS(MGXS): if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] + # Eliminate the trivial score dimension + xs = np.squeeze(xs, axis=len(xs.shape) - 1) + xs = np.nan_to_num(xs) + + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + + if delayed_groups == 'all': + num_delayed_groups = self.num_delayed_groups + else: + num_delayed_groups = len(delayed_groups) + + # Reshape tally data array with separate axes for domain, energy groups, + # delayed groups, and nuclides + num_subdomains = int(xs.shape[0] / (num_groups * num_delayed_groups)) + new_shape = (num_subdomains, num_delayed_groups, num_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies if order_groups == 'increasing': - if groups == 'all': - num_groups = self.num_groups - else: - num_groups = len(groups) + xs = xs[:, :, ::-1, :] - # Reshape tally data array with separate axes for domain and energy - num_subdomains = int(xs.shape[0] / num_groups) - new_shape = (num_subdomains, num_groups) + xs.shape[1:] - xs = np.reshape(xs, new_shape) + if squeeze: + xs = np.squeeze(xs) + xs = np.atleast_1d(xs) - # Reverse energies to align with increasing energy groups - xs = xs[:, ::-1, :] - - # Eliminate trivial dimensions - xs = np.squeeze(xs) - xs = np.atleast_1d(xs) return xs def get_slice(self, nuclides=[], groups=[], delayed_groups=[]): @@ -467,11 +488,11 @@ class MDGXS(MGXS): return slice_xs def merge(self, other): - """Merge another MDGXS with this one + """Merge another MGXS with this one - MDGXS are only mergeable if their energy groups and nuclides are either + 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 MDGXS are only mergeable along one and only one of + statepoint, then MGXS are only mergeable along one and only one of energy groups or nuclides. Parameters @@ -718,9 +739,112 @@ class MDGXS(MGXS): """ + if not isinstance(groups, basestring): + cv.check_iterable_type('groups', groups, Integral) + if nuclides != 'all' and nuclides != 'sum': + cv.check_iterable_type('nuclides', nuclides, basestring) if not isinstance(delayed_groups, basestring): cv.check_type('delayed groups', delayed_groups, list, int) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Get a Pandas DataFrame from the derived xs tally + if self.by_nuclide and nuclides == 'sum': + + # Use tally summation to sum across all nuclides + query_nuclides = self.get_all_nuclides() + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + df = xs_tally.get_pandas_dataframe( + distribcell_paths=distribcell_paths) + + # Remove nuclide column since it is homogeneous and redundant + if self.domain_type == 'mesh': + df.drop('nuclide', axis=1, level=0, inplace=True) + else: + df.drop('nuclide', axis=1, inplace=True) + + # If the user requested a specific set of nuclides + elif self.by_nuclide and nuclides != 'all': + xs_tally = self.xs_tally.get_slice(nuclides=nuclides) + df = xs_tally.get_pandas_dataframe( + distribcell_paths=distribcell_paths) + + # If the user requested all nuclides, keep nuclide column in dataframe + else: + df = self.xs_tally.get_pandas_dataframe( + distribcell_paths=distribcell_paths) + + # Remove the score column since it is homogeneous and redundant + if self.domain_type == 'mesh': + df = df.drop('score', axis=1, level=0) + else: + df = df.drop('score', axis=1) + + # 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 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, int(self.num_subdomains * + self.num_delayed_groups)) + in_groups = np.repeat(in_groups, int(df.shape[0] / in_groups.size)) + df['group in'] = in_groups + del df['energy high [MeV]'] + + df.rename(columns={'energyout low [MeV]': 'group out'}, + inplace=True) + out_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size)) + df['group out'] = out_groups + del df['energyout high [MeV]'] + columns = ['group in', 'group out'] + + elif 'energyout low [MeV]' in df: + df.rename(columns={'energyout low [MeV]': 'group out'}, + inplace=True) + in_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size)) + df['group out'] = in_groups + del df['energyout high [MeV]'] + columns = ['group out'] + + elif 'energy low [MeV]' in df: + df.rename(columns={'energy low [MeV]': 'group in'}, inplace=True) + in_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size)) + df['group in'] = in_groups + del df['energy high [MeV]'] + columns = ['group in'] + + # Select out those groups the user requested + if not isinstance(groups, basestring): + if 'group in' in df: + df = df[df['group in'].isin(groups)] + if 'group out' in df: + df = df[df['group out'].isin(groups)] + + # If user requested micro cross sections, divide out the atom densities + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + densities = np.repeat(densities, len(self.rxn_rate_tally.scores)) + tile_factor = df.shape[0] / len(densities) + df['mean'] /= np.tile(densities, tile_factor) + df['std. dev.'] /= np.tile(densities, tile_factor) + + # Sort the dataframe by domain type id (e.g., distribcell id) and + # energy groups such that data is from fast to thermal + if self.domain_type == 'mesh': + mesh_str = 'mesh {0}'.format(self.domain.id) + df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), \ + (mesh_str, 'z')] + columns, inplace=True) + else: + df.sort_values(by=[self.domain_type] + columns, inplace=True) + + return df + + + df = super(MDGXS, self).get_pandas_dataframe(groups, nuclides, xs_type, distribcell_paths) @@ -744,7 +868,7 @@ class ChiDelayed(MDGXS): domain are generated automatically via the :attr:`ChiDelayed.tallies` property, which can then be appended to a :class:`openmc.Tallies` instance. - For post-processing, the :meth:`MDGXS.load_from_statepoint` will pull in the + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the necessary data to compute multi-group cross sections from a :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`ChiDelayed.xs_tally` property. @@ -961,7 +1085,7 @@ class ChiDelayed(MDGXS): # Slice nu-fission-out tally along energyout filter delayed_nu_fission_out = slice_xs.tallies['delayed-nu-fission-out'] - tally_slice = delayed_nu_fission_out.get_slice\ + tally_slice = delayed_nu_fission_out.get_slice \ (filters=filters, filter_bins=filter_bins) slice_xs._tallies['delayed-nu-fission-out'] = tally_slice @@ -980,8 +1104,8 @@ class ChiDelayed(MDGXS): Parameters ---------- - other : openmc.mdgxs.MDGXS - MDGXS to merge with this one + other : openmc.mdgxs.MGXS + MGXS to merge with this one Returns ------- @@ -1030,12 +1154,13 @@ class ChiDelayed(MDGXS): def get_xs(self, groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', - value='mean', delayed_groups='all', **kwargs): + value='mean', delayed_groups='all', squeeze=True, **kwargs): """Returns an array of the delayed fission spectrum. - This method constructs a 2D NumPy array for the requested multi-group - and multi-delayed group cross section data data for one or more energy - groups and subdomains. + This method constructs a 4D NumPy array for the requested + multi-delayed-group cross section data for one or more + subdomains (1st dimension), delayed groups (2nd demension), + energy groups (3rd dimension), and nuclides (4th dimension). Parameters ---------- @@ -1052,13 +1177,17 @@ class ChiDelayed(MDGXS): cross section summed over all nuclides. Defaults to 'all'. xs_type: {'macro', 'micro'} This parameter is not relevant for chi but is included here to - mirror the parent MDGXS.get_xs(...) class method + mirror the parent MGXS.get_xs(...) class method order_groups: {'increasing', 'decreasing'} Return the cross section indexed according to increasing or decreasing energy groups (decreasing or increasing energies). Defaults to 'increasing'. value : {'mean', 'std_dev', 'rel_err'} A string for the type of value to return. Defaults to 'mean'. + squeeze : bool + A boolean representing whether to eliminate the extra dimensions + of the multi-dimensional array this is to be retured. Defaults to + True. Returns ------- @@ -1162,27 +1291,37 @@ class ChiDelayed(MDGXS): xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) + # Eliminate the trivial score dimension + xs = np.squeeze(xs, axis=len(xs.shape) - 1) + xs = np.nan_to_num(xs) + + # Reshape tally data array with separate axes for domain and energy + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + + if delayed_groups == 'all': + num_delayed_groups = self.num_delayed_groups + else: + num_delayed_groups = len(delayed_groups) + + # Reshape tally data array with separate axes for domain, energy groups, + # delayed groups, and nuclides + num_subdomains = int(xs.shape[0] / (num_groups * num_delayed_groups)) + new_shape = (num_subdomains, num_delayed_groups, num_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies if order_groups == 'increasing': + xs = xs[:, :, ::-1, :] - # Reshape tally data array with separate axes for domain and energy - if groups == 'all': - num_groups = self.num_groups - else: - num_groups = len(groups) - num_subdomains = int(xs.shape[0] / num_groups) - new_shape = (num_subdomains, num_groups) + xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Reverse energies to align with increasing energy groups - xs = xs[:, ::-1, :] - - # Eliminate trivial dimensions + if squeeze: xs = np.squeeze(xs) xs = np.atleast_1d(xs) - xs = np.nan_to_num(xs) return xs @@ -1199,7 +1338,7 @@ class DelayedNuFissionXS(MDGXS): :attr:`DelayedNuFissionXS.tallies` property, which can then be appended to a :class:`openmc.Tallies` instance. - For post-processing, the :meth:`MDGXS.load_from_statepoint` will pull in the + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the necessary data to compute multi-group cross sections from a :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`DelayedNuFissionXS.xs_tally` property. @@ -1315,7 +1454,7 @@ class Beta(MDGXS): generated automatically via the :attr:`Beta.tallies` property, which can then be appended to a :class:`openmc.Tallies` instance. - For post-processing, the :meth:`MDGXS.load_from_statepoint` will pull in the + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the necessary data to compute multi-group cross sections from a :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`Beta.xs_tally` property. diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 4fc4edb38e..5a4c5866b7 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -724,11 +724,13 @@ class MGXS(object): def get_xs(self, groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', - value='mean', **kwargs): + value='mean', squeeze=True, **kwargs): r"""Returns an array of multi-group cross sections. - This method constructs a 2D NumPy array for the requested multi-group - cross section data data for one or more energy groups and subdomains. + This method constructs a 3D NumPy array for the requested + multi-group cross section data for one or more subdomains + (1st dimension), energy groups (2nd dimension), and nuclides + (3rd dimension). Parameters ---------- @@ -750,6 +752,10 @@ class MGXS(object): Defaults to 'increasing'. value : {'mean', 'std_dev', 'rel_err'} A string for the type of value to return. Defaults to 'mean'. + squeeze : bool + A boolean representing whether to eliminate the extra dimensions + of the multi-dimensional array this is to be retured. Defaults to + True. Returns ------- @@ -819,25 +825,29 @@ class MGXS(object): if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] + # Eliminate the trivial score dimension + xs = np.squeeze(xs, axis=len(xs.shape) - 1) + xs = np.nan_to_num(xs) + + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = int(xs.shape[0] / num_groups) + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies if order_groups == 'increasing': - if groups == 'all': - num_groups = self.num_groups - else: - num_groups = len(groups) - - # Reshape tally data array with separate axes for domain and energy - num_subdomains = int(xs.shape[0] / num_groups) - new_shape = (num_subdomains, num_groups) + xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Reverse energies to align with increasing energy groups xs = xs[:, ::-1, :] - # Eliminate trivial dimensions - xs = np.squeeze(xs) - xs = np.atleast_1d(xs) + if squeeze: + xs = np.squeeze(xs) + xs = np.atleast_1d(xs) + return xs def get_condensed_xs(self, coarse_groups): @@ -1350,8 +1360,6 @@ class MGXS(object): std_dev = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], xs_type=xs_type, value='std_dev', row_column=row_column) - average = average.squeeze() - std_dev = std_dev.squeeze() # Add MGXS results data to the HDF5 group nuclide_group.require_dataset('average', dtype=np.float64, @@ -1517,14 +1525,14 @@ class MGXS(object): 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, df.shape[0] / all_groups.size) - in_groups = np.repeat(in_groups, df.shape[0] / in_groups.size) + in_groups = np.tile(all_groups, int(self.num_subdomains)) + in_groups = np.repeat(in_groups, int(df.shape[0] / in_groups.size)) df['group in'] = in_groups del df['energy high [MeV]'] df.rename(columns={'energyout low [MeV]': 'group out'}, inplace=True) - out_groups = np.tile(all_groups, df.shape[0] / all_groups.size) + out_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size)) df['group out'] = out_groups del df['energyout high [MeV]'] columns = ['group in', 'group out'] @@ -1532,14 +1540,14 @@ class MGXS(object): elif 'energyout low [MeV]' in df: df.rename(columns={'energyout low [MeV]': 'group out'}, inplace=True) - in_groups = np.tile(all_groups, df.shape[0] / all_groups.size) + in_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size)) df['group out'] = in_groups del df['energyout high [MeV]'] columns = ['group out'] elif 'energy low [MeV]' in df: df.rename(columns={'energy low [MeV]': 'group in'}, inplace=True) - in_groups = np.tile(all_groups, df.shape[0] / all_groups.size) + in_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size)) df['group in'] = in_groups del df['energy high [MeV]'] columns = ['group in'] @@ -1570,6 +1578,7 @@ class MGXS(object): (mesh_str, 'z')] + columns, inplace=True) else: df.sort_values(by=[self.domain_type] + columns, inplace=True) + return df def get_units(self, xs_type='macro'): @@ -1700,11 +1709,13 @@ class MatrixMGXS(MGXS): def get_xs(self, in_groups='all', out_groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', - row_column='inout', value='mean', **kwargs): + row_column='inout', value='mean', squeeze=True, **kwargs): """Returns an array of multi-group cross sections. - This method constructs a 2D NumPy array for the requested multi-group - matrix data for one or more energy groups and subdomains. + This method constructs a 4D NumPy array for the requested + multi-group cross section data for one or more subdomains + (1st dimension), energy groups in (2nd dimension), energy groups out + (3rd dimension), and nuclides (4th dimension). Parameters ---------- @@ -1733,6 +1744,10 @@ class MatrixMGXS(MGXS): Defaults to 'inout'. value : {'mean', 'std_dev', 'rel_err'} A string for the type of value to return. Defaults to 'mean'. + squeeze : bool + A boolean representing whether to eliminate the extra dimensions + of the multi-dimensional array this is to be retured. Defaults to + True. Returns ------- @@ -1804,8 +1819,6 @@ class MatrixMGXS(MGXS): filter_bins=filter_bins, nuclides=query_nuclides, value=value) - xs = np.nan_to_num(xs) - # Divide by atom number densities for microscopic cross sections if xs_type == 'micro': if self.by_nuclide: @@ -1815,33 +1828,36 @@ class MatrixMGXS(MGXS): if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] + # Eliminate the trivial score dimension + xs = np.squeeze(xs, axis=len(xs.shape) - 1) + xs = np.nan_to_num(xs) + + if in_groups == 'all': + num_in_groups = self.num_groups + else: + num_in_groups = len(in_groups) + + if out_groups == 'all': + num_out_groups = self.num_groups + else: + num_out_groups = len(out_groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = int(xs.shape[0] / (num_in_groups * num_out_groups)) + new_shape = (num_subdomains, num_in_groups, num_out_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Transpose the matrix if requested by user + if row_column == 'outin': + xs = np.swapaxes(xs, 1, 2) + # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies if order_groups == 'increasing': - if in_groups == 'all': - num_in_groups = self.num_groups - else: - num_in_groups = len(in_groups) - if out_groups == 'all': - num_out_groups = self.num_groups - else: - num_out_groups = len(out_groups) - - # Reshape tally data array with separate axes for domain and energy - num_subdomains = int(xs.shape[0] / - (num_in_groups * num_out_groups)) - new_shape = (num_subdomains, num_in_groups, num_out_groups) - new_shape += xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Transpose the matrix if requested by user - if row_column == 'outin': - xs = np.swapaxes(xs, 1, 2) - - # Reverse energies to align with increasing energy groups xs = xs[:, ::-1, ::-1, :] - # Eliminate trivial dimensions + if squeeze: xs = np.squeeze(xs) xs = np.atleast_2d(xs) @@ -3518,11 +3534,13 @@ class ScatterMatrixXS(MatrixMGXS): def get_xs(self, in_groups='all', out_groups='all', subdomains='all', nuclides='all', moment='all', xs_type='macro', order_groups='increasing', - row_column='inout', value='mean'): + row_column='inout', value='mean', squeeze=True): r"""Returns an array of multi-group cross sections. - This method constructs a 2D NumPy array for the requested scattering - matrix data data for one or more energy groups and subdomains. + This method constructs a 5D NumPy array for the requested + multi-group cross section data for one or more subdomains + (1st dimension), energy groups in (2nd dimension), energy groups out + (3rd dimension), nuclides (4th dimension), and moments (5th dimension). NOTE: The scattering moments are not multiplied by the :math:`(2l+1)/2` prefactor in the expansion of the scattering source into Legendre @@ -3558,6 +3576,10 @@ class ScatterMatrixXS(MatrixMGXS): Defaults to 'inout'. value : {'mean', 'std_dev', 'rel_err'} A string for the type of value to return. Defaults to 'mean'. + squeeze : bool + A boolean representing whether to eliminate the extra dimensions + of the multi-dimensional array this is to be retured. Defaults to + False. Returns ------- @@ -3636,8 +3658,6 @@ class ScatterMatrixXS(MatrixMGXS): filter_bins=filter_bins, nuclides=query_nuclides, value=value) - xs = np.nan_to_num(xs) - # Divide by atom number densities for microscopic cross sections if xs_type == 'micro': if self.by_nuclide: @@ -3647,32 +3667,35 @@ class ScatterMatrixXS(MatrixMGXS): if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] + # Convert and nans to zero + xs = np.nan_to_num(xs) + + if in_groups == 'all': + num_in_groups = self.num_groups + else: + num_in_groups = len(in_groups) + + if out_groups == 'all': + num_out_groups = self.num_groups + else: + num_out_groups = len(out_groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = int(xs.shape[0] / (num_in_groups * num_out_groups)) + new_shape = (num_subdomains, num_in_groups, num_out_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Transpose the scattering matrix if requested by user + if row_column == 'outin': + xs = np.swapaxes(xs, 1, 2) + # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies if order_groups == 'increasing': - if in_groups == 'all': - num_in_groups = self.num_groups - else: - num_in_groups = len(in_groups) - if out_groups == 'all': - num_out_groups = self.num_groups - else: - num_out_groups = len(out_groups) - - # Reshape tally data array with separate axes for domain and energy - num_subdomains = int(xs.shape[0] / (num_in_groups * num_out_groups)) - new_shape = (num_subdomains, num_in_groups, num_out_groups) - new_shape += xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Transpose the scattering matrix if requested by user - if row_column == 'outin': - xs = np.swapaxes(xs, 1, 2) - - # Reverse energies to align with increasing energy groups xs = xs[:, ::-1, ::-1, :] - # Eliminate trivial dimensions + if squeeze: xs = np.squeeze(xs) xs = np.atleast_2d(xs) @@ -3729,7 +3752,7 @@ class ScatterMatrixXS(MatrixMGXS): if self.legendre_order > 0: # Insert a column corresponding to the Legendre moments moments = ['P{}'.format(i) for i in range(self.legendre_order+1)] - moments = np.tile(moments, df.shape[0] / len(moments)) + moments = np.tile(moments, int(df.shape[0] / len(moments))) df['moment'] = moments # Place the moment column before the mean column @@ -4513,11 +4536,13 @@ class Chi(MGXS): def get_xs(self, groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', - value='mean', **kwargs): + value='mean', squeeze=True, **kwargs): """Returns an array of the fission spectrum. - This method constructs a 2D NumPy array for the requested multi-group - cross section data data for one or more energy groups and subdomains. + This method constructs a 3D NumPy array for the requested + multi-group cross section data for one or more subdomains + (1st dimension), energy groups (2nd dimension), and nuclides + (3rd dimension). Parameters ---------- @@ -4539,6 +4564,10 @@ class Chi(MGXS): Defaults to 'increasing'. value : {'mean', 'std_dev', 'rel_err'} A string for the type of value to return. Defaults to 'mean'. + squeeze : bool + A boolean representing whether to eliminate the extra dimensions + of the multi-dimensional array this is to be retured. Defaults to + True. Returns ------- @@ -4630,27 +4659,29 @@ class Chi(MGXS): xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) + # Eliminate the trivial score dimension + xs = np.squeeze(xs, axis=len(xs.shape) - 1) + xs = np.nan_to_num(xs) + + # Reshape tally data array with separate axes for domain and energy + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + + num_subdomains = int(xs.shape[0] / num_groups) + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies if order_groups == 'increasing': - - # Reshape tally data array with separate axes for domain and energy - if groups == 'all': - num_groups = self.num_groups - else: - num_groups = len(groups) - num_subdomains = int(xs.shape[0] / num_groups) - new_shape = (num_subdomains, num_groups) + xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Reverse energies to align with increasing energy groups xs = xs[:, ::-1, :] - # Eliminate trivial dimensions + if squeeze: xs = np.squeeze(xs) xs = np.atleast_1d(xs) - xs = np.nan_to_num(xs) return xs def get_pandas_dataframe(self, groups='all', nuclides='all', diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index a3e849d6c5..551229e6b5 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -9,6 +9,7 @@ from testing_harness import PyAPITestHarness from input_set import PinCellInputSet import openmc import openmc.mgxs +import numpy as np class MGXSTestHarness(PyAPITestHarness): @@ -24,7 +25,7 @@ class MGXSTestHarness(PyAPITestHarness): 20.]) # Initialize a six-delayed-group structure - delayed_groups = range(1,7) + delayed_groups = list(range(1,7)) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index 3103e07382..fe1ca9c0f8 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -9,6 +9,7 @@ from testing_harness import PyAPITestHarness from input_set import AssemblyInputSet import openmc import openmc.mgxs +import numpy as np class MGXSTestHarness(PyAPITestHarness): @@ -23,7 +24,7 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) # Initialize a six-delayed-group structure - delayed_groups = range(1,7) + delayed_groups = list(range(1,7)) # Initialize MGXS Library for a few cross section types # for one material-filled cell in the geometry diff --git a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py index 4359b27937..b4d7e5dbbe 100644 --- a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py +++ b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py @@ -25,7 +25,7 @@ class MGXSTestHarness(PyAPITestHarness): 20.]) # Initialize a six-delayed-group structure - delayed_groups = range(1,7) + delayed_groups = list(range(1,7)) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) diff --git a/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py b/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py index bcf2400108..750274b1fd 100644 --- a/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py +++ b/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py @@ -8,6 +8,7 @@ sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness import openmc import openmc.mgxs +import numpy as np class MGXSTestHarness(PyAPITestHarness): @@ -19,7 +20,7 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.]) # Initialize a six-delayed-group structure - delayed_groups = range(1,7) + delayed_groups = list(range(1,7)) # Initialize MGXS Library for a few cross section types # for one material-filled cell in the geometry diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 54650970f1..3563f141b1 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -29,49 +29,49 @@ 1 10000 1 total 0.385188 0.026946 0 10000 2 total 0.412389 0.015425 material group in group out nuclide moment mean std. dev. -1 10000 1 1 total P0 0.016482 0.004502 -3 10000 1 1 total P1 -0.010499 0.010438 -5 10000 1 1 total P2 -0.000768 0.000768 -7 10000 1 1 total P3 -0.000171 0.000172 9 10000 1 1 total P0 -0.000207 0.000149 11 10000 1 1 total P1 0.000234 0.000128 13 10000 1 1 total P2 0.051870 0.006983 15 10000 1 1 total P3 0.009478 0.002234 +8 10000 1 2 total P0 0.000989 0.000482 +10 10000 1 2 total P1 -0.000103 0.000184 +12 10000 1 2 total P2 0.384199 0.027001 +14 10000 1 2 total P3 0.020069 0.002846 +1 10000 2 1 total P0 0.016482 0.004502 +3 10000 2 1 total P1 -0.010499 0.010438 +5 10000 2 1 total P2 -0.000768 0.000768 +7 10000 2 1 total P3 -0.000171 0.000172 0 10000 2 2 total P0 0.411465 0.015245 2 10000 2 2 total P1 0.006371 0.010551 4 10000 2 2 total P2 0.000925 0.000925 6 10000 2 2 total P3 0.000494 0.000494 -8 10000 2 2 total P0 0.000989 0.000482 -10 10000 2 2 total P1 -0.000103 0.000184 -12 10000 2 2 total P2 0.384199 0.027001 -14 10000 2 2 total P3 0.020069 0.002846 material group in group out nuclide moment mean std. dev. -1 10000 1 1 total P0 0.016482 0.004502 -3 10000 1 1 total P1 -0.010499 0.010438 -5 10000 1 1 total P2 -0.000768 0.000768 -7 10000 1 1 total P3 -0.000171 0.000172 9 10000 1 1 total P0 -0.000207 0.000149 11 10000 1 1 total P1 0.000234 0.000128 13 10000 1 1 total P2 0.051870 0.006983 15 10000 1 1 total P3 0.009478 0.002234 +8 10000 1 2 total P0 0.000989 0.000482 +10 10000 1 2 total P1 -0.000103 0.000184 +12 10000 1 2 total P2 0.384199 0.027001 +14 10000 1 2 total P3 0.020069 0.002846 +1 10000 2 1 total P0 0.016482 0.004502 +3 10000 2 1 total P1 -0.010499 0.010438 +5 10000 2 1 total P2 -0.000768 0.000768 +7 10000 2 1 total P3 -0.000171 0.000172 0 10000 2 2 total P0 0.411465 0.015245 2 10000 2 2 total P1 0.006371 0.010551 4 10000 2 2 total P2 0.000925 0.000925 6 10000 2 2 total P3 0.000494 0.000494 -8 10000 2 2 total P0 0.000989 0.000482 -10 10000 2 2 total P1 -0.000103 0.000184 -12 10000 2 2 total P2 0.384199 0.027001 -14 10000 2 2 total P3 0.020069 0.002846 material group in group out nuclide mean std. dev. -1 10000 1 1 total 1.0 1.414214 3 10000 1 1 total 1.0 0.078516 +2 10000 1 2 total 1.0 0.687184 +1 10000 2 1 total 1.0 1.414214 0 10000 2 2 total 1.0 0.041130 -2 10000 2 2 total 1.0 0.687184 material group in group out nuclide mean std. dev. -1 10000 1 1 total 0.454366 0.027426 3 10000 1 1 total 0.020142 0.003149 +2 10000 1 2 total 0.000000 0.000000 +1 10000 2 1 total 0.454366 0.027426 0 10000 2 2 total 0.000000 0.000000 -2 10000 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. 1 10000 1 total 1.0 0.046071 0 10000 2 total 0.0 0.000000 @@ -154,49 +154,49 @@ 1 10001 1 total 0.310121 0.033788 0 10001 2 total 0.296264 0.043792 material group in group out nuclide moment mean std. dev. -1 10001 1 1 total P0 -0.011214 0.016180 -3 10001 1 1 total P1 -0.003270 0.007329 -5 10001 1 1 total P2 0.000000 0.000000 -7 10001 1 1 total P3 0.000000 0.000000 9 10001 1 1 total P0 0.000000 0.000000 11 10001 1 1 total P1 0.000000 0.000000 13 10001 1 1 total P2 0.038230 0.008484 15 10001 1 1 total P3 0.007964 0.003732 +8 10001 1 2 total P0 0.000000 0.000000 +10 10001 1 2 total P1 0.000000 0.000000 +12 10001 1 2 total P2 0.310121 0.033788 +14 10001 1 2 total P3 0.020745 0.004696 +1 10001 2 1 total P0 -0.011214 0.016180 +3 10001 2 1 total P1 -0.003270 0.007329 +5 10001 2 1 total P2 0.000000 0.000000 +7 10001 2 1 total P3 0.000000 0.000000 0 10001 2 2 total P0 0.296264 0.043792 2 10001 2 2 total P1 0.008837 0.011504 4 10001 2 2 total P2 0.000000 0.000000 6 10001 2 2 total P3 0.000000 0.000000 -8 10001 2 2 total P0 0.000000 0.000000 -10 10001 2 2 total P1 0.000000 0.000000 -12 10001 2 2 total P2 0.310121 0.033788 -14 10001 2 2 total P3 0.020745 0.004696 material group in group out nuclide moment mean std. dev. -1 10001 1 1 total P0 -0.011214 0.016180 -3 10001 1 1 total P1 -0.003270 0.007329 -5 10001 1 1 total P2 0.000000 0.000000 -7 10001 1 1 total P3 0.000000 0.000000 9 10001 1 1 total P0 0.000000 0.000000 11 10001 1 1 total P1 0.000000 0.000000 13 10001 1 1 total P2 0.038230 0.008484 15 10001 1 1 total P3 0.007964 0.003732 +8 10001 1 2 total P0 0.000000 0.000000 +10 10001 1 2 total P1 0.000000 0.000000 +12 10001 1 2 total P2 0.310121 0.033788 +14 10001 1 2 total P3 0.020745 0.004696 +1 10001 2 1 total P0 -0.011214 0.016180 +3 10001 2 1 total P1 -0.003270 0.007329 +5 10001 2 1 total P2 0.000000 0.000000 +7 10001 2 1 total P3 0.000000 0.000000 0 10001 2 2 total P0 0.296264 0.043792 2 10001 2 2 total P1 0.008837 0.011504 4 10001 2 2 total P2 0.000000 0.000000 6 10001 2 2 total P3 0.000000 0.000000 -8 10001 2 2 total P0 0.000000 0.000000 -10 10001 2 2 total P1 0.000000 0.000000 -12 10001 2 2 total P2 0.310121 0.033788 -14 10001 2 2 total P3 0.020745 0.004696 material group in group out nuclide mean std. dev. -1 10001 1 1 total 0.0 0.000000 3 10001 1 1 total 1.0 0.108779 +2 10001 1 2 total 0.0 0.000000 +1 10001 2 1 total 0.0 0.000000 0 10001 2 2 total 1.0 0.142427 -2 10001 2 2 total 0.0 0.000000 material group in group out nuclide mean std. dev. -1 10001 1 1 total 0.0 0.0 3 10001 1 1 total 0.0 0.0 +2 10001 1 2 total 0.0 0.0 +1 10001 2 1 total 0.0 0.0 0 10001 2 2 total 0.0 0.0 -2 10001 2 2 total 0.0 0.0 material group out nuclide mean std. dev. 1 10001 1 total 0.0 0.0 0 10001 2 total 0.0 0.0 @@ -279,49 +279,49 @@ 1 10002 1 total 0.671269 0.026186 0 10002 2 total 2.035388 0.258060 material group in group out nuclide moment mean std. dev. -1 10002 1 1 total P0 0.509941 0.051236 -3 10002 1 1 total P1 0.024988 0.008312 -5 10002 1 1 total P2 0.000400 0.000401 -7 10002 1 1 total P3 0.000214 0.000215 9 10002 1 1 total P0 0.008758 0.000926 11 10002 1 1 total P1 -0.003785 0.000817 13 10002 1 1 total P2 0.381167 0.016243 15 10002 1 1 total P3 0.009148 0.003889 +8 10002 1 2 total P0 0.031368 0.001728 +10 10002 1 2 total P1 -0.002568 0.001014 +12 10002 1 2 total P2 0.639901 0.024709 +14 10002 1 2 total P3 0.152392 0.008156 +1 10002 2 1 total P0 0.509941 0.051236 +3 10002 2 1 total P1 0.024988 0.008312 +5 10002 2 1 total P2 0.000400 0.000401 +7 10002 2 1 total P3 0.000214 0.000215 0 10002 2 2 total P0 2.034945 0.257800 2 10002 2 2 total P1 0.111175 0.013020 4 10002 2 2 total P2 0.000443 0.000445 6 10002 2 2 total P3 0.000320 0.000321 -8 10002 2 2 total P0 0.031368 0.001728 -10 10002 2 2 total P1 -0.002568 0.001014 -12 10002 2 2 total P2 0.639901 0.024709 -14 10002 2 2 total P3 0.152392 0.008156 material group in group out nuclide moment mean std. dev. -1 10002 1 1 total P0 0.509941 0.051236 -3 10002 1 1 total P1 0.024988 0.008312 -5 10002 1 1 total P2 0.000400 0.000401 -7 10002 1 1 total P3 0.000214 0.000215 9 10002 1 1 total P0 0.008758 0.000926 11 10002 1 1 total P1 -0.003785 0.000817 13 10002 1 1 total P2 0.381167 0.016243 15 10002 1 1 total P3 0.009148 0.003889 +8 10002 1 2 total P0 0.031368 0.001728 +10 10002 1 2 total P1 -0.002568 0.001014 +12 10002 1 2 total P2 0.639901 0.024709 +14 10002 1 2 total P3 0.152392 0.008156 +1 10002 2 1 total P0 0.509941 0.051236 +3 10002 2 1 total P1 0.024988 0.008312 +5 10002 2 1 total P2 0.000400 0.000401 +7 10002 2 1 total P3 0.000214 0.000215 0 10002 2 2 total P0 2.034945 0.257800 2 10002 2 2 total P1 0.111175 0.013020 4 10002 2 2 total P2 0.000443 0.000445 6 10002 2 2 total P3 0.000320 0.000321 -8 10002 2 2 total P0 0.031368 0.001728 -10 10002 2 2 total P1 -0.002568 0.001014 -12 10002 2 2 total P2 0.639901 0.024709 -14 10002 2 2 total P3 0.152392 0.008156 material group in group out nuclide mean std. dev. -1 10002 1 1 total 1.0 1.414214 3 10002 1 1 total 1.0 0.038609 +2 10002 1 2 total 1.0 0.067667 +1 10002 2 1 total 1.0 1.414214 0 10002 2 2 total 1.0 0.135929 -2 10002 2 2 total 1.0 0.067667 material group in group out nuclide mean std. dev. -1 10002 1 1 total 0.0 0.0 3 10002 1 1 total 0.0 0.0 +2 10002 1 2 total 0.0 0.0 +1 10002 2 1 total 0.0 0.0 0 10002 2 2 total 0.0 0.0 -2 10002 2 2 total 0.0 0.0 material group out nuclide mean std. dev. 1 10002 1 total 0.0 0.0 0 10002 2 total 0.0 0.0 diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 5ca90875d4..5dee9c4076 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -9,6 +9,7 @@ from testing_harness import PyAPITestHarness from input_set import PinCellInputSet import openmc import openmc.mgxs +import numpy as np class MGXSTestHarness(PyAPITestHarness): @@ -24,7 +25,7 @@ class MGXSTestHarness(PyAPITestHarness): 20.]) # Initialize a six-delayed-group structure - delayed_groups = range(1,7) + delayed_groups = list(range(1,7)) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 9671ad7857..d3e3235ccc 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -cb61db73f66b40ed1a59a59e6f4fd52678e9dc41c7bb8ad327989233c3b8d78a71d84c3cb8ad9bc8b1585b319e1f1d66a8667e7cad2ead4cc574f415f8f7a35d \ No newline at end of file +8142ae4e107002a835999e4ace85c17376f262a7059fc224f3756a2de19aba6ca4c4fa14ca2085c87d7729aa8d6d6f78fdae21ac6dfe33ca303449c769076074 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index da613d78a1..ac24334e48 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -9,6 +9,7 @@ from testing_harness import PyAPITestHarness from input_set import PinCellInputSet import openmc import openmc.mgxs +import numpy as np class MGXSTestHarness(PyAPITestHarness): From 6669e437e21b2bbbc88a142352245b0fb9a54419 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 11 Aug 2016 08:02:44 -0400 Subject: [PATCH 260/417] removed unnecessary imports and fixed comments --- .../pythonapi/examples/mgxs-part-iii.ipynb | 3 +++ openmc/mgxs/mdgxs.py | 18 ++---------------- openmc/mgxs/mgxs.py | 12 ++++-------- .../test_mgxs_library_condense.py | 1 - .../test_mgxs_library_distribcell.py | 1 - .../test_mgxs_library_mesh.py | 1 - .../test_mgxs_library_no_nuclides.py | 1 - .../test_mgxs_library_nuclides.py | 1 - 8 files changed, 9 insertions(+), 29 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 9d2b89c512..af9f2878fe 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -552,6 +552,9 @@ "* `ChiPrompt` (`\"chi prompt\"`)\n", "* `InverseVelocity` (`\"inverse-velocity\"`)\n", "* `PromptNuFissionXS` (`\"prompt-nu-fission\"`)\n", + "* `DelayedNuFissionXS` (`\"delayed-nu-fission\"`)\n", + "* `ChiDelayed` (`\"chi-delayed\"`)\n", + "* `Beta` (`\"beta\"`)\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\"`, `'\"fission\"`, `\"nu-scatter matrix\"` and `\"chi\"` cross sections for our `Library`.\n", "\n", diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index d853ebed34..0a2f898c07 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -288,8 +288,7 @@ class MDGXS(MGXS): Delayed groups of interest. Defaults to 'all'. squeeze : bool A boolean representing whether to eliminate the extra dimensions - of the multi-dimensional array this is to be retured. Defaults to - True. + of the multi-dimensional array to be returned. Defaults to True. Returns ------- @@ -844,18 +843,6 @@ class MDGXS(MGXS): return df - - df = super(MDGXS, self).get_pandas_dataframe(groups, nuclides, xs_type, - distribcell_paths) - - # Select out those delayed groups the user requested - if not isinstance(delayed_groups, basestring): - if 'delayedgroup' in df: - df = df[df['delayedgroup'].isin(delayed_groups)] - - return df - - class ChiDelayed(MDGXS): r"""The delayed fission spectrum. @@ -1186,8 +1173,7 @@ class ChiDelayed(MDGXS): A string for the type of value to return. Defaults to 'mean'. squeeze : bool A boolean representing whether to eliminate the extra dimensions - of the multi-dimensional array this is to be retured. Defaults to - True. + of the multi-dimensional array to be returned. Defaults to True. Returns ------- diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 5a4c5866b7..0a247aeab2 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -754,8 +754,7 @@ class MGXS(object): A string for the type of value to return. Defaults to 'mean'. squeeze : bool A boolean representing whether to eliminate the extra dimensions - of the multi-dimensional array this is to be retured. Defaults to - True. + of the multi-dimensional array to be returned. Defaults to True. Returns ------- @@ -1746,8 +1745,7 @@ class MatrixMGXS(MGXS): A string for the type of value to return. Defaults to 'mean'. squeeze : bool A boolean representing whether to eliminate the extra dimensions - of the multi-dimensional array this is to be retured. Defaults to - True. + of the multi-dimensional array to be returned. Defaults to True. Returns ------- @@ -3578,8 +3576,7 @@ class ScatterMatrixXS(MatrixMGXS): A string for the type of value to return. Defaults to 'mean'. squeeze : bool A boolean representing whether to eliminate the extra dimensions - of the multi-dimensional array this is to be retured. Defaults to - False. + of the multi-dimensional array to be returned. Defaults to True. Returns ------- @@ -4566,8 +4563,7 @@ class Chi(MGXS): A string for the type of value to return. Defaults to 'mean'. squeeze : bool A boolean representing whether to eliminate the extra dimensions - of the multi-dimensional array this is to be retured. Defaults to - True. + of the multi-dimensional array to be returned. Defaults to True. Returns ------- diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index 551229e6b5..d3f2bc08e8 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -9,7 +9,6 @@ from testing_harness import PyAPITestHarness from input_set import PinCellInputSet import openmc import openmc.mgxs -import numpy as np class MGXSTestHarness(PyAPITestHarness): diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index fe1ca9c0f8..940985d916 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -9,7 +9,6 @@ from testing_harness import PyAPITestHarness from input_set import AssemblyInputSet import openmc import openmc.mgxs -import numpy as np class MGXSTestHarness(PyAPITestHarness): diff --git a/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py b/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py index 750274b1fd..1f31bd5660 100644 --- a/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py +++ b/tests/test_mgxs_library_mesh/test_mgxs_library_mesh.py @@ -8,7 +8,6 @@ sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness import openmc import openmc.mgxs -import numpy as np class MGXSTestHarness(PyAPITestHarness): diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 5dee9c4076..edd41f1c56 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -9,7 +9,6 @@ from testing_harness import PyAPITestHarness from input_set import PinCellInputSet import openmc import openmc.mgxs -import numpy as np class MGXSTestHarness(PyAPITestHarness): diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index ac24334e48..da613d78a1 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -9,7 +9,6 @@ from testing_harness import PyAPITestHarness from input_set import PinCellInputSet import openmc import openmc.mgxs -import numpy as np class MGXSTestHarness(PyAPITestHarness): From 7def0d51ce27eb58ec3d4581da4fff9aa1a1c6a7 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 11 Aug 2016 08:27:22 -0400 Subject: [PATCH 261/417] updated mdgxs notebooks and added them to documentation --- .../pythonapi/examples/mdgxs-part-i.ipynb | 60 +++++++++---------- .../pythonapi/examples/mdgxs-part-ii.ipynb | 50 +++++++++------- docs/source/pythonapi/index.rst | 12 +--- 3 files changed, 57 insertions(+), 65 deletions(-) diff --git a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb index b180141834..5d65a0a202 100644 --- a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb @@ -337,7 +337,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we are ready to generate multi-group cross sections! First, let's define a 100-energy-group structure and 1-energy-group structure using the built-in `EnergyGroups` class. We will also create a 6-delayed-group structure using the built-in `DelayedGroups` class." + "Now we are ready to generate multi-group cross sections! First, let's define a 100-energy-group structure and 1-energy-group structure using the built-in `EnergyGroups` class. We will also create a 6-delayed-group list." ] }, { @@ -356,14 +356,14 @@ "one_group = mgxs.EnergyGroups()\n", "one_group.group_edges = np.array([energy_groups.group_edges[0], energy_groups.group_edges[-1]])\n", "\n", - "delayed_groups = range(1,7)" + "delayed_groups = list(range(1,7))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "We can now use the `EnergyGroups` and `DelayedGroups` objects, along with our previously created materials and geometry, to instantiate some `MGXS` objects from the `openmc.mgxs` module. In particular, the following are subclasses of the generic and abstract `MGXS` class:\n", + "We can now use the `EnergyGroups` object and delayed group list, along with our previously created materials and geometry, to instantiate some `MGXS` objects from the `openmc.mgxs` module. In particular, the following are subclasses of the generic and abstract `MGXS` class:\n", "\n", "* `TotalXS`\n", "* `TransportXS`\n", @@ -404,7 +404,6 @@ "prompt_nu_fission = mgxs.PromptNuFissionXS(domain=cell, groups=energy_groups, by_nuclide=True)\n", "chi_delayed = mgxs.ChiDelayed(domain=cell, energy_groups=energy_groups, by_nuclide=True)\n", "delayed_nu_fission = mgxs.DelayedNuFissionXS(domain=cell, energy_groups=energy_groups, delayed_groups=delayed_groups, by_nuclide=True)\n", - "#delayed_nu_fission = mgxs.DelayedNuFissionXS(domain=cell, energy_groups=energy_groups, by_nuclide=True)\n", "beta = mgxs.Beta(domain=cell, energy_groups=energy_groups, delayed_groups=delayed_groups, by_nuclide=True)\n", "\n", "chi_prompt.nuclides = ['U235', 'Pu239']\n", @@ -581,8 +580,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", - " Git SHA1: be7e6e035d22944a8c80ca32f99935b6822854c9\n", - " Date/Time: 2016-08-10 15:46:45\n", + " Git SHA1: c21ceb0aea4abc243b84106576c4f9010f608d0b\n", + " Date/Time: 2016-08-11 08:23:44\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -669,20 +668,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 7.7400E-01 seconds\n", - " Reading cross sections = 4.7500E-01 seconds\n", - " Total time in simulation = 8.9596E+01 seconds\n", - " Time in transport only = 8.9573E+01 seconds\n", - " Time in inactive batches = 4.8730E+00 seconds\n", - " Time in active batches = 8.4723E+01 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 7.2000E-02 seconds\n", - " Total time elapsed = 9.0468E+01 seconds\n", - " Calculation Rate (inactive) = 10260.6 neutrons/second\n", - " Calculation Rate (active) = 2360.63 neutrons/second\n", + " Total time for initialization = 6.1600E-01 seconds\n", + " Reading cross sections = 3.6500E-01 seconds\n", + " Total time in simulation = 8.3297E+01 seconds\n", + " Time in transport only = 8.3256E+01 seconds\n", + " Time in inactive batches = 4.4890E+00 seconds\n", + " Time in active batches = 7.8808E+01 seconds\n", + " Time synchronizing fission bank = 1.6000E-02 seconds\n", + " Sampling source sites = 1.1000E-02 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 5.0000E-03 seconds\n", + " Total time for finalization = 8.0000E-02 seconds\n", + " Total time elapsed = 8.4019E+01 seconds\n", + " Calculation Rate (inactive) = 11138.3 neutrons/second\n", + " Calculation Rate (active) = 2537.81 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -797,17 +796,12 @@ { "data": { "text/plain": [ - "array([[[[ 5.14239169e-06, 1.16429778e-06]],\n", - "\n", - " [[ 2.65434434e-05, 7.58244504e-06]],\n", - "\n", - " [[ 2.53406770e-05, 5.73814391e-06]],\n", - "\n", - " [[ 5.68158884e-05, 1.04761254e-05]],\n", - "\n", - " [[ 2.32937121e-05, 5.45676114e-06]],\n", - "\n", - " [[ 9.75765501e-06, 1.65156185e-06]]]])" + "array([[ 5.14239169e-06, 1.16429778e-06],\n", + " [ 2.65434434e-05, 7.58244504e-06],\n", + " [ 2.53406770e-05, 5.73814391e-06],\n", + " [ 5.68158884e-05, 1.04761254e-05],\n", + " [ 2.32937121e-05, 5.45676114e-06],\n", + " [ 9.75765501e-06, 1.65156185e-06]])" ] }, "execution_count": 18, @@ -1257,7 +1251,7 @@ "data": { "image/png": "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\nA9YuP+yww7jqqqtYtGgRCxYsWHtHyra09eRV78RSKQWXv6PNbdPivpL6kJVwzo+I5WnxdcCHI2JP\nslLND1sdsVkHGTMGli+vulmntnx5dh22zr333svixYt59dVXueaaa+jVq1eL25911llrb1d8+eWX\nr7fum9/8JtOmTePXv/51xX179uzJyJEjueyyy3j55ZcB+K//+i/22msv9txzTw488ECOOeYYNtts\nM7bZZpvaXGAF9a4KmwsMLnm9AzC/bJs5wI7AfEmbAP0i4i1Jc9PyDfaVtClZUrk5Iu5t2iAi/lmy\n/S+Aic0FNqbk09/Y2EhjY2PuizKrh6InlSad6TraU3VVsxgqlE569+69XolhwYIFa59ff/31XH/9\n9RvsM3r0aB588EGeeOIJ+vTp0+I5V65cySuvvMLuu+9Or169uPrqq7n66qsB+PnPf87ee++dq+pt\n8uTJTJ48uep2G8hzN7C2PoBNgP8GhgA9gReAXcu2ORu4Lj0fRdauArAb8Hzab1g6TtONyW4ia6Qv\nP992Jc8vAG5rJq7qt1Az28iyO7RnjyLqqPg789/z0KFD45FHHtlg+YknnhgnnnhirFy5MqZMmRID\nBw6Mk08+udnjfO9734vhw4fHggULNlj39NNPx5NPPhnvv/9+rFixIi6//PLo27dvvPHGGxERMW/e\nvJg/f35ERDz11FOx4447xsMPP9xi3M29p+S8g+TGuA3wocDfgFnARWnZWOBz6fnmwB1p/dPA0JJ9\nL04JZTowIi07AFidktTzwFTg0FiXcF5K6/4fsG0zMbX4ppp1BCeWtp63875hw4YNq5hYXnnlldhv\nv/2ioaEhPve5z8X555/fYmKRFL169YqGhoa1tyu+7LLLIiLi8ccfjz322CP69u0bAwYMiMbGxnjy\nySfX7vvEE0/E0KFDo3fv3rHLLrvE7bffXjXu9iYW35rYrJMorZko4sezo+L3rYlrz7cmNjOzTqVq\n472k/YGTgE8C2wMrgL8AvwVuiYgldY3QzMwKpcWqMEm/I+uJdS/wZ+AfQC9gZ+Ag4AiyRvT76h9q\n7bgqzDojV4W19byuCqu19laFVUssAyNiUZUAqm7T2TixWGfkxNLW8zqx1Fpd21iaEoak3mneLyTt\nLOlISZuVbmNmZgb5G++fAHpJGgQ8AnwR+FW9gjIzs+LKO/JeEfGupNOAayLiCknP1zMwM7M8hgwZ\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1320,7 +1314,7 @@ "data": { "image/png": "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\nvPBCdR+hwWCIQFYrhnSlsrKS4cOHM2rUKI4++uigtO+//54dO3bw8MMP06VLl8DxIUOGsHz5cjZv\n3szjjz/OHXfcwT//+c+w5T/33HOMHj2a4447jkMPPRTLsoJ6OH//+9+5//77KSgooHHjxtx6663M\nnDkzbFkXX3wxRxxxBACXXnopnTt35sMPPwTg8ssv55lnDob6nj59OpdffnngGtdeey2nnXYaIsKI\nESNo0KAB77//Pu+//z6VlZWMGTOGevXqcfHFF3P66afX4EmmLyW9SwJbTbB8VmAzGEIx5qpJol69\nelRUVAQdq6iooH79+gCcf/75vPPOO4gIjz32GMOG2WEsVJXhw4fToEEDHnroobBlH3rooVxzzTUc\ndthhrFixgpYtW3LssccG0s8880zGjh3L888/z5AhQ6qcv2HDBk477WCI7cLCwsD3zZs3s2fPHrp1\n6xY4duDAgYhDY0899RT3339/YKL7hx9+YMuWLQB0796dvLw8Fi5cSKtWrfj6668ZOHAgYLs0eeqp\npwL3qKpUVFSwYYMd56lt27ZB13HLmA3UxETVTenC0lory5B5ZLVisKzqDQVVN380OnToQFlZGccc\nc9Aj+TfffBPYnzdvXtjzrrzySrZs2cK8efOoV69exPL379/Pnj17WL9+PS1btqySHs1Ms3Xr1kHm\npuXl5YE5hpYtW9KoUSO+/PJLWrduHfUe16xZw9VXX82CBQs488wzATjllFOCrjty5EimT59Oq1at\nuOSSS8jNzQWgffv2jB8/nttuu61KuYsWLWL9+vVVrtWpU6eo8hgMBm+YoaQkMWTIECZOnMj69etR\nVd58803mzJnDJZdcEvGca6+9lhUrVvDKK68EKlA/b775Jp999hkHDhxg586d3HzzzTRv3pzjjjsO\ngFdeeYXt27cD8OGHHzJlyhQuvPDCsNcZPHgwTz75JMuXL2fPnj1B8wciwlVXXcVNN93E5s2bAVi/\nfj2vv/56lXJ++OEHcnJyaNmyJQcOHOCJJ57giy++CMozfPhwXnrpJZ555pnAMBLAVVddxaOPPhoY\ndvrhhx+YN28eP/zwA2eeeSaHHHIIDz30EPv37+fFF18M5DMYDPFjFEOSmDBhAmeddRY9e/akefPm\n3HrrrcyYMYPjjz8+bP41a9bw+OOP89lnn3HEEUcE1iL4x/a3b9/OsGHDaNq0KZ07d2b16tXMnz8/\n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\nalQgII2f77//nh9//DHQGvczZMgQrrnmGo444gjef/99Lr74Ypo1a8aQIUPCXkNEuPPOO6lfvz5n\nn302/fviYcdKAAAgAElEQVT359lnn2X8+PEADBo0iB49egBQv359nn32WZYuXUqjRo0oLCxk3Lhx\nTJ8+PaAY3OE4hwwZwt13301JSQn169fn5z//Obm5uaxatYqTT7Y9rfTv35+f/exnANx1110UFBSw\nfv162rZtC1S/x5XOhBvWSfc4C4nGDFXFh9cIbk2Bbc73ggTJklXUq1ePioqKoGMVFRXUr18fgPPP\nP5933nkHEeGxxx4LOJNTVYYPH06DBg0C8ZlDOfTQQ7nmmms47LDDWLFiBS1btuTYY48NpJ955pmM\nHTuW559/PqJiaNasGQ0bNgzsFxYWsmHDhsC+O6Tnli1bqKioCFJEhYWFQSE9jzjiiCD5AFq2bBl0\nbPfug61kd/mNGzemefPmbNiwIaAYsp10r/dMxZ3aeFEMk4BPRWQBIMDZQPxR61OASN3Qmu5Xhw4d\nOlBWVsYxxxwTOPbNN98E9ufNC28dfOWVV7JlyxbmzZtHvXr1Ipa/f/9+9uzZw/r164MqYD+xXEH4\nex7+SnzNmjWcdNJJQef7admyJfXr16e8vDyggMrLy+OqxN0hQ3fv3s22bduySinEaw2U6b6SYmFc\nZsRHVMUg9r//30AP7HkGAX6vqt9GO88QmyFDhjBx4kROPPFE2rRpw1tvvcWcOXMCQzXhuPbaa1mx\nYgVvvvkmubm5QWlvvvkmLVu25OSTT2b37t3cfvvtNG/enOOOOw6AV155hbPPPpumTZvy4YcfMmXK\nFO65556I11JVSkpKuOuuu3j//feZO3dulTkLPzk5OQwePJjx48czbdo0tm7dyv3338/vfve7qOVH\nY968ebz33nucdtpp/PGPf6RHjx60adMGgFatWrF69WqOPPLIqGWkM/FWxqWu+Ds1qRcTvbLaVNyp\nTVTFoKoqIi+rajfglTqSKSuYMGECJSUl9OzZk+3bt3PUUUcxY8YMjj/++LD516xZw+OPP07Dhg0D\nwzLuYabt27dz4403sn79eg499FBOP/105s+fH1Ags2bN4oorrmDfvn20a9eO2267jeHDh0eUr3Xr\n1jRr1ow2bdrQuHFjHnvsscDEczhz0SlTpnDjjTdy5JFHcuihh3L11VcH5hfCEVpG6P5ll12GZVks\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb index eb2471e222..3dea15c501 100644 --- a/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb @@ -456,7 +456,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -492,7 +492,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we are ready to generate multi-group cross sections! First, let's define 20-energy-group, 1-energy-group, and 6-delayed-group structures using the built-in `EnergyGroups` and `DelayedGroups` classes." + "Now we are ready to generate multi-group cross sections! First, let's define 20-energy-group, 1-energy-group, and 6-delayed-group structures." ] }, { @@ -511,8 +511,8 @@ "one_group = openmc.mgxs.EnergyGroups()\n", "one_group.group_edges = np.array([energy_groups.group_edges[0], energy_groups.group_edges[-1]])\n", "\n", - "# Instantiate a 6-group DelayedGroups object\n", - "delayed_groups = range(1,7)" + "# Instantiate a 6-delayed-group list\n", + "delayed_groups = list(range(1,7))" ] }, { @@ -607,8 +607,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", - " Git SHA1: be7e6e035d22944a8c80ca32f99935b6822854c9\n", - " Date/Time: 2016-08-10 15:48:40\n", + " Git SHA1: c21ceb0aea4abc243b84106576c4f9010f608d0b\n", + " Date/Time: 2016-08-11 08:25:23\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -713,20 +713,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.2300E-01 seconds\n", - " Reading cross sections = 3.3300E-01 seconds\n", - " Total time in simulation = 7.3672E+01 seconds\n", - " Time in transport only = 7.3396E+01 seconds\n", - " Time in inactive batches = 5.0250E+00 seconds\n", - " Time in active batches = 6.8647E+01 seconds\n", - " Time synchronizing fission bank = 1.3000E-02 seconds\n", - " Sampling source sites = 0.0000E+00 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", - " Time accumulating tallies = 2.0800E-01 seconds\n", + " Total time for initialization = 5.7200E-01 seconds\n", + " Reading cross sections = 3.6100E-01 seconds\n", + " Total time in simulation = 7.5373E+01 seconds\n", + " Time in transport only = 7.5119E+01 seconds\n", + " Time in inactive batches = 5.1640E+00 seconds\n", + " Time in active batches = 7.0209E+01 seconds\n", + " Time synchronizing fission bank = 5.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 2.1900E-01 seconds\n", " Total time for finalization = 7.0000E-03 seconds\n", - " Total time elapsed = 7.4227E+01 seconds\n", - " Calculation Rate (inactive) = 4975.12 neutrons/second\n", - " Calculation Rate (active) = 1456.73 neutrons/second\n", + " Total time elapsed = 7.5973E+01 seconds\n", + " Calculation Rate (inactive) = 4841.21 neutrons/second\n", + " Calculation Rate (active) = 1424.32 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -832,11 +832,17 @@ "output_type": "stream", "text": [ "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1944: RuntimeWarning: invalid value encountered in true_divide\n", + " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1945: RuntimeWarning: invalid value encountered in true_divide\n", + " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n", "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1946: RuntimeWarning: divide by zero encountered in true_divide\n", + " new_tally._mean = data['self']['mean'] / data['other']['mean']\n", "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1946: RuntimeWarning: invalid value encountered in true_divide\n", + " new_tally._mean = data['self']['mean'] / data['other']['mean']\n", "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1938: RuntimeWarning: invalid value encountered in true_divide\n", - "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1939: RuntimeWarning: invalid value encountered in true_divide\n" + " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", + "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1939: RuntimeWarning: invalid value encountered in true_divide\n", + " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n" ] }, { @@ -1249,7 +1255,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -1260,7 +1266,7 @@ "data": { "image/png": "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\nDmZmZmZmZmbW5TzgYGZmZmZmZmZdzgMOZmZmZmZmZtblPOBgZmZmZmZmZl3OAw5mZmZmZmZm1uU8\n4GBmZmZmZmZmXc4DDmZmZmZmZmbW5TzgYGZmZmZmZmZdzgMOZmZmZmZmZtblPOBgZmZmZmZmZl3O\nAw5mZmZmZmZm1uU84GBmZmZmZmZmXc4DDusJSZMlnZlx2ycl7d/dfapqcz9JT/Vkm2ZmPck5bGZW\nPmexWXPxgEMdkuZLelXSy5Kel3S9pJ0y1jpIaouyO9CI9N91ZdZfYmbWGOdwt1gnc7jqZ+FlSTeV\n3Sez3sJZ3C3WySwGkHSKpCck/UvSo5KGlt0na24ecKgvgEMiYnNgB+AfwIUZa8U6HCTNTlJrCW32\nAS4A7u7pts16Medwkyohh1f9LKSP0T3cvllv5ixuUj2dxZI+C3wGOCgiNgU+DPxfT/bB1j0ecOiY\nACLidWAqsOuqFVJfSedKWiDpGUk/krShpI2BG4EdJf0zHQ3uL+ldkv4iaamkpyVdmP4RW6xj0h6S\n7pP0kqQpwEZV6z8s6YG0vTskvb3Ofur2S9JFks6t2n6apC+mz3eQNFXSPyT9XdIXKrbbSNLPJb0g\n6RHgXZ28n1GS5qb9+KGkGZKOTdeNS9/D+ZKeB8Yr8Y101P3ZtK3N0u3XGk2vnDInabyk30iakv77\n/FXS7p185F8GbgbmdrKdmXUt57BzeNUuOllvZt3HWdzLs1iSgG8CX4qIxwAi4smIeLGj92PmAYcM\n0sD8BHBXxeJzgKHA7ul/dwS+GRGvAgcBiyNis/SbmGeBNuC/gH7A3sD+wIkF+7MBcA1wWbq/3wAf\nq1i/JzAJOD5d/xNgWlpXraN+XQaMrdjv1un6K9PQuR54gGS0+wDgFEkfSjefALwxfRwIjOvg/Wyd\nvofTgK2Bx9K+VHo38DdgW+DbJKOrnwL2A94EbAb8sGL7zkbTDwV+DWwF/Aq4VnVGiSUNTts7Ex/w\nmpXCObxqv70yh1NXSFoi6aYMgxNm1g2cxav22xuzeED6eLukhenAyoRO9m0GEeFHjQfwJPAy8AKw\nHFgE7Fax/l/AGyte7w08kT7fD1jYyf5PAa4u2Lf3AYuqlt0JnJk+vxiYWLV+LvC+ive2f5Z+AY8C\nB6TPTwJuSJ+/G5hfVXs6MCl9/nfgQxXrjq/3mQCfBO6sWrYQODZ9Pq5GW7cC/1nx+i3AMpJBtLU+\n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\neuPVxnRsyZiOLXtfXzzliVq7DchEZX2NMUvHOIJsgsgeRwPXR0Q38Likm4E3A0tqfjgzsyGkH+Zw\nMDOzJjmL81MaejdwJ5Ci68FaP07W176qu9y5StTd+sY3ljrXL+I9hWu+1H5yqXM92r1P8XPFfxWu\nmfqtEwvXAHzg5FmFa8ZFuZVVfhUdxWs+/P5S5/rsles1HDZ0/kFnFK55501zCtcAfDr+t3DNR9uu\nISKK/Q+ZSIpbYkyuff9R89c7T/rL/31kk0b+mWy82VEV3b2QdALwhog4QdJE4PCI6Jk08jLgLWRD\nKW4ARkdESPoh8ERETKpxzYcCp0XEARXbTgX2iIjjJW2ermNCRNyb/9vYsJTJYYB2rWq803rnKpff\n83b+h8I1v4x3lzrXf7SfX7hmzROvKH6erc5uvFMN519SPEfGHzez1LneyW8L18yOw0qd6zefKP7n\n5umXTm68U5WvvH9K4RqAg352beGa4+KSwjWv4U0c2HZWqSwuksNQO4utdUrdE5fI4excxbO4TA5D\nuSz+j/avFa5Z88SrCtcAfHar4vdzF15yaqlzlcniMjkM5bJ4sHIYymVxmRyGclncynvijY17OJhZ\nbkNtvFqOMWYTWHc4BcB3gGmSehoYpr6cGxvM7OXFQyrMzFrPWZyfGxzMLLcm1xzu9/FqjcaYRcR6\nM5tHxPP1zmFmNtQ1m8NmZtY8Z3F+bnAws9w8Xs3MrLWcw2Zmrecszs8NDmaWW7Prv5uZWXOcw2Zm\nrecszs/flJnl5vFqZmat5Rw2M2s9Z3F+bnAws9wcrmZmreUcNjNrPWdxfm5wMLPcPF7NzKy1nMNm\nZq3nLM7PDQ5mlpvHq5mZtZZz2Mys9ZzF+fmbMrPc3H3MzKy1nMNmZq3nLM7PDQ5mltsqrzlsZtZS\nzmEzs9ZzFufnBgczy83dx8zMWss5bGbWes7i/PxNmVlu7j5mZtZazmEzs9ZzFufnBgczy83hambW\nWs5hM7PWcxbnNygNDjfv8qZC+4+PGaXOc7WOKlzTdt0fSp1Ls6NwTXeXSp1r2zX3FK5ZOfPvC9d0\nn1S4BID2X36ocM0XDvxyqXN9QV8rXNM2rtz3fsH3Ti9c0/3L4uc5jVuLFwG/VkeJqmtKnauHw3XD\nddsu+xSu+UBcXbhmto4sXAPQNv++wjW6pHgOQ7ks3p6HCtc8celOhWsAuo8rXtP+mwmlzvXl/b9Y\n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\n+8b/K1zTdUrx/wY/ru8XrgH4Il8uXLOHlhERxS+S7P/ltuXVoxVq695hi5rnSctiXsDaZTG/Urn2\nu6RNyVaQeBNp7feIWJJqzyBbxWI1a5fFfDvwG+AesiEWAZyZllRD0jTgloi4uOo6jgbOBLqBn0bE\nGcW+jQ1LmRwG0CXFs6fr7aX+82KbrurOLo1t2fZsqXM9pNcXrml/sPj3d96unylcA/BZ/W/hmrZa\nzW05aFLx/Onq+mSpc02Pmqss9ukT515euKbrtHL/DR5b4ns/my8WrtmUA3m1ZpXK4iI5DPWz2Fqj\n1D1xiRyGcllcJoehXBYPVg5DuSwuk8NQLovL5DCUy+LBymEol8VlchjgLM4qXLOrHm/pPfHGxEMq\nzCy37q7mIqO/136PiJuh/jTBEXFsne0zgBm5L9zMbIhoNofNzKx5zuL8/E2ZWX7uGmZm1lrOYTOz\n1nMW5+YGBzPLz+FqZtZazmEzs9ZzFufmBgczy2/NRj0Ezcys9ZzDZmat5yzOzQ0OZpbfmlZfgJnZ\nRs45bGbWes7i3Lwsppnl92LOh5mZDYy8OewsNjMbOE3msKRDJS2SdL+k02q8P1zSTEmLJd0iaVTF\ne2ek7QslHdLomJKmSXpQ0l2S5knaJ23fQ9LvJb0oaVLF/ptKui3tf4+k3gney3APBzPLb3WrL8DM\nbCPnHDYza70mslhSG3AhcBDwGDBX0jURsahit+OBpyJitKQJwLnAREl7ka3oticwErhR0mhADY55\nSkRcXXUpTwL/DhxeuTEiVkk6ICJekNQO3Czp5xFxe5nP6x4OZpZfV86HmZkNjLw57Cw2Mxs4zeXw\nOGBxRDwcEauBmcD4qn3GA5em57OAA9Pzw4CZEbEmIpYAi9PxGh1zvb/3R8QTEXEnNQaIRMQL6emm\nZJ0Uou6nacANDmaW35qcDzMzGxh5c9hZbGY2cJrL4R2BpRWvl6VtNfeJiC7gGUlb16h9NG1rdMyz\nJc2XdJ6kTRp9PEltku4ClgM3RMTcRjX1uMHBzPLzTa6ZWWv1Q4PDAI0dnipphaQ/VB3r3LTvfElX\nStoybd8vjQ/ueRyeto+UdJOkBWns8EllvyozswHTXA7XWuKiugdBvX2Kbgc4PSL2BPYDtgHWy/31\nCiO6I+JNZMM23pKGcpTiORzMLD83JpiZtVaTOTwQY4cjIoBpwLeBH1adcg7ZzW63pK8AZ6THPcC+\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 4371ad0c45..8d5638b6da 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -27,6 +27,8 @@ Example Jupyter Notebooks examples/mgxs-part-ii examples/mgxs-part-iii examples/mgxs-part-iv + examples/mdgxs-part-i + examples/mdgxs-part-ii examples/nuclear-data ------------------------------------ @@ -257,16 +259,6 @@ Energy Groups openmc.mgxs.EnergyGroups -Delayed Groups -------------- - -.. autosummary:: - :toctree: generated - :nosignatures: - :template: myclass.rst - - openmc.mgxs.DelayedGroups - Multi-group Cross Sections -------------------------- From cec3df43d5000f98bbd6a1a49a909876ca73db13 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 11 Aug 2016 10:26:49 -0500 Subject: [PATCH 262/417] If OpenCG cell has no surfaces, don't assign region --- openmc/opencg_compatible.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 93a257f465..d301cf2b5e 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -689,13 +689,14 @@ def get_openmc_cell(opencg_cell): translation = np.asarray(opencg_cell.translation, dtype=np.float64) openmc_cell.translation = translation - surfaces = [] - operators = [] - for surface, halfspace in opencg_cell.surfaces.values(): - surfaces.append(get_openmc_surface(surface)) - operators.append(operator.neg if halfspace == -1 else operator.pos) - openmc_cell.region = openmc.Intersection( - *[op(s) for op, s in zip(operators, surfaces)]) + if opencg_cell.surfaces: + surfaces = [] + operators = [] + for surface, halfspace in opencg_cell.surfaces.values(): + surfaces.append(get_openmc_surface(surface)) + operators.append(operator.neg if halfspace == -1 else operator.pos) + openmc_cell.region = openmc.Intersection( + *[op(s) for op, s in zip(operators, surfaces)]) # Add the OpenMC Cell to the global collection of all OpenMC Cells OPENMC_CELLS[cell_id] = openmc_cell From 043c56f3384e738be9eba41ac1d8e5aa4dd17766 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 11 Aug 2016 11:31:29 -0400 Subject: [PATCH 263/417] Now track OpenCG lattice names. Now strip hyphens on nuclide names --- openmc/nuclide.py | 10 +++++++++- openmc/opencg_compatible.py | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 14609161fe..961ab201f4 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -1,5 +1,6 @@ from numbers import Integral import sys +import warnings from openmc.checkvalue import check_type @@ -98,7 +99,14 @@ class Nuclide(object): @name.setter def name(self, name): check_type('name', name, basestring) - self._name = name + + if '-' in name: + new_name = name.strip('-', '') + msg = 'OpenMC nuclide names follow the GND standard. Nuclide ' \ + '"{}" is being transformed to "{}".'.format(name, new_name) + warnings.warn(msg, DeprecationWarning) + + self._name = name.replace('-', '') @xs.setter def xs(self, xs): diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 93a257f465..a3b35e0555 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -911,6 +911,7 @@ def get_openmc_lattice(opencg_lattice): if lattice_id in OPENMC_LATTICES: return OPENMC_LATTICES[lattice_id] + name = opencg_lattice.name dimension = opencg_lattice.dimension width = opencg_lattice.width offset = opencg_lattice.offset @@ -941,7 +942,7 @@ def get_openmc_lattice(opencg_lattice): ((np.array(width, dtype=np.float64) * np.array(dimension, dtype=np.float64))) / -2.0 - openmc_lattice = openmc.RectLattice(lattice_id=lattice_id) + openmc_lattice = openmc.RectLattice(lattice_id=lattice_id, name=name) openmc_lattice.pitch = width openmc_lattice.universes = universe_array openmc_lattice.lower_left = lower_left From 8bc7afe91fe396bb79670221d6a235bf086dfc64 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 11 Aug 2016 11:48:21 -0400 Subject: [PATCH 264/417] Fixed bug in Nuclide hyphen strip --- openmc/nuclide.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 961ab201f4..6f7bd79b8f 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -101,7 +101,7 @@ class Nuclide(object): check_type('name', name, basestring) if '-' in name: - new_name = name.strip('-', '') + new_name = name.replace('-', '') msg = 'OpenMC nuclide names follow the GND standard. Nuclide ' \ '"{}" is being transformed to "{}".'.format(name, new_name) warnings.warn(msg, DeprecationWarning) From 12c8672804b04391cd63d59ff75b3d45d10fb670 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 11 Aug 2016 12:20:02 -0400 Subject: [PATCH 265/417] Reworded nuclide de-hyphen deprecation warning message --- openmc/nuclide.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 6f7bd79b8f..124c86a359 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -102,8 +102,8 @@ class Nuclide(object): if '-' in name: new_name = name.replace('-', '') - msg = 'OpenMC nuclide names follow the GND standard. Nuclide ' \ - '"{}" is being transformed to "{}".'.format(name, new_name) + msg = 'OpenMC nuclides follow the GND naming convention. Nuclide ' \ + '"{}" is being renamed as "{}".'.format(name, new_name) warnings.warn(msg, DeprecationWarning) self._name = name.replace('-', '') From 0bfa509b3c330e46bf07d12f3cc629d1c66eaaa5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 11 Aug 2016 11:37:11 -0500 Subject: [PATCH 266/417] Remove extra line per PEP8 --- openmc/statepoint.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 58a79fa219..b20ea25908 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -521,7 +521,6 @@ class StatePoint(object): if self.summary is not None: self.summary.add_volume_information(volume_calc) - def get_tally(self, scores=[], filters=[], nuclides=[], name=None, id=None, estimator=None, exact_filters=False, exact_nuclides=False, exact_scores=False): From fe63a59c5b192ec3962586c6173f2b0d4d3e34dc Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 11 Aug 2016 13:38:56 -0400 Subject: [PATCH 267/417] Moved get_thermal_name(...) from scripts to openmc.data.thermal --- openmc/data/thermal.py | 22 +++++++++++++++++++++- openmc/material.py | 3 ++- scripts/openmc-update-inputs | 21 ++------------------- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 9de39f518d..275836be77 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -40,6 +40,26 @@ _THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27', 'zrzrh': 'c_Zr_in_ZrH', 'zr-h': 'c_Zr_in_ZrH', 'zr/h': 'c_Zr_in_ZrH'} +def get_thermal_name(name): + """Get proper S(a,b) table name, e.g. 'HH2O' -> 'c_H_in_H2O'""" + + if name.lower() in _THERMAL_NAMES: + return _THERMAL_NAMES[name.lower()] + else: + # Make an educated guess?? This actually works well for + # JEFF-3.2 which stupidly uses names like lw00.32t, + # lw01.32t, etc. for different temperatures + matches = get_close_matches( + name.lower(), _THERMAL_NAMES.keys(), cutoff=0.5) + if len(matches) > 0: + return _THERMAL_NAMES[matches[0]] + '.' + xs + else: + # OK, we give up. Just use the ACE name. + return 'c_' + name + + return name + + class CoherentElastic(object): r"""Coherent elastic scattering data from a crystalline material @@ -394,4 +414,4 @@ class ThermalScattering(object): pairs = np.fromiter(map(lambda p: p[0], ace.pairs), int) table.zaids = pairs[np.nonzero(pairs)] - return table + return table \ No newline at end of file diff --git a/openmc/material.py b/openmc/material.py index d7ffd04e94..e1f3da97ab 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -6,6 +6,7 @@ from xml.etree import ElementTree as ET import sys import openmc +import openmc.data import openmc.checkvalue as cv from openmc.clean_xml import sort_xml_elements, clean_xml_indentation @@ -484,7 +485,7 @@ class Material(object): 'non-string cross-section identifier "{1}"'.format(self._id, xs) raise ValueError(msg) - self._sab.append((name, xs)) + self._sab.append((openmc.data.get_thermal_name(name), xs)) def make_isotropic_in_lab(self): for nuclide, percent, percent_type in self._nuclides: diff --git a/scripts/openmc-update-inputs b/scripts/openmc-update-inputs index 5b5bf0978f..613e4a2241 100755 --- a/scripts/openmc-update-inputs +++ b/scripts/openmc-update-inputs @@ -253,23 +253,6 @@ def update_geometry(geometry_root): return was_updated -def get_thermal_name(name): - """Get proper S(a,b) table name, e.g. 'HH2O' -> 'c_H_in_H2O'""" - if name.lower() in _THERMAL_NAMES: - return _THERMAL_NAMES[name.lower()] - else: - # Make an educated guess?? This actually works well for - # JEFF-3.2 which stupidly uses names like lw00.32t, - # lw01.32t, etc. for different temperatures - matches = get_close_matches( - name.lower(), _THERMAL_NAMES.keys(), cutoff=0.5) - if len(matches) > 0: - return _THERMAL_NAMES[matches[0]] + '.' + xs - else: - # OK, we give up. Just use the ACE name. - return 'c_' + name - return name - def update_materials(root): """Update the given XML materials tree. Return True if changes were made.""" was_updated = False @@ -298,13 +281,13 @@ def update_materials(root): for sab in material.findall('sab'): if 'name' in sab.attrib: sabname = sab.attrib['name'] - sab.set('name', get_thermal_name(sabname)) + sab.set('name', openmc.data.get_thermal_name(sabname)) was_updated = True elif sab.find('name') is not None: name_elem = sab.find('name') sabname = name_elem.text - name_elem.text = get_thermal(sabname) + name_elem.text = openmc.data.get_thermal_name(sabname) was_updated = True return was_updated From b791450b751a294cd42904b0638cba6b4fe72b9c Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 11 Aug 2016 13:46:07 -0400 Subject: [PATCH 268/417] Added conditional to pass qualifying S(a,b) names through converter method --- openmc/data/thermal.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 275836be77..8b6e35b61a 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -43,7 +43,9 @@ _THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27', def get_thermal_name(name): """Get proper S(a,b) table name, e.g. 'HH2O' -> 'c_H_in_H2O'""" - if name.lower() in _THERMAL_NAMES: + if name in _THERMAL_NAMES.values(): + return name + elif name.lower() in _THERMAL_NAMES: return _THERMAL_NAMES[name.lower()] else: # Make an educated guess?? This actually works well for @@ -52,7 +54,7 @@ def get_thermal_name(name): matches = get_close_matches( name.lower(), _THERMAL_NAMES.keys(), cutoff=0.5) if len(matches) > 0: - return _THERMAL_NAMES[matches[0]] + '.' + xs + return _THERMAL_NAMES[matches[0]] else: # OK, we give up. Just use the ACE name. return 'c_' + name From e8ebc74b4f4c33da3edd381d45127df610863da8 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 11 Aug 2016 19:11:10 -0400 Subject: [PATCH 269/417] added __eq__ to the nuclear data classes and also enabled openmc.data.ThermalScattering.from_hdf5 to use either a group or filename like Neutron can. --- openmc/data/angle_distribution.py | 10 ++++ openmc/data/correlated.py | 13 ++++ openmc/data/energy_distribution.py | 96 ++++++++++++++++++++++++++++++ openmc/data/function.py | 12 ++++ openmc/data/kalbach_mann.py | 14 +++++ openmc/data/nbody.py | 12 ++++ openmc/data/product.py | 14 +++++ openmc/data/thermal.py | 41 ++++++++++++- openmc/data/uncorrelated.py | 10 ++++ openmc/stats/univariate.py | 70 ++++++++++++++++++++++ 10 files changed, 289 insertions(+), 3 deletions(-) diff --git a/openmc/data/angle_distribution.py b/openmc/data/angle_distribution.py index 316559c50d..afb9a05454 100644 --- a/openmc/data/angle_distribution.py +++ b/openmc/data/angle_distribution.py @@ -32,6 +32,16 @@ class AngleDistribution(object): self.energy = energy self.mu = mu + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (not np.array_equal(self.energy, other.energy) or + not np.array_equal(self.mu, other.mu)): + eqval = False + return eqval + @property def energy(self): return self._energy diff --git a/openmc/data/correlated.py b/openmc/data/correlated.py index 97a96c17c1..2415aaab30 100644 --- a/openmc/data/correlated.py +++ b/openmc/data/correlated.py @@ -49,6 +49,19 @@ class CorrelatedAngleEnergy(AngleEnergy): self.energy_out = energy_out self.mu = mu + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (not np.array_equal(self.breakpoints, other.breakpoints) or + not np.array_equal(self.interpolation, other.interpolation) or + not np.array_equal(self.energy, other.energy) or + not np.array_equal(self.energy_out, other.energy_out) or + not np.array_equal(self.mu, other.mu)): + eqval = False + return eqval + @property def breakpoints(self): return self._breakpoints diff --git a/openmc/data/energy_distribution.py b/openmc/data/energy_distribution.py index 2300081c13..4299fc166a 100644 --- a/openmc/data/energy_distribution.py +++ b/openmc/data/energy_distribution.py @@ -84,6 +84,16 @@ class ArbitraryTabulated(EnergyDistribution): self.energy = energy self.pdf = pdf + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (not np.array_equal(self.energy, other.energy) or + not np.array_equal(self.pdf, other.pdf)): + eqval = False + return eqval + def to_hdf5(self, group): raise NotImplementedError @@ -122,6 +132,17 @@ class GeneralEvaporation(EnergyDistribution): self.g = g self.u = u + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.theta != other.theta or + self.g != other.g or + self.u != other.u): + eqval = False + return eqval + def to_hdf5(self, group): raise NotImplementedError @@ -159,6 +180,16 @@ class MaxwellEnergy(EnergyDistribution): self.theta = theta self.u = u + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.theta != other.theta or + self.u != other.u): + eqval = False + return eqval + @property def theta(self): return self._theta @@ -267,6 +298,16 @@ class Evaporation(EnergyDistribution): self.theta = theta self.u = u + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.theta != other.theta or + self.u != other.u): + eqval = False + return eqval + @property def theta(self): return self._theta @@ -379,6 +420,17 @@ class WattEnergy(EnergyDistribution): self.b = b self.u = u + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.a != other.a or + self.b != other.b or + self.u != other.u): + eqval = False + return eqval + @property def a(self): return self._a @@ -520,6 +572,17 @@ class MadlandNix(EnergyDistribution): self.efh = efh self.tm = tm + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.efl != other.efl or + self.efh != other.efh or + self.tm != other.tm): + eqval = False + return eqval + @property def efl(self): return self._efl @@ -618,6 +681,17 @@ class DiscretePhoton(EnergyDistribution): self.energy = energy self.atomic_weight_ratio = atomic_weight_ratio + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.primary_flag != other.primary_flag or + self.energy != other.energy or + self.atomic_weight_ratio != other.atomic_weight_ratio): + eqval = False + return eqval + @property def primary_flag(self): return self._primary_flag @@ -726,6 +800,16 @@ class LevelInelastic(EnergyDistribution): self.threshold = threshold self.mass_ratio = mass_ratio + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.threshold != other.threshold or + self.mass_ratio != other.mass_ratio): + eqval = False + return eqval + @property def threshold(self): return self._threshold @@ -832,6 +916,18 @@ class ContinuousTabular(EnergyDistribution): self.energy = energy self.energy_out = energy_out + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (not np.array_equal(self.breakpoints, other.breakpoints) or + not np.array_equal(self.interpolation, other.interpolation) or + not np.array_equal(self.energy, other.energy) or + not np.array_equal(self.energy_out, other.energy_out)): + eqval = False + return eqval + @property def breakpoints(self): return self._breakpoints diff --git a/openmc/data/function.py b/openmc/data/function.py index 56a3d4a45f..e0acf9f29d 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -65,6 +65,18 @@ class Tabulated1D(object): self.x = np.asarray(x) self.y = np.asarray(y) + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (not np.array_equal(self.x, other.x) or + not np.array_equal(self.y, other.y) or + not np.array_equal(self.breakpoints, other.breakpoints) or + not np.array_equal(self.interpolation, other.interpolation)): + eqval = False + return eqval + def __call__(self, x): # Check if input is array or scalar if isinstance(x, Iterable): diff --git a/openmc/data/kalbach_mann.py b/openmc/data/kalbach_mann.py index 5aca17ba9f..519796ad46 100644 --- a/openmc/data/kalbach_mann.py +++ b/openmc/data/kalbach_mann.py @@ -59,6 +59,20 @@ class KalbachMann(AngleEnergy): self.precompound = precompound self.slope = slope + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (not np.array_equal(self.breakpoints, other.breakpoints) or + not np.array_equal(self.interpolation, other.interpolation) or + not np.array_equal(self.energy, other.energy) or + not np.array_equal(self.energy_out, other.energy_out) or + not np.array_equal(self.precompound, other.precompound) or + not np.array_equal(self.slope, other.slope)): + eqval = False + return eqval + @property def breakpoints(self): return self._breakpoints diff --git a/openmc/data/nbody.py b/openmc/data/nbody.py index a34380dc93..274db48f98 100644 --- a/openmc/data/nbody.py +++ b/openmc/data/nbody.py @@ -38,6 +38,18 @@ class NBodyPhaseSpace(AngleEnergy): self.atomic_weight_ratio = atomic_weight_ratio self.q_value = q_value + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.total_mass != other.total_mass or + self.n_particles != other.n_particles or + self.atomic_weight_ratio != other.atomic_weight_ratio or + self.q_value != other.q_value): + eqval = False + return eqval + @property def total_mass(self): return self._total_mass diff --git a/openmc/data/product.py b/openmc/data/product.py index dd276daac3..08529f90a1 100644 --- a/openmc/data/product.py +++ b/openmc/data/product.py @@ -49,6 +49,20 @@ class Product(object): self.applicability = [] self.yield_ = 1 + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.particle != other.particle or + self.decay_rate != other.decay_rate or + self.emission_mode != other.emission_mode or + self.distribution.all() != other.distribution.all() or + self.applicability.all() != other.applicability.all() or + self.yield_ != other.yield_): + eqval = False + return eqval + def __repr__(self): if isinstance(self.yield_, Real): return "".format( diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 9de39f518d..cb61aa7300 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -69,6 +69,16 @@ class CoherentElastic(object): idx = np.searchsorted(self.bragg_edges, E) return self.factors[idx]/E + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (not np.array_equal(self.bragg_edges, other.bragg_edges) or + not np.array_equal(self.factors, other.factors)): + eqval = False + return eqval + def __len__(self): return len(self.bragg_edges) @@ -170,6 +180,23 @@ class ThermalScattering(object): self.secondary_mode = None self.zaids = [] + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.name != other.name or + self.atomic_weight_ratio != other.atomic_weight_ratio or + self.elastic_xs != other.elastic_xs or + self.elastic_mu_out != other.elastic_mu_out or + self.inelastic_xs != other.inelastic_xs or + self.inelastic_mu_out != other.inelastic_mu_out or + self.temperature != other.temperature or + not np.array_equal(self.zaids, other.zaids) or + self.secondary_mode != other.secondary_mode): + eqval = False + return eqval + def __repr__(self): if hasattr(self, 'name'): return "".format(self.name) @@ -216,13 +243,15 @@ class ThermalScattering(object): self.inelastic_dist.to_hdf5(inelastic_group) @classmethod - def from_hdf5(cls, group): + def from_hdf5(cls, group_or_filename): """Generate thermal scattering data from HDF5 group Parameters ---------- - group : h5py.Group - HDF5 group to read from + group_or_filename : h5py.Group or str + HDF5 group containing interaction data. If given as a string, it is + assumed to be the filename for the HDF5 file, and the first group + is used to read from. Returns ------- @@ -230,6 +259,12 @@ class ThermalScattering(object): Neutron thermal scattering data """ + if isinstance(group_or_filename, h5py.Group): + group = group_or_filename + else: + h5file = h5py.File(group_or_filename, 'r') + group = list(h5file.values())[0] + name = group.name[1:] atomic_weight_ratio = group.attrs['atomic_weight_ratio'] temperature = group.attrs['temperature'] diff --git a/openmc/data/uncorrelated.py b/openmc/data/uncorrelated.py index 0361c9b37a..babe003c02 100644 --- a/openmc/data/uncorrelated.py +++ b/openmc/data/uncorrelated.py @@ -34,6 +34,16 @@ class UncorrelatedAngleEnergy(AngleEnergy): if energy is not None: self.energy = energy + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.angle != other.angle or + self.energy != other.energy): + eqval = False + return eqval + @property def angle(self): return self._angle diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 24ab98895d..d7ba945202 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -65,6 +65,16 @@ class Discrete(Univariate): self.x = x self.p = p + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (not np.array_equal(self.x, other.x) or + not np.array_equal(self.p, other.p)): + eqval = False + return eqval + def __len__(self): return len(self.x) @@ -126,6 +136,16 @@ class Uniform(Univariate): self.a = a self.b = b + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.a != other.a or + self.b != other.b): + eqval = False + return eqval + def __len__(self): return 2 @@ -183,6 +203,15 @@ class Maxwell(Univariate): super(Maxwell, self).__init__() self.theta = theta + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.theta != other.theta): + eqval = False + return eqval + def __len__(self): return 1 @@ -231,6 +260,16 @@ class Watt(Univariate): self.a = a self.b = b + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self.a != other.a or + self.b != other.b): + eqval = False + return eqval + def __len__(self): return 2 @@ -300,6 +339,18 @@ class Tabular(Univariate): self.p = p self.interpolation = interpolation + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (self._ignore_negative != other._ignore_negative or + not np.array_equal(self.x, other.x) or + not np.array_equal(self.p, other.p) or + self.interpolation != other.interpolation): + eqval = False + return eqval + def __len__(self): return len(self.x) @@ -368,6 +419,15 @@ class Legendre(Univariate): def __call__(self, x): return self._legendre_polynomial(x) + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if not np.array_equal(self.coefficients, other.coefficients): + eqval = False + return eqval + def __len__(self): return len(self._legendre_polynomial.coef) @@ -414,6 +474,16 @@ class Mixture(Univariate): self.probability = probability self.distribution = distribution + def __eq__(self, other): + if not isinstance(other, type(self)): + return NotImplemented + else: + eqval = True + if (not np.array_equal(self.probability, other.probability) or + not np.array_equal(self.distribution, other.distribution)): + eqval = False + return eqval + def __len__(self): return sum(len(d) for d in self.distribution) From 11a2c31031eeabe29595ab335716739bc2c24cb1 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 11 Aug 2016 22:12:47 -0400 Subject: [PATCH 270/417] Removed unreachable return in get_thermal_name(...) --- openmc/data/thermal.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 8b6e35b61a..cd44f21f95 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -59,8 +59,6 @@ def get_thermal_name(name): # OK, we give up. Just use the ACE name. return 'c_' + name - return name - class CoherentElastic(object): r"""Coherent elastic scattering data from a crystalline material @@ -416,4 +414,4 @@ class ThermalScattering(object): pairs = np.fromiter(map(lambda p: p[0], ace.pairs), int) table.zaids = pairs[np.nonzero(pairs)] - return table \ No newline at end of file + return table From 531a1726078a4b2d7abacf1752a04187a38805ed Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 11 Aug 2016 22:21:40 -0400 Subject: [PATCH 271/417] Now appending metatable suffix to nuclide names per suggestion by @paulromano --- openmc/nuclide.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 124c86a359..00ae25ac60 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -102,6 +102,10 @@ class Nuclide(object): if '-' in name: new_name = name.replace('-', '') + new_name = new_name.replace('Nat', '0') + if new_name.endswith('m'): + new_name = new_name[:-1] + '_m1' + msg = 'OpenMC nuclides follow the GND naming convention. Nuclide ' \ '"{}" is being renamed as "{}".'.format(name, new_name) warnings.warn(msg, DeprecationWarning) From cdb882648aff932644870f6bd96c45c3c0c032c7 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 11 Aug 2016 22:27:53 -0400 Subject: [PATCH 272/417] Now printing a UserWarning in place of a DeprecationWarning for nuclide renaming --- openmc/nuclide.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 00ae25ac60..2c6998cd5d 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -108,7 +108,7 @@ class Nuclide(object): msg = 'OpenMC nuclides follow the GND naming convention. Nuclide ' \ '"{}" is being renamed as "{}".'.format(name, new_name) - warnings.warn(msg, DeprecationWarning) + warnings.warn(msg) self._name = name.replace('-', '') From 284058319097c4777d0e3d0c7814b7ed6c4ef665 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 11 Aug 2016 23:00:59 -0400 Subject: [PATCH 273/417] Fixed nuclide renaming bug --- openmc/nuclide.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 2c6998cd5d..68f95beb94 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -99,19 +99,18 @@ class Nuclide(object): @name.setter def name(self, name): check_type('name', name, basestring) + self._name = name if '-' in name: - new_name = name.replace('-', '') - new_name = new_name.replace('Nat', '0') - if new_name.endswith('m'): - new_name = new_name[:-1] + '_m1' + self._name = name.replace('-', '') + self._name = self._name.replace('Nat', '0') + if self._name.endswith('m'): + self._name = self._name[:-1] + '_m1' msg = 'OpenMC nuclides follow the GND naming convention. Nuclide ' \ - '"{}" is being renamed as "{}".'.format(name, new_name) + '"{}" is being renamed as "{}".'.format(name, self._name) warnings.warn(msg) - self._name = name.replace('-', '') - @xs.setter def xs(self, xs): check_type('cross-section identifier', xs, basestring) From 6ecf89424e62d65f60f029d83b93645c58762753 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 12 Aug 2016 10:02:39 -0400 Subject: [PATCH 274/417] Added warning message for S(a,b) table renaming --- openmc/material.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/openmc/material.py b/openmc/material.py index e1f3da97ab..da173c92e7 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -485,7 +485,13 @@ class Material(object): 'non-string cross-section identifier "{1}"'.format(self._id, xs) raise ValueError(msg) - self._sab.append((openmc.data.get_thermal_name(name), xs)) + new_name = openmc.data.get_thermal_name(name) + if new_name != name: + msg = 'OpenMC S(a,b) tables follow the GND naming convention. ' \ + 'Table "{}" is being renamed as "{}".'.format(name, new_name) + warnings.warn(msg) + + self._sab.append((new_name, xs)) def make_isotropic_in_lab(self): for nuclide, percent, percent_type in self._nuclides: From 5b219fd6aa36f58cc5313b259b6f098ccf35a2d1 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 12 Aug 2016 11:32:31 -0500 Subject: [PATCH 275/417] Fix doc build for metaclassed Polynomials --- docs/source/conf.py | 3 +++ openmc/data/function.py | 13 +++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 4aa000f386..1baea2b03c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -28,6 +28,9 @@ MOCK_MODULES = ['numpy', 'numpy.polynomial', 'numpy.polynomial.polynomial', 'h5py', 'pandas', 'opencg'] sys.modules.update((mod_name, MagicMock()) for mod_name in MOCK_MODULES) +import numpy as np +np.polynomial.Polynomial = MagicMock + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the diff --git a/openmc/data/function.py b/openmc/data/function.py index 768250259f..88d27ce93d 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -1,6 +1,7 @@ from abc import ABCMeta, abstractmethod from collections import Iterable, Callable from numbers import Real, Integral +from six import with_metaclass import numpy as np @@ -10,14 +11,11 @@ INTERPOLATION_SCHEME = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log', 4: 'log-linear', 5: 'log-log'} -class Function1D(object): +class Function1D(with_metaclass(ABCMeta, object)): """A function of one independent variable with HDF5 support.""" - def __init__(self): pass - - def __call__(self): - raise NotImplemented('Subclasses of Function1D should overwrite the ' - '__call__ and to_hdf5 methods') + @abstractmethod + def __call__(self): pass @abstractmethod def to_hdf5(self, group, name='xy'): @@ -31,8 +29,7 @@ class Function1D(object): Name of the dataset to create """ - raise NotImplemented('Subclasses of Function1D should overwrite the ' - '__call__ and to_hdf5 methods') + pass @classmethod def from_hdf5(cls, dataset): From f4e0525a053741fda2e507aa2ca7954e7d1d73d9 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 12 Aug 2016 14:16:46 -0500 Subject: [PATCH 276/417] Remove six dependency --- openmc/data/function.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openmc/data/function.py b/openmc/data/function.py index 88d27ce93d..a7397e7858 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -1,7 +1,6 @@ from abc import ABCMeta, abstractmethod from collections import Iterable, Callable from numbers import Real, Integral -from six import with_metaclass import numpy as np @@ -11,9 +10,11 @@ INTERPOLATION_SCHEME = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log', 4: 'log-linear', 5: 'log-log'} -class Function1D(with_metaclass(ABCMeta, object)): +class Function1D(object): """A function of one independent variable with HDF5 support.""" + __metaclass__ = ABCMeta + @abstractmethod def __call__(self): pass From c5df6ce146abeee0d83447aa7a1deccf354b9ade Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 12 Aug 2016 16:40:13 -0500 Subject: [PATCH 277/417] Fix mesh filter max iterator check --- src/tally_filter.F90 | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index c0e1c88534..67d0452847 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -295,8 +295,12 @@ contains search_iter = 0 do while (any(ijk0(:m % n_dimension) < 1) & .or. any(ijk0(:m % n_dimension) > m % dimension)) - if (search_iter == MAX_SEARCH_ITER) call fatal_error("Failed to & - &find a mesh intersection on a tally mesh filter.") + if (search_iter == MAX_SEARCH_ITER) then + call warning("Failed to find a mesh intersection on a tally mesh & + &filter.") + next_bin = NO_BIN_FOUND + return + end if do j = 1, m % n_dimension if (abs(uvw(j)) < FP_PRECISION) then @@ -315,6 +319,8 @@ contains else ijk0(j) = ijk0(j) - 1 end if + + search_iter = search_iter + 1 end do distance = d(j) xyz0 = xyz0 + distance * uvw From aca4578f46327e3978f95b9dcfd99d2610b2fff6 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 12 Aug 2016 17:57:54 -0500 Subject: [PATCH 278/417] Fix Sphinx bullet list error --- docs/source/io_formats/fission_energy.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/io_formats/fission_energy.rst b/docs/source/io_formats/fission_energy.rst index 768db56ebb..f80db4569a 100644 --- a/docs/source/io_formats/fission_energy.rst +++ b/docs/source/io_formats/fission_energy.rst @@ -26,7 +26,8 @@ ENDF files with the example, 'U235' or 'Pu239'. Metastable nuclides are appended with an '_m' and their metastable number. For example, 'Am242_m1' -:Datasets: - **data** (*double[][][]*) -- The energy release coefficients. The +:Datasets: + - **data** (*double[][][]*) -- The energy release coefficients. The first axis indexes the component type. The second axis specifies values or uncertainties. The third axis indexes the polynomial order. If the data uses the Sher-Beck format, then the last axis From 328c6a0e886d0011f3e88b03a53028e7119d0250 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sat, 13 Aug 2016 17:40:28 -0500 Subject: [PATCH 279/417] Allow estimator to be set for MGXS --- openmc/mgxs/mgxs.py | 74 ++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 7aa12d0418..b942351556 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -47,6 +47,10 @@ DOMAIN_TYPES = ['cell', 'material', 'mesh'] +ESTIMATOR_TYPES = ['tracklength', + 'collision', + 'analog'] + # Supported domain classes _DOMAINS = (openmc.Cell, openmc.Universe, @@ -102,7 +106,7 @@ class MGXS(object): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section @@ -149,6 +153,7 @@ class MGXS(object): self._rxn_type = None self._by_nuclide = None self._nuclides = None + self._estimator = 'tracklength' self._domain = None self._domain_type = None self._energy_groups = None @@ -250,7 +255,7 @@ class MGXS(object): @property def estimator(self): - return 'tracklength' + return self._estimator @property def tallies(self): @@ -368,6 +373,11 @@ class MGXS(object): cv.check_iterable_type('nuclides', nuclides, basestring) self._nuclides = nuclides + @estimator.setter + def estimator(self, estimator): + cv.check_value('estimator', estimator, ESTIMATOR_TYPES) + self._estimator = estimator + @domain.setter def domain(self, domain): cv.check_type('domain', domain, _DOMAINS) @@ -1643,7 +1653,7 @@ class MatrixMGXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section @@ -1692,10 +1702,6 @@ class MatrixMGXS(MGXS): return [[energy], [energy, energyout]] - @property - def estimator(self): - return 'analog' - def get_xs(self, in_groups='all', out_groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', @@ -2072,7 +2078,7 @@ class TotalXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -2190,7 +2196,7 @@ class TransportXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -2233,6 +2239,7 @@ class TransportXS(MGXS): super(TransportXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'transport' + self._estimator = 'analog' @property def scores(self): @@ -2245,10 +2252,6 @@ class TransportXS(MGXS): energyout_filter = openmc.Filter('energyout', group_edges) return [[energy_filter], [energy_filter], [energyout_filter]] - @property - def estimator(self): - return 'analog' - @property def rxn_rate_tally(self): if self._rxn_rate_tally is None: @@ -2320,7 +2323,7 @@ class NuTransportXS(TransportXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -2441,7 +2444,7 @@ class AbsorptionXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -2557,7 +2560,7 @@ class CaptureXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -2679,7 +2682,7 @@ class FissionXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -2790,7 +2793,7 @@ class NuFissionXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -2906,7 +2909,7 @@ class KappaFissionXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -3019,7 +3022,7 @@ class ScatterXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -3134,7 +3137,7 @@ class NuScatterXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -3177,10 +3180,7 @@ class NuScatterXS(MGXS): super(NuScatterXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'nu-scatter' - - @property - def estimator(self): - return 'analog' + self._estimator = 'analog' class ScatterMatrixXS(MatrixMGXS): @@ -3268,7 +3268,7 @@ class ScatterMatrixXS(MatrixMGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -3314,6 +3314,7 @@ class ScatterMatrixXS(MatrixMGXS): self._correction = 'P0' self._legendre_order = 0 self._hdf5_key = 'scatter matrix' + self._estimator = 'analog' def __deepcopy__(self, memo): clone = super(ScatterMatrixXS, self).__deepcopy__(memo) @@ -3929,7 +3930,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -4051,7 +4052,7 @@ class MultiplicityMatrixXS(MatrixMGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -4094,6 +4095,7 @@ class MultiplicityMatrixXS(MatrixMGXS): super(MultiplicityMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'multiplicity matrix' + self._estimator = 'analog' @property def scores(self): @@ -4198,7 +4200,7 @@ class NuFissionMatrixXS(MatrixMGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -4242,6 +4244,7 @@ class NuFissionMatrixXS(MatrixMGXS): groups, by_nuclide, name) self._rxn_type = 'nu-fission' self._hdf5_key = 'nu-fission matrix' + self._estimator = 'analog' class Chi(MGXS): @@ -4313,7 +4316,7 @@ class Chi(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -4355,6 +4358,7 @@ class Chi(MGXS): groups=None, by_nuclide=False, name=''): super(Chi, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'chi' + self._estimator = 'analog' @property def scores(self): @@ -4372,10 +4376,6 @@ class Chi(MGXS): def tally_keys(self): return ['nu-fission-in', 'nu-fission-out'] - @property - def estimator(self): - return 'analog' - @property def rxn_rate_tally(self): if self._rxn_rate_tally is None: @@ -4803,7 +4803,7 @@ class ChiPrompt(Chi): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -4918,7 +4918,7 @@ class InverseVelocity(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -5052,7 +5052,7 @@ class PromptNuFissionXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'tracklength', 'collision', 'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys From c91744d2d54adac36beb57074bb8e7bb2463360d Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 14 Aug 2016 12:09:59 -0400 Subject: [PATCH 280/417] testing run to use the dict comparison approach --- openmc/data/product.py | 4 ++-- openmc/data/uncorrelated.py | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/openmc/data/product.py b/openmc/data/product.py index 08529f90a1..a33ee9dfb0 100644 --- a/openmc/data/product.py +++ b/openmc/data/product.py @@ -57,8 +57,8 @@ class Product(object): if (self.particle != other.particle or self.decay_rate != other.decay_rate or self.emission_mode != other.emission_mode or - self.distribution.all() != other.distribution.all() or - self.applicability.all() != other.applicability.all() or + not np.narray_equal(self.distribution, other.distribution) or + not np.narray_equal(self.applicability, other.applicability) or self.yield_ != other.yield_): eqval = False return eqval diff --git a/openmc/data/uncorrelated.py b/openmc/data/uncorrelated.py index babe003c02..19945205ee 100644 --- a/openmc/data/uncorrelated.py +++ b/openmc/data/uncorrelated.py @@ -38,11 +38,10 @@ class UncorrelatedAngleEnergy(AngleEnergy): if not isinstance(other, type(self)): return NotImplemented else: - eqval = True - if (self.angle != other.angle or - self.energy != other.energy): - eqval = False - return eqval + if self.__dict__ != other.__dict__: + return False + else: + return True @property def angle(self): From 8e0f3f4f79fedcbd3892a0164d336f6315f97f45 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 15 Aug 2016 06:47:19 -0500 Subject: [PATCH 281/417] Respond to @wbinventor comments on #704 --- openmc/__init__.py | 2 +- openmc/mgxs/mgxs.py | 32 +++++++++++++++++--------------- openmc/tallies.py | 6 ++++-- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/openmc/__init__.py b/openmc/__init__.py index 026ccce114..a0492ee408 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -13,10 +13,10 @@ from openmc.settings import * from openmc.surface import * from openmc.universe import * from openmc.mesh import * -from openmc.mgxs_library import * from openmc.filter import * from openmc.trigger import * from openmc.tallies import * +from openmc.mgxs_library import * from openmc.cmfd import * from openmc.executor import * from openmc.statepoint import * diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b942351556..d68dc508f2 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -13,6 +13,7 @@ import numpy as np import openmc import openmc.checkvalue as cv +from openmc.tallies import ESTIMATOR_TYPES from openmc.mgxs import EnergyGroups if sys.version_info[0] >= 3: @@ -39,7 +40,6 @@ MGXS_TYPES = ['total', 'inverse-velocity', 'prompt-nu-fission'] - # Supported domain types DOMAIN_TYPES = ['cell', 'distribcell', @@ -47,10 +47,6 @@ DOMAIN_TYPES = ['cell', 'material', 'mesh'] -ESTIMATOR_TYPES = ['tracklength', - 'collision', - 'analog'] - # Supported domain classes _DOMAINS = (openmc.Cell, openmc.Universe, @@ -148,7 +144,6 @@ class MGXS(object): def __init__(self, domain=None, domain_type=None, energy_groups=None, by_nuclide=False, name=''): - self._name = '' self._rxn_type = None self._by_nuclide = None @@ -165,6 +160,7 @@ class MGXS(object): self._loaded_sp = False self._derived = False self._hdf5_key = None + self._valid_estimators = ESTIMATOR_TYPES self.name = name self.by_nuclide = by_nuclide @@ -375,7 +371,7 @@ class MGXS(object): @estimator.setter def estimator(self, estimator): - cv.check_value('estimator', estimator, ESTIMATOR_TYPES) + cv.check_value('estimator', estimator, self._valid_estimators) self._estimator = estimator @domain.setter @@ -2196,7 +2192,7 @@ class TransportXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'collision', 'analog'} + estimator : 'analog' The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -2240,6 +2236,7 @@ class TransportXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'transport' self._estimator = 'analog' + self._valid_estimators = ['analog'] @property def scores(self): @@ -2323,7 +2320,7 @@ class NuTransportXS(TransportXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'collision', 'analog'} + estimator : 'analog' The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -3181,6 +3178,7 @@ class NuScatterXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'nu-scatter' self._estimator = 'analog' + self._valid_estimators = ['analog'] class ScatterMatrixXS(MatrixMGXS): @@ -3268,7 +3266,7 @@ class ScatterMatrixXS(MatrixMGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'collision', 'analog'} + estimator : 'analog' The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -3315,6 +3313,7 @@ class ScatterMatrixXS(MatrixMGXS): self._legendre_order = 0 self._hdf5_key = 'scatter matrix' self._estimator = 'analog' + self._valid_estimators = ['analog'] def __deepcopy__(self, memo): clone = super(ScatterMatrixXS, self).__deepcopy__(memo) @@ -3930,7 +3929,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'collision', 'analog'} + estimator : 'analog' The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -4052,7 +4051,7 @@ class MultiplicityMatrixXS(MatrixMGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'collision', 'analog'} + estimator : 'analog' The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -4096,6 +4095,7 @@ class MultiplicityMatrixXS(MatrixMGXS): by_nuclide, name) self._rxn_type = 'multiplicity matrix' self._estimator = 'analog' + self._valid_estimators = ['analog'] @property def scores(self): @@ -4200,7 +4200,7 @@ class NuFissionMatrixXS(MatrixMGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'collision', 'analog'} + estimator : 'analog' The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -4245,6 +4245,7 @@ class NuFissionMatrixXS(MatrixMGXS): self._rxn_type = 'nu-fission' self._hdf5_key = 'nu-fission matrix' self._estimator = 'analog' + self._valid_estimators = ['analog'] class Chi(MGXS): @@ -4316,7 +4317,7 @@ class Chi(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'collision', 'analog'} + estimator : 'analog' The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -4359,6 +4360,7 @@ class Chi(MGXS): super(Chi, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'chi' self._estimator = 'analog' + self._valid_estimators = ['analog'] @property def scores(self): @@ -4803,7 +4805,7 @@ class ChiPrompt(Chi): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'collision', 'analog'} + estimator : 'analog' The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys diff --git a/openmc/tallies.py b/openmc/tallies.py index c68b0faacb..f645fa1624 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -40,6 +40,9 @@ _SCORE_CLASSES = (basestring, CrossScore, AggregateScore) _NUCLIDE_CLASSES = (basestring, Nuclide, CrossNuclide, AggregateNuclide) _FILTER_CLASSES = (Filter, CrossFilter, AggregateFilter) +# Valid types of estimators +ESTIMATOR_TYPES = ['tracklength', 'collision', 'analog'] + def reset_auto_tally_id(): """Reset counter for auto-generated tally IDs.""" @@ -387,8 +390,7 @@ class Tally(object): @estimator.setter def estimator(self, estimator): - cv.check_value('estimator', estimator, - ['analog', 'tracklength', 'collision']) + cv.check_value('estimator', estimator, ESTIMATOR_TYPES) self._estimator = estimator @triggers.setter From 6c29c394434e2f5acfb78d7080aca73b9c62c66a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 15 Aug 2016 17:50:03 -0500 Subject: [PATCH 282/417] Add check on user-specified bounding boxes for volume calculations --- openmc/volume.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/openmc/volume.py b/openmc/volume.py index e9b1dac1d3..2a2a92f61e 100644 --- a/openmc/volume.py +++ b/openmc/volume.py @@ -1,6 +1,7 @@ from collections import Iterable, Mapping from numbers import Real, Integral from xml.etree import ElementTree as ET +from warnings import warn import numpy as np import pandas as pd @@ -68,10 +69,26 @@ class VolumeCalculation(object): self.samples = samples if lower_left is not None: - self.lower_left = lower_left if upper_right is None: raise ValueError('Both lower-left and upper-right coordinates ' 'should be specified') + + # For cell domains, try to compute bounding box and make sure + # user-specified one is valid + if self.domain_type == 'cell': + for c in domains: + if c.region is None: + continue + ll, ur = c.region.bounding_box + if np.any(np.isinf(ll)) or np.any(np.isinf(ur)): + continue + if (np.any(np.asarray(lower_left) > ll) or + np.any(np.asarray(upper_right) < ur)): + warn("Specified bounding box is smaller than computed " + "bounding box for cell {}. Volume calculation may " + "be incorrect!".format(c.id)) + + self.lower_left = lower_left self.upper_right = upper_right else: if self.domain_type == 'cell': From 1cfa392bb0580b584643927fb3e57f43f28b9f12 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 15 Aug 2016 18:04:22 -0500 Subject: [PATCH 283/417] Reject external source only if 95% of sites are rejected --- src/constants.F90 | 3 ++- src/source.F90 | 23 +++++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/constants.F90 b/src/constants.F90 index 0a60005532..fca45d1458 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -54,7 +54,8 @@ module constants ! Maximum number of external source spatial resamples to encounter before an ! error is thrown. - integer, parameter :: MAX_EXTSRC_RESAMPLES = 10000 + integer, parameter :: EXTSRC_REJECT_THRESHOLD = 10000 + real(8), parameter :: EXTSRC_REJECT_FRACTION = 0.05 ! ============================================================================ ! PHYSICAL CONSTANTS diff --git a/src/source.F90 b/src/source.F90 index 194c8c6add..fad9ae46af 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -107,7 +107,8 @@ contains real(8) :: r(3) ! sampled coordinates logical :: found ! Does the source particle exist within geometry? type(Particle) :: p ! Temporary particle for using find_cell - integer, save :: num_resamples = 0 ! Number of resamples encountered + integer, save :: n_sample = 0 ! Number of samples + integer, save :: n_reject = 0 ! Number of samples rejected ! Set weight to one by default site % wgt = ONE @@ -143,13 +144,6 @@ contains ! Now search to see if location exists in geometry call find_cell(p, found) - if (.not. found) then - num_resamples = num_resamples + 1 - if (num_resamples == MAX_EXTSRC_RESAMPLES) then - call fatal_error("Maximum number of external source spatial & - &resamples reached!") - end if - end if ! Check if spatial site is in fissionable material select type (space => external_source(i) % space) @@ -162,8 +156,21 @@ contains end if end if end select + + ! Check for rejection + if (.not. found) then + n_reject = n_reject + 1 + if (n_reject >= EXTSRC_REJECT_THRESHOLD .and. & + real(n_sample, 8)/n_reject <= EXTSRC_REJECT_FRACTION) then + call fatal_error("More than 95% of external source sites sampled & + &were rejected. Please check your external source definition.") + end if + end if end do + ! Increment number of samples + n_sample = n_sample + 1 + call p % clear() ! Sample angle From 8474a9c71b909a599f3e9e9f3fbb4f6fa2f521f8 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 15 Aug 2016 18:12:55 -0500 Subject: [PATCH 284/417] Update documentation regarding CC environment variable --- docs/source/usersguide/install.rst | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/source/usersguide/install.rst b/docs/source/usersguide/install.rst index 1a0569148b..457c5efd8f 100644 --- a/docs/source/usersguide/install.rst +++ b/docs/source/usersguide/install.rst @@ -204,20 +204,22 @@ should be used: Compiling with MPI ++++++++++++++++++ -To compile with MPI, set the :envvar:`FC` environment variable to the path to -the MPI Fortran wrapper. For example, in a bash shell: +To compile with MPI, set the :envvar:`FC` and :envvar:`CC` environment variables +to the path to the MPI Fortran and C wrappers, respectively. For example, in a +bash shell: .. code-block:: sh export FC=mpif90 + export CC=mpicc cmake /path/to/openmc -Note that in many shells, an environment variable can be set for a single -command, i.e. +Note that in many shells, environment variables can be set for a single command, +i.e. .. code-block:: sh - FC=mpif90 cmake /path/to/openmc + FC=mpif90 CC=mpicc cmake /path/to/openmc Selecting HDF5 Installation +++++++++++++++++++++++++++ @@ -343,7 +345,7 @@ compiler, it is necessary to specify that all objects be compiled with the .. code-block:: sh mkdir build && cd build - FC=ifort FFLAGS=-mmic cmake -Dopenmp=on .. + FC=ifort CC=icc FFLAGS=-mmic cmake -Dopenmp=on .. make Note that unless an HDF5 build for the Intel Xeon Phi is already on your target From 6cd569fdead72a3fb1f9acf61256eec22ceccaf8 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 15 Aug 2016 21:15:40 -0500 Subject: [PATCH 285/417] Add SiO2 to list of recognized S(a,b) tables --- openmc/data/thermal.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index cd44f21f95..be35da517b 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -33,6 +33,7 @@ _THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27', 'orthod': 'c_ortho_D', 'dortho': 'c_ortho_D', 'orthoh': 'c_ortho_H', 'hortho': 'c_ortho_H', 'ouo2': 'c_O_in_UO2', 'o2-u': 'c_O_in_UO2', 'o2/u': 'c_O_in_UO2', + 'sio2': 'c_SiO2', 'parad': 'c_para_D', 'dpara': 'c_para_D', 'parah': 'c_para_H', 'hpara': 'c_para_H', 'sch4': 'c_solid_CH4', 'smeth': 'c_solid_CH4', From 6be762858e14b9e1db69cf1366fbde004dc4cd51 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 16 Aug 2016 09:33:26 -0500 Subject: [PATCH 286/417] Allow estimator to be set for mgxs.Library --- openmc/mgxs/library.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index ee11d0ef64..5685681e43 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -11,6 +11,7 @@ import numpy as np import openmc import openmc.mgxs import openmc.checkvalue as cv +from openmc.tallies import ESTIMATOR_TYPES if sys.version_info[0] >= 3: @@ -39,7 +40,7 @@ class Library(object): mgxs_types : Iterable of str The types of cross sections in the library (e.g., ['total', 'scatter']) name : str, optional - Name of the multi-group cross section. library Used as a label to + Name of the multi-group cross section library. Used as a label to identify tallies in OpenMC 'tallies.xml' file. Attributes @@ -64,6 +65,9 @@ class Library(object): The highest legendre moment in the scattering matrices (default is 0) energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation + estimator : str or None + The tally estimator used to compute multi-group cross sections. If None, + the default for each MGXS type is used. tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to compute the cross section @@ -102,6 +106,7 @@ class Library(object): self._sp_filename = None self._keff = None self._sparse = False + self._estimator = None self.name = name self.openmc_geometry = openmc_geometry @@ -206,6 +211,10 @@ class Library(object): def tally_trigger(self): return self._tally_trigger + @property + def estimator(self): + return self._estimator + @property def num_groups(self): return self.energy_groups.num_groups @@ -327,6 +336,11 @@ class Library(object): cv.check_type('tally trigger', tally_trigger, openmc.Trigger) self._tally_trigger = tally_trigger + @estimator.setter + def estimator(self, estimator): + cv.check_value('estimator', estimator, ESTIMATOR_TYPES) + self._estimator = estimator + @sparse.setter def sparse(self, sparse): """Convert tally data from NumPy arrays to SciPy list of lists (LIL) @@ -368,9 +382,11 @@ class Library(object): mgxs.domain_type = self.domain_type mgxs.energy_groups = self.energy_groups mgxs.by_nuclide = self.by_nuclide + if self.estimator is not None: + mgxs.estimator = self.estimator # If a tally trigger was specified, add it to the MGXS - if self.tally_trigger: + if self.tally_trigger is not None: mgxs.tally_trigger = self.tally_trigger # Specify whether to use a transport ('P0') correction From e122535ddc3d672efd8d5b68a5263629273e14ae Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 16 Aug 2016 16:47:50 -0400 Subject: [PATCH 287/417] fixed issue in tally.F90 and updated mdgxs-part-ii.ipynb --- .../pythonapi/examples/mdgxs-part-ii.ipynb | 106 ++++++++---------- src/mesh.F90 | 22 ++-- src/tally.F90 | 14 ++- 3 files changed, 63 insertions(+), 79 deletions(-) diff --git a/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb index 3dea15c501..ee652bc1f4 100644 --- a/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mdgxs-part-ii.ipynb @@ -456,7 +456,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -607,8 +607,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", - " Git SHA1: c21ceb0aea4abc243b84106576c4f9010f608d0b\n", - " Date/Time: 2016-08-11 08:25:23\n", + " Git SHA1: 2636be6779b4c821dc6fb7a49de391fecb471358\n", + " Date/Time: 2016-08-16 16:45:50\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -713,20 +713,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7200E-01 seconds\n", - " Reading cross sections = 3.6100E-01 seconds\n", - " Total time in simulation = 7.5373E+01 seconds\n", - " Time in transport only = 7.5119E+01 seconds\n", - " Time in inactive batches = 5.1640E+00 seconds\n", - " Time in active batches = 7.0209E+01 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 2.1900E-01 seconds\n", - " Total time for finalization = 7.0000E-03 seconds\n", - " Total time elapsed = 7.5973E+01 seconds\n", - " Calculation Rate (inactive) = 4841.21 neutrons/second\n", - " Calculation Rate (active) = 1424.32 neutrons/second\n", + " Total time for initialization = 4.3700E-01 seconds\n", + " Reading cross sections = 2.3700E-01 seconds\n", + " Total time in simulation = 6.7426E+01 seconds\n", + " Time in transport only = 6.7172E+01 seconds\n", + " Time in inactive batches = 4.8900E+00 seconds\n", + " Time in active batches = 6.2536E+01 seconds\n", + " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Sampling source sites = 7.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 2.0100E-01 seconds\n", + " Total time for finalization = 6.0000E-03 seconds\n", + " Total time elapsed = 6.7893E+01 seconds\n", + " Calculation Rate (inactive) = 5112.47 neutrons/second\n", + " Calculation Rate (active) = 1599.08 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -827,24 +827,6 @@ "collapsed": false }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1944: RuntimeWarning: invalid value encountered in true_divide\n", - " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", - "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1945: RuntimeWarning: invalid value encountered in true_divide\n", - " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n", - "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1946: RuntimeWarning: divide by zero encountered in true_divide\n", - " new_tally._mean = data['self']['mean'] / data['other']['mean']\n", - "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1946: RuntimeWarning: invalid value encountered in true_divide\n", - " new_tally._mean = data['self']['mean'] / data['other']['mean']\n", - "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1938: RuntimeWarning: invalid value encountered in true_divide\n", - " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", - "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1939: RuntimeWarning: invalid value encountered in true_divide\n", - " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n" - ] - }, { "data": { "text/html": [ @@ -947,8 +929,8 @@ " 1\n", " total\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 0.006642\n", - " 0.001718\n", + " 0.011466\n", + " 0.004394\n", " \n", " \n", " 7\n", @@ -958,8 +940,8 @@ " 2\n", " total\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 0.001157\n", - " 0.000075\n", + " 0.000960\n", + " 0.000081\n", " \n", " \n", " 8\n", @@ -969,8 +951,8 @@ " 3\n", " total\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 0.006708\n", - " 0.000578\n", + " 0.007407\n", + " 0.000779\n", " \n", " \n", " 9\n", @@ -980,8 +962,8 @@ " 4\n", " total\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 0.076515\n", - " 0.005032\n", + " 0.083327\n", + " 0.005229\n", " \n", " \n", "\n", @@ -1009,10 +991,10 @@ "3 (((delayed-nu-fission / nu-fission) * (delayed... 0.074721 0.005119 \n", "4 (((delayed-nu-fission / nu-fission) * (delayed... 0.034106 0.002235 \n", "5 (((delayed-nu-fission / nu-fission) * (delayed... 0.002500 0.000358 \n", - "6 (((delayed-nu-fission / nu-fission) * (delayed... 0.006642 0.001718 \n", - "7 (((delayed-nu-fission / nu-fission) * (delayed... 0.001157 0.000075 \n", - "8 (((delayed-nu-fission / nu-fission) * (delayed... 0.006708 0.000578 \n", - "9 (((delayed-nu-fission / nu-fission) * (delayed... 0.076515 0.005032 " + "6 (((delayed-nu-fission / nu-fission) * (delayed... 0.011466 0.004394 \n", + "7 (((delayed-nu-fission / nu-fission) * (delayed... 0.000960 0.000081 \n", + "8 (((delayed-nu-fission / nu-fission) * (delayed... 0.007407 0.000779 \n", + "9 (((delayed-nu-fission / nu-fission) * (delayed... 0.083327 0.005229 " ] }, "execution_count": 22, @@ -1167,8 +1149,8 @@ " x-min\n", " total\n", " current\n", - " 0.00000\n", - " 0.000000\n", + " 0.03039\n", + " 0.000670\n", " \n", " \n", " 7\n", @@ -1178,8 +1160,8 @@ " x-max\n", " total\n", " current\n", - " 0.03134\n", - " 0.000669\n", + " 0.03067\n", + " 0.000567\n", " \n", " \n", " 8\n", @@ -1189,8 +1171,8 @@ " y-min\n", " total\n", " current\n", - " 0.03055\n", - " 0.000605\n", + " 0.00000\n", + " 0.000000\n", " \n", " \n", " 9\n", @@ -1200,8 +1182,8 @@ " y-max\n", " total\n", " current\n", - " 0.03113\n", - " 0.000634\n", + " 0.03082\n", + " 0.000617\n", " \n", " \n", "\n", @@ -1216,10 +1198,10 @@ "3 1 1 1 y-max total current 0.03091 0.000636\n", "4 1 1 1 z-min total current 0.00000 0.000000\n", "5 1 1 1 z-max total current 0.00000 0.000000\n", - "6 1 2 1 x-min total current 0.00000 0.000000\n", - "7 1 2 1 x-max total current 0.03134 0.000669\n", - "8 1 2 1 y-min total current 0.03055 0.000605\n", - "9 1 2 1 y-max total current 0.03113 0.000634" + "6 1 2 1 x-min total current 0.03039 0.000670\n", + "7 1 2 1 x-max total current 0.03067 0.000567\n", + "8 1 2 1 y-min total current 0.00000 0.000000\n", + "9 1 2 1 y-max total current 0.03082 0.000617" ] }, "execution_count": 23, @@ -1255,7 +1237,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -1264,9 +1246,9 @@ }, { "data": { - "image/png": "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\nDmZmZmZmZmbW5TzgYGZmZmZmZmZdzgMOZmZmZmZmZtblPOBgZmZmZmZmZl3OAw5mZmZmZmZm1uU8\n4GBmZmZmZmZmXc4DDmZmZmZmZmbW5TzgYGZmZmZmZmZdzgMOZmZmZmZmZtblPOBgZmZmZmZmZl3O\nAw5mZmZmZmZm1uU84GBmZmZmZmZmXc4DDusJSZMlnZlx2ycl7d/dfapqcz9JT/Vkm2ZmPck5bGZW\nPmexWXPxgEMdkuZLelXSy5Kel3S9pJ0y1jpIaouyO9CI9N91ZdZfYmbWGOdwt1gnc7jqZ+FlSTeV\n3Sez3sJZ3C3WySwGkHSKpCck/UvSo5KGlt0na24ecKgvgEMiYnNgB+AfwIUZa8U6HCTNTlJrCW32\nAS4A7u7pts16Medwkyohh1f9LKSP0T3cvllv5ixuUj2dxZI+C3wGOCgiNgU+DPxfT/bB1j0ecOiY\nACLidWAqsOuqFVJfSedKWiDpGUk/krShpI2BG4EdJf0zHQ3uL+ldkv4iaamkpyVdmP4RW6xj0h6S\n7pP0kqQpwEZV6z8s6YG0vTskvb3Ofur2S9JFks6t2n6apC+mz3eQNFXSPyT9XdIXKrbbSNLPJb0g\n6RHgXZ28n1GS5qb9+KGkGZKOTdeNS9/D+ZKeB8Yr8Y101P3ZtK3N0u3XGk2vnDInabyk30iakv77\n/FXS7p185F8GbgbmdrKdmXUt57BzeNUuOllvZt3HWdzLs1iSgG8CX4qIxwAi4smIeLGj92PmAYcM\n0sD8BHBXxeJzgKHA7ul/dwS+GRGvAgcBiyNis/SbmGeBNuC/gH7A3sD+wIkF+7MBcA1wWbq/3wAf\nq1i/JzAJOD5d/xNgWlpXraN+XQaMrdjv1un6K9PQuR54gGS0+wDgFEkfSjefALwxfRwIjOvg/Wyd\nvofTgK2Bx9K+VHo38DdgW+DbJKOrnwL2A94EbAb8sGL7zkbTDwV+DWwF/Aq4VnVGiSUNTts7Ex/w\nmpXCObxqv70yh1NXSFoi6aYMgxNm1g2cxav22xuzeED6eLukhenAyoRO9m0GEeFHjQfwJPAy8AKw\nHFgE7Fax/l/AGyte7w08kT7fD1jYyf5PAa4u2Lf3AYuqlt0JnJk+vxiYWLV+LvC+ive2f5Z+AY8C\nB6TPTwJuSJ+/G5hfVXs6MCl9/nfgQxXrjq/3mQCfBO6sWrYQODZ9Pq5GW7cC/1nx+i3AMpJBtLU+\n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\neuPVxnRsyZiOLXtfXzzliVq7DchEZX2NMUvHOIJsgsgeRwPXR0Q38Likm4E3A0tqfjgzsyGkH+Zw\nMDOzJjmL81MaejdwJ5Ci68FaP07W176qu9y5StTd+sY3ljrXL+I9hWu+1H5yqXM92r1P8XPFfxWu\nmfqtEwvXAHzg5FmFa8ZFuZVVfhUdxWs+/P5S5/rsles1HDZ0/kFnFK55501zCtcAfDr+t3DNR9uu\nISKK/Q+ZSIpbYkyuff9R89c7T/rL/31kk0b+mWy82VEV3b2QdALwhog4QdJE4PCI6Jk08jLgLWRD\nKW4ARkdESPoh8ERETKpxzYcCp0XEARXbTgX2iIjjJW2ermNCRNyb/9vYsJTJYYB2rWq803rnKpff\n83b+h8I1v4x3lzrXf7SfX7hmzROvKH6erc5uvFMN519SPEfGHzez1LneyW8L18yOw0qd6zefKP7n\n5umXTm68U5WvvH9K4RqAg352beGa4+KSwjWv4U0c2HZWqSwuksNQO4utdUrdE5fI4excxbO4TA5D\nuSz+j/avFa5Z88SrCtcAfHar4vdzF15yaqlzlcniMjkM5bJ4sHIYymVxmRyGclncynvijY17OJhZ\nbkNtvFqOMWYTWHc4BcB3gGmSehoYpr6cGxvM7OXFQyrMzFrPWZyfGxzMLLcm1xzu9/FqjcaYRcR6\nM5tHxPP1zmFmNtQ1m8NmZtY8Z3F+bnAws9w8Xs3MrLWcw2Zmrecszs8NDmaWW7Prv5uZWXOcw2Zm\nrecszs/flJnl5vFqZmat5Rw2M2s9Z3F+bnAws9wcrmZmreUcNjNrPWdxfm5wMLPcPF7NzKy1nMNm\nZq3nLM7PDQ5mlpvHq5mZtZZz2Mys9ZzF+fmbMrPc3H3MzKy1nMNmZq3nLM7PDQ5mltsqrzlsZtZS\nzmEzs9ZzFufnBgczy83dx8zMWss5bGbWes7i/PxNmVlu7j5mZtZazmEzs9ZzFufnBgczy83hambW\nWs5hM7PWcxbnNygNDjfv8qZC+4+PGaXOc7WOKlzTdt0fSp1Ls6NwTXeXSp1r2zX3FK5ZOfPvC9d0\nn1S4BID2X36ocM0XDvxyqXN9QV8rXNM2rtz3fsH3Ti9c0/3L4uc5jVuLFwG/VkeJqmtKnauHw3XD\nddsu+xSu+UBcXbhmto4sXAPQNv++wjW6pHgOQ7ks3p6HCtc8celOhWsAuo8rXtP+mwmlzvXl/b9Y\n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\n+8b/K1zTdUrx/wY/ru8XrgH4Il8uXLOHlhERxS+S7P/ltuXVoxVq695hi5rnSctiXsDaZTG/Urn2\nu6RNyVaQeBNp7feIWJJqzyBbxWI1a5fFfDvwG+AesiEWAZyZllRD0jTgloi4uOo6jgbOBLqBn0bE\nGcW+jQ1LmRwG0CXFs6fr7aX+82KbrurOLo1t2fZsqXM9pNcXrml/sPj3d96unylcA/BZ/W/hmrZa\nzW05aFLx/Onq+mSpc02Pmqss9ukT515euKbrtHL/DR5b4ns/my8WrtmUA3m1ZpXK4iI5DPWz2Fqj\n1D1xiRyGcllcJoehXBYPVg5DuSwuk8NQLovL5DCUy+LBymEol8VlchjgLM4qXLOrHm/pPfHGxEMq\nzCy37q7mIqO/136PiJuh/jTBEXFsne0zgBm5L9zMbIhoNofNzKx5zuL8/E2ZWX7uGmZm1lrOYTOz\n1nMW5+YGBzPLz+FqZtZazmEzs9ZzFufmBgczy2/NRj0Ezcys9ZzDZmat5yzOzQ0OZpbfmlZfgJnZ\nRs45bGbWes7i3Lwsppnl92LOh5mZDYy8OewsNjMbOE3msKRDJS2SdL+k02q8P1zSTEmLJd0iaVTF\ne2ek7QslHdLomJKmSXpQ0l2S5knaJ23fQ9LvJb0oaVLF/ptKui3tf4+k3gney3APBzPLb3WrL8DM\nbCPnHDYza70mslhSG3AhcBDwGDBX0jURsahit+OBpyJitKQJwLnAREl7ka3oticwErhR0mhADY55\nSkRcXXUpTwL/DhxeuTEiVkk6ICJekNQO3Czp5xFxe5nP6x4OZpZfV86HmZkNjLw57Cw2Mxs4zeXw\nOGBxRDwcEauBmcD4qn3GA5em57OAA9Pzw4CZEbEmIpYAi9PxGh1zvb/3R8QTEXEnNQaIRMQL6emm\nZJ0Uou6nacANDmaW35qcDzMzGxh5c9hZbGY2cJrL4R2BpRWvl6VtNfeJiC7gGUlb16h9NG1rdMyz\nJc2XdJ6kTRp9PEltku4ClgM3RMTcRjX1uMHBzPLzTa6ZWWv1Q4PDAI0dnipphaQ/VB3r3LTvfElX\nStoybd8vjQ/ueRyeto+UdJOkBWns8EllvyozswHTXA7XWuKiugdBvX2Kbgc4PSL2BPYDtgHWy/31\nCiO6I+JNZMM23pKGcpTiORzMLD83JpiZtVaTOTwQY4cjIoBpwLeBH1adcg7ZzW63pK8AZ6THPcC+\n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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABBwAAAIhCAYAAADtr6lMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcHFW5//HPdyYE2beAQcIewnrZQa+CGUE2RQLIrhAB\nwXu5XHC5Pxa3JLggeFUUxSsYEIQYEJBNNhHDvoQ1QAKJaIAQiEBYRDQkk+f3R9UkTad7uk71zPTA\nfN+vV73Sfeo8daorydM1Z06do4jAzMzMzMzMzKwntbX6BMzMzMzMzMzsvccdDmZmZmZmZmbW49zh\nYGZmZmZmZmY9zh0OZmZmZmZmZtbj3OFgZmZmZmZmZj3OHQ5mZmZmZmZm1uPc4fAeIekCSacVrPtX\nSbv09jlVtTlS0nN92aaZWV9yHjYzaz3nYrP+xR0OdUiaKektSW9IekXStZLWKhjrRFJbtPoEypB0\nmqQpkuZL+marz8dsoHAe7hXvujwsaXVJEyQ9L+lVSXdI2rHV52U2UDgX94p3XS4GkHSrpL9Jek3S\nw5L2afU5Wf/nDof6AvhkRKwIrAn8DTi7YKx4lyaSdwNJ7X3c5Azg/wHX9XG7ZgOd83A/1cd5eHng\nfmAbYFXgIuD3kpbtw3MwG8ici/upFtwTnwAMjYiVgS8AF0t6fx+fg73LuMOhewKIiLeBy4HNFu2Q\nBkv6X0nPSHpB0s8lLZ3fAF0PfEDS3/Pe4KGSdpB0d/7bmeclnS1pUOkTk7aR9KCk1yVNBN5XtX/v\nvOfxVUl3Svq3Osepe16Sfirpf6vqXyPphPz1mpIuz3s6n5b03xX13ifpV5LmSnoc2KHB59ld0pP5\nefxM0iRJR+X7Ruef4YeSXgHGKPP1vNf9xbytFfL6S/SmVw6ZkzRG0m8lTcz/fh6QtGW9c4uIX0fE\nTcCb3X0GM+sVzsMDPA9HxF8j4qyI+FtkzgMGAxt393nMrEc5Fw/wXAwQEY9HxMKKokHA2t19HjN3\nOBSQJ8yDgXsqis8EhgNb5n9+APhmRLwF7AXMjogVImLFiHgR6AS+SPbbmX8HdgGOK3k+SwG/Ay7M\nj/db4NMV+7cFxgPH5Pt/AVyTx1Xr7rwuBA6pOO5q+f4JkgRcCzxM1tu9K3CipN3y6mOB9fNtD2B0\nN59ntfwznAysBjyVn0ulDwJ/BlYHvgMcCRwBjAQ2AFYAflZRv1Fv+j7ApcAqwG+AOyXNkTSlQVxD\n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\n6TKyH/TnA8flK1QgaQLQAawm6VlgTERcIGlfskknhwDXSXokIvYC1iCbzL2TbC6Iw/PjrAV8FZgm\n6WGyRzZ+GhHnAydI2idvey7wuUaf1x0OZlZYJ77RNTNrJedhM7PWazYXR8SNwMZVZWMqXs8jW/6y\nVuzpwOk1yg+rU/8q4Koa5c8Am9Qof546y9hHxFfJOiMKc4eDmRW2wDe6ZmYt5TxsZtZ6zsXFucPB\nzArrdMowM2sp52Ezs9ZzLi7OV8rMCvNQXjOz1nIeNjNrPefi4tzhYGaFvc3gVp+CmdmA5jxsZtZ6\nzsXFucPBzArz82pmZq3lPGxm1nrOxcW5w8HMCvPzamZmreU8bGbWes7FxflKmVlhfl7NzKy1nIfN\nzFrPubg4dziYWWFOrmZmreU8bGbWes7FxbnDwcwK8/NqZmat5TxsZtZ6zsXFucPBzArz82pmZq3l\nPGxm1nrOxcX1yZW6+gN7J9UftfbOpdrRWpEcs9+s35Vq6wxOTo75QdtXSrW1zvTpyTFvx6rJMcts\nmn79AIZd90pyzCkfHlOqrYN1aXLM0d8aX6qtwcxLjmnrTL+G/xqzSnIMgD5XKqwpHj727jWPpZNj\nxiwYlxwz9wdrJccAMCw9ZIcf3l6qqb9r+eSY51ZbOzlmP8p9v7x59+rJMUN2f65UW3/Yap/kmGMe\n/Umpth7VVskxZX6DdMinL0iOAfjPN85Ljpm3Zno7bU2mUefhd7cXlfaP5oLYulQ7133twPSgfUs1\nxUdPuik5psySgne8NTI5BuCIZS9Mjnn9mqGl2hpyUHouPn/Uf5Vq65Sr0++l79cOyTGTSY8B2P/g\nS5Jjdtadpdp6ec3lSkT9o1RbXZyLi3PXjJkV5uRqZtZazsNmZq3nXFycOxzMrLB5JX4jYWZmPcd5\n2Mys9ZyLi3OHg5kV5ufVzMxay3nYzKz1nIuLa2v1CZjZu0cn7YU2MzPrHUXzcHe5WNKekp6UNF3S\nEpNSSRosaaKkGZLukbROxb5T8/JpknavKB8vaY6kKVXHOjOv+4ikKyStmJevKulWSX+X9JOqmEMl\nTcljrpeUPjGVmVkv8j1xce5wMLPCnFzNzFqr2Q4HSW3AT4E9gM2BQyVtUlXtaGBuRGwEnAWcmcdu\nBhwEbArsBZwjSXnMBfkxq90MbB4RWwMzgFPz8n8BXwfeMaO2pPa8zZF5zGPA8cWujplZ3/A9cXHu\ncDCzwhbQXmgzM7PeUTQPd5OLdwRmRMQzETEfmAiMqqozCuia2v9yYJf89T7AxIhYEBEzyToQdgSI\niDuBV6sbi4hbImJh/vZe8jVpIuKtiLgbllgSqqsDY4W8M2NFYHb3V8XMrG81e0/cxyPNDpD0uKRO\nSdtWlC8l6fx8RNnDkkZW7Ns2L58u6ayK8lUk3SzpKUk3SVqp0bVyh4OZFdbJoEKbmZn1jqJ5uJtc\nvBZQuXbfrLysZp2I6ARezx9rqI59vkZsd44CbuiuQkQsAI4jG9kwi2w0Rbn1rc3MekkzebgFI80e\nA/YDbqsqPwaIiNgS2B34QcW+nwOfj4gRwAhJXcc9BbglIjYGbmXxqLW6/JOBmRXmoWFmZq3VXR6e\nOuklpk56udEhVKMsCtYpElu7UelrwPyImNCg3iDgP4GtImKmpLOBrwLfKdKOmVlfaPKeeNFIMwBJ\nXSPNnqyoMwoYk7++HDg7f71opBkwU1LXSLP7IuJOSetWNxYRT+XtVOfwzYA/5nVekvSapO3JOntX\niIj783oXAfsCN+Xn1TUS4kJgElknRF3ucDCzwnqiwyHv1X0AmBUR+zR9QDOzAaS7PLxxx1A27hi6\n6P0V456qVW0WsE7F+2Es+cjCc8DawOx8ToWVIuJVSbPy8u5ilyBpNPAJFj+a0Z2tyX7jNjN/fxmw\nxHBjM7NWavKeuNZIsx3r1YmITkmVI83uqaiXOtKs0qPAKEmXkn0vbEeW4yM/p8rz62rj/RExJz+v\nFyWt3qgRdziYWWHzWLonDnMiMJXsuVwzM0vQA3l4MjA8/y3YC8AhwKFVda4FRgP3AQeSDZsFuAa4\nRNKPyG4+hwP3V8SJqlEQkvYETgI+GhHV8zVUxnV5HthM0moR8QqwGzAt6ROamfWyJnNxS0aa1XA+\n2aMZk4FngLuABT3chjsczKy4Zkc4SBpG9luu7wBf7olzMjMbSJrNw/lvyo4nWz2iDRgfEdMkjQMm\nR8R1ZHMm/DofqvsKWacEETFV0mVkncbzgeMiIgAkTQA6gNUkPQuMiYgLyIYBDwb+kI/mvTcijstj\n/gqsAAyWNArYPSKezM/lDklvk90Ef66pD21m1sPq5eKnJr3IU5PmNArv85FmteRz9Cy6H5d0F9lk\nwK9108aLkt4fEXMkDQX+1qgddziYWWE98EjFj4D/BzSc0dbMzJbUE4+2RcSNwMZVZWMqXs8jm5Ss\nVuzpwOk1yg+rU3+jbs5j/Trl5wLn1oszM2u1erl4eMdaDO9Y/ITDdeOm1KrWpyPNqizaJ2kZQBHx\nlqTdyObZeTLf94akHfNzPQL4SUX7nwPOyM/v6m7aAvqow+G3bQcn1b+48/pyDWlh4zpV/nJYudEh\n+33/xuSY/T/w+1JtXahDkmO24PH0hp5Mv34AbJ6+2Mk2TzxcqqnvxrjkmAt1Xqm2/hbvT46JL6Rf\nw3/MK/ff8KClLysRdUCptrrUS67TJ73AjEkvdBsr6ZPAnIh4RFIH3SdD62GXXPP55JjPfir9/85F\nJx2THAPQdmb6P4cH7tq5VFudH0lvq+3R15NjNKHc98vCM9Jj2n6yduNKNWz7yJ3JMb/ghFJtbRd3\nJcc8csmHk2Me+MxOyTEAKw3aOznmoGXT8/DmrEM271Y5nrz33W38g8cn1T922x+Xamfhd9Nj2m4v\n97V8x327N65UpfODJfLwq/9IjgHQj9KHvi/8WqmmaPtuei7e6ao/lGrru6TfE+8ctyTH/OmuXZNj\noNx37eqdHaXa+lz7r0pEfbNUW12aycV9PdJM0r5ko82GANdJeiQi9gLWAG6S1En2ONvhFad5HPAr\n4H3A9XlHNWQdDZdJOgp4lqwzpFse4WBmhdVbT3iDjmFs0DFs0fsbxtXsUPoIsI+kTwDLkK2xflFE\nHNELp2pm9p7U3bruZmbWN5rNxX080uwq4Koa5c8A1ctxdu17EPi3GuVzgY/XiqnHHQ5mVlg367o3\nFBFfJVvaDEkjga+4s8HMLE0zedjMzHqGc3FxvlJmVpiH8pqZtZbzsJlZ6zkXF+cOBzMrrKeSa0Tc\nBtzWIwczMxtAfJNrZtZ6zsXFucPBzArrgfXfzcysCc7DZmat51xcnDsczKww9+aambWW87CZWes5\nFxfnDgczK8zJ1cystZyHzcxaz7m4OHc4mFlhTq5mZq3lPGxm1nrOxcW5w8HMCvP672ZmreU8bGbW\nes7FxbnDwcwK85rDZmat5TxsZtZ6zsXF+UqZWWEePmZm1lrOw2ZmredcXJw7HMysMCdXM7PWch42\nM2s95+Li+qTD4WjGJ9V/rW3lUu0cEeclx6x/yYdLtfUYGybHbDmp3D/M0TdFcsxTp6+T3tCdJf/j\n7JceMkGHlmpq51glOaaDwaXa+jB3J8fMf+355Jjlbkn/+wV4+MCtS8U1w2sOv3sdss8FyTEPsl1y\nTPt9ySGZEv+04sC2Uk21r78wOWbdu6Ynx2yw1Z+TYwDaf/+J5Jhj/vvsUm2dt/IJyTHtR5dqihj2\nkeSY87+c/l3RftuE5BiABY8MTY4Z96X0dobssUd6UAXn4Xe3I7b9v6T6D7B9qXbaZ85PD/p7uful\nOD49F7evnp6Hh/5xdnIMwL997fHkmPabPlWqrc+cmvYzD8AlH/p8qbbaS6SSGPbx5Jjzjy13z95+\nX3ouXvCXEj+/AOM+UyqsKc7FxXmEg5kV5t5cM7PWch42M2s95+Li3OFgZoU5uZqZtZbzsJlZ6zkX\nF+cOBzMrzMnVzKy1nIfNzFrPubg4dziYWWFec9jMrLWch83MWs+5uDh3OJhZYV5z2MystZyHzcxa\nz7m4uHJTfJvZgNRJe6HNzMx6R9E87FxsZtZ7ms3DkvaU9KSk6ZJOrrF/sKSJkmZIukfSOhX7Ts3L\np0navaJ8vKQ5kqZUHesASY9L6pS0bUX5IEm/kjRF0hOSTsnLR0h6WNJD+Z+vSzoh3zdG0qx830OS\n9mx0rdw1Y2aF+QbWzKy1nIfNzFqvmVwsqQ34KbArMBuYLOnqiHiyotrRwNyI2EjSwcCZwCGSNgMO\nAjYFhgG3SNooIgK4ADgbuKiqyceA/YBfVJUfCAyOiC0lLQNMlTQhIqYD21Sc6yzgyoq4H0bED4t+\nXnc4mFlhfl7NzKy1nIfNzFqvyVy8IzAjIp4BkDQRGAVUdjiMAsbkry8n60gA2AeYGBELgJmSZuTH\nuy8i7pS0bnVjEfFU3o6qdwHLSWoHlgXmAW9U1fk48HREzKooqz5Ot9zhYGaFvc3SrT4FM7MBzXnY\nzKz1mszFawHPVbyfRdZpULNORHTmjzWsmpffU1Hv+bysjMvJOjZeAJYBvhQRr1XVORj4TVXZf0k6\nHHgA+EpEvN5dI57DwcwK83PDZmat1RNzOPTxs8Nn5nUfkXSFpBXz8lUl3Srp75J+UhWzlKRfSHpK\n0lRJ+zVxyczMely9vPvypCf489jfLNrqqDVCIArWKRJb1I7AAmAosAHwP5LWW3QC0lJkIyp+WxFz\nDrBhRGwNvAg0fLTCIxzMrDAP5TUza61m83ALnh2+GTglIhZK+h5war79C/g6sEW+VfoaMCciNs7P\nedWmPrSZWQ+rl4tX6NiGFTq2WfT+mXGX1Ko2C1in4v0wsnxc6TlgbWB2/sjDShHxqqRZeXl3sUUd\nBtwYEQuBlyTdBWwPzMz37wU8GBEvdQVUvgbOA65t1IhHOJhZYZ0MKrTVImlpSffls90+JmlMzYpm\nZlZX0TzczZJti54djoj5QNezw5VGARfmry8HdslfL3p2OCJmAl3PDhMRdwKvVjcWEbfkN7MA95Ld\nHBMRb0XE3WTPDFc7Cji94hhz618RM7O+12QengwMl7SupMHAIcA1VXWuBUbnrw8Ebs1fX0PWATxY\n0vrAcOD+ijjR/RwLlfueJc/vkpYDPsQ755E4lKrHKSQNrXi7P/B4N20B7nAwswTNDOONiHnAxyJi\nG2BrYC9J1c+rmZlZN3rgkYpazw5XP//7jmeHgcpnhytjU58dPgq4obsKklbKX35b0oOSLpW0ekIb\nZma9rsl74k7geLIRYE+QdeROkzRO0t55tfHAkHxSyC8Cp+SxU4HLgKnA9cBx+SgzJE0A7gZGSHpW\n0pF5+b6SniPrULhOUlce/hmwgqTHgfuA8RHxeB6zDNmEkZWrUwCcmS+j+QgwEvhSo2vVJ49UjPzF\n/Y0rVdjzC78r1c5ofpUcc/FTx5Rqa+tjpyfHaI9yj9d0jk4fPvmht+9NjlnjI3OSYwD+fNCWyTGd\nfyw5JHSbxlWq/fKcz5Rq6vPfqjkEqnsvNa5SbZef/D49CJj9s+HJMc32MDY7P0NEvJW/XJos/5R9\n5swSXfVG9S8wGztuxZ8nx8zZ/v3JMQAjPpieU1c78ZVSbc2M9ZJjnvjM9skxO0+4PTkG4IpPfiI5\nZv99uv0Zrr6/p4fEj8eVamr5N45LjvkjuybHxF1Jk2cvMuerKzWuVOX8E9PubwBGsiy0rd24Yh09\nME9OS54dlvQ1YH5ETGhQdRDZKIg7IuIrkr4E/AA4okg7/d1v5h6WVP8bq32rVDuvrLdacsx26z1Y\nqq0NP/l0csxTMSI55povHJIcA/CZcxv9k1vSqXuc3rhSDbv84J7GlapNLtUU8cB3k2OGdqZfw6uX\nGABVTNyUnovfOrncnerPF/4lPahtvVJtdemBe+IbgY2rysZUvJ5H9ghbrdjTqRgFVlFeM8FExFXA\nVTXK/9FNG/8ElujsjYjkXOw5HMyssGaTa/7s8IPAhsDPIqLk16yZ2cDUXR7++6SHeHPSQ40O0efP\nDksaDXyCxY9m1BURr0j6R36DDNlkZUc1ijMz60ueJL24ht1ItWYdlrSKpJvz2YNvqhj+ZmbvYQto\nL7TVExEL80cqhgEfzCcgswKci80Mus/Dy3TswOpjv7Boq6NPnx2WtCdwErBP/hu7Wqp/FXqtpI/l\nr8a04kkAACAASURBVD9ONnS45ZyHzaxLs/fEA0mRcSsXAHtUlZ0C3JLPHnwr2WzDZvYe9zZL19xe\nmzSF2WPPX7Q1EhFvAJOAPXv7nN9DnIvNrG4errXV0tfPDpOtXLE88AdJD0k6p+tcJP2V7HGJ0XnM\nJvmuU4Cx+TPCnwG+0vyV6xHOw2YGFM/FVuCRioi4U9K6VcWjyCaJgGwW40nkX0Zm9t5Vb/jY0h0f\nYumODy16P3fc/y1RR9IQsud3X6+YiOZ7vXOm7z3OxWYGPTOMt4+fHd6om/NYv075syzObf2G87CZ\ndfEjFcWVncNhjYiYAxARL3r2YLOBocmhYWsCF+bzOLQBl0bE9T1yYgOXc7HZAOMhuv2O87DZAORc\nXJwnjTSzwrpZT7ihiHgM2LbnzsbMbOBpJg+bmVnPcC4uruyVmiPp/RExR9JQ4G/dVR577eLXHSOg\nY+P6dc2s50yaDpNm9NzxPHys3ymci+effsai1207fYT2nXfqi/MzM+Bfk+5j3qRsbsUpLNXUsZyH\n+52ke+LOMxY/jaKP7ETbTjv39vmZGfD2pHuYP+neHjuec3FxRTscqmcdvgb4HHAG2SzGV3cXPPZT\nZU7NzJrVMSLbupx2Q3PHc3JtudK5eKlTT+7VEzOz+t7X8UHe1/FBALZkWR477Uelj+U83HJN3RO3\nn+w5Jc1aYXDHvzO4498XvX/rtB83dTzn4uIadjjksw53AKtJehYYQzbR228lHQU8S7Zkkpm9x3Uu\ndHJtFediMwPn4VZyHjazLs7FxRVZpaLmrMNkM8yb2QCyYIGTa6s4F5sZOA+3kvOwmXVxLi7Os12Y\nWWFv/8vrCZuZtZLzsJlZ6zkXF+cOBzMrrNO9uWZmLeU8bGbWes7FxfVJh8P/HXtEUv0bzti/VDs6\nqTM55rj1XizV1ncmfTW9LZ1fqi2VWGVg7pi10ts5Pf36AcydvVxyzPOxaqm21tLLyTGff7KtVFs8\nosZ1ql2Rfg1vHV/u/G4/bof0oOMnl2qry4L5Tq7vVm92pi8N/0VOb1ypysvt6bkHoG3DEjnryijV\nVudW6f+320p8rH/GMulBwL6UmN318RL5CtDe6dew85oxpdr6BL9Ljplw4tHJMQtLzgPWPnVucsyC\nNUvkxKX24JL0qMVtOg+/q/1TqyTVPzp+Wqqdv7JJckzbqPQYAJ3zz+SYzrXS82Pb+5NDAP4/e3ce\nJ0dZ53H8882EyB1ukIQkaLiVS4yKKLOgnEJQQQK6RmERFxAUXA5lTaK4KAqLC+IqhggIRowLBGQh\nxmxQkCMC4UoC4UjCEC5JALlCjt/+UTVJp9M9U1U9M9XJfN+vV7/orqpfPU93hu/UPP1UFQ/H+3PX\n/IhzizV2Tf4s1hcK/i67Kv/fIkVyeOKJR+euAVj28/w1LQ8tLtTW20Py52Kj8xOcxdl5hoOZZbZs\nqSPDzKxMzmEzs/I5i7PzJ2Vm2Xn6mJlZuZzDZmblcxZn5gEHM8vO4WpmVi7nsJlZ+ZzFmXnAwcyy\nW1LsPHEzM+sizmEzs/I5izMreDU9M+uVlmR8mJlZ98iaw85iM7Pu02AOSzpI0ixJj0s6q8b6fpLG\nS5ot6S5JgyrWnZMunynpgIrlYyW9IOmhqn0dKekRSUsl7VmxvK+kX0l6SNKjks6uWDdH0oOSHpB0\nb8XyjSVNkvSYpNsk9e/so/KAg5ll93bGh5mZdY+sOewsNjPrPg3ksKQ+wKXAgcAuwDGSqm8Tczyw\nICK2Ay4GLkhrdwY+B+wEHAxcJql9usW4dJ/VHgY+DdxetfwooF9E7ArsBZxYMbCxDGiNiD0iYlhF\nzdnA5IjYAZgCnFP7Xa7gAQczy25xxoeZmXWPrDnsLDYz6z6N5fAwYHZEzI2IxcB4YHjVNsOBK9Pn\nE4D90ueHA+MjYklEzAFmp/sjIu4AFlY3FhGPRcRsoPo8kADWk9QCrAssAl5L14naYwWV/boSOKLu\nu0x5wMHMslua8WFmZt0jaw47i83Muk9jOTwAeKbidVu6rOY2EbEUeFXSJjVqn61Rm9UE4E3gOWAO\n8OOIeCVdF8BtkqZJOqGiZouIeCHt1/PA5p014otGmll2PifYzKxczmEzs/LVy+IHpsL0qZ1V17ri\nZGTcJkttVsNI3slWwKbAXyRNTmdO7B0Rz0vaHPijpJnpDIrcPOBgZtn5QNfMrFzOYTOz8tXL4ve3\nJo92vxpTa6s2YFDF64HA/KptngG2Aeanpzz0j4iFktrS5R3VZnUscGtELANeknQnybUc5qSzF4iI\nlyRdTzI4cQfwgqQtI+IFSVsBL3bWiE+pMLPsfGV0M7Ny+S4VZmblayyHpwFDJQ2W1A8YAUys2uYm\nYGT6/CiSCzSSbjcivYvFtsBQ4N6KOlF7FkTl+nbzSK8NIWk94MPALEnrSlq/YvkBwCMV7X8pfT4S\nuLGDtgDPcDCzPHwAa2ZWLuewmVn5GsjiiFgq6RRgEskEgLERMVPSGGBaRNwMjAWuljQbeJlkUIKI\nmCHpOmAGyWUpT4qIAJB0LdAKbCppHjAqIsZJOgK4BNgMuFnS9Ig4GPgpME5S+2DC2Ih4JB3IuF5S\nkIwXXBMRk9JtfghcJ+k4kgGLozp7vx5wMLPsfKBrZlYu57CZWfkazOKIuBXYoWrZqIrni0huf1mr\n9nzg/BrLj62z/Q3ADTWWv1GrjYh4Gti9zr4WAJ+ota6eHhlwOHbZb3Jt//cz1yvUzteW36Eju8ve\ntcpnn8l6vJm75rV1Wwq1teHF+Wv+dP7euWs+8UKx/m3yrfzXKYnT3yrU1uY7tuWumbttR7OK6lv3\nB/nf1/u4L3fNwcd/N3cN0PFkqbqmFWurXbF/NmsCfVrz/zy/9uAGuWtaWi7PXQPApid0vk2V3Xf9\na6GmWlpm56754JL35K75/S5fyF0D0HJogaILCjVFnJW/5mxqno/aqVf4eO6a+Ef+Mz9bfrIsdw3A\npacdl7vmrUX5g7ilT7HfSSsabazcytXns/myOKYU+3lpacl/PMJuHyjU1t5b35m7pqXl6dw1uy7Z\nNXcNwKT9qu822LmWfQs1BWfkL4n/KNbUBZyau+YVPp27JlqKnYHf8of8WXzFoccUamvZG4XKGuMs\nzswzHMwsuwZusyZpIHAVyZVwlwKXR8R/dU3HzMx6Cd/u0sysfM7izHzRSDPLrrEL5CwBTo+InYGP\nACdL2rGbe2xmtmbpgotGSjpI0ixJj0taZZ5LejGy8ZJmS7pL0qCKdeeky2dKOqBi+VhJL0h6qGpf\nF6TbTpf0e0kbpss3kTRF0j8k1Rx8ljSxen9mZk3BF+/NzAMOZpZdA+EaEc9HxPT0+evATGBAt/fZ\nzGxN0uCAg6Q+wKXAgcAuwDE1Bn+PBxZExHbAxaQn7UjameR8352Ag4HLJLXP+R+X7rPaJGCXiNgd\nmA2cky5/GziXOpPQJX0aeK32uzAzK5kHHDLzgIOZZddF4SppCMnFaO7pln6ama2pGp/hMAyYHRFz\nI2IxMB6oPsl9OCy/MNYE0tumAYcD4yNiSUTMIRlAGAYQEXcAC6sbi4jJ6T3eAe4muWc8EfFmRPwV\nWFRdk96G7RvAeXXfhZlZmTzgkJmv4WBm2dULzsenwuypmXaR3td3AnBaOtPBzMyyavwAdgDwTMXr\nNtJBg1rbpLdve1XSJunyuyq2e5Z8M9WOIxng6Mz3gB/jy7KZWbPyYEJmHnAws+zqhet7WpNHu1tq\nX8VeUl+SwYarI+LGruyamVmv0PhBbq3bHlTfOqHeNllqazcqfRtYHBHXdrLdbsDQiDg9nQ3X4G09\nzMy6gQccMvOAg5ll13i4XgHMiIifNN4ZM7NeqKMcfmIqPDm1sz20AYMqXg8E5ldt8wywDTBfUgvQ\nPyIWSmpLl3dUuwpJI4FDWHFqRkc+Auwp6SlgLWALSVMiIkutmVnP8IBDZh5wMLPsFhcvlfRR4PPA\nw5IeIPlW7FsRcWvXdM7MrBfoKIcHtyaPdpNqzjabBgyVNBh4DhgBHFO1zU3ASJLr7BwFTEmXTwSu\nkfSfJKdSDAXuragTVTMSJB0EnAl8PCJWuV5DRR0AEfHfwH+ntYOBmzzYYGZNp4Fj4t7GAw5mll29\nQ8UMIuJOoKXL+mJm1hs1kMOw/JoMp5DcPaIPMDYiZkoaA0yLiJuBscDVkmYDL5MMShARMyRdB8wg\nOdw+KSICQNK1QCuwqaR5wKiIGAdcAvQD/pje0OLuiDgprXka2ADoJ2k4cEBEzGrsHZqZ9YAGs7g3\n8YCDmWXn6WNmZuXqghxOZ5btULVsVMXzRSS3v6xVez5wfo3lx9bZfrsO+rFtJ/2cC+za0TZmZqXw\nMXFmHnAws+wcrmZm5XIOm5mVz1mcmQcczCw7n69mZlYu57CZWfmcxZn1yIDDxge/nWv7gyf9T6F2\nLorTc9dsz9xCbfGjPvlr9i7W1D995ZbcNYtZK3fNJ/7+ydw1AIPH5j/dct7fdizU1osDB+euOXb+\n2EJt/Wa7L+Wu+S6H5q759BeLXTOxZfLSAlXfKdTWckWatOZwdv6SjXk1f9F3zspfAywb1fk21fq0\nfLRQW9yfP4x/1ee9uWvOeeQ/ctcATPzPEblrXjus2K/zCZ89MnfNcdf+plBbWxyb//ftsisy3XFx\nJX1mFbuL4gYtV+Wu+fzSX+eu2YN3Aw1cK9c5vHrLeai1LXOKtXPhiblLln29WFN9Wj6Rv+jP+f/f\nvqHPu/O3A5z3p3/PXXPFJScXamvpP+X/++Bnx44s1NYpl12Ru2ank+7PXbPssvz/VgB9n38zd80H\nW64r1NZ3l55boOq8Qm0t5yzOzDMczCw7Tx8zMyuXc9jMrHzO4sw84GBm2TlczczK5Rw2Myufsziz\nAucFmFmvtTjjw8zMukfWHHYWm5l1nwZzWNJBkmZJelzSKuejSuonabyk2ZLukjSoYt056fKZkg6o\nWD5W0guSHqra15GSHpG0VNKeFcv7SvqVpIckPSrp7HT5QElTJM2Q9LCkUytqRklqk3R/+jios4/K\nMxzMLDvfc9jMrFzOYTOz8jWQxZL6AJcC+wPzgWmSboyIygvjHQ8siIjtJB0NXACMkLQzyW2LdwIG\nApMlbRcRAYwDLgGqL0r0MPBp4OdVy48C+kXErpLWAWZIuhZ4Bzg9IqZLWh+4T9Kkiv5dFBEXZX2/\nnuFgZtktyfgwM7PukTWHncVmZt2nsRweBsyOiLkRsRgYDwyv2mY4cGX6fAKwX/r8cGB8RCyJiDnA\n7HR/RMQdwMLqxiLisYiYDVRfVTmA9SS1AOuSDKO8FhHPR8T0tPZ1YCYwoKIu19WZPeBgZtl5Gq+Z\nWbl8SoWZWfkay+EBwDMVr9tY+Q/6lbaJiKXAq5I2qVH7bI3arCYAbwLPAXOAH0fEK5UbSBoC7A7c\nU7H4ZEnTJf1SUv/OGvEpFWaWnW8BZGZWLuewmVn56mXxS1Ph71M7q641Q6D6/qP1tslSm9UwknkY\nWwGbAn+RNDmdOUF6OsUE4LR0pgPAZcB3IyIknQdcRHL6R10ecDCz7DxF18ysXM5hM7Py1cvijVuT\nR7tZY2pt1QYMqng9kORaDpWeAbYB5qenPPSPiIWS2tLlHdVmdSxwa0QsA16SdCewFzBHUl+SwYar\nI+LG9oKIeKmi/nLgps4a8SkVZpadzxs2MyuXr+FgZla+xnJ4GjBU0mBJ/YARwMSqbW4CRqbPjwKm\npM8nklw8sp+kbYGhwL0VdaLjayxUrptHem0ISesBHwbaLwx5BTAjIn6yUrG0VcXLzwCPdNAW4BkO\nZpaHzwk2MyuXc9jMrHwNZHFELJV0CjCJZALA2IiYKWkMMC0ibgbGAldLmg28TDIoQUTMkHQdMCPt\nxUnpHSpI7zDRCmwqaR4wKiLGSTqC5O4VmwE3S5oeEQcDPwXGSWofNBgbEY9I+ijweeBhSQ+QnLLx\nrYi4FbhA0u7AMpLrPpzY2fv1gIOZZedzh83MyuUcNjMrX4NZnP7xvkPVslEVzxeR3P6yVu35wPk1\nlh9bZ/sbgBtqLH+jVhsRcSfQUmdfX6y1vCMecDCz7N4uuwNmZr2cc9jMrHzO4sw84GBm2Xkqr5lZ\nuZzDZmblcxZn1iMDDjE535WLfshZhdq5SKfnrtk/Di/U1se+2ektR1ex1b8tLNTWSeTv45G3/yF/\nQ/suy18DfJ5RnW9Upc/RxeYhLX2uo2ug1HYUhxZqK2Z3eIeXmqZuv8rspk7pqmJ3sll2T/5rvvb5\nSKGmVvBU3tXX/+UvGXTMvNw1i79W7NdKy9j8V7jbb0mBnAMm61O5a74ap+WuuWmvo3PXACy7L3/N\nu15+uVBbS57fIHfNspoTNjt3GNNy17TsO6jzjaqs9T//yF0DcPPSK3LXHKabc9cMYNfcNStxDq/e\n/phv8w3Pea1QM0s+lz+LW24sdqXRA5ZUX+uuc7dqeO6aU+OM3DUA4/Y5KXfNsjsLNcWWPJ27Zj3e\nKNTWsvxvi6M7v77fKloO3SN/Q8Bmf8j/e+lHS39aqK0P6P5CdQ1xFmfmGQ5mlp2vem5mVi7nsJlZ\n+ZzFmXnAwcyyc7iamZXLOWxmVj5ncWYecDCz7Bo8X03SWOBTwAsR0eC8YjOzXsjnDZuZlc9ZnFn+\nk8DNrPdamvFR3zjgwG7to5nZmixrDvv8YjOz7uMczswzHMwsuwanj0XEHZIGd01nzMx6IU/jNTMr\nn7M4Mw84mFl2b5XdATOzXs45bGZWPmdxZh5wMLPsPDXMzKxczmEzs/I5izPzNRzMLLsldR5vT4U3\nRq94mJlZ96iXw7UedUg6SNIsSY9LOqvG+n6SxkuaLekuSYMq1p2TLp8p6YCK5WMlvSDpoap9XZBu\nO13S7yVtmC7fRNIUSf+Q9F8V268j6ea05mFJ/1HkYzIz61YN5nBv4gEHM8uubpi2QsvoFY+OKX2Y\nmVleDQ44SOoDXEpyAd9dgGMk7Vi12fHAgojYDrgYuCCt3Rn4HLATcDBwmaT2PK93UeBJwC4RsTsw\nGzgnXf42cC5wRo2aH0XETsAewD6SfLFhM2suHnDIzAMOZpbd4oyPOiRdC/wV2F7SPElf7uYem5mt\nWbLmcP0sHgbMjoi5EbEYGA8Mr9pmOHBl+nwCsF/6/HBgfEQsiYg5JAMIwyC5KDCwsLqxiJgcEcvS\nl3cDA9Plb0bEX4FFVdu/FRG3p8+XAPe315iZNY0Gj4l7E1/Dwcyya/B8tYg4tms6YmbWSzV+3vAA\n4JmK122kgwa1tomIpZJelbRJuvyuiu2eTZdldRzJAEcmkjYCDiOZZWFm1jx8DYfMPOBgZtlF2R0w\nM+vlGs/hWqe0Ve+13jZZams3Kn0bWBwR12bcvgW4Frg4nU1hZtY8fEycWY8MOCz909q5tm/5WsEh\no0vbcpf8YuWZfJlJ38pdc9fS3Qq19T39MnfNP/bdIHfNCc8Wu7/L5QOfyF1z0pM/LtTWHfHb3DWf\niIcLtfW37XbJXbNpLMhdc2TLH3LXACwb1lKoznqn7/zi7Nw1O/B47po+E4r9Bv74V27LXXMI/1uo\nrZbvH5q75t5zL89d8+f7Pp67BuBTPJW75rpN8/cP4JVNN8pdcxSfKtTWUPL/jo4t81/uZeim+X8n\nAXxP/5675uYCn8VGrJe7Jrup6aNDbcCgitcDgflV2zwDbAPMT//w7x8RCyW1pcs7ql2FpJHAIaw4\nNSOLXwCPRcQlOWqa3tlTRuXa/hBuKdSOfpw/i7950fcKtXUAk3LXtPz08Nw1j59SbKLLnXfunbvm\nBB4o1NaV+n3umn+Q/5gdYER8NnfNFryYuyYGF7vs1lDyZ/EVL51SqK1zt/h2oTrrGZ7hYGZmZrZG\naE0f7cbU2mgaMFTSYOA5YARwTNU2NwEjgXuAo4Ap6fKJwDWS/pPkVIqhwL0VdatcFFjSQcCZwMcj\not63PNU15wEbRsTxdbY3M7PVRKcXjax1myNJoyS1Sbo/fRzUvd00s+bgK+SUxVlsZonGrhoZEUuB\nU0juHvEoyUUgZ0oaI6l9ysZYYDNJs4GvA2entTOA64AZwC3ASRER0OFFgS8B1gf+mObUZe19kfQ0\ncCEwMq3ZUdIA4FvAzpIeSGuOa+wz6xrOYTNbobFj4h6+PfGRkh6RtFTSnhXL+0r6laSHJD0q6eyK\ndTX7J2mIpLslPSbpN5I6ncCQZYbDOJJfFldVLb8oIi7KUG9mawzf36dEzmIzoytyOCJuBXaoWjaq\n4vkikttf1qo9Hzi/xvKaFwVOb61Zrx/b1lnVrHdRcw6bWap4Flfcnnh/ktPSpkm6MSJmVWy2/PbE\nko4muT3xiKrbEw8EJkvaLh38rZdRDwOfBn5etfwooF9E7CppHWBGOnjc1kH/fghcGBG/k/SztJ/V\n+11Jp4Fe7zZH1L5wkJmt0TzDoSzOYjNLNH5fTCvGOWxmKzSUwz19e+LHImI2q2ZVAOul1+pZl+Q2\nxa910r/9gPaLlVxJMpDRoUZGkE+WNF3SLyX1b2A/ZrbaWJLxYT3IWWzWq2TNYWdxD3IOm/U6DeVw\nrdsTV99ieKXbEwOVtyeurM17e+JKE4A3Sa7nMwf4cUS8Uq9/kjYFFkbEsorlW3fWSNEBh8uA90bE\n7sDzgKeRmfUK/latyTiLzXodz3BoMs5hs16pXu5OBf6j4lFTKbcnrmEYyajIVsB7gG9KGtJJ27Vm\nSXSo0F0qIuKlipeXk1zNuK4xv1rRj313h9bdPfPMrCdMfS15dB0fwDaTPFl8++i/LH8+uHUQQ1oH\nd2PPzKzSE1Of5cmpyd0j+zOnwb05h5tJ3mPiO0ZPXf58UOsQBrUO6ZZ+mdnK5k6dw7ypc7twj/Wy\neFj6aHdhrY16/PbEdRwL3JrOWHhJ0p3AXvX6FxF/l7SRpD5pTaa2sw44rDSaIWmriHg+ffkZ4JGO\nikd9yQMMZmVo3TB5tBvzbKN79BTdkhXO4n1Hf6ybu2Zm9QxtHcDQ1mTG62B25ndjbm1gb87hkjV0\nTLzP6Nbu65mZ1TW4dQiDKwb47hjzl/obZ9JQFvfo7YmrVK6bR3JNhmskrQd8mGSW1qwa/RuR1kxJ\n+/PbtH83dvZmOx1wSK9U2QpsKmkeMAr4J0m7A8tIzvc4sbP9mNmawN+slcVZbGYJ53BZnMNmtkLx\nLI6IpZLab0/cBxjbfntiYFpE3Exye+Kr09sTv0z6B39EzJDUfnvixax6e+JWKjIqIsZJOoLk7hWb\nATdLmh4RBwM/BcZJah8oHRsRj6b7qu5f+x00zgbGS/oe8EDazw51OuBQ5zZH4zqrM7M10Vtld6DX\nchabWcI5XBbnsJmt0FgW9/DtiW8Abqix/I0O2lilf+nyp4EP1aqpp9A1HMyst/JUXjOzcjmHzczK\n5yzOygMOZpaDp/KamZXLOWxmVj5ncVZKT/novgakmLhsv1w1h18wuVBbQ898MHfNtgWvFv34qjNM\nOnUBZxZqa8S3O70Wxyqe/f4muWu2bCt2O4MHBu6Uu2avlg6vqVRX/7ee73yjKh/o97dCbf3flENz\n15y63w9z1/xk7hm5awAGD34yd83cPjsTEYWu4iop4I6MW+9TuB3repJi2c8KFP4of8kDT+xYoCFY\njzdy1+z68kOF2nrrvvz52Hds/m8yxl83PHcNwJ/YP3fN/vGnQm2NuDf/75dbP7RvobYmcGTummdi\nm843qnKgbstdA/AiW+SuuYVDctfsTX9+pl0KZWS+HAZncXORFMuuyFez+PRibbUt2DJ3zVoq9o3t\nx+PPuWuenPK+3DV9pxfr36/P+EzumttpLdTW/uTP4q/zn4XauonDc9f8lqNz17wSG+WuAdhL+Y+/\n34l+hdq6SYflrpmkT/uYuId4hoOZ5eDRXDOzcjmHzczK5yzOygMOZpaDz1czMyuXc9jMrHzO4qw8\n4GBmOXg018ysXM5hM7PyOYuz8oCDmeXg0Vwzs3I5h83MyucszsoDDmaWw5tld8DMrJdzDpuZlc9Z\nnJUHHMwsB4/mmpmVyzlsZlY+Z3FWHnAwsxwaO19N0kHAxUAfYGxE5L+PqJlZr+bzhs3MyucszsoD\nDmaWQ/HRXEl9gEuB/YH5wDRJN0bErC7qnJlZL+Bv1czMyucszsoDDmaWQ0OjucOA2RExF0DSeGA4\n4AEHM7PM/K2amVn5nMVZ9Smz8YenLiyz+aby6NS/l92F5hFTy+5B87j79rJ7UGVJxkdNA4BnKl63\npcusRFMfL7sHzWPqg1F2F5pG3De17C40lblT55TdhQpZc9jfvq1Opnrofbmp053F7RZNvafsLjSN\n2VOfK7sLVZzDWXnAoUnMmPpy2V1oIlPL7kDzuPvPZfegyuI6j5nAzRWPmlRjmY8qSuYBhxVuf6js\nHjSR+5ttsLNc86bOLbsLFerlcK2HrS484LDC7Q+W3YPm8Y4HHJZrvgEH53BWPqXCzHKoN1I7JH20\nm1RrozZgUMXrgSTXcjAzs8z8jZmZWfmcxVn1yIDDOmxVc/lavFhz3ZD+xdoZSL/cNVuybqG23mSt\n3DXrsUXddWvRVnf9kI1zN0XLSn/XZS16PX8N0K/ArPghQ+qvW7gQNq7znjegJXdbW7FO7hqAIWvn\nr9mE/D+8Qzr4v3BhH9i4zvoBBX4GG/+O7q1GiqcBQyUNBp4DRgDHNNwly2aDIbWX91sIG9T5H25g\n/maK5AHAWgV+tgb3KThJb50hdTqxENap/VkM2Tx/Mx1lfkc2ZcMea2vIu2ovX9gXNq6zbm3eXait\nIu/rnQK/ozdk09w1AIvZqO66tVmbjWus35o6H1IHNilwrLKyhnLYyrb+kNrL+y2E9WvkT4HDOYC+\nbJa7poWlhdoaWOB4hLWH1F/XdyGsvepnMSR/hADF8rFIXhVta5sO/hxrow8D66wv8vu2Vo51pqXg\nZ7FBgZ/BdzrIx36sW3efRf+ea4yzOCtFdO+MZkmeMm3WRCKi1qkNnZI0BxiccfO5ETGkxj4OmGEn\nwQAAIABJREFUAn7Citti/qBIXywf57BZ8ymSxTlzGOpksZXDWWzWXMo8Ju5Nun3AwczMzMzMzMx6\nn1IvGmlmZmZmZmZmayYPOJiZmZmZmZlZlytlwEHSQZJmSXpc0lll9KFZSJoj6UFJD0i6t+z+9DRJ\nYyW9IOmhimUbS5ok6TFJt0kqeBnR1Uudz2KUpDZJ96ePg8rso61ZnMUr9OYsdg6v4By2nuYcXqE3\n5zA4iys5i9csPT7gIKkPcClwILALcIykHXu6H01kGdAaEXtExLCyO1OCcSQ/C5XOBiZHxA7AFOCc\nHu9VOWp9FgAXRcSe6ePWnu6UrZmcxavozVnsHF7BOWw9xjm8it6cw+AsruQsXoOUMcNhGDA7IuZG\nxGJgPDC8hH40C9GLT22JiDuAhVWLhwNXps+vBI7o0U6VpM5nAcnPiFlXcxavrNdmsXN4Beew9TDn\n8Mp6bQ6Ds7iSs3jNUsb/1AOAZypet6XLeqsAbpM0TdIJZXemSWwRES8ARMTzwOYl96dsJ0uaLumX\nvWUqnfUIZ/HKnMUrcw6vzDls3cE5vDLn8KqcxStzFq+GyhhwqDUy1Zvvzbl3ROwFHELyP9E+ZXfI\nmsplwHsjYnfgeeCikvtjaw5n8cqcxVaPc9i6i3N4Zc5h64izeDVVxoBDGzCo4vVAYH4J/WgK6Wgl\nEfEScD3J9Lre7gVJWwJI2gp4seT+lCYiXoqI9oOPy4EPltkfW6M4iys4i1fhHE45h60bOYcrOIdr\nchannMWrrzIGHKYBQyUNltQPGAFMLKEfpZO0rqT10+frAQcAj5Tbq1KIlUf5JwJfSp+PBG7s6Q6V\naKXPIv3l0u4z9M6fD+sezuKUsxhwDldyDltPcQ6nnMPLOYtXcBavIfr2dIMRsVTSKcAkkgGPsREx\ns6f70SS2BK6XFCT/FtdExKSS+9SjJF0LtAKbSpoHjAJ+APxO0nHAPOCo8nrYc+p8Fv8kaXeSKzfP\nAU4srYO2RnEWr6RXZ7FzeAXnsPUk5/BKenUOg7O4krN4zaIVM1PMzMzMzMzMzLpGr731jJmZmZmZ\nmZl1Hw84mJmZmZmZmVmX84CDmZmZmZmZmXU5DziYmZmZmZmZWZfzgIOZmZmZmZmZdTkPOJiZmZmZ\nmZlZl/OAg5mZmZmZmZl1OQ84mJmZmZmZmVmX84CDmZmZmZmZmXU5DziYmZmZmZmZWZfzgIOZmZmZ\nmZmZdTkPOJiZmZmZmZlZl/OAg5mZmZmZmZl1OQ84mJmZmZmZmVmX84CDmZmZmZmZmXU5DziYmZmZ\nmZmZWZfzgIOZmZmZmZmZdTkPOJiZmZmZmZlZl/OAwxpC0jhJ38247dOS9uvuPlW1ua+kZ3qyTTOz\nnuQcNjMrn7PYrLl4wKEOSXMkvSnpNUkvS7pJ0oCMtQ6S2qLsDjQi/XddlvWXmJk1xjncLVbLHK76\nWXhN0q1l98mst3AWd4vVMosBJJ0m6SlJr0t6VNLQsvtkzc0DDvUFcGhEbAi8G3gRuCRjrViNg6TZ\nSWopoc2+wMXA3T3dtlkv5hxuUiXk8PKfhfRxUA+3b9abOYubVE9nsaR/Ab4MHBwR6wOfAv7ek32w\n1Y8HHDomgIh4B5gA7Lx8hdRP0o8lzZX0nKSfSXqXpHWBW4CtJf0jHQ3eStIHJf1V0kJJz0q6JP0j\ntljHpD0k3SfpVUnjgbWr1n9K0gNpe3dIen+d/dTtl6RLJf24avuJkk5Nn79b0gRJL0p6UtLXKrZb\nW9KvJC2Q9AjwwU7ezwGSZqX9+KmkqZKOS9eNTN/DRZJeBkYpcW466v582tYG6farjKZXTpmTNErS\n7ySNT/99/iZp104+8jOA24BZnWxnZl3LOewcXr6LTtabWfdxFvfyLJYk4DvANyLiMYCIeDoiXuno\n/Zh5wCGDNDCPBu6qWHwBMBTYNf3v1sB3IuJN4GBgfkRskH4T8zywFPg6sAnwEWA/4KSC/VkLuB64\nMt3f74DPVqzfExgLnJCu/zkwMa2r1lG/rgRGVOx303T9tWno3AQ8QDLavT9wmqRPppuPBrZNHwcC\nIzt4P5um7+EsYFPgsbQvlT4EPAFsDnyfZHT1i8C+wHuADYCfVmzf2Wj64cBvgY2B3wA3qM4osaTB\naXvfxQe8ZqVwDi/fb6/M4dQ1kl6QdGuGwQkz6wbO4uX77Y1ZPDB9vF/SvHRgZXQn+zaDiPCjxgN4\nGngNWAAsBtqAXSrWvw5sW/H6I8BT6fN9gXmd7P804PcF+/YxoK1q2Z3Ad9PnlwFjqtbPAj5W8d72\ny9Iv4FFg//T5ycDN6fMPAXOqas8GxqbPnwQ+WbHuhHqfCfDPwJ1Vy+YBx6XPR9ZoazLw1YrX2wOL\nSAbRVvn8K98zMAr4a8U6AfOBj9bp3w3Akenzce2fsx9++NG9D+fw8tfO4eTf9l0k31yeDTwHbFj2\nz6gffvSGh7N4+etencXpv+syksGVDYDBJAMix5f9M+pHcz88w6FjwyNiE6Af8DXgz5K2kLQ5sC5w\nXzo9agHwvyQjkTVJ2k7JRXaek/QKyYjkZnW2/VnF1LOza2yyNfBs1bK5Fc8HA2e0903SQpIRya0L\n9Osq4Avp8y+krwEGAQOq2jgH2KKij211+lfr/VRfUKit6nX1+q2r9jkXWAvYsoN2au4vIiJtr9bn\ncxiwQURMyLhfM+tazuFensPp+rsiYlFEvB0RPwBeIflDw8x6hrPYWfxW+t8fRsQ/ImIuyYyRQzK2\nY72UBxw61n6+WkTE9SRTrfYhuTjKmySju5ukj40ion9aV2vq0s+AmcB7I2Ij4NvUmZ4fEf8aK6ae\n/aDGJs8B1VcHHlTx/Bng+xV92zgi1o+I3xbo16+B4en01R2BGyvaeKqqjf4RcVi6fj6wTcV+Btd6\nrxXvZ5uqZQOrXld/pvOr9jmYZNT9BeANkl9+wPIL6mxeVb9NxXql7c2v0bf9gA+kv3yeI5lG+HVJ\n13fwfsys6ziHncO1BD7FzawnOYudxY8B73TQd7OaPOCQkaThwEbAjHT073Lg4nRkF0kDJB2Qbv4C\nsKmkDSt2sQHwWkS8KWlH4F8b6M5dwBJJX5PUIukzwLCK9ZcDX5U0LO3bepIOkbRejX112K+IeBb4\nG3A1ybSyRemqe4HXJJ2p5GI4LZJ2kbRXuv53wDmSNpI0EDilg/fzB+B9kg5P93MKnY/K/gb4hqQh\nktYnGYUeHxHLgMeBtSUdrORiP+eSjMhX+oCkI9Lg/QbwNrXvQHEuydS03dLHRJLP98ud9M/Muphz\nuHfmsKRtJO0taS0lF6L7N5JvT+/spH9m1g2cxb0ziyPiLWA8cKak9dP3cgLJKRZmdXnAoWM3pVO4\nXgW+B3wxItrvUnAWyQVb7k6nXU0i+cOUSK7c+hvgqXRq1VbAN4HPS3qNZPrR+KKdiojFwGdI/uhd\nABwF/L5i/X0kAXCpkqltj7PyBWoqR0az9OtK4H2smDpGGmKHAbuTnAv2Ikmot/9CGUNyztnTwK2V\ntTXez8vpe/gRyUj5jiSBvqheDXAFSeD/meTcuDeBU9P9vUZykZ+xJNPC/sGq09FuJJmtsBD4PPDp\niFhao29vRMSL7Q+S6WRvhK/Ia9ZTnMOJXpvDJH8E/Izkc24DDgAOioiFHfTNzLqWszjRm7MYktNp\n3iCZAXEn8OuI+FUHfTNDycCkWX2SPgZcHRFDeqg9kYThsRFxezfsfxTJdLkvdvW+zcy6g3PYzKx8\nzmKz/DzDwTqk5LZBp5GM1HZnOwdI6i/pXSTnzEHtUxzMzHoV57CZWfmcxWbFeMDB6krPX1tIcu7Y\nT7q5uY+QTAN7ETiU5GrIHU0fMzNb4zmHzczK5yw2K86nVJiZmZmZmZlZl/MMBzMzMzMzMzPrcn27\nuwFJnkJh1kQiotC96zeS4tXsm8/tqQsqWeecw2bNp0gW58xhcBY3FWexWXPxMXHP6PZTKiTFF5b9\nvOa6B0ffxG6jD1tl+VULTizW2JT8JZcf+YVCTZ14S9072tT1kUPrd/CZ0VeyzeiRNdcNiTm527pm\nzr/krrlz2z1y1wCsz+u5a34Z9ft37+g/Mmz0J2uu++n2/5a7rTmPb5G7BmCbhX/PXXPGJt/PXbN9\nPFZ33c2jp/Op0bvXXPfVzfL/DPZZUDxcJcV5Gbc9l+LtWNeTFCOX/bTmuumj/8Duow+tue5Xz5yc\nu60okMMAl448PnfNqROLXbdr2PDaF/puG/0rBo7+Us11RXJ4/Jwv564BuGfbXXPXrM1bhdq6JE6t\nufz+0bew5+hDaq67Yvv8PxcAbY9vmrtm65fy3/nyO1ucnbsGYId4vO66/xk9g8+M3nmV5Z/f7H/y\nN7TfgfSZcFuhjMyTw+AsbjZFsrhIDkOxLC6Sw1Asi+vlMNTP4iI5DMWyuEgOQ7EsrpfD0PVZ3FM5\nDPDtLc7NXbNzzKi7rl4OQ7Es9jFxz2nolApJB0maJelxSWd1VafMrDmtlfFhPctZbNZ7ZM1hZ3HP\ncg6b9S7O4ewKn1IhqQ9wKbA/MB+YJunGiJjVVZ0zs+bS7edgWW7OYrPexTncfJzDZr2Pszi7Rj6r\nYcDsiJgLIGk8MBzIHK5btm7fQPNrlg1bdyu7C01jQOt7yu5C09i+dauyu7CSdcrugNXSUBZv1bpd\nN3Zt9bJha+3Tl3qjd/vnYiU7tW5edheWcw43pYaPiZ3FKziLV3AWr9BMOQzO4jwaGXAYADxT8bqN\nJHAz26p1hwaaX7P0d7guN6D1vWV3oWk024CDp4Y1pYayeCsP/C7ng9wVfJC7smY60HUON6UuOCZ2\nFrdzFq/gLF6hmXIYnMV5NDLgUOviFzWvQPng6JuWP9+ydXsPNJj1kKmLk0dX8fSxppQpi6eP/sPy\n51u1bueDW7MetFIWP/pEQ/tyDjelzMfEzmKzcviYuDyNfFZtwKCK1wNJzltbRa07UZhZ92tdK3m0\n++7bje2v0dFcSQcBF5NcsHZsRPywan0/4CrgA8DfgaMjYl667hzgOGAJcFpETJI0MN1+K2ApcHlE\n/Fe6/W7AfwNrA4uBkyLib5J2AMYBewLfioiLGnxbZcuUxfXuRGFm3W+lLN5lKN+d+WThfXXFt2pd\nncXp8rHAp4AXImLXin1dABwGLAKeBL4cEa9J6gv8kiSLW4CrI+IHWfrXhDIfEzuLzcrRbMfEvUkj\nd6mYBgyVNDj9xTQCmNg13TKzZtQ346OWiotqHQjsAhwjaceqzY4HFkTEdiQHmxektTsDnwN2Ag4G\nLpMkkgPe0yNiZ+AjwMkV+7wAGBURewCjgB+lyxcAX6t4vbpzFpv1IllzuIezGJKB3ANrNDkJ2CUi\ndgdmA+eky48C+qWDE3sBJ0oalLF/zcY5bNbLNJLDvU3hAYeIWAqcQvKL5FFgfETM7KqOmVnzafAW\nQMsvqhURi4H2i2pVGg5cmT6fAOyXPj+cJGOWRMQckoPWYRHxfERMB4iI14GZJOfSAiwD+qfPNwKe\nTbd7KSLuIxmsWO05i816ly64LWaXZzFARNwBLKxuLCImR8Sy9OXdJN/+Q3LKwXqSWoB1SWZAvJax\nf03FOWzW+/i2mNk1NPASEbcCviCDWS/RYHBmuajW8m0iYqmkVyVtki6/q2K7Z1kxsACApCHA7sA9\n6aJvALdJupDk/Nq9G+t+83IWm/UeXXAA261Z3InjSAYQIBnIGA48R3LB929ExCuSGr4AYxmcw2a9\niwcTsvNMDzPLrMHAyHJRrXrbdFgraX2Sg9fT0pkOAP+avr5B0pHAFcAnc/fazKyJdJTDD6WPTnRb\nFnfYqPRtYHFEXJsuGkYy02wrYFPgL5ImN9KGmVlP8R/R2fmzMrPM6o3mPpg+OpHlolrPANsA89Np\ntv0jYqGktnT5KrXphccmkFxw7MaKbUZGxGkAETEhvaCZmdlqraNv1T6QPtpdW3uzbsnijkgaCRzC\nilMzAI4Fbk1Pt3hJ0p0k13LIfAFGM7OyeIZDdoro3kFjSbFv3JKr5kNxT+cb1TCDnXPXTH5t/0Jt\n7b/hlNw1f7j/yEJt8Uj+En04/7/r8B1+k78h4DJOzl2zZ9xXqK3n//Te3DVatKzzjWp44pA8s0QT\n81Y6Rspm3+n35q4BWPDB/DWbLYWIqPXtUackxR0Zt92HVdtJD1ofA/YnmUJ7L3BM5Xmukk4C3hcR\nJ0kaARwRESPSC5VdA3yIZPruH4HtIiIkXQX8PSJOr2rvUZI7U9wuaX/gBxHxwYr1o4DXI+LCPJ/D\n6qhIDkOxLH6Y9+euAfi/11pz17RueHuhtm7966fzF83KX6JPvJO/CPjUoBty14x/c0ShtnZY97Hc\nNW13FruNX5EsfmK/rXPX/J1i92r/4JT8v2znfCJ/O+sceCDvvu22QlmcJ4ehZ7M4rRsC3BQR76/Y\n10HAhcDHI+LliuVnAjtExPGS1kv78TmS/9s67N/qqiePiYtkcZEchmJZ3FM5DMWyuEgOQ7EsLpLD\nUCyLeyqHoVgWF8lhKJbF76G8Y+J0H91xt6Ca+5Q0DtgXeJVkxtiXIuIhSYcD3yO57tliklPb7kxr\n/hf4MPCXiDg849utyTMczCyzRgIjPQ+4/aJa7UE4U9IYYFpE3AyMBa6WNBt4meRK30TEDEnXATNY\ncYvLkPRR4PPAw5IeIAnRb6Xn0n4F+El6cP12+hpJWwJ/AzYAlkk6Ddi54lQMM7Om1eiBW3dkMYCk\na4FWYFNJ80juEjQOuAToB/wxvaHF3RFxEvBTYJyk9r8wxkbEo+m+Vulfg2/bzKxLNZLFFXfj2Z9k\nBtc0STdGROWw2vK7BUk6muRuQe0Dv+13CxoITJa0HcnpaB3t84yIuL6qK5MjYmLap/cD16X7JW1v\nXeDEBt4q4AEHM8uh0eljtS6qFRGjKp4vIgnRWrXnA+dXLbuT5P7ttbZvn55bvfwFVp4SbGa22uiK\nabxdncXp8mPrbL9dneVvdNCGL8BoZk2twSxefjceAEntd+OpHHAYTnJbd0hOHb4kfb78bkHAnHRg\neBjJgENH+1zl7pQR8WbFy/VJZjq0r/s/Sfs28ibbFb4tppn1Pr7nsJlZubLmsLPYzKz7NJjDte7G\nU30u90p3CwIq7xZUWdt+t6DO9nmepOmSLpS0fLxE0hGSZgI3kZym0eX8+8jMMvMFcszMyuUcNjMr\nX70svjd9dKI77hZUayJB+z7PjogX0oGGy4GzgPMAIuIG4AZJ+6TLuvyObh5wMLPMHBhmZuVyDpuZ\nla9eFu+dPtpdVnuz7rhbkOrtMz2dmIhYnF5A8ozqDkXEHZLeK2mTiFhQ5+0V4lMqzCyztTI+zMys\ne2TNYWexmVn3aTCHpwFDJQ1O70YxAphYtc1NwMj0+VFA+y0SJ5JcPLKfpG2BoSSTKuruU9JW6X8F\nHEF6D0RJy2//J2lPYK2qwQZRe0ZFLh4oN7PMfABrZlYu57CZWfkayeJuultQzX2mTV4jaTOSwYPp\nwFfT5Z+V9EXgHeAtKi7kK+nPJBfvXT+989DxEfHHIu/XAw5mltk6WRNjSbd2w8ys18qcw+AsNjPr\nJo0eE3fT3YJq3uEnIvavs58LSG5/WWvdx2v3PD8POJhZZn094GBmVqrMOQzOYjOzbuJj4uw84GBm\nma3VUnYPzMx6N+ewmVn5nMXZecDBzDLL9c2amZl1OeewmVn5nMXZ+aMys8zWcmKYmZXKOWxmVj5n\ncXZKLmrZjQ1IMT/656q5hUMKtbVOvJm75vN9TizUlvRO7pqlSw8v1NZf+GDumtYHp+WuWbpb7hIA\nWq7L/zP0i8/9c6G2jufXuWt+xpcLtbW2FuWu2Y0Hc9e0xcDcNQCHfzP/hWL7XAQRUej2NpIitsi4\n7YvF27GuJykWLumXu+6GliNy16wV+f+/AfhCgSwuksNQLIsL5fDcv+auAVg6OP+1r1smFftd/osD\n8mdxkRwGuDK5wHYu79LbuWu2Z3buGoDHY7vcNSO+WX0Xswx2OJA+J95WKCPz5DA4i5tNkSwuksNQ\nLIuL5DD03DFxkRyGYllcJIehWBYXyWEolsU9lcNQLIuL5DAUy2IfE/ccj82YWXZODDOzcjmHzczK\n5yzOzB+VmWXnxDAzK5dz2MysfM7izPxRmVl27yq7A2ZmvZxz2MysfM7izDzgYGbZOTHMzMrlHDYz\nK5+zODN/VGaWnRPDzKxczmEzs/I5izPrU3YHzGw10pLxYWZm3SNrDneQxZIOkjRL0uOSzqqxvp+k\n8ZJmS7pL0qCKdeeky2dKOqBi+VhJL0h6qGpfF6TbTpf0e0kbpsuPlfSApPvT/y6VtKukdSTdnNY8\nLOk/in9YZmbdxMfEmXnAwcyy65vxYWZm3SNrDtfJYkl9gEuBA4FdgGMk7Vi12fHAgojYDrgYuCCt\n3Rn4HLATcDBwmaT2272NS/dZbRKwS0TsDswGzgGIiGsjYo+I2BP4Z+DpiGgfrPhRROwE7AHsI6nW\nfs3MyuNj4sw84GBm2TUYrl39rZqkgZKmSJqRfhN2asX2u6X7eEDSvZI+WLHuv9J9TZe0e4OfiplZ\nz2lwwAEYBsyOiLkRsRgYDwyv2mY4cGX6fAKwX/r8cGB8RCyJiDkkAwjDACLiDmBhdWMRMTkilqUv\n7wYG1ujTMcBv0u3fiojb0+dLgPvr1JiZlccDDpl5wMHMsmtg+lg3fau2BDg9InYGPgKcXLHPC4BR\nEbEHMKpiX4cA703bOBH47+IfiJlZD2v8lIoBwDMVr9vSZTW3iYilwKuSNqlR+2yN2o4cB/xvjeVH\nkw44VJK0EXAY8KccbZiZdT+fUpGZBxzMLLsm+1YtIp6PiOkAEfE6MJMVB7/LgP7p841IDozb93VV\nWnMP0F/Slpk/AzOzMnWQvVNfh9FtKx51qMayyLhNltrajUrfBhZHxLVVy4cBb0TEjKrlLcC1wMVp\n7puZNY8mm/Xb0T4ljZP0VMV1c3ZNlx8r6cF0xu8d7cvTdd+Q9IikhyRdI6lfIx+VmVk2azdUXetb\ntWH1tomIpZIqv1W7q2K7Vb5VkzQE2B24J130DeA2SReSHCTvXacf7ft6ocibMjPrUR3kcOtWyaPd\nmLk1N2sDBlW8HgjMr9rmGWAbYH76h3//iFgoqS1d3lHtKiSNBA5hxSBypRHUmN0A/AJ4LCIu6Wz/\nZmY9roFj4opZv/uTZOg0STdGxKyKzZbP+pV0NMlM3RFVs34HApMlbUdyrNvRPs+IiOuruvIU8PGI\neFXSQSS5+2FJWwNfA3aMiHck/ZYkq68q8n494GBm2dWZGjb15eTRiW77Vk3S+iQzIk5LZzoA/Gv6\n+gZJRwJXAJ/M2A8zs+bU+BTdacBQSYOB50gOIo+p2uYmYCTJAO5RwJR0+UTgGkn/STJQOxS4t6JO\nVGVsehB7JslB7aKqdUr3/7Gq5ecBG0bE8QXfo5lZ92osi5fP+gWQ1D7rt3LAYTjJKcGQHOO2D74u\nn/ULzJHUfi0ddbLPVc5siIi7K17ezcpf5rUA60laBqxLhsHlenxKhZllV2e6WOuWMHrnFY868nyr\nRuW3amltzW/VJPUlCeKrI+LGim1GRsQNABExAWi/aGShb+jMzJpCgxeNTK/JcArJ3SMeJTlwnSlp\njKRPpZuNBTZLD2S/Dpyd1s4ArgNmALcAJ0VEAEi6FvgrsL2keZK+nO7rEmB94I/pVN7LKrrzceCZ\nylMmJA0AvgXsXDH997giH5WZWbdp7JSK7riWTmf7PC89deJCSWvV6NO/kF5jJyLmAxcC89L9vxIR\nk+u+m070yAyHAdcsyLX9fcfuVKidDxw9M3fNsmW1vuzsXJ8CQzWbL61/QmVHPte3+ouHzt212265\na1r+8GDuGoDYMv+HccLxvy7U1tcuyvezBLDolZ8Xamvp4PynKn2FS3PX/OKyUzvfqIbkTuY9rLHE\n6K5v1a4AZkTET6r29aykfSPidkn7k1z3oX1fJwO/lfRhkhBd40+n2GTyW7lrHjngvblr3jf8ydw1\nUCyLi+QwwCaLnstdc/za1Zcb6dx9g9+fuwag5cFZnW9UJQYU+zBOOCt/Fp/1/Wc736iGV1/+Ze6a\nxVuun7vmdM7PXQNw0WXfzl1TKIfXLVBTqQuO3CLiVmCHqmWjKp4vIpmyW6v2fFj1Q46IY+tsv10H\n/bidFae7tS97ljX4C7G8WVwkhwHe99n8WdyTx8Q9lcNQLItb7sufw1Asi4vkMBTL4p7KYSiWxUVy\nGFbLY+LumPVb64evfZ9nR8QL6UDD5cBZwHnLG5L+CfgysE/6eiOS2RGDgVeBCZKOrb4GT1Y+pcLM\nsmtg+lh6TYb2b9X6AGPbv1UDpkXEzSTfql2dfqv2MsmgBBExQ1L7t2qLSb9Vk/RR4PPAw5IeIAnW\nb6UH018BfpLOlHg7fU1E3CLpEElPAG+QBKyZ2erBVz03MytfvdOMX4SpL3Va3R3X0lG9fbZ/sRYR\niyWNA85o3yi9UOQvgIPSWcUAnwCeiogF6Tb/QzI47AEHM+tmDSZGV3+rFhF3Uify03V71Vl3Sq6O\nm5k1Cx+5mZmVr04Wt26dPNqNmVFzs+6Y9dun3j4lbRURz6fXzTkCeCRdPgj4PfDPEVE5LWoeycUj\n1wYWkVyIcloHn0aH/GvLzLJzYpiZlcs5bGZWvgayuDtm/QI195k2eY2kzUhmQUwHvpou/3dgE+Cy\ndDBicUQMi4h7JU0AHkjbeIBkFkQh/rVlZtl5Kq+ZWbmcw2Zm5Wswi7vpWjqr7DNdvn+d/ZwAnFBn\n3RhgTP13kJ0HHMwsOyeGmVm5nMNmZuVzFmfmj8rMslu77A6YmfVyzmEzs/I5izPzgIOZZeepvGZm\n5XIOm5mVz1mcmQcczCw7J4aZWbmcw2Zm5XMWZ+aPysyyc2KYmZXLOWxmVj5ncWb+qMwsO08fMzMr\nl3PYzKx8zuLMPOBgZtk5MczMyuUcNjMrn7M4M39UZpadE8PMrFzOYTOz8jmLM+uRj2rTn980AAAg\nAElEQVTMsWfm2v4nnFaonThHuWtaWsYUagtG5a44quV3hVp6kvfmrpnEAblr4sb8nx8AIwvUHFus\nqXXWfzt3zdtPbFKorZaLInfNff91ae6aj5w0JXcNwN237FeoriEO19XWeQeckbvmO3w3d02MKZYj\nhbJ47fw5DHDcu67IXfNEgRyewv65awBibIHP8EuFmoLD85es3/f1Qk0teGVA7pqWX+fP4dnfzJ/D\nAMNPGp+7ZuL1I/I3tEX+kpU4h1drebO4SA4DxL/34DFxgSzuqRyGYlkcVxY8Jv5SgZoCOQzFsrin\nchiKZXGRHIaCWdwoZ3Fm/qjMLLt3ld0BM7NezjlsZlY+Z3FmHnAws+ycGGZm5XIOm5mVz1mcmT8q\nM8vOV+Q1MyuXc9jMrHzO4sz6lN0BM1uN9M34MDOz7pE1hzvIYkkHSZol6XFJZ9VY30/SeEmzJd0l\naVDFunPS5TMlHVCxfKykFyQ9VLWvC9Jtp0v6vaQNK9btKumvkh6R9KCkflW1E6v3Z2bWFHxMnJkH\nHMwsO4ermVm5GhxwkNQHuBQ4ENgFOEbSjlWbHQ8siIjtgIuBC9LanYHPATsBBwOXSWq/ut64dJ/V\nJgG7RMTuwGzgW+m+WoCrga9ExPuAVmBxRT8/DbzW+QdiZlYCHxNn5gEHM8uuJePDzMy6R9Ycrp/F\nw4DZETE3IhYD44HhVdsMB65Mn08A2m+LdDgwPiKWRMQckgGEYQARcQewsLqxiJgcEcvSl3cD7ZfJ\nPwB4MCIeSbdbGBEBIGk94BvAeR1/GGZmJfExcWYecDCz7JpsGq+kgZKmSJoh6WFJp1ZsP17S/enj\naUn3p8vXknSFpIckPSBp3y74ZMzMekbjp1QMAJ6peN3GikGAVbaJiKXAq5I2qVH7bI3ajhwH3JI+\n3x5A0q2S/ibp3yq2+x7wY+CtHPs2M+s5TXZM3NE+JY2T9FR63Hu/pF3T5cemp7NNl3RH+/J03Zx0\n3QOS7i38OXX8MZiZVWkgMSqm8e4PzAemSboxImZVbLZ8Gq+ko0mm8Y6omsY7EJgsaTtgCXB6REyX\ntD5wn6RJETErIkZUtP1j4JX05QlARMSukjYH/hfYq/g7MzPrQR3k8NQZyaMTqrEsMm6TpbZ2o9K3\ngcUR8Zt0UV/goyT5+zbwJ0l/AxYAQyPidElD6rRpZlau5jsmVif7PCMirq/qylPAxyPiVUkHAb8A\nPpyuWwa0RsQqM9fy8oCDmWXX2D2Hl0/jhWQGAsm03cpwHQ6MSp9PAC5Jny+fxgvMkTQbGBYR9wDP\nA0TE65JmknzbVrlPSIK5NX2+M/CntOYlSa9I2isi/tbQuzMz6wkd5HDrHsmj3Zjf19ysDRhU8Xog\nycFppWeAbYD56bUW+kfEQklt6fKOalchaSRwCCtOzWjvx+3tB7OSbgH2BN4A9pT0FLAWsIWkKRGx\nH2ZmzaLJjolJBhw62ucqZzZExN0VLytPeSPdX5ecDeFTKswsuyaexpt+E7Y7cE/V8o8Bz0fEU+mi\nB4HhklokbQt8gJUPoM3Mmlfjp1RMA4ZKGpzeFWIEMLFqm5uAkenzo4Ap6fOJJN+w9UvzcyhQOdVW\nVM1ISL81OxM4PCIWVay6DdhV0tqS+gL7AjMi4r8jYmBEvAfYB3jMgw1m1nSa75i4s32el546caGk\ntWr06V9IZv22C/h/9u49XI6qTPv/984OERBBDgozhAAO4aiIMASPsDGCqEgUBAKOIjAzOgyKwk8O\n8vON4WUGRUFQBg9MyGgGjBhgOIgYIm5HkEM4BAJJNAMEEjAZzgoIJDvP+0etvVPpdO+uqt57d4fc\nn+vqK93V9dSqbvFOZXWttfilpNmS/qHhJynAdziYWXGtJcaQ3cabhlPMAE6KiBdq9jsK+Enu9aVk\nt6HNBh4FbiUbmmFm1vlavHKLiF5JJ5KtHjECmBIR8yVNBmZHxPXAFGBa+uXsabJOCSJinqQrgHlk\nK0qckJvo8XKyO8k2l/QYMCkippL9KjcKuCktaHF7RJwQEc9JOh+4i+zW3Z9HRP5i18ysczXI4p77\ns0cTQ3FNXO9Ggr5jnh4Ry1JHwyXAaeQm5ZW0P3AsWSdvn3dHxNI0/PgmSfPT5MClucPBzIprMNtu\nz32FwnVIbuNNv4zNAKZFxDX5g6VjHEp2my7Q30t8cm6fW8lmWjcz63yDMOt5RNwI7FSzbVLu+Stk\nQ9Hq1Z4DnFNn+9EN9h87wHlcDlw+wPuPArs3et/MrG0aZPEaQ9vqJ9xQXBOr0TEjYln6c7mkqcAp\nfTuliSJ/CByUn68hIvqGLD8p6WqyYRuVOhw8pMLMimtwu1j3XvC1Y1c9Ghiq23gvJbsN98I6bR4A\nzI+I/hCXtIGkDdPzA8gmMaud88HMrDO1PqTCzMxa1XlD2xoeU9JW6U8BHwMeSK/HAFcCn4qIh/oa\nlrRhunu4b5niA/tqqlC6E27ISApd31uqZsXm1f6W1D7l2gEYUbHLRQeXr+mt/c+ooBH1J30akI5Y\n3HynGr291Yaxj/jH8jWbfGdppbaeXX+r0jUjrqrUFNpzeema3u3qDYka2P9qk9I1AD+Pj5SuOX7E\ndCKi0ozfkiJ+U3Df/ajbThrLeyGrbuP9ev42XkmvA6YB7yDdxpvWekfSGWQz9i4nGzoxU9J7gP8G\n5pLdNhbAV9Kvd6Re3Nsi4oe5c9iWbOxwL9m4t+Mjovz/YdYikkI3ls/HFSvKZ7E+XL4dgBF/Xb5G\nH6jUFL0/Ll8z4ufla3TIq+WLgN7eUaVrRpxaqSm2/Ub5vrZHtHOltkbMLF+z/rhnSte89MbNyjcE\nPJP1Q5ZyW7yrdM2b2Jt3jji3UhaXyWFonMXWHlWyeEXFniMdWOGauEIOQ7UsHq4cBtAhL5au6e19\nfaW2qmRxlRyGalk8XDkM1bK4Sg5DtSz+6Ihfv6auiRsdM23/FbAF2V0Qc4DPRcRLki4huxP40fTe\n8ogYlzoyria7rh4JXNZ3rCrc/21mxbV4K+9g38YbEbcOdFYRscb9FukW3Wr/YjIza7dBGFJhZmYt\n6rBr4kbHTNvHNzjOP5AtF1+7/RGyidgHRUsdDpIWAc+TTfazPCLGDcZJmVmHchdlR3IWm61DnMMd\nyTlsto5xFhfW6le1EujOTzBhZq9h67f7BKwBZ7HZusI53Kmcw2brEmdxYa12OAhPPGm27vCtvJ3K\nWWy2rnAOdyrnsNm6xFlcWKvBGMAvJc2WtMb4DzN7jfHM6J3KWWy2rvAqFZ3KOWy2LnEOF9bq1/Du\niFgq6U3ATZLmR8Qa63PGZZNXvXjbfmj37habNbMiFvQs4/c9/zt4B3RwdqqmWRzTcjm8+37o7d3D\ne4Zm67C5Pc8yt+c5ADbkldYO5hzuVMWuiZ3FZm2Rz+FB4SwurKWvKiKWpj+flHQ1MA5YI1z1yUm1\nm8xsGOzcvSU7d2/Z//rasx5s7YC+fawjFclifco5bNYub+velLd1bwpky2JOOet31Q/mHO5Iha+J\nncVmbZHPYYCfnLWotQM6iwurPKRC0oaSNkrPXw8cCDwwWCdmZh3It491HGex2TrGQyo6jnPYbB3k\nHC6sla9hS+BqSZGOc1lEzByc0zKzjuTg7ETOYrN1iXO4EzmHzdY1zuLCKn9VEfEIsMcgnouZdTqH\na8dxFputY5zDHcc5bLYOchYX5q/KzApb8bp2n4GZ2brNOWxm1n7O4uLc4WBmhfU6MczM2so5bGbW\nfs7i4oblq/rmh08stX8P76zUzq1xaumajV86pVJbf7p8y+Y71ZjIjyq1NeGwUaVrLl7xz6Vrtlgx\nt3QNwHrnvKF0zT+u/8NKbXU9+NXSNYcc+tNKbb2L20rXdF15Qemaaw/729I1AJ95dnrpmuMrtbTK\niq6i88yubLElG2zfP/CY0jV3sHvpmll8uXQNwBaPf6F0zVNXb1OprWP5Xumaf/zIq6VrLn7y5NI1\nAFvGI6Vr1j9zo0ptHa8ppWu6HvpGpbY+cuBVpWvG86vSNV1XXly6BuDXh72tdM2Bf/p16RqNLP93\nel7xHAZncecpm8VVchiqZXGVHIZqWfxpLildc/xHqi0p+4MnTypdUyWHoVoWV8lhqJbFw5XDUC2L\nZx1WbWRSlSxula+Ji3PfjJkV1juyaGSU/8eZmZk1VzyHwVlsZjY0fE1cXOVlMc1s3dPb1VXoYWZm\nQ6NoDg+UxZIOkrRA0h8knVbn/VGSpktaKOk2SWNy752Rts+XdGBu+xRJyyTdX3Osc9O+cyRdKWnj\ntH1bSS9Juic9Ls7VrCfpB5J+L2mepI+3+LWZmQ0qXxMX5w4HMyusl65CDzMzGxpFc7hRFksaAVwE\nfBDYDThK0s41ux0PPBMRY4ELgHNT7a7AEcAuwIeAiyUp1UxNx6w1E9gtIvYAFgJn5N77n4jYMz1O\nyG0/E1gWETtFxK7Abwp+PWZmw6LVa+Ih6vite0xJUyU9LOne1MG7e9p+tKT7UofwLZLelraPlnRz\n6vCdK6naeKvEQyrMrLAV7kwwM2urQcjhccDCiHgUQNJ0YAKwILfPBGBSej4D+G56fggwPSJWAIsk\nLUzHuyMibpG0bW1jETEr9/J24LDca1HfccBOuWM8U/CzmZkNi1ayONfxOx54Apgt6ZqIyOdwf8ev\npCPJOn4n1nT8jgZmSRpLlqcDHfOUiLi65lQeBvaNiOclHQRcArwTWAGcHBFzJG0E3C1pZs35FeY7\nHMyssF5GFnqYmdnQKJrDA2Tx1sDi3OslaVvdfSKiF3he0mZ1ah+vUzuQ44Bf5F5vJ+luSb+W9F4A\nSZuk985O7/1U0ptKtGFmNuRazOH+jt+IWA70dfzmTYD+FQdmAO9Pz/s7fiNiEdmdY+MKHHONf/dH\nxO0R8Xx6eTspzyNiaUTMSc9fAOZTLutX438ZmFlhHi5hZtZeA+XwbT2vcntP0wnK6t1VEAX3KVJb\nv1HpTGB5RFyeNj0BjImIZyXtCfxX+uVuJNmvdr+NiFMkfQk4D/h0kXbMzIZDi9fE9Tp+xzXaJyJ6\nJeU7fvNL6fV1/KrJMc+W9FXgV8DpqVMi7+9ZvUMYAEnbAXsAdxT5YPW4w8HMCnuV1pZzS7drXUDW\nyzolIr5R8/4o4MfAXsBTwJER8Vh67wyyX8dWACdFxExJo9P+WwG9wCUR8Z20/3Rgx3ToTYFnI2JP\nSSOBfwf2BLqAaRHx9ZY+mJnZMBkoh/fqHsVe3ateXzD5pXq7LQHG5F6PJvvHf95iYBvgCUldwCap\nY2BJ2j5Q7RokHQN8mFW/0JEudp9Nz++R9BCwY3r+YkT8V9r1Z2TZb2bWMVq8Jh6Kjt96Ixf6jnl6\nRCyTtB7ZsInTgLP7G5L2B44F3rvaCWTDKWaQXXe/UOf4hbjDwcwK68Dxag3HmEXExFzb3wKeSy8P\nB0ZFxO6SNgDmSbq8r2PDzKyTDcIcDrOBHdJ8C38EJgJH1exzHXAM2S9ahwM3p+3XApdJ+jbZL2o7\nAHfm6kTNxXDqaD6VbJzwK7ntW5Dl/UpJb0nHerivfUn7R8SvgQ8A81r7yGZmg6tRFt/Z8zJ39rzc\nrHwoOn7V6JgRsSz9uVzSVOCUvp3SBJI/BA6KiGdz20eSdTZMi4hrmn2ggbjDwcwKa3F+hkGfqCwi\n7gCWQjbGTFLfGLPaSW2OAPZPzwN4fQrvDYFXgD+18sHMzIZLq/PkpFtzTyRbPaLvbrP5kiYDsyPi\nemAKMC1l7dNknRJExDxJV5B1ACwHToiIAJB0OdANbC7pMWBSREwly/FRwE1pQYvb04oU+wJnSVpO\ndofaZyOir2P49NT+t4EnyX55MzPrGI2yeK/ujdire6P+1/82+fl6uw1Fx++IRseUtFVELE2rCn0M\neCBtHwNcCXwqIh6qaf9SYF5EXDjgF1GAOxzMrLAOHK/Wr9EYM0nvA5bmgnQGWcfGH4ENgC/lLnLN\nzDraYMylExE3klsFIm2blHv+CllHbb3ac4Bz6mw/usH+Yxtsvwq4qsF7jwH7NTh9M7O2ayWLh6jj\nt+4xU5OXpbvKBMwBPpe2fxXYjFVLHC+PiHGS3gN8Epgr6V6yH+u+kv7uKM0dDmZWWKNwvavnRe7q\nqTtWOG/IJiprMsbsKOAnudfjyIZibAVsDvxW0qw006+ZWUfz5L1mZu3XahYPUcfvGsdM28c3OM4/\nAP9QZ/utMHh/2bjDwcwKazRebY/ujdmje+P+1z+c/FS93YZkorKBxpilYxxKNkFkn6OBGyNiJfCk\npFuBvwUW1f1wZmYdZBDmcDAzsxY5i4sblg6HP2jH5jvlPBF/Xamd8087s3zRibUrghRzwHHXVqqr\n4qon/650zT++qfxwm2euqLa86pZHP1K65puf/Wqltv7lB6c036nGLXpv853quIu9S9ccctj00jU7\namHpGoA/brpphapnm+8ygBbHDg/VRGUDjTE7AJgfEfmOjcfIZkq/TNLrgXcC327lg60N5uqtpWv+\nHG8oXfN/Tvlm6RqA9Sc9U7rmI4fOqNRWFd9bdHLpmlO2O7v5TnU8+eMxzXeqseWny+cwwKTTzi1d\nc/43/qlSWz0qf4f8Pav1FRbzkcOq/XfxRpUfWfXHjbcoXbM+GzffaQCtzuFg7VU2i6vkMFTL4io5\nDNWyuIsVpWt+uOSk0jUAJ41e44fgpqrkMFTL4kmnlM9hgPPPK5/Fw5XDUC2LN9PTldqqksXZYmjV\nOYuL8zdlZoV12ni1AmPMjmT14RQA/wZMlfRAej0lIh7AzGwt4CEVZmbt5ywuzh0OZlZYi2sOD/p4\ntWZjzCJijZnNI+LFRm2YmXW6VnPYzMxa5ywuzh0OZlaYx6uZmbWXc9jMrP2cxcW5w8HMCvN4NTOz\n9nIOm5m1n7O4OH9TZlaYx6uZmbWXc9jMrP2cxcW5w8HMCnO4mpm1l3PYzKz9nMXFucPBzArzeDUz\ns/ZyDpuZtZ+zuDh3OJhZYR6vZmbWXs5hM7P2cxYX52/KzArz7WNmZu3lHDYzaz9ncXHucDCzwl7x\nmsNmZm3lHDYzaz9ncXHucDCzwnz7mJlZezmHzczaz1lcnL8pMyvMt4+ZmbWXc9jMrP2cxcW5w8HM\nCnO4mpm1l3PYzKz9nMXFDUuHww8fPaHU/ieO+XaldlaeW76ma9nySm3Nuu+jpWt6365KbW04qnxb\nr1y4aemalSeVLgFgxKTtS9cc+P1rKrV1BueXrvlgXFupraseOrp0Te/fjChdsxXvLl0DcIIurlD1\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/src/mesh.F90 b/src/mesh.F90 index 137590e65c..cee29aa1ca 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -98,16 +98,16 @@ contains integer, intent(in) :: ijk(:) integer :: bin + integer :: n_x ! number of mesh cells in x direction integer :: n_y ! number of mesh cells in y direction - integer :: n_z ! number of mesh cells in z direction + n_x = m % dimension(1) n_y = m % dimension(2) if (m % n_dimension == 2) then - bin = (ijk(1) - 1)*n_y + ijk(2) + bin = (ijk(2) - 1)*n_x + ijk(1) elseif (m % n_dimension == 3) then - n_z = m % dimension(3) - bin = (ijk(1) - 1)*n_y*n_z + (ijk(2) - 1)*n_z + ijk(3) + bin = (ijk(3) - 1)*n_y*n_x + (ijk(2) - 1)*n_x + ijk(1) end if end function mesh_indices_to_bin @@ -122,19 +122,19 @@ contains integer, intent(in) :: bin integer, intent(out) :: ijk(:) + integer :: n_x ! number of mesh cells in x direction integer :: n_y ! number of mesh cells in y direction - integer :: n_z ! number of mesh cells in z direction + n_x = m % dimension(1) n_y = m % dimension(2) if (m % n_dimension == 2) then - ijk(1) = (bin - 1)/n_y + 1 - ijk(2) = mod(bin - 1, n_y) + 1 + ijk(1) = mod(bin - 1, n_x) + 1 + ijk(2) = (bin - 1)/n_x + 1 else if (m % n_dimension == 3) then - n_z = m % dimension(3) - ijk(1) = (bin - 1)/(n_y*n_z) + 1 - ijk(2) = mod(bin - 1, n_y*n_z)/n_z + 1 - ijk(3) = mod(bin - 1, n_z) + 1 + ijk(1) = mod(bin - 1, n_x) + 1 + ijk(2) = mod(bin - 1, n_x*n_y)/n_x + 1 + ijk(3) = (bin - 1)/(n_x*n_y) + 1 end if end subroutine bin_to_mesh_indices diff --git a/src/tally.F90 b/src/tally.F90 index 7bfd908c5f..3c3dc6a693 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2327,6 +2327,7 @@ contains integer :: filter_index ! index of scoring bin integer :: i_filter_mesh ! index of mesh filter in filters array integer :: i_filter_surf ! index of surface filter in filters + integer :: i_filter_energy ! index of energy filter in filters real(8) :: uvw(3) ! cosine of angle of particle real(8) :: xyz0(3) ! starting/intermediate coordinates real(8) :: xyz1(3) ! ending coordinates of particle @@ -2351,9 +2352,10 @@ contains i_tally = active_current_tallies % get_item(i) t => tallies(i_tally) - ! Get index for mesh and surface filters + ! Get index for mesh, surface, and energy filters i_filter_mesh = t % find_filter(FILTER_MESH) i_filter_surf = t % find_filter(FILTER_SURFACE) + i_filter_energy = t % find_filter(FILTER_ENERGYIN) ! Get pointer to mesh select type(filt => t % filters(i_filter_mesh) % obj) @@ -2386,11 +2388,11 @@ contains ! Determine incoming energy bin. We need to tell the energy filter this ! is a tracklength tally so it uses the pre-collision energy. - j = t % find_filter(FILTER_ENERGYIN) - if (j > 0) then - call t % filters(i) % obj % get_next_bin(p, ESTIMATOR_TRACKLENGTH, & - & NO_BIN_FOUND, matching_bins(j), filt_score) - if (matching_bins(j) == NO_BIN_FOUND) cycle + if (i_filter_energy > 0) then + call t % filters(i_filter_energy) % obj % get_next_bin(p, & + ESTIMATOR_TRACKLENGTH, NO_BIN_FOUND, & + matching_bins(i_filter_energy), filt_score) + if (matching_bins(i_filter_energy) == NO_BIN_FOUND) cycle end if ! ======================================================================= From e5bde6f1c223be15908f9c1c6075460da6e1af17 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 16 Aug 2016 18:01:45 -0400 Subject: [PATCH 288/417] updated test results --- .../test_asymmetric_lattice/results_true.dat | 2 +- tests/test_filter_mesh_2d/results_true.dat | 868 +- tests/test_filter_mesh_3d/results_true.dat | 15332 ++++++++-------- tests/test_mg_tallies/results_true.dat | 2240 +-- tests/test_mgxs_library_mesh/results_true.dat | 144 +- tests/test_quadric_surfaces/results_true.dat | 2 +- tests/test_score_current/results_true.dat | 2 +- .../test_sourcepoint_restart/results_true.dat | 3420 ++-- .../test_statepoint_restart/results_true.dat | 3420 ++-- tests/test_tallies/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_slice_merge/results_true.dat | 32 +- tests/test_track_output/results_true.dat | 2 +- tests/test_triso/results_true.dat | 2 +- 14 files changed, 12735 insertions(+), 12735 deletions(-) diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index a33b9c9e59..c2014a1912 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -bc8bef8121f9b6470e4fea817a4e48eabb1ecba1f42761a4cbd77d71181bf9e1612df4a3d6ddfbcd08a3086ac873e5f3c3e560bf96b2b7c959a2f7aad7e4e08d \ No newline at end of file +280d08e4f4e6768f3100caff91a4c77d3a29ebc05353bdda47e3634f48e2ba2bd1d6a0030a00f97f2ea4c647c93155279697545cf2f951f71b58cfcd400c99de \ 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 f4c5979526..e223464e5d 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -19,6 +19,82 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.486634E-01 +2.561523E-02 +5.574899E-01 +1.049542E-01 +7.713789E-01 +2.948263E-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 +1.149324E-01 +1.320945E-02 +2.001407E+00 +1.600000E+00 +9.572791E-01 +8.942065E-01 +0.000000E+00 +0.000000E+00 +2.501129E-02 +6.255649E-04 +1.484996E-01 +2.205214E-02 +3.079994E-03 +9.486363E-06 +1.090478E+00 +5.381842E-01 +4.235354E+00 +5.638989E+00 +3.267703E-01 +4.763836E-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 +2.465048E-02 +3.049063E-04 +7.159080E-01 +2.988090E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.984785E-01 +1.486414E-01 +9.889831E-01 +3.657975E-01 +1.492571E+00 +6.318792E-01 +6.314497E-01 +1.552199E-01 +2.034493E+00 +1.162774E+00 +1.252153E+00 +4.563949E-01 +3.452042E-02 +1.191659E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -39,6 +115,186 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.251028E-01 +1.306358E-02 +2.850134E+00 +2.250972E+00 +2.083542E+00 +1.599782E+00 +3.417016E+00 +2.972256E+00 +1.533605E+00 +8.644495E-01 +1.962807E-01 +2.410165E-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 +4.131352E-01 +6.756111E-02 +2.677440E+00 +2.382024E+00 +5.709899E+00 +7.095076E+00 +4.663027E+00 +5.641430E+00 +1.357567E+00 +4.362757E-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 +3.473499E-01 +1.206520E-01 +5.299733E-01 +2.205463E-01 +4.425042E-01 +5.854257E-02 +9.831996E-01 +4.846833E-01 +8.393183E-03 +7.044551E-05 +4.457483E-01 +5.194318E-02 +1.194169E+00 +4.790398E-01 +1.261505E+00 +7.705206E-01 +2.356462E-01 +3.082678E-02 +3.679762E-01 +1.354065E-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 +1.597805E-01 +1.297695E-02 +1.349846E+00 +6.808561E-01 +2.237774E+00 +1.109643E+00 +4.237107E-01 +6.002592E-02 +0.000000E+00 +0.000000E+00 +5.424180E-02 +2.942173E-03 +1.420269E-01 +2.017163E-02 +1.954689E+00 +9.874394E-01 +1.380025E+00 +4.289689E-01 +5.043842E-02 +2.544034E-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 +1.438568E-01 +1.597365E-02 +6.874433E-01 +2.287801E-01 +7.495196E-01 +1.939234E-01 +8.922533E-01 +2.835397E-01 +7.462571E-02 +5.568996E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.449729E-01 +2.101714E-02 +1.876891E-01 +1.675278E-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 +7.002118E-02 +4.902965E-03 +8.612279E-02 +5.910825E-03 +5.651386E-01 +1.286874E-01 +3.804197E-01 +1.225870E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.355899E-02 +5.550260E-04 +3.214464E-01 +1.033278E-01 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -55,456 +311,200 @@ tally 1: 0.000000E+00 1.474078E-01 2.172907E-02 +5.128548E-01 +1.258296E-01 +9.004671E-01 +2.791173E-01 +5.729905E-01 +2.680764E-01 +1.009880E-01 +9.392497E-03 +3.174349E-01 +1.007649E-01 +2.560771E-01 +6.557550E-02 +3.571813E-02 +1.275785E-03 +2.222160E-02 +4.937996E-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 6.386562E-02 4.078817E-03 +1.379070E+00 +4.300261E-01 +6.485841E+00 +1.046238E+01 +5.509254E-01 +1.200498E-01 +2.424177E+00 +1.613025E+00 +1.260449E+00 +5.881747E-01 +9.262861E-03 +8.580060E-05 +6.588191E-01 +2.543824E-01 +2.028040E-01 +4.112944E-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 +1.040956E+00 +3.089102E-01 +6.743595E+00 +1.135216E+01 +1.494910E+00 +6.327940E-01 +2.226123E+00 +1.203763E+00 +3.147407E+00 +3.333589E+00 +2.505905E-01 +6.279558E-02 +4.171440E-01 +8.701395E-02 +1.417427E+00 +9.671327E-01 +1.398153E-01 +1.954832E-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 2.905797E-02 8.443654E-04 -7.532560E-03 -5.673946E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.149324E-01 -1.320945E-02 -2.465048E-02 -3.049063E-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 -7.002118E-02 -4.902965E-03 -5.128548E-01 -1.258296E-01 -1.379070E+00 -4.300261E-01 -1.040956E+00 -3.089102E-01 1.237157E+00 6.284409E-01 -9.539296E-01 -5.206980E-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 -2.001407E+00 -1.600000E+00 -7.159080E-01 -2.988090E-01 -0.000000E+00 -0.000000E+00 -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.004671E-01 -2.791173E-01 -6.485841E+00 -1.046238E+01 -6.743595E+00 -1.135216E+01 7.681046E-01 1.896252E-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 -9.572791E-01 -8.942065E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.729905E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.425042E-01 -5.854257E-02 -2.237774E+00 -1.109643E+00 -7.495196E-01 -1.939234E-01 -3.804197E-01 -1.225870E-01 -1.009880E-01 -9.392497E-03 -2.424177E+00 -1.613025E+00 -2.226123E+00 -1.203763E+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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.501129E-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.011069E-02 -9.066538E-04 -0.000000E+00 -0.000000E+00 -5.118696E-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.580060E-05 -2.505905E-01 -6.279558E-02 5.136552E-01 2.638417E-01 -1.441275E+00 -5.086865E-01 -2.913901E+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.513270E+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.790398E-01 -1.420269E-01 -2.017163E-02 -0.000000E+00 -0.000000E+00 -3.214464E-01 -1.033278E-01 -2.222160E-02 -4.937996E-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.367404E+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.034493E+00 -1.162774E+00 -1.533605E+00 -8.644495E-01 -4.663027E+00 -5.641430E+00 -1.261505E+00 -7.705206E-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 -1.398153E-01 -1.954832E-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 -7.713789E-01 -2.948263E-01 -3.267703E-01 -4.763836E-02 -1.252153E+00 -4.563949E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -3.679762E-01 -1.354065E-01 -5.043842E-02 -2.544034E-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 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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.208007E-01 2.057626E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.532560E-03 +5.673946E-05 +9.539296E-01 +5.206980E-01 +0.000000E+00 +0.000000E+00 +6.927475E-01 +2.317744E-01 +3.953753E-01 +1.420303E-01 +1.377786E-01 +1.716503E-02 +1.441275E+00 +5.086865E-01 +4.033076E-01 +5.492660E-02 +8.534416E-01 +2.290345E-01 +1.422521E+00 +6.953668E-01 +1.940736E-01 +2.763730E-02 +0.000000E+00 +0.000000E+00 +5.312751E-02 +1.423243E-03 1.050464E+00 5.524605E-01 +5.214580E-02 +2.719184E-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 +3.011069E-02 +9.066538E-04 +2.913901E+00 +1.841912E+00 +4.513270E+00 +5.611449E+00 +5.367404E+00 +6.853344E+00 +1.137705E+00 +5.670907E-01 +6.059470E-02 +3.671718E-03 +0.000000E+00 +0.000000E+00 +3.374418E-01 +1.138670E-01 7.171591E-02 5.143172E-03 0.000000E+00 @@ -525,24 +525,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 -5.214580E-02 -2.719184E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +6.978650E-01 +2.584000E-01 +1.653243E+00 +8.369762E-01 +1.237276E+00 +4.961691E-01 +3.521780E-01 +6.575561E-02 +3.479381E-01 +1.210609E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -565,6 +557,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.118696E-02 +2.620104E-03 +1.451562E-02 +2.107031E-04 +1.045336E-01 +1.092727E-02 +5.835684E-02 +3.405521E-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 88a5228278..44cd1bcc8c 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -19,6 +19,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.784067E-02 +1.431916E-03 +5.718522E-03 +3.270150E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -51,6 +55,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.373020E-01 +2.296999E-01 +1.235293E-01 +1.096341E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -81,6 +89,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.646162E-01 +2.722494E-02 +3.297202E-01 +5.369813E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -111,6 +123,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.327761E-01 +1.698166E-02 +4.895403E-02 +2.396497E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -581,6 +597,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.013954E-02 +4.056009E-04 +1.244176E-01 +1.547973E-02 +6.200444E-02 +3.844551E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -609,6 +631,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.919075E-02 +1.535915E-03 +1.076125E+00 +3.620665E-01 +1.895015E-01 +3.591083E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -637,6 +665,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.532992E-02 +5.674596E-03 +2.779035E-01 +3.159893E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -865,6 +897,2854 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.849679E-01 +3.421312E-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 +4.562052E-01 +1.041492E-01 +9.262861E-03 +8.580060E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.680080E-01 +7.239472E-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 +1.211417E-01 +1.467532E-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 +4.308558E-02 +1.856368E-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 +7.785033E-03 +6.060673E-05 +2.958840E-01 +7.992999E-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 +2.470259E-01 +3.094098E-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 +8.606674E-02 +7.407483E-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 +3.650200E-01 +7.121133E-02 +1.853335E-01 +3.434852E-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 +4.409446E-02 +1.944321E-03 +4.226996E-01 +1.360325E-01 +0.000000E+00 +0.000000E+00 +1.324670E-01 +1.754750E-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 +1.729718E-01 +2.991925E-02 +8.563908E-02 +4.712912E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.039507E-02 +3.647564E-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 +4.254527E-01 +1.810100E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.309308E-01 +5.812760E-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.162108E+00 +5.854785E-01 +1.144903E+00 +4.944036E-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.206585E-01 +1.455847E-02 +5.987372E-02 +2.032332E-03 +1.257462E-01 +1.456033E-02 +2.157774E-03 +4.655990E-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 +2.358169E-02 +5.560962E-04 +1.892565E-01 +3.581801E-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.668276E-01 +2.783144E-02 +1.382909E-01 +1.912437E-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 +1.553405E-01 +1.453017E-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 +5.089221E-02 +2.590017E-03 +2.384503E+00 +1.209500E+00 +4.612134E-01 +1.063957E-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.032011E-01 +1.065047E-02 +2.762615E-01 +3.559292E-02 +1.771223E-02 +3.137232E-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 +2.465169E-02 +6.077057E-04 +2.812104E-01 +7.907926E-02 +7.317899E-02 +5.355165E-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 +2.994456E-02 +8.966764E-04 +9.597166E-01 +3.206571E-01 +2.946064E-02 +8.679293E-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.391190E-01 +2.413267E-02 +0.000000E+00 +0.000000E+00 +3.630182E-02 +1.317822E-03 +7.945599E-03 +6.313254E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.640780E-01 +1.059726E-01 +7.558522E-01 +3.387696E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.753697E-01 +3.075454E-02 +9.929647E-02 +9.859789E-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.755790E-03 +3.082798E-06 +6.310707E-02 +2.175394E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.071175E-01 +5.415795E-02 +3.663834E-02 +8.107316E-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 +3.678545E-02 +1.353169E-03 +4.196949E-01 +8.821556E-02 +6.573174E-01 +3.473163E-01 +1.432122E-01 +1.520012E-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.642655E-02 +9.273189E-03 +5.463078E-01 +1.319680E-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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.214217E-01 +2.168033E-02 +1.223027E-01 +1.495794E-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.415665E-01 +2.918471E-02 +8.969160E-01 +4.355459E-01 +1.358408E-01 +1.019608E-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.149703E+00 +3.989107E-01 +8.078002E-01 +1.757558E-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.449729E-01 +2.101714E-02 +1.354717E-01 +9.718740E-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 +9.977770E-03 +9.955590E-05 +3.164476E-01 +5.280988E-02 +1.124256E-01 +1.263950E-02 +1.739446E-01 +3.025673E-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.565669E-02 +2.451318E-04 +3.823223E-01 +4.488260E-02 +1.508419E-01 +2.275329E-02 +6.960539E-02 +4.844911E-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 +9.052674E-02 +8.195092E-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.022426E-01 +9.085949E-03 +2.615062E-01 +3.533945E-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 +8.322470E-02 +3.984732E-03 +1.034037E-01 +3.976885E-03 +5.731061E-01 +1.428980E-01 +1.115403E+00 +3.834871E-01 +1.574353E-01 +2.355445E-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 +3.580128E-01 +9.575996E-02 +9.766238E-01 +3.187064E-01 +1.641852E+00 +9.021844E-01 +5.073845E-01 +9.507188E-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 +5.348043E-02 +2.860156E-03 +2.874488E-01 +4.930982E-02 +1.164369E-01 +1.355756E-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 +4.165841E-02 +1.735423E-03 +8.832720E-02 +7.801694E-03 +8.209316E-02 +3.505893E-03 +3.679762E-01 +1.354065E-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 +8.049861E-01 +1.599684E-01 +5.722246E-01 +9.204135E-02 +3.727350E-02 +1.389314E-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 +5.221740E-02 +2.726657E-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 +1.125733E-01 +1.267274E-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 +4.396029E-01 +6.352573E-02 +2.073790E+00 +1.188596E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.200689E-01 +2.392978E-01 +4.156041E+00 +4.315163E+00 +2.887905E-01 +4.216084E-02 +3.721224E-03 +1.384751E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.998387E-02 +7.936690E-03 +3.050953E-01 +3.658881E-02 +0.000000E+00 +0.000000E+00 +1.426667E-01 +2.035380E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.137535E-02 +2.639427E-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.742414E-01 +7.520835E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.027660E-02 +1.056086E-04 +8.945207E-02 +4.272339E-03 +4.274862E-02 +1.827445E-03 +2.729010E-01 +4.130164E-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 +3.011069E-02 +9.066538E-04 +4.871561E-01 +9.900028E-02 +2.263564E+00 +1.440716E+00 +2.844653E+00 +1.857026E+00 +4.871086E-01 +1.359461E-01 +3.788668E-02 +1.435401E-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 +4.290530E-02 +1.295592E-03 +2.593320E-01 +3.729386E-02 +2.357411E-01 +2.637254E-02 +8.896790E-03 +7.915287E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.316492E-02 +1.733152E-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 @@ -899,10 +3779,10 @@ tally 1: 0.000000E+00 1.083669E-01 1.174340E-02 -3.904088E-02 -1.524190E-03 -0.000000E+00 -0.000000E+00 +2.623543E-01 +4.112454E-02 +3.364085E-01 +6.085429E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -933,6 +3813,16 @@ tally 1: 0.000000E+00 6.386562E-02 4.078817E-03 +5.669837E-01 +1.209384E-01 +9.609431E-01 +2.621642E-01 +8.878742E-02 +7.053770E-03 +2.075806E-02 +4.308970E-04 +4.751513E-01 +1.205013E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -957,26 +3847,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 +1.748649E-01 +1.584562E-02 +1.009424E+00 +3.060875E-01 +4.015408E-01 +7.884715E-02 +7.406533E-02 +5.485672E-03 +8.567983E-02 +7.341033E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1001,22 +3881,22 @@ tally 1: 0.000000E+00 2.905797E-02 8.443654E-04 +1.089115E+00 +5.614559E-01 +1.622477E-01 +1.848987E-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 +6.715405E-02 +4.509666E-03 +1.001959E-01 +1.003923E-02 +2.054517E-01 +4.221041E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1035,6 +3915,8 @@ tally 1: 0.000000E+00 7.532560E-03 5.673946E-05 +6.796882E-01 +2.348838E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1043,6 +3925,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.510694E-01 +2.592974E-01 +1.074496E-01 +1.154542E-02 +7.434457E-03 +5.527115E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1071,8 +3959,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.399012E+00 +6.326649E-01 +6.206466E-01 +1.107636E-01 +3.432563E-02 +1.076561E-03 0.000000E+00 0.000000E+00 +2.270802E-02 +5.156541E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1097,8 +3993,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.262772E-01 +9.802530E-02 +8.510644E-02 +4.903433E-03 +5.896045E-03 +3.476335E-05 0.000000E+00 0.000000E+00 +4.847729E-02 +2.350047E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1127,6 +4031,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.835684E-02 +3.405521E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1223,6 +4129,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.508012E-02 +1.230615E-03 +1.429072E-01 +2.042247E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1253,46 +4163,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.306116E-02 -1.705939E-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 +1.491740E-02 +2.225288E-04 +2.985580E-01 +4.742470E-02 +2.715682E-01 +6.930003E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1323,6 +4199,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.046129E-01 +1.094386E-02 +3.355127E-01 +7.824603E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1469,16 +4349,26 @@ tally 1: 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.112454E-02 +0.000000E+00 +0.000000E+00 +3.904088E-02 +1.524190E-03 2.258489E-01 5.100771E-02 +8.236284E-02 +4.869311E-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 @@ -1501,18 +4391,4616 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.729718E-01 -2.991925E-02 -2.994456E-02 -8.966764E-04 -9.977770E-03 -9.955590E-05 -4.396029E-01 -6.352573E-02 -5.669837E-01 -1.209384E-01 1.423672E-01 1.771243E-02 +4.350509E-01 +1.399885E-01 +0.000000E+00 +0.000000E+00 +8.573314E-01 +2.242082E-01 +2.686970E-01 +3.401364E-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.330296E+00 +6.633075E-01 +1.754088E+00 +8.632560E-01 +1.701984E-01 +2.896749E-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.805840E-02 +2.309610E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.091381E-02 +5.028768E-03 +0.000000E+00 +0.000000E+00 +4.465012E-01 +1.993633E-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 +1.811100E-01 +3.280084E-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 +4.954942E-01 +1.916582E-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.582984E-01 +2.505838E-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.905640E-01 +8.442745E-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 +4.016991E-02 +1.613622E-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 +3.209188E-02 +1.029889E-03 +1.711788E+00 +1.416936E+00 +1.685770E-02 +2.841820E-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 +8.728851E-03 +7.619284E-05 +1.524559E+00 +7.117855E-01 +2.225245E+00 +1.498774E+00 +1.375452E-01 +1.835673E-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 +4.457483E-01 +5.194318E-02 +4.628619E-01 +9.960982E-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 +5.424180E-02 +2.942173E-03 +1.420269E-01 +2.017163E-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 +2.267546E-01 +2.900091E-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 +1.862835E-02 +3.470153E-04 +7.547884E-04 +5.697055E-07 +8.039207E-02 +6.462885E-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 +1.085624E-02 +1.178580E-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 +1.460448E-01 +2.132907E-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 +1.385333E-02 +1.919148E-04 +4.750552E-01 +9.493583E-02 +4.475531E-02 +2.003038E-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.582575E-01 +2.504545E-02 +7.244018E-01 +2.009724E-01 +1.675068E+00 +7.021248E-01 +1.548403E-01 +2.397552E-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.325684E-01 +5.701948E-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 +1.326035E-02 +1.758368E-04 +1.155931E-01 +1.336177E-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.309870E-02 +1.095524E-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 +2.215622E-02 +4.908983E-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.890902E-02 +1.513911E-03 +1.333296E-03 +1.777678E-06 +5.545269E-01 +1.316670E-01 +9.183632E-01 +2.857440E-01 +3.452042E-02 +1.191659E-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.009713E-01 +3.766430E-02 +4.064749E-01 +9.731066E-02 +7.510889E-01 +3.262838E-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.834594E-02 +3.365736E-04 +5.221919E-01 +2.558641E-01 +6.058351E-02 +1.850615E-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 +1.075776E-01 +1.157294E-02 +1.408841E-01 +9.930494E-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.324866E-01 +1.755269E-02 +2.157489E-01 +2.724501E-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.362142E-01 +5.579715E-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 +7.171591E-02 +5.143172E-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 +3.079994E-03 +9.486363E-06 +2.573597E-01 +5.360516E-02 +7.663116E-02 +5.274654E-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.522719E-01 +2.318672E-02 +1.234218E+00 +4.999181E-01 +6.053656E-02 +3.664676E-03 +3.866882E-01 +1.202701E-01 +4.069831E-03 +1.656352E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.099509E-01 +6.290302E-02 +5.245828E-01 +7.576335E-02 +5.521306E-01 +1.121121E-01 +1.518297E-01 +1.402100E-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.298371E-01 +1.330104E-02 +1.431856E-01 +2.050213E-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.602120E-02 +1.297527E-03 +1.614711E-02 +2.607292E-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 +1.367392E-03 +1.869762E-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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.028040E-01 +4.112944E-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.876735E-02 +3.142665E-04 +1.266345E+00 +7.682954E-01 +1.355863E-01 +1.838365E-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 +4.894914E-01 +7.732641E-02 +7.546765E-01 +2.070654E-01 +1.481609E-01 +2.195167E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.589438E-01 +2.060098E-02 +4.924729E-01 +2.024222E-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.693310E-02 +6.692041E-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 +2.901092E-02 +8.416334E-04 +6.926635E-01 +2.428256E-01 +5.214580E-02 +2.719184E-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 +1.067391E-01 +1.139323E-02 +2.330690E-01 +5.432115E-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 +3.631683E-01 +1.318912E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.948898E-01 +3.798204E-02 +1.473267E-01 +2.170516E-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.021145E-01 +1.042738E-02 +5.996351E-01 +1.076802E-01 +7.003137E-01 +2.735252E-01 +3.750187E-01 +1.153951E-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 +2.054694E-02 +4.221768E-04 +9.531928E-02 +6.215764E-03 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.315614E-02 +2.242266E-03 +9.974406E-01 +3.947626E-01 +6.997755E-01 +1.672455E-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.613314E-01 +2.177882E-02 +0.000000E+00 +0.000000E+00 +9.028974E-02 +4.229429E-03 +7.462571E-02 +5.568996E-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 +9.683052E-03 +9.376150E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.228981E-03 +1.788428E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.883980E-03 +7.892509E-05 +2.832772E-02 +8.024597E-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 +3.591875E-02 +1.290157E-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 +5.993460E-03 +3.592156E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.374400E-01 +1.888975E-02 +1.770925E-01 +1.577698E-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.699969E-01 +4.178442E-02 +7.084057E-01 +1.536166E-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 +5.118696E-02 +2.620104E-03 +1.451562E-02 +2.107031E-04 +5.751275E-02 +3.307717E-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 +2.397100E-02 +5.746090E-04 +1.165202E-01 +6.930471E-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 +5.230381E-02 +2.735689E-03 +4.899885E-02 +2.400887E-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.526715E-02 +2.330858E-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 +4.241176E-01 +9.055699E-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 +1.715160E-01 +1.827795E-02 +3.979721E-01 +1.307262E-01 +2.136983E-01 +4.566698E-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 +3.699789E-01 +1.099867E-01 +2.906510E-01 +2.666266E-02 +4.420414E-02 +1.954006E-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 +6.974266E-02 +4.864039E-03 +3.006400E-01 +3.566201E-02 +9.975381E-01 +3.048346E-01 +1.525008E-01 +1.765369E-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 +3.896367E-02 +1.518168E-03 +4.750135E-01 +1.508282E-01 +6.670089E-01 +1.688817E-01 +8.019636E-01 +2.406005E-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 +2.396759E-03 +5.744454E-06 +3.936907E-01 +7.202022E-02 +3.707367E-01 +1.159281E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.355899E-02 +5.550260E-04 +2.878871E-01 +8.287897E-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.524618E-01 +6.373694E-02 +1.453317E-02 +2.112130E-04 +2.222160E-02 +4.937996E-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 +5.015914E-02 +2.515940E-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 +8.266086E-02 +6.832818E-03 +1.019759E-02 +1.039909E-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 +2.927144E-03 +8.568173E-06 +8.685372E-02 +7.543569E-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 +3.206602E-02 +8.744271E-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 +1.590867E-03 +2.530859E-06 +5.000909E-01 +1.141659E-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 +4.702083E-02 +2.210958E-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 +1.667122E-01 +1.609363E-02 +2.882401E-01 +4.938325E-02 +1.186127E-01 +1.335481E-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 +5.802912E-01 +1.787062E-01 +2.509994E-01 +3.312022E-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.071904E-01 +2.889953E-02 +3.636704E-02 +1.322562E-03 +4.636650E-02 +2.149852E-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.023202E+00 +7.786623E-01 +3.230798E-01 +3.896399E-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.698392E-01 +1.770322E-02 +1.047304E-01 +5.484511E-03 +0.000000E+00 +0.000000E+00 +9.764118E-02 +9.533800E-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 +5.319541E-03 +2.829752E-05 +1.034262E-01 +6.886191E-03 +4.038686E-02 +1.631098E-03 +9.389954E-01 +4.408852E-01 +8.393183E-03 +7.044551E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.176521E-02 +2.679637E-03 +5.390926E-01 +9.312562E-02 +2.712099E-01 +3.687123E-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.048931E-01 +7.753447E-03 +5.109842E-02 +1.598239E-03 +8.251077E-02 +3.717992E-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 +8.372603E-02 +5.869219E-03 +1.714479E-01 +1.505049E-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.355929E-02 +1.126226E-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.615369E-03 +1.307089E-05 +2.118496E-02 +4.488027E-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 +5.411503E-04 +2.928436E-07 +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.972802E-01 +2.058844E-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 +8.619416E-02 +6.961721E-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.164981E-01 +1.357181E-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 +2.682268E-01 +7.194562E-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.786607E-02 +3.191964E-04 +2.870320E-01 +4.518339E-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 +2.501129E-02 +6.255649E-04 +1.484996E-01 +2.205214E-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 +8.907152E-02 +7.933735E-03 +1.077088E-01 +1.160118E-02 +0.000000E+00 +0.000000E+00 +1.962851E-01 +3.852783E-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.978887E-01 +2.156289E-01 +2.621971E-01 +4.860489E-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.630962E-02 +2.320465E-03 +9.867531E-02 +9.736817E-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 +3.420304E-01 +1.169848E-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 +2.688171E-02 +7.226262E-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 @@ -1529,24 +9017,24 @@ tally 1: 0.000000E+00 1.722215E-02 2.966024E-04 +1.480967E+00 +5.223269E-01 +1.561576E-01 +2.112454E-02 +3.978837E-01 +1.583114E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.137979E-02 +1.294997E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.565669E-02 -2.451318E-04 -8.200689E-01 -2.392978E-01 -1.748649E-01 -1.584562E-02 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1563,24 +9051,18 @@ tally 1: 0.000000E+00 3.036511E-02 9.220402E-04 +3.308084E-01 +5.110266E-02 +5.595964E-02 +2.146289E-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 -9.998387E-02 -7.936690E-03 -1.089115E+00 -5.614559E-01 -4.805840E-02 -2.309610E-03 +1.219441E-01 +1.487035E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1603,16 +9085,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.373673E-02 +4.377147E-03 +7.403983E-02 +3.220776E-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 -2.742414E-01 -7.520835E-02 -6.796882E-01 -2.348838E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1803,582 +9291,6 @@ tally 1: 0.000000E+00 3.448095E-01 5.774877E-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.033873E-01 -2.672168E-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 -5.319541E-03 -2.829752E-05 -3.420304E-01 -1.169848E-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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.896367E-02 -1.518168E-03 -1.048931E-01 -7.753447E-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 -2.396759E-03 -5.744454E-06 -8.372603E-02 -5.869219E-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.409446E-02 -1.944321E-03 -2.812104E-01 -7.907926E-02 -0.000000E+00 -0.000000E+00 -1.125733E-01 -1.267274E-02 -3.364085E-01 -6.085429E-02 -8.236284E-02 -4.869311E-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 -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.609431E-01 -2.621642E-01 -4.350509E-01 -1.399885E-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 -5.411503E-04 -2.928436E-07 -1.480967E+00 -5.223269E-01 -1.727443E-01 -1.798769E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.254527E-01 -1.810100E-01 -2.391190E-01 -2.413267E-02 -3.823223E-01 -4.488260E-02 -4.156041E+00 -4.315163E+00 -1.009424E+00 -3.060875E-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 -3.308084E-01 -5.110266E-02 -2.004281E-01 -2.595071E-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.052674E-02 -8.195092E-03 -3.050953E-01 -3.658881E-02 -1.622477E-01 -1.848987E-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.164981E-01 -1.357181E-02 -9.373673E-02 -4.377147E-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 1.370265E-01 1.583751E-02 0.000000E+00 @@ -2409,10 +9321,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.306116E-02 +1.705939E-04 +6.033873E-01 +2.672168E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.094070E-01 +8.793386E-02 +4.867319E-01 +8.396510E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2443,6 +9363,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.251028E-01 +1.306358E-02 +2.410067E-01 +5.808423E-02 +4.089938E-03 +9.542099E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2505,14 +9431,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.602120E-02 -1.297527E-03 -2.054694E-02 -4.221768E-04 -3.699789E-01 -1.099867E-01 -1.034262E-01 -6.886191E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2541,12 +9459,6 @@ 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 @@ -2575,12 +9487,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -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 +9517,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.936907E-01 -7.202022E-02 -1.714479E-01 -1.505049E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2623,10 +9525,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.226996E-01 -1.360325E-01 -7.317899E-02 -5.355165E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2651,22 +9549,24 @@ 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 +4.381770E-02 +1.919990E-03 7.711190E-02 5.946245E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.946064E-02 -8.679293E-04 -1.124256E-01 -1.263950E-02 -0.000000E+00 -0.000000E+00 -8.878742E-02 -7.053770E-03 +1.009880E-01 +9.392497E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2683,24 +9583,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.561576E-01 -2.112454E-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 +1.727443E-01 +1.798769E-02 1.640942E-01 2.692690E-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.508419E-01 -2.275329E-02 -2.887905E-01 -4.216084E-02 -4.015408E-01 -7.884715E-02 +7.475045E-01 +2.090484E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2717,10 +9617,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.595964E-02 -2.146289E-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 +2.004281E-01 +2.595071E-02 3.159701E-01 3.538768E-02 +5.329778E-01 +1.118275E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2751,16 +9665,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.403983E-02 -3.220776E-03 1.220497E-01 1.051103E-02 0.000000E+00 0.000000E+00 -4.308558E-02 -1.856368E-03 -1.206585E-01 -1.455847E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2789,582 +9701,6 @@ tally 1: 0.000000E+00 5.069737E-01 1.407934E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.666266E-02 -4.038686E-02 -1.631098E-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.367392E-03 -1.869762E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.670089E-01 -1.688817E-01 -8.251077E-02 -3.717992E-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 -9.683052E-03 -9.376150E-05 -3.707367E-01 -1.159281E-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 -1.009880E-01 -9.392497E-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 -1.739446E-01 -3.025673E-02 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -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.978837E-01 -1.583114E-01 -7.475045E-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.960539E-02 -4.844911E-03 -3.721224E-03 -1.384751E-05 -7.406533E-02 -5.485672E-03 -1.330296E+00 -6.633075E-01 -1.862835E-02 -3.470153E-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 -5.329778E-01 -1.118275E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.987372E-02 -2.032332E-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 7.471872E-02 5.582887E-03 0.000000E+00 @@ -3491,6339 +9827,3 @@ 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 -2.501129E-02 -6.255649E-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 -8.907152E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.251028E-01 -1.306358E-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 -4.420414E-02 -1.954006E-03 -9.389954E-01 -4.408852E-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.525008E-01 -1.765369E-02 -2.712099E-01 -3.687123E-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.028974E-02 -4.229429E-03 -8.019636E-01 -2.406005E-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 -1.849679E-01 -3.421312E-02 -1.324670E-01 -1.754750E-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 -4.562052E-01 -1.041492E-01 -6.039507E-02 -3.647564E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.680080E-01 -7.239472E-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.567983E-02 -7.341033E-03 -1.754088E+00 -8.632560E-01 -7.547884E-04 -5.697055E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.211417E-01 -1.467532E-02 -1.144903E+00 -4.944036E-01 -7.558522E-01 -3.387696E-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.257462E-01 -1.456033E-02 -1.755790E-03 -3.082798E-06 -0.000000E+00 -0.000000E+00 -1.027660E-02 -1.056086E-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 -3.011069E-02 -9.066538E-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 -5.118696E-02 -2.620104E-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 -1.484996E-01 -2.205214E-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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -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.978887E-01 -2.156289E-01 -2.410067E-01 -5.808423E-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 -8.728851E-03 -7.619284E-05 -1.582575E-01 -2.504545E-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.698392E-01 -1.770322E-02 -7.630962E-02 -2.320465E-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 -8.393183E-03 -7.044551E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.462571E-02 -5.568996E-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 -2.524618E-01 -6.373694E-02 -3.615369E-03 -1.307089E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.262861E-03 -8.580060E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.701984E-01 -2.896749E-02 -8.039207E-02 -6.462885E-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 -6.715405E-02 -4.509666E-03 -4.465012E-01 -1.993633E-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 -2.157774E-03 -4.655990E-06 -6.310707E-02 -2.175394E-03 -8.322470E-02 -3.984732E-03 -8.945207E-02 -4.272339E-03 -7.510694E-01 -2.592974E-01 -1.811100E-01 -3.280084E-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.927144E-03 -8.568173E-06 -2.682268E-01 -7.194562E-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 -3.678545E-02 -1.353169E-03 -3.580128E-01 -9.575996E-02 -4.871561E-01 -9.900028E-02 -1.399012E+00 -6.326649E-01 -4.954942E-01 -1.916582E-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.374400E-01 -1.888975E-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.262772E-01 -9.802530E-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.699969E-01 -4.178442E-02 -1.590867E-03 -2.530859E-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.451562E-02 -2.107031E-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 -3.079994E-03 -9.486363E-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 -1.429072E-01 -2.042247E-02 -4.016991E-02 -1.613622E-03 -0.000000E+00 -0.000000E+00 -3.890902E-02 -1.513911E-03 -1.234218E+00 -4.999181E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.985580E-01 -4.742470E-02 -3.209188E-02 -1.029889E-03 -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.896399E-02 -2.621971E-01 -4.860489E-02 -4.089938E-03 -9.542099E-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 -1.046129E-01 -1.094386E-02 -1.524559E+00 -7.117855E-01 -7.244018E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.457483E-01 -5.194318E-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 -5.424180E-02 -2.942173E-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 -2.355899E-02 -5.550260E-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 -1.453317E-02 -2.112130E-04 -2.118496E-02 -4.488027E-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 -5.015914E-02 -2.515940E-03 -5.972802E-01 -2.058844E-01 -1.137979E-02 -1.294997E-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 -1.075776E-01 -1.157294E-02 -1.876735E-02 -3.142665E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.034037E-01 -3.976885E-03 -4.274862E-02 -1.827445E-03 -1.074496E-01 -1.154542E-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.693310E-02 -6.692041E-04 -3.591875E-02 -1.290157E-03 -8.685372E-02 -7.543569E-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 -2.358169E-02 -5.560962E-04 -4.196949E-01 -8.821556E-02 -9.766238E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.770925E-01 -1.577698E-02 -3.206602E-02 -8.744271E-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.668276E-01 -2.783144E-02 -9.642655E-02 -9.273189E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.084057E-01 -1.536166E-01 -5.000909E-01 -1.141659E-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 -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.784067E-02 -1.431916E-03 -2.013954E-02 -4.056009E-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 -2.397100E-02 -5.746090E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.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.674596E-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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.715682E-01 -6.930003E-02 -1.711788E+00 -1.416936E+00 -4.750552E-01 -9.493583E-02 -4.064749E-01 -9.731066E-02 -5.521306E-01 -1.121121E-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 -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.996351E-01 -1.076802E-01 -1.715160E-01 -1.827795E-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 -1.032011E-01 -1.065047E-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.628619E-01 -9.960982E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.420269E-01 -2.017163E-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 -2.878871E-01 -8.287897E-02 -3.355929E-02 -1.126226E-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 -2.222160E-02 -4.937996E-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.028040E-01 -4.112944E-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.408841E-01 -9.930494E-03 -1.266345E+00 -7.682954E-01 -0.000000E+00 -0.000000E+00 -1.019759E-02 -1.039909E-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.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.157489E-01 -2.724501E-02 -7.546765E-01 -2.070654E-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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.892565E-01 -3.581801E-02 -6.573174E-01 -3.473163E-01 -1.641852E+00 -9.021844E-01 -2.844653E+00 -1.857026E+00 -3.432563E-02 -1.076561E-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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.835684E-02 -3.405521E-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 -5.718522E-03 -3.270150E-05 -1.244176E-01 -1.547973E-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 -1.165202E-01 -6.930471E-03 -2.882401E-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 -0.000000E+00 -0.000000E+00 -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.215622E-02 -4.908983E-04 -7.663116E-02 -5.274654E-03 -2.330690E-01 -5.432115E-02 -4.899885E-02 -2.400887E-03 -2.509994E-01 -3.312022E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.646162E-01 -2.722494E-02 -2.779035E-01 -3.159893E-02 -2.470259E-01 -3.094098E-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.545269E-01 -1.316670E-01 -3.866882E-01 -1.202701E-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.327761E-01 -1.698166E-02 -0.000000E+00 -0.000000E+00 -8.606674E-02 -7.407483E-03 -1.553405E-01 -1.453017E-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.685770E-02 -2.841820E-04 -4.475531E-02 -2.003038E-03 -7.510889E-01 -3.262838E-01 -1.518297E-01 -1.402100E-02 -1.948898E-01 -3.798204E-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 -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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.762615E-01 -3.559292E-02 -8.969160E-01 -4.355459E-01 -8.832720E-02 -7.801694E-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.149703E+00 -3.989107E-01 -8.049861E-01 -1.599684E-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.449729E-01 -2.101714E-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 -1.355863E-01 -1.838365E-02 -4.228981E-03 -1.788428E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.929647E-02 -9.859789E-03 -2.615062E-01 -3.533945E-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 -1.481609E-01 -2.195167E-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.071175E-01 -5.415795E-02 -1.115403E+00 -3.834871E-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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.164369E-01 -1.355756E-02 -2.357411E-01 -2.637254E-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 -6.200444E-02 -3.844551E-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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.297202E-01 -5.369813E-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 -9.183632E-01 -2.857440E-01 -4.069831E-03 -1.656352E-05 -0.000000E+00 -0.000000E+00 -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.895403E-02 -2.396497E-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.473267E-01 -2.170516E-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 -1.853335E-01 -3.434852E-02 -4.612134E-01 -1.063957E-01 -1.223027E-01 -1.495794E-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 -3.750187E-01 -1.153951E-01 -2.136983E-01 -4.566698E-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 -1.771223E-02 -3.137232E-04 -1.358408E-01 -1.019608E-02 -8.209316E-02 -3.505893E-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 -8.078002E-01 -1.757558E-01 -5.722246E-01 -9.204135E-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.354717E-01 -9.718740E-03 -5.221740E-02 -2.726657E-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 -3.663834E-02 -8.107316E-04 -1.574353E-01 -2.355445E-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 -3.788668E-02 -1.435401E-03 -2.270802E-02 -5.156541E-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.896790E-03 -7.915287E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.452042E-02 -1.191659E-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 -3.679762E-01 -1.354065E-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 -3.727350E-02 -1.389314E-03 -1.316492E-02 -1.733152E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.589438E-01 -2.060098E-02 -8.883980E-03 -7.892509E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.085624E-02 -1.178580E-04 -1.326035E-02 -1.758368E-04 -0.000000E+00 -0.000000E+00 -2.901092E-02 -8.416334E-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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.924729E-01 -2.024222E-01 -2.832772E-02 -8.024597E-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.155931E-01 -1.336177E-02 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.171591E-02 -5.143172E-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 -5.214580E-02 -2.719184E-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 diff --git a/tests/test_mg_tallies/results_true.dat b/tests/test_mg_tallies/results_true.dat index 4a654639af..cb0498e511 100644 --- a/tests/test_mg_tallies/results_true.dat +++ b/tests/test_mg_tallies/results_true.dat @@ -11,166 +11,6 @@ tally 1: 3.574150E-04 9.366009E-02 2.196850E-03 -2.410307E+00 -1.211320E+00 -7.104710E-02 -1.056830E-03 -3.619111E+00 -2.712466E+00 -3.046789E-02 -2.019483E-04 -7.553639E-02 -1.241275E-03 -2.616860E+00 -1.407243E+00 -7.221083E-02 -1.059301E-03 -3.719840E+00 -2.827103E+00 -2.963219E-02 -1.775955E-04 -7.346451E-02 -1.091590E-03 -2.383417E+00 -1.171863E+00 -6.968054E-02 -9.924374E-04 -3.486989E+00 -2.493855E+00 -2.962148E-02 -1.817051E-04 -7.343795E-02 -1.116850E-03 -2.177844E+00 -9.998272E-01 -6.808817E-02 -9.543925E-04 -3.302614E+00 -2.268097E+00 -3.001326E-02 -1.847730E-04 -7.440926E-02 -1.135706E-03 -2.585363E+00 -1.416531E+00 -7.208386E-02 -1.068367E-03 -3.721777E+00 -2.868016E+00 -2.981132E-02 -1.871051E-04 -7.390860E-02 -1.150041E-03 -2.740199E+00 -1.663131E+00 -8.719535E-02 -1.596752E-03 -4.146740E+00 -3.682203E+00 -3.870935E-02 -3.136109E-04 -9.596871E-02 -1.927608E-03 -2.212799E+00 -1.000035E+00 -7.449165E-02 -1.135538E-03 -3.466616E+00 -2.419923E+00 -3.399202E-02 -2.463541E-04 -8.427346E-02 -1.514215E-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.099094E+00 8.919271E-01 7.540489E-02 @@ -181,166 +21,6 @@ tally 1: 2.711517E-04 8.768256E-02 1.666633E-03 -2.413065E+00 -1.186499E+00 -7.505466E-02 -1.154624E-03 -3.609948E+00 -2.664048E+00 -3.294274E-02 -2.242161E-04 -8.167207E-02 -1.378144E-03 -2.536174E+00 -1.301621E+00 -7.790327E-02 -1.242427E-03 -3.836384E+00 -2.980367E+00 -3.409705E-02 -2.443384E-04 -8.453386E-02 -1.501825E-03 -2.666159E+00 -1.492268E+00 -7.417343E-02 -1.141120E-03 -3.912196E+00 -3.186439E+00 -3.075257E-02 -1.953163E-04 -7.624217E-02 -1.200511E-03 -2.459342E+00 -1.286534E+00 -6.409323E-02 -8.519553E-04 -3.511461E+00 -2.568245E+00 -2.550853E-02 -1.387171E-04 -6.324108E-02 -8.526242E-04 -3.227353E+00 -2.189454E+00 -8.161989E-02 -1.366996E-03 -4.465292E+00 -4.143037E+00 -3.169508E-02 -2.069605E-04 -7.857885E-02 -1.272082E-03 -3.006650E+00 -1.972749E+00 -8.846181E-02 -1.643195E-03 -4.449165E+00 -4.222523E+00 -3.779771E-02 -2.999515E-04 -9.370858E-02 -1.843651E-03 -2.591189E+00 -1.530310E+00 -7.305643E-02 -1.114250E-03 -3.732882E+00 -3.031120E+00 -3.039294E-02 -1.919600E-04 -7.535057E-02 -1.179882E-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.667561E+00 1.528159E+00 6.981409E-02 @@ -351,166 +31,6 @@ tally 1: 1.628195E-04 6.863038E-02 1.000769E-03 -2.579691E+00 -1.399684E+00 -7.252523E-02 -1.085979E-03 -3.762646E+00 -2.966415E+00 -3.021298E-02 -1.872587E-04 -7.490441E-02 -1.150985E-03 -2.326398E+00 -1.111745E+00 -6.380790E-02 -8.422824E-04 -3.373074E+00 -2.338678E+00 -2.619114E-02 -1.463613E-04 -6.493342E-02 -8.996094E-04 -2.689651E+00 -1.483190E+00 -8.007622E-02 -1.328579E-03 -4.015410E+00 -3.294872E+00 -3.443210E-02 -2.525628E-04 -8.536450E-02 -1.552377E-03 -2.712538E+00 -1.496273E+00 -7.040893E-02 -1.033599E-03 -3.801423E+00 -2.967673E+00 -2.785218E-02 -1.687241E-04 -6.905150E-02 -1.037062E-03 -3.101358E+00 -2.022582E+00 -8.316566E-02 -1.469875E-03 -4.433641E+00 -4.167950E+00 -3.363316E-02 -2.428472E-04 -8.338377E-02 -1.492660E-03 -2.669269E+00 -1.482479E+00 -7.250461E-02 -1.097959E-03 -3.815372E+00 -3.039000E+00 -2.952621E-02 -1.837209E-04 -7.320176E-02 -1.129240E-03 -2.719836E+00 -1.670890E+00 -8.176774E-02 -1.472662E-03 -4.030045E+00 -3.607044E+00 -3.530219E-02 -2.721266E-04 -8.752165E-02 -1.672625E-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.643152E+00 1.461242E+00 7.777503E-02 @@ -521,166 +41,6 @@ tally 1: 2.353505E-04 8.228231E-02 1.446581E-03 -2.707136E+00 -1.528526E+00 -7.153411E-02 -1.046460E-03 -3.793295E+00 -2.976791E+00 -2.857458E-02 -1.671752E-04 -7.084247E-02 -1.027542E-03 -2.745209E+00 -1.561299E+00 -7.557988E-02 -1.164281E-03 -3.914803E+00 -3.154166E+00 -3.099509E-02 -1.948889E-04 -7.684344E-02 -1.197884E-03 -3.141608E+00 -2.000672E+00 -8.238823E-02 -1.366316E-03 -4.442048E+00 -3.976219E+00 -3.282615E-02 -2.177028E-04 -8.138301E-02 -1.338110E-03 -3.078971E+00 -1.928690E+00 -8.927133E-02 -1.655293E-03 -4.508330E+00 -4.154031E+00 -3.778191E-02 -3.038622E-04 -9.366939E-02 -1.867688E-03 -3.342682E+00 -2.353374E+00 -9.542381E-02 -1.892530E-03 -4.916807E+00 -5.068483E+00 -4.010858E-02 -3.330650E-04 -9.943770E-02 -2.047183E-03 -2.906350E+00 -1.760817E+00 -8.559496E-02 -1.527401E-03 -4.338708E+00 -3.888336E+00 -3.663301E-02 -2.834528E-04 -9.082102E-02 -1.742242E-03 -2.201534E+00 -1.026489E+00 -7.361463E-02 -1.156634E-03 -3.444005E+00 -2.510736E+00 -3.352726E-02 -2.491193E-04 -8.312121E-02 -1.531211E-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.379478E+00 1.220072E+00 7.149541E-02 @@ -691,166 +51,6 @@ tally 1: 1.953397E-04 7.681538E-02 1.200655E-03 -3.155079E+00 -2.066218E+00 -9.171950E-02 -1.711836E-03 -4.700403E+00 -4.503318E+00 -3.904100E-02 -3.167906E-04 -9.679096E-02 -1.947152E-03 -2.737388E+00 -1.515779E+00 -7.304714E-02 -1.077128E-03 -3.854064E+00 -2.996781E+00 -2.937470E-02 -1.746013E-04 -7.282614E-02 -1.073187E-03 -3.294568E+00 -2.201280E+00 -8.370459E-02 -1.449531E-03 -4.567777E+00 -4.247816E+00 -3.258414E-02 -2.266289E-04 -8.078302E-02 -1.392974E-03 -3.040055E+00 -1.908677E+00 -8.543146E-02 -1.469528E-03 -4.395363E+00 -3.943052E+00 -3.551022E-02 -2.539139E-04 -8.803740E-02 -1.560681E-03 -2.733720E+00 -1.608810E+00 -7.575232E-02 -1.234497E-03 -3.955386E+00 -3.353987E+00 -3.126476E-02 -2.114507E-04 -7.751200E-02 -1.299681E-03 -2.633801E+00 -1.566751E+00 -7.851898E-02 -1.276803E-03 -3.867974E+00 -3.237952E+00 -3.370851E-02 -2.331450E-04 -8.357057E-02 -1.433025E-03 -2.649820E+00 -1.500516E+00 -6.849773E-02 -9.733415E-04 -3.744876E+00 -2.926356E+00 -2.706771E-02 -1.530408E-04 -6.710661E-02 -9.406650E-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.128432E+00 2.123023E+00 8.683081E-02 @@ -861,166 +61,6 @@ tally 1: 2.733665E-04 8.913952E-02 1.680246E-03 -2.955891E+00 -1.796192E+00 -8.526700E-02 -1.464085E-03 -4.355866E+00 -3.839684E+00 -3.605221E-02 -2.663621E-04 -8.938111E-02 -1.637194E-03 -2.731962E+00 -1.617682E+00 -7.685258E-02 -1.239175E-03 -4.057901E+00 -3.505399E+00 -3.210546E-02 -2.150275E-04 -7.959627E-02 -1.321666E-03 -3.058734E+00 -1.911285E+00 -8.780153E-02 -1.572171E-03 -4.531361E+00 -4.177302E+00 -3.703146E-02 -2.828466E-04 -9.180888E-02 -1.738516E-03 -2.854688E+00 -1.652859E+00 -8.501906E-02 -1.459424E-03 -4.215336E+00 -3.600073E+00 -3.650039E-02 -2.691434E-04 -9.049224E-02 -1.654289E-03 -2.532385E+00 -1.341692E+00 -7.908024E-02 -1.289149E-03 -3.816608E+00 -3.020090E+00 -3.480705E-02 -2.494950E-04 -8.629409E-02 -1.533520E-03 -2.946914E+00 -1.857842E+00 -7.586572E-02 -1.217999E-03 -4.089763E+00 -3.522165E+00 -2.980738E-02 -1.901498E-04 -7.389883E-02 -1.168755E-03 -2.788908E+00 -1.667764E+00 -7.477958E-02 -1.148212E-03 -4.029335E+00 -3.403340E+00 -3.033277E-02 -1.914118E-04 -7.520139E-02 -1.176512E-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 3.320603E+00 2.324411E+00 9.169756E-02 @@ -1031,166 +71,6 @@ tally 1: 3.050758E-04 9.372640E-02 1.875147E-03 -3.157638E+00 -2.088634E+00 -8.917486E-02 -1.627414E-03 -4.530493E+00 -4.262890E+00 -3.711278E-02 -2.791427E-04 -9.201048E-02 -1.715750E-03 -2.826797E+00 -1.654653E+00 -8.798649E-02 -1.562942E-03 -4.238099E+00 -3.671654E+00 -3.864939E-02 -3.007708E-04 -9.582007E-02 -1.848687E-03 -2.639291E+00 -1.470166E+00 -8.380168E-02 -1.469150E-03 -3.995402E+00 -3.337545E+00 -3.720130E-02 -2.907469E-04 -9.222996E-02 -1.787075E-03 -2.563883E+00 -1.375196E+00 -8.901196E-02 -1.610331E-03 -4.042903E+00 -3.361278E+00 -4.116155E-02 -3.428545E-04 -1.020482E-01 -2.107354E-03 -2.651467E+00 -1.472579E+00 -7.547436E-02 -1.201468E-03 -3.877983E+00 -3.154531E+00 -3.166886E-02 -2.150564E-04 -7.851384E-02 -1.321843E-03 -2.884789E+00 -1.801722E+00 -7.517555E-02 -1.168857E-03 -4.085136E+00 -3.522983E+00 -2.985774E-02 -1.859368E-04 -7.402368E-02 -1.142860E-03 -2.810664E+00 -1.609682E+00 -6.917229E-02 -9.875658E-04 -3.854296E+00 -3.029615E+00 -2.634304E-02 -1.483398E-04 -6.531000E-02 -9.117703E-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.709821E+00 2.847102E+00 1.037249E-01 @@ -1201,6 +81,166 @@ tally 1: 3.964777E-04 1.065039E-01 2.436949E-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.410307E+00 +1.211320E+00 +7.104710E-02 +1.056830E-03 +3.619111E+00 +2.712466E+00 +3.046789E-02 +2.019483E-04 +7.553639E-02 +1.241275E-03 +2.413065E+00 +1.186499E+00 +7.505466E-02 +1.154624E-03 +3.609948E+00 +2.664048E+00 +3.294274E-02 +2.242161E-04 +8.167207E-02 +1.378144E-03 +2.579691E+00 +1.399684E+00 +7.252523E-02 +1.085979E-03 +3.762646E+00 +2.966415E+00 +3.021298E-02 +1.872587E-04 +7.490441E-02 +1.150985E-03 +2.707136E+00 +1.528526E+00 +7.153411E-02 +1.046460E-03 +3.793295E+00 +2.976791E+00 +2.857458E-02 +1.671752E-04 +7.084247E-02 +1.027542E-03 +3.155079E+00 +2.066218E+00 +9.171950E-02 +1.711836E-03 +4.700403E+00 +4.503318E+00 +3.904100E-02 +3.167906E-04 +9.679096E-02 +1.947152E-03 +2.955891E+00 +1.796192E+00 +8.526700E-02 +1.464085E-03 +4.355866E+00 +3.839684E+00 +3.605221E-02 +2.663621E-04 +8.938111E-02 +1.637194E-03 +3.157638E+00 +2.088634E+00 +8.917486E-02 +1.627414E-03 +4.530493E+00 +4.262890E+00 +3.711278E-02 +2.791427E-04 +9.201048E-02 +1.715750E-03 3.237824E+00 2.159909E+00 9.708289E-02 @@ -1211,6 +251,166 @@ tally 1: 3.503645E-04 1.036145E-01 2.153514E-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.616860E+00 +1.407243E+00 +7.221083E-02 +1.059301E-03 +3.719840E+00 +2.827103E+00 +2.963219E-02 +1.775955E-04 +7.346451E-02 +1.091590E-03 +2.536174E+00 +1.301621E+00 +7.790327E-02 +1.242427E-03 +3.836384E+00 +2.980367E+00 +3.409705E-02 +2.443384E-04 +8.453386E-02 +1.501825E-03 +2.326398E+00 +1.111745E+00 +6.380790E-02 +8.422824E-04 +3.373074E+00 +2.338678E+00 +2.619114E-02 +1.463613E-04 +6.493342E-02 +8.996094E-04 +2.745209E+00 +1.561299E+00 +7.557988E-02 +1.164281E-03 +3.914803E+00 +3.154166E+00 +3.099509E-02 +1.948889E-04 +7.684344E-02 +1.197884E-03 +2.737388E+00 +1.515779E+00 +7.304714E-02 +1.077128E-03 +3.854064E+00 +2.996781E+00 +2.937470E-02 +1.746013E-04 +7.282614E-02 +1.073187E-03 +2.731962E+00 +1.617682E+00 +7.685258E-02 +1.239175E-03 +4.057901E+00 +3.505399E+00 +3.210546E-02 +2.150275E-04 +7.959627E-02 +1.321666E-03 +2.826797E+00 +1.654653E+00 +8.798649E-02 +1.562942E-03 +4.238099E+00 +3.671654E+00 +3.864939E-02 +3.007708E-04 +9.582007E-02 +1.848687E-03 2.503072E+00 1.321745E+00 6.623202E-02 @@ -1221,6 +421,166 @@ tally 1: 1.469478E-04 6.579875E-02 9.032144E-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.383417E+00 +1.171863E+00 +6.968054E-02 +9.924374E-04 +3.486989E+00 +2.493855E+00 +2.962148E-02 +1.817051E-04 +7.343795E-02 +1.116850E-03 +2.666159E+00 +1.492268E+00 +7.417343E-02 +1.141120E-03 +3.912196E+00 +3.186439E+00 +3.075257E-02 +1.953163E-04 +7.624217E-02 +1.200511E-03 +2.689651E+00 +1.483190E+00 +8.007622E-02 +1.328579E-03 +4.015410E+00 +3.294872E+00 +3.443210E-02 +2.525628E-04 +8.536450E-02 +1.552377E-03 +3.141608E+00 +2.000672E+00 +8.238823E-02 +1.366316E-03 +4.442048E+00 +3.976219E+00 +3.282615E-02 +2.177028E-04 +8.138301E-02 +1.338110E-03 +3.294568E+00 +2.201280E+00 +8.370459E-02 +1.449531E-03 +4.567777E+00 +4.247816E+00 +3.258414E-02 +2.266289E-04 +8.078302E-02 +1.392974E-03 +3.058734E+00 +1.911285E+00 +8.780153E-02 +1.572171E-03 +4.531361E+00 +4.177302E+00 +3.703146E-02 +2.828466E-04 +9.180888E-02 +1.738516E-03 +2.639291E+00 +1.470166E+00 +8.380168E-02 +1.469150E-03 +3.995402E+00 +3.337545E+00 +3.720130E-02 +2.907469E-04 +9.222996E-02 +1.787075E-03 2.360183E+00 1.196310E+00 7.336179E-02 @@ -1231,6 +591,166 @@ tally 1: 2.218615E-04 7.989359E-02 1.363671E-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.177844E+00 +9.998272E-01 +6.808817E-02 +9.543925E-04 +3.302614E+00 +2.268097E+00 +3.001326E-02 +1.847730E-04 +7.440926E-02 +1.135706E-03 +2.459342E+00 +1.286534E+00 +6.409323E-02 +8.519553E-04 +3.511461E+00 +2.568245E+00 +2.550853E-02 +1.387171E-04 +6.324108E-02 +8.526242E-04 +2.712538E+00 +1.496273E+00 +7.040893E-02 +1.033599E-03 +3.801423E+00 +2.967673E+00 +2.785218E-02 +1.687241E-04 +6.905150E-02 +1.037062E-03 +3.078971E+00 +1.928690E+00 +8.927133E-02 +1.655293E-03 +4.508330E+00 +4.154031E+00 +3.778191E-02 +3.038622E-04 +9.366939E-02 +1.867688E-03 +3.040055E+00 +1.908677E+00 +8.543146E-02 +1.469528E-03 +4.395363E+00 +3.943052E+00 +3.551022E-02 +2.539139E-04 +8.803740E-02 +1.560681E-03 +2.854688E+00 +1.652859E+00 +8.501906E-02 +1.459424E-03 +4.215336E+00 +3.600073E+00 +3.650039E-02 +2.691434E-04 +9.049224E-02 +1.654289E-03 +2.563883E+00 +1.375196E+00 +8.901196E-02 +1.610331E-03 +4.042903E+00 +3.361278E+00 +4.116155E-02 +3.428545E-04 +1.020482E-01 +2.107354E-03 2.353136E+00 1.260383E+00 7.514099E-02 @@ -1241,6 +761,166 @@ tally 1: 2.280172E-04 8.303643E-02 1.401507E-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.585363E+00 +1.416531E+00 +7.208386E-02 +1.068367E-03 +3.721777E+00 +2.868016E+00 +2.981132E-02 +1.871051E-04 +7.390860E-02 +1.150041E-03 +3.227353E+00 +2.189454E+00 +8.161989E-02 +1.366996E-03 +4.465292E+00 +4.143037E+00 +3.169508E-02 +2.069605E-04 +7.857885E-02 +1.272082E-03 +3.101358E+00 +2.022582E+00 +8.316566E-02 +1.469875E-03 +4.433641E+00 +4.167950E+00 +3.363316E-02 +2.428472E-04 +8.338377E-02 +1.492660E-03 +3.342682E+00 +2.353374E+00 +9.542381E-02 +1.892530E-03 +4.916807E+00 +5.068483E+00 +4.010858E-02 +3.330650E-04 +9.943770E-02 +2.047183E-03 +2.733720E+00 +1.608810E+00 +7.575232E-02 +1.234497E-03 +3.955386E+00 +3.353987E+00 +3.126476E-02 +2.114507E-04 +7.751200E-02 +1.299681E-03 +2.532385E+00 +1.341692E+00 +7.908024E-02 +1.289149E-03 +3.816608E+00 +3.020090E+00 +3.480705E-02 +2.494950E-04 +8.629409E-02 +1.533520E-03 +2.651467E+00 +1.472579E+00 +7.547436E-02 +1.201468E-03 +3.877983E+00 +3.154531E+00 +3.166886E-02 +2.150564E-04 +7.851384E-02 +1.321843E-03 2.404559E+00 1.241962E+00 6.952417E-02 @@ -1251,6 +931,166 @@ tally 1: 1.929942E-04 7.306514E-02 1.186238E-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.740199E+00 +1.663131E+00 +8.719535E-02 +1.596752E-03 +4.146740E+00 +3.682203E+00 +3.870935E-02 +3.136109E-04 +9.596871E-02 +1.927608E-03 +3.006650E+00 +1.972749E+00 +8.846181E-02 +1.643195E-03 +4.449165E+00 +4.222523E+00 +3.779771E-02 +2.999515E-04 +9.370858E-02 +1.843651E-03 +2.669269E+00 +1.482479E+00 +7.250461E-02 +1.097959E-03 +3.815372E+00 +3.039000E+00 +2.952621E-02 +1.837209E-04 +7.320176E-02 +1.129240E-03 +2.906350E+00 +1.760817E+00 +8.559496E-02 +1.527401E-03 +4.338708E+00 +3.888336E+00 +3.663301E-02 +2.834528E-04 +9.082102E-02 +1.742242E-03 +2.633801E+00 +1.566751E+00 +7.851898E-02 +1.276803E-03 +3.867974E+00 +3.237952E+00 +3.370851E-02 +2.331450E-04 +8.357057E-02 +1.433025E-03 +2.946914E+00 +1.857842E+00 +7.586572E-02 +1.217999E-03 +4.089763E+00 +3.522165E+00 +2.980738E-02 +1.901498E-04 +7.389883E-02 +1.168755E-03 +2.884789E+00 +1.801722E+00 +7.517555E-02 +1.168857E-03 +4.085136E+00 +3.522983E+00 +2.985774E-02 +1.859368E-04 +7.402368E-02 +1.142860E-03 2.740499E+00 1.588007E+00 7.592011E-02 @@ -1261,6 +1101,166 @@ tally 1: 2.121705E-04 7.770960E-02 1.304106E-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.212799E+00 +1.000035E+00 +7.449165E-02 +1.135538E-03 +3.466616E+00 +2.419923E+00 +3.399202E-02 +2.463541E-04 +8.427346E-02 +1.514215E-03 +2.591189E+00 +1.530310E+00 +7.305643E-02 +1.114250E-03 +3.732882E+00 +3.031120E+00 +3.039294E-02 +1.919600E-04 +7.535057E-02 +1.179882E-03 +2.719836E+00 +1.670890E+00 +8.176774E-02 +1.472662E-03 +4.030045E+00 +3.607044E+00 +3.530219E-02 +2.721266E-04 +8.752165E-02 +1.672625E-03 +2.201534E+00 +1.026489E+00 +7.361463E-02 +1.156634E-03 +3.444005E+00 +2.510736E+00 +3.352726E-02 +2.491193E-04 +8.312121E-02 +1.531211E-03 +2.649820E+00 +1.500516E+00 +6.849773E-02 +9.733415E-04 +3.744876E+00 +2.926356E+00 +2.706771E-02 +1.530408E-04 +6.710661E-02 +9.406650E-04 +2.788908E+00 +1.667764E+00 +7.477958E-02 +1.148212E-03 +4.029335E+00 +3.403340E+00 +3.033277E-02 +1.914118E-04 +7.520139E-02 +1.176512E-03 +2.810664E+00 +1.609682E+00 +6.917229E-02 +9.875658E-04 +3.854296E+00 +3.029615E+00 +2.634304E-02 +1.483398E-04 +6.531000E-02 +9.117703E-04 2.647586E+00 1.416013E+00 7.421099E-02 diff --git a/tests/test_mgxs_library_mesh/results_true.dat b/tests/test_mgxs_library_mesh/results_true.dat index 2d641cc952..b6656d67b4 100644 --- a/tests/test_mgxs_library_mesh/results_true.dat +++ b/tests/test_mgxs_library_mesh/results_true.dat @@ -1,62 +1,62 @@ mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 0.640786 0.044177 -1 1 2 1 1 total 0.660597 0.128423 -2 2 1 1 1 total 0.615276 0.104046 +1 1 2 1 1 total 0.615276 0.104046 +2 2 1 1 1 total 0.660597 0.128423 3 2 2 1 1 total 0.646999 0.186709 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 0.36665 0.048814 -1 1 2 1 1 total 0.40784 0.096486 -2 2 1 1 1 total 0.36356 0.074111 +1 1 2 1 1 total 0.36356 0.074111 +2 2 1 1 1 total 0.40784 0.096486 3 2 2 1 1 total 0.41456 0.160443 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 0.366650 0.048814 -1 1 2 1 1 total 0.407840 0.096486 -2 2 1 1 1 total 0.363560 0.074111 +1 1 2 1 1 total 0.363560 0.074111 +2 2 1 1 1 total 0.407840 0.096486 3 2 2 1 1 total 0.414593 0.160436 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 0.025749 0.002863 -1 1 2 1 1 total 0.028400 0.005275 -2 2 1 1 1 total 0.022988 0.004099 +1 1 2 1 1 total 0.022988 0.004099 +2 2 1 1 1 total 0.028400 0.005275 3 2 2 1 1 total 0.027589 0.010350 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 0.015861 0.002876 -1 1 2 1 1 total 0.017280 0.004371 -2 2 1 1 1 total 0.014403 0.003542 +1 1 2 1 1 total 0.014403 0.003542 +2 2 1 1 1 total 0.017280 0.004371 3 2 2 1 1 total 0.018061 0.010110 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 0.009888 0.001077 -1 1 2 1 1 total 0.011121 0.002456 -2 2 1 1 1 total 0.008585 0.001552 +1 1 2 1 1 total 0.008585 0.001552 +2 2 1 1 1 total 0.011121 0.002456 3 2 2 1 1 total 0.009527 0.003659 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 0.026065 0.002907 -1 1 2 1 1 total 0.029084 0.006430 -2 2 1 1 1 total 0.022596 0.004062 +1 1 2 1 1 total 0.022596 0.004062 +2 2 1 1 1 total 0.029084 0.006430 3 2 2 1 1 total 0.025066 0.009687 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 1.938476 0.211550 -1 1 2 1 1 total 2.177360 0.480780 -2 2 1 1 1 total 1.682799 0.303764 +1 1 2 1 1 total 1.682799 0.303764 +2 2 1 1 1 total 2.177360 0.480780 3 2 2 1 1 total 1.864890 0.715661 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 0.615037 0.041754 -1 1 2 1 1 total 0.632196 0.123878 -2 2 1 1 1 total 0.592288 0.100439 +1 1 2 1 1 total 0.592288 0.100439 +2 2 1 1 1 total 0.632196 0.123878 3 2 2 1 1 total 0.619410 0.177190 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 0.584014 0.054315 -1 1 2 1 1 total 0.622514 0.111323 -2 2 1 1 1 total 0.587256 0.084833 +1 1 2 1 1 total 0.587256 0.084833 +2 2 1 1 1 total 0.622514 0.111323 3 2 2 1 1 total 0.613792 0.168612 mesh 1 group in group out nuclide moment mean std. dev. x y z @@ -64,14 +64,14 @@ 1 1 1 1 1 1 total P1 0.243427 0.025488 2 1 1 1 1 1 total P2 0.089236 0.007357 3 1 1 1 1 1 total P3 0.008994 0.005768 -4 1 2 1 1 1 total P0 0.622514 0.111323 -5 1 2 1 1 1 total P1 0.239376 0.042594 -6 1 2 1 1 1 total P2 0.088386 0.017200 -7 1 2 1 1 1 total P3 -0.001243 0.005639 -8 2 1 1 1 1 total P0 0.587256 0.084833 -9 2 1 1 1 1 total P1 0.245120 0.041033 -10 2 1 1 1 1 total P2 0.086784 0.016255 -11 2 1 1 1 1 total P3 0.008660 0.004755 +4 1 2 1 1 1 total P0 0.587256 0.084833 +5 1 2 1 1 1 total P1 0.245120 0.041033 +6 1 2 1 1 1 total P2 0.086784 0.016255 +7 1 2 1 1 1 total P3 0.008660 0.004755 +8 2 1 1 1 1 total P0 0.622514 0.111323 +9 2 1 1 1 1 total P1 0.239376 0.042594 +10 2 1 1 1 1 total P2 0.088386 0.017200 +11 2 1 1 1 1 total P3 -0.001243 0.005639 12 2 2 1 1 1 total P0 0.612950 0.167940 13 2 2 1 1 1 total P1 0.226176 0.061882 14 2 2 1 1 1 total P2 0.086593 0.026126 @@ -82,14 +82,14 @@ 1 1 1 1 1 1 total P1 0.243427 0.025488 2 1 1 1 1 1 total P2 0.089236 0.007357 3 1 1 1 1 1 total P3 0.008994 0.005768 -4 1 2 1 1 1 total P0 0.622514 0.111323 -5 1 2 1 1 1 total P1 0.239376 0.042594 -6 1 2 1 1 1 total P2 0.088386 0.017200 -7 1 2 1 1 1 total P3 -0.001243 0.005639 -8 2 1 1 1 1 total P0 0.587256 0.084833 -9 2 1 1 1 1 total P1 0.245120 0.041033 -10 2 1 1 1 1 total P2 0.086784 0.016255 -11 2 1 1 1 1 total P3 0.008660 0.004755 +4 1 2 1 1 1 total P0 0.587256 0.084833 +5 1 2 1 1 1 total P1 0.245120 0.041033 +6 1 2 1 1 1 total P2 0.086784 0.016255 +7 1 2 1 1 1 total P3 0.008660 0.004755 +8 2 1 1 1 1 total P0 0.622514 0.111323 +9 2 1 1 1 1 total P1 0.239376 0.042594 +10 2 1 1 1 1 total P2 0.088386 0.017200 +11 2 1 1 1 1 total P3 -0.001243 0.005639 12 2 2 1 1 1 total P0 0.613792 0.168612 13 2 2 1 1 1 total P1 0.226142 0.061856 14 2 2 1 1 1 total P2 0.086174 0.025979 @@ -97,38 +97,38 @@ mesh 1 group in group out nuclide mean std. dev. x y z 0 1 1 1 1 1 total 1.000000 0.088094 -1 1 2 1 1 1 total 1.000000 0.160891 -2 2 1 1 1 1 total 1.000000 0.126864 +1 1 2 1 1 1 total 1.000000 0.126864 +2 2 1 1 1 1 total 1.000000 0.160891 3 2 2 1 1 1 total 1.001374 0.305883 mesh 1 group in group out nuclide mean std. dev. x y z 0 1 1 1 1 1 total 0.027395 0.004680 -1 1 2 1 1 1 total 0.022914 0.006025 -2 2 1 1 1 1 total 0.019384 0.002846 +1 1 2 1 1 1 total 0.019384 0.002846 +2 2 1 1 1 1 total 0.022914 0.006025 3 2 2 1 1 1 total 0.029629 0.006292 mesh 1 group out nuclide mean std. dev. x y z 0 1 1 1 1 total 1.0 0.220956 -1 1 2 1 1 total 1.0 0.316565 -2 2 1 1 1 total 1.0 0.132140 +1 1 2 1 1 total 1.0 0.132140 +2 2 1 1 1 total 1.0 0.316565 3 2 2 1 1 total 1.0 0.181577 mesh 1 group out nuclide mean std. dev. x y z 0 1 1 1 1 total 1.0 0.222246 -1 1 2 1 1 total 1.0 0.316565 -2 2 1 1 1 total 1.0 0.132140 +1 1 2 1 1 total 1.0 0.132140 +2 2 1 1 1 total 1.0 0.316565 3 2 2 1 1 total 1.0 0.181577 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 3.610522e-07 3.169931e-08 -1 1 2 1 1 total 3.942353e-07 8.459167e-08 -2 2 1 1 1 total 3.097784e-07 5.252025e-08 +1 1 2 1 1 total 3.097784e-07 5.252025e-08 +2 2 1 1 1 total 3.942353e-07 8.459167e-08 3 2 2 1 1 total 3.799163e-07 1.806470e-07 mesh 1 group in nuclide mean std. dev. x y z 0 1 1 1 1 total 0.025920 0.002893 -1 1 2 1 1 total 0.028922 0.006394 -2 2 1 1 1 total 0.022467 0.004039 +1 1 2 1 1 total 0.022467 0.004039 +2 2 1 1 1 total 0.028922 0.006394 3 2 2 1 1 total 0.024923 0.009632 mesh 1 delayedgroup group in nuclide mean std. dev. x y z @@ -138,18 +138,18 @@ 3 1 1 1 4 1 total 0.000054 5.464055e-06 4 1 1 1 5 1 total 0.000026 2.663025e-06 5 1 1 1 6 1 total 0.000010 1.038005e-06 -6 1 2 1 1 1 total 0.000005 1.098837e-06 -7 1 2 1 2 1 total 0.000029 6.436855e-06 -8 1 2 1 3 1 total 0.000027 5.926286e-06 -9 1 2 1 4 1 total 0.000061 1.359391e-05 -10 1 2 1 5 1 total 0.000029 6.489015e-06 -11 1 2 1 6 1 total 0.000011 2.574270e-06 -12 2 1 1 1 1 total 0.000004 6.987770e-07 -13 2 1 1 2 1 total 0.000023 4.115234e-06 -14 2 1 1 3 1 total 0.000021 3.816392e-06 -15 2 1 1 4 1 total 0.000049 8.885822e-06 -16 2 1 1 5 1 total 0.000024 4.378290e-06 -17 2 1 1 6 1 total 0.000009 1.745695e-06 +6 1 2 1 1 1 total 0.000004 6.987770e-07 +7 1 2 1 2 1 total 0.000023 4.115234e-06 +8 1 2 1 3 1 total 0.000021 3.816392e-06 +9 1 2 1 4 1 total 0.000049 8.885822e-06 +10 1 2 1 5 1 total 0.000024 4.378290e-06 +11 1 2 1 6 1 total 0.000009 1.745695e-06 +12 2 1 1 1 1 total 0.000005 1.098837e-06 +13 2 1 1 2 1 total 0.000029 6.436855e-06 +14 2 1 1 3 1 total 0.000027 5.926286e-06 +15 2 1 1 4 1 total 0.000061 1.359391e-05 +16 2 1 1 5 1 total 0.000029 6.489015e-06 +17 2 1 1 6 1 total 0.000011 2.574270e-06 18 2 2 1 1 1 total 0.000004 1.660497e-06 19 2 2 1 2 1 total 0.000025 9.701974e-06 20 2 2 1 3 1 total 0.000023 9.005217e-06 @@ -190,18 +190,18 @@ 3 1 1 1 4 1 total 0.002087 0.000282 4 1 1 1 5 1 total 0.001014 0.000137 5 1 1 1 6 1 total 0.000400 0.000054 -6 1 2 1 1 1 total 0.000171 0.000039 -7 1 2 1 2 1 total 0.001003 0.000226 -8 1 2 1 3 1 total 0.000918 0.000208 -9 1 2 1 4 1 total 0.002100 0.000477 -10 1 2 1 5 1 total 0.000996 0.000228 -11 1 2 1 6 1 total 0.000394 0.000090 -12 2 1 1 1 1 total 0.000167 0.000030 -13 2 1 1 2 1 total 0.001002 0.000178 -14 2 1 1 3 1 total 0.000926 0.000165 -15 2 1 1 4 1 total 0.002149 0.000384 -16 2 1 1 5 1 total 0.001056 0.000189 -17 2 1 1 6 1 total 0.000417 0.000076 +6 1 2 1 1 1 total 0.000167 0.000030 +7 1 2 1 2 1 total 0.001002 0.000178 +8 1 2 1 3 1 total 0.000926 0.000165 +9 1 2 1 4 1 total 0.002149 0.000384 +10 1 2 1 5 1 total 0.001056 0.000189 +11 1 2 1 6 1 total 0.000417 0.000076 +12 2 1 1 1 1 total 0.000171 0.000039 +13 2 1 1 2 1 total 0.001003 0.000226 +14 2 1 1 3 1 total 0.000918 0.000208 +15 2 1 1 4 1 total 0.002100 0.000477 +16 2 1 1 5 1 total 0.000996 0.000228 +17 2 1 1 6 1 total 0.000394 0.000090 18 2 2 1 1 1 total 0.000171 0.000082 19 2 2 1 2 1 total 0.001007 0.000480 20 2 2 1 3 1 total 0.000929 0.000445 diff --git a/tests/test_quadric_surfaces/results_true.dat b/tests/test_quadric_surfaces/results_true.dat index 1f0dd54262..f7aed43e35 100644 --- a/tests/test_quadric_surfaces/results_true.dat +++ b/tests/test_quadric_surfaces/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.570770E-01 2.513234E-02 +9.921357E-01 6.763175E-03 diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 6b3beb4be8..68dbe069cf 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -2800fad5519917ffc985094d3263a3e0aac1abf6acb0c25416264135b36141812cc8d7dafc01585b104b8d6ad03cd44b6ce277fdb7df5a3f859fe26e61244e2a \ No newline at end of file +c2921f159dac64099862c1cd9c6d421c977991f621f954f893ec1351cfcea6794ca2c98c9c2dcc3411f1b8dac91ec83bd895788ba33179222c450a7df1d64f1e \ No newline at end of file diff --git a/tests/test_sourcepoint_restart/results_true.dat b/tests/test_sourcepoint_restart/results_true.dat index 49afeb1d52..0e83121c58 100644 --- a/tests/test_sourcepoint_restart/results_true.dat +++ b/tests/test_sourcepoint_restart/results_true.dat @@ -41,16 +41,16 @@ tally 1: 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 +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 @@ -59,8 +59,118 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.874391E-04 -1.725424E-07 +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 +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 +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.347357E-04 +8.737309E-07 +8.105963E-04 +6.570664E-07 +6.396651E-04 +4.091714E-07 +2.938723E-04 +8.636093E-08 +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.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 @@ -71,76 +181,6 @@ tally 1: 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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -201,16 +241,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.200000E-02 -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 +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 @@ -219,60 +259,38 @@ 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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.935668E-04 -8.618149E-08 +3.079655E-04 +9.484274E-08 1.000000E-03 1.000000E-06 -9.893707E-04 -9.788543E-07 -9.682814E-04 -9.375689E-07 -9.370683E-04 -8.780970E-07 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 +-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 +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 @@ -281,16 +299,38 @@ tally 1: 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.502634E-03 -1.146555E-06 -7.198331E-04 -3.484978E-07 --3.426513E-05 -1.342349E-07 -1.511030E-03 -1.198311E-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 +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 @@ -299,6 +339,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.000000E-02 +3.400000E-05 +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 @@ -307,6 +379,14 @@ tally 1: 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 @@ -361,16 +441,136 @@ tally 1: 1.052422E-07 0.000000E+00 0.000000E+00 -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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.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 +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.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 @@ -389,120 +589,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.190621E-03 -8.859279E-07 -2.000000E-03 -2.000000E-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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 +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 +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 @@ -511,6 +619,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.874391E-04 +1.725424E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -519,6 +629,16 @@ 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 2.600000E-02 @@ -561,6 +681,566 @@ tally 1: 5.268483E-07 0.000000E+00 0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +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 +1.200000E-02 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.186549E-03 +5.291648E-07 +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.893707E-04 +9.788543E-07 +9.682814E-04 +9.375689E-07 +9.370683E-04 +8.780970E-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 +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 +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 +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 +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 +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 +-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 +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 +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 +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 +1.190621E-03 +8.859279E-07 +2.000000E-03 +2.000000E-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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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.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 +3.000000E-03 +3.000000E-06 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.650000E-04 9.507197E-03 @@ -601,6 +1281,566 @@ tally 1: 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 +-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 +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 +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.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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +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 +3.100000E-02 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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.300000E-05 5.790211E-03 @@ -641,16 +1881,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -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 +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 @@ -659,38 +1899,92 @@ tally 1: 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 +2.935668E-04 +8.618149E-08 1.000000E-03 1.000000E-06 --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 +9.333938E-04 +8.712239E-07 +8.068359E-04 +6.509841E-07 +6.328968E-04 +4.005583E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.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 @@ -699,8 +1993,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.977039E-04 -8.862764E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -709,28 +2001,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -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 +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 0.000000E+00 0.000000E+00 @@ -739,8 +2021,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.954079E-04 -3.545105E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -802,446 +2082,6 @@ tally 1: 0.000000E+00 0.000000E+00 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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 --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 @@ -1281,446 +2121,6 @@ tally 1: 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 -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.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 --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 -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 --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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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.400000E-05 7.937805E-03 @@ -1761,446 +2161,6 @@ tally 1: 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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 1.447007E-04 @@ -2241,16 +2201,56 @@ tally 1: 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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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.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 @@ -2269,28 +2269,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.935668E-04 -8.618149E-08 +5.952778E-04 +3.543557E-07 1.000000E-03 1.000000E-06 -8.623139E-04 -7.435852E-07 -6.153778E-04 -3.786899E-07 -3.095388E-04 -9.581428E-08 +9.362621E-04 +8.765867E-07 +8.148801E-04 +6.640295E-07 +6.473941E-04 +4.191191E-07 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 +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 @@ -2299,8 +2299,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.976389E-04 -8.858892E-08 +8.991712E-04 +2.696131E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2309,6 +2309,28 @@ tally 1: 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 +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 @@ -2317,32 +2339,8 @@ tally 1: 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 -0.000000E+00 -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 @@ -2351,6 +2349,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.238964E-04 +8.535846E-07 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_statepoint_restart/results_true.dat b/tests/test_statepoint_restart/results_true.dat index 49afeb1d52..0e83121c58 100644 --- a/tests/test_statepoint_restart/results_true.dat +++ b/tests/test_statepoint_restart/results_true.dat @@ -41,16 +41,16 @@ tally 1: 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 +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 @@ -59,8 +59,118 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.874391E-04 -1.725424E-07 +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 +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 +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.347357E-04 +8.737309E-07 +8.105963E-04 +6.570664E-07 +6.396651E-04 +4.091714E-07 +2.938723E-04 +8.636093E-08 +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.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 @@ -71,76 +181,6 @@ tally 1: 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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -201,16 +241,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.200000E-02 -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 +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 @@ -219,60 +259,38 @@ 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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.935668E-04 -8.618149E-08 +3.079655E-04 +9.484274E-08 1.000000E-03 1.000000E-06 -9.893707E-04 -9.788543E-07 -9.682814E-04 -9.375689E-07 -9.370683E-04 -8.780970E-07 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 +-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 +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 @@ -281,16 +299,38 @@ tally 1: 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.502634E-03 -1.146555E-06 -7.198331E-04 -3.484978E-07 --3.426513E-05 -1.342349E-07 -1.511030E-03 -1.198311E-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 +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 @@ -299,6 +339,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.000000E-02 +3.400000E-05 +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 @@ -307,6 +379,14 @@ tally 1: 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 @@ -361,16 +441,136 @@ tally 1: 1.052422E-07 0.000000E+00 0.000000E+00 -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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.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 +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.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 @@ -389,120 +589,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.190621E-03 -8.859279E-07 -2.000000E-03 -2.000000E-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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 +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 +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 @@ -511,6 +619,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.874391E-04 +1.725424E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -519,6 +629,16 @@ 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 2.600000E-02 @@ -561,6 +681,566 @@ tally 1: 5.268483E-07 0.000000E+00 0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +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 +1.200000E-02 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.186549E-03 +5.291648E-07 +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.893707E-04 +9.788543E-07 +9.682814E-04 +9.375689E-07 +9.370683E-04 +8.780970E-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 +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 +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 +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 +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 +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 +-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 +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 +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 +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 +1.190621E-03 +8.859279E-07 +2.000000E-03 +2.000000E-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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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.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 +3.000000E-03 +3.000000E-06 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.650000E-04 9.507197E-03 @@ -601,6 +1281,566 @@ tally 1: 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 +-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 +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 +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.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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +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 +3.100000E-02 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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.300000E-05 5.790211E-03 @@ -641,16 +1881,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -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 +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 @@ -659,38 +1899,92 @@ tally 1: 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 +2.935668E-04 +8.618149E-08 1.000000E-03 1.000000E-06 --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 +9.333938E-04 +8.712239E-07 +8.068359E-04 +6.509841E-07 +6.328968E-04 +4.005583E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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.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 @@ -699,8 +1993,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.977039E-04 -8.862764E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -709,28 +2001,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -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 +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 0.000000E+00 0.000000E+00 @@ -739,8 +2021,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.954079E-04 -3.545105E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -802,446 +2082,6 @@ tally 1: 0.000000E+00 0.000000E+00 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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 --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 @@ -1281,446 +2121,6 @@ tally 1: 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 -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.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 --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 -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 --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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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.400000E-05 7.937805E-03 @@ -1761,446 +2161,6 @@ tally 1: 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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 1.447007E-04 @@ -2241,16 +2201,56 @@ tally 1: 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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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.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 @@ -2269,28 +2269,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.935668E-04 -8.618149E-08 +5.952778E-04 +3.543557E-07 1.000000E-03 1.000000E-06 -8.623139E-04 -7.435852E-07 -6.153778E-04 -3.786899E-07 -3.095388E-04 -9.581428E-08 +9.362621E-04 +8.765867E-07 +8.148801E-04 +6.640295E-07 +6.473941E-04 +4.191191E-07 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 +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 @@ -2299,8 +2299,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.976389E-04 -8.858892E-08 +8.991712E-04 +2.696131E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2309,6 +2309,28 @@ tally 1: 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 +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 @@ -2317,32 +2339,8 @@ tally 1: 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 -0.000000E+00 -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 @@ -2351,6 +2349,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.238964E-04 +8.535846E-07 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index d018a65da9..108c7ee800 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -5a0f3f1ae244ada7d8c9f444d7a98c2589a9720e78174a276cf96162df6728bab6d534f136f65cb0386c3235eb7d5db47a0dd6504636ca77e7eb375e6978a84d \ No newline at end of file +a6afd2f11affce2467d77b8477881ab20091f67df4f632226ec2dd5d4cd7fabb9ac3e182563bb467ed249e4b3fe95b319cb688d653757f8ea154759b8a7f50e1 \ 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 6c2d7a5193..2d995d91e0 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -840d2648f9ba782926c71baa84e5a2ad31331e156740a3d1e9d86af8f1f0d301ef8c0f69474975d365dbcf8d229a68c62d3e60286d18045e5254373f4e1010bf \ No newline at end of file +89b550950d4cb4a63647a068bbbeaefca1c459538fb9c4c91b817e7999f09623365894367f318115647614885903a5d19bbb4cc080832beb5f1794a8f89d392e \ 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 index 89d415b0d6..278d8ee108 100644 --- a/tests/test_tally_slice_merge/results_true.dat +++ b/tests/test_tally_slice_merge/results_true.dat @@ -49,19 +49,19 @@ 14 (500, 5000, 50000) 6.25e-07 2.00e+01 U238 fission 0.00e+00 0.00e+00 15 (500, 5000, 50000) 6.25e-07 2.00e+01 U238 nu-fission 0.00e+00 0.00e+00 sum(mesh) energy low [MeV] energy high [MeV] nuclide score mean std. dev. -0 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U235 fission 9.18e-03 1.62e-03 -1 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U235 nu-fission 2.24e-02 3.94e-03 -2 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U238 fission 1.31e-08 2.08e-09 -3 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U238 nu-fission 3.26e-08 5.19e-09 -4 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U235 fission 8.40e-04 2.13e-04 -5 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U235 nu-fission 2.06e-03 5.17e-04 -6 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U238 fission 7.05e-04 3.42e-04 -7 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U238 nu-fission 1.99e-03 1.01e-03 -8 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U235 fission 8.77e-03 1.30e-03 -9 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U235 nu-fission 2.14e-02 3.18e-03 -10 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U238 fission 1.24e-08 1.74e-09 -11 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U238 nu-fission 3.08e-08 4.33e-09 -12 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U235 fission 2.30e-03 6.20e-04 -13 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U235 nu-fission 5.63e-03 1.52e-03 -14 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U238 fission 1.45e-03 7.19e-04 -15 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U238 nu-fission 3.97e-03 1.98e-03 +0 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U235 fission 8.54e-03 1.30e-03 +1 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U235 nu-fission 2.08e-02 3.17e-03 +2 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U238 fission 1.21e-08 1.74e-09 +3 ((1, 1, 1), (1, 2, 1)) 0.00e+00 6.25e-07 U238 nu-fission 3.01e-08 4.34e-09 +4 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U235 fission 2.20e-03 6.05e-04 +5 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U235 nu-fission 5.38e-03 1.48e-03 +6 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U238 fission 1.40e-03 7.17e-04 +7 ((1, 1, 1), (1, 2, 1)) 6.25e-07 2.00e+01 U238 nu-fission 3.84e-03 1.97e-03 +8 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U235 fission 9.40e-03 1.62e-03 +9 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U235 nu-fission 2.29e-02 3.95e-03 +10 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U238 fission 1.34e-08 2.08e-09 +11 ((2, 1, 1), (2, 2, 1)) 0.00e+00 6.25e-07 U238 nu-fission 3.33e-08 5.18e-09 +12 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U235 fission 9.41e-04 2.52e-04 +13 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U235 nu-fission 2.31e-03 6.13e-04 +14 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U238 fission 7.54e-04 3.45e-04 +15 ((2, 1, 1), (2, 2, 1)) 6.25e-07 2.00e+01 U238 nu-fission 2.12e-03 1.02e-03 diff --git a/tests/test_track_output/results_true.dat b/tests/test_track_output/results_true.dat index 6ded87a0ec..1d0ca80399 100644 --- a/tests/test_track_output/results_true.dat +++ b/tests/test_track_output/results_true.dat @@ -1,5 +1,5 @@ - + diff --git a/tests/test_triso/results_true.dat b/tests/test_triso/results_true.dat index ea7da21edf..e5fafb7f61 100644 --- a/tests/test_triso/results_true.dat +++ b/tests/test_triso/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.662675E+00 1.475968E-02 +1.662675E+00 1.475976E-02 From 9161c399d58b7e784396dd4b66f45a842c177d8c Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 16 Aug 2016 19:07:13 -0400 Subject: [PATCH 289/417] reverted failing tests to previous results --- tests/test_asymmetric_lattice/results_true.dat | 2 +- tests/test_quadric_surfaces/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_triso/results_true.dat | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index c2014a1912..a33b9c9e59 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -280d08e4f4e6768f3100caff91a4c77d3a29ebc05353bdda47e3634f48e2ba2bd1d6a0030a00f97f2ea4c647c93155279697545cf2f951f71b58cfcd400c99de \ No newline at end of file +bc8bef8121f9b6470e4fea817a4e48eabb1ecba1f42761a4cbd77d71181bf9e1612df4a3d6ddfbcd08a3086ac873e5f3c3e560bf96b2b7c959a2f7aad7e4e08d \ No newline at end of file diff --git a/tests/test_quadric_surfaces/results_true.dat b/tests/test_quadric_surfaces/results_true.dat index f7aed43e35..1f0dd54262 100644 --- a/tests/test_quadric_surfaces/results_true.dat +++ b/tests/test_quadric_surfaces/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.921357E-01 6.763175E-03 +9.570770E-01 2.513234E-02 diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 2d995d91e0..6c2d7a5193 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -89b550950d4cb4a63647a068bbbeaefca1c459538fb9c4c91b817e7999f09623365894367f318115647614885903a5d19bbb4cc080832beb5f1794a8f89d392e \ No newline at end of file +840d2648f9ba782926c71baa84e5a2ad31331e156740a3d1e9d86af8f1f0d301ef8c0f69474975d365dbcf8d229a68c62d3e60286d18045e5254373f4e1010bf \ No newline at end of file diff --git a/tests/test_triso/results_true.dat b/tests/test_triso/results_true.dat index e5fafb7f61..ea7da21edf 100644 --- a/tests/test_triso/results_true.dat +++ b/tests/test_triso/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.662675E+00 1.475976E-02 +1.662675E+00 1.475968E-02 From f3cfc181f47d959158d5e871209c45b9aa810f33 Mon Sep 17 00:00:00 2001 From: amandalund Date: Tue, 16 Aug 2016 20:14:34 -0500 Subject: [PATCH 290/417] Add packing function for TRISO particles --- openmc/model/triso.py | 851 +++++++++++++++++++++++++++++- tests/test_triso/inputs_true.dat | 2 +- tests/test_triso/results_true.dat | 2 +- tests/test_triso/test_triso.py | 47 +- 4 files changed, 868 insertions(+), 34 deletions(-) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index 89e0d8aa76..c1ed9336ab 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -1,13 +1,22 @@ +from __future__ import division import copy -from collections import Iterable +from collections import Iterable, defaultdict from numbers import Real import warnings +import itertools +import scipy.spatial +from scipy.spatial.distance import cdist +import random +from random import uniform, gauss +from heapq import heappush, heappop +from math import pi, sin, cos, floor, log10 import numpy as np import openmc import openmc.checkvalue as cv + class TRISO(openmc.Cell): """Tristructural-isotopic (TRISO) micro fuel particle @@ -153,3 +162,843 @@ def create_triso_lattice(trisos, lower_left, pitch, shape, background): lattice.outer = openmc.Universe(cells=[background_cell]) return lattice + + +def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, + domain_radius=None, domain_center=(0., 0., 0.), + n_particles=None, packing_fraction=None, + initial_packing_fraction=0.3, contraction_rate=1/400, seed=1): + """Generate a random, non-overlapping configuration of TRISO particles + within a container. + + Parameters + ---------- + radius : float + Outer radius of TRISO particles. + fill : openmc.Universe + Universe which contains all layers of the TRISO particle. + domain_shape : {'cube', 'cylinder', or 'sphere'} + Geometry of the container in which the TRISO particles are packed. + domain_length : float + Length of the container (if cube or cylinder). + domain_radius : float + Radius of the container (if cylinder or sphere). + domain_center : Iterable of float + Cartesian coordinates of the center of the container. + n_particles : int + Number of TRISO particles to pack in the domain. Exactly one of + 'n_particles' and 'packing_fraction' should be specified -- the other + will be calculated. + packing_fraction : float + Packing fraction of particles. Exactly one of 'n_particles' and + 'packing_fraction' should be specified -- the other will be calculated. + initial_packing_fraction : float, optional + Packing fraction used to initialize the configuration of particles in + the domain. Default value is 0.3. It is not recommended to set the + initial packing fraction much higher than 0.3 as the random sequential + packing algorithm becomes prohibitively slow as it approaches its limit + (~0.38). + contraction_rate : float, optional + Contraction rate of outer diameter. This can affect the speed of the + close random packing algorithm. Default value is 1/400. + seed : int, optional + RNG seed. + + Returns + ------- + trisos : list of openmc.model.TRISO + List of TRISO particles in the domain. + + Notes + ----- + The particle configuration is generated using a combination of random + sequential packing (RSP) and close random packing (CRP). RSP is faster than + CRP for lower packing fractions (pf), but it becomes prohibitively slow as + it approaches its packing limit (~0.38). CRP can achieve higher pf of up to + ~0.64 and scales better with increasing pf. + + If the desired pf is below some threshold for which RSP performs better + than CRP ('initial_packing_fraction'), only RSP is used. If a higher pf is + required, particles with a radius smaller than the desired final radius + (and therefore with a smaller pf) are initialized within the domain using + RSP. This initial configuration of particles is then used as a starting + point for CRP using Jodrey and Tory's algorithm [1]_. + + In RSP, particle centers are placed one by one at rondom, and placement + attempts for a particles are made until the particle is not overlapping any + others. This implementation of the algorithm uses a lattice over the domain + to speed up the nearest neighbor search by only searching for a particle's + neighbors within that lattice cell. + + In CRP, each particle is assigned two diameters, and inner and an outer, + which approach each other during the simulation. The inner diameter, + defined as the minimum center-to-center distance, is the true diameter of + the particles and defines the pf. At each iteration the worst overlap + between particles based on outer diameter is eliminated by moving the + particles apart along the line joining their centers and the outer diameter + is decreased. Iterations continue until the two diameters converge or until + the desired pf is reached. + + References + ---------- + .. [1] W. S. Jodrey and E. M. Tory, "Computer simulation of close random + packing of equal spheres", Phys. Rev. A 32 (1985) 2347-2351. + + """ + + def get_domain_volume(): + """Calculates the volume of the container in which the TRISO particles + are packed. + + Returns + ------- + float + Volume of the domain. + + """ + + if domain_shape is 'cube': + return domain_length**3 + elif domain_shape is 'cylinder': + return domain_length * pi * domain_radius**2 + elif domain_shape is 'sphere': + return 4/3 * pi * domain_radius**3 + + + def get_cell_length(radius): + """Calculates the length of a lattice element in x-, y-, and + z-directions. + + Parameters + ---------- + radius : float + Radius of the particle. + + Returns + ------- + tuple of float + Length of lattice cell in x-, y-, and z-directions. + + """ + + if domain_length: + m = domain_length/int(domain_length/(4*radius)) + if domain_radius: + n = 2*domain_radius/int(domain_radius/(2*radius)) + + if domain_shape is 'cube': + return (m, m, m) + elif domain_shape is 'cylinder': + return (n, n, m) + elif domain_shape is 'sphere': + return (n, n, n) + + + def get_boundary_extremes(): + """Calculates the minimum and maximum positions in x-, y-, and + z-directions where a particle center can be placed within the domain. + + Returns + ------- + llim, ulim : tuple of float + Minimum and maximum position in x-, y-, and z-directions where + particle center can be placed. + + """ + + if domain_length: + x_min = radius + x_max = domain_length - radius + if domain_radius: + r_min = radius - domain_radius + r_max = domain_radius - radius + + if domain_shape is 'cube': + return (x_min, x_min, x_min), (x_max, x_max, x_max) + elif domain_shape is 'cylinder': + return (r_min, r_min, x_min), (r_max, r_max, x_max) + elif domain_shape is 'sphere': + return (r_min, r_min, r_min), (r_max, r_max, r_max) + + + def get_particle_offset(): + """Calculates the offset in x-, y-, and z-directions of the particle + center based on the domain center + + Returns + ------- + tuple of float + Amount to offset particle center in x-, y-, and z-directions + + """ + + if domain_shape is 'cube': + return np.array(domain_center) - 3*(domain_length/2,) + elif domain_shape is 'cylinder': + return np.array(domain_center) - (0, 0, domain_length/2) + elif domain_shape is 'sphere': + return np.array(domain_center) + + + def inner_packing_fraction(): + """Calculates the true packing fraction of the particles based on the + inner diameter. + + Returns + ------- + float + Packing fraction calculated from inner diameter. + + """ + + return (4/3 * pi * (inner_diameter[0]/2)**3 * n_particles / + domain_volume) + + + def outer_packing_fraction(): + """Calculates the nominal packing fraction of the particles based on + the outer diameter. + + Returns + ------- + float + Packing fraction calculated from outer diameter. + + """ + + return (4/3 * pi * (outer_diameter[0]/2)**3 * n_particles / + domain_volume) + + + def random_point_cube(): + """Generate Cartesian coordinates of center of a particle that is + contained entirely within cubic domain with uniform probability. + + Returns + ------- + list of float + Cartesian coordinates of particle center. + + """ + + return [uniform(llim[0], ulim[0]), + uniform(llim[0], ulim[0]), + uniform(llim[0], ulim[0])] + + + def random_point_cylinder(): + """Generate Cartesian coordinates of center of a particle that is + contained entirely within cylindrical domain with uniform probability + (see http://mathworld.wolfram.com/DiskPointPicking.html for generating + random points on a disk). + + Returns + ------- + list of float + Cartesian coordinates of particle center. + + """ + + r = uniform(0, ulim[0]**2)**.5 + t = uniform(0, 2*pi) + return [r*cos(t), r*sin(t), uniform(llim[2], ulim[2])] + + + def random_point_sphere(): + """Generate Cartesian coordinates of center of a particle that is + contained entirely within spherical domain with uniform probability. + + Returns + ------- + list of float + Cartesian coordinates of particle center. + + """ + + x = (gauss(0, 1), gauss(0, 1), gauss(0, 1)) + r = (uniform(0, ulim[0]**3)**(1/3) / (x[0]**2 + x[1]**2 + x[2]**2)**.5) + return [r*i for i in x] + + + def add_rod(d, i, j): + """Add a new rod to the priority queue. + + Parameters + ---------- + d : float + distance between centers of particles i and j. + i, j : int + Index of particles in particles array. + + """ + + rod = [d, i, j] + rods_map[i] = j, rod + rods_map[j] = i, rod + heappush(rods, rod) + + + def remove_rod(i): + """Mark the rod containing particle i as removed. + + Parameters + ---------- + i : int + Index of particle in particles array. + + """ + + if i in rods_map: + j, rod = rods_map.pop(i) + del rods_map[j] + rod[1] = None + rod[2] = None + + + def pop_rod(): + """Remove and return the shortest rod. + + Returns + ------- + d : float + distance between centers of particles i and j. + i, j : int + Index of particles in particles array. + + """ + + while rods: + d, i, j = heappop(rods) + if i is not None and j is not None: + del rods_map[i] + del rods_map[j] + return d, i, j + + + def create_rod_list(): + """Generate sorted list of rods (distances between particle centers). + + Rods are arranged in a heap where each element contains the rod length + and the particle indices. A rod between particles p and q is only + included if the distance between p and q could not be changed by the + elimination of a greater overlap, i.e. q has no nearer neighbors than p. + + A mapping of particle ids to rods is maintained in 'rods_map'. Each key + in the dict is the id of a particle that is in the rod list, and the + value is the id of its nearest neighbor and the rod that contains them. + The dict is used to find rods in the priority queue and to mark removed + rods so rods can be "removed" without breaking the heap structure + invariant. + + """ + + # Create KD tree for quick nearest neighbor search + tree = scipy.spatial.cKDTree(particles) + + # Find distance to nearest neighbor and index of nearest neighbor for + # all particles + d, n = tree.query(particles, k=2) + d = d[:,1] + n = n[:,1] + + # Array of particle indices, indices of nearest neighbors, and + # distances to nearest neighbors + a = np.dstack(([i for i in range(len(n))], n, d))[0] + + # Array of nearest neighbor indices, indices of particles they are + # nearest neighbors of, and distances between them + b = a[a[:,1].argsort()] + b[:,[0, 1]] = b[:,[1, 0]] + + # Find the intersection between 'a' and 'b': a list of particles who + # are each other's nearest neighbors and the distance between them + r = [x for x in {tuple(x) for x in a} & {tuple(x) for x in b}] + + # Remove duplicate rods and sort by distance + r = map(list, set([(x[2], int(min(x[0:2])), int(max(x[0:2]))) + for x in r])) + + # Clear priority queue and add rods + del rods[:] + rods_map.clear() + for d, i, j in r: + add_rod(d, i, j) + + # Inner diameter is set initially to the shortest center-to-center + # distance between any two particles + if rods: + inner_diameter[0] = rods[0][0] + + + def reduce_outer_diameter(): + """Reduce the outer diameter so that at the (i+1)-st iteration it is: + + d_out^(i+1) = d_out^(i) - (1/2)^(j) * d_out0 * k / n, + + where k is the contraction rate, n is the number of particles, and + + j = floor(-log10(pf_out - pf_in)). + + """ + + j = floor(-log10(outer_packing_fraction() - inner_packing_fraction())) + outer_diameter[0] = (outer_diameter[0] - 0.5**j * + initial_outer_diameter * contraction_rate / + n_particles) + + + def update_mesh(i): + """Update which lattice cells the particle is in based on new particle + center coordinates. + + 'mesh'/'mesh_map' is a two way dictionary used to look up which + particles are located within one diameter of a given lattice cell and + which lattice cells a given particle center is within one diameter of. + This is used to speed up the nearest neighbor search. + + Parameters + ---------- + i : int + Index of particle in particles array. + + """ + + # Determine which lattice cells the particle is in and remove the + # particle id from those cells + for idx in mesh_map[i]: + mesh[idx].remove(i) + del mesh_map[i] + + # Determine which lattice cells are within one diameter of particle's + # center and add this particle to the list of particles in those cells + for idx in cell_list(particles[i], diameter): + mesh[idx].add(i) + mesh_map[i].add(idx) + + + def apply_boundary_conditions(i, j): + """Apply reflective boundary conditions to particles i and j. + + Parameters + ---------- + i, j : int + Index of particles in particles array. + + """ + + for k in range(3): + if particles[i][k] < llim[k]: + particles[i][k] = llim[k] + elif particles[i][k] > ulim[k]: + particles[i][k] = ulim[k] + if particles[j][k] < llim[k]: + particles[j][k] = llim[k] + elif particles[j][k] > ulim[k]: + particles[j][k] = ulim[k] + + + def repel_particles(i, j, d): + """Move particles p and q apart according to the following + transformation (accounting for reflective boundary conditions on + domain): + + r_i^(n+1) = r_i^(n) + 1/2(d_out^(n+1) - d^(n)) + r_j^(n+1) = r_j^(n) - 1/2(d_out^(n+1) - d^(n)) + + Parameters + ---------- + i, j : int + Index of particles in particles array. + d : float + distance between centers of particles i and j. + + """ + + # Moving each particle distance 'r' away from the other along the line + # joining the particle centers will ensure their final distance is equal + # to the outer diameter + r = (outer_diameter[0] - d)/2; + + v = (particles[i] - particles[j])/d + particles[i] = particles[i] + r*v + particles[j] = particles[j] - r*v + + # Apply reflective boundary conditions + apply_boundary_conditions(i, j) + + update_mesh(i) + update_mesh(j) + + + def nearest(i): + """Find index of nearest neighbor of particle i. + + Parameters + ---------- + i : int + Index in particles array of particle for which to find nearest + neighbor. + + Returns + ------- + int + Index in particles array of nearest neighbor of i + double + distance between i and nearest neighbor. + + """ + + # Need the second nearest neighbor of i since the nearest neighbor + # will be itself. Using argpartition, the k-th nearest neighbor is + # placed at index k. + idx = list(mesh[cell_index(particles[i])]) + dists = cdist([particles[i]], particles[idx])[0] + if dists.size > 1: + j = dists.argpartition(1)[1] + return idx[j], dists[j] + else: + return None, None + + + def update_rod_list(i, j): + """Update the rod list with the new nearest neighbors of particles i + and j since their overlap was eliminated. + + Parameters + ---------- + i, j : int + Index of particles in particles array. + + """ + + # If the nearest neighbor k of particle i has no nearer neighbors, + # remove the rod currently containing k from the rod list and add rod + # k-i, keeping the rod list sorted + k, d_ik = nearest(i) + if k and nearest(k)[0] == i: + remove_rod(k) + add_rod(d_ik, i, k) + l, d_jl = nearest(j) + if l and nearest(l)[0] == j: + remove_rod(l) + add_rod(d_jl, j, l) + + # Set inner diameter to the shortest distance between two particle + # centers + if rods: + inner_diameter[0] = rods[0][0] + + + def cell_index_cube(p, cl=None): + """Calculate the index of the lattice cell in which the given particle + center falls. + + Parameters + ---------- + p : list of float + Cartesian coordinates of particle center. + cl : list of float + Length of the lattice cells in x-, y-, and z-directions. + + Returns + ------- + tuple of int + Indices of lattice cell. + + """ + + if cl is None: + cl = cell_length + + return tuple(int(p[i]/cl[i]) for i in range(3)) + + + def cell_index_cylinder(p, cl=None): + """Calculate the index of the lattice cell in which the given particle + center falls. + + Parameters + ---------- + p : list of float + Cartesian coordinates of particle center. + cl : list of float + Length of the lattice cells in x-, y-, and z-directions. + + Returns + ------- + tuple of int + Indices of lattice cell. + + """ + + if cl is None: + cl = cell_length + + return tuple([int((p[0] + domain_radius)/cl[0]), + int((p[1] + domain_radius)/cl[1]), int(p[2]/cl[2])]) + + + def cell_index_sphere(p, cl=None): + """Calculate the index of the lattice cell in which the given particle + center falls. + + Parameters + ---------- + p : list of float + Cartesian coordinates of particle center. + cl : list of float + Length of the lattice cells in x-, y-, and z-directions. + + Returns + ------- + tuple of int + Indices of lattice cell. + + """ + + if cl is None: + cl = cell_length + + return tuple(int((p[i] + domain_radius)/cl[i]) for i in range(3)) + + + def cell_list_cube(p, d, cl=None): + """Return the indices of all cells within the given distance of the + point. + + Parameters + ---------- + p : list of float + Cartesian coordinates of particle center. + d : float + Find all lattice cells that are within a radius of length 'd' of + the particle center. + cl : list of float + Length of the lattice cells in x-, y-, and z-directions. + + Returns + ------- + list of tuple of int + Indices of lattice cells. + + """ + + if cl is None: + cl = cell_length + + r = [[a/cl[i] for a in [p[i]-d, p[i], p[i]+d] if a > 0 and + a < domain_length] for i in range(3)] + + return list(itertools.product(*({int(i) for i in j} for j in r))) + + + def cell_list_cylinder(p, d, cl=None): + """Return the indices of all cells within the given distance of the + point. + + Parameters + ---------- + p : list of float + Cartesian coordinates of particle center. + d : float + Find all lattice cells that are within a radius of length 'd' of + the particle center. + cl : list of float + Length of the lattice cells in x-, y-, and z-directions. + + Returns + ------- + list of tuple of int + Indices of lattice cells. + + """ + + if cl is None: + cl = cell_length + + x,y = [[(a + domain_radius)/cl[i] for a in [p[i]-d, p[i], p[i]+d] + if a > -domain_radius and a < domain_radius] for i in range(2)] + + z = [a/cl[2] for a in [p[2]-d, p[2], p[2]+d] if a > 0 + and a < domain_length] + + return list(itertools.product(*({int(i) for i in j} for j in (x,y,z)))) + + + def cell_list_sphere(p, d, cl=None): + """Return the indices of all cells within the given distance of the + point. + + Parameters + ---------- + p : list of float + Cartesian coordinates of particle center. + d : float + Find all lattice cells that are within a radius of length 'd' of + the particle center. + cl : list of float + Length of the lattice cells in x-, y-, and z-directions. + + Returns + ------- + list of tuple of int + Indices of lattice cells. + + """ + + if cl is None: + cl = cell_length + + r = [[(a + domain_radius)/cl[i] for a in [p[i]-d, p[i], p[i]+d] + if a > -domain_radius and a < domain_radius] for i in range(3)] + + return list(itertools.product(*({int(i) for i in j} for j in r))) + + + def random_sequential_pack(): + """Random sequential packing of particles whose radius is determined by + initial packing fraction. + + Returns + ------ + numpy.ndarray + Cartesian coordinates of centers of TRISO particles. + + """ + + # Set parameters for initial random sequential packing of particles. + r = (3/4*initial_packing_fraction*domain_volume/(pi*n_particles))**(1/3) + d = 2*r + sqd = d**2 + cl = get_cell_length(r) + + particles = [] + mesh = defaultdict(list) + + for i in range(n_particles): + # Randomly sample new center coordinates while there are any overlaps + while True: + p = random_point() + idx = cell_index(p, cl) + if any((p[0]-q[0])**2 + (p[1]-q[1])**2 + (p[2]-q[2])**2 < sqd + for q in mesh[idx]): + continue + else: + break + particles.append(p) + + for idx in cell_list(p, d, cl): + mesh[idx].append(p) + + return np.array(particles) + + + def close_random_pack(): + """Close random packing of particles using the Jodrey-Tory algorithm. + + """ + + for i in range(n_particles): + for idx in cell_list(particles[i], diameter): + mesh[idx].add(i) + mesh_map[i].add(idx) + + while True: + create_rod_list() + if inner_diameter[0] >= diameter: + break + while True: + d, i, j = pop_rod() + reduce_outer_diameter() + repel_particles(i, j, d) + update_rod_list(i, j) + if inner_diameter[0] >= diameter or not rods: + break + + + # Check for valid container geometry and dimensions + if domain_shape not in ['cube', 'cylinder', 'sphere']: + raise ValueError('Unable to set domain_shape to "{}". Only "cube", ' + '"cylinder", and "sphere" are ' + 'supported."'.format(domain_shape)) + if not domain_length and domain_shape in ['cube', 'cylinder']: + raise ValueError('"domain_length" must be specified for {} domain ' + 'geometry '.format(domain_shape)) + if not domain_radius and domain_shape in ['cylinder', 'sphere']: + raise ValueError('"domain_radius" must be specified for {} domain ' + 'geometry '.format(domain_shape)) + + domain_volume = get_domain_volume() + llim, ulim = get_boundary_extremes() + offset = get_particle_offset() + + # Calculate the packing fraction if the number of particles is specified; + # otherwise, calculate the number of particles from the packing fraction. + if ((n_particles is None and packing_fraction is None) or + (n_particles is not None and packing_fraction is not None)): + raise ValueError('Exactly one of "n_particles" and "packing_fraction" ' + 'must be specified.') + elif packing_fraction is None: + packing_fraction = 4/3*pi*radius**3*n_particles / domain_volume + elif n_particles is None: + n_particles = int(packing_fraction*domain_volume // (4/3*pi*radius**3)) + + # Check for valid packing fractions for each algorithm + if packing_fraction >= 0.64: + raise ValueError('Packing fraction of {} is greater than the ' + 'packing fraction limit for close random ' + 'packing (0.64)'.format(packing_fraction)) + if initial_packing_fraction >= 0.38: + raise ValueError('Initial packing fraction of {} is greater than the ' + 'packing fraction limit for random sequential' + 'packing (0.38)'.format(initial_packing_fraction)) + if initial_packing_fraction > packing_fraction: + initial_packing_fraction = packing_fraction + if packing_fraction > 0.3: + initial_packing_fraction = 0.3 + + # Set domain dependent functions + if domain_shape is 'cube': + random_point = random_point_cube + cell_list = cell_list_cube + cell_index = cell_index_cube + elif domain_shape is 'cylinder': + random_point = random_point_cylinder + cell_list = cell_list_cylinder + cell_index = cell_index_cylinder + elif domain_shape is 'sphere': + random_point = random_point_sphere + cell_list = cell_list_sphere + cell_index = cell_index_sphere + + random.seed(seed) + + # Generate non-overlapping particles for an initial inner radius using + # random sequential packing algorithm + particles = random_sequential_pack() + + # Use the particle configuration produced in random sequential packing as a + # starting point for close random pack with the desired final particle radius + if initial_packing_fraction != packing_fraction: + diameter = 2*radius + cell_length = get_cell_length(radius) + + # Outer diameter initially set to arbitrary value that yields pf of 1 + initial_outer_diameter = 2*(domain_volume/(n_particles*4/3*pi))**(1/3) + + # Inner and outer diameter of particles will change during packing + outer_diameter = [initial_outer_diameter] + inner_diameter = [0] + + rods = [] + rods_map = {} + mesh = defaultdict(set) + mesh_map = defaultdict(set) + + close_random_pack() + + trisos = [] + for i in range(n_particles): + trisos.append(TRISO(radius, fill, particles[i] + offset)) + + return trisos diff --git a/tests/test_triso/inputs_true.dat b/tests/test_triso/inputs_true.dat index 04119a2dc8..0df6042f6a 100644 --- a/tests/test_triso/inputs_true.dat +++ b/tests/test_triso/inputs_true.dat @@ -1 +1 @@ -f33e6653b883200457df2ff2ba9cf715d5ddaa1296dd71d277c6f1d9d5b7831cc92aaf1e97509d26e5a93235cd9f775c0cfaa5ebc3dfe8fc71469bac166d362b \ No newline at end of file +2285ba99573743929cee590e2ba4d86becbf38d58af765498b73425f2fa3ccc3e0d20a59260d283a3ff39038d87e12142e0156b22152ccecbe2609a291d1d347 \ No newline at end of file diff --git a/tests/test_triso/results_true.dat b/tests/test_triso/results_true.dat index ea7da21edf..15107e8c84 100644 --- a/tests/test_triso/results_true.dat +++ b/tests/test_triso/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.662675E+00 1.475968E-02 +1.636336E+00 1.154000E-01 diff --git a/tests/test_triso/test_triso.py b/tests/test_triso/test_triso.py index 9a8fb0c3be..8b6296ab5b 100644 --- a/tests/test_triso/test_triso.py +++ b/tests/test_triso/test_triso.py @@ -19,35 +19,35 @@ class TRISOTestHarness(PyAPITestHarness): # Define TRISO matrials fuel = openmc.Material() fuel.set_density('g/cm3', 10.5) - fuel.add_nuclide('U235', 0.14154) - fuel.add_nuclide('U238', 0.85846) - fuel.add_nuclide('C0', 0.5) - fuel.add_nuclide('O16', 1.5) + fuel.add_nuclide('U-235', 0.14154) + fuel.add_nuclide('U-238', 0.85846) + fuel.add_nuclide('C-Nat', 0.5) + fuel.add_nuclide('O-16', 1.5) porous_carbon = openmc.Material() porous_carbon.set_density('g/cm3', 1.0) - porous_carbon.add_nuclide('C0', 1.0) - porous_carbon.add_s_alpha_beta('c_Graphite', '71t') + porous_carbon.add_nuclide('C-Nat', 1.0) + porous_carbon.add_s_alpha_beta('Graph', '71t') ipyc = openmc.Material() ipyc.set_density('g/cm3', 1.90) - ipyc.add_nuclide('C0', 1.0) - ipyc.add_s_alpha_beta('c_Graphite', '71t') + ipyc.add_nuclide('C-Nat', 1.0) + ipyc.add_s_alpha_beta('Graph', '71t') sic = openmc.Material() sic.set_density('g/cm3', 3.20) sic.add_element('Si', 1.0) - sic.add_nuclide('C0', 1.0) + sic.add_nuclide('C-Nat', 1.0) opyc = openmc.Material() opyc.set_density('g/cm3', 1.87) - opyc.add_nuclide('C0', 1.0) - opyc.add_s_alpha_beta('c_Graphite', '71t') + opyc.add_nuclide('C-Nat', 1.0) + opyc.add_s_alpha_beta('Graph', '71t') graphite = openmc.Material() graphite.set_density('g/cm3', 1.1995) - graphite.add_nuclide('C0', 1.0) - graphite.add_s_alpha_beta('c_Graphite', '71t') + graphite.add_nuclide('C-Nat', 1.0) + graphite.add_s_alpha_beta('Graph', '71t') # Create TRISO particles spheres = [openmc.Sphere(R=r*1e-4) @@ -60,24 +60,9 @@ class TRISOTestHarness(PyAPITestHarness): inner_univ = openmc.Universe(cells=[c1, c2, c3, c4, c5]) outer_radius = 422.5*1e-4 - trisos = [] - random.seed(1) - for i in range(100): - # Randomly sample location - lim = 0.5 - outer_radius*1.001 - x = random.uniform(-lim, lim) - y = random.uniform(-lim, lim) - z = random.uniform(-lim, lim) - t = openmc.model.TRISO(outer_radius, inner_univ, (x, y, z)) - - # Make sure TRISO doesn't overlap with another - for tp in trisos: - xp, yp, zp = tp.center - distance = sqrt((x - xp)**2 + (y - yp)**2 + (z - zp)**2) - if distance <= 2*outer_radius: - break - else: - trisos.append(t) + trisos = openmc.model.pack_trisos( + radius=outer_radius, fill=inner_univ, domain_shape='cube', + domain_length=1., domain_center=(0., 0., 0.), n_particles=100) # Define box to contain lattice min_x = openmc.XPlane(x0=-0.5, boundary_type='reflective') From 15aaa15530904b83afd0f7c6444d10f98eca7196 Mon Sep 17 00:00:00 2001 From: amandalund Date: Tue, 16 Aug 2016 20:25:07 -0500 Subject: [PATCH 291/417] Updated trisos test --- tests/test_triso/test_triso.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/test_triso/test_triso.py b/tests/test_triso/test_triso.py index 8b6296ab5b..da5deef00d 100644 --- a/tests/test_triso/test_triso.py +++ b/tests/test_triso/test_triso.py @@ -19,35 +19,35 @@ class TRISOTestHarness(PyAPITestHarness): # Define TRISO matrials fuel = openmc.Material() fuel.set_density('g/cm3', 10.5) - fuel.add_nuclide('U-235', 0.14154) - fuel.add_nuclide('U-238', 0.85846) - fuel.add_nuclide('C-Nat', 0.5) - fuel.add_nuclide('O-16', 1.5) + fuel.add_nuclide('U235', 0.14154) + fuel.add_nuclide('U238', 0.85846) + fuel.add_nuclide('C0', 0.5) + fuel.add_nuclide('O16', 1.5) porous_carbon = openmc.Material() porous_carbon.set_density('g/cm3', 1.0) - porous_carbon.add_nuclide('C-Nat', 1.0) - porous_carbon.add_s_alpha_beta('Graph', '71t') + porous_carbon.add_nuclide('C0', 1.0) + porous_carbon.add_s_alpha_beta('c_Graphite', '71t') ipyc = openmc.Material() ipyc.set_density('g/cm3', 1.90) - ipyc.add_nuclide('C-Nat', 1.0) - ipyc.add_s_alpha_beta('Graph', '71t') + ipyc.add_nuclide('C0', 1.0) + ipyc.add_s_alpha_beta('c_Graphite', '71t') sic = openmc.Material() sic.set_density('g/cm3', 3.20) sic.add_element('Si', 1.0) - sic.add_nuclide('C-Nat', 1.0) + sic.add_nuclide('C0', 1.0) opyc = openmc.Material() opyc.set_density('g/cm3', 1.87) - opyc.add_nuclide('C-Nat', 1.0) - opyc.add_s_alpha_beta('Graph', '71t') + opyc.add_nuclide('C0', 1.0) + opyc.add_s_alpha_beta('c_Graphite', '71t') graphite = openmc.Material() graphite.set_density('g/cm3', 1.1995) - graphite.add_nuclide('C-Nat', 1.0) - graphite.add_s_alpha_beta('Graph', '71t') + graphite.add_nuclide('C0', 1.0) + graphite.add_s_alpha_beta('c_Graphite', '71t') # Create TRISO particles spheres = [openmc.Sphere(R=r*1e-4) From f886d2849e664c9e742dc84fa4656e2d46e1d72e Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 17 Aug 2016 05:07:29 -0400 Subject: [PATCH 292/417] Added in a mixin module with an Equality class for mixin use --- openmc/mixin.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 openmc/mixin.py diff --git a/openmc/mixin.py b/openmc/mixin.py new file mode 100644 index 0000000000..f4d5f4c8df --- /dev/null +++ b/openmc/mixin.py @@ -0,0 +1,24 @@ +import numpy as np + + +class Equality(object): + """A Class which provides generic __eq__ and __ne__ functionality which + can easily be inherited by downstream classes. + """ + + def __eq__(self, other): + eqval = True + if isinstance(other, type(self)): + for key, value in self.__dict__.items(): + if key in other.__dict__: + if not np.array_equal(value, other.__dict__.get(key)): + eqval = False + else: + eqval = False + else: + eqval = False + + return eqval + + def __ne__(self, other): + return not self.__eq__(other) From f2fc06d960fc78b2e4a967265143d810631546ea Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 17 Aug 2016 05:15:57 -0400 Subject: [PATCH 293/417] Replaced prior __eq__ classes with the equality mixin --- openmc/data/ace.py | 6 +- openmc/data/angle_distribution.py | 13 +--- openmc/data/angle_energy.py | 3 +- openmc/data/correlated.py | 14 +---- openmc/data/energy_distribution.py | 99 +----------------------------- openmc/data/fission_energy.py | 5 +- openmc/data/function.py | 17 +---- openmc/data/kalbach_mann.py | 15 +---- openmc/data/library.py | 2 +- openmc/data/nbody.py | 12 ---- openmc/data/neutron.py | 3 +- openmc/data/product.py | 17 +---- openmc/data/reaction.py | 3 +- openmc/data/thermal.py | 31 +--------- openmc/data/uncorrelated.py | 10 +-- openmc/data/urr.py | 3 +- openmc/stats/univariate.py | 73 +--------------------- 17 files changed, 33 insertions(+), 293 deletions(-) diff --git a/openmc/data/ace.py b/openmc/data/ace.py index 4085b4222f..867e3767a1 100644 --- a/openmc/data/ace.py +++ b/openmc/data/ace.py @@ -22,6 +22,8 @@ import sys import numpy as np +from openmc.mixin import Equality + if sys.version_info[0] >= 3: basestring = str @@ -131,7 +133,7 @@ def get_table(filename, name=None): .format(name)) -class Library(object): +class Library(Equality): """A Library objects represents an ACE-formatted file which may contain multiple tables with data. @@ -353,7 +355,7 @@ class Library(object): lines = [ace_file.readline() for i in range(13)] -class Table(object): +class Table(Equality): """ACE cross section table Parameters diff --git a/openmc/data/angle_distribution.py b/openmc/data/angle_distribution.py index afb9a05454..81cc068305 100644 --- a/openmc/data/angle_distribution.py +++ b/openmc/data/angle_distribution.py @@ -4,11 +4,12 @@ from numbers import Real import numpy as np import openmc.checkvalue as cv +from openmc.mixin import Equality from openmc.stats import Univariate, Tabular, Uniform from .function import INTERPOLATION_SCHEME -class AngleDistribution(object): +class AngleDistribution(Equality): """Angle distribution as a function of incoming energy Parameters @@ -32,16 +33,6 @@ class AngleDistribution(object): self.energy = energy self.mu = mu - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (not np.array_equal(self.energy, other.energy) or - not np.array_equal(self.mu, other.mu)): - eqval = False - return eqval - @property def energy(self): return self._energy diff --git a/openmc/data/angle_energy.py b/openmc/data/angle_energy.py index 00e049ebcd..21748ab8a4 100644 --- a/openmc/data/angle_energy.py +++ b/openmc/data/angle_energy.py @@ -1,9 +1,10 @@ from abc import ABCMeta, abstractmethod import openmc.data +from openmc.mixin import Equality -class AngleEnergy(object): +class AngleEnergy(Equality): """Distribution in angle and energy of a secondary particle.""" __metaclass = ABCMeta diff --git a/openmc/data/correlated.py b/openmc/data/correlated.py index 2415aaab30..d6ce8ab470 100644 --- a/openmc/data/correlated.py +++ b/openmc/data/correlated.py @@ -49,19 +49,6 @@ class CorrelatedAngleEnergy(AngleEnergy): self.energy_out = energy_out self.mu = mu - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (not np.array_equal(self.breakpoints, other.breakpoints) or - not np.array_equal(self.interpolation, other.interpolation) or - not np.array_equal(self.energy, other.energy) or - not np.array_equal(self.energy_out, other.energy_out) or - not np.array_equal(self.mu, other.mu)): - eqval = False - return eqval - @property def breakpoints(self): return self._breakpoints @@ -69,6 +56,7 @@ class CorrelatedAngleEnergy(AngleEnergy): @property def interpolation(self): return self._interpolation + @property def energy(self): return self._energy diff --git a/openmc/data/energy_distribution.py b/openmc/data/energy_distribution.py index 4299fc166a..ba34abb4f0 100644 --- a/openmc/data/energy_distribution.py +++ b/openmc/data/energy_distribution.py @@ -8,9 +8,10 @@ import numpy as np from .function import Tabulated1D, INTERPOLATION_SCHEME from openmc.stats.univariate import Univariate, Tabular, Discrete, Mixture import openmc.checkvalue as cv +from openmc.mixin import Equality -class EnergyDistribution(object): +class EnergyDistribution(Equality): """Abstract superclass for all energy distributions.""" __metaclass__ = ABCMeta @@ -84,16 +85,6 @@ class ArbitraryTabulated(EnergyDistribution): self.energy = energy self.pdf = pdf - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (not np.array_equal(self.energy, other.energy) or - not np.array_equal(self.pdf, other.pdf)): - eqval = False - return eqval - def to_hdf5(self, group): raise NotImplementedError @@ -132,17 +123,6 @@ class GeneralEvaporation(EnergyDistribution): self.g = g self.u = u - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.theta != other.theta or - self.g != other.g or - self.u != other.u): - eqval = False - return eqval - def to_hdf5(self, group): raise NotImplementedError @@ -180,16 +160,6 @@ class MaxwellEnergy(EnergyDistribution): self.theta = theta self.u = u - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.theta != other.theta or - self.u != other.u): - eqval = False - return eqval - @property def theta(self): return self._theta @@ -298,16 +268,6 @@ class Evaporation(EnergyDistribution): self.theta = theta self.u = u - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.theta != other.theta or - self.u != other.u): - eqval = False - return eqval - @property def theta(self): return self._theta @@ -420,17 +380,6 @@ class WattEnergy(EnergyDistribution): self.b = b self.u = u - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.a != other.a or - self.b != other.b or - self.u != other.u): - eqval = False - return eqval - @property def a(self): return self._a @@ -572,17 +521,6 @@ class MadlandNix(EnergyDistribution): self.efh = efh self.tm = tm - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.efl != other.efl or - self.efh != other.efh or - self.tm != other.tm): - eqval = False - return eqval - @property def efl(self): return self._efl @@ -681,17 +619,6 @@ class DiscretePhoton(EnergyDistribution): self.energy = energy self.atomic_weight_ratio = atomic_weight_ratio - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.primary_flag != other.primary_flag or - self.energy != other.energy or - self.atomic_weight_ratio != other.atomic_weight_ratio): - eqval = False - return eqval - @property def primary_flag(self): return self._primary_flag @@ -800,16 +727,6 @@ class LevelInelastic(EnergyDistribution): self.threshold = threshold self.mass_ratio = mass_ratio - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.threshold != other.threshold or - self.mass_ratio != other.mass_ratio): - eqval = False - return eqval - @property def threshold(self): return self._threshold @@ -916,18 +833,6 @@ class ContinuousTabular(EnergyDistribution): self.energy = energy self.energy_out = energy_out - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (not np.array_equal(self.breakpoints, other.breakpoints) or - not np.array_equal(self.interpolation, other.interpolation) or - not np.array_equal(self.energy, other.energy) or - not np.array_equal(self.energy_out, other.energy_out)): - eqval = False - return eqval - @property def breakpoints(self): return self._breakpoints diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index 03d3ed84ed..d1023a01a9 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -9,6 +9,7 @@ from .data import ATOMIC_SYMBOL from .endf_utils import read_float, read_CONT_line, identify_nuclide from .function import Function1D, Tabulated1D, Polynomial, Sum import openmc.checkvalue as cv +from openmc.mixin import Equality if sys.version_info[0] >= 3: basestring = str @@ -189,7 +190,7 @@ def write_compact_458_library(endf_files, output_name='fission_Q_data.h5', out.close() -class FissionEnergyRelease(object): +class FissionEnergyRelease(Equality): """Energy relased by fission reactions. Energy is carried away from fission reactions by many different particles. @@ -560,7 +561,7 @@ class FissionEnergyRelease(object): self.delayed_photons.to_hdf5(group, 'delayed_photons') self.betas.to_hdf5(group, 'betas') self.neutrinos.to_hdf5(group, 'neutrinos') - + if isinstance(self.prompt_neutrons, Polynomial): # Add the polynomials for the relevant components together. Use a # Polynomial((0.0, -1.0)) to subtract incident energy. diff --git a/openmc/data/function.py b/openmc/data/function.py index 98a7f2c5ef..7a4a938d1f 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -5,12 +5,13 @@ from numbers import Real, Integral import numpy as np import openmc.checkvalue as cv +from openmc.mixin import Equality INTERPOLATION_SCHEME = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log', 4: 'log-linear', 5: 'log-log'} -class Function1D(object): +class Function1D(Equality): """A function of one independent variable with HDF5 support.""" __metaclass__ = ABCMeta @@ -110,18 +111,6 @@ class Tabulated1D(Function1D): self.x = np.asarray(x) self.y = np.asarray(y) - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (not np.array_equal(self.x, other.x) or - not np.array_equal(self.y, other.y) or - not np.array_equal(self.breakpoints, other.breakpoints) or - not np.array_equal(self.interpolation, other.interpolation)): - eqval = False - return eqval - def __call__(self, x): # Check if input is array or scalar if isinstance(x, Iterable): @@ -401,7 +390,7 @@ class Polynomial(np.polynomial.Polynomial, Function1D): return cls(dataset.value) -class Sum(object): +class Sum(Equality): """Sum of multiple functions. This class allows you to create a callable object which represents the sum diff --git a/openmc/data/kalbach_mann.py b/openmc/data/kalbach_mann.py index 519796ad46..c44c46b654 100644 --- a/openmc/data/kalbach_mann.py +++ b/openmc/data/kalbach_mann.py @@ -5,6 +5,7 @@ from warnings import warn import numpy as np import openmc.checkvalue as cv +from openmc.mixin import Equality from openmc.stats import Tabular, Univariate, Discrete, Mixture from .function import Tabulated1D, INTERPOLATION_SCHEME from .angle_energy import AngleEnergy @@ -59,20 +60,6 @@ class KalbachMann(AngleEnergy): self.precompound = precompound self.slope = slope - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (not np.array_equal(self.breakpoints, other.breakpoints) or - not np.array_equal(self.interpolation, other.interpolation) or - not np.array_equal(self.energy, other.energy) or - not np.array_equal(self.energy_out, other.energy_out) or - not np.array_equal(self.precompound, other.precompound) or - not np.array_equal(self.slope, other.slope)): - eqval = False - return eqval - @property def breakpoints(self): return self._breakpoints diff --git a/openmc/data/library.py b/openmc/data/library.py index dba5eabc16..3fed7598d3 100644 --- a/openmc/data/library.py +++ b/openmc/data/library.py @@ -5,7 +5,7 @@ import h5py from openmc.clean_xml import clean_xml_indentation -class DataLibrary(object): +class DataLibrary(Equality): def __init__(self): self.libraries = [] diff --git a/openmc/data/nbody.py b/openmc/data/nbody.py index 274db48f98..a34380dc93 100644 --- a/openmc/data/nbody.py +++ b/openmc/data/nbody.py @@ -38,18 +38,6 @@ class NBodyPhaseSpace(AngleEnergy): self.atomic_weight_ratio = atomic_weight_ratio self.q_value = q_value - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.total_mass != other.total_mass or - self.n_particles != other.n_particles or - self.atomic_weight_ratio != other.atomic_weight_ratio or - self.q_value != other.q_value): - eqval = False - return eqval - @property def total_mass(self): return self._total_mass diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 95f840d64a..66f4b2797f 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -15,12 +15,13 @@ from .product import Product from .reaction import Reaction, _get_photon_products from .urr import ProbabilityTables import openmc.checkvalue as cv +from openmc.mixin import Equality if sys.version_info[0] >= 3: basestring = str -class IncidentNeutron(object): +class IncidentNeutron(Equality): """Continuous-energy neutron interaction data. Instances of this class are not normally instantiated by the user but rather diff --git a/openmc/data/product.py b/openmc/data/product.py index 06875556fc..1f07076d95 100644 --- a/openmc/data/product.py +++ b/openmc/data/product.py @@ -5,6 +5,7 @@ import sys import numpy as np import openmc.checkvalue as cv +from openmc.mixin import Equality from .function import Tabulated1D, Polynomial, Function1D from .angle_energy import AngleEnergy @@ -12,7 +13,7 @@ if sys.version_info[0] >= 3: basestring = str -class Product(object): +class Product(Equality): """Secondary particle emitted in a nuclear reaction Parameters @@ -48,20 +49,6 @@ class Product(object): self.applicability = [] self.yield_ = Polynomial((1,)) # 0-order polynomial i.e. a constant - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.particle != other.particle or - self.decay_rate != other.decay_rate or - self.emission_mode != other.emission_mode or - not np.narray_equal(self.distribution, other.distribution) or - not np.narray_equal(self.applicability, other.applicability) or - self.yield_ != other.yield_): - eqval = False - return eqval - def __repr__(self): if isinstance(self.yield_, Real): return "".format( diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index d35599579d..0255a30975 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -7,6 +7,7 @@ from warnings import warn import numpy as np import openmc.checkvalue as cv +from openmc.mixin import Equality from openmc.stats import Uniform from .angle_distribution import AngleDistribution from .angle_energy import AngleEnergy @@ -250,7 +251,7 @@ def _get_photon_products(ace, rx): return photons -class Reaction(object): +class Reaction(Equality): """A nuclear reaction A Reaction object represents a single reaction channel for a nuclide with diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 2232274f4f..d729e41ecc 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -7,6 +7,7 @@ import numpy as np import h5py import openmc.checkvalue as cv +from openmc.mixin import Equality from .ace import Table, get_table from .angle_energy import AngleEnergy from .function import Tabulated1D @@ -60,7 +61,7 @@ def get_thermal_name(name): return 'c_' + name -class CoherentElastic(object): +class CoherentElastic(Equality): r"""Coherent elastic scattering data from a crystalline material Parameters @@ -89,15 +90,6 @@ class CoherentElastic(object): idx = np.searchsorted(self.bragg_edges, E) return self.factors[idx]/E - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (not np.array_equal(self.bragg_edges, other.bragg_edges) or - not np.array_equal(self.factors, other.factors)): - eqval = False - return eqval def __len__(self): return len(self.bragg_edges) @@ -156,7 +148,7 @@ class CoherentElastic(object): return cls(bragg_edges, factors) -class ThermalScattering(object): +class ThermalScattering(Equality): """A ThermalScattering object contains thermal scattering data as represented by an S(alpha, beta) table. @@ -200,23 +192,6 @@ class ThermalScattering(object): self.secondary_mode = None self.zaids = [] - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.name != other.name or - self.atomic_weight_ratio != other.atomic_weight_ratio or - self.elastic_xs != other.elastic_xs or - self.elastic_mu_out != other.elastic_mu_out or - self.inelastic_xs != other.inelastic_xs or - self.inelastic_mu_out != other.inelastic_mu_out or - self.temperature != other.temperature or - not np.array_equal(self.zaids, other.zaids) or - self.secondary_mode != other.secondary_mode): - eqval = False - return eqval - def __repr__(self): if hasattr(self, 'name'): return "".format(self.name) diff --git a/openmc/data/uncorrelated.py b/openmc/data/uncorrelated.py index 19945205ee..399db3e7cc 100644 --- a/openmc/data/uncorrelated.py +++ b/openmc/data/uncorrelated.py @@ -1,6 +1,7 @@ import numpy as np import openmc.checkvalue as cv +from openmc.mixin import Equality from .angle_energy import AngleEnergy from .energy_distribution import EnergyDistribution from .angle_distribution import AngleDistribution @@ -34,15 +35,6 @@ class UncorrelatedAngleEnergy(AngleEnergy): if energy is not None: self.energy = energy - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - if self.__dict__ != other.__dict__: - return False - else: - return True - @property def angle(self): return self._angle diff --git a/openmc/data/urr.py b/openmc/data/urr.py index 052da66126..2e6ea355f0 100644 --- a/openmc/data/urr.py +++ b/openmc/data/urr.py @@ -4,9 +4,10 @@ from numbers import Integral, Real import numpy as np import openmc.checkvalue as cv +from openmc.mixin import Equality -class ProbabilityTables(object): +class ProbabilityTables(Equality): r"""Unresolved resonance region probability tables. Parameters diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index c29386046c..2f5b304648 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -7,6 +7,7 @@ from xml.etree import ElementTree as ET import numpy as np import openmc.checkvalue as cv +from openmc.mixin import Equality if sys.version_info[0] >= 3: basestring = str @@ -15,7 +16,7 @@ _INTERPOLATION_SCHEMES = ['histogram', 'linear-linear', 'linear-log', 'log-linear', 'log-log'] -class Univariate(object): +class Univariate(Equality): """Probability distribution of a single random variable. The Univariate class is an abstract class that can be derived to implement a @@ -65,16 +66,6 @@ class Discrete(Univariate): self.x = x self.p = p - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (not np.array_equal(self.x, other.x) or - not np.array_equal(self.p, other.p)): - eqval = False - return eqval - def __len__(self): return len(self.x) @@ -149,16 +140,6 @@ class Uniform(Univariate): self.a = a self.b = b - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.a != other.a or - self.b != other.b): - eqval = False - return eqval - def __len__(self): return 2 @@ -229,15 +210,6 @@ class Maxwell(Univariate): super(Maxwell, self).__init__() self.theta = theta - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.theta != other.theta): - eqval = False - return eqval - def __len__(self): return 1 @@ -299,16 +271,6 @@ class Watt(Univariate): self.a = a self.b = b - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self.a != other.a or - self.b != other.b): - eqval = False - return eqval - def __len__(self): return 2 @@ -391,18 +353,6 @@ class Tabular(Univariate): self.p = p self.interpolation = interpolation - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (self._ignore_negative != other._ignore_negative or - not np.array_equal(self.x, other.x) or - not np.array_equal(self.p, other.p) or - self.interpolation != other.interpolation): - eqval = False - return eqval - def __len__(self): return len(self.x) @@ -484,15 +434,6 @@ class Legendre(Univariate): def __call__(self, x): return self._legendre_polynomial(x) - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if not np.array_equal(self.coefficients, other.coefficients): - eqval = False - return eqval - def __len__(self): return len(self._legendre_polynomial.coef) @@ -539,16 +480,6 @@ class Mixture(Univariate): self.probability = probability self.distribution = distribution - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - else: - eqval = True - if (not np.array_equal(self.probability, other.probability) or - not np.array_equal(self.distribution, other.distribution)): - eqval = False - return eqval - def __len__(self): return sum(len(d) for d in self.distribution) From fcd24cc219b85120c211b8ab4cbb80adaca8f515 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 16 Aug 2016 21:19:01 -0500 Subject: [PATCH 294/417] Return 0.0 from MGXS.get_nuclide_density if nuclide not in list --- openmc/mgxs/mgxs.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 7aa12d0418..137ab62f07 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -542,12 +542,6 @@ class MGXS(object): float The atomic number density (atom/b-cm) for the nuclide of interest - Raises - ------- - ValueError - When the density is requested for a nuclide which is not found in - the spatial domain. - """ cv.check_type('nuclide', nuclide, basestring) @@ -555,13 +549,7 @@ class MGXS(object): # Get list of all nuclides in the spatial domain nuclides = self.domain.get_nuclide_densities() - if nuclide not in nuclides: - msg = 'Unable to get density for nuclide "{0}" which is not in ' \ - '{1} "{2}"'.format(nuclide, self.domain_type, self.domain.id) - ValueError(msg) - - density = nuclides[nuclide][1] - return density + return nuclides[nuclide][1] if nuclide in nuclides else 0.0 def get_nuclide_densities(self, nuclides='all'): """Get an array of atomic number densities in units of atom/b-cm for all @@ -816,6 +804,7 @@ class MGXS(object): densities = self.get_nuclide_densities('sum') if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] + xs[np.isnan(xs)] = 0.0 # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies @@ -1561,6 +1550,10 @@ class MGXS(object): df['mean'] /= np.tile(densities, tile_factor) df['std. dev.'] /= np.tile(densities, tile_factor) + # Replace NaNs by zeros (happens if nuclide density is zero) + df['mean'].replace(np.nan, 0.0, inplace=True) + df['std. dev.'].replace(np.nan, 0.0, inplace=True) + # Sort the dataframe by domain type id (e.g., distribcell id) and # energy groups such that data is from fast to thermal if self.domain_type == 'mesh': @@ -1813,6 +1806,7 @@ class MatrixMGXS(MGXS): densities = self.get_nuclide_densities('sum') if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] + xs[np.isnan(xs)] = 0.0 # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies @@ -3645,6 +3639,7 @@ class ScatterMatrixXS(MatrixMGXS): densities = self.get_nuclide_densities('sum') if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] + xs[np.isnan(xs)] = 0.0 # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies From f00461d9550bb1d68f81c162fcc0243936ce2f51 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 17 Aug 2016 06:09:03 -0500 Subject: [PATCH 295/417] Fix RELAX NG schemata for settings.xml --- src/relaxng/settings.rnc | 2 +- src/relaxng/settings.rng | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/relaxng/settings.rnc b/src/relaxng/settings.rnc index e23cbdd6cd..742e137738 100644 --- a/src/relaxng/settings.rnc +++ b/src/relaxng/settings.rnc @@ -153,7 +153,7 @@ element settings { attribute lower_left { list { xsd:double+ } }) & (element upper_right { list { xsd:double+ } } | attribute upper_right { list { xsd:double+ } }) - }+ & + }* & element uniform_fs{ (element dimension { list { xsd:positiveInteger+ } } | diff --git a/src/relaxng/settings.rng b/src/relaxng/settings.rng index 38acea5985..39bed4a62f 100644 --- a/src/relaxng/settings.rng +++ b/src/relaxng/settings.rng @@ -625,7 +625,7 @@
- + @@ -694,7 +694,7 @@ - + From 079f61cd1c8e5cb3da7632b0bfa6ac876d42b72d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 17 Aug 2016 10:50:33 -0500 Subject: [PATCH 296/417] No need for redundant NaN -> zero (@samuelshaner beat me to it) --- openmc/mgxs/mgxs.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 4b465a19d5..e77685088c 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -815,7 +815,6 @@ class MGXS(object): densities = self.get_nuclide_densities('sum') if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] - xs[np.isnan(xs)] = 0.0 # Eliminate the trivial score dimension xs = np.squeeze(xs, axis=len(xs.shape) - 1) @@ -1818,7 +1817,6 @@ class MatrixMGXS(MGXS): densities = self.get_nuclide_densities('sum') if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] - xs[np.isnan(xs)] = 0.0 # Eliminate the trivial score dimension xs = np.squeeze(xs, axis=len(xs.shape) - 1) @@ -3655,7 +3653,6 @@ class ScatterMatrixXS(MatrixMGXS): densities = self.get_nuclide_densities('sum') if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] - xs[np.isnan(xs)] = 0.0 # Convert and nans to zero xs = np.nan_to_num(xs) From 760168a82e1e3ffb4e4024ededdd84249a901f51 Mon Sep 17 00:00:00 2001 From: amandalund Date: Wed, 17 Aug 2016 16:21:10 -0500 Subject: [PATCH 297/417] Address #706 comments --- docs/source/pythonapi/index.rst | 1 + openmc/model/triso.py | 42 ++++++++++++++++----------------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 392c2c72df..14f4a2128d 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -334,6 +334,7 @@ Functions :nosignatures: openmc.model.create_triso_lattice + openmc.model.pack_trisos -------------------------------------------- :mod:`openmc.data` -- Nuclear Data Interface diff --git a/openmc/model/triso.py b/openmc/model/triso.py index c1ed9336ab..763fc0ddda 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -4,14 +4,14 @@ from collections import Iterable, defaultdict from numbers import Real import warnings import itertools -import scipy.spatial -from scipy.spatial.distance import cdist import random from random import uniform, gauss from heapq import heappush, heappop from math import pi, sin, cos, floor, log10 import numpy as np +import scipy.spatial +from scipy.spatial.distance import cdist import openmc import openmc.checkvalue as cv @@ -433,8 +433,8 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, """ rod = [d, i, j] - rods_map[i] = j, rod - rods_map[j] = i, rod + rods_map[i] = (j, rod) + rods_map[j] = (i, rod) heappush(rods, rod) @@ -516,7 +516,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, # Remove duplicate rods and sort by distance r = map(list, set([(x[2], int(min(x[0:2])), int(max(x[0:2]))) - for x in r])) + for x in r])) # Clear priority queue and add rods del rods[:] @@ -617,7 +617,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, # Moving each particle distance 'r' away from the other along the line # joining the particle centers will ensure their final distance is equal # to the outer diameter - r = (outer_diameter[0] - d)/2; + r = (outer_diameter[0] - d)/2 v = (particles[i] - particles[j])/d particles[i] = particles[i] + r*v @@ -735,7 +735,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, cl = cell_length return tuple([int((p[0] + domain_radius)/cl[0]), - int((p[1] + domain_radius)/cl[1]), int(p[2]/cl[2])]) + int((p[1] + domain_radius)/cl[1]), int(p[2]/cl[2])]) def cell_index_sphere(p, cl=None): @@ -787,7 +787,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, cl = cell_length r = [[a/cl[i] for a in [p[i]-d, p[i], p[i]+d] if a > 0 and - a < domain_length] for i in range(3)] + a < domain_length] for i in range(3)] return list(itertools.product(*({int(i) for i in j} for j in r))) @@ -816,13 +816,13 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, if cl is None: cl = cell_length - x,y = [[(a + domain_radius)/cl[i] for a in [p[i]-d, p[i], p[i]+d] - if a > -domain_radius and a < domain_radius] for i in range(2)] + x, y = [[(a + domain_radius)/cl[i] for a in [p[i]-d, p[i], p[i]+d] + if a > -domain_radius and a < domain_radius] for i in range(2)] z = [a/cl[2] for a in [p[2]-d, p[2], p[2]+d] if a > 0 and a < domain_length] - return list(itertools.product(*({int(i) for i in j} for j in (x,y,z)))) + return list(itertools.product(*({int(i) for i in j} for j in (x, y, z)))) def cell_list_sphere(p, d, cl=None): @@ -850,7 +850,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, cl = cell_length r = [[(a + domain_radius)/cl[i] for a in [p[i]-d, p[i], p[i]+d] - if a > -domain_radius and a < domain_radius] for i in range(3)] + if a > -domain_radius and a < domain_radius] for i in range(3)] return list(itertools.product(*({int(i) for i in j} for j in r))) @@ -878,13 +878,13 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, for i in range(n_particles): # Randomly sample new center coordinates while there are any overlaps while True: - p = random_point() - idx = cell_index(p, cl) - if any((p[0]-q[0])**2 + (p[1]-q[1])**2 + (p[2]-q[2])**2 < sqd - for q in mesh[idx]): - continue - else: - break + p = random_point() + idx = cell_index(p, cl) + if any((p[0]-q[0])**2 + (p[1]-q[1])**2 + (p[2]-q[2])**2 < sqd + for q in mesh[idx]): + continue + else: + break particles.append(p) for idx in cell_list(p, d, cl): @@ -998,7 +998,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, close_random_pack() trisos = [] - for i in range(n_particles): - trisos.append(TRISO(radius, fill, particles[i] + offset)) + for p in particles: + trisos.append(TRISO(radius, fill, p + offset)) return trisos From 89778d422e966692aaef5fe9c6c9e4322c094f05 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 17 Aug 2016 18:55:08 -0400 Subject: [PATCH 298/417] Missed an import of mixin --- openmc/__init__.py | 1 + openmc/data/kalbach_mann.py | 1 - openmc/data/library.py | 2 ++ openmc/data/uncorrelated.py | 1 - 4 files changed, 3 insertions(+), 2 deletions(-) diff --git a/openmc/__init__.py b/openmc/__init__.py index a0492ee408..2aeacd689b 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -22,6 +22,7 @@ from openmc.executor import * from openmc.statepoint import * from openmc.summary import * from openmc.particle_restart import * +from openmc.mixin import * try: from openmc.opencg_compatible import * diff --git a/openmc/data/kalbach_mann.py b/openmc/data/kalbach_mann.py index c44c46b654..5aca17ba9f 100644 --- a/openmc/data/kalbach_mann.py +++ b/openmc/data/kalbach_mann.py @@ -5,7 +5,6 @@ from warnings import warn import numpy as np import openmc.checkvalue as cv -from openmc.mixin import Equality from openmc.stats import Tabular, Univariate, Discrete, Mixture from .function import Tabulated1D, INTERPOLATION_SCHEME from .angle_energy import AngleEnergy diff --git a/openmc/data/library.py b/openmc/data/library.py index 3fed7598d3..6c2600f320 100644 --- a/openmc/data/library.py +++ b/openmc/data/library.py @@ -3,8 +3,10 @@ import xml.etree.ElementTree as ET import h5py +from openmc.mixin import Equality from openmc.clean_xml import clean_xml_indentation + class DataLibrary(Equality): def __init__(self): self.libraries = [] diff --git a/openmc/data/uncorrelated.py b/openmc/data/uncorrelated.py index 399db3e7cc..0361c9b37a 100644 --- a/openmc/data/uncorrelated.py +++ b/openmc/data/uncorrelated.py @@ -1,7 +1,6 @@ import numpy as np import openmc.checkvalue as cv -from openmc.mixin import Equality from .angle_energy import AngleEnergy from .energy_distribution import EnergyDistribution from .angle_distribution import AngleDistribution From 4acfa570629bdf64d959f5f1a5ebaf969cfbc687 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 18 Aug 2016 10:51:22 -0400 Subject: [PATCH 299/417] Added optimization option for OpenCG compatibility module --- openmc/opencg_compatible.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 58ce0d0c29..bca735a812 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -997,13 +997,17 @@ def get_opencg_geometry(openmc_geometry): return opencg_geometry -def get_openmc_geometry(opencg_geometry): +def get_openmc_geometry(opencg_geometry, compatible=True): """Return an OpenMC geometry corresponding to an OpenCG geometry. Parameters ---------- opencg_geometry : opencg.Geometry OpenCG geometry + compatible : bool + Whether the OpenCG geometry is compatible with OpenMOC's geometric + primitives. This should be set to False if the OpenCG geometry + uses SquarePrism surfaces. True by default as an optimization. Returns ------- @@ -1019,9 +1023,6 @@ def get_openmc_geometry(opencg_geometry): opencg_geometry.assign_auto_ids() opencg_geometry = copy.deepcopy(opencg_geometry) - # Update Cell bounding boxes in Geometry - opencg_geometry.update_bounding_boxes() - # Clear dictionaries and auto-generated ID OPENMC_SURFACES.clear() OPENCG_SURFACES.clear() @@ -1033,12 +1034,13 @@ def get_openmc_geometry(opencg_geometry): OPENCG_LATTICES.clear() # Make the entire geometry "compatible" before assigning auto IDs - universes = opencg_geometry.get_all_universes() - for universe in universes.values(): - if not isinstance(universe, opencg.Lattice): - make_opencg_cells_compatible(universe) + if not compatible: + universes = opencg_geometry.get_all_universes() + for universe in universes.values(): + if not isinstance(universe, opencg.Lattice): + make_opencg_cells_compatible(universe) - opencg_geometry.assign_auto_ids() + opencg_geometry.assign_auto_ids() opencg_root_universe = opencg_geometry.root_universe openmc_root_universe = get_openmc_universe(opencg_root_universe) From 3fb36ea9ec5736781d902f09a1b660c2a4f0a4da Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 18 Aug 2016 10:53:23 -0500 Subject: [PATCH 300/417] Hotfix for ScatterMatrixXS.get_pandas_dataframe (parent method doesn't account for multiple scores). --- openmc/mgxs/mgxs.py | 3 +- .../results_true.dat | 144 +++++++++--------- .../results_true.dat | 2 +- 3 files changed, 75 insertions(+), 74 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e77685088c..c0bc9c2666 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1523,7 +1523,8 @@ class MGXS(object): df.rename(columns={'energyout low [MeV]': 'group out'}, inplace=True) - out_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size)) + out_groups = np.repeat(all_groups, self.xs_tally.num_scores) + out_groups = np.tile(out_groups, int(df.shape[0] / out_groups.size)) df['group out'] = out_groups del df['energyout high [MeV]'] columns = ['group in', 'group out'] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 3563f141b1..edd99b44c5 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -29,39 +29,39 @@ 1 10000 1 total 0.385188 0.026946 0 10000 2 total 0.412389 0.015425 material group in group out nuclide moment mean std. dev. -9 10000 1 1 total P0 -0.000207 0.000149 -11 10000 1 1 total P1 0.000234 0.000128 -13 10000 1 1 total P2 0.051870 0.006983 +12 10000 1 1 total P0 0.384199 0.027001 +13 10000 1 1 total P1 0.051870 0.006983 +14 10000 1 1 total P2 0.020069 0.002846 15 10000 1 1 total P3 0.009478 0.002234 8 10000 1 2 total P0 0.000989 0.000482 -10 10000 1 2 total P1 -0.000103 0.000184 -12 10000 1 2 total P2 0.384199 0.027001 -14 10000 1 2 total P3 0.020069 0.002846 -1 10000 2 1 total P0 0.016482 0.004502 -3 10000 2 1 total P1 -0.010499 0.010438 -5 10000 2 1 total P2 -0.000768 0.000768 +9 10000 1 2 total P1 -0.000207 0.000149 +10 10000 1 2 total P2 -0.000103 0.000184 +11 10000 1 2 total P3 0.000234 0.000128 +4 10000 2 1 total P0 0.000925 0.000925 +5 10000 2 1 total P1 -0.000768 0.000768 +6 10000 2 1 total P2 0.000494 0.000494 7 10000 2 1 total P3 -0.000171 0.000172 0 10000 2 2 total P0 0.411465 0.015245 -2 10000 2 2 total P1 0.006371 0.010551 -4 10000 2 2 total P2 0.000925 0.000925 -6 10000 2 2 total P3 0.000494 0.000494 +1 10000 2 2 total P1 0.016482 0.004502 +2 10000 2 2 total P2 0.006371 0.010551 +3 10000 2 2 total P3 -0.010499 0.010438 material group in group out nuclide moment mean std. dev. -9 10000 1 1 total P0 -0.000207 0.000149 -11 10000 1 1 total P1 0.000234 0.000128 -13 10000 1 1 total P2 0.051870 0.006983 +12 10000 1 1 total P0 0.384199 0.027001 +13 10000 1 1 total P1 0.051870 0.006983 +14 10000 1 1 total P2 0.020069 0.002846 15 10000 1 1 total P3 0.009478 0.002234 8 10000 1 2 total P0 0.000989 0.000482 -10 10000 1 2 total P1 -0.000103 0.000184 -12 10000 1 2 total P2 0.384199 0.027001 -14 10000 1 2 total P3 0.020069 0.002846 -1 10000 2 1 total P0 0.016482 0.004502 -3 10000 2 1 total P1 -0.010499 0.010438 -5 10000 2 1 total P2 -0.000768 0.000768 +9 10000 1 2 total P1 -0.000207 0.000149 +10 10000 1 2 total P2 -0.000103 0.000184 +11 10000 1 2 total P3 0.000234 0.000128 +4 10000 2 1 total P0 0.000925 0.000925 +5 10000 2 1 total P1 -0.000768 0.000768 +6 10000 2 1 total P2 0.000494 0.000494 7 10000 2 1 total P3 -0.000171 0.000172 0 10000 2 2 total P0 0.411465 0.015245 -2 10000 2 2 total P1 0.006371 0.010551 -4 10000 2 2 total P2 0.000925 0.000925 -6 10000 2 2 total P3 0.000494 0.000494 +1 10000 2 2 total P1 0.016482 0.004502 +2 10000 2 2 total P2 0.006371 0.010551 +3 10000 2 2 total P3 -0.010499 0.010438 material group in group out nuclide mean std. dev. 3 10000 1 1 total 1.0 0.078516 2 10000 1 2 total 1.0 0.687184 @@ -154,39 +154,39 @@ 1 10001 1 total 0.310121 0.033788 0 10001 2 total 0.296264 0.043792 material group in group out nuclide moment mean std. dev. -9 10001 1 1 total P0 0.000000 0.000000 -11 10001 1 1 total P1 0.000000 0.000000 -13 10001 1 1 total P2 0.038230 0.008484 +12 10001 1 1 total P0 0.310121 0.033788 +13 10001 1 1 total P1 0.038230 0.008484 +14 10001 1 1 total P2 0.020745 0.004696 15 10001 1 1 total P3 0.007964 0.003732 8 10001 1 2 total P0 0.000000 0.000000 -10 10001 1 2 total P1 0.000000 0.000000 -12 10001 1 2 total P2 0.310121 0.033788 -14 10001 1 2 total P3 0.020745 0.004696 -1 10001 2 1 total P0 -0.011214 0.016180 -3 10001 2 1 total P1 -0.003270 0.007329 -5 10001 2 1 total P2 0.000000 0.000000 +9 10001 1 2 total P1 0.000000 0.000000 +10 10001 1 2 total P2 0.000000 0.000000 +11 10001 1 2 total P3 0.000000 0.000000 +4 10001 2 1 total P0 0.000000 0.000000 +5 10001 2 1 total P1 0.000000 0.000000 +6 10001 2 1 total P2 0.000000 0.000000 7 10001 2 1 total P3 0.000000 0.000000 0 10001 2 2 total P0 0.296264 0.043792 -2 10001 2 2 total P1 0.008837 0.011504 -4 10001 2 2 total P2 0.000000 0.000000 -6 10001 2 2 total P3 0.000000 0.000000 +1 10001 2 2 total P1 -0.011214 0.016180 +2 10001 2 2 total P2 0.008837 0.011504 +3 10001 2 2 total P3 -0.003270 0.007329 material group in group out nuclide moment mean std. dev. -9 10001 1 1 total P0 0.000000 0.000000 -11 10001 1 1 total P1 0.000000 0.000000 -13 10001 1 1 total P2 0.038230 0.008484 +12 10001 1 1 total P0 0.310121 0.033788 +13 10001 1 1 total P1 0.038230 0.008484 +14 10001 1 1 total P2 0.020745 0.004696 15 10001 1 1 total P3 0.007964 0.003732 8 10001 1 2 total P0 0.000000 0.000000 -10 10001 1 2 total P1 0.000000 0.000000 -12 10001 1 2 total P2 0.310121 0.033788 -14 10001 1 2 total P3 0.020745 0.004696 -1 10001 2 1 total P0 -0.011214 0.016180 -3 10001 2 1 total P1 -0.003270 0.007329 -5 10001 2 1 total P2 0.000000 0.000000 +9 10001 1 2 total P1 0.000000 0.000000 +10 10001 1 2 total P2 0.000000 0.000000 +11 10001 1 2 total P3 0.000000 0.000000 +4 10001 2 1 total P0 0.000000 0.000000 +5 10001 2 1 total P1 0.000000 0.000000 +6 10001 2 1 total P2 0.000000 0.000000 7 10001 2 1 total P3 0.000000 0.000000 0 10001 2 2 total P0 0.296264 0.043792 -2 10001 2 2 total P1 0.008837 0.011504 -4 10001 2 2 total P2 0.000000 0.000000 -6 10001 2 2 total P3 0.000000 0.000000 +1 10001 2 2 total P1 -0.011214 0.016180 +2 10001 2 2 total P2 0.008837 0.011504 +3 10001 2 2 total P3 -0.003270 0.007329 material group in group out nuclide mean std. dev. 3 10001 1 1 total 1.0 0.108779 2 10001 1 2 total 0.0 0.000000 @@ -279,39 +279,39 @@ 1 10002 1 total 0.671269 0.026186 0 10002 2 total 2.035388 0.258060 material group in group out nuclide moment mean std. dev. -9 10002 1 1 total P0 0.008758 0.000926 -11 10002 1 1 total P1 -0.003785 0.000817 -13 10002 1 1 total P2 0.381167 0.016243 +12 10002 1 1 total P0 0.639901 0.024709 +13 10002 1 1 total P1 0.381167 0.016243 +14 10002 1 1 total P2 0.152392 0.008156 15 10002 1 1 total P3 0.009148 0.003889 8 10002 1 2 total P0 0.031368 0.001728 -10 10002 1 2 total P1 -0.002568 0.001014 -12 10002 1 2 total P2 0.639901 0.024709 -14 10002 1 2 total P3 0.152392 0.008156 -1 10002 2 1 total P0 0.509941 0.051236 -3 10002 2 1 total P1 0.024988 0.008312 -5 10002 2 1 total P2 0.000400 0.000401 +9 10002 1 2 total P1 0.008758 0.000926 +10 10002 1 2 total P2 -0.002568 0.001014 +11 10002 1 2 total P3 -0.003785 0.000817 +4 10002 2 1 total P0 0.000443 0.000445 +5 10002 2 1 total P1 0.000400 0.000401 +6 10002 2 1 total P2 0.000320 0.000321 7 10002 2 1 total P3 0.000214 0.000215 0 10002 2 2 total P0 2.034945 0.257800 -2 10002 2 2 total P1 0.111175 0.013020 -4 10002 2 2 total P2 0.000443 0.000445 -6 10002 2 2 total P3 0.000320 0.000321 +1 10002 2 2 total P1 0.509941 0.051236 +2 10002 2 2 total P2 0.111175 0.013020 +3 10002 2 2 total P3 0.024988 0.008312 material group in group out nuclide moment mean std. dev. -9 10002 1 1 total P0 0.008758 0.000926 -11 10002 1 1 total P1 -0.003785 0.000817 -13 10002 1 1 total P2 0.381167 0.016243 +12 10002 1 1 total P0 0.639901 0.024709 +13 10002 1 1 total P1 0.381167 0.016243 +14 10002 1 1 total P2 0.152392 0.008156 15 10002 1 1 total P3 0.009148 0.003889 8 10002 1 2 total P0 0.031368 0.001728 -10 10002 1 2 total P1 -0.002568 0.001014 -12 10002 1 2 total P2 0.639901 0.024709 -14 10002 1 2 total P3 0.152392 0.008156 -1 10002 2 1 total P0 0.509941 0.051236 -3 10002 2 1 total P1 0.024988 0.008312 -5 10002 2 1 total P2 0.000400 0.000401 +9 10002 1 2 total P1 0.008758 0.000926 +10 10002 1 2 total P2 -0.002568 0.001014 +11 10002 1 2 total P3 -0.003785 0.000817 +4 10002 2 1 total P0 0.000443 0.000445 +5 10002 2 1 total P1 0.000400 0.000401 +6 10002 2 1 total P2 0.000320 0.000321 7 10002 2 1 total P3 0.000214 0.000215 0 10002 2 2 total P0 2.034945 0.257800 -2 10002 2 2 total P1 0.111175 0.013020 -4 10002 2 2 total P2 0.000443 0.000445 -6 10002 2 2 total P3 0.000320 0.000321 +1 10002 2 2 total P1 0.509941 0.051236 +2 10002 2 2 total P2 0.111175 0.013020 +3 10002 2 2 total P3 0.024988 0.008312 material group in group out nuclide mean std. dev. 3 10002 1 1 total 1.0 0.038609 2 10002 1 2 total 1.0 0.067667 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index d3e3235ccc..3da8146042 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -8142ae4e107002a835999e4ace85c17376f262a7059fc224f3756a2de19aba6ca4c4fa14ca2085c87d7729aa8d6d6f78fdae21ac6dfe33ca303449c769076074 \ No newline at end of file +e494320a213b5704a2ac915a2ba504857be91961ceb6735b6ad05d81eb31c44c9584d5bd9d40baececf1dcb5b030e6ecec63cfbd20639baf69bcb596c5c46591 \ No newline at end of file From a13d5a27480cb4d38a0c1774a07fd8b5696d530c Mon Sep 17 00:00:00 2001 From: amandalund Date: Thu, 18 Aug 2016 10:54:02 -0500 Subject: [PATCH 301/417] Address #706 comments --- openmc/model/triso.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index 763fc0ddda..33c955e3be 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -7,7 +7,7 @@ import itertools import random from random import uniform, gauss from heapq import heappush, heappop -from math import pi, sin, cos, floor, log10 +from math import pi, sin, cos, floor, log10, sqrt import numpy as np import scipy.spatial @@ -224,8 +224,8 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, RSP. This initial configuration of particles is then used as a starting point for CRP using Jodrey and Tory's algorithm [1]_. - In RSP, particle centers are placed one by one at rondom, and placement - attempts for a particles are made until the particle is not overlapping any + In RSP, particle centers are placed one by one at random, and placement + attempts for a particle are made until the particle is not overlapping any others. This implementation of the algorithm uses a lattice over the domain to speed up the nearest neighbor search by only searching for a particle's neighbors within that lattice cell. @@ -333,7 +333,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, """ if domain_shape is 'cube': - return np.array(domain_center) - 3*(domain_length/2,) + return np.array(domain_center) - domain_length/2 elif domain_shape is 'cylinder': return np.array(domain_center) - (0, 0, domain_length/2) elif domain_shape is 'sphere': @@ -399,7 +399,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, """ - r = uniform(0, ulim[0]**2)**.5 + r = sqrt(uniform(0, ulim[0]**2)) t = uniform(0, 2*pi) return [r*cos(t), r*sin(t), uniform(llim[2], ulim[2])] @@ -416,7 +416,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, """ x = (gauss(0, 1), gauss(0, 1), gauss(0, 1)) - r = (uniform(0, ulim[0]**3)**(1/3) / (x[0]**2 + x[1]**2 + x[2]**2)**.5) + r = (uniform(0, ulim[0]**3)**(1/3) / sqrt(x[0]**2 + x[1]**2 + x[2]**2)) return [r*i for i in x] @@ -620,8 +620,8 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, r = (outer_diameter[0] - d)/2 v = (particles[i] - particles[j])/d - particles[i] = particles[i] + r*v - particles[j] = particles[j] - r*v + particles[i] += r*v + particles[j] -= r*v # Apply reflective boundary conditions apply_boundary_conditions(i, j) @@ -643,7 +643,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, ------- int Index in particles array of nearest neighbor of i - double + float distance between i and nearest neighbor. """ @@ -734,8 +734,8 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, if cl is None: cl = cell_length - return tuple([int((p[0] + domain_radius)/cl[0]), - int((p[1] + domain_radius)/cl[1]), int(p[2]/cl[2])]) + return (int((p[0] + domain_radius)/cl[0]), + int((p[1] + domain_radius)/cl[1]), int(p[2]/cl[2])) def cell_index_sphere(p, cl=None): @@ -935,7 +935,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, # Calculate the packing fraction if the number of particles is specified; # otherwise, calculate the number of particles from the packing fraction. if ((n_particles is None and packing_fraction is None) or - (n_particles is not None and packing_fraction is not None)): + (n_particles is not None and packing_fraction is not None)): raise ValueError('Exactly one of "n_particles" and "packing_fraction" ' 'must be specified.') elif packing_fraction is None: From a265770e7b8221f06afa595c085bd1e8422d7a1c Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 18 Aug 2016 12:38:30 -0400 Subject: [PATCH 302/417] Fixed comment OpenMOC -> OpenMC --- openmc/opencg_compatible.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index bca735a812..501e570a76 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -1005,7 +1005,7 @@ def get_openmc_geometry(opencg_geometry, compatible=True): opencg_geometry : opencg.Geometry OpenCG geometry compatible : bool - Whether the OpenCG geometry is compatible with OpenMOC's geometric + Whether the OpenCG geometry is compatible with OpenMC's geometric primitives. This should be set to False if the OpenCG geometry uses SquarePrism surfaces. True by default as an optimization. From 9e1da7a5bfa9e5cb0d66b66213cb48dd448c7f0a Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 18 Aug 2016 14:20:33 -0400 Subject: [PATCH 303/417] Changed compatibility parameter to default to False for OpenCG-to-OpenMC conversion --- openmc/opencg_compatible.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index bca735a812..e81538fcf5 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -997,7 +997,7 @@ def get_opencg_geometry(openmc_geometry): return opencg_geometry -def get_openmc_geometry(opencg_geometry, compatible=True): +def get_openmc_geometry(opencg_geometry, compatible=False): """Return an OpenMC geometry corresponding to an OpenCG geometry. Parameters @@ -1007,7 +1007,7 @@ def get_openmc_geometry(opencg_geometry, compatible=True): compatible : bool Whether the OpenCG geometry is compatible with OpenMOC's geometric primitives. This should be set to False if the OpenCG geometry - uses SquarePrism surfaces. True by default as an optimization. + uses SquarePrism surfaces. False by default. Returns ------- From 59d474c1758d84d7e71b7f83276f51f6b62fa7b9 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 18 Aug 2016 17:24:30 -0500 Subject: [PATCH 304/417] Respond to comments on #705 --- openmc/mgxs/mdgxs.py | 3 ++- src/source.F90 | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index 0a2f898c07..5e5d840b6c 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -793,7 +793,8 @@ class MDGXS(MGXS): df.rename(columns={'energyout low [MeV]': 'group out'}, inplace=True) - out_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size)) + out_groups = np.repeat(all_groups, self.xs_tally.num_scores) + out_groups = np.tile(out_groups, int(df.shape[0] / out_groups.size)) df['group out'] = out_groups del df['energyout high [MeV]'] columns = ['group in', 'group out'] diff --git a/src/source.F90 b/src/source.F90 index fad9ae46af..452d8ddfce 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -107,7 +107,7 @@ contains real(8) :: r(3) ! sampled coordinates logical :: found ! Does the source particle exist within geometry? type(Particle) :: p ! Temporary particle for using find_cell - integer, save :: n_sample = 0 ! Number of samples + integer, save :: n_accept = 0 ! Number of samples accepted integer, save :: n_reject = 0 ! Number of samples rejected ! Set weight to one by default @@ -161,15 +161,15 @@ contains if (.not. found) then n_reject = n_reject + 1 if (n_reject >= EXTSRC_REJECT_THRESHOLD .and. & - real(n_sample, 8)/n_reject <= EXTSRC_REJECT_FRACTION) then + real(n_accept, 8)/n_reject <= EXTSRC_REJECT_FRACTION) then call fatal_error("More than 95% of external source sites sampled & &were rejected. Please check your external source definition.") end if end if end do - ! Increment number of samples - n_sample = n_sample + 1 + ! Increment number of accepted samples + n_accept = n_accept + 1 call p % clear() From 256f0b93eb411430475255d783301b1adef32d71 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 18 Aug 2016 19:27:32 -0400 Subject: [PATCH 305/417] Resolving comments from @samuelshaner and @wbinventor --- openmc/mesh.py | 6 +++--- openmc/mgxs/library.py | 8 +++----- openmc/mgxs_library.py | 16 ++++++++-------- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index c2b23bf1f9..58b9c7c0e5 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -6,8 +6,7 @@ import sys import numpy as np import openmc.checkvalue as cv -import openmc.surface -import openmc.cell +import openmc if sys.version_info[0] >= 3: @@ -199,6 +198,7 @@ class Mesh(object): ... """ + if len(self.dimension) == 2: for x in range(self.dimension[0]): for y in range(self.dimension[1]): @@ -241,7 +241,7 @@ class Mesh(object): def build_cells(self, bc=['reflective'] * 6): """Generates a lattice of universes with the same dimensionality - as the mesh object in self. The individual cells/universes produced + as the mesh object. The individual cells/universes produced will not have material definitions applied and so downstream code will have to apply that information. diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index d3d32ee599..9e5dba310c 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -899,7 +899,7 @@ class Library(object): cv.check_greater_than('tabular_points', tabular_points, 1) if subdomain is not None: cv.check_iterable_type('subdomain', subdomain, Integral, - max_depth=2) + max_depth=3) # Make sure statepoint has been loaded if self._sp_filename is None: @@ -1123,8 +1123,6 @@ class Library(object): # Create XSdata and Macroscopic for this domain xsdata = self.get_xsdata(domain, xsdata_name, - nuclide='total', - xs_type=xs_type, xs_id=all_xs_ids[i], tabular_legendre=tabular_legendre, tabular_points=tabular_points, @@ -1192,7 +1190,7 @@ class Library(object): in building the tabular distribution. Default is `33`. bc : iterable of {'reflective', 'periodic', 'transmission', or 'vacuum'} Boundary conditions for each of the four faces of a rectangle - (if aplying to a 2D mesh) or six faces of a parallelepiped + (if applying to a 2D mesh) or six faces of a parallelepiped (if applying to a 3D mesh) provided in the following order: [x min, x max, y min, y max, z min, z max]. 2-D cells do not contain the z min and z max entries. @@ -1227,7 +1225,7 @@ class Library(object): self.check_library_for_openmc_mgxs() # If the domain type is a mesh, then there can only be one domain for - # this method. Thi is because we can build a model automatically if + # this method. This is because we can build a model automatically if # the user provided multiple mesh domains for library generation since # the multiple meshes could be overlapping or in disparate regions # of the continuous energy model. The next step makes sure there is diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index c9a7debdcd..a3a2187b75 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -622,7 +622,7 @@ class XSdata(object): barns. Defaults to 'macro'. subdomain : iterable of int If the MGXS contains a mesh domain type, the subdomain parameter - specifies which mesh cell ([i, j, k]) to use. + specifies which mesh cell (i.e., [i, j, k] index) to use. See also -------- @@ -662,7 +662,7 @@ class XSdata(object): barns. Defaults to 'macro'. subdomain : iterable of int If the MGXS contains a mesh domain type, the subdomain parameter - specifies which mesh cell ([i, j, k]) to use. + specifies which mesh cell (i.e., [i, j, k] index) to use. See also -------- @@ -703,7 +703,7 @@ class XSdata(object): barns. Defaults to 'macro'. subdomain : iterable of int If the MGXS contains a mesh domain type, the subdomain parameter - specifies which mesh cell ([i, j, k]) to use. + specifies which mesh cell (i.e., [i, j, k] index) to use. See also -------- @@ -744,7 +744,7 @@ class XSdata(object): barns. Defaults to 'macro'. subdomain : iterable of int If the MGXS contains a mesh domain type, the subdomain parameter - specifies which mesh cell ([i, j, k]) to use. + specifies which mesh cell (i.e., [i, j, k] index) to use. See also -------- @@ -795,7 +795,7 @@ class XSdata(object): barns. Defaults to 'macro'. subdomain : iterable of int If the MGXS contains a mesh domain type, the subdomain parameter - specifies which mesh cell ([i, j, k]) to use. + specifies which mesh cell (i.e., [i, j, k] index) to use. See also -------- @@ -835,7 +835,7 @@ class XSdata(object): barns. Defaults to 'macro'. subdomain : iterable of int If the MGXS contains a mesh domain type, the subdomain parameter - specifies which mesh cell ([i, j, k]) to use. + specifies which mesh cell (i.e., [i, j, k] index) to use. See also -------- @@ -885,7 +885,7 @@ class XSdata(object): barns. Defaults to 'macro'. subdomain : iterable of int If the MGXS contains a mesh domain type, the subdomain parameter - specifies which mesh cell ([i, j, k]) to use. + specifies which mesh cell (i.e., [i, j, k] index) to use. See also -------- @@ -958,7 +958,7 @@ class XSdata(object): barns. Defaults to 'macro'. subdomain : iterable of int If the MGXS contains a mesh domain type, the subdomain parameter - specifies which mesh cell ([i, j, k]) to use. + specifies which mesh cell (i.e., [i, j, k] index) to use. See also -------- From 64032169117fc57a48ae706855aa38a43ecdb4db Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 19 Aug 2016 06:58:17 -0400 Subject: [PATCH 306/417] Renamed Equality to EqualityMixin --- openmc/data/ace.py | 6 +++--- openmc/data/angle_distribution.py | 4 ++-- openmc/data/angle_energy.py | 4 ++-- openmc/data/energy_distribution.py | 4 ++-- openmc/data/fission_energy.py | 4 ++-- openmc/data/function.py | 6 +++--- openmc/data/library.py | 4 ++-- openmc/data/neutron.py | 4 ++-- openmc/data/product.py | 4 ++-- openmc/data/reaction.py | 4 ++-- openmc/data/thermal.py | 6 +++--- openmc/data/urr.py | 4 ++-- openmc/mixin.py | 2 +- 13 files changed, 28 insertions(+), 28 deletions(-) diff --git a/openmc/data/ace.py b/openmc/data/ace.py index 867e3767a1..831e40fc81 100644 --- a/openmc/data/ace.py +++ b/openmc/data/ace.py @@ -22,7 +22,7 @@ import sys import numpy as np -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin if sys.version_info[0] >= 3: @@ -133,7 +133,7 @@ def get_table(filename, name=None): .format(name)) -class Library(Equality): +class Library(EqualityMixin): """A Library objects represents an ACE-formatted file which may contain multiple tables with data. @@ -355,7 +355,7 @@ class Library(Equality): lines = [ace_file.readline() for i in range(13)] -class Table(Equality): +class Table(EqualityMixin): """ACE cross section table Parameters diff --git a/openmc/data/angle_distribution.py b/openmc/data/angle_distribution.py index 81cc068305..80b6cdbdb1 100644 --- a/openmc/data/angle_distribution.py +++ b/openmc/data/angle_distribution.py @@ -4,12 +4,12 @@ from numbers import Real import numpy as np import openmc.checkvalue as cv -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin from openmc.stats import Univariate, Tabular, Uniform from .function import INTERPOLATION_SCHEME -class AngleDistribution(Equality): +class AngleDistribution(EqualityMixin): """Angle distribution as a function of incoming energy Parameters diff --git a/openmc/data/angle_energy.py b/openmc/data/angle_energy.py index 21748ab8a4..4a5e391e3f 100644 --- a/openmc/data/angle_energy.py +++ b/openmc/data/angle_energy.py @@ -1,10 +1,10 @@ from abc import ABCMeta, abstractmethod import openmc.data -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin -class AngleEnergy(Equality): +class AngleEnergy(EqualityMixin): """Distribution in angle and energy of a secondary particle.""" __metaclass = ABCMeta diff --git a/openmc/data/energy_distribution.py b/openmc/data/energy_distribution.py index ba34abb4f0..a160906353 100644 --- a/openmc/data/energy_distribution.py +++ b/openmc/data/energy_distribution.py @@ -8,10 +8,10 @@ import numpy as np from .function import Tabulated1D, INTERPOLATION_SCHEME from openmc.stats.univariate import Univariate, Tabular, Discrete, Mixture import openmc.checkvalue as cv -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin -class EnergyDistribution(Equality): +class EnergyDistribution(EqualityMixin): """Abstract superclass for all energy distributions.""" __metaclass__ = ABCMeta diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index d1023a01a9..6352915cc6 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -9,7 +9,7 @@ from .data import ATOMIC_SYMBOL from .endf_utils import read_float, read_CONT_line, identify_nuclide from .function import Function1D, Tabulated1D, Polynomial, Sum import openmc.checkvalue as cv -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin if sys.version_info[0] >= 3: basestring = str @@ -190,7 +190,7 @@ def write_compact_458_library(endf_files, output_name='fission_Q_data.h5', out.close() -class FissionEnergyRelease(Equality): +class FissionEnergyRelease(EqualityMixin): """Energy relased by fission reactions. Energy is carried away from fission reactions by many different particles. diff --git a/openmc/data/function.py b/openmc/data/function.py index 7a4a938d1f..94a2f0911e 100644 --- a/openmc/data/function.py +++ b/openmc/data/function.py @@ -5,13 +5,13 @@ from numbers import Real, Integral import numpy as np import openmc.checkvalue as cv -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin INTERPOLATION_SCHEME = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log', 4: 'log-linear', 5: 'log-log'} -class Function1D(Equality): +class Function1D(EqualityMixin): """A function of one independent variable with HDF5 support.""" __metaclass__ = ABCMeta @@ -390,7 +390,7 @@ class Polynomial(np.polynomial.Polynomial, Function1D): return cls(dataset.value) -class Sum(Equality): +class Sum(EqualityMixin): """Sum of multiple functions. This class allows you to create a callable object which represents the sum diff --git a/openmc/data/library.py b/openmc/data/library.py index 6c2600f320..49d1c78f61 100644 --- a/openmc/data/library.py +++ b/openmc/data/library.py @@ -3,11 +3,11 @@ import xml.etree.ElementTree as ET import h5py -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin from openmc.clean_xml import clean_xml_indentation -class DataLibrary(Equality): +class DataLibrary(EqualityMixin): def __init__(self): self.libraries = [] diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 66f4b2797f..c6621e1b8f 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -15,13 +15,13 @@ from .product import Product from .reaction import Reaction, _get_photon_products from .urr import ProbabilityTables import openmc.checkvalue as cv -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin if sys.version_info[0] >= 3: basestring = str -class IncidentNeutron(Equality): +class IncidentNeutron(EqualityMixin): """Continuous-energy neutron interaction data. Instances of this class are not normally instantiated by the user but rather diff --git a/openmc/data/product.py b/openmc/data/product.py index 1f07076d95..753888f6df 100644 --- a/openmc/data/product.py +++ b/openmc/data/product.py @@ -5,7 +5,7 @@ import sys import numpy as np import openmc.checkvalue as cv -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin from .function import Tabulated1D, Polynomial, Function1D from .angle_energy import AngleEnergy @@ -13,7 +13,7 @@ if sys.version_info[0] >= 3: basestring = str -class Product(Equality): +class Product(EqualityMixin): """Secondary particle emitted in a nuclear reaction Parameters diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 0255a30975..e7580ec47e 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -7,7 +7,7 @@ from warnings import warn import numpy as np import openmc.checkvalue as cv -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin from openmc.stats import Uniform from .angle_distribution import AngleDistribution from .angle_energy import AngleEnergy @@ -251,7 +251,7 @@ def _get_photon_products(ace, rx): return photons -class Reaction(Equality): +class Reaction(EqualityMixin): """A nuclear reaction A Reaction object represents a single reaction channel for a nuclide with diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 34981e566b..1551e8ac51 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -7,7 +7,7 @@ import numpy as np import h5py import openmc.checkvalue as cv -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin from .ace import Table, get_table from .angle_energy import AngleEnergy from .function import Tabulated1D @@ -62,7 +62,7 @@ def get_thermal_name(name): return 'c_' + name -class CoherentElastic(Equality): +class CoherentElastic(EqualityMixin): r"""Coherent elastic scattering data from a crystalline material Parameters @@ -149,7 +149,7 @@ class CoherentElastic(Equality): return cls(bragg_edges, factors) -class ThermalScattering(Equality): +class ThermalScattering(EqualityMixin): """A ThermalScattering object contains thermal scattering data as represented by an S(alpha, beta) table. diff --git a/openmc/data/urr.py b/openmc/data/urr.py index 2e6ea355f0..05f64e5782 100644 --- a/openmc/data/urr.py +++ b/openmc/data/urr.py @@ -4,10 +4,10 @@ from numbers import Integral, Real import numpy as np import openmc.checkvalue as cv -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin -class ProbabilityTables(Equality): +class ProbabilityTables(EqualityMixin): r"""Unresolved resonance region probability tables. Parameters diff --git a/openmc/mixin.py b/openmc/mixin.py index f4d5f4c8df..3495f0f6fa 100644 --- a/openmc/mixin.py +++ b/openmc/mixin.py @@ -1,7 +1,7 @@ import numpy as np -class Equality(object): +class EqualityMixin(object): """A Class which provides generic __eq__ and __ne__ functionality which can easily be inherited by downstream classes. """ From e79651c60045379345b1fc8942b0c6b8c66854e8 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 19 Aug 2016 06:59:25 -0400 Subject: [PATCH 307/417] Forgot one in stats, all good --- openmc/stats/univariate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 2f5b304648..ce0f0fae1d 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -7,7 +7,7 @@ from xml.etree import ElementTree as ET import numpy as np import openmc.checkvalue as cv -from openmc.mixin import Equality +from openmc.mixin import EqualityMixin if sys.version_info[0] >= 3: basestring = str @@ -16,7 +16,7 @@ _INTERPOLATION_SCHEMES = ['histogram', 'linear-linear', 'linear-log', 'log-linear', 'log-log'] -class Univariate(Equality): +class Univariate(EqualityMixin): """Probability distribution of a single random variable. The Univariate class is an abstract class that can be derived to implement a From d24aaa8626f38bf752d3e775c7956e44d0742f16 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 19 Aug 2016 19:24:51 -0400 Subject: [PATCH 308/417] Final changes --- openmc/mixin.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/openmc/mixin.py b/openmc/mixin.py index 3495f0f6fa..dd97e89249 100644 --- a/openmc/mixin.py +++ b/openmc/mixin.py @@ -7,18 +7,14 @@ class EqualityMixin(object): """ def __eq__(self, other): - eqval = True if isinstance(other, type(self)): for key, value in self.__dict__.items(): - if key in other.__dict__: - if not np.array_equal(value, other.__dict__.get(key)): - eqval = False - else: - eqval = False + if not np.array_equal(value, other.__dict__.get(key)): + return False else: - eqval = False + return False - return eqval + return True def __ne__(self, other): return not self.__eq__(other) From 7d07b485b9a79f04fc2d34c2e1d27795befa5be4 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sat, 20 Aug 2016 16:32:42 -0500 Subject: [PATCH 309/417] New OpenMC logo!! --- docs/source/_images/openmc.png | Bin 8862 -> 0 bytes docs/source/_images/openmc200px.png | Bin 6919 -> 0 bytes docs/source/_images/openmc_logo.png | Bin 0 -> 15452 bytes docs/source/_static/theme_overrides.css | 4 ++++ docs/source/conf.py | 2 +- 5 files changed, 5 insertions(+), 1 deletion(-) delete mode 100644 docs/source/_images/openmc.png delete mode 100644 docs/source/_images/openmc200px.png create mode 100644 docs/source/_images/openmc_logo.png diff --git a/docs/source/_images/openmc.png b/docs/source/_images/openmc.png deleted file mode 100644 index 9f5e97cd6e844052caf6e6095a5088922eb89113..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8862 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 N002ovPDHLkV1o1n77PFY diff --git a/docs/source/_images/openmc_logo.png b/docs/source/_images/openmc_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..73d4765387f00dbd0506f0edd38bffec474ac304 GIT binary patch literal 15452 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/theme_overrides.css b/docs/source/_static/theme_overrides.css index bee03f4150..dea941814d 100644 --- a/docs/source/_static/theme_overrides.css +++ b/docs/source/_static/theme_overrides.css @@ -16,3 +16,7 @@ .wy-table, .rst-content table.docutils, .rst-content table.field-list { margin-bottom: 0px; } + +.wy-side-nav-search { + background-color: #343131; +} diff --git a/docs/source/conf.py b/docs/source/conf.py index 1baea2b03c..75e621bc17 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -129,7 +129,7 @@ if not on_rtd: html_theme = 'sphinx_rtd_theme' html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] -html_logo = '_images/openmc200px.png' +html_logo = '_images/openmc_logo.png' # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". From 08219585f9328968e3ed49e42b89bb2eb3d4796a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sat, 20 Aug 2016 16:50:14 -0500 Subject: [PATCH 310/417] Fix two documentation issues --- .../pythonapi/examples/mdgxs-part-i.rst | 13 ++++++++++++ .../pythonapi/examples/mdgxs-part-ii.rst | 13 ++++++++++++ openmc/mesh.py | 21 ++++++++++++------- 3 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 docs/source/pythonapi/examples/mdgxs-part-i.rst create mode 100644 docs/source/pythonapi/examples/mdgxs-part-ii.rst diff --git a/docs/source/pythonapi/examples/mdgxs-part-i.rst b/docs/source/pythonapi/examples/mdgxs-part-i.rst new file mode 100644 index 0000000000..953dcf4700 --- /dev/null +++ b/docs/source/pythonapi/examples/mdgxs-part-i.rst @@ -0,0 +1,13 @@ +.. _notebook_mdgxs_part_i: + +========================== +MDGXS Part I: Introduction +========================== + +.. only:: html + + .. notebook:: mdgxs-part-i.ipynb + +.. only:: latex + + IPython notebooks must be viewed in the online HTML documentation. diff --git a/docs/source/pythonapi/examples/mdgxs-part-ii.rst b/docs/source/pythonapi/examples/mdgxs-part-ii.rst new file mode 100644 index 0000000000..a42eb766b7 --- /dev/null +++ b/docs/source/pythonapi/examples/mdgxs-part-ii.rst @@ -0,0 +1,13 @@ +.. _notebook_mdgxs_part_ii: + +================================ +MDGXS Part II: Advanced Features +================================ + +.. only:: html + + .. notebook:: mdgxs-part-ii.ipynb + +.. only:: latex + + IPython notebooks must be viewed in the online HTML documentation. diff --git a/openmc/mesh.py b/openmc/mesh.py index 58b9c7c0e5..7d7b483f73 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -187,15 +187,20 @@ class Mesh(object): of the mesh. For example the following code: - for mesh_index in mymesh.cell_generator(): - print mesh_index - will produce the following output for a 3-D 2x2x2 mesh in mymesh: - [1, 1, 1] - [1, 1, 2] - [1, 2, 1] - [1, 2, 2] - ... + .. code-block:: python + + for mesh_index in mymesh.cell_generator(): + print mesh_index + + will produce the following output for a 3-D 2x2x2 mesh in mymesh:: + + [1, 1, 1] + [1, 1, 2] + [1, 2, 1] + [1, 2, 2] + ... + """ From 3b65dde0fd3dace45bfa422d505d1503694d4e77 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 21 Aug 2016 06:05:19 -0400 Subject: [PATCH 311/417] Folded multiple temperatures in to each h5 data file; now im getting 50% less storage required of endf70. yay! Next I think I can get rid of some s(a,b) information, will investigate that and then on to revising openMC so it can read and use this data --- openmc/data/data.py | 4 + openmc/data/neutron.py | 288 +++++++++++++++++++++--------- openmc/data/reaction.py | 141 +++++++++++---- openmc/data/thermal.py | 354 +++++++++++++++++++++++++++++-------- scripts/openmc-ace-to-hdf5 | 92 ++++++---- 5 files changed, 657 insertions(+), 222 deletions(-) diff --git a/openmc/data/data.py b/openmc/data/data.py index ebc2cba432..4eb7860c23 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -218,3 +218,7 @@ def atomic_mass(isotope): isotope = isotope[:isotope.find('_')] return _ATOMIC_MASS.get(isotope.lower()) + +def kT_to_K(kT): + K = kT / 8.6173324e-11 + return K \ No newline at end of file diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index c6621e1b8f..8ea8e38e3e 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -7,7 +7,7 @@ from warnings import warn import numpy as np import h5py -from .data import ATOMIC_SYMBOL, SUM_RULES +from .data import ATOMIC_SYMBOL, SUM_RULES, kT_to_K from .ace import Table, get_table from .fission_energy import FissionEnergyRelease from .function import Tabulated1D, Sum @@ -21,6 +21,64 @@ if sys.version_info[0] >= 3: basestring = str +def _get_metadata(zaid, metastable_scheme='nndc'): + """Method to obtain the complete element name, element, Z, mass_number, + and metastable state + + Parameters + ---------- + zaid : int + ZAID (1000*Z + A) obtained from a library + metastable_scheme : {'nndc', 'mcnp'} + Determine how ZAID identifiers are to be interpreted in the case of + a metastable nuclide. Because the normal ZAID (=1000*Z + A) does not + encode metastable information, different conventions are used among + different libraries. In MCNP libraries, the convention is to add 400 + for a metastable nuclide except for Am242m, for which 95242 is + metastable and 95642 (or 1095242 in newer libraries) is the ground + state. For NNDC libraries, ZAID is given as 1000*Z + A + 100*m. + + Returns + ------- + + """ + + cv.check_type('zaid', zaid, int) + cv.check_value('metastable_scheme', metastable_scheme, ['nndc', 'mcnp']) + + Z = zaid // 1000 + mass_number = zaid % 1000 + + if metastable_scheme == 'mcnp': + if zaid > 1000000: + # New SZA format + Z = Z % 1000 + if zaid == 1095242: + metastable = 0 + else: + metastable = zaid // 1000000 + else: + if zaid == 95242: + metastable = 1 + elif zaid == 95642: + metastable = 0 + else: + metastable = 1 if mass_number > 300 else 0 + elif metastable_scheme == 'nndc': + metastable = 1 if mass_number > 300 else 0 + + while mass_number > 3 * Z: + mass_number -= 100 + + # Determine name + element = ATOMIC_SYMBOL[Z] + name = '{}{}'.format(element, mass_number) + if metastable > 0: + name += '_m{}'.format(metastable) + + return (name, element, Z, mass_number, metastable) + + class IncidentNeutron(EqualityMixin): """Continuous-energy neutron interaction data. @@ -40,8 +98,9 @@ class IncidentNeutron(EqualityMixin): Metastable state of the nucleus. A value of zero indicates ground state. atomic_weight_ratio : float Atomic mass ratio of the target nuclide. - temperature : float - Temperature of the target nuclide in MeV. + kTs : Iterable float + List of temperatures of the target nuclide in the data set. + The temperatures have units of MeV. Attributes ---------- @@ -51,8 +110,10 @@ class IncidentNeutron(EqualityMixin): Atomic symbol of the nuclide, e.g., 'Zr' atomic_weight_ratio : float Atomic weight ratio of the target nuclide. - energy : numpy.ndarray + energy : dict of numpy.ndarray The energy values (MeV) at which reaction cross-sections are tabulated. + They keys of the dict are the temperature string ('296.3K') for each + set of energies fission_energy : None or openmc.data.FissionEnergyRelease The energy released by fission, tabulated by component (e.g. prompt neutrons or beta particles) and dependent on incident neutron energy @@ -69,23 +130,28 @@ class IncidentNeutron(EqualityMixin): summed_reactions : collections.OrderedDict Contains summed cross sections, e.g., the total cross section. The keys are the MT values and the values are Reaction objects. - temperature : float - Temperature of the target nuclide in MeV. + temperatures : Iterable of str + List of string representations the temperatures of the target nuclide + in the data set. The temperatures are strings with 1 decimal place, + i.e., '293.6K' + kTs : Iterable of float + List of temperatures of the target nuclide in the data set. + The temperatures have units of MeV. urr : None or openmc.data.ProbabilityTables Unresolved resonance region probability tables """ def __init__(self, name, atomic_number, mass_number, metastable, - atomic_weight_ratio, temperature): + atomic_weight_ratio, kTs): self.name = name self.atomic_number = atomic_number self.mass_number = mass_number self.metastable = metastable self.atomic_weight_ratio = atomic_weight_ratio - self.temperature = temperature - - self._energy = None + self.kTs = kTs + self.temperatures = ["{0:.1f}K".format(kT_to_K(kT)) for kT in kTs] + self.energy = {} self._fission_energy = None self.reactions = OrderedDict() self.summed_reactions = OrderedDict() @@ -128,18 +194,10 @@ class IncidentNeutron(EqualityMixin): def atomic_weight_ratio(self): return self._atomic_weight_ratio - @property - def energy(self): - return self._energy - @property def fission_energy(self): return self._fission_energy - @property - def temperature(self): - return self._temperature - @property def reactions(self): return self._reactions @@ -159,7 +217,7 @@ class IncidentNeutron(EqualityMixin): @property def atomic_symbol(self): - return atomic_symbol[self.atomic_number] + return ATOMIC_SYMBOL[self.atomic_number] @atomic_number.setter def atomic_number(self, atomic_number): @@ -185,17 +243,6 @@ class IncidentNeutron(EqualityMixin): cv.check_greater_than('atomic weight ratio', atomic_weight_ratio, 0.0) self._atomic_weight_ratio = atomic_weight_ratio - @temperature.setter - def temperature(self, temperature): - cv.check_type('temperature', temperature, Real) - cv.check_greater_than('temperature', temperature, 0.0, True) - self._temperature = temperature - - @energy.setter - def energy(self, energy): - cv.check_type('energy grid', energy, Iterable, Real) - self._energy = energy - @fission_energy.setter def fission_energy(self, fission_energy): cv.check_type('fission energy release', fission_energy, @@ -218,6 +265,87 @@ class IncidentNeutron(EqualityMixin): (ProbabilityTables, type(None))) self._urr = urr + def add_temperature_from_ace(self, ace_or_filename, metastable_scheme='nndc'): + """Add data to the IncidentNeutron object from an ACE file at a + different temperature. + + Parameters + ---------- + ace_or_filename : openmc.data.ace.Table or str + ACE table to read from. If given as a string, it is assumed to be + the filename for the ACE file. + metastable_scheme : {'nndc', 'mcnp'} + Determine how ZAID identifiers are to be interpreted in the case of + a metastable nuclide. Because the normal ZAID (=1000*Z + A) does not + encode metastable information, different conventions are used among + different libraries. In MCNP libraries, the convention is to add 400 + for a metastable nuclide except for Am242m, for which 95242 is + metastable and 95642 (or 1095242 in newer libraries) is the ground + state. For NNDC libraries, ZAID is given as 1000*Z + A + 100*m. + + """ + + if isinstance(ace_or_filename, Table): + ace = ace_or_filename + else: + ace = get_table(ace_or_filename) + + # Obtain the information needed to check if this ACE file is for the + # same nuclide. + zaid, xs = ace.name.split('.') + name, element, Z, mass_number, metastable = \ + _get_metadata(int(zaid), metastable_scheme) + + # If this ACE data matches the data within self then get the data + if ace.temperature not in self.kTs: + if name == self.name: + # Add temperature and kTs + strT = "{0:.1f}K".format(kT_to_K(ace.temperature)) + self.temperatures.append(strT) + self.kTs.append(ace.temperature) + # Read energy grid + n_energy = ace.nxs[3] + energy = ace.xss[ace.jxs[1]:ace.jxs[1] + n_energy] + self.energy[strT] = energy + total_xs = \ + Tabulated1D(energy, ace.xss[ace.jxs[1] + + n_energy:ace.jxs[1] + + 2 * n_energy]) + abs_xs = Tabulated1D(energy, ace.xss[ace.jxs[1] + 2 * + n_energy:ace.jxs[1] + + 3 * n_energy]) + + self.summed_reactions[1].add_temperature(strT, 0, total_xs) + if 27 in self.summed_reactions: + self.summed_reactions[27].add_temperature(strT, 0, abs_xs) + + # Read each reaction and get the xs data out of it + n_reaction = ace.nxs[4] + 1 + for i in range(n_reaction): + rx = Reaction.from_ace(ace, i) + + xsdata = list(rx.T_data.values())[0] + self.reactions[rx.mt].add_temperature(strT, + xsdata.threshold_idx, + xsdata.xs) + + # Obtain data for the summed photon reactions + for mt in self.summed_reactions: + if mt not in [1, 27]: + # Create summed appropriate cross section + mts = self.get_reaction_components(mt) + xsdata = Sum([self.reactions[mt_i].T_data[strT].xs + for mt_i in mts]) + + self.summed_reactions[mt].add_temperature(strT, 0, + xsdata) + else: + raise ValueError('Data provided for an incorrect nuclide') + + else: + raise Warning('Temperature data set already within ' + 'IncidentNeutron object') + def get_reaction_components(self, mt): """Determine what reactions make up summed reaction. @@ -271,10 +399,12 @@ class IncidentNeutron(EqualityMixin): g.attrs['A'] = self.mass_number g.attrs['metastable'] = self.metastable g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio - g.attrs['temperature'] = self.temperature + g.attrs['kTs'] = self.kTs # Write energy grid - g.create_dataset('energy', data=self.energy) + eg = g.create_group('energy') + for temperature in self.temperatures: + eg.create_dataset(temperature, data=self.energy[temperature]) # Write reaction data rxs_group = g.create_group('reactions') @@ -327,19 +457,22 @@ class IncidentNeutron(EqualityMixin): mass_number = group.attrs['A'] metastable = group.attrs['metastable'] atomic_weight_ratio = group.attrs['atomic_weight_ratio'] - temperature = group.attrs['temperature'] + kTs = group.attrs['kTs'].tolist() + temperatures = ["{0:.1f}K".format(kT_to_K(kT)) for kT in kTs] data = cls(name, atomic_number, mass_number, metastable, - atomic_weight_ratio, temperature) + atomic_weight_ratio, kTs) # Read energy grid - data.energy = group['energy'].value + e_group = group['energy'] + for temperature in temperatures: + data.energy[temperature] = e_group[temperature].value # Read reaction data rxs_group = group['reactions'] for name, obj in sorted(rxs_group.items()): if name.startswith('reaction_'): - rx = Reaction.from_hdf5(obj, data.energy) + rx = Reaction.from_hdf5(obj, data.energy, temperatures) data.reactions[rx.mt] = rx # Read total nu data if available @@ -351,12 +484,15 @@ class IncidentNeutron(EqualityMixin): # MTs never depend on lower MTs. for mt_sum in sorted(SUM_RULES, reverse=True): if mt_sum not in data: - xs_components = [data[mt].xs for mt in SUM_RULES[mt_sum] - if mt in data] - if len(xs_components) > 0: - rxn = Reaction(mt_sum) - rxn.xs = Sum(xs_components) - data.summed_reactions[mt_sum] = rxn + for it, T in enumerate(data.temperatures): + xs_components = \ + [data[mt].T_data[T].xs for mt in SUM_RULES[mt_sum] + if mt in data] + if len(xs_components) > 0: + if it == 0: + data.summed_reactions[mt_sum] = Reaction(mt_sum) + data.summed_reactions[mt_sum].add_temperature( + T, 0, Sum(xs_components)) # Read unresolved resonance probability tables if 'urr' in group: @@ -376,9 +512,9 @@ class IncidentNeutron(EqualityMixin): Parameters ---------- - ace : openmc.data.ace.Table or str - ACE table to read from. If given as a string, it is assumed to be - the filename for the ACE file. + ace_or_filename : openmc.data.ace.Table or str + ACE table to read from. If the value is a string, it is assumed to + be the filename for the ACE file. metastable_scheme : {'nndc', 'mcnp'} Determine how ZAID identifiers are to be interpreted in the case of a metastable nuclide. Because the normal ZAID (=1000*Z + A) does not @@ -394,6 +530,8 @@ class IncidentNeutron(EqualityMixin): Incident neutron continuous-energy data """ + + # First obtain the data for the first provided ACE table/file if isinstance(ace_or_filename, Table): ace = ace_or_filename else: @@ -401,54 +539,37 @@ class IncidentNeutron(EqualityMixin): # If mass number hasn't been specified, make an educated guess zaid, xs = ace.name.split('.') - zaid = int(zaid) - Z = zaid // 1000 - mass_number = zaid % 1000 + name, element, Z, mass_number, metastable = \ + _get_metadata(int(zaid), metastable_scheme) - if metastable_scheme == 'mcnp': - if zaid > 1000000: - # New SZA format - Z = Z % 1000 - if zaid == 1095242: - metastable = 0 - else: - metastable = zaid // 1000000 - else: - if zaid == 95242: - metastable = 1 - elif zaid == 95642: - metastable = 0 - else: - metastable = 1 if mass_number > 300 else 0 - elif metastable_scheme == 'nndc': - metastable = 1 if mass_number > 300 else 0 + # Assign temperature to the running list + kTs = [ace.temperature] + temperatures = ["{0:.1f}K".format(kT_to_K(ace.temperature))] - while mass_number > 3*Z: - mass_number -= 100 - - # Determine name for group - element = ATOMIC_SYMBOL[Z] - if metastable > 0: - name = '{}{}_m{}.{}'.format(element, mass_number, metastable, xs) - else: - name = '{}{}.{}'.format(element, mass_number, xs) + # If mass number hasn't been specified, make an educated guess + zaid, xs = ace.name.split('.') + name, element, Z, mass_number, metastable = \ + _get_metadata(int(zaid), metastable_scheme) data = cls(name, Z, mass_number, metastable, - ace.atomic_weight_ratio, ace.temperature) + ace.atomic_weight_ratio, kTs) # Read energy grid n_energy = ace.nxs[3] energy = ace.xss[ace.jxs[1]:ace.jxs[1] + n_energy] - data.energy = energy - total_xs = ace.xss[ace.jxs[1] + n_energy:ace.jxs[1] + 2*n_energy] - absorption_xs = ace.xss[ace.jxs[1] + 2*n_energy:ace.jxs[1] + 3*n_energy] + data.energy[temperatures[0]] = energy + total_xs = ace.xss[ace.jxs[1] + n_energy:ace.jxs[1] + 2 * n_energy] + absorption_xs = ace.xss[ace.jxs[1] + 2*n_energy:ace.jxs[1] + + 3 * n_energy] # Create summed reactions (total and absorption) total = Reaction(1) - total.xs = Tabulated1D(energy, total_xs) + total.add_temperature(temperatures[-1], 0, + Tabulated1D(energy, total_xs)) data.summed_reactions[1] = total absorption = Reaction(27) - absorption.xs = Tabulated1D(energy, absorption_xs) + absorption.add_temperature(temperatures[-1], 0, + Tabulated1D(energy, absorption_xs)) data.summed_reactions[27] = absorption # Read each reaction @@ -478,7 +599,12 @@ class IncidentNeutron(EqualityMixin): warn('Photon production is present for MT={} but no ' 'reaction components exist.'.format(mt)) continue - rx.xs = Sum([data.reactions[mt_i].xs for mt_i in mts]) + threshold_idx = \ + np.amin([data.reactions[mt_i].T_data[temperatures[-1]].xs.x[0] + for mt_i in mts]) + xsvals = Sum([data.reactions[mt_i].T_data[temperatures[-1]].xs + for mt_i in mts]) + rx.add_temperature(temperatures[-1], threshold_idx, xsvals) # Determine summed cross section rx.products += _get_photon_products(ace, rx) diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index e7580ec47e..741822bf0c 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -1,7 +1,7 @@ from __future__ import division, unicode_literals from collections import Iterable, Callable from copy import deepcopy -from numbers import Real +from numbers import Real, Integral from warnings import warn import numpy as np @@ -12,7 +12,7 @@ from openmc.stats import Uniform from .angle_distribution import AngleDistribution from .angle_energy import AngleEnergy from .function import Tabulated1D, Polynomial -from .data import REACTION_NAME +from .data import REACTION_NAME, kT_to_K from .product import Product from .uncorrelated import UncorrelatedAngleEnergy @@ -211,7 +211,7 @@ def _get_photon_products(ace, rx): # Get photon production cross section photon_prod_xs = ace.xss[idx + 2:idx + 2 + n_energy] - neutron_xs = rx.xs(energy) + neutron_xs = list(rx.T_data.values())[0].xs(energy) idx = np.where(neutron_xs > 0.) # Calculate photon yield @@ -251,6 +251,78 @@ def _get_photon_products(ace, rx): return photons +class XS(EqualityMixin): + """An energy-dependent cross-section for a reaction channel + + Parameters + ---------- + threshold_idx : int + The index on the energy grid corresponding to the threshold of this + reaction. + xs : dict of callable + Microscopic cross section for this reaction as a function of incident + energy; these cross sections are provided in a dictionary where the key + is the temperature of the cross section set. + + Attributes + ---------- + threshold : float + Threshold of the reaction in MeV + threshold_idx : int + The index on the energy grid corresponding to the threshold of this + reaction. + xs : dict of callable + Microscopic cross section for this reaction as a function of incident + energy; these cross sections are provided in a dictionary where the key + is the temperature of the cross section set. + + """ + + def __init__(self, threshold_idx, xs): + self._threshold_idx = threshold_idx + self._xs = xs + + @property + def threshold_idx(self): + return self._threshold_idx + + @property + def threshold(self): + return self.xs.x[0] + + @property + def xs(self): + return self._xs + + @threshold_idx.setter + def threshold_idx(self, threshold_idx): + cv.check_type('threshold_idx', threshold_idx, Integral) + cv.check_greater_than('threshold_idx', threshold_idx, 0, equality=True) + self._threshold_idx = threshold_idx + + @xs.setter + def xs(self, xs): + cv.check_type('reaction cross section', xs, Callable) + if isinstance(xs, Tabulated1D): + for y in xs.y: + cv.check_greater_than('reaction cross section', y, 0.0, True) + self._xs = xs + + def to_hdf5(self, group): + """Write XS to an HDF5 group + + Parameters + ---------- + group : h5py.Group + HDF5 group to write to + + """ + + group.attrs['threshold_idx'] = self.threshold_idx + 1 + if self.xs is not None: + group.create_dataset('xs', data=self.xs.y) + + class Reaction(EqualityMixin): """A nuclear reaction @@ -281,9 +353,10 @@ class Reaction(EqualityMixin): threshold_idx : int The index on the energy grid corresponding to the threshold of this reaction. - xs : callable + T_data : dict of openmc.data.XS Microscopic cross section for this reaction as a function of incident - energy + energy; these cross sections are provided in a dictionary where the key + is the temperature of the cross section set. products : Iterable of openmc.data.Product Reaction products derived_products : Iterable of openmc.data.Product @@ -296,8 +369,7 @@ class Reaction(EqualityMixin): self.center_of_mass = True self.mt = mt self.q_value = 0. - self.threshold_idx = 0 - self._xs = None + self.T_data = {} self.products = [] self.derived_products = [] @@ -319,14 +391,6 @@ class Reaction(EqualityMixin): def products(self): return self._products - @property - def threshold(self): - return self.xs.x[0] - - @property - def xs(self): - return self._xs - @center_of_mass.setter def center_of_mass(self, center_of_mass): cv.check_type('center of mass', center_of_mass, (bool, np.bool_)) @@ -342,13 +406,9 @@ class Reaction(EqualityMixin): cv.check_type('reaction products', products, Iterable, Product) self._products = products - @xs.setter - def xs(self, xs): - cv.check_type('reaction cross section', xs, Callable) - if isinstance(xs, Tabulated1D): - for y in xs.y: - cv.check_greater_than('reaction cross section', y, 0.0, True) - self._xs = xs + def add_temperature(self, temperature, threshold_idx, xs): + cv.check_type('temperature', temperature, str) + self.T_data[temperature] = XS(threshold_idx, xs) def to_hdf5(self, group): """Write reaction to an HDF5 group @@ -366,16 +426,16 @@ class Reaction(EqualityMixin): else: group.attrs['label'] = np.string_(self.mt) group.attrs['Q_value'] = self.q_value - group.attrs['threshold_idx'] = self.threshold_idx + 1 group.attrs['center_of_mass'] = 1 if self.center_of_mass else 0 - if self.xs is not None: - group.create_dataset('xs', data=self.xs.y) + for T in self.T_data: + Tgroup = group.create_group(T) + self.T_data[T].to_hdf5(Tgroup) for i, p in enumerate(self.products): pgroup = group.create_group('product_{}'.format(i)) p.to_hdf5(pgroup) @classmethod - def from_hdf5(cls, group, energy): + def from_hdf5(cls, group, energy, temperatures): """Generate reaction from an HDF5 group Parameters @@ -384,6 +444,8 @@ class Reaction(EqualityMixin): HDF5 group to write to energy : Iterable of float Array of energies at which cross sections are tabulated at + temperatures : Iterable of float + Array of temperatures at which to obtain the cross sections Returns ------- @@ -391,16 +453,19 @@ class Reaction(EqualityMixin): Reaction data """ + mt = group.attrs['mt'] rx = cls(mt) rx.q_value = group.attrs['Q_value'] - rx.threshold_idx = group.attrs['threshold_idx'] - 1 rx.center_of_mass = bool(group.attrs['center_of_mass']) - # Read cross section - if 'xs' in group: - xs = group['xs'].value - rx.xs = Tabulated1D(energy[rx.threshold_idx:], xs) + # Read cross section data + for T in temperatures: + Tgroup = group[T] + if 'xs' in Tgroup: + threshold_idx = Tgroup.attrs['threshold_idx'] - 1 + xs = Tabulated1D(energy[T][threshold_idx:], Tgroup['xs'].value) + rx.T_data[T] = XS(threshold_idx, xs) # Determine number of products n_product = 0 @@ -421,6 +486,10 @@ class Reaction(EqualityMixin): n_grid = ace.nxs[3] grid = ace.xss[ace.jxs[1]:ace.jxs[1] + n_grid] + # Convert data temperature to a "300.0K" number for indexing + # temperature data + strT = "{0:.1f}K".format(kT_to_K(ace.temperature)) + if i_reaction > 0: mt = int(ace.xss[ace.jxs[3] + i_reaction - 1]) rx = cls(mt) @@ -435,11 +504,11 @@ class Reaction(EqualityMixin): loc = int(ace.xss[ace.jxs[6] + i_reaction - 1]) # Determine starting index on energy grid - rx.threshold_idx = int(ace.xss[ace.jxs[7] + loc - 1]) - 1 + threshold_idx = int(ace.xss[ace.jxs[7] + loc - 1]) - 1 # Determine number of energies in reaction n_energy = int(ace.xss[ace.jxs[7] + loc]) - energy = grid[rx.threshold_idx:rx.threshold_idx + n_energy] + energy = grid[threshold_idx:threshold_idx + n_energy] # Read reaction cross section xs = ace.xss[ace.jxs[7] + loc + 1:ace.jxs[7] + loc + 1 + n_energy] @@ -450,7 +519,8 @@ class Reaction(EqualityMixin): "to zero.".format(rx.mt, ace.name)) xs[xs < 0.0] = 0.0 - rx.xs = Tabulated1D(energy, xs) + tabulated_xs = Tabulated1D(energy, xs) + rx.T_data[strT] = XS(threshold_idx, tabulated_xs) # ================================================================== # YIELD AND ANGLE-ENERGY DISTRIBUTION @@ -509,7 +579,8 @@ class Reaction(EqualityMixin): "Setting to zero.".format(ace.name)) elastic_xs[elastic_xs < 0.0] = 0.0 - rx.xs = Tabulated1D(grid, elastic_xs) + tabulated_xs = Tabulated1D(grid, elastic_xs) + rx.T_data[strT] = XS(0, tabulated_xs) # No energy distribution for elastic scattering neutron = Product('neutron') diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 1551e8ac51..27c61e9249 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -8,6 +8,7 @@ import h5py import openmc.checkvalue as cv from openmc.mixin import EqualityMixin +from .data import kT_to_K from .ace import Table, get_table from .angle_energy import AngleEnergy from .function import Tabulated1D @@ -89,7 +90,7 @@ class CoherentElastic(EqualityMixin): if isinstance(E, Iterable): E = np.asarray(E) idx = np.searchsorted(self.bragg_edges, E) - return self.factors[idx]/E + return self.factors[idx] / E def __len__(self): @@ -159,8 +160,9 @@ class ThermalScattering(EqualityMixin): ZAID identifier of the table, e.g. lwtr.10t. atomic_weight_ratio : float Atomic mass ratio of the target nuclide. - temperature : float - Temperature of the target nuclide in eV. + kTs : Iterable of float + List of temperatures of the target nuclide in the data set. + The temperatures have units of MeV. Attributes ---------- @@ -174,22 +176,29 @@ class ThermalScattering(EqualityMixin): approximation name : str Name of the table, e.g. lwtr.20t. - temperature : float - Temperature of the target nuclide in eV. + temperatures : Iterable of str + List of string representations the temperatures of the target nuclide + in the data set. The temperatures are strings with 1 decimal place, + i.e., '293.6K' + kTs : Iterable of float + List of temperatures of the target nuclide in the data set. + The temperatures have units of MeV. zaids : Iterable of int ZAID identifiers that the thermal scattering data applies to """ - def __init__(self, name, atomic_weight_ratio, temperature): + def __init__(self, name, atomic_weight_ratio, kTs): self.name = name self.atomic_weight_ratio = atomic_weight_ratio - self.temperature = temperature - self.elastic_xs = None - self.elastic_mu_out = None - self.inelastic_xs = None - self.inelastic_e_out = None - self.inelastic_mu_out = None + self.kTs = kTs + self.temperatures = ["{0:.1f}K".format(kT_to_K(kT)) for kT in kTs] + self.elastic_xs = {} + self.elastic_mu_out = {} + self.inelastic_xs = {} + self.inelastic_e_out = {} + self.inelastic_mu_out = {} + self.inelastic_dist = {} self.secondary_mode = None self.zaids = [] @@ -217,26 +226,191 @@ class ThermalScattering(EqualityMixin): # Write basic data g = f.create_group(self.name) g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio - g.attrs['temperature'] = self.temperature + g.attrs['kTs'] = self.kTs g.attrs['zaids'] = self.zaids + g.attrs['secondary_mode'] = np.string_(self.secondary_mode) - # Write thermal elastic scattering - if self.elastic_xs is not None: - elastic_group = g.create_group('elastic') - self.elastic_xs.to_hdf5(elastic_group, 'xs') - if self.elastic_mu_out is not None: - elastic_group.create_dataset('mu_out', data=self.elastic_mu_out) + for T in self.temperatures: + Tg = g.create_group(T) + # Write thermal elastic scattering + if self.elastic_xs: + elastic_group = Tg.create_group('elastic') - # Write thermal inelastic scattering - if self.inelastic_xs is not None: - inelastic_group = g.create_group('inelastic') - self.inelastic_xs.to_hdf5(inelastic_group, 'xs') - inelastic_group.attrs['secondary_mode'] = np.string_(self.secondary_mode) - if self.secondary_mode in ('equal', 'skewed'): - inelastic_group.create_dataset('energy_out', data=self.inelastic_e_out) - inelastic_group.create_dataset('mu_out', data=self.inelastic_mu_out) - elif self.secondary_mode == 'continuous': - self.inelastic_dist.to_hdf5(inelastic_group) + self.elastic_xs[T].to_hdf5(elastic_group, 'xs') + if self.elastic_mu_out: + elastic_group.create_dataset('mu_out', + data=self.elastic_mu_out[T]) + + # Write thermal inelastic scattering + if self.inelastic_xs: + inelastic_group = Tg.create_group('inelastic') + self.inelastic_xs[T].to_hdf5(inelastic_group, 'xs') + if self.secondary_mode in ('equal', 'skewed'): + inelastic_group.create_dataset('energy_out', + data=self.inelastic_e_out[T]) + inelastic_group.create_dataset('mu_out', + data=self.inelastic_mu_out[T]) + elif self.secondary_mode == 'continuous': + self.inelastic_dist[T].to_hdf5(inelastic_group) + + f.close() + + def add_temperature_from_ace(self, ace_or_filename, name=None): + """Add data to the ThermalScattering object from an ACE file at a + different temperature. + + Parameters + ---------- + ace_or_filename : openmc.data.ace.Table or str + ACE table to read from. If given as a string, it is assumed to be + the filename for the ACE file. + name : str + GND-conforming name of the material, e.g. c_H_in_H2O. If none is + passed, the appropriate name is guessed based on the name of the ACE + table. + + Returns + ------- + openmc.data.ThermalScattering + Thermal scattering data + + """ + if isinstance(ace_or_filename, Table): + ace = ace_or_filename + else: + ace = get_table(ace_or_filename) + + # Get new name that is GND-consistent + ace_name, xs = ace.name.split('.') + if name is None: + if ace_name.lower() in _THERMAL_NAMES: + name = _THERMAL_NAMES[ace_name.lower()] + else: + # Make an educated guess? This actually works well for JEFF-3.2 + # which stupidly uses names like lw00.32t, lw01.32t, etc. for + # different temperatures + matches = get_close_matches( + ace_name.lower(), _THERMAL_NAMES.keys(), cutoff=0.5) + if len(matches) > 0: + name = _THERMAL_NAMES[matches[0]] + else: + # OK, we give up. Just use the ACE name. + name = 'c_' + ace.name + warn('Thermal scattering material "{}" is not recognized. ' + 'Assigning a name of {}.'.format(ace.name, name)) + + # If this ACE data matches the data within self then get the data + if ace.temperature not in self.kTs: + if name == self.name: + # Add temperature and kTs + strT = "{0:.1f}K".format(kT_to_K(ace.temperature)) + self.temperatures.append(strT) + self.kTs.append(ace.temperature) + + # Incoherent inelastic scattering cross section + idx = ace.jxs[1] + n_energy = int(ace.xss[idx]) + energy = ace.xss[idx + 1: idx + 1 + n_energy] + xs = ace.xss[idx + 1 + n_energy: idx + 1 + 2 * n_energy] + self.inelastic_xs[strT] = Tabulated1D(energy, xs) + + # Make sure secondary_mode is always equal. This should always + # be the case, but to reduce future debugging should something + # change, this will alert the developers to the issue. + if ace.nxs[7] == 0: + secondary_mode = 'equal' + elif ace.nxs[7] == 1: + secondary_mode = 'skewed' + elif ace.nxs[7] == 2: + secondary_mode = 'continuous' + + if secondary_mode != self.secondary_mode: + raise ValueError('Secondary Modes are inconsistent.') + + n_energy_out = ace.nxs[4] + if self.secondary_mode in ('equal', 'skewed'): + n_mu = ace.nxs[3] + idx = ace.jxs[3] + self.inelastic_e_out[strT] = \ + ace.xss[idx:idx + n_energy * n_energy_out * (n_mu + 2): + n_mu + 2] + self.inelastic_e_out[strT].shape = \ + (n_energy, n_energy_out) + + self.inelastic_mu_out[strT] = \ + ace.xss[idx:idx + n_energy * n_energy_out * (n_mu + 2)] + self.inelastic_mu_out[strT].shape = \ + (n_energy, n_energy_out, n_mu + 2) + self.inelastic_mu_out[strT] = \ + self.inelastic_mu_out[strT][:, :, 1:] + else: + n_mu = ace.nxs[3] - 1 + idx = ace.jxs[3] + locc = ace.xss[idx:idx + n_energy].astype(int) + n_energy_out = \ + ace.xss[idx + n_energy:idx + 2 * n_energy].astype(int) + energy_out = [] + mu_out = [] + for i in range(n_energy): + idx = locc[i] + + # Outgoing energy distribution for incoming energy i + e = ace.xss[idx + 1:idx + 1 + n_energy_out[i]*(n_mu + 3): + n_mu + 3] + p = ace.xss[idx + 2:idx + 2 + n_energy_out[i]*(n_mu + 3): + n_mu + 3] + c = ace.xss[idx + 3:idx + 3 + n_energy_out[i]*(n_mu + 3): + n_mu + 3] + eout_i = Tabular(e, p, 'linear-linear', ignore_negative=True) + eout_i.c = c + + # Outgoing angle distribution for each + # (incoming, outgoing) energy pair + mu_i = [] + for j in range(n_energy_out[i]): + mu = ace.xss[idx + 4:idx + 4 + n_mu] + p_mu = 1. / n_mu * np.ones(n_mu) + mu_ij = Discrete(mu, p_mu) + mu_ij.c = np.cumsum(p_mu) + mu_i.append(mu_ij) + idx += 3 + n_mu + + energy_out.append(eout_i) + mu_out.append(mu_i) + + # Create correlated angle-energy distribution + breakpoints = [n_energy] + interpolation = [2] + energy = self.inelastic_xs[strT].x + self.inelastic_dist[strT] = CorrelatedAngleEnergy( + breakpoints, interpolation, energy, energy_out, mu_out) + + # Incoherent/coherent elastic scattering cross section + idx = ace.jxs[4] + if idx != 0: + n_energy = int(ace.xss[idx]) + energy = ace.xss[idx + 1: idx + 1 + n_energy] + P = ace.xss[idx + 1 + n_energy: idx + 1 + 2 * n_energy] + + if ace.nxs[5] == 4: + self.elastic_xs[strT] = CoherentElastic(energy, P) + else: + self.elastic_xs[strT] = Tabulated1D(energy, P) + + # Angular distribution + n_mu = ace.nxs[6] + if n_mu != -1: + idx = ace.jxs[6] + self.elastic_mu_out[strT] = \ + ace.xss[idx:idx + n_energy * n_mu] + self.elastic_mu_out[strT].shape = \ + (n_energy, n_mu) + + else: + raise ValueError('Data provided for an incorrect library') + else: + raise Warning('Temperature data set already within ' + 'IncidentNeutron object') @classmethod def from_hdf5(cls, group_or_filename): @@ -263,35 +437,46 @@ class ThermalScattering(EqualityMixin): name = group.name[1:] atomic_weight_ratio = group.attrs['atomic_weight_ratio'] - temperature = group.attrs['temperature'] - table = cls(name, atomic_weight_ratio, temperature) + kTs = group.attrs['kTs'].tolist() + temperatures = ["{0:.1f}K".format(kT_to_K(kT)) for kT in kTs] + + table = cls(name, atomic_weight_ratio, kTs) table.zaids = group.attrs['zaids'] + table.secondary_mode = group.attrs['secondary_mode'].decode() # Read thermal elastic scattering - if 'elastic' in group: - elastic_group = group['elastic'] + for T in temperatures: + Tgroup = group[T] + if 'elastic' in Tgroup: + elastic_group = Tgroup['elastic'] - # Cross section - elastic_xs_type = elastic_group['xs'].attrs['type'].decode() - if elastic_xs_type == 'tab1': - table.elastic_xs = Tabulated1D.from_hdf5(elastic_group['xs']) - elif elastic_xs_type == 'bragg': - table.elastic_xs = CoherentElastic.from_hdf5(elastic_group['xs']) + # Cross section + elastic_xs_type = elastic_group['xs'].attrs['type'].decode() + if elastic_xs_type == 'Tabulated1D': + table.elastic_xs[T] = \ + Tabulated1D.from_hdf5(elastic_group['xs']) + elif elastic_xs_type == 'bragg': + table.elastic_xs[T] = \ + CoherentElastic.from_hdf5(elastic_group['xs']) - # Angular distribution - if 'mu_out' in elastic_group: - table.elastic_mu_out = elastic_group['mu_out'].value + # Angular distribution + if 'mu_out' in elastic_group: + table.elastic_mu_out[T] = \ + elastic_group['mu_out'].value - # Read thermal inelastic scattering - if 'inelastic' in group: - inelastic_group = group['inelastic'] - table.secondary_mode = inelastic_group.attrs['secondary_mode'].decode() - table.inelastic_xs = Tabulated1D.from_hdf5(inelastic_group['xs']) - if table.secondary_mode in ('equal', 'skewed'): - table.inelastic_e_out = inelastic_group['energy_out'] - table.inelastic_mu_out = inelastic_group['mu_out'] - elif table.secondary_mode == 'continuous': - table.inelastic_dist = AngleEnergy.from_hdf5(inelastic_group) + # Read thermal inelastic scattering + if 'inelastic' in Tgroup: + inelastic_group = Tgroup['inelastic'] + table.inelastic_xs[T] = \ + Tabulated1D.from_hdf5(inelastic_group['xs']) + if table.secondary_mode in ('equal', 'skewed'): + table.inelastic_e_out[T] = \ + inelastic_group['energy_out'] + table.inelastic_mu_out[T] = \ + inelastic_group['mu_out'] + elif table.secondary_mode == 'continuous': + table.inelastic_dist[T] = \ + AngleEnergy.from_hdf5(inelastic_group) return table @@ -301,7 +486,7 @@ class ThermalScattering(EqualityMixin): Parameters ---------- - ace : openmc.data.ace.Table or str + ace_or_filename : openmc.data.ace.Table or str ACE table to read from. If given as a string, it is assumed to be the filename for the ACE file. name : str @@ -324,7 +509,7 @@ class ThermalScattering(EqualityMixin): ace_name, xs = ace.name.split('.') if name is None: if ace_name.lower() in _THERMAL_NAMES: - name = _THERMAL_NAMES[ace_name.lower()] + '.' + xs + name = _THERMAL_NAMES[ace_name.lower()] else: # Make an educated guess?? This actually works well for JEFF-3.2 # which stupidly uses names like lw00.32t, lw01.32t, etc. for @@ -332,21 +517,25 @@ class ThermalScattering(EqualityMixin): matches = get_close_matches( ace_name.lower(), _THERMAL_NAMES.keys(), cutoff=0.5) if len(matches) > 0: - name = _THERMAL_NAMES[matches[0]] + '.' + xs + name = _THERMAL_NAMES[matches[0]] else: # OK, we give up. Just use the ACE name. name = 'c_' + ace.name warn('Thermal scattering material "{}" is not recognized. ' 'Assigning a name of {}.'.format(ace.name, name)) - table = cls(name, ace.atomic_weight_ratio, ace.temperature) + # Assign temperature to the running list + kTs = [ace.temperature] + temperatures = ["{0:.1f}K".format(kT_to_K(ace.temperature))] + + table = cls(name, ace.atomic_weight_ratio, kTs) # Incoherent inelastic scattering cross section idx = ace.jxs[1] n_energy = int(ace.xss[idx]) energy = ace.xss[idx+1 : idx+1+n_energy] xs = ace.xss[idx+1+n_energy : idx+1+2*n_energy] - table.inelastic_xs = Tabulated1D(energy, xs) + table.inelastic_xs[temperatures[0]] = Tabulated1D(energy, xs) if ace.nxs[7] == 0: table.secondary_mode = 'equal' @@ -359,34 +548,45 @@ class ThermalScattering(EqualityMixin): if table.secondary_mode in ('equal', 'skewed'): n_mu = ace.nxs[3] idx = ace.jxs[3] - table.inelastic_e_out = ace.xss[idx:idx+n_energy*n_energy_out*(n_mu+2):n_mu+2] - table.inelastic_e_out.shape = (n_energy, n_energy_out) + table.inelastic_e_out[temperatures[0]] = \ + ace.xss[idx:idx + n_energy * n_energy_out * (n_mu + 2): + n_mu + 2] + table.inelastic_e_out[temperatures[0]].shape = \ + (n_energy, n_energy_out) - table.inelastic_mu_out = ace.xss[idx:idx+n_energy*n_energy_out*(n_mu+2)] - table.inelastic_mu_out.shape = (n_energy, n_energy_out, n_mu+2) - table.inelastic_mu_out = table.inelastic_mu_out[:, :, 1:] + table.inelastic_mu_out[temperatures[0]] = \ + ace.xss[idx:idx + n_energy * n_energy_out * (n_mu + 2)] + table.inelastic_mu_out[temperatures[0]].shape = \ + (n_energy, n_energy_out, n_mu+2) + table.inelastic_mu_out[temperatures[0]] = \ + table.inelastic_mu_out[temperatures[0]][:, :, 1:] else: n_mu = ace.nxs[3] - 1 idx = ace.jxs[3] locc = ace.xss[idx:idx + n_energy].astype(int) - n_energy_out = ace.xss[idx + n_energy:idx + 2*n_energy].astype(int) + n_energy_out = \ + ace.xss[idx + n_energy:idx + 2 * n_energy].astype(int) energy_out = [] mu_out = [] for i in range(n_energy): idx = locc[i] # Outgoing energy distribution for incoming energy i - e = ace.xss[idx + 1:idx + 1 + n_energy_out[i]*(n_mu + 3):n_mu + 3] - p = ace.xss[idx + 2:idx + 2 + n_energy_out[i]*(n_mu + 3):n_mu + 3] - c = ace.xss[idx + 3:idx + 3 + n_energy_out[i]*(n_mu + 3):n_mu + 3] + e = ace.xss[idx + 1:idx + 1 + n_energy_out[i]*(n_mu + 3): + n_mu + 3] + p = ace.xss[idx + 2:idx + 2 + n_energy_out[i]*(n_mu + 3): + n_mu + 3] + c = ace.xss[idx + 3:idx + 3 + n_energy_out[i]*(n_mu + 3): + n_mu + 3] eout_i = Tabular(e, p, 'linear-linear', ignore_negative=True) eout_i.c = c - # Outgoing angle distribution for each (incoming, outgoing) energy pair + # Outgoing angle distribution for each + # (incoming, outgoing) energy pair mu_i = [] for j in range(n_energy_out[i]): mu = ace.xss[idx + 4:idx + 4 + n_mu] - p_mu = 1./n_mu*np.ones(n_mu) + p_mu = 1. / n_mu * np.ones(n_mu) mu_ij = Discrete(mu, p_mu) mu_ij.c = np.cumsum(p_mu) mu_i.append(mu_ij) @@ -398,28 +598,30 @@ class ThermalScattering(EqualityMixin): # Create correlated angle-energy distribution breakpoints = [n_energy] interpolation = [2] - energy = table.inelastic_xs.x - table.inelastic_dist = CorrelatedAngleEnergy( + energy = table.inelastic_xs[temperatures[0]].x + table.inelastic_dist[temperatures[0]] = CorrelatedAngleEnergy( breakpoints, interpolation, energy, energy_out, mu_out) # Incoherent/coherent elastic scattering cross section idx = ace.jxs[4] if idx != 0: n_energy = int(ace.xss[idx]) - energy = ace.xss[idx+1 : idx+1+n_energy] - P = ace.xss[idx+1+n_energy : idx+1+2*n_energy] + energy = ace.xss[idx + 1: idx + 1 + n_energy] + P = ace.xss[idx + 1 + n_energy: idx + 1 + 2 * n_energy] if ace.nxs[5] == 4: - table.elastic_xs = CoherentElastic(energy, P) + table.elastic_xs[temperatures[0]] = CoherentElastic(energy, P) else: - table.elastic_xs = Tabulated1D(energy, P) + table.elastic_xs[temperatures[0]] = Tabulated1D(energy, P) # Angular distribution n_mu = ace.nxs[6] if n_mu != -1: idx = ace.jxs[6] - table.elastic_mu_out = ace.xss[idx:idx + n_energy*n_mu] - table.elastic_mu_out.shape = (n_energy, n_mu) + table.elastic_mu_out[temperatures[0]] = \ + ace.xss[idx:idx + n_energy * n_mu] + table.elastic_mu_out[temperatures[0]].shape = \ + (n_energy, n_mu) # Get relevant ZAIDs pairs = np.fromiter(map(lambda p: p[0], ace.pairs), int) diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 index 05e3aff322..a21fc9001a 100755 --- a/scripts/openmc-ace-to-hdf5 +++ b/scripts/openmc-ace-to-hdf5 @@ -124,47 +124,79 @@ for filename in ace_libraries: continue lib = openmc.data.ace.Library(filename) + nuclides = {} for table in lib.tables: - if table.name.endswith('c'): + name, xs = table.name.split('.') + if xs.endswith('c'): # Continuous-energy neutron data - try: + if name not in nuclides: neutron = openmc.data.IncidentNeutron.from_ace( - table, args.metastable) - except Exception as e: - print('Failed to convert {}: {}'.format(table.name, e)) - continue + table, args.metastable) + # try: + # neutron = openmc.data.IncidentNeutron.from_ace( + # table, args.metastable) + # except Exception as e: + # print('Failed to convert {}: {}'.format(table.name, e)) + # continue - # Fission energy release data, if available - if args.fission_energy_release is not None: - fer = openmc.data.FissionEnergyRelease.from_compact_hdf5( - args.fission_energy_release, neutron) - if fer is not None: - neutron.fission_energy = fer + # Fission energy release data, if available + if args.fission_energy_release is not None: + fer = openmc.data.FissionEnergyRelease.from_compact_hdf5( + args.fission_energy_release, neutron) + if fer is not None: + neutron.fission_energy = fer - print('Converting {} (ACE) to {} (HDF5)'.format(table.name, - neutron.name)) + print('Converting {} (ACE) to {} (HDF5)'.format(table.name, + neutron.name)) - # Determine filename - outfile = os.path.join(args.destination, - neutron.name.replace('.', '_') + '.h5') - neutron.export_to_hdf5(outfile, 'w') + # Determine filename + outfile = os.path.join(args.destination, + neutron.name.replace('.', '_') + '.h5') + neutron.export_to_hdf5(outfile, 'w') - # Register with library - library.register_file(outfile) + # Register with library + library.register_file(outfile) - elif table.name.endswith('t'): + # Add nuclide to list + nuclides[name] = outfile + else: + # Then we only need to append the data + print('Converting {} (ACE) to {} (HDF5)'.format(table.name, + neutron.name)) + neutron = \ + openmc.data.IncidentNeutron.from_hdf5(nuclides[name]) + neutron.add_temperature_from_ace(table, args.metastable) + neutron.export_to_hdf5(outfile + '_1', 'w') + os.rename(outfile + '_1', outfile) + + elif xs.endswith('t'): # Thermal scattering data - thermal = openmc.data.ThermalScattering.from_ace(table) - print('Converting {} (ACE) to {} (HDF5)'.format(table.name, - thermal.name)) + if name not in nuclides: + thermal = openmc.data.ThermalScattering.from_ace(table) + print('Converting {} (ACE) to {} (HDF5)'.format(table.name, + thermal.name)) - # Determine filename - outfile = os.path.join(args.destination, - thermal.name.replace('.', '_') + '.h5') - thermal.export_to_hdf5(outfile, 'w') + # Determine filename + outfile = os.path.join(args.destination, + thermal.name.replace('.', '_') + '.h5') + thermal.export_to_hdf5(outfile, 'w') - # Register with library - library.register_file(outfile, 'thermal') + # Register with library + library.register_file(outfile, 'thermal') + + # Add data to list + nuclides[name] = outfile + + else: + # Then we only need to append the data + print('Converting {} (ACE) to {} (HDF5)'.format(table.name, + thermal.name)) + # if table.name == 'poly.11t': + # import pdb; pdb.set_trace() + thermal = openmc.data.ThermalScattering.from_hdf5(nuclides[name]) + thermal.add_temperature_from_ace(table) + thermal.export_to_hdf5(outfile + '_1', 'w') + os.rename(outfile + '_1', outfile) # Write cross_sections.xml libpath = os.path.join(args.destination, 'cross_sections.xml') From 63b3c6dbd07c51d64210aec7ac95dd9af0f768bc Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 21 Aug 2016 11:37:39 -0400 Subject: [PATCH 312/417] Updated openmc-ace-to-hdf5 to generate the libraries for us and fixed bugs as found when developing that script. Also updated the Format description in nuclear_data.rst --- docs/source/io_formats/nuclear_data.rst | 56 +++++++++++++++---------- openmc/data/neutron.py | 9 ++-- openmc/data/reaction.py | 2 +- openmc/data/thermal.py | 9 ++-- scripts/openmc-ace-to-hdf5 | 18 ++++---- 5 files changed, 55 insertions(+), 39 deletions(-) diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index 7ad80b2fcd..bb87bd5b95 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -16,7 +16,7 @@ Incident Neutron Data - **metastable** (*int*) -- Metastable state (0=ground, 1=first excited, etc.) - **atomic_weight_ratio** (*double*) -- Mass in units of neutron masses - - **temperature** (*double*) -- Temperature in MeV + - **kTs** (*double[]*) -- Temperatures (in MeV) contained in the library - **n_reaction** (*int*) -- Number of reactions :Datasets: - **energy** (*double[]*) -- Energy points at which cross sections are tabulated @@ -26,13 +26,20 @@ Incident Neutron Data :Attributes: - **mt** (*int*) -- ENDF MT reaction number - **label** (*char[]*) -- Name of the reaction - **Q_value** (*double*) -- Q value in MeV - - **threshold_idx** (*int*) -- Index on the energy grid that the - reaction threshold corresponds to - **center_of_mass** (*int*) -- Whether the reference frame for scattering is center-of-mass (1) or laboratory (0) - **n_product** (*int*) -- Number of reaction products -:Datasets: - **xs** (*double[]*) -- Cross section values tabulated against the nuclide energy grid +**//reactions/reaction_//** + + is the temperature in Kelvin, rounded to the nearest integer, of the +temperature-dependent data set. For example, the data set corresponding to +300 Kelvin would be located at `300K`. + +:Attributes: - **threshold_idx** (*int*) -- Index on the energy grid that the + reaction threshold corresponds to for temperature TTT (in Kelvin) + +:Datasets: - **xs** (*double[]*) -- Cross section values tabulated against the nuclide energy grid for temperature TTT (in Kelvin) **//reactions/reaction_/product_/** @@ -92,32 +99,39 @@ Thermal Neutron Scattering Data **//** :Attributes: - **atomic_weight_ratio** (*double*) -- Mass in units of neutron masses - - **temperature** (*double*) -- Temperature in MeV + - **kTs** (*double[]*) -- Temperatures (in MeV) contained in the library - **zaids** (*int[]*) -- ZAID identifiers for which the thermal scattering data applies to - -**//elastic/** - -:Datasets: - **xs** (:ref:`tabulated <1d_tabulated>`) -- Thermal inelastic - scattering cross section - - **mu_out** (*double[][]*) -- Distribution of outgoing energies - and angles for coherent elastic scattering - -**//inelastic/** - -:Attributes: - **secondary_mode** (*char[]*) -- Indicates how the inelastic outgoing angle-energy distributions are represented ('equal', 'skewed', or 'continuous'). +**//elastic//** + + is the temperature in Kelvin, rounded to the nearest integer, of the +temperature-dependent data set. For example, the data set corresponding to +300 Kelvin would be located at `300K`. + :Datasets: - **xs** (:ref:`tabulated <1d_tabulated>`) -- Thermal inelastic - scattering cross section + scattering cross section for temperature TTT (in Kelvin) + - **mu_out** (*double[][]*) -- Distribution of outgoing energies + and angles for coherent elastic scattering for temperature TTT + (in Kelvin) + +**//inelastic//** + + is the temperature in Kelvin, rounded to the nearest integer, of the +temperature-dependent data set. For example, the data set corresponding to +300 Kelvin would be located at `300K`. + +:Datasets: - **xs** (:ref:`tabulated <1d_tabulated>`) -- Thermal inelastic + scattering cross section for temperature TTT (in Kelvin) - **energy_out** (*double[][]*) -- Distribution of outgoing - energies for each incoming energy. Only present if secondary mode - is not continuous. + energies for each incoming energy for temperature TTT (in Kelvin). + Only present if secondary mode is not continuous. - **mu_out** (*double[][][]*) -- Distribution of scattering cosines - for each pair of incoming and outgoing energies. Only present if - secondary mode is not continuous. + for each pair of incoming and outgoing energies. for temperature + TTT (in Kelvin). Only present if secondary mode is not continuous. If the secondary mode is continuous, the outgoing energy-angle distribution is given as a :ref:`correlated angle-energy distribution diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 8ea8e38e3e..0419787422 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -150,7 +150,7 @@ class IncidentNeutron(EqualityMixin): self.metastable = metastable self.atomic_weight_ratio = atomic_weight_ratio self.kTs = kTs - self.temperatures = ["{0:.1f}K".format(kT_to_K(kT)) for kT in kTs] + self.temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] self.energy = {} self._fission_energy = None self.reactions = OrderedDict() @@ -300,7 +300,7 @@ class IncidentNeutron(EqualityMixin): if ace.temperature not in self.kTs: if name == self.name: # Add temperature and kTs - strT = "{0:.1f}K".format(kT_to_K(ace.temperature)) + strT = str(int(round(kT_to_K(ace.temperature)))) + "K" self.temperatures.append(strT) self.kTs.append(ace.temperature) # Read energy grid @@ -458,7 +458,7 @@ class IncidentNeutron(EqualityMixin): metastable = group.attrs['metastable'] atomic_weight_ratio = group.attrs['atomic_weight_ratio'] kTs = group.attrs['kTs'].tolist() - temperatures = ["{0:.1f}K".format(kT_to_K(kT)) for kT in kTs] + temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] data = cls(name, atomic_number, mass_number, metastable, atomic_weight_ratio, kTs) @@ -544,7 +544,8 @@ class IncidentNeutron(EqualityMixin): # Assign temperature to the running list kTs = [ace.temperature] - temperatures = ["{0:.1f}K".format(kT_to_K(ace.temperature))] + + temperatures = [str(int(round(kT_to_K(ace.temperature)))) + "K"] # If mass number hasn't been specified, make an educated guess zaid, xs = ace.name.split('.') diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 741822bf0c..5d3b8daf59 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -488,7 +488,7 @@ class Reaction(EqualityMixin): # Convert data temperature to a "300.0K" number for indexing # temperature data - strT = "{0:.1f}K".format(kT_to_K(ace.temperature)) + strT = str(int(round(kT_to_K(ace.temperature)))) + "K" if i_reaction > 0: mt = int(ace.xss[ace.jxs[3] + i_reaction - 1]) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 27c61e9249..a28dcb504c 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -92,7 +92,6 @@ class CoherentElastic(EqualityMixin): idx = np.searchsorted(self.bragg_edges, E) return self.factors[idx] / E - def __len__(self): return len(self.bragg_edges) @@ -192,7 +191,7 @@ class ThermalScattering(EqualityMixin): self.name = name self.atomic_weight_ratio = atomic_weight_ratio self.kTs = kTs - self.temperatures = ["{0:.1f}K".format(kT_to_K(kT)) for kT in kTs] + self.temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] self.elastic_xs = {} self.elastic_mu_out = {} self.inelastic_xs = {} @@ -303,7 +302,7 @@ class ThermalScattering(EqualityMixin): if ace.temperature not in self.kTs: if name == self.name: # Add temperature and kTs - strT = "{0:.1f}K".format(kT_to_K(ace.temperature)) + strT = str(int(round(kT_to_K(ace.temperature)))) + "K" self.temperatures.append(strT) self.kTs.append(ace.temperature) @@ -438,7 +437,7 @@ class ThermalScattering(EqualityMixin): name = group.name[1:] atomic_weight_ratio = group.attrs['atomic_weight_ratio'] kTs = group.attrs['kTs'].tolist() - temperatures = ["{0:.1f}K".format(kT_to_K(kT)) for kT in kTs] + temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] table = cls(name, atomic_weight_ratio, kTs) table.zaids = group.attrs['zaids'] @@ -526,7 +525,7 @@ class ThermalScattering(EqualityMixin): # Assign temperature to the running list kTs = [ace.temperature] - temperatures = ["{0:.1f}K".format(kT_to_K(ace.temperature))] + temperatures = [str(int(round(kT_to_K(ace.temperature)))) + "K"] table = cls(name, ace.atomic_weight_ratio, kTs) diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 index a21fc9001a..9a55ca7493 100755 --- a/scripts/openmc-ace-to-hdf5 +++ b/scripts/openmc-ace-to-hdf5 @@ -130,14 +130,12 @@ for filename in ace_libraries: if xs.endswith('c'): # Continuous-energy neutron data if name not in nuclides: - neutron = openmc.data.IncidentNeutron.from_ace( + try: + neutron = openmc.data.IncidentNeutron.from_ace( table, args.metastable) - # try: - # neutron = openmc.data.IncidentNeutron.from_ace( - # table, args.metastable) - # except Exception as e: - # print('Failed to convert {}: {}'.format(table.name, e)) - # continue + except Exception as e: + print('Failed to convert {}: {}'.format(table.name, e)) + continue # Fission energy release data, if available if args.fission_energy_release is not None: @@ -172,7 +170,11 @@ for filename in ace_libraries: elif xs.endswith('t'): # Thermal scattering data if name not in nuclides: - thermal = openmc.data.ThermalScattering.from_ace(table) + try: + thermal = openmc.data.ThermalScattering.from_ace(table) + except Exception as e: + print('Failed to convert {}: {}'.format(table.name, e)) + continue print('Converting {} (ACE) to {} (HDF5)'.format(table.name, thermal.name)) From 8fbd41eaf47d5b5ebeb5620fbfbf75d979433be6 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 21 Aug 2016 13:43:07 -0400 Subject: [PATCH 313/417] Seem to be able to read the new hdf5 files and run at least an example problem (!!!!) --- examples/xml/basic/materials.xml | 4 +- openmc/data/neutron.py | 9 +++- openmc/data/thermal.py | 9 +++- src/global.F90 | 3 -- src/input_xml.F90 | 75 ++++++++------------------------ src/material_header.F90 | 5 ++- src/nuclide_header.F90 | 21 ++++++--- src/reaction_header.F90 | 13 +++--- 8 files changed, 61 insertions(+), 78 deletions(-) diff --git a/examples/xml/basic/materials.xml b/examples/xml/basic/materials.xml index 2f88731ffc..573b96cb2b 100644 --- a/examples/xml/basic/materials.xml +++ b/examples/xml/basic/materials.xml @@ -6,13 +6,15 @@ + 294K - + + 294K diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 0419787422..87415d427f 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -399,7 +399,9 @@ class IncidentNeutron(EqualityMixin): g.attrs['A'] = self.mass_number g.attrs['metastable'] = self.metastable g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio - g.attrs['kTs'] = self.kTs + ktg = g.create_group('kTs') + for i, temperature in enumerate(self.temperatures): + ktg.create_dataset(temperature, data=self.kTs[i]) # Write energy grid eg = g.create_group('energy') @@ -457,7 +459,10 @@ class IncidentNeutron(EqualityMixin): mass_number = group.attrs['A'] metastable = group.attrs['metastable'] atomic_weight_ratio = group.attrs['atomic_weight_ratio'] - kTs = group.attrs['kTs'].tolist() + kTg = group['kTs'] + kTs = [] + for temp in kTg: + kTs.append(temp.value) temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] data = cls(name, atomic_number, mass_number, metastable, diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index a28dcb504c..6f4aadd749 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -225,9 +225,11 @@ class ThermalScattering(EqualityMixin): # Write basic data g = f.create_group(self.name) g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio - g.attrs['kTs'] = self.kTs g.attrs['zaids'] = self.zaids g.attrs['secondary_mode'] = np.string_(self.secondary_mode) + ktg = g.create_group('kTs') + for i, temperature in enumerate(self.temperatures): + ktg.create_dataset(temperature, data=self.kTs[i]) for T in self.temperatures: Tg = g.create_group(T) @@ -436,7 +438,10 @@ class ThermalScattering(EqualityMixin): name = group.name[1:] atomic_weight_ratio = group.attrs['atomic_weight_ratio'] - kTs = group.attrs['kTs'].tolist() + kTg = group['kTs'] + kTs = [] + for temp in kTg: + kTs.append(temp.value) temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] table = cls(name, atomic_weight_ratio, kTs) diff --git a/src/global.F90 b/src/global.F90 index c22fec25c4..0fc1bc0c52 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -77,9 +77,6 @@ module global ! Dictionaries to look up cross sections and listings type(DictCharInt) :: nuclide_dict - ! 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 a60d8196ea..b20927743e 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2159,16 +2159,9 @@ contains &exist!") end if - ! Initialize default cross section variable - default_xs = "" - ! Parse materials.xml file call open_xmldoc(doc, filename) - ! Copy default cross section if present - if (check_for_node(doc, "default_xs")) & - call get_node_value(doc, "default_xs", default_xs) - ! Get pointer to list of XML call get_node_list(doc, "material", node_mat_list) @@ -2204,6 +2197,11 @@ contains call get_node_value(node_mat, "name", mat % name) end if + ! Copy material temperature + if (check_for_node(node_mat, "temperature")) then + call get_node_value(node_mat, "temperature", mat % temperature) + end if + ! ======================================================================= ! READ AND PARSE TAG @@ -2301,22 +2299,9 @@ contains // 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 macroscopic data & - & 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) + ! store nuclide name + call get_node_value(node_nuc, "name", name) + name = trim(name) ! save name and density to list call names % push_back(name) @@ -2345,16 +2330,6 @@ contains // 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 - ! Check enforced isotropic lab scattering if (run_CE) then if (check_for_node(node_nuc, "scattering")) then @@ -2372,11 +2347,9 @@ contains 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) + ! store nuclide name + call get_node_value(node_nuc, "name", name) + name = trim(name) ! save name and density to list call names % push_back(name) @@ -2424,18 +2397,6 @@ contains end if call get_node_value(node_ele, "name", name) - ! Check for cross section - if (check_for_node(node_ele, "xs")) then - call get_node_value(node_ele, "xs", temp_str) - else - if (default_xs == '') then - call fatal_error("No cross section specified for nuclide in & - &material " // trim(to_str(mat % id))) - else - temp_str = to_lower(trim(default_xs)) - end if - end if - ! 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. & @@ -2581,14 +2542,11 @@ 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 - call fatal_error("Need to specify and for S(a,b) & - &table.") + if (.not. check_for_node(node_sab, "name")) then + call fatal_error("Need to specify 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) + name = trim(name) mat % sab_names(j) = name ! Check that this nuclide is listed in the cross_sections.xml file @@ -5856,7 +5814,8 @@ contains ! Read nuclide data from HDF5 file_id = file_open(libraries(i_library) % path, 'r') group_id = open_group(file_id, name) - call nuclides(i_nuclide) % from_hdf5(group_id) + call nuclides(i_nuclide) % from_hdf5(group_id, & + materials(i) % temperature) call close_group(group_id) call file_close(file_id) @@ -5988,7 +5947,7 @@ contains ! Read nuclide data from HDF5 file_id = file_open(libraries(i_library) % path, 'r') group_id = open_group(file_id, name) - call resonant_nuc % from_hdf5(group_id) + call resonant_nuc % from_hdf5(group_id, '0K') call close_group(group_id) call file_close(file_id) diff --git a/src/material_header.F90 b/src/material_header.F90 index be4c860e22..27a0e61fea 100644 --- a/src/material_header.F90 +++ b/src/material_header.F90 @@ -8,11 +8,14 @@ module material_header type Material integer :: id ! unique identifier - character(len=104) :: name = "" ! User-defined name + character(len=104) :: name = "" ! User-defined name integer :: n_nuclides ! number of nuclides integer, allocatable :: nuclide(:) ! index in nuclides array real(8) :: density ! total atom density in atom/b-cm real(8), allocatable :: atom_density(:) ! nuclide atom density in atom/b-cm + character(6) :: temperature ! Temperature of the material + ! as presented in the HDF5 library; + ! e.g., "300K" ! Energy grid information integer :: n_grid ! # of union material grid points diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index f32a93030c..fd043d789c 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -180,9 +180,10 @@ module nuclide_header end subroutine nuclide_clear - subroutine nuclide_from_hdf5(this, group_id) + subroutine nuclide_from_hdf5(this, group_id, temperature) class(Nuclide), intent(inout) :: this - integer(HID_T), intent(in) :: group_id + integer(HID_T), intent(in) :: group_id + character(6), intent(in) :: temperature integer :: i integer :: Z @@ -192,12 +193,14 @@ module nuclide_header integer :: n_links integer :: hdf5_err integer(HID_T) :: urr_group, nu_group - integer(HID_T) :: energy_dset + integer(HID_T) :: energy_group, energy_dset + integer(HID_T) :: kT_group, kT_dset integer(HID_T) :: rxs_group integer(HID_T) :: rx_group integer(HID_T) :: total_nu integer(HID_T) :: fer_group ! fission_energy_release group integer(HID_T) :: fer_dset + integer(HID_T) :: temp_dset integer(SIZE_T) :: name_len, name_file_len integer(HSIZE_T) :: j integer(HSIZE_T) :: dims(1) @@ -217,15 +220,21 @@ module nuclide_header call read_attribute(this % metastable, group_id, 'metastable') this % zaid = 1000*Z + A + 400*this % metastable call read_attribute(this % awr, group_id, 'atomic_weight_ratio') - call read_attribute(this % kT, group_id, 'temperature') + kT_group = open_group(group_id, 'kTs') + kT_dset = open_dataset(kT_group, temperature) + call read_dataset(this % kT, kT_dset) + call close_dataset(kT_dset) + call close_group(kT_group) ! Read energy grid - energy_dset = open_dataset(group_id, 'energy') + energy_group = open_group(group_id, 'energy') + energy_dset = open_dataset(energy_group, temperature) call get_shape(energy_dset, dims) this % n_grid = int(dims(1), 4) allocate(this % energy(this % n_grid)) call read_dataset(this % energy, energy_dset) call close_dataset(energy_dset) + call close_group(energy_group) ! Get MT values based on group names rxs_group = open_group(group_id, 'reactions') @@ -243,7 +252,7 @@ module nuclide_header do i = 1, size(this % reactions) rx_group = open_group(rxs_group, 'reaction_' // trim(& zero_padded(MTs % data(i), 3))) - call this % reactions(i) % from_hdf5(rx_group) + call this % reactions(i) % from_hdf5(rx_group, temperature) call close_group(rx_group) end do call close_group(rxs_group) diff --git a/src/reaction_header.F90 b/src/reaction_header.F90 index 055dcb3923..4289e2160c 100644 --- a/src/reaction_header.F90 +++ b/src/reaction_header.F90 @@ -29,9 +29,10 @@ module reaction_header contains - subroutine reaction_from_hdf5(this, group_id) + subroutine reaction_from_hdf5(this, group_id, temperature) class(Reaction), intent(inout) :: this integer(HID_T), intent(in) :: group_id + character(6), intent(in) :: temperature integer :: i integer :: cm @@ -41,7 +42,7 @@ contains integer :: n_links integer :: hdf5_err integer(HID_T) :: pgroup - integer(HID_T) :: xs + integer(HID_T) :: xs, xs_group integer(SIZE_T) :: name_len integer(HSIZE_T) :: dims(1) integer(HSIZE_T) :: j @@ -49,16 +50,18 @@ contains call read_attribute(this % Q_value, group_id, 'Q_value') call read_attribute(this % MT, group_id, 'mt') - call read_attribute(this % threshold, group_id, 'threshold_idx') call read_attribute(cm, group_id, 'center_of_mass') this % scatter_in_cm = (cm == 1) - ! Read cross section - xs = open_dataset(group_id, 'xs') + ! Read cross section and threshold_idx data + xs_group = open_group(group_id, temperature) + call read_attribute(this % threshold, xs_group, 'threshold_idx') + xs = open_dataset(xs_group, 'xs') call get_shape(xs, dims) allocate(this % sigma(dims(1))) call read_dataset(this % sigma, xs) call close_dataset(xs) + call close_group(xs_group) ! Determine number of products call h5gget_info_f(group_id, storage_type, n_links, max_corder, hdf5_err) From 2f8afd291b785a47aad8e45bdbb0cb2cd46d9162 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 21 Aug 2016 14:00:40 -0400 Subject: [PATCH 314/417] Finished up the thermal side as well. Now I just need to update examples, etc --- src/input_xml.F90 | 3 ++- src/sab_header.F90 | 41 ++++++++++++++++++++++++++--------------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index b20927743e..af6737de60 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -5869,7 +5869,8 @@ contains ! Read S(a,b) data from HDF5 file_id = file_open(libraries(i_library) % path, 'r') group_id = open_group(file_id, name) - call sab_tables(i_sab) % from_hdf5(group_id) + call sab_tables(i_sab) % from_hdf5(group_id, & + materials(i) % temperature) call close_group(group_id) call file_close(file_id) diff --git a/src/sab_header.F90 b/src/sab_header.F90 index 3e9e18fab3..86b72740cf 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -154,16 +154,19 @@ contains end subroutine salphabeta_print - subroutine salphabeta_from_hdf5(this, group_id) + subroutine salphabeta_from_hdf5(this, group_id, temperature) class(SAlphaBeta), intent(inout) :: this integer(HID_T), intent(in) :: group_id + character(6), intent(in) :: temperature integer :: i, j integer :: n_energy, n_energy_out, n_mu integer :: hdf5_err + integer(HID_T) :: T_group integer(HID_T) :: elastic_group integer(HID_T) :: inelastic_group integer(HID_T) :: dset_id + integer(HID_T) :: kT_group, kT_dset integer(HSIZE_T) :: dims2(2) integer(HSIZE_T) :: dims3(3) real(8), allocatable :: temp(:,:) @@ -172,15 +175,31 @@ contains type(CorrelatedAngleEnergy) :: correlated_dist call read_attribute(this % awr, group_id, 'atomic_weight_ratio') - call read_attribute(this % kT, group_id, 'temperature') call read_attribute(this % zaid, group_id, 'zaids') + call read_attribute(type, group_id, 'secondary_mode') + select case (type) + case ('equal') + this % secondary_mode = SAB_SECONDARY_EQUAL + case ('skewed') + this % secondary_mode = SAB_SECONDARY_SKEWED + case ('continuous') + this % secondary_mode = SAB_SECONDARY_CONT + end select this % n_zaid = size(this % zaid) + kT_group = open_group(group_id, 'kTs') + kT_dset = open_dataset(kT_group, temperature) + call read_dataset(this % kT, kT_dset) + call close_dataset(kT_dset) + call close_group(kT_group) + + ! Open temperature group + T_group = open_group(group_id, temperature) ! Coherent elastic data - call h5ltpath_valid_f(group_id, 'elastic', .true., exists, hdf5_err) + call h5ltpath_valid_f(T_group, 'elastic', .true., exists, hdf5_err) if (exists) then ! Read cross section data - elastic_group = open_group(group_id, 'elastic') + elastic_group = open_group(T_group, 'elastic') dset_id = open_dataset(elastic_group, 'xs') call read_attribute(type, dset_id, 'type') call get_shape(dset_id, dims2) @@ -219,19 +238,10 @@ contains end if ! Inelastic data - call h5ltpath_valid_f(group_id, 'inelastic', .true., exists, hdf5_err) + call h5ltpath_valid_f(T_group, 'inelastic', .true., exists, hdf5_err) if (exists) then ! Read type of inelastic data - inelastic_group = open_group(group_id, 'inelastic') - call read_attribute(type, inelastic_group, 'secondary_mode') - select case (type) - case ('equal') - this % secondary_mode = SAB_SECONDARY_EQUAL - case ('skewed') - this % secondary_mode = SAB_SECONDARY_SKEWED - case ('continuous') - this % secondary_mode = SAB_SECONDARY_CONT - end select + inelastic_group = open_group(T_group, 'inelastic') ! Read cross section data dset_id = open_dataset(inelastic_group, 'xs') @@ -308,6 +318,7 @@ contains call close_group(inelastic_group) end if + call close_group(T_group) end subroutine salphabeta_from_hdf5 end module sab_header From dfe2420b4a7e835cf53ebf78cb4db34deb4a4ad0 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 21 Aug 2016 14:36:58 -0400 Subject: [PATCH 315/417] Updated pyapi and docs to support new default_temperature/temperature and lack of default_xs/xs --- docs/source/usersguide/input.rst | 54 +++++++++++---------- examples/python/basic/build-xml.py | 4 +- openmc/element.py | 24 +-------- openmc/macroscopic.py | 20 +------- openmc/material.py | 78 +++++++++++++++++------------- openmc/nuclide.py | 22 +-------- src/input_xml.F90 | 13 +++++ 7 files changed, 93 insertions(+), 122 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 4bbc96cf86..27a9d36435 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1295,6 +1295,13 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: "" + :temperature: + + An element with no attributes which is used to set the temperature of the + material. This element accepts a maximum 6-character string that indicates + the default temperature rounded to the nearest integer in units of Kelvin, + e.g. "294K". + :density: An element with attributes/sub-elements called ``value`` and ``units``. The ``value`` attribute is the numeric value of the density while the ``units`` @@ -1315,17 +1322,16 @@ Each ``material`` element can have the following attributes or sub-elements: ``nuclide``, ``element``, or ``sab`` quantity. :nuclide: - An element with attributes/sub-elements called ``name``, ``xs``, and ``ao`` + An element with attributes/sub-elements called ``name``, and ``ao`` or ``wo``. The ``name`` attribute is the name of the cross-section for a - desired nuclide while the ``xs`` attribute is the cross-section - identifier. Finally, the ``ao`` and ``wo`` attributes specify the atom or + desired nuclide. Finally, the ``ao`` and ``wo`` attributes specify the atom or weight percent of that nuclide within the material, respectively. One example would be as follows: .. code-block:: xml - - + + .. note:: If one nuclide is specified in atom percent, all others must also be given in atom percent. The same applies for weight percentages. @@ -1349,11 +1355,10 @@ Each ``material`` element can have the following attributes or sub-elements: Specifies that a natural element is present in the material. The natural element is split up into individual isotopes based on `IUPAC Isotopic Compositions of the Elements 2009`_. This element has - attributes/sub-elements called ``name``, ``xs``, and ``ao``. The ``name`` - attribute is the atomic symbol of the element while the ``xs`` attribute is - the cross-section identifier. Finally, the ``ao`` attribute specifies the - atom percent of the element within the material, respectively. One example - would be as follows: + attributes/sub-elements called ``name``, and ``ao``. The ``name`` + attribute is the atomic symbol of the element. Finally, the ``ao`` + attribute specifies the atom percent of the element within the material, + respectively. One example would be as follows: .. code-block:: xml @@ -1383,10 +1388,9 @@ Each ``material`` element can have the following attributes or sub-elements: 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 - is the name of the S(a,b) table that should be associated with the material, - and ``xs`` is the cross-section identifier for the table. + Associates an S(a,b) table with the material. This element has one + attribute/sub-element called ``name``. The ``name`` attribute + is the name of the S(a,b) table that should be associated with the material. *Default*: None @@ -1397,14 +1401,13 @@ Each ``material`` element can have the following attributes or sub-elements: 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``. + macroscopic element has one attribute/sub-element called ``name``. 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: + desired nuclide. One example would be as follows: .. code-block:: xml - + .. note:: This element is only used in the multi-group :ref:`energy_mode`. @@ -1413,15 +1416,16 @@ Each ``material`` element can have the following attributes or sub-elements: .. _IUPAC Isotopic Compositions of the Elements 2009: http://pac.iupac.org/publications/pac/pdf/2011/pdf/8302x0397.pdf -```` Element +```` Element ------------------------ -In some circumstances, the cross-section identifier may be the same for many or -all nuclides in a given problem. In this case, rather than specifying the -``xs=...`` attribute on every nuclide, a ```` element can be used to -set the default cross-section identifier for any nuclide without an identifier -explicitly listed. This element has no attributes and accepts a 3-letter string -that indicates the default cross-section identifier, e.g. "70c". +In some circumstances, the temperature may be the same for many or +all materials in a given problem. In this case, rather than specifying the +```` element on every material, a ```` +element can be used to set the default material temperature for any material +without an explicitly provided temperature. This element has no attributes and +accepts a maximum 6-character string that indicates the default temperature +rounded to the nearest integer in units of Kelvin, e.g. "294K". *Default*: None diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index 1bfe50b2e3..802debf8cd 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -25,7 +25,7 @@ moderator = openmc.Material(material_id=41, name='moderator') moderator.set_density('g/cc', 1.0) moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) -moderator.add_s_alpha_beta('c_H_in_H2O', '71t') +moderator.add_s_alpha_beta('c_H_in_H2O') fuel = openmc.Material(material_id=40, name='fuel') fuel.set_density('g/cc', 4.5) @@ -33,7 +33,7 @@ fuel.add_nuclide(u235, 1.) # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([moderator, fuel]) -materials_file.default_xs = '71c' +materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/openmc/element.py b/openmc/element.py index ada5726b44..1b16806148 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -19,38 +19,28 @@ class Element(object): ---------- name : str Chemical symbol of the element, e.g. Pu - xs : str - Cross section identifier, e.g. 71c Attributes ---------- name : str Chemical symbol of the element, e.g. Pu - xs : str - Cross section identifier, e.g. 71c scattering : {'data', 'iso-in-lab', None} The type of angular scattering distribution to use """ - def __init__(self, name='', xs=None): + def __init__(self, name=''): # Initialize class attributes self._name = '' - self._xs = None self._scattering = None # Set class attributes self.name = name - if xs is not None: - self.xs = xs - def __eq__(self, other): if isinstance(other, Element): if self.name != other.name: return False - elif self.xs != other.xs: - return False else: return True elif isinstance(other, basestring) and other == self.name: @@ -72,17 +62,12 @@ class Element(object): def __repr__(self): string = 'Element - {0}\n'.format(self._name) - string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self._xs) if self.scattering is not None: string += '{0: <16}{1}{2}\n'.format('\tscattering', '=\t', self.scattering) return string - @property - def xs(self): - return self._xs - @property def name(self): return self._name @@ -91,11 +76,6 @@ class Element(object): def scattering(self): return self._scattering - @xs.setter - def xs(self, xs): - check_type('cross section identifier', xs, basestring) - self._xs = xs - @name.setter def name(self, name): check_type('element name', name, basestring) @@ -127,6 +107,6 @@ class Element(object): isotopes = [] for isotope, abundance in sorted(NATURAL_ABUNDANCE.items()): if re.match(r'{}\d+'.format(self.name), isotope): - nuc = openmc.Nuclide(isotope, self.xs) + nuc = openmc.Nuclide(isotope) isotopes.append((nuc, abundance)) return isotopes diff --git a/openmc/macroscopic.py b/openmc/macroscopic.py index 9f55998e3a..e47baf9fba 100644 --- a/openmc/macroscopic.py +++ b/openmc/macroscopic.py @@ -13,29 +13,21 @@ class Macroscopic(object): ---------- name : str Name of the macroscopic data, e.g. UO2 - xs : str - Cross section identifier, e.g. 71c Attributes ---------- name : str Name of the nuclide, e.g. UO2 - xs : str - Cross section identifier, e.g. 71c """ - def __init__(self, name='', xs=None): + def __init__(self, name=''): # Initialize class attributes self._name = '' - self._xs = None # Set the Macroscopic class attributes self.name = name - if xs is not None: - self.xs = xs - def __eq__(self, other): if isinstance(other, Macroscopic): if self.name != other.name: @@ -57,23 +49,13 @@ class Macroscopic(object): def __repr__(self): string = 'Nuclide - {0}\n'.format(self._name) - string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self._xs) return string @property def name(self): return self._name - @property - def xs(self): - return self._xs - @name.setter def name(self, name): check_type('name', name, basestring) self._name = name - - @xs.setter - def xs(self, xs): - check_type('cross-section identifier', xs, basestring) - self._xs = xs diff --git a/openmc/material.py b/openmc/material.py index 40dfc1a9b0..d30487e2f6 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -41,11 +41,19 @@ class Material(object): name : str, optional Name of the material. If not specified, the name will be the empty string. + temperature : str, optional + The temperature identifier applied to this material. The units are + in Kelvin and the temperature rounded to the nearest integer. + For example, a tempreature of 293.6K would be provided as '294K' Attributes ---------- id : int Unique identifier for the material + temperature : str + The temperature identifier applied to this material. The units are + in Kelvin and the temperature rounded to the nearest integer. + For example, a tempreature of 293.6K would be provided as '294K' density : float Density of the material (units defined separately) density_units : str @@ -63,10 +71,11 @@ class Material(object): """ - def __init__(self, material_id=None, name=''): + def __init__(self, material_id=None, name='', temperature=None): # Initialize class attributes self.id = material_id self.name = name + self.temperature = temperature self._density = None self._density_units = '' @@ -133,7 +142,7 @@ class Material(object): string += '{0: <16}\n'.format('\tNuclides') for nuclide, percent, percent_type in self._nuclides: - string += '{0: <16}'.format('\t{0.name}.{0.xs}'.format(nuclide)) + string += '{0: <16}'.format('\t{0.name}'.format(nuclide)) string += '=\t{0: <12} [{1}]\n'.format(percent, percent_type) if self._macroscopic is not None: @@ -143,7 +152,7 @@ class Material(object): string += '{0: <16}\n'.format('\tElements') for element, percent, percent_type in self._elements: - string += '{0: <16}'.format('\t{0.name}.{0.xs}'.format(element)) + string += '{0: <16}'.format('\t{0.name}'.format(element)) string += '=\t{0: <12} [{1}]\n'.format(percent, percent_type) return string @@ -156,6 +165,10 @@ class Material(object): def name(self): return self._name + @property + def temperature(self): + return self._temperature + @property def density(self): return self._density @@ -201,6 +214,15 @@ class Material(object): else: self._name = '' + @temperature.setter + def temperature(self, temperature): + if temperature is not None: + cv.check_type('Temperature for Material ID="{0}"'.format(self._id), + temperature, basestring) + self._temperature = temperature + else: + self._temperature = '' + def set_density(self, units, density=None): """Set the density of the material @@ -458,15 +480,13 @@ class Material(object): if element == elm: self._nuclides.remove(elm) - def add_s_alpha_beta(self, name, xs): + def add_s_alpha_beta(self, name): r"""Add an :math:`S(\alpha,\beta)` table to the material Parameters ---------- name : str Name of the :math:`S(\alpha,\beta)` table - xs : str - Cross section identifier, e.g. '71t' """ @@ -480,18 +500,14 @@ class Material(object): 'non-string table name "{1}"'.format(self._id, name) raise ValueError(msg) - if not isinstance(xs, basestring): - msg = 'Unable to add an S(a,b) table to Material ID="{0}" with a ' \ - 'non-string cross-section identifier "{1}"'.format(self._id, xs) - raise ValueError(msg) - new_name = openmc.data.get_thermal_name(name) if new_name != name: msg = 'OpenMC S(a,b) tables follow the GND naming convention. ' \ 'Table "{}" is being renamed as "{}".'.format(name, new_name) warnings.warn(msg) - self._sab.append((new_name, xs)) + self._sab.append((new_name)) + def make_isotropic_in_lab(self): for nuclide, percent, percent_type in self._nuclides: @@ -554,9 +570,6 @@ class Material(object): else: xml_element.set("wo", str(nuclide[1])) - if nuclide[0].xs is not None: - xml_element.set("xs", nuclide[0].xs) - if not nuclide[0].scattering is None: xml_element.set("scattering", nuclide[0].scattering) @@ -581,9 +594,6 @@ class Material(object): else: xml_element.set("wo", str(element[1])) - if element[0].xs is not None: - xml_element.set("xs", element[0].xs) - if not element[0].scattering is None: xml_element.set("scattering", element[0].scattering) @@ -686,8 +696,7 @@ class Material(object): if len(self._sab) > 0: for sab in self._sab: subelement = ET.SubElement(element, "sab") - subelement.set("name", sab[0]) - subelement.set("xs", sab[1]) + subelement.set("name", sab) return element @@ -714,27 +723,29 @@ class Materials(cv.CheckedList): Attributes ---------- - default_xs : str - The default cross section identifier applied to a nuclide when none is - specified + default_temperature : str + The default temperature identifier applied to a material when none is + specified. The units are in Kelvin and the temperature rounded to the + nearest integer. For example, a tempreature of 293.6K would be + provided as '294K' """ def __init__(self, materials=None): super(Materials, self).__init__(Material, 'materials collection') - self._default_xs = None + self._default_temperature = None self._materials_file = ET.Element("materials") if materials is not None: self += materials @property - def default_xs(self): - return self._default_xs + def default_temperature(self): + return self._default_temperature - @default_xs.setter - def default_xs(self, xs): - cv.check_type('default xs', xs, basestring) - self._default_xs = xs + @default_temperature.setter + def default_temperature(self, temperature): + cv.check_type('default_temperature', temperature, basestring) + self._default_temperature = temperature def add_material(self, material): """Append material to collection @@ -817,9 +828,10 @@ class Materials(cv.CheckedList): material.make_isotropic_in_lab() def _create_material_subelements(self): - if self._default_xs is not None: - subelement = ET.SubElement(self._materials_file, "default_xs") - subelement.text = self._default_xs + if self._default_temperature is not None: + subelement = ET.SubElement(self._materials_file, + "default_temperature") + subelement.text = self._default_temperature for material in self: xml_element = material.get_material_xml() diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 68f95beb94..186292a873 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -15,15 +15,11 @@ class Nuclide(object): ---------- name : str Name of the nuclide, e.g. U235 - xs : str - Cross section identifier, e.g. 71c Attributes ---------- name : str Name of the nuclide, e.g. U235 - xs : str - Cross section identifier, e.g. 71c zaid : int 1000*(atomic number) + mass number. As an example, the zaid of U235 would be 92235. @@ -32,25 +28,19 @@ class Nuclide(object): """ - def __init__(self, name='', xs=None): + def __init__(self, name=''): # Initialize class attributes self._name = '' - self._xs = None self._zaid = None self._scattering = None # Set the Material class attributes self.name = name - if xs is not None: - self.xs = xs - def __eq__(self, other): if isinstance(other, Nuclide): if self.name != other.name: return False - elif self.xs != other.xs: - return False else: return True elif isinstance(other, basestring) and other == self.name: @@ -72,7 +62,6 @@ class Nuclide(object): def __repr__(self): string = 'Nuclide - {0}\n'.format(self._name) - string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self.xs) if self.zaid is not None: string += '{0: <16}{1}{2}\n'.format('\tZAID', '=\t', self.zaid) if self.scattering is not None: @@ -84,10 +73,6 @@ class Nuclide(object): def name(self): return self._name - @property - def xs(self): - return self._xs - @property def zaid(self): return self._zaid @@ -111,11 +96,6 @@ class Nuclide(object): '"{}" is being renamed as "{}".'.format(name, self._name) warnings.warn(msg) - @xs.setter - def xs(self, xs): - check_type('cross-section identifier', xs, basestring) - self._xs = xs - @zaid.setter def zaid(self, zaid): check_type('zaid', zaid, Integral) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index af6737de60..d827cfad10 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2129,6 +2129,7 @@ contains logical :: file_exists ! does materials.xml exist? logical :: sum_density ! density is taken to be sum of nuclide densities character(20) :: name ! name of isotope, e.g. 92235.03c + character(6) :: default_temperature ! Default temperature, e.g., '300K' 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 @@ -2162,6 +2163,13 @@ contains ! Parse materials.xml file call open_xmldoc(doc, filename) + ! Copy default temperature + if (check_for_node(doc, "default_temperature")) then + call get_node_value(doc, "default_temperature", default_temperature) + else + default_temperature = '' + end if + ! Get pointer to list of XML call get_node_list(doc, "material", node_mat_list) @@ -2200,6 +2208,11 @@ contains ! Copy material temperature if (check_for_node(node_mat, "temperature")) then call get_node_value(node_mat, "temperature", mat % temperature) + else if (default_temperature /= '') then + mat % temperature = default_temperature + else + call fatal_error("Must specify eithe a material temperature or a & + &default temperature") end if ! ======================================================================= From 6a44a68975b9cabc30c4d73075b261f10b1da6e5 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 21 Aug 2016 14:39:50 -0400 Subject: [PATCH 316/417] updated python testing harness settings for new data format --- tests/input_set.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/input_set.py b/tests/input_set.py index 8d650cafbc..ae2876480a 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -74,7 +74,7 @@ class InputSet(object): cold_water.add_nuclide("O16", 1.0) cold_water.add_nuclide("B10", 6.490e-4) cold_water.add_nuclide("B11", 2.689e-3) - cold_water.add_s_alpha_beta('c_H_in_H2O', '71t') + cold_water.add_s_alpha_beta('c_H_in_H2O') hot_water = openmc.Material(name='Hot borated water', material_id=4) hot_water.set_density('atom/b-cm', 0.06614) @@ -82,7 +82,7 @@ class InputSet(object): hot_water.add_nuclide("O16", 1.0) hot_water.add_nuclide("B10", 6.490e-4) hot_water.add_nuclide("B11", 2.689e-3) - hot_water.add_s_alpha_beta('c_H_in_H2O', '71t') + hot_water.add_s_alpha_beta('c_H_in_H2O') rpv_steel = openmc.Material(name='Reactor pressure vessel steel', material_id=5) @@ -139,7 +139,7 @@ class InputSet(object): lower_rad_ref.add_nuclide("Cr52", 0.145407678031, 'wo') lower_rad_ref.add_nuclide("Cr53", 0.016806340306, 'wo') lower_rad_ref.add_nuclide("Cr54", 0.004261520857, 'wo') - lower_rad_ref.add_s_alpha_beta('c_H_in_H2O', '71t') + lower_rad_ref.add_s_alpha_beta('c_H_in_H2O') upper_rad_ref = openmc.Material(name='Upper radial reflector /' 'Top plate region', material_id=7) @@ -165,7 +165,7 @@ class InputSet(object): upper_rad_ref.add_nuclide("Cr52", 0.146766614995, 'wo') upper_rad_ref.add_nuclide("Cr53", 0.01696340737, 'wo') upper_rad_ref.add_nuclide("Cr54", 0.004301347765, 'wo') - upper_rad_ref.add_s_alpha_beta('c_H_in_H2O', '71t') + upper_rad_ref.add_s_alpha_beta('c_H_in_H2O') bot_plate = openmc.Material(name='Bottom plate region', material_id=8) bot_plate.set_density('g/cm3', 7.184) @@ -190,7 +190,7 @@ class InputSet(object): bot_plate.add_nuclide("Cr52", 0.157390026871, 'wo') bot_plate.add_nuclide("Cr53", 0.018191270146, 'wo') bot_plate.add_nuclide("Cr54", 0.004612692337, 'wo') - bot_plate.add_s_alpha_beta('c_H_in_H2O', '71t') + bot_plate.add_s_alpha_beta('c_H_in_H2O') bot_nozzle = openmc.Material(name='Bottom nozzle region', material_id=9) @@ -216,7 +216,7 @@ class InputSet(object): bot_nozzle.add_nuclide("Cr52", 0.124142524198, 'wo') bot_nozzle.add_nuclide("Cr53", 0.014348496148, 'wo') bot_nozzle.add_nuclide("Cr54", 0.003638294506, 'wo') - bot_nozzle.add_s_alpha_beta('c_H_in_H2O', '71t') + bot_nozzle.add_s_alpha_beta('c_H_in_H2O') top_nozzle = openmc.Material(name='Top nozzle region', material_id=10) top_nozzle.set_density('g/cm3', 1.746) @@ -241,7 +241,7 @@ class InputSet(object): top_nozzle.add_nuclide("Cr52", 0.107931450781, 'wo') top_nozzle.add_nuclide("Cr53", 0.012474806806, 'wo') top_nozzle.add_nuclide("Cr54", 0.003163190107, 'wo') - top_nozzle.add_s_alpha_beta('c_H_in_H2O', '71t') + top_nozzle.add_s_alpha_beta('c_H_in_H2O') top_fa = openmc.Material(name='Top of fuel assemblies', material_id=11) top_fa.set_density('g/cm3', 3.044) @@ -254,7 +254,7 @@ class InputSet(object): top_fa.add_nuclide("Zr92", 0.14759527104, 'wo') top_fa.add_nuclide("Zr94", 0.15280552077, 'wo') top_fa.add_nuclide("Zr96", 0.02511169542, 'wo') - top_fa.add_s_alpha_beta('c_H_in_H2O', '71t') + top_fa.add_s_alpha_beta('c_H_in_H2O') bot_fa = openmc.Material(name='Bottom of fuel assemblies', material_id=12) @@ -268,10 +268,10 @@ class InputSet(object): bot_fa.add_nuclide("Zr92", 0.1274914944, 'wo') bot_fa.add_nuclide("Zr94", 0.1319920622, 'wo') bot_fa.add_nuclide("Zr96", 0.0216912612, 'wo') - bot_fa.add_s_alpha_beta('c_H_in_H2O', '71t') + bot_fa.add_s_alpha_beta('c_H_in_H2O') # Define the materials file. - self.materials.default_xs = '71c' + self.materials.default_temperature = '294K' self.materials += (fuel, clad, cold_water, hot_water, rpv_steel, lower_rad_ref, upper_rad_ref, bot_plate, bot_nozzle, top_nozzle, top_fa, bot_fa) @@ -612,10 +612,10 @@ class PinCellInputSet(object): hot_water.add_nuclide("O16", 2.4672e-2) hot_water.add_nuclide("B10", 8.0042e-6) hot_water.add_nuclide("B11", 3.2218e-5) - hot_water.add_s_alpha_beta('c_H_in_H2O', '71t') + hot_water.add_s_alpha_beta('c_H_in_H2O') # Define the materials file. - self.materials.default_xs = '71c' + self.materials.default_temperature = '294K' self.materials += (fuel, clad, hot_water) # Instantiate ZCylinder surfaces @@ -714,10 +714,10 @@ class AssemblyInputSet(object): hot_water.add_nuclide("O16", 2.4672e-2) hot_water.add_nuclide("B10", 8.0042e-6) hot_water.add_nuclide("B11", 3.2218e-5) - hot_water.add_s_alpha_beta('c_H_in_H2O', '71t') + hot_water.add_s_alpha_beta('c_H_in_H2O') # Define the materials file. - self.materials.default_xs = '71c' + self.materials.default_temperature = '294K' self.materials += (fuel, clad, hot_water) # Instantiate ZCylinder surfaces @@ -845,7 +845,7 @@ class MGInputSet(InputSet): water.add_macroscopic(water_data) # Define the materials file. - self.materials.default_xs = '71c' + self.materials.default_temperature = '294K' self.materials += (uo2, clad, water) # Define surfaces. From cd95667292ed23efaff5597204376b1e3f6f272b Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 21 Aug 2016 20:40:47 -0400 Subject: [PATCH 317/417] Updated to get significantly higher tets passage rate. Still have more work to do in a few key areas. --- examples/python/boxes/build-xml.py | 4 +- .../python/lattice/hexagonal/build-xml.py | 4 +- examples/python/lattice/nested/build-xml.py | 4 +- examples/python/lattice/simple/build-xml.py | 4 +- examples/python/pincell/build-xml.py | 4 +- examples/python/reflective/build-xml.py | 2 +- examples/xml/basic/materials.xml | 4 +- examples/xml/boxes/materials.xml | 4 +- examples/xml/lattice/nested/materials.xml | 4 +- examples/xml/lattice/simple/materials.xml | 4 +- examples/xml/pincell/materials.xml | 6 +- examples/xml/reflective/materials.xml | 2 +- openmc/summary.py | 12 +- src/input_xml.F90 | 2 +- src/summary.F90 | 15 +- tests/test_asymmetric_lattice/inputs_true.dat | 2 +- tests/test_cmfd_feed/materials.xml | 8 +- tests/test_cmfd_nofeed/materials.xml | 8 +- tests/test_complex_cell/materials.xml | 2 +- tests/test_confidence_intervals/materials.xml | 3 +- tests/test_density/materials.xml | 14 +- tests/test_distribmat/inputs_true.dat | 2 +- tests/test_distribmat/test_distribmat.py | 2 +- .../test_eigenvalue_genperbatch/materials.xml | 4 +- .../test_eigenvalue_no_inactive/materials.xml | 4 +- tests/test_energy_grid/materials.xml | 8 +- tests/test_energy_laws/materials.xml | 2 +- tests/test_entropy/materials.xml | 4 +- .../case-1/materials.xml | 2 +- .../case-2/materials.xml | 2 +- .../case-3/materials.xml | 2 +- .../case-4/materials.xml | 27 ++-- tests/test_filter_mesh_2d/materials.xml | 20 +-- tests/test_filter_mesh_3d/materials.xml | 20 +-- tests/test_fixed_source/materials.xml | 6 +- tests/test_infinite_cell/materials.xml | 6 +- tests/test_iso_in_lab/inputs_true.dat | 2 +- tests/test_lattice/materials.xml | 14 +- tests/test_lattice_hex/materials.xml | 38 ++--- tests/test_lattice_mixed/materials.xml | 38 ++--- tests/test_lattice_multiple/materials.xml | 20 +-- tests/test_mg_nuclide/inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_mesh/inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- tests/test_multipole/inputs_true.dat | 2 +- tests/test_multipole/test_multipole.py | 2 +- tests/test_natural_element/materials.xml | 2 +- tests/test_output/materials.xml | 4 +- .../materials.xml | 4 +- .../test_particle_restart_fixed/materials.xml | 4 +- tests/test_periodic/test_periodic.py | 4 +- tests/test_plot/materials.xml | 8 +- tests/test_ptables_off/materials.xml | 4 +- tests/test_quadric_surfaces/materials.xml | 6 +- tests/test_reflective_plane/materials.xml | 4 +- tests/test_rotation/materials.xml | 4 +- tests/test_salphabeta/materials.xml | 14 +- tests/test_score_current/materials.xml | 20 +-- tests/test_seed/materials.xml | 4 +- tests/test_source/test_source.py | 4 +- tests/test_source_file/materials.xml | 4 +- tests/test_sourcepoint_batch/materials.xml | 4 +- tests/test_sourcepoint_interval/materials.xml | 4 +- tests/test_sourcepoint_latest/materials.xml | 4 +- tests/test_sourcepoint_restart/materials.xml | 4 +- tests/test_statepoint_batch/materials.xml | 4 +- tests/test_statepoint_interval/materials.xml | 4 +- tests/test_statepoint_restart/materials.xml | 4 +- tests/test_statepoint_sourcesep/materials.xml | 4 +- tests/test_survival_biasing/materials.xml | 6 +- tests/test_tallies/inputs_true.dat | 2 +- tests/test_tally_aggregation/inputs_true.dat | 2 +- tests/test_tally_arithmetic/inputs_true.dat | 2 +- tests/test_tally_assumesep/materials.xml | 20 +-- tests/test_tally_nuclides/materials.xml | 2 +- tests/test_tally_slice_merge/inputs_true.dat | 2 +- tests/test_trace/materials.xml | 4 +- tests/test_track_output/materials.xml | 136 +++++++++--------- tests/test_translation/materials.xml | 4 +- .../test_trigger_batch_interval/materials.xml | 2 +- .../materials.xml | 2 +- tests/test_trigger_no_status/materials.xml | 2 +- tests/test_trigger_tallies/materials.xml | 2 +- tests/test_triso/test_triso.py | 10 +- tests/test_uniform_fs/materials.xml | 4 +- tests/test_union_energy_grids/materials.xml | 8 +- tests/test_universe/materials.xml | 4 +- tests/test_void/materials.xml | 4 +- tests/test_volume_calc/test_volume_calc.py | 4 +- 94 files changed, 385 insertions(+), 314 deletions(-) diff --git a/examples/python/boxes/build-xml.py b/examples/python/boxes/build-xml.py index 3eed4059c1..175d3f5113 100644 --- a/examples/python/boxes/build-xml.py +++ b/examples/python/boxes/build-xml.py @@ -34,11 +34,11 @@ moderator = openmc.Material(material_id=3, name='moderator') moderator.set_density('g/cc', 1.0) moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) -moderator.add_s_alpha_beta('c_H_in_H2O', '71t') +moderator.add_s_alpha_beta('c_H_in_H2O') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([fuel1, fuel2, moderator]) -materials_file.default_xs = '71c' +materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index ba2cac3670..b131e9dea2 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -29,7 +29,7 @@ moderator = openmc.Material(material_id=2, name='moderator') moderator.set_density('g/cc', 1.0) moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) -moderator.add_s_alpha_beta('c_H_in_H2O', '71t') +moderator.add_s_alpha_beta('c_H_in_H2O') iron = openmc.Material(material_id=3, name='iron') iron.set_density('g/cc', 7.9) @@ -37,7 +37,7 @@ iron.add_nuclide(fe56, 1.) # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([moderator, fuel, iron]) -materials_file.default_xs = '71c' +materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index edf3ad7b19..59962c2c30 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -28,11 +28,11 @@ moderator = openmc.Material(material_id=2, name='moderator') moderator.set_density('g/cc', 1.0) moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) -moderator.add_s_alpha_beta('c_H_in_H2O', '71t') +moderator.add_s_alpha_beta('c_H_in_H2O') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials((moderator, fuel)) -materials_file.default_xs = '71c' +materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index 5ec1b7ee9f..ad1c465d43 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -28,11 +28,11 @@ moderator = openmc.Material(material_id=2, name='moderator') moderator.set_density('g/cc', 1.0) moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) -moderator.add_s_alpha_beta('c_H_in_H2O', '71t') +moderator.add_s_alpha_beta('c_H_in_H2O') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([moderator, fuel]) -materials_file.default_xs = '71c' +materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index 3bda050276..a11ddb7cdc 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -98,11 +98,11 @@ borated_water.add_nuclide(h1, 4.9457e-2) borated_water.add_nuclide(h2, 7.4196e-6) borated_water.add_nuclide(o16, 2.4672e-2) borated_water.add_nuclide(o17, 6.0099e-5) -borated_water.add_s_alpha_beta('c_H_in_H2O', '71t') +borated_water.add_s_alpha_beta('c_H_in_H2O') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([uo2, helium, zircaloy, borated_water]) -materials_file.default_xs = '71c' +materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/reflective/build-xml.py b/examples/python/reflective/build-xml.py index 0e064ab610..098fa8620e 100644 --- a/examples/python/reflective/build-xml.py +++ b/examples/python/reflective/build-xml.py @@ -25,7 +25,7 @@ fuel.add_nuclide(u235, 1.) # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([fuel]) -materials_file.default_xs = '71c' +materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/xml/basic/materials.xml b/examples/xml/basic/materials.xml index 573b96cb2b..b7bc2e4e5a 100644 --- a/examples/xml/basic/materials.xml +++ b/examples/xml/basic/materials.xml @@ -1,12 +1,11 @@ - 71c + 294K - 294K @@ -14,7 +13,6 @@ - 294K diff --git a/examples/xml/boxes/materials.xml b/examples/xml/boxes/materials.xml index c74714a085..417fb83ba5 100644 --- a/examples/xml/boxes/materials.xml +++ b/examples/xml/boxes/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K @@ -17,7 +17,7 @@ - + diff --git a/examples/xml/lattice/nested/materials.xml b/examples/xml/lattice/nested/materials.xml index 7f8b06bb10..ddd932fcbc 100644 --- a/examples/xml/lattice/nested/materials.xml +++ b/examples/xml/lattice/nested/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K @@ -13,7 +13,7 @@ - + diff --git a/examples/xml/lattice/simple/materials.xml b/examples/xml/lattice/simple/materials.xml index 7f8b06bb10..ddd932fcbc 100644 --- a/examples/xml/lattice/simple/materials.xml +++ b/examples/xml/lattice/simple/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K @@ -13,7 +13,7 @@ - + diff --git a/examples/xml/pincell/materials.xml b/examples/xml/pincell/materials.xml index b6af486d14..020c0e676b 100644 --- a/examples/xml/pincell/materials.xml +++ b/examples/xml/pincell/materials.xml @@ -1,8 +1,8 @@ - - 71c + + 294K - - - + + + diff --git a/tests/test_cmfd_nofeed/materials.xml b/tests/test_cmfd_nofeed/materials.xml index 8f32169d92..f773d83d04 100644 --- a/tests/test_cmfd_nofeed/materials.xml +++ b/tests/test_cmfd_nofeed/materials.xml @@ -1,12 +1,14 @@ +294K + - - - + + + diff --git a/tests/test_complex_cell/materials.xml b/tests/test_complex_cell/materials.xml index a9e69b8bc6..857626d5a6 100644 --- a/tests/test_complex_cell/materials.xml +++ b/tests/test_complex_cell/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K diff --git a/tests/test_confidence_intervals/materials.xml b/tests/test_confidence_intervals/materials.xml index 23d7f969db..e1124a3038 100644 --- a/tests/test_confidence_intervals/materials.xml +++ b/tests/test_confidence_intervals/materials.xml @@ -2,8 +2,9 @@ + 294K - + diff --git a/tests/test_density/materials.xml b/tests/test_density/materials.xml index c474c5c65c..53a7b0fcbb 100644 --- a/tests/test_density/materials.xml +++ b/tests/test_density/materials.xml @@ -1,26 +1,28 @@ + 294K + - + - + - + - - - + + + diff --git a/tests/test_distribmat/inputs_true.dat b/tests/test_distribmat/inputs_true.dat index 1212a28e59..d21da2f894 100644 --- a/tests/test_distribmat/inputs_true.dat +++ b/tests/test_distribmat/inputs_true.dat @@ -1 +1 @@ -46df57157980545d90b482acfb01f525b84c0e623fa93a5d9c08a65723d677ef1c092360219a3c7fcf5110c6ba32f1eacbd5c5eaed40be4bfe154f302400c0a4 \ No newline at end of file +6ae54c198e7659503d297e40be746a5bd72b35909fceed4b3ef357876b781946c0ea5021342556ef21f4034fa9e42b2c6014077c0efd3459dc063e6da4b12b59 \ No newline at end of file diff --git a/tests/test_distribmat/test_distribmat.py b/tests/test_distribmat/test_distribmat.py index a8d013996e..29c5d638f3 100644 --- a/tests/test_distribmat/test_distribmat.py +++ b/tests/test_distribmat/test_distribmat.py @@ -29,7 +29,7 @@ class DistribmatTestHarness(PyAPITestHarness): light_fuel.add_nuclide('U235', 1.0) mats_file = openmc.Materials([moderator, dense_fuel, light_fuel]) - mats_file.default_xs = '71c' + mats_file.default_temperature = '294K' mats_file.export_to_xml() diff --git a/tests/test_eigenvalue_genperbatch/materials.xml b/tests/test_eigenvalue_genperbatch/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_eigenvalue_genperbatch/materials.xml +++ b/tests/test_eigenvalue_genperbatch/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_eigenvalue_no_inactive/materials.xml b/tests/test_eigenvalue_no_inactive/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_eigenvalue_no_inactive/materials.xml +++ b/tests/test_eigenvalue_no_inactive/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_energy_grid/materials.xml b/tests/test_energy_grid/materials.xml index ed9b38d901..2946a8d609 100644 --- a/tests/test_energy_grid/materials.xml +++ b/tests/test_energy_grid/materials.xml @@ -1,11 +1,13 @@ + 294K + - - - + + + diff --git a/tests/test_energy_laws/materials.xml b/tests/test_energy_laws/materials.xml index c70e071cff..e7acd32e2b 100644 --- a/tests/test_energy_laws/materials.xml +++ b/tests/test_energy_laws/materials.xml @@ -1,6 +1,6 @@ - 71c + 294K diff --git a/tests/test_entropy/materials.xml b/tests/test_entropy/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_entropy/materials.xml +++ b/tests/test_entropy/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_filter_distribcell/case-1/materials.xml b/tests/test_filter_distribcell/case-1/materials.xml index 891cc9fd0e..afd4b05b76 100644 --- a/tests/test_filter_distribcell/case-1/materials.xml +++ b/tests/test_filter_distribcell/case-1/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K diff --git a/tests/test_filter_distribcell/case-2/materials.xml b/tests/test_filter_distribcell/case-2/materials.xml index 891cc9fd0e..afd4b05b76 100644 --- a/tests/test_filter_distribcell/case-2/materials.xml +++ b/tests/test_filter_distribcell/case-2/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K diff --git a/tests/test_filter_distribcell/case-3/materials.xml b/tests/test_filter_distribcell/case-3/materials.xml index 6a5916a837..f03693e524 100644 --- a/tests/test_filter_distribcell/case-3/materials.xml +++ b/tests/test_filter_distribcell/case-3/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K diff --git a/tests/test_filter_distribcell/case-4/materials.xml b/tests/test_filter_distribcell/case-4/materials.xml index ab9f8688ed..15cf0c54b9 100644 --- a/tests/test_filter_distribcell/case-4/materials.xml +++ b/tests/test_filter_distribcell/case-4/materials.xml @@ -1,18 +1,21 @@ - 71c - - - + 294K + + + + - - - - - + + + + + + - - - + + + + diff --git a/tests/test_filter_mesh_2d/materials.xml b/tests/test_filter_mesh_2d/materials.xml index f5a9e61bea..bead58f8b2 100644 --- a/tests/test_filter_mesh_2d/materials.xml +++ b/tests/test_filter_mesh_2d/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K @@ -59,7 +59,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -155,7 +155,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -209,7 +209,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -251,7 +251,7 @@ - + @@ -266,7 +266,7 @@ - + diff --git a/tests/test_filter_mesh_3d/materials.xml b/tests/test_filter_mesh_3d/materials.xml index f5a9e61bea..bead58f8b2 100644 --- a/tests/test_filter_mesh_3d/materials.xml +++ b/tests/test_filter_mesh_3d/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K @@ -59,7 +59,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -155,7 +155,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -209,7 +209,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -251,7 +251,7 @@ - + @@ -266,7 +266,7 @@ - + diff --git a/tests/test_fixed_source/materials.xml b/tests/test_fixed_source/materials.xml index 6c52b25015..cfd0efd6c3 100644 --- a/tests/test_fixed_source/materials.xml +++ b/tests/test_fixed_source/materials.xml @@ -1,10 +1,12 @@ + 294K + - - + + diff --git a/tests/test_infinite_cell/materials.xml b/tests/test_infinite_cell/materials.xml index 1c2d649420..8bd6c820b3 100644 --- a/tests/test_infinite_cell/materials.xml +++ b/tests/test_infinite_cell/materials.xml @@ -1,14 +1,16 @@ + 294K + - + - + diff --git a/tests/test_iso_in_lab/inputs_true.dat b/tests/test_iso_in_lab/inputs_true.dat index 34f522872e..0298e581c6 100644 --- a/tests/test_iso_in_lab/inputs_true.dat +++ b/tests/test_iso_in_lab/inputs_true.dat @@ -1 +1 @@ -c05fdb7815ccc1dcd2f260429b9139ad96ad4a7d1643e2bb938e3cd61268451363538ef4e41c5eaf73a64dbace43b2bd4489d5ff012a33104c2c1d6fa61146eb \ No newline at end of file +a84e601e6ba0891aaeaa37b1aa55076fecee598bb46be2b99dcdedab597b5d7e1731e2a0dc265df2ad6f475e33dae91a3cc27bc23d0c37be25a097ea83e74fd6 \ No newline at end of file diff --git a/tests/test_lattice/materials.xml b/tests/test_lattice/materials.xml index 67240c4c9d..91772da798 100644 --- a/tests/test_lattice/materials.xml +++ b/tests/test_lattice/materials.xml @@ -10,7 +10,7 @@ =============================================================== --> - 71c + 294K @@ -27,7 +27,7 @@ - + @@ -37,7 +37,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -88,9 +88,9 @@ - + - + @@ -128,7 +128,7 @@ - + diff --git a/tests/test_lattice_hex/materials.xml b/tests/test_lattice_hex/materials.xml index 92d10fa815..90b79b7b49 100644 --- a/tests/test_lattice_hex/materials.xml +++ b/tests/test_lattice_hex/materials.xml @@ -1,42 +1,44 @@ + 294K + - - - + + + - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + diff --git a/tests/test_lattice_mixed/materials.xml b/tests/test_lattice_mixed/materials.xml index 92d10fa815..90b79b7b49 100644 --- a/tests/test_lattice_mixed/materials.xml +++ b/tests/test_lattice_mixed/materials.xml @@ -1,42 +1,44 @@ + 294K + - - - + + + - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + diff --git a/tests/test_lattice_multiple/materials.xml b/tests/test_lattice_multiple/materials.xml index f5a9e61bea..bead58f8b2 100644 --- a/tests/test_lattice_multiple/materials.xml +++ b/tests/test_lattice_multiple/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K @@ -59,7 +59,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -155,7 +155,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -209,7 +209,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -251,7 +251,7 @@ - + @@ -266,7 +266,7 @@ - + diff --git a/tests/test_mg_nuclide/inputs_true.dat b/tests/test_mg_nuclide/inputs_true.dat index e0af3352b2..18811f2854 100644 --- a/tests/test_mg_nuclide/inputs_true.dat +++ b/tests/test_mg_nuclide/inputs_true.dat @@ -1 +1 @@ -0efba3dd7882fdd38756d0a8f01ff00d7a1abdaab6430b3f090f3339e552448453bbb733852b6bd6ff09608d923c282f168320f942fc2eb3a45610873c588734 \ No newline at end of file +be296da93031694b2915e1a10e3e6fd663d612cdd29a84745e3ccb0065c088b4bcda45f6919962f6ee784efe52ebe178bf7d3ce019859637ae57c2da1e240a04 \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat index 332c2df5fd..e48c50d0a0 100644 --- a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -1 +1 @@ -fb9c9180f692198548ca14543b29a8b623b382a19932999b2140ca4dd440f2102ba2fdbcb500ede3b8829aa85e1b4498151d280f1422d2d6b1bb5789aff34d71 \ No newline at end of file +a33f770307b365103c5d71aa3e70deebd78d3a2fa90e88632641c1a40d64d19de0ce3c95c858aedf3beccc5de64cac434e1cd55b2b162ed315c78450c53a24a4 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index e58015868a..c261a0edea 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -08c5f1c783dd88c5fed51c054718ca09fc4e99aa4560a6f928b3902991948f3a878d055ac46c07548904285c2c5f22dc2a3d8c1bb82b8e73d76dd790820117df \ No newline at end of file +df2e5370925785e061e094561e9d2048c3104aaecf533ee9590a187d4597e53b489fb6e8cc54ed878f7d313bcf00586edceae4ff712c837faaa5ddab0ad378b3 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 924c53838f..2ca1810e97 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -9ce3d6987d67e92b0924916bb54288429d2bd6dfd12a69f86c5dbefb407f7eb72adb0e44d558c09e9a39610ffeb651aee4aedc629cf3a28a181d62ca4cfbcd5a \ No newline at end of file +687358da3e7d658b6187e1d76280437d5b1a97a7ca3920483792e74de6fa9556fa86f4d55150c03d8628b3aa424afa187d8745f087f252ad0fca44ccc2a85f4c \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index e58015868a..c261a0edea 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -08c5f1c783dd88c5fed51c054718ca09fc4e99aa4560a6f928b3902991948f3a878d055ac46c07548904285c2c5f22dc2a3d8c1bb82b8e73d76dd790820117df \ No newline at end of file +df2e5370925785e061e094561e9d2048c3104aaecf533ee9590a187d4597e53b489fb6e8cc54ed878f7d313bcf00586edceae4ff712c837faaa5ddab0ad378b3 \ No newline at end of file diff --git a/tests/test_mgxs_library_mesh/inputs_true.dat b/tests/test_mgxs_library_mesh/inputs_true.dat index f62e0aa05e..4cebb274ec 100644 --- a/tests/test_mgxs_library_mesh/inputs_true.dat +++ b/tests/test_mgxs_library_mesh/inputs_true.dat @@ -1 +1 @@ -5f167bdd4d6ae5873d48483e85aceaec8a934239ed5a50ef6f6500ce204f5851ae330621a5007f3b3d6bdab49f2cd627d011c1f6e6983fec958a6984eb9cb7ca \ No newline at end of file +7f3aec9cedab76262de3706427ccba88b4c81fd4c9a033ff5467671ca21abe13b3981100d688502818bdd0534db22438970b02d652ca9d105557276de2d2a550 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index e58015868a..c261a0edea 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -08c5f1c783dd88c5fed51c054718ca09fc4e99aa4560a6f928b3902991948f3a878d055ac46c07548904285c2c5f22dc2a3d8c1bb82b8e73d76dd790820117df \ No newline at end of file +df2e5370925785e061e094561e9d2048c3104aaecf533ee9590a187d4597e53b489fb6e8cc54ed878f7d313bcf00586edceae4ff712c837faaa5ddab0ad378b3 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index a15bbee4c8..f3c25d4d50 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -e4a5f03ab6167e96462c4ef537533fe33b98d7878ae00824c5619356bda8d548b3c71af01ba8c88d5a9b46dd1471d331e6f678a164af922200f2ee3642be6340 \ No newline at end of file +332fd9ff1ca576410ffc6c0f3f03c00618fc863509dc3725f2f3a82134e2400de9c1edf2adc68cb8bce528789094f8eb468371e65cbc13efe76d76467ef291d9 \ No newline at end of file diff --git a/tests/test_multipole/inputs_true.dat b/tests/test_multipole/inputs_true.dat index 801536d07e..f99b29e8ed 100644 --- a/tests/test_multipole/inputs_true.dat +++ b/tests/test_multipole/inputs_true.dat @@ -1 +1 @@ -c727431ebef7a5987dade28f4cd940c566142f97b5ce01fbf9343d680caf9056623f0fac550db64f8f1043fa2cd8230155cfcbbcaffd1ae92cede723974596d7 \ No newline at end of file +54044104d26e9aa90abcdb62290b598bd6ef0d46c3a9e509726ae7b20a7155471edd3e942b71f07b5c855ac1e451d58913a2f43fa971a8c4d56e569ae3b401ed \ No newline at end of file diff --git a/tests/test_multipole/test_multipole.py b/tests/test_multipole/test_multipole.py index bd6822bdf5..812f5b6d0f 100644 --- a/tests/test_multipole/test_multipole.py +++ b/tests/test_multipole/test_multipole.py @@ -24,7 +24,7 @@ class MultipoleTestHarness(PyAPITestHarness): dense_fuel.add_nuclide('U235', 1.0) mats_file = openmc.Materials([moderator, dense_fuel]) - mats_file.default_xs = '71c' + mats_file.default_temperature = '294K' mats_file.export_to_xml() diff --git a/tests/test_natural_element/materials.xml b/tests/test_natural_element/materials.xml index 60d60b81ff..543b5351d8 100644 --- a/tests/test_natural_element/materials.xml +++ b/tests/test_natural_element/materials.xml @@ -3,7 +3,7 @@ - 71c + 294K diff --git a/tests/test_output/materials.xml b/tests/test_output/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_output/materials.xml +++ b/tests/test_output/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_particle_restart_eigval/materials.xml b/tests/test_particle_restart_eigval/materials.xml index 5ff4b736f5..301efd2bd1 100644 --- a/tests/test_particle_restart_eigval/materials.xml +++ b/tests/test_particle_restart_eigval/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_particle_restart_fixed/materials.xml b/tests/test_particle_restart_fixed/materials.xml index f132f97630..95afc39990 100644 --- a/tests/test_particle_restart_fixed/materials.xml +++ b/tests/test_particle_restart_fixed/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_periodic/test_periodic.py b/tests/test_periodic/test_periodic.py index 0260711043..3883654c13 100644 --- a/tests/test_periodic/test_periodic.py +++ b/tests/test_periodic/test_periodic.py @@ -13,7 +13,7 @@ class PeriodicTest(PyAPITestHarness): water = openmc.Material(1) water.add_nuclide('H1', 2.0) water.add_nuclide('O16', 1.0) - water.add_s_alpha_beta('c_H_in_H2O', '71t') + water.add_s_alpha_beta('c_H_in_H2O') water.set_density('g/cc', 1.0) fuel = openmc.Material(2) @@ -21,7 +21,7 @@ class PeriodicTest(PyAPITestHarness): fuel.set_density('g/cc', 4.5) materials = openmc.Materials((water, fuel)) - materials.default_xs = '71c' + materials.default_temperature = '294K' materials.export_to_xml() # Define geometry diff --git a/tests/test_plot/materials.xml b/tests/test_plot/materials.xml index 826f670a48..0d5ee77cef 100644 --- a/tests/test_plot/materials.xml +++ b/tests/test_plot/materials.xml @@ -1,19 +1,21 @@ + 294K + - + - + - + diff --git a/tests/test_ptables_off/materials.xml b/tests/test_ptables_off/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_ptables_off/materials.xml +++ b/tests/test_ptables_off/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_quadric_surfaces/materials.xml b/tests/test_quadric_surfaces/materials.xml index 606253bec0..baf523b34c 100644 --- a/tests/test_quadric_surfaces/materials.xml +++ b/tests/test_quadric_surfaces/materials.xml @@ -1,10 +1,12 @@ + 294K + - - + + diff --git a/tests/test_reflective_plane/materials.xml b/tests/test_reflective_plane/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_reflective_plane/materials.xml +++ b/tests/test_reflective_plane/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_rotation/materials.xml b/tests/test_rotation/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_rotation/materials.xml +++ b/tests/test_rotation/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_salphabeta/materials.xml b/tests/test_salphabeta/materials.xml index 2bc401e49c..0d250e7b47 100644 --- a/tests/test_salphabeta/materials.xml +++ b/tests/test_salphabeta/materials.xml @@ -1,20 +1,20 @@ - 71c + 294K - + - + @@ -22,8 +22,8 @@ - - + + @@ -36,8 +36,8 @@ - - + + diff --git a/tests/test_score_current/materials.xml b/tests/test_score_current/materials.xml index f5a9e61bea..bead58f8b2 100644 --- a/tests/test_score_current/materials.xml +++ b/tests/test_score_current/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K @@ -59,7 +59,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -155,7 +155,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -209,7 +209,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -251,7 +251,7 @@ - + @@ -266,7 +266,7 @@ - + diff --git a/tests/test_seed/materials.xml b/tests/test_seed/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_seed/materials.xml +++ b/tests/test_seed/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_source/test_source.py b/tests/test_source/test_source.py index 09a13efaae..f83e39974c 100644 --- a/tests/test_source/test_source.py +++ b/tests/test_source/test_source.py @@ -13,9 +13,9 @@ import openmc class SourceTestHarness(PyAPITestHarness): def _build_inputs(self): - mat1 = openmc.Material(material_id=1) + mat1 = openmc.Material(material_id=1, temperature='294K') mat1.set_density('g/cm3', 4.5) - mat1.add_nuclide(openmc.Nuclide('U235', '71c'), 1.0) + mat1.add_nuclide(openmc.Nuclide('U235'), 1.0) materials = openmc.Materials([mat1]) materials.export_to_xml() diff --git a/tests/test_source_file/materials.xml b/tests/test_source_file/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_source_file/materials.xml +++ b/tests/test_source_file/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_sourcepoint_batch/materials.xml b/tests/test_sourcepoint_batch/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_sourcepoint_batch/materials.xml +++ b/tests/test_sourcepoint_batch/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_sourcepoint_interval/materials.xml b/tests/test_sourcepoint_interval/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_sourcepoint_interval/materials.xml +++ b/tests/test_sourcepoint_interval/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_sourcepoint_latest/materials.xml b/tests/test_sourcepoint_latest/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_sourcepoint_latest/materials.xml +++ b/tests/test_sourcepoint_latest/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_sourcepoint_restart/materials.xml b/tests/test_sourcepoint_restart/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_sourcepoint_restart/materials.xml +++ b/tests/test_sourcepoint_restart/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_statepoint_batch/materials.xml b/tests/test_statepoint_batch/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_statepoint_batch/materials.xml +++ b/tests/test_statepoint_batch/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_statepoint_interval/materials.xml b/tests/test_statepoint_interval/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_statepoint_interval/materials.xml +++ b/tests/test_statepoint_interval/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_statepoint_restart/materials.xml b/tests/test_statepoint_restart/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_statepoint_restart/materials.xml +++ b/tests/test_statepoint_restart/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_statepoint_sourcesep/materials.xml b/tests/test_statepoint_sourcesep/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_statepoint_sourcesep/materials.xml +++ b/tests/test_statepoint_sourcesep/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_survival_biasing/materials.xml b/tests/test_survival_biasing/materials.xml index facad016bf..03b2162b3b 100644 --- a/tests/test_survival_biasing/materials.xml +++ b/tests/test_survival_biasing/materials.xml @@ -1,10 +1,12 @@ + 294K + - - + + diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index f5390eea12..196925c387 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -1bef757d276362fdcd9405096b4cdcbd894f9215ed406493486a45193729be446c9a12242c887f89b6e209ec5beaaacb04dee2fd61e72b4f5c6a8712b776ed6e \ No newline at end of file +11adb9111f20950e28b1c1929ee4ca0c9a6b2524de89bef44a495b2fe8cda3a2acac9e87d64ddb5eba591c8d22289956cb1f024d31e05da3c9a4162b8c589d85 \ No newline at end of file diff --git a/tests/test_tally_aggregation/inputs_true.dat b/tests/test_tally_aggregation/inputs_true.dat index 9c79787555..fa61e20b78 100644 --- a/tests/test_tally_aggregation/inputs_true.dat +++ b/tests/test_tally_aggregation/inputs_true.dat @@ -1 +1 @@ -67daf0d74cddb40ecbbc7e3793a3302866adcb1617fe2dc454dd161c06105e65027523f5e5954d80b961ba6c6abf14114b8be5c4d5b7682eaddffc1288d3e7c8 \ No newline at end of file +bc17ba12ee5de7e6b0226e589be9044af725ff4e27683b765a9c75e5629176b5ca51d1e0306028ae90185d64644babf9ac22e4753f092b4b836790f4e162f9d0 \ No newline at end of file diff --git a/tests/test_tally_arithmetic/inputs_true.dat b/tests/test_tally_arithmetic/inputs_true.dat index b56c17b6b6..56798828c6 100644 --- a/tests/test_tally_arithmetic/inputs_true.dat +++ b/tests/test_tally_arithmetic/inputs_true.dat @@ -1 +1 @@ -c8772a174e2162030f0315a318991085f1a5c0b054883a5f071d520e34f9ecf7d309f25700067bea8685e2b6324a19a003bd6f6ab38161ee87c95257b5a6ae69 \ No newline at end of file +6b59ea3a0dc0d25c590f724b8c051a54e8d7836467ba31b7da72b0574398e6c73160a180524952ea983b0e7a7de776d2d7102d280d5a4e7e3624bd76f6f42a09 \ No newline at end of file diff --git a/tests/test_tally_assumesep/materials.xml b/tests/test_tally_assumesep/materials.xml index f5a9e61bea..bead58f8b2 100644 --- a/tests/test_tally_assumesep/materials.xml +++ b/tests/test_tally_assumesep/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K @@ -59,7 +59,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -155,7 +155,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -209,7 +209,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -251,7 +251,7 @@ - + @@ -266,7 +266,7 @@ - + diff --git a/tests/test_tally_nuclides/materials.xml b/tests/test_tally_nuclides/materials.xml index e9667b41f4..5ac4f69424 100644 --- a/tests/test_tally_nuclides/materials.xml +++ b/tests/test_tally_nuclides/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K diff --git a/tests/test_tally_slice_merge/inputs_true.dat b/tests/test_tally_slice_merge/inputs_true.dat index 16d11b6d2b..a40c0a01df 100644 --- a/tests/test_tally_slice_merge/inputs_true.dat +++ b/tests/test_tally_slice_merge/inputs_true.dat @@ -1 +1 @@ -a17354ce54bcb5ce93e861ae95fd932c45fe60c733d999aa180d5dee636f43130fac5b003c615e23c65d44fe55f376ef4c86596b78603ab217d7e37fd694074d \ No newline at end of file +6d9ebab08ccce003e6128c6346ffd80e69a957fab15e9a0e211771efa68b24f276e62781f8471c72072f9017380d7e821c38002c03689993efed45db9590c039 \ No newline at end of file diff --git a/tests/test_trace/materials.xml b/tests/test_trace/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_trace/materials.xml +++ b/tests/test_trace/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_track_output/materials.xml b/tests/test_track_output/materials.xml index 017797aa1e..f31f61fc3c 100644 --- a/tests/test_track_output/materials.xml +++ b/tests/test_track_output/materials.xml @@ -1,95 +1,97 @@ + 294K + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + diff --git a/tests/test_translation/materials.xml b/tests/test_translation/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_translation/materials.xml +++ b/tests/test_translation/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_trigger_batch_interval/materials.xml b/tests/test_trigger_batch_interval/materials.xml index e9667b41f4..5ac4f69424 100644 --- a/tests/test_trigger_batch_interval/materials.xml +++ b/tests/test_trigger_batch_interval/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K diff --git a/tests/test_trigger_no_batch_interval/materials.xml b/tests/test_trigger_no_batch_interval/materials.xml index e9667b41f4..5ac4f69424 100644 --- a/tests/test_trigger_no_batch_interval/materials.xml +++ b/tests/test_trigger_no_batch_interval/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K diff --git a/tests/test_trigger_no_status/materials.xml b/tests/test_trigger_no_status/materials.xml index e9667b41f4..5ac4f69424 100644 --- a/tests/test_trigger_no_status/materials.xml +++ b/tests/test_trigger_no_status/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K diff --git a/tests/test_trigger_tallies/materials.xml b/tests/test_trigger_tallies/materials.xml index e9667b41f4..5ac4f69424 100644 --- a/tests/test_trigger_tallies/materials.xml +++ b/tests/test_trigger_tallies/materials.xml @@ -1,7 +1,7 @@ - 71c + 294K diff --git a/tests/test_triso/test_triso.py b/tests/test_triso/test_triso.py index 9a8fb0c3be..04bd1322a9 100644 --- a/tests/test_triso/test_triso.py +++ b/tests/test_triso/test_triso.py @@ -27,12 +27,12 @@ class TRISOTestHarness(PyAPITestHarness): porous_carbon = openmc.Material() porous_carbon.set_density('g/cm3', 1.0) porous_carbon.add_nuclide('C0', 1.0) - porous_carbon.add_s_alpha_beta('c_Graphite', '71t') + porous_carbon.add_s_alpha_beta('c_Graphite') ipyc = openmc.Material() ipyc.set_density('g/cm3', 1.90) ipyc.add_nuclide('C0', 1.0) - ipyc.add_s_alpha_beta('c_Graphite', '71t') + ipyc.add_s_alpha_beta('c_Graphite') sic = openmc.Material() sic.set_density('g/cm3', 3.20) @@ -42,12 +42,12 @@ class TRISOTestHarness(PyAPITestHarness): opyc = openmc.Material() opyc.set_density('g/cm3', 1.87) opyc.add_nuclide('C0', 1.0) - opyc.add_s_alpha_beta('c_Graphite', '71t') + opyc.add_s_alpha_beta('c_Graphite') graphite = openmc.Material() graphite.set_density('g/cm3', 1.1995) graphite.add_nuclide('C0', 1.0) - graphite.add_s_alpha_beta('c_Graphite', '71t') + graphite.add_s_alpha_beta('c_Graphite') # Create TRISO particles spheres = [openmc.Sphere(R=r*1e-4) @@ -108,7 +108,7 @@ class TRISOTestHarness(PyAPITestHarness): settings.export_to_xml() mats = openmc.Materials([fuel, porous_carbon, ipyc, sic, opyc, graphite]) - mats.default_xs = '71c' + mats.default_temperature = '294K' mats.export_to_xml() diff --git a/tests/test_uniform_fs/materials.xml b/tests/test_uniform_fs/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_uniform_fs/materials.xml +++ b/tests/test_uniform_fs/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_union_energy_grids/materials.xml b/tests/test_union_energy_grids/materials.xml index ed9b38d901..2946a8d609 100644 --- a/tests/test_union_energy_grids/materials.xml +++ b/tests/test_union_energy_grids/materials.xml @@ -1,11 +1,13 @@ + 294K + - - - + + + diff --git a/tests/test_universe/materials.xml b/tests/test_universe/materials.xml index 23d7f969db..37cfcdc6ed 100644 --- a/tests/test_universe/materials.xml +++ b/tests/test_universe/materials.xml @@ -1,9 +1,11 @@ + 294K + - + diff --git a/tests/test_void/materials.xml b/tests/test_void/materials.xml index 4768bad0bc..2a578e0ed4 100644 --- a/tests/test_void/materials.xml +++ b/tests/test_void/materials.xml @@ -3,7 +3,7 @@ - 71c + 294K @@ -41,7 +41,7 @@ - + diff --git a/tests/test_volume_calc/test_volume_calc.py b/tests/test_volume_calc/test_volume_calc.py index e2c3eba797..656f4654a0 100644 --- a/tests/test_volume_calc/test_volume_calc.py +++ b/tests/test_volume_calc/test_volume_calc.py @@ -15,7 +15,7 @@ class VolumeTest(PyAPITestHarness): water.add_nuclide('H1', 2.0) water.add_nuclide('O16', 1.0) water.add_nuclide('B10', 0.0001) - water.add_s_alpha_beta('c_H_in_H2O', '71t') + water.add_s_alpha_beta('c_H_in_H2O') water.set_density('g/cc', 1.0) fuel = openmc.Material(2) @@ -24,7 +24,7 @@ class VolumeTest(PyAPITestHarness): fuel.set_density('g/cc', 4.5) materials = openmc.Materials((water, fuel)) - materials.default_xs = '71c' + materials.default_temperature = '294K' materials.export_to_xml() cyl = openmc.ZCylinder(1, R=1.0, boundary_type='vacuum') From 1d551037ce1204284b90be9bcb304053b329b8e4 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 22 Aug 2016 21:25:47 -0400 Subject: [PATCH 318/417] updating tests and setting it so the closest temperature is used --- openmc/material.py | 5 + openmc/settings.py | 4 +- src/hdf5_interface.F90 | 78 +++ src/input_xml.F90 | 607 +++++++++--------- src/mgxs_data.F90 | 2 +- src/nuclide_header.F90 | 40 +- src/sab_header.F90 | 54 +- tests/test_distribmat/inputs_true.dat | 2 +- tests/test_periodic/inputs_true.dat | 2 +- .../test_resonance_scattering.py | 8 +- tests/test_source/inputs_true.dat | 2 +- tests/test_triso/inputs_true.dat | 2 +- tests/test_volume_calc/inputs_true.dat | 2 +- tests/test_volume_calc/results_true.dat | 42 +- 14 files changed, 501 insertions(+), 349 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index d30487e2f6..d922c685f9 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -129,6 +129,7 @@ class Material(object): string = 'Material\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('\tName', '=\t', self._temperature) string += '{0: <16}{1}{2}'.format('\tDensity', '=\t', self._density) string += ' [{0}]\n'.format(self._density_units) @@ -632,6 +633,10 @@ class Material(object): if len(self._name) > 0: element.set("name", str(self._name)) + # Create temperature XML subelement + subelement = ET.SubElement(element, "temperature") + subelement.text = self.temperature + # Create density XML subelement subelement = ET.SubElement(element, "density") if self._density_units is not 'sum': diff --git a/openmc/settings.py b/openmc/settings.py index eb56381b07..79f3606441 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -1265,9 +1265,9 @@ class ResonanceScattering(object): subelement = ET.SubElement(scatterer, 'method') subelement.text = self.method subelement = ET.SubElement(scatterer, 'xs_label') - subelement.text = '{0.name}.{0.xs}'.format(self.nuclide) + subelement.text = self.nuclide.name subelement = ET.SubElement(scatterer, 'xs_label_0K') - subelement.text = '{0.name}.{0.xs}'.format(self.nuclide_0K) + subelement.text = self.nuclide_0K.name if self.E_min is not None: subelement = ET.SubElement(scatterer, 'E_min') subelement.text = str(self.E_min) diff --git a/src/hdf5_interface.F90 b/src/hdf5_interface.F90 index 6d1c87d7f5..36195d1190 100644 --- a/src/hdf5_interface.F90 +++ b/src/hdf5_interface.F90 @@ -95,6 +95,8 @@ module hdf5_interface public :: close_dataset public :: get_shape public :: write_attribute_string + public :: get_groups + public :: get_datasets contains @@ -204,6 +206,82 @@ contains call h5fclose_f(file_id, hdf5_err) end subroutine file_close +!=============================================================================== +! GET_GROUPS Gets a list of all the groups in a given location. +!=============================================================================== + + subroutine get_groups(object_id, names) + integer(HID_T), intent(in) :: object_id + character(len=255), allocatable, intent(out) :: names(:) + + integer :: n_members, i, group_count, type + integer :: hdf5_err + character(len=255) :: name + + + ! Get number of members in this location + call h5gn_members_f(object_id, './', n_members, hdf5_err) + + ! Get the number of groups + group_count = 0 + do i = 0, n_members - 1 + call h5gget_obj_info_idx_f(object_id, "./", i, name, type, hdf5_err) + if (type == H5G_GROUP_F) then + group_count = group_count + 1 + end if + end do + + ! Now we can allocate the storage for the ids + allocate(names(group_count)) + group_count = 0 + do i = 0, n_members - 1 + call h5gget_obj_info_idx_f(object_id, "./", i, name, type, hdf5_err) + if (type == H5G_GROUP_F) then + group_count = group_count + 1 + names(group_count) = trim(name) + end if + end do + + end subroutine get_groups + +!=============================================================================== +! GET_DATASETS Gets a list of all the datasets in a given location. +!=============================================================================== + + subroutine get_datasets(object_id, names) + integer(HID_T), intent(in) :: object_id + character(len=255), allocatable, intent(out) :: names(:) + + integer :: n_members, i, dset_count, type + integer :: hdf5_err + character(len=255) :: name + + + ! Get number of members in this location + call h5gn_members_f(object_id, './', n_members, hdf5_err) + + ! Get the number of datasets + dset_count = 0 + do i = 0, n_members - 1 + call h5gget_obj_info_idx_f(object_id, "./", i, name, type, hdf5_err) + if (type == H5G_DATASET_F ) then + dset_count = dset_count + 1 + end if + end do + + ! Now we can allocate the storage for the ids + allocate(names(dset_count)) + dset_count = 0 + do i = 0, n_members - 1 + call h5gget_obj_info_idx_f(object_id, "./", i, name, type, hdf5_err) + if (type == H5G_DATASET_F ) then + dset_count = dset_count + 1 + names(dset_count) = trim(name) + end if + end do + + end subroutine get_datasets + !=============================================================================== ! OPEN_GROUP opens an existing HDF5 group !=============================================================================== diff --git a/src/input_xml.F90 b/src/input_xml.F90 index ef927c35e9..5fc38c7419 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2428,7 +2428,7 @@ contains ! Expand element into naturally-occurring isotopes if (check_for_node(node_ele, "ao")) then call get_node_value(node_ele, "ao", temp_dble) - call expand_natural_element(name, temp_str, temp_dble, names, & + call expand_natural_element(name, temp_dble, names, & densities) else call fatal_error("The ability to expand a natural element based on & @@ -4733,9 +4733,8 @@ contains ! evaluations of particular isotopes don't exist. !=============================================================================== - subroutine expand_natural_element(name, xs, density, names, densities) + subroutine expand_natural_element(name, density, names, densities) character(*), intent(in) :: name - character(*), intent(in) :: xs real(8), intent(in) :: density type(VectorChar), intent(inout) :: names type(VectorReal), intent(inout) :: densities @@ -4746,669 +4745,669 @@ contains select case (to_lower(element_name)) case ('h') - call names % push_back('H1.' // xs) + call names % push_back('H1') call densities % push_back(density * 0.999885_8) - call names % push_back('H2.' // xs) + call names % push_back('H2') call densities % push_back(density * 0.000115_8) case ('he') - call names % push_back('He3.' // xs) + call names % push_back('He3') call densities % push_back(density * 0.00000134_8) - call names % push_back('He4.' // xs) + call names % push_back('He4') call densities % push_back(density * 0.99999866_8) case ('li') - call names % push_back('Li6.' // xs) + call names % push_back('Li6') call densities % push_back(density * 0.0759_8) - call names % push_back('Li7.' // xs) + call names % push_back('Li7') call densities % push_back(density * 0.9241_8) case ('be') - call names % push_back('Be9.' // xs) + call names % push_back('Be9') call densities % push_back(density) case ('b') - call names % push_back('B10.' // xs) + call names % push_back('B10') call densities % push_back(density * 0.199_8) - call names % push_back('B11.' // xs) + call names % push_back('B11') call densities % push_back(density * 0.801_8) case ('c') ! No evaluations split up Carbon into isotopes yet - call names % push_back('C0.' // xs) + call names % push_back('C0') call densities % push_back(density) case ('n') - call names % push_back('N14.' // xs) + call names % push_back('N14') call densities % push_back(density * 0.99636_8) - call names % push_back('N15.' // xs) + call names % push_back('N15') call densities % push_back(density * 0.00364_8) case ('o') if (default_expand == JEFF_32) then - call names % push_back('O16.' // xs) + call names % push_back('O16') call densities % push_back(density * 0.99757_8) - call names % push_back('O17.' // xs) + call names % push_back('O17') call densities % push_back(density * 0.00038_8) - call names % push_back('O18.' // xs) + call names % push_back('O18') call densities % push_back(density * 0.00205_8) elseif (default_expand >= JENDL_32 .and. default_expand <= JENDL_40) then - call names % push_back('O16.' // xs) + call names % push_back('O16') call densities % push_back(density) else - call names % push_back('O16.' // xs) + call names % push_back('O16') call densities % push_back(density * 0.99962_8) - call names % push_back('O17.' // xs) + call names % push_back('O17') call densities % push_back(density * 0.00038_8) end if case ('f') - call names % push_back('F19.' // xs) + call names % push_back('F19') call densities % push_back(density) case ('ne') - call names % push_back('Ne20.' // xs) + call names % push_back('Ne20') call densities % push_back(density * 0.9048_8) - call names % push_back('Ne21.' // xs) + call names % push_back('Ne21') call densities % push_back(density * 0.0027_8) - call names % push_back('Ne22.' // xs) + call names % push_back('Ne22') call densities % push_back(density * 0.0925_8) case ('na') - call names % push_back('Na23.' // xs) + call names % push_back('Na23') call densities % push_back(density) case ('mg') - call names % push_back('Mg24.' // xs) + call names % push_back('Mg24') call densities % push_back(density * 0.7899_8) - call names % push_back('Mg25.' // xs) + call names % push_back('Mg25') call densities % push_back(density * 0.1000_8) - call names % push_back('Mg26.' // xs) + call names % push_back('Mg26') call densities % push_back(density * 0.1101_8) case ('al') - call names % push_back('Al27.' // xs) + call names % push_back('Al27') call densities % push_back(density) case ('si') - call names % push_back('Si28.' // xs) + call names % push_back('Si28') call densities % push_back(density * 0.92223_8) - call names % push_back('Si29.' // xs) + call names % push_back('Si29') call densities % push_back(density * 0.04685_8) - call names % push_back('Si30.' // xs) + call names % push_back('Si30') call densities % push_back(density * 0.03092_8) case ('p') - call names % push_back('P31.' // xs) + call names % push_back('P31') call densities % push_back(density) case ('s') - call names % push_back('S32.' // xs) + call names % push_back('S32') call densities % push_back(density * 0.9499_8) - call names % push_back('S33.' // xs) + call names % push_back('S33') call densities % push_back(density * 0.0075_8) - call names % push_back('S34.' // xs) + call names % push_back('S34') call densities % push_back(density * 0.0425_8) - call names % push_back('S36.' // xs) + call names % push_back('S36') call densities % push_back(density * 0.0001_8) case ('cl') - call names % push_back('Cl35.' // xs) + call names % push_back('Cl35') call densities % push_back(density * 0.7576_8) - call names % push_back('Cl37.' // xs) + call names % push_back('Cl37') call densities % push_back(density * 0.2424_8) case ('ar') - call names % push_back('Ar36.' // xs) + call names % push_back('Ar36') call densities % push_back(density * 0.003336_8) - call names % push_back('Ar38.' // xs) + call names % push_back('Ar38') call densities % push_back(density * 0.000629_8) - call names % push_back('Ar40.' // xs) + call names % push_back('Ar40') call densities % push_back(density * 0.996035_8) case ('k') - call names % push_back('K39.' // xs) + call names % push_back('K39') call densities % push_back(density * 0.932581_8) - call names % push_back('K40.' // xs) + call names % push_back('K40') call densities % push_back(density * 0.000117_8) - call names % push_back('K41.' // xs) + call names % push_back('K41') call densities % push_back(density * 0.067302_8) case ('ca') - call names % push_back('Ca40.' // xs) + call names % push_back('Ca40') call densities % push_back(density * 0.96941_8) - call names % push_back('Ca42.' // xs) + call names % push_back('Ca42') call densities % push_back(density * 0.00647_8) - call names % push_back('Ca43.' // xs) + call names % push_back('Ca43') call densities % push_back(density * 0.00135_8) - call names % push_back('Ca44.' // xs) + call names % push_back('Ca44') call densities % push_back(density * 0.02086_8) - call names % push_back('Ca46.' // xs) + call names % push_back('Ca46') call densities % push_back(density * 0.00004_8) - call names % push_back('Ca48.' // xs) + call names % push_back('Ca48') call densities % push_back(density * 0.00187_8) case ('sc') - call names % push_back('Sc45.' // xs) + call names % push_back('Sc45') call densities % push_back(density) case ('ti') - call names % push_back('Ti46.' // xs) + call names % push_back('Ti46') call densities % push_back(density * 0.0825_8) - call names % push_back('Ti47.' // xs) + call names % push_back('Ti47') call densities % push_back(density * 0.0744_8) - call names % push_back('Ti48.' // xs) + call names % push_back('Ti48') call densities % push_back(density * 0.7372_8) - call names % push_back('Ti49.' // xs) + call names % push_back('Ti49') call densities % push_back(density * 0.0541_8) - call names % push_back('Ti50.' // xs) + call names % push_back('Ti50') call densities % push_back(density * 0.0518_8) case ('v') if (default_expand == ENDF_BVII0 .or. default_expand == JEFF_311 & .or. default_expand == JEFF_32 .or. & (default_expand >= JENDL_32 .and. default_expand <= JENDL_33)) then - call names % push_back('V0.' // xs) + call names % push_back('V0') call densities % push_back(density) else - call names % push_back('V50.' // xs) + call names % push_back('V50') call densities % push_back(density * 0.0025_8) - call names % push_back('V51.' // xs) + call names % push_back('V51') call densities % push_back(density * 0.9975_8) end if case ('cr') - call names % push_back('Cr50.' // xs) + call names % push_back('Cr50') call densities % push_back(density * 0.04345_8) - call names % push_back('Cr52.' // xs) + call names % push_back('Cr52') call densities % push_back(density * 0.83789_8) - call names % push_back('Cr53.' // xs) + call names % push_back('Cr53') call densities % push_back(density * 0.09501_8) - call names % push_back('Cr54.' // xs) + call names % push_back('Cr54') call densities % push_back(density * 0.02365_8) case ('mn') - call names % push_back('Mn55.' // xs) + call names % push_back('Mn55') call densities % push_back(density) case ('fe') - call names % push_back('Fe54.' // xs) + call names % push_back('Fe54') call densities % push_back(density * 0.05845_8) - call names % push_back('Fe56.' // xs) + call names % push_back('Fe56') call densities % push_back(density * 0.91754_8) - call names % push_back('Fe57.' // xs) + call names % push_back('Fe57') call densities % push_back(density * 0.02119_8) - call names % push_back('Fe58.' // xs) + call names % push_back('Fe58') call densities % push_back(density * 0.00282_8) case ('co') - call names % push_back('Co59.' // xs) + call names % push_back('Co59') call densities % push_back(density) case ('ni') - call names % push_back('Ni58.' // xs) + call names % push_back('Ni58') call densities % push_back(density * 0.68077_8) - call names % push_back('Ni60.' // xs) + call names % push_back('Ni60') call densities % push_back(density * 0.26223_8) - call names % push_back('Ni61.' // xs) + call names % push_back('Ni61') call densities % push_back(density * 0.011399_8) - call names % push_back('Ni62.' // xs) + call names % push_back('Ni62') call densities % push_back(density * 0.036346_8) - call names % push_back('Ni64.' // xs) + call names % push_back('Ni64') call densities % push_back(density * 0.009255_8) case ('cu') - call names % push_back('Cu63.' // xs) + call names % push_back('Cu63') call densities % push_back(density * 0.6915_8) - call names % push_back('Cu65.' // xs) + call names % push_back('Cu65') call densities % push_back(density * 0.3085_8) case ('zn') if (default_expand == ENDF_BVII0 .or. default_expand == & JEFF_311 .or. default_expand == JEFF_312) then - call names % push_back('Zn0.' // xs) + call names % push_back('Zn0') call densities % push_back(density) else - call names % push_back('Zn64.' // xs) + call names % push_back('Zn64') call densities % push_back(density * 0.4917_8) - call names % push_back('Zn66.' // xs) + call names % push_back('Zn66') call densities % push_back(density * 0.2773_8) - call names % push_back('Zn67.' // xs) + call names % push_back('Zn67') call densities % push_back(density * 0.0404_8) - call names % push_back('Zn68.' // xs) + call names % push_back('Zn68') call densities % push_back(density * 0.1845_8) - call names % push_back('Zn70.' // xs) + call names % push_back('Zn70') call densities % push_back(density * 0.0061_8) end if case ('ga') if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then - call names % push_back('Ga0.' // xs) + call names % push_back('Ga0') call densities % push_back(density) else - call names % push_back('Ha69.' // xs) + call names % push_back('Ha69') call densities % push_back(density * 0.60108_8) - call names % push_back('Ga71.' // xs) + call names % push_back('Ga71') call densities % push_back(density * 0.39892_8) end if case ('ge') - call names % push_back('Ge70.' // xs) + call names % push_back('Ge70') call densities % push_back(density * 0.2057_8) - call names % push_back('Ge72.' // xs) + call names % push_back('Ge72') call densities % push_back(density * 0.2745_8) - call names % push_back('Ge73.' // xs) + call names % push_back('Ge73') call densities % push_back(density * 0.0775_8) - call names % push_back('Ge74.' // xs) + call names % push_back('Ge74') call densities % push_back(density * 0.3650_8) - call names % push_back('Ge76.' // xs) + call names % push_back('Ge76') call densities % push_back(density * 0.0773_8) case ('as') - call names % push_back('As75.' // xs) + call names % push_back('As75') call densities % push_back(density) case ('se') - call names % push_back('Se74.' // xs) + call names % push_back('Se74') call densities % push_back(density * 0.0089_8) - call names % push_back('Se76.' // xs) + call names % push_back('Se76') call densities % push_back(density * 0.0937_8) - call names % push_back('Se77.' // xs) + call names % push_back('Se77') call densities % push_back(density * 0.0763_8) - call names % push_back('Se78.' // xs) + call names % push_back('Se78') call densities % push_back(density * 0.2377_8) - call names % push_back('Se80.' // xs) + call names % push_back('Se80') call densities % push_back(density * 0.4961_8) - call names % push_back('Se82.' // xs) + call names % push_back('Se82') call densities % push_back(density * 0.0873_8) case ('br') - call names % push_back('Br79.' // xs) + call names % push_back('Br79') call densities % push_back(density * 0.5069_8) - call names % push_back('Br81.' // xs) + call names % push_back('Br81') call densities % push_back(density * 0.4931_8) case ('kr') - call names % push_back('Kr78.' // xs) + call names % push_back('Kr78') call densities % push_back(density * 0.00355_8) - call names % push_back('Kr80.' // xs) + call names % push_back('Kr80') call densities % push_back(density * 0.02286_8) - call names % push_back('Kr82.' // xs) + call names % push_back('Kr82') call densities % push_back(density * 0.11593_8) - call names % push_back('Kr83.' // xs) + call names % push_back('Kr83') call densities % push_back(density * 0.11500_8) - call names % push_back('Kr84.' // xs) + call names % push_back('Kr84') call densities % push_back(density * 0.56987_8) - call names % push_back('Kr86.' // xs) + call names % push_back('Kr86') call densities % push_back(density * 0.17279_8) case ('rb') - call names % push_back('Rb85.' // xs) + call names % push_back('Rb85') call densities % push_back(density * 0.7217_8) - call names % push_back('Rb87.' // xs) + call names % push_back('Rb87') call densities % push_back(density * 0.2783_8) case ('sr') - call names % push_back('Sr84.' // xs) + call names % push_back('Sr84') call densities % push_back(density * 0.0056_8) - call names % push_back('Sr86.' // xs) + call names % push_back('Sr86') call densities % push_back(density * 0.0986_8) - call names % push_back('Sr87.' // xs) + call names % push_back('Sr87') call densities % push_back(density * 0.0700_8) - call names % push_back('Sr88.' // xs) + call names % push_back('Sr88') call densities % push_back(density * 0.8258_8) case ('y') - call names % push_back('Y89.' // xs) + call names % push_back('Y89') call densities % push_back(density) case ('zr') - call names % push_back('Zr90.' // xs) + call names % push_back('Zr90') call densities % push_back(density * 0.5145_8) - call names % push_back('Zr91.' // xs) + call names % push_back('Zr91') call densities % push_back(density * 0.1122_8) - call names % push_back('Zr92.' // xs) + call names % push_back('Zr92') call densities % push_back(density * 0.1715_8) - call names % push_back('Zr94.' // xs) + call names % push_back('Zr94') call densities % push_back(density * 0.1738_8) - call names % push_back('Zr96.' // xs) + call names % push_back('Zr96') call densities % push_back(density * 0.0280_8) case ('nb') - call names % push_back('Nb93.' // xs) + call names % push_back('Nb93') call densities % push_back(density) case ('mo') - call names % push_back('Mo92.' // xs) + call names % push_back('Mo92') call densities % push_back(density * 0.1453_8) - call names % push_back('Mo94.' // xs) + call names % push_back('Mo94') call densities % push_back(density * 0.0915_8) - call names % push_back('Mo95.' // xs) + call names % push_back('Mo95') call densities % push_back(density * 0.1584_8) - call names % push_back('Mo96.' // xs) + call names % push_back('Mo96') call densities % push_back(density * 0.1667_8) - call names % push_back('Mo97.' // xs) + call names % push_back('Mo97') call densities % push_back(density * 0.0960_8) - call names % push_back('Mo98.' // xs) + call names % push_back('Mo98') call densities % push_back(density * 0.2439_8) - call names % push_back('Mo100.' // xs) + call names % push_back('Mo100') call densities % push_back(density * 0.0982_8) case ('ru') - call names % push_back('Ru96.' // xs) + call names % push_back('Ru96') call densities % push_back(density * 0.0554_8) - call names % push_back('Ru98.' // xs) + call names % push_back('Ru98') call densities % push_back(density * 0.0187_8) - call names % push_back('Ru99.' // xs) + call names % push_back('Ru99') call densities % push_back(density * 0.1276_8) - call names % push_back('Ru100.' // xs) + call names % push_back('Ru100') call densities % push_back(density * 0.1260_8) - call names % push_back('Ru101.' // xs) + call names % push_back('Ru101') call densities % push_back(density * 0.1706_8) - call names % push_back('Ru102.' // xs) + call names % push_back('Ru102') call densities % push_back(density * 0.3155_8) - call names % push_back('Ru104.' // xs) + call names % push_back('Ru104') call densities % push_back(density * 0.1862_8) case ('rh') - call names % push_back('Rh103.' // xs) + call names % push_back('Rh103') call densities % push_back(density) case ('pd') - call names % push_back('Pd102.' // xs) + call names % push_back('Pd102') call densities % push_back(density * 0.0102_8) - call names % push_back('Pd104.' // xs) + call names % push_back('Pd104') call densities % push_back(density * 0.1114_8) - call names % push_back('Pd105.' // xs) + call names % push_back('Pd105') call densities % push_back(density * 0.2233_8) - call names % push_back('Pd106.' // xs) + call names % push_back('Pd106') call densities % push_back(density * 0.2733_8) - call names % push_back('Pd108.' // xs) + call names % push_back('Pd108') call densities % push_back(density * 0.2646_8) - call names % push_back('Pd110.' // xs) + call names % push_back('Pd110') call densities % push_back(density * 0.1172_8) case ('ag') - call names % push_back('Ag107.' // xs) + call names % push_back('Ag107') call densities % push_back(density * 0.51839_8) - call names % push_back('Ag109.' // xs) + call names % push_back('Ag109') call densities % push_back(density * 0.48161_8) case ('cd') - call names % push_back('Cd106.' // xs) + call names % push_back('Cd106') call densities % push_back(density * 0.0125_8) - call names % push_back('Cd108.' // xs) + call names % push_back('Cd108') call densities % push_back(density * 0.0089_8) - call names % push_back('Cd110.' // xs) + call names % push_back('Cd110') call densities % push_back(density * 0.1249_8) - call names % push_back('Cd111.' // xs) + call names % push_back('Cd111') call densities % push_back(density * 0.1280_8) - call names % push_back('Cd112.' // xs) + call names % push_back('Cd112') call densities % push_back(density * 0.2413_8) - call names % push_back('Cd113.' // xs) + call names % push_back('Cd113') call densities % push_back(density * 0.1222_8) - call names % push_back('Cd114.' // xs) + call names % push_back('Cd114') call densities % push_back(density * 0.2873_8) - call names % push_back('Cd116.' // xs) + call names % push_back('Cd116') call densities % push_back(density * 0.0749_8) case ('in') - call names % push_back('In113.' // xs) + call names % push_back('In113') call densities % push_back(density * 0.0429_8) - call names % push_back('In115.' // xs) + call names % push_back('In115') call densities % push_back(density * 0.9571_8) case ('sn') - call names % push_back('Sn112.' // xs) + call names % push_back('Sn112') call densities % push_back(density * 0.0097_8) - call names % push_back('Sn114.' // xs) + call names % push_back('Sn114') call densities % push_back(density * 0.0066_8) - call names % push_back('Sn115.' // xs) + call names % push_back('Sn115') call densities % push_back(density * 0.0034_8) - call names % push_back('Sn116.' // xs) + call names % push_back('Sn116') call densities % push_back(density * 0.1454_8) - call names % push_back('Sn117.' // xs) + call names % push_back('Sn117') call densities % push_back(density * 0.0768_8) - call names % push_back('Sn118.' // xs) + call names % push_back('Sn118') call densities % push_back(density * 0.2422_8) - call names % push_back('Sn119.' // xs) + call names % push_back('Sn119') call densities % push_back(density * 0.0859_8) - call names % push_back('Sn120.' // xs) + call names % push_back('Sn120') call densities % push_back(density * 0.3258_8) - call names % push_back('Sn122.' // xs) + call names % push_back('Sn122') call densities % push_back(density * 0.0463_8) - call names % push_back('Sn124.' // xs) + call names % push_back('Sn124') call densities % push_back(density * 0.0579_8) case ('sb') - call names % push_back('Sb121.' // xs) + call names % push_back('Sb121') call densities % push_back(density * 0.5721_8) - call names % push_back('Sb123.' // xs) + call names % push_back('Sb123') call densities % push_back(density * 0.4279_8) case ('te') - call names % push_back('Te120.' // xs) + call names % push_back('Te120') call densities % push_back(density * 0.0009_8) - call names % push_back('Te122.' // xs) + call names % push_back('Te122') call densities % push_back(density * 0.0255_8) - call names % push_back('Te123.' // xs) + call names % push_back('Te123') call densities % push_back(density * 0.0089_8) - call names % push_back('Te124.' // xs) + call names % push_back('Te124') call densities % push_back(density * 0.0474_8) - call names % push_back('Te125.' // xs) + call names % push_back('Te125') call densities % push_back(density * 0.0707_8) - call names % push_back('Te126.' // xs) + call names % push_back('Te126') call densities % push_back(density * 0.1884_8) - call names % push_back('Te128.' // xs) + call names % push_back('Te128') call densities % push_back(density * 0.3174_8) - call names % push_back('Te130.' // xs) + call names % push_back('Te130') call densities % push_back(density * 0.3408_8) case ('i') - call names % push_back('I127.' // xs) + call names % push_back('I127') call densities % push_back(density) case ('xe') - call names % push_back('Xe124.' // xs) + call names % push_back('Xe124') call densities % push_back(density * 0.000952_8) - call names % push_back('Xe126.' // xs) + call names % push_back('Xe126') call densities % push_back(density * 0.000890_8) - call names % push_back('Xe128.' // xs) + call names % push_back('Xe128') call densities % push_back(density * 0.019102_8) - call names % push_back('Xe129.' // xs) + call names % push_back('Xe129') call densities % push_back(density * 0.264006_8) - call names % push_back('Xe130.' // xs) + call names % push_back('Xe130') call densities % push_back(density * 0.040710_8) - call names % push_back('Xe131.' // xs) + call names % push_back('Xe131') call densities % push_back(density * 0.212324_8) - call names % push_back('Xe132.' // xs) + call names % push_back('Xe132') call densities % push_back(density * 0.269086_8) - call names % push_back('Xe134.' // xs) + call names % push_back('Xe134') call densities % push_back(density * 0.104357_8) - call names % push_back('Xe136.' // xs) + call names % push_back('Xe136') call densities % push_back(density * 0.088573_8) case ('cs') - call names % push_back('Cs133.' // xs) + call names % push_back('Cs133') call densities % push_back(density) case ('ba') - call names % push_back('Ba130.' // xs) + call names % push_back('Ba130') call densities % push_back(density * 0.00106_8) - call names % push_back('Ba132.' // xs) + call names % push_back('Ba132') call densities % push_back(density * 0.00101_8) - call names % push_back('Ba134.' // xs) + call names % push_back('Ba134') call densities % push_back(density * 0.02417_8) - call names % push_back('Ba135.' // xs) + call names % push_back('Ba135') call densities % push_back(density * 0.06592_8) - call names % push_back('Ba136.' // xs) + call names % push_back('Ba136') call densities % push_back(density * 0.07854_8) - call names % push_back('Ba137.' // xs) + call names % push_back('Ba137') call densities % push_back(density * 0.11232_8) - call names % push_back('Ba138.' // xs) + call names % push_back('Ba138') call densities % push_back(density * 0.71698_8) case ('la') - call names % push_back('La138.' // xs) + call names % push_back('La138') call densities % push_back(density * 0.0008881_8) - call names % push_back('La139.' // xs) + call names % push_back('La139') call densities % push_back(density * 0.9991119_8) case ('ce') - call names % push_back('Ce136.' // xs) + call names % push_back('Ce136') call densities % push_back(density * 0.00185_8) - call names % push_back('Ce138.' // xs) + call names % push_back('Ce138') call densities % push_back(density * 0.00251_8) - call names % push_back('Ce140.' // xs) + call names % push_back('Ce140') call densities % push_back(density * 0.88450_8) - call names % push_back('Ce142.' // xs) + call names % push_back('Ce142') call densities % push_back(density * 0.11114_8) case ('pr') - call names % push_back('Pr141.' // xs) + call names % push_back('Pr141') call densities % push_back(density) case ('nd') - call names % push_back('Nd142.' // xs) + call names % push_back('Nd142') call densities % push_back(density * 0.27152_8) - call names % push_back('Nd143.' // xs) + call names % push_back('Nd143') call densities % push_back(density * 0.12174_8) - call names % push_back('Nd144.' // xs) + call names % push_back('Nd144') call densities % push_back(density * 0.23798_8) - call names % push_back('Nd145.' // xs) + call names % push_back('Nd145') call densities % push_back(density * 0.08293_8) - call names % push_back('Nd146.' // xs) + call names % push_back('Nd146') call densities % push_back(density * 0.17189_8) - call names % push_back('Nd148.' // xs) + call names % push_back('Nd148') call densities % push_back(density * 0.05756_8) - call names % push_back('Nd150.' // xs) + call names % push_back('Nd150') call densities % push_back(density * 0.05638_8) case ('sm') - call names % push_back('Sm144.' // xs) + call names % push_back('Sm144') call densities % push_back(density * 0.0307_8) - call names % push_back('Sm147.' // xs) + call names % push_back('Sm147') call densities % push_back(density * 0.1499_8) - call names % push_back('Sm148.' // xs) + call names % push_back('Sm148') call densities % push_back(density * 0.1124_8) - call names % push_back('Sm149.' // xs) + call names % push_back('Sm149') call densities % push_back(density * 0.1382_8) - call names % push_back('Sm150.' // xs) + call names % push_back('Sm150') call densities % push_back(density * 0.0738_8) - call names % push_back('Sm152.' // xs) + call names % push_back('Sm152') call densities % push_back(density * 0.2675_8) - call names % push_back('Sm154.' // xs) + call names % push_back('Sm154') call densities % push_back(density * 0.2275_8) case ('eu') - call names % push_back('Eu151.' // xs) + call names % push_back('Eu151') call densities % push_back(density * 0.4781_8) - call names % push_back('Eu153.' // xs) + call names % push_back('Eu153') call densities % push_back(density * 0.5219_8) case ('gd') - call names % push_back('Gd152.' // xs) + call names % push_back('Gd152') call densities % push_back(density * 0.0020_8) - call names % push_back('Gd154.' // xs) + call names % push_back('Gd154') call densities % push_back(density * 0.0218_8) - call names % push_back('Gd155.' // xs) + call names % push_back('Gd155') call densities % push_back(density * 0.1480_8) - call names % push_back('Gd156.' // xs) + call names % push_back('Gd156') call densities % push_back(density * 0.2047_8) - call names % push_back('Gd157.' // xs) + call names % push_back('Gd157') call densities % push_back(density * 0.1565_8) - call names % push_back('Gd158.' // xs) + call names % push_back('Gd158') call densities % push_back(density * 0.2484_8) - call names % push_back('Gd160.' // xs) + call names % push_back('Gd160') call densities % push_back(density * 0.2186_8) case ('tb') - call names % push_back('Tb159.' // xs) + call names % push_back('Tb159') call densities % push_back(density) case ('dy') - call names % push_back('Dy156.' // xs) + call names % push_back('Dy156') call densities % push_back(density * 0.00056_8) - call names % push_back('Dy158.' // xs) + call names % push_back('Dy158') call densities % push_back(density * 0.00095_8) - call names % push_back('Dy160.' // xs) + call names % push_back('Dy160') call densities % push_back(density * 0.02329_8) - call names % push_back('Dy161.' // xs) + call names % push_back('Dy161') call densities % push_back(density * 0.18889_8) - call names % push_back('Dy162.' // xs) + call names % push_back('Dy162') call densities % push_back(density * 0.25475_8) - call names % push_back('Dy163.' // xs) + call names % push_back('Dy163') call densities % push_back(density * 0.24896_8) - call names % push_back('Dy164.' // xs) + call names % push_back('Dy164') call densities % push_back(density * 0.28260_8) case ('ho') - call names % push_back('Ho165.' // xs) + call names % push_back('Ho165') call densities % push_back(density) case ('er') - call names % push_back('Er162.' // xs) + call names % push_back('Er162') call densities % push_back(density * 0.00139_8) - call names % push_back('Er164.' // xs) + call names % push_back('Er164') call densities % push_back(density * 0.01601_8) - call names % push_back('Er166.' // xs) + call names % push_back('Er166') call densities % push_back(density * 0.33503_8) - call names % push_back('Er167.' // xs) + call names % push_back('Er167') call densities % push_back(density * 0.22869_8) - call names % push_back('Er168.' // xs) + call names % push_back('Er168') call densities % push_back(density * 0.26978_8) - call names % push_back('Er170.' // xs) + call names % push_back('Er170') call densities % push_back(density * 0.14910_8) case ('tm') - call names % push_back('Tm169.' // xs) + call names % push_back('Tm169') call densities % push_back(density) case ('yb') - call names % push_back('Yb168.' // xs) + call names % push_back('Yb168') call densities % push_back(density * 0.00123_8) - call names % push_back('Yb170.' // xs) + call names % push_back('Yb170') call densities % push_back(density * 0.02982_8) - call names % push_back('Yb171.' // xs) + call names % push_back('Yb171') call densities % push_back(density * 0.1409_8) - call names % push_back('Yb172.' // xs) + call names % push_back('Yb172') call densities % push_back(density * 0.2168_8) - call names % push_back('Yb173.' // xs) + call names % push_back('Yb173') call densities % push_back(density * 0.16103_8) - call names % push_back('Yb174.' // xs) + call names % push_back('Yb174') call densities % push_back(density * 0.32026_8) - call names % push_back('Yb176.' // xs) + call names % push_back('Yb176') call densities % push_back(density * 0.12996_8) case ('lu') - call names % push_back('Lu175.' // xs) + call names % push_back('Lu175') call densities % push_back(density * 0.97401_8) - call names % push_back('Lu176.' // xs) + call names % push_back('Lu176') call densities % push_back(density * 0.02599_8) case ('hf') - call names % push_back('Hf174.' // xs) + call names % push_back('Hf174') call densities % push_back(density * 0.0016_8) - call names % push_back('Hf176.' // xs) + call names % push_back('Hf176') call densities % push_back(density * 0.0526_8) - call names % push_back('Hf177.' // xs) + call names % push_back('Hf177') call densities % push_back(density * 0.1860_8) - call names % push_back('Hf178.' // xs) + call names % push_back('Hf178') call densities % push_back(density * 0.2728_8) - call names % push_back('Hf179.' // xs) + call names % push_back('Hf179') call densities % push_back(density * 0.1362_8) - call names % push_back('Hf180.' // xs) + call names % push_back('Hf180') call densities % push_back(density * 0.3508_8) case ('ta') if (default_expand == ENDF_BVII0 .or. & (default_expand >= JEFF_311 .and. default_expand <= JEFF_312) .or. & (default_expand >= JENDL_32 .and. default_expand <= JENDL_40)) then - call names % push_back('Ta181.' // xs) + call names % push_back('Ta181') call densities % push_back(density) else - call names % push_back('Ta180.' // xs) + call names % push_back('Ta180') call densities % push_back(density * 0.0001201_8) - call names % push_back('Ta181.' // xs) + call names % push_back('Ta181') call densities % push_back(density * 0.9998799_8) end if @@ -5417,138 +5416,138 @@ contains .or. default_expand == JEFF_312 .or. & (default_expand >= JENDL_32 .and. default_expand <= JENDL_33)) then ! Combine W-180 with W-182 - call names % push_back('W182.' // xs) + call names % push_back('W182') call densities % push_back(density * 0.2662_8) - call names % push_back('W183.' // xs) + call names % push_back('W183') call densities % push_back(density * 0.1431_8) - call names % push_back('W184.' // xs) + call names % push_back('W184') call densities % push_back(density * 0.3064_8) - call names % push_back('W186.' // xs) + call names % push_back('W186') call densities % push_back(density * 0.2843_8) else - call names % push_back('W180.' // xs) + call names % push_back('W180') call densities % push_back(density * 0.0012_8) - call names % push_back('W182.' // xs) + call names % push_back('W182') call densities % push_back(density * 0.2650_8) - call names % push_back('W183.' // xs) + call names % push_back('W183') call densities % push_back(density * 0.1431_8) - call names % push_back('W184.' // xs) + call names % push_back('W184') call densities % push_back(density * 0.3064_8) - call names % push_back('W186.' // xs) + call names % push_back('W186') call densities % push_back(density * 0.2843_8) end if case ('re') - call names % push_back('Re185.' // xs) + call names % push_back('Re185') call densities % push_back(density * 0.3740_8) - call names % push_back('Re187.' // xs) + call names % push_back('Re187') call densities % push_back(density * 0.6260_8) case ('os') if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then - call names % push_back('Os0.' // xs) + call names % push_back('Os0') call densities % push_back(density) else - call names % push_back('Os184.' // xs) + call names % push_back('Os184') call densities % push_back(density * 0.0002_8) - call names % push_back('Os186.' // xs) + call names % push_back('Os186') call densities % push_back(density * 0.0159_8) - call names % push_back('Os187.' // xs) + call names % push_back('Os187') call densities % push_back(density * 0.0196_8) - call names % push_back('Os188.' // xs) + call names % push_back('Os188') call densities % push_back(density * 0.1324_8) - call names % push_back('Os189.' // xs) + call names % push_back('Os189') call densities % push_back(density * 0.1615_8) - call names % push_back('Os190.' // xs) + call names % push_back('Os190') call densities % push_back(density * 0.2626_8) - call names % push_back('Os192.' // xs) + call names % push_back('Os192') call densities % push_back(density * 0.4078_8) end if case ('ir') - call names % push_back('Ir191.' // xs) + call names % push_back('Ir191') call densities % push_back(density * 0.373_8) - call names % push_back('Ir193.' // xs) + call names % push_back('Ir193') call densities % push_back(density * 0.627_8) case ('pt') if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then - call names % push_back('Pt0.' // xs) + call names % push_back('Pt0') call densities % push_back(density) else - call names % push_back('Pt190.' // xs) + call names % push_back('Pt190') call densities % push_back(density * 0.00012_8) - call names % push_back('Pt192.' // xs) + call names % push_back('Pt192') call densities % push_back(density * 0.00782_8) - call names % push_back('Pt194.' // xs) + call names % push_back('Pt194') call densities % push_back(density * 0.3286_8) - call names % push_back('Pt195.' // xs) + call names % push_back('Pt195') call densities % push_back(density * 0.3378_8) - call names % push_back('Pt196.' // xs) + call names % push_back('Pt196') call densities % push_back(density * 0.2521_8) - call names % push_back('Pt198.' // xs) + call names % push_back('Pt198') call densities % push_back(density * 0.07356_8) end if case ('au') - call names % push_back('Au197.' // xs) + call names % push_back('Au197') call densities % push_back(density) case ('hg') - call names % push_back('Hg196.' // xs) + call names % push_back('Hg196') call densities % push_back(density * 0.0015_8) - call names % push_back('Hg198.' // xs) + call names % push_back('Hg198') call densities % push_back(density * 0.0997_8) - call names % push_back('Hg199.' // xs) + call names % push_back('Hg199') call densities % push_back(density * 0.1687_8) - call names % push_back('Hg200.' // xs) + call names % push_back('Hg200') call densities % push_back(density * 0.2310_8) - call names % push_back('Hg201.' // xs) + call names % push_back('Hg201') call densities % push_back(density * 0.1318_8) - call names % push_back('Hg202.' // xs) + call names % push_back('Hg202') call densities % push_back(density * 0.2986_8) - call names % push_back('Hg204.' // xs) + call names % push_back('Hg204') call densities % push_back(density * 0.0687_8) case ('tl') if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then - call names % push_back('Tl0.' // xs) + call names % push_back('Tl0') call densities % push_back(density) else - call names % push_back('Tl203.' // xs) + call names % push_back('Tl203') call densities % push_back(density * 0.2952_8) - call names % push_back('Tl205.' // xs) + call names % push_back('Tl205') call densities % push_back(density * 0.7048_8) end if case ('pb') - call names % push_back('Pb204.' // xs) + call names % push_back('Pb204') call densities % push_back(density * 0.014_8) - call names % push_back('Pb206.' // xs) + call names % push_back('Pb206') call densities % push_back(density * 0.241_8) - call names % push_back('Pb207.' // xs) + call names % push_back('Pb207') call densities % push_back(density * 0.221_8) - call names % push_back('Pb208.' // xs) + call names % push_back('Pb208') call densities % push_back(density * 0.524_8) case ('bi') - call names % push_back('Bi209.' // xs) + call names % push_back('Bi209') call densities % push_back(density) case ('th') - call names % push_back('Th232.' // xs) + call names % push_back('Th232') call densities % push_back(density) case ('pa') - call names % push_back('Pa231.' // xs) + call names % push_back('Pa231') call densities % push_back(density) case ('u') - call names % push_back('U234.' // xs) + call names % push_back('U234') call densities % push_back(density * 0.000054_8) - call names % push_back('U235.' // xs) + call names % push_back('U235') call densities % push_back(density * 0.007204_8) - call names % push_back('U238.' // xs) + call names % push_back('U238') call densities % push_back(density * 0.992742_8) case default diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 491bd84091..05d6eb5ec6 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -89,7 +89,7 @@ contains end do ! ========================================================================== - ! READ ALL ACE CROSS SECTION TABLES + ! READ ALL MGXS CROSS SECTION TABLES ! Loop over all files MATERIAL_LOOP: do i = 1, n_materials diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index fd043d789c..e7c6c48243 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -13,7 +13,7 @@ module nuclide_header use endf_header, only: Function1D, Polynomial, Tabulated1D use error, only: fatal_error, warning use hdf5_interface, only: read_attribute, open_group, close_group, & - open_dataset, read_dataset, close_dataset, get_shape + open_dataset, read_dataset, close_dataset, get_shape, get_datasets use list_header, only: ListInt use math, only: evaluate_legendre use multipole_header, only: MultipoleArray @@ -205,6 +205,11 @@ module nuclide_header integer(HSIZE_T) :: j integer(HSIZE_T) :: dims(1) character(MAX_WORD_LEN) :: temp + character(MAX_FILE_LEN), allocatable :: temperatures(:) + integer, allocatable :: temperatures_integer(:) + integer :: temperature_delta + character(6) :: my_temperature + integer :: temperature_integer type(VectorInt) :: MTs logical :: exists @@ -218,17 +223,42 @@ module nuclide_header call read_attribute(Z, group_id, 'Z') call read_attribute(A, group_id, 'A') call read_attribute(this % metastable, group_id, 'metastable') - this % zaid = 1000*Z + A + 400*this % metastable + this % zaid = 1000 * Z + A + 400 * this % metastable call read_attribute(this % awr, group_id, 'atomic_weight_ratio') kT_group = open_group(group_id, 'kTs') - kT_dset = open_dataset(kT_group, temperature) + ! Before accessing the temperature data, see if the user-provied temperature + ! exists. We can find this out by looking at the datasets within kT_group + temp = adjustr(trim(temperature)) + temperature_integer = str_to_int(temp(1:len(temp) - 1)) + call get_datasets(kT_group, temperatures) + allocate(temperatures_integer(size(temperatures))) + do i = 1, size(temperatures) + temp = adjustr(trim(temperatures(i))) + temperatures_integer(i) = str_to_int(temp(1:len(temp) - 1)) + end do + j = 1 + temperature_delta = temperature_integer - temperatures_integer(j) + do i = 2, size(temperatures) + if (abs(temperature_integer - temperatures_integer(i)) < temperature_delta) & + j = i + end do + ! Now print a warning if there is no matching temperature and then use the + ! closest temperature + my_temperature = temperatures(j) + if (temperature /= my_temperature) then + call warning(trim(this % name) // " does not contain data at a & + &temperature of " // trim(temperature) // "; using the & + &nearest available temperature of " // trim(my_temperature)) + end if + + kT_dset = open_dataset(kT_group, my_temperature) call read_dataset(this % kT, kT_dset) call close_dataset(kT_dset) call close_group(kT_group) ! Read energy grid energy_group = open_group(group_id, 'energy') - energy_dset = open_dataset(energy_group, temperature) + energy_dset = open_dataset(energy_group, my_temperature) call get_shape(energy_dset, dims) this % n_grid = int(dims(1), 4) allocate(this % energy(this % n_grid)) @@ -252,7 +282,7 @@ module nuclide_header do i = 1, size(this % reactions) rx_group = open_group(rxs_group, 'reaction_' // trim(& zero_padded(MTs % data(i), 3))) - call this % reactions(i) % from_hdf5(rx_group, temperature) + call this % reactions(i) % from_hdf5(rx_group, my_temperature) call close_group(rx_group) end do call close_group(rxs_group) diff --git a/src/sab_header.F90 b/src/sab_header.F90 index 86b72740cf..d12b75a32b 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -4,12 +4,13 @@ module sab_header use constants use distribution_univariate, only: Tabular - use hdf5, only: HID_T, HSIZE_T - use h5lt, only: h5ltpath_valid_f + use error, only: warning + use hdf5, only: HID_T, HSIZE_T, SIZE_T + use h5lt, only: h5ltpath_valid_f, h5iget_name_f use hdf5_interface, only: read_attribute, get_shape, open_group, close_group, & - open_dataset, read_dataset, close_dataset + open_dataset, read_dataset, close_dataset, get_datasets use secondary_correlated, only: CorrelatedAngleEnergy - use string, only: to_str + use string, only: to_str, str_to_int implicit none @@ -162,6 +163,7 @@ contains integer :: i, j integer :: n_energy, n_energy_out, n_mu integer :: hdf5_err + integer(SIZE_T) :: name_len, name_file_len integer(HID_T) :: T_group integer(HID_T) :: elastic_group integer(HID_T) :: inelastic_group @@ -173,6 +175,19 @@ contains character(20) :: type logical :: exists type(CorrelatedAngleEnergy) :: correlated_dist + character(MAX_FILE_LEN), allocatable :: temperatures(:) + character(MAX_FILE_LEN) :: temp_str + integer, allocatable :: temperatures_integer(:) + integer :: temperature_delta + character(6) :: my_temperature + integer :: temperature_integer + + ! Get name of table from group + name_len = len(this % name) + call h5iget_name_f(group_id, this % name, name_len, name_file_len, hdf5_err) + + ! Get rid of leading '/' + this % name = trim(this % name(2:)) call read_attribute(this % awr, group_id, 'atomic_weight_ratio') call read_attribute(this % zaid, group_id, 'zaids') @@ -187,13 +202,38 @@ contains end select this % n_zaid = size(this % zaid) kT_group = open_group(group_id, 'kTs') - kT_dset = open_dataset(kT_group, temperature) + ! Before accessing the temperature data, see if the user-provied temperature + ! exists. We can find this out by looking at the datasets within kT_group + temp_str = adjustr(trim(temperature)) + temperature_integer = str_to_int(temp_str(1:len(temp_str) - 1)) + call get_datasets(kT_group, temperatures) + allocate(temperatures_integer(size(temperatures))) + do i = 1, size(temperatures) + temp_str = adjustr(trim(temperatures(i))) + temperatures_integer(i) = str_to_int(temp_str(1:len(temp_str) - 1)) + end do + j = 1 + temperature_delta = temperature_integer - temperatures_integer(j) + do i = 2, size(temperatures) + if (abs(temperature_integer - temperatures_integer(i)) < temperature_delta) & + j = i + end do + ! Now print a warning if there is no matching temperature and then use the + ! closest temperature + my_temperature = temperatures(j) + if (temperature /= my_temperature) then + call warning(trim(this % name) // " does not contain data at a & + &temperature of " // trim(temperature) // "; using the & + &nearest available temperature of " // trim(my_temperature)) + end if + + kT_dset = open_dataset(kT_group, my_temperature) call read_dataset(this % kT, kT_dset) call close_dataset(kT_dset) call close_group(kT_group) - ! Open temperature group - T_group = open_group(group_id, temperature) + ! Open my_temperature group + T_group = open_group(group_id, my_temperature) ! Coherent elastic data call h5ltpath_valid_f(T_group, 'elastic', .true., exists, hdf5_err) diff --git a/tests/test_distribmat/inputs_true.dat b/tests/test_distribmat/inputs_true.dat index d21da2f894..2ba50f7e8c 100644 --- a/tests/test_distribmat/inputs_true.dat +++ b/tests/test_distribmat/inputs_true.dat @@ -1 +1 @@ -6ae54c198e7659503d297e40be746a5bd72b35909fceed4b3ef357876b781946c0ea5021342556ef21f4034fa9e42b2c6014077c0efd3459dc063e6da4b12b59 \ No newline at end of file +dd0b1228d264dd3c24ca3082de9839080f727a137c77bed74b7637cc16d1564ce7500e3bb61a88224926f1d837079702f304247efdf9e52dedf779e17cd14550 \ No newline at end of file diff --git a/tests/test_periodic/inputs_true.dat b/tests/test_periodic/inputs_true.dat index 56d3e01bfe..0b49ac2aea 100644 --- a/tests/test_periodic/inputs_true.dat +++ b/tests/test_periodic/inputs_true.dat @@ -1 +1 @@ -0766f3e0ac9b3d26bf5529eb3c92e0337698994d663b6a68dd8c1340807d6941c7589d777430782bc7b78590adced55f0f55b1de71a7c70d453f78d4ca469d8d \ No newline at end of file +f427510feb8a63ee2246613e65c9e9a488b6b7df11ce5f5ab0c61b23f299e150a27068ee110f77c64b5bb82882b6d0a428e06de681df2bd83facb9ebc46fb54c \ No newline at end of file diff --git a/tests/test_resonance_scattering/test_resonance_scattering.py b/tests/test_resonance_scattering/test_resonance_scattering.py index 0d70c0d8d6..0e34a4a4cd 100644 --- a/tests/test_resonance_scattering/test_resonance_scattering.py +++ b/tests/test_resonance_scattering/test_resonance_scattering.py @@ -18,7 +18,7 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): mat.add_nuclide('H1', 20.0) mats_file = openmc.Materials([mat]) - mats_file.default_xs = '71c' + mats_file.default_temperature = '294K' mats_file.export_to_xml() # Geometry @@ -37,7 +37,7 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): geometry.export_to_xml() # Settings - nuclide = openmc.Nuclide('U238', '71c') + nuclide = openmc.Nuclide('U238') res_scatt_dbrc = openmc.ResonanceScattering() res_scatt_dbrc.nuclide = nuclide res_scatt_dbrc.nuclide_0K = nuclide # This is a bad idea! Just for tests @@ -45,7 +45,7 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): res_scatt_dbrc.E_min = 1e-6 res_scatt_dbrc.E_max = 210e-6 - nuclide = openmc.Nuclide('U235', '71c') + nuclide = openmc.Nuclide('U235') res_scatt_wcm = openmc.ResonanceScattering() res_scatt_wcm.nuclide = nuclide res_scatt_wcm.nuclide_0K = nuclide @@ -53,7 +53,7 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): res_scatt_wcm.E_min = 1e-6 res_scatt_wcm.E_max = 210e-6 - nuclide = openmc.Nuclide('Pu239', '71c') + nuclide = openmc.Nuclide('Pu239') res_scatt_ares = openmc.ResonanceScattering() res_scatt_ares.nuclide = nuclide res_scatt_ares.nuclide_0K = nuclide diff --git a/tests/test_source/inputs_true.dat b/tests/test_source/inputs_true.dat index f11998e6cf..5744adeebc 100644 --- a/tests/test_source/inputs_true.dat +++ b/tests/test_source/inputs_true.dat @@ -1 +1 @@ -27ceb546499a4134eac08ffb22d02ce21d67f12617d43a02991b443e9aca7b7eca818d03e146676c0b352abaef6505423e48edef24cfd7a8fdb148cb3dbcdb1f \ No newline at end of file +29498faa9496b8eeeab79f6cb5a966cb03a54e9c3c7e9178e7cc132df575f1377aa780fa2684201c4becdf199f89c3e7c36a824a495e60359bc6fd30b02cad6f \ No newline at end of file diff --git a/tests/test_triso/inputs_true.dat b/tests/test_triso/inputs_true.dat index 04119a2dc8..fb9d6893c0 100644 --- a/tests/test_triso/inputs_true.dat +++ b/tests/test_triso/inputs_true.dat @@ -1 +1 @@ -f33e6653b883200457df2ff2ba9cf715d5ddaa1296dd71d277c6f1d9d5b7831cc92aaf1e97509d26e5a93235cd9f775c0cfaa5ebc3dfe8fc71469bac166d362b \ No newline at end of file +c844cc920677037d22e6075780ab3e419f6ded19ea08c6f205df1773caa1a0ee53c605b7794415a24d9f0dbf6bd21d40daa9fcc89497b2abccabb1a6c81a506c \ No newline at end of file diff --git a/tests/test_volume_calc/inputs_true.dat b/tests/test_volume_calc/inputs_true.dat index e146703f31..c9515085a1 100644 --- a/tests/test_volume_calc/inputs_true.dat +++ b/tests/test_volume_calc/inputs_true.dat @@ -1 +1 @@ -102569289552d021b6803f404a0c17a9c17a40578fdba43a6ba08b77a731e0368fffa6a8a7abd48555167cb9997c6dba9ec5044c8593b12056957b7e3ec44ed0 \ No newline at end of file +aeacdb4aabfdfba0ee06cb4e5b21e95c48b1db57cb1301a1798f9b2f37eb56032ea7e94d88d8eacd17988809059b2da2500c2496c2859e5b656b641440545722 \ No newline at end of file diff --git a/tests/test_volume_calc/results_true.dat b/tests/test_volume_calc/results_true.dat index da6dfd2afc..efd6395c3c 100644 --- a/tests/test_volume_calc/results_true.dat +++ b/tests/test_volume_calc/results_true.dat @@ -3,29 +3,29 @@ Volume calculation 0 Domain 1: 31.4693 +/- 0.0721 cm^3 Domain 2: 2.0933 +/- 0.0310 cm^3 Domain 3: 2.0486 +/- 0.0307 cm^3 - Cell Nuclide Atoms Uncertainty -0 1 U235.71c 3.481769e+23 7.979991e+20 -1 1 Mo99.71c 3.481769e+22 7.979991e+19 -2 2 H1.71c 1.399770e+23 2.072914e+21 -3 2 O16.71c 6.998852e+22 1.036457e+21 -4 2 B10.71c 6.998852e+18 1.036457e+17 -5 3 H1.71c 1.369920e+23 2.051689e+21 -6 3 O16.71c 6.849599e+22 1.025844e+21 -7 3 B10.71c 6.849599e+18 1.025844e+17 + Cell Nuclide Atoms Uncertainty +0 1 U235 3.481769e+23 7.979991e+20 +1 1 Mo99 3.481769e+22 7.979991e+19 +2 2 H1 1.399770e+23 2.072914e+21 +3 2 O16 6.998852e+22 1.036457e+21 +4 2 B10 6.998852e+18 1.036457e+17 +5 3 H1 1.369920e+23 2.051689e+21 +6 3 O16 6.849599e+22 1.025844e+21 +7 3 B10 6.849599e+18 1.025844e+17 Volume calculation 1 Domain 1: 4.1419 +/- 0.0426 cm^3 Domain 2: 31.4693 +/- 0.0721 cm^3 - Material Nuclide Atoms Uncertainty -0 1 H1.71c 2.769690e+23 2.850068e+21 -1 1 O16.71c 1.384845e+23 1.425034e+21 -2 1 B10.71c 1.384845e+19 1.425034e+17 -3 2 U235.71c 3.481769e+23 7.979991e+20 -4 2 Mo99.71c 3.481769e+22 7.979991e+19 + Material Nuclide Atoms Uncertainty +0 1 H1 2.769690e+23 2.850068e+21 +1 1 O16 1.384845e+23 1.425034e+21 +2 1 B10 1.384845e+19 1.425034e+17 +3 2 U235 3.481769e+23 7.979991e+20 +4 2 Mo99 3.481769e+22 7.979991e+19 Volume calculation 2 Domain 0: 35.6112 +/- 0.0664 cm^3 - Universe Nuclide Atoms Uncertainty -0 0 H1.71c 2.769690e+23 2.850068e+21 -1 0 O16.71c 1.384845e+23 1.425034e+21 -2 0 B10.71c 1.384845e+19 1.425034e+17 -3 0 U235.71c 3.481769e+23 7.979991e+20 -4 0 Mo99.71c 3.481769e+22 7.979991e+19 + Universe Nuclide Atoms Uncertainty +0 0 H1 2.769690e+23 2.850068e+21 +1 0 O16 1.384845e+23 1.425034e+21 +2 0 B10 1.384845e+19 1.425034e+17 +3 0 U235 3.481769e+23 7.979991e+20 +4 0 Mo99 3.481769e+22 7.979991e+19 From aaa80eb98926a271b59df6b992a90c48df88d637 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 23 Aug 2016 06:26:20 -0500 Subject: [PATCH 319/417] Update title() subroutine with ASCII logo --- src/output.F90 | 60 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/src/output.F90 b/src/output.F90 index 9e23f11d88..29950a0bc2 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -38,43 +38,63 @@ contains use omp_lib #endif - write(UNIT=OUTPUT_UNIT, FMT='(/11(A/))') & - ' .d88888b. 888b d888 .d8888b.', & - ' d88P" "Y88b 8888b d8888 d88P Y88b', & - ' 888 888 88888b.d88888 888 888', & - ' 888 888 88888b. .d88b. 88888b. 888Y88888P888 888 ', & - ' 888 888 888 "88b d8P Y8b 888 "88b 888 Y888P 888 888 ', & - ' 888 888 888 888 88888888 888 888 888 Y8P 888 888 888', & - ' Y88b. .d88P 888 d88P Y8b. 888 888 888 " 888 Y88b d88P', & - ' "Y88888P" 88888P" "Y8888 888 888 888 888 "Y8888P"', & - '__________________888______________________________________________________', & - ' 888', & - ' 888' + write(UNIT=OUTPUT_UNIT, FMT='(/29(A/))') & + ' %%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' ################### %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' ###################### %%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' ####################### %%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' ######################## %%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' ######################### %%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' ########################## %%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' ############################ %%%%%%%%%%%%%%%%%%%%%%%%', & + ' ############################# %%%%%%%%%%%%%%%%%%%%%%%', & + ' ############################## %%%%%%%%%%%%%%%%%%%%%', & + ' ############################# %%%%%%%%%%%%%%%%%%%%', & + ' ########################### %%%%%%%%%%%%%%%%%%%%', & + ' ######################### %%%%%%%%%%%%%%%%%%%%%', & + ' ###################### %%%%%%%%%%%%%%%%%%%%%', & + ' #################### %%%%%%%%%%%%%%%%%%%%%', & + ' ################# %%%%%%%%%%%%%%%%%%%%', & + ' ############## %%%%%%%%%%%%%%%%%%%', & + ' ########### %%%%%%%%%%%%%%%%%%', & + ' ####### %%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%' + ! Write version information write(UNIT=OUTPUT_UNIT, FMT=*) & - ' Copyright: 2011-2016 Massachusetts Institute of Technology' + ' | The OpenMC Monte Carlo Code' write(UNIT=OUTPUT_UNIT, FMT=*) & - ' License: http://openmc.readthedocs.io/en/latest/license.html' - write(UNIT=OUTPUT_UNIT, FMT='(6X,"Version:",8X,I1,".",I1,".",I1)') & + ' Copyright | 2011-2016 Massachusetts Institute of Technology' + write(UNIT=OUTPUT_UNIT, FMT=*) & + ' License | http://openmc.readthedocs.io/en/latest/license.html' + write(UNIT=OUTPUT_UNIT, FMT='(11X,"Version | ",I1,".",I1,".",I1)') & VERSION_MAJOR, VERSION_MINOR, VERSION_RELEASE #ifdef GIT_SHA1 - write(UNIT=OUTPUT_UNIT, FMT='(6X,"Git SHA1:",7X,A)') GIT_SHA1 + write(UNIT=OUTPUT_UNIT, FMT='(10X,"Git SHA1 | ",A)') GIT_SHA1 #endif ! Write the date and time - write(UNIT=OUTPUT_UNIT, FMT='(6X,"Date/Time:",6X,A)') & - time_stamp() + write(UNIT=OUTPUT_UNIT, FMT='(9X,"Date/Time | ",A)') time_stamp() #ifdef MPI ! Write number of processors - write(UNIT=OUTPUT_UNIT, FMT='(6X,"MPI Processes:",2X,A)') & + write(UNIT=OUTPUT_UNIT, FMT='(5X,"MPI Processes | ",A)') & trim(to_str(n_procs)) #endif #ifdef _OPENMP ! Write number of OpenMP threads - write(UNIT=OUTPUT_UNIT, FMT='(6X,"OpenMP Threads:",1X,A)') & + write(UNIT=OUTPUT_UNIT, FMT='(4X,"OpenMP Threads | ",A)') & trim(to_str(omp_get_max_threads())) #endif From bc387186ba6b08ce87685dbd7116e29310ce0f74 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 23 Aug 2016 09:41:53 -0400 Subject: [PATCH 320/417] changed partial current tallies to net current tallies --- examples/xml/pincell/geometry.xml | 14 +- examples/xml/pincell/settings.xml | 12 +- examples/xml/pincell/tallies.xml | 11 +- src/cmfd_data.F90 | 28 +-- src/cmfd_input.F90 | 5 +- src/constants.F90 | 12 +- src/input_xml.F90 | 5 +- src/output.F90 | 24 +- src/tally.F90 | 351 +++++++++++++++++++++++++----- src/trigger.F90 | 12 +- 10 files changed, 356 insertions(+), 118 deletions(-) diff --git a/examples/xml/pincell/geometry.xml b/examples/xml/pincell/geometry.xml index f67f9e74c2..f4e1bf1dd4 100644 --- a/examples/xml/pincell/geometry.xml +++ b/examples/xml/pincell/geometry.xml @@ -8,16 +8,16 @@ --> - - - + + + - - - - + + + + diff --git a/examples/xml/pincell/settings.xml b/examples/xml/pincell/settings.xml index 443af9cde2..9402b979a9 100644 --- a/examples/xml/pincell/settings.xml +++ b/examples/xml/pincell/settings.xml @@ -3,7 +3,7 @@ - 100 + 20 10 1000 @@ -14,8 +14,8 @@ - -0.62992 -0.62992 -1. - 0.62992 0.62992 1. + -8.62992 -8.62992 -1. + 8.62992 8.62992 1. @@ -24,9 +24,9 @@ bounds for a mesh over which the Shannon entropy should be calculated. The extent in the z direction is made arbitrarily large. --> - -0.39218 -0.39218 -1.e50 - 0.39218 0.39218 1.e50 + -3.39218 -3.39218 -1.e50 + 3.39218 3.39218 1.e50 10 10 1 - \ No newline at end of file + diff --git a/examples/xml/pincell/tallies.xml b/examples/xml/pincell/tallies.xml index 73242b9136..2e39c083d4 100644 --- a/examples/xml/pincell/tallies.xml +++ b/examples/xml/pincell/tallies.xml @@ -2,9 +2,9 @@ - 100 100 1 - -0.62992 -0.62992 -1.e50 - 0.62992 0.62992 1.e50 + 2 2 1 + -8.62992 -8.62992 -1.e50 + 8.62992 8.62992 1.e50 @@ -13,4 +13,9 @@ flux fission nu-fission + + + current + + diff --git a/src/cmfd_data.F90 b/src/cmfd_data.F90 index d74c1b17e0..0a1490bb97 100644 --- a/src/cmfd_data.F90 +++ b/src/cmfd_data.F90 @@ -51,8 +51,8 @@ contains subroutine compute_xs() use constants, only: FILTER_MESH, FILTER_ENERGYIN, FILTER_ENERGYOUT, & - FILTER_SURFACE, OUT_LEFT, OUT_RIGHT, OUT_BACK, & - OUT_FRONT, OUT_BOTTOM, OUT_TOP, CMFD_NOACCEL, & + FILTER_SURFACE, LEFT, RIGHT, BACK, & + FRONT, BOTTOM, TOP, CMFD_NOACCEL, & ZERO, ONE, TINY_BIT use error, only: fatal_error use global, only: cmfd, n_cmfd_tallies, cmfd_tallies, meshes,& @@ -237,7 +237,7 @@ contains ! Left surface matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_LEFT + matching_bins(i_filter_surf) = LEFT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t%stride) + 1 ! outgoing cmfd % current(1,h,i,j,k) = t % results(1,score_index) % sum @@ -245,7 +245,7 @@ contains if (i > 1) then matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i-1, j, k /)) - matching_bins(i_filter_surf) = OUT_RIGHT + matching_bins(i_filter_surf) = RIGHT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! incoming cmfd % current(2,h,i,j,k) = t % results(1,score_index) % sum @@ -255,7 +255,7 @@ contains if (i < nx) then matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i+1, j, k /) ) - matching_bins(i_filter_surf) = OUT_LEFT + matching_bins(i_filter_surf) = LEFT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! incoming cmfd % current(3,h,i,j,k) = t % results(1,score_index) % sum @@ -263,7 +263,7 @@ contains matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k /) ) - matching_bins(i_filter_surf) = OUT_RIGHT + matching_bins(i_filter_surf) = RIGHT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! outgoing cmfd % current(4,h,i,j,k) = t % results(1,score_index) % sum @@ -271,7 +271,7 @@ contains ! Back surface matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_BACK + matching_bins(i_filter_surf) = BACK score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! outgoing cmfd % current(5,h,i,j,k) = t % results(1,score_index) % sum @@ -279,7 +279,7 @@ contains if (j > 1) then matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j-1, k /)) - matching_bins(i_filter_surf) = OUT_FRONT + matching_bins(i_filter_surf) = FRONT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! incoming cmfd % current(6,h,i,j,k) = t % results(1,score_index) % sum @@ -289,7 +289,7 @@ contains if (j < ny) then matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j+1, k /)) - matching_bins(i_filter_surf) = OUT_BACK + matching_bins(i_filter_surf) = BACK score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! incoming cmfd % current(7,h,i,j,k) = t % results(1,score_index) % sum @@ -297,7 +297,7 @@ contains matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_FRONT + matching_bins(i_filter_surf) = FRONT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! outgoing cmfd % current(8,h,i,j,k) = t % results(1,score_index) % sum @@ -305,7 +305,7 @@ contains ! Bottom surface matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_BOTTOM + matching_bins(i_filter_surf) = BOTTOM score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! outgoing cmfd % current(9,h,i,j,k) = t % results(1,score_index) % sum @@ -313,7 +313,7 @@ contains if (k > 1) then matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k-1 /)) - matching_bins(i_filter_surf) = OUT_TOP + matching_bins(i_filter_surf) = TOP score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! incoming cmfd % current(10,h,i,j,k) = t % results(1,score_index) % sum @@ -323,7 +323,7 @@ contains if (k < nz) then matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k+1 /)) - matching_bins(i_filter_surf) = OUT_BOTTOM + matching_bins(i_filter_surf) = BOTTOM score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! incoming cmfd % current(11,h,i,j,k) = t % results(1,score_index) % sum @@ -331,7 +331,7 @@ contains matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_TOP + matching_bins(i_filter_surf) = TOP score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 ! outgoing cmfd % current(12,h,i,j,k) = t % results(1,score_index) % sum diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index 5fe44ad436..77e8f4348c 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -534,10 +534,9 @@ contains filt % n_bins = 2 * m % n_dimension allocate(filt % surfaces(2 * m % n_dimension)) if (m % n_dimension == 2) then - filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT /) + filt % surfaces = (/ LEFT, RIGHT, BACK, FRONT /) elseif (m % n_dimension == 3) then - filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT, & - OUT_BOTTOM, OUT_TOP /) + filt % surfaces = (/ LEFT, RIGHT, BACK, FRONT, BOTTOM, TOP /) end if end select t % find_filter(FILTER_SURFACE) = n_filters diff --git a/src/constants.F90 b/src/constants.F90 index 6d5f2fc107..ceb68b9e2d 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -359,12 +359,12 @@ module constants ! Tally surface current directions integer, parameter :: & - OUT_LEFT = 1, & ! x min - OUT_RIGHT = 2, & ! x max - OUT_BACK = 3, & ! y min - OUT_FRONT = 4, & ! y max - OUT_BOTTOM = 5, & ! z min - OUT_TOP = 6 ! z max + LEFT = 1, & ! x min + RIGHT = 2, & ! x max + BACK = 3, & ! y min + FRONT = 4, & ! y max + BOTTOM = 5, & ! z min + TOP = 6 ! z max ! Tally trigger types and threshold integer, parameter :: & diff --git a/src/input_xml.F90 b/src/input_xml.F90 index a60d8196ea..8de1983865 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3701,10 +3701,9 @@ contains filt % n_bins = 2 * m % n_dimension allocate(filt % surfaces(2 * m % n_dimension)) if (m % n_dimension == 2) then - filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT /) + filt % surfaces = (/ LEFT, RIGHT, BACK, FRONT /) elseif (m % n_dimension == 3) then - filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT,& - OUT_BOTTOM, OUT_TOP /) + filt % surfaces = (/ LEFT, RIGHT, BACK, FRONT, BOTTOM, TOP /) end if end select t % find_filter(FILTER_SURFACE) = size(t % filters) diff --git a/src/output.F90 b/src/output.F90 index 9e23f11d88..7aacd67136 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -1037,66 +1037,66 @@ contains ! Left Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_LEFT + matching_bins(i_filter_surf) = LEFT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Left", & + "Net Current on Left", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) ! Right Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_RIGHT + matching_bins(i_filter_surf) = RIGHT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Right", & + "Net Current on Right", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) ! Back Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_BACK + matching_bins(i_filter_surf) = BACK filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Back", & + "Net Current on Back", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) ! Front Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_FRONT + matching_bins(i_filter_surf) = FRONT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Front", & + "Net Current on Front", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) ! Bottom Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_BOTTOM + matching_bins(i_filter_surf) = BOTTOM filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Bottom", & + "Net Current on Bottom", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) ! Top Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = OUT_TOP + matching_bins(i_filter_surf) = TOP filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current to Top", & + "Net Current on Top", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) end do diff --git a/src/tally.F90 b/src/tally.F90 index 3c3dc6a693..6bb36d9ce1 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2367,7 +2367,7 @@ contains call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) - ! Check to if start or end is in mesh -- if not, check if track still + ! Check to see if start or end is in mesh -- if not, check if track still ! intersects with mesh if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then if (m % n_dimension == 2) then @@ -2407,8 +2407,10 @@ contains if (uvw(3) > 0) then do j = ijk0(3), ijk1(3) - 1 ijk0(3) = j + + ! OUT_TOP if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_TOP + matching_bins(i_filter_surf) = TOP matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2417,12 +2419,14 @@ contains t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt end if - end do - else - do j = ijk0(3), ijk1(3) + 1, -1 - ijk0(3) = j - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_BOTTOM + + ! IN_BOTTOM + if (ijk0(1) >= 1 .and. ijk0(2) >= 1 .and. ijk0(3) >= 0 .and. & + ijk0(1) <= m % dimension(1) .and. & + ijk0(2) <= m % dimension(2) .and. & + ijk0(3) < m % dimension(3)) then + ijk0(3) = ijk0(3) + 1 + matching_bins(i_filter_surf) = BOTTOM matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2430,6 +2434,40 @@ contains !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt + ijk0(3) = ijk0(3) - 1 + end if + end do + else + do j = ijk0(3), ijk1(3) + 1, -1 + ijk0(3) = j + + ! OUT_BOTTOM + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = BOTTOM + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt + end if + + ! IN_TOP + if (ijk0(1) >= 1 .and. ijk0(2) >= 1 .and. ijk0(3) > 1 .and. & + ijk0(1) <= m % dimension(1) .and. & + ijk0(2) <= m % dimension(2) .and. & + ijk0(3) <= m % dimension(3) + 1) then + ijk0(3) = ijk0(3) - 1 + matching_bins(i_filter_surf) = TOP + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt + ijk0(3) = ijk0(3) + 1 end if end do end if @@ -2439,8 +2477,10 @@ contains if (uvw(2) > 0) then do j = ijk0(2), ijk1(2) - 1 ijk0(2) = j + + ! OUT_FRONT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_FRONT + matching_bins(i_filter_surf) = FRONT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2449,12 +2489,14 @@ contains t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt end if - end do - else - do j = ijk0(2), ijk1(2) + 1, -1 - ijk0(2) = j - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_BACK + + ! IN_BACK + if (ijk0(1) >= 1 .and. ijk0(2) >= 0 .and. ijk0(3) >= 1 .and. & + ijk0(1) <= m % dimension(1) .and. & + ijk0(2) < m % dimension(2) .and. & + ijk0(3) <= m % dimension(3)) then + ijk0(2) = ijk0(2) + 1 + matching_bins(i_filter_surf) = BACK matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2462,6 +2504,40 @@ contains !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt + ijk0(2) = ijk0(2) - 1 + end if + end do + else + do j = ijk0(2), ijk1(2) + 1, -1 + ijk0(2) = j + + ! OUT_BACK + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = BACK + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt + end if + + ! IN_FRONT + if (ijk0(1) >= 1 .and. ijk0(2) > 1 .and. ijk0(3) >= 1 .and. & + ijk0(1) <= m % dimension(1) .and. & + ijk0(2) <= m % dimension(2) + 1 .and. & + ijk0(3) <= m % dimension(3)) then + ijk0(2) = ijk0(2) - 1 + matching_bins(i_filter_surf) = FRONT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt + ijk0(2) = ijk0(2) + 1 end if end do end if @@ -2471,8 +2547,10 @@ contains if (uvw(1) > 0) then do j = ijk0(1), ijk1(1) - 1 ijk0(1) = j + + ! OUT_RIGHT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_RIGHT + matching_bins(i_filter_surf) = RIGHT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2481,12 +2559,14 @@ contains t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt end if - end do - else - do j = ijk0(1), ijk1(1) + 1, -1 - ijk0(1) = j - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_LEFT + + ! IN_LEFT + if (ijk0(1) >= 0 .and. ijk0(2) >= 1 .and. ijk0(3) >= 1 .and. & + ijk0(1) < m % dimension(1) .and. & + ijk0(2) <= m % dimension(2) .and. & + ijk0(3) <= m % dimension(3)) then + ijk0(1) = ijk0(1) + 1 + matching_bins(i_filter_surf) = LEFT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2494,6 +2574,40 @@ contains !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt + ijk0(1) = ijk0(1) - 1 + end if + end do + else + do j = ijk0(1), ijk1(1) + 1, -1 + ijk0(1) = j + + ! OUT_LEFT + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = LEFT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt + end if + + ! IN_RIGHT + if (ijk0(1) > 1 .and. ijk0(2) >= 1 .and. ijk0(3) >= 1 .and. & + ijk0(1) <= m % dimension(1) + 1 .and. & + ijk0(2) <= m % dimension(2) .and. & + ijk0(3) <= m % dimension(3)) then + ijk0(1) = ijk0(1) - 1 + matching_bins(i_filter_surf) = RIGHT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt + ijk0(1) = ijk0(1) + 1 end if end do end if @@ -2533,94 +2647,215 @@ contains distance = minval(d) - ! Now use the minimum distance and diretion of the particle to + ! Now use the minimum distance and direction of the particle to ! determine which surface was crossed if (distance == d(1)) then if (uvw(1) > 0) then - ! Crossing into right mesh cell -- this is treated as outgoing - ! current from (i,j,k) + + ! OUT_RIGHT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_RIGHT + matching_bins(i_filter_surf) = RIGHT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt end if + + ! IN_LEFT + if (ijk0(1) >= 0 .and. ijk0(2) >= 1 .and. ijk0(3) >= 1 .and. & + ijk0(1) < m % dimension(1) .and. & + ijk0(2) <= m % dimension(2) .and. & + ijk0(3) <= m % dimension(3)) then + ijk0(1) = ijk0(1) + 1 + matching_bins(i_filter_surf) = LEFT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + ijk0(1) = ijk0(1) - 1 + end if + ijk0(1) = ijk0(1) + 1 xyz_cross(1) = xyz_cross(1) + m % width(1) else - ! Crossing into left mesh cell -- this is treated as outgoing - ! current in (i,j,k) + + ! OUT_LEFT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_LEFT + matching_bins(i_filter_surf) = LEFT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt end if + + ! IN_RIGHT + if (ijk0(1) > 1 .and. ijk0(2) >= 1 .and. ijk0(3) >= 1 .and. & + ijk0(1) <= m % dimension(1) + 1 .and. & + ijk0(2) <= m % dimension(2) .and. & + ijk0(3) <= m % dimension(3)) then + ijk0(1) = ijk0(1) - 1 + matching_bins(i_filter_surf) = RIGHT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt + ijk0(1) = ijk0(1) + 1 + end if + ijk0(1) = ijk0(1) - 1 xyz_cross(1) = xyz_cross(1) - m % width(1) end if elseif (distance == d(2)) then if (uvw(2) > 0) then - ! Crossing into front mesh cell -- this is treated as outgoing - ! current in (i,j,k) + + ! OUT_FRONT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_FRONT + matching_bins(i_filter_surf) = FRONT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt end if + + ! IN_BACK + if (ijk0(1) >= 1 .and. ijk0(2) >= 0 .and. ijk0(3) >= 1 .and. & + ijk0(1) <= m % dimension(1) .and. & + ijk0(2) < m % dimension(2) .and. & + ijk0(3) <= m % dimension(3)) then + ijk0(2) = ijk0(2) + 1 + matching_bins(i_filter_surf) = BACK + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + ijk0(2) = ijk0(2) - 1 + end if + ijk0(2) = ijk0(2) + 1 xyz_cross(2) = xyz_cross(2) + m % width(2) else - ! Crossing into back mesh cell -- this is treated as outgoing - ! current in (i,j,k) + + ! OUT_BACK if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_BACK + matching_bins(i_filter_surf) = BACK matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt end if + + ! IN_FRONT + if (ijk0(1) >= 1 .and. ijk0(2) > 1 .and. ijk0(3) >= 1 .and. & + ijk0(1) <= m % dimension(1) .and. & + ijk0(2) <= m % dimension(2) + 1 .and. & + ijk0(3) <= m % dimension(3)) then + ijk0(2) = ijk0(2) - 1 + matching_bins(i_filter_surf) = FRONT + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt + ijk0(2) = ijk0(2) + 1 + end if + ijk0(2) = ijk0(2) - 1 xyz_cross(2) = xyz_cross(2) - m % width(2) end if else if (distance == d(3)) then if (uvw(3) > 0) then - ! Crossing into top mesh cell -- this is treated as outgoing - ! current in (i,j,k) + + ! OUT_TOP if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_TOP + matching_bins(i_filter_surf) = TOP matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt end if + + ! IN_BOTTOM + if (ijk0(1) >= 1 .and. ijk0(2) >= 1 .and. ijk0(3) >= 0 .and. & + ijk0(1) <= m % dimension(1) .and. & + ijk0(2) <= m % dimension(2) .and. & + ijk0(3) < m % dimension(3)) then + ijk0(3) = ijk0(3) + 1 + matching_bins(i_filter_surf) = BOTTOM + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + ijk0(3) = ijk0(3) - 1 + end if + ijk0(3) = ijk0(3) + 1 xyz_cross(3) = xyz_cross(3) + m % width(3) else - ! Crossing into bottom mesh cell -- this is treated as outgoing - ! current in (i,j,k) + + ! OUT_BOTTOM if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_BOTTOM + matching_bins(i_filter_surf) = BOTTOM matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt end if + + ! IN_TOP + if (ijk0(1) >= 1 .and. ijk0(2) >= 1 .and. ijk0(3) > 1 .and. & + ijk0(1) <= m % dimension(1) .and. & + ijk0(2) <= m % dimension(2) .and. & + ijk0(3) <= m % dimension(3) + 1) then + ijk0(3) = ijk0(3) - 1 + matching_bins(i_filter_surf) = TOP + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value - p % wgt + ijk0(3) = ijk0(3) + 1 + end if + ijk0(3) = ijk0(3) - 1 xyz_cross(3) = xyz_cross(3) - m % width(3) end if end if - ! Determine scoring index - if (matching_bins(i_filter_surf) > 0) then - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - - ! Check for errors - if (filter_index <= 0 .or. filter_index > & - t % total_filter_bins) then - call fatal_error("Score index outside range.") - end if - - ! Add to surface current tally -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - ! Calculate new coordinates xyz0 = xyz0 + distance * uvw end do diff --git a/src/trigger.F90 b/src/trigger.F90 index 4af03a2dea..6f886cd8e0 100644 --- a/src/trigger.F90 +++ b/src/trigger.F90 @@ -332,7 +332,7 @@ contains mesh_indices_to_bin(m, (/ i, j, k /)) ! Left Surface - matching_bins(i_filter_surf) = OUT_LEFT + matching_bins(i_filter_surf) = LEFT filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -345,7 +345,7 @@ contains trigger % variance = std_dev**2 ! Right Surface - matching_bins(i_filter_surf) = OUT_RIGHT + matching_bins(i_filter_surf) = RIGHT filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -358,7 +358,7 @@ contains trigger % variance = trigger % std_dev**2 ! Back Surface - matching_bins(i_filter_surf) = OUT_BACK + matching_bins(i_filter_surf) = BACK filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -371,7 +371,7 @@ contains trigger % variance = trigger % std_dev**2 ! Front Surface - matching_bins(i_filter_surf) = OUT_FRONT + matching_bins(i_filter_surf) = FRONT filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -384,7 +384,7 @@ contains trigger % variance = trigger % std_dev**2 ! Bottom Surface - matching_bins(i_filter_surf) = OUT_BOTTOM + matching_bins(i_filter_surf) = BOTTOM filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -397,7 +397,7 @@ contains trigger % variance = trigger % std_dev**2 ! Top Surface - matching_bins(i_filter_surf) = OUT_TOP + matching_bins(i_filter_surf) = TOP filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) From 75a7986bb792115295a55ee6f25b40dec962b76e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 23 Aug 2016 06:26:20 -0500 Subject: [PATCH 321/417] Make ASCII logo a little smaller --- src/output.F90 | 55 ++++++++++++++++++++++---------------------------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/src/output.F90 b/src/output.F90 index 29950a0bc2..dc007aab61 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -38,37 +38,30 @@ contains use omp_lib #endif - write(UNIT=OUTPUT_UNIT, FMT='(/29(A/))') & - ' %%%%%%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' ################### %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' ###################### %%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' ####################### %%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' ######################## %%%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' ######################### %%%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' ########################## %%%%%%%%%%%%%%%%%%%%%%%%%%', & - ' ############################ %%%%%%%%%%%%%%%%%%%%%%%%', & - ' ############################# %%%%%%%%%%%%%%%%%%%%%%%', & - ' ############################## %%%%%%%%%%%%%%%%%%%%%', & - ' ############################# %%%%%%%%%%%%%%%%%%%%', & - ' ########################### %%%%%%%%%%%%%%%%%%%%', & - ' ######################### %%%%%%%%%%%%%%%%%%%%%', & - ' ###################### %%%%%%%%%%%%%%%%%%%%%', & - ' #################### %%%%%%%%%%%%%%%%%%%%%', & - ' ################# %%%%%%%%%%%%%%%%%%%%', & - ' ############## %%%%%%%%%%%%%%%%%%%', & - ' ########### %%%%%%%%%%%%%%%%%%', & - ' ####### %%%%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%%%' - + write(UNIT=OUTPUT_UNIT, FMT='(/23(A/))') & + ' %%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%%%%%%%%%%%%%', & + ' ############### %%%%%%%%%%%%%%%%%%%%%%%%', & + ' ################## %%%%%%%%%%%%%%%%%%%%%%%', & + ' ################### %%%%%%%%%%%%%%%%%%%%%%%', & + ' #################### %%%%%%%%%%%%%%%%%%%%%%', & + ' ##################### %%%%%%%%%%%%%%%%%%%%%', & + ' ###################### %%%%%%%%%%%%%%%%%%%%', & + ' ####################### %%%%%%%%%%%%%%%%%%', & + ' ######################## %%%%%%%%%%%%%%%%%', & + ' ###################### %%%%%%%%%%%%%%%%%', & + ' #################### %%%%%%%%%%%%%%%%%', & + ' ################# %%%%%%%%%%%%%%%%%', & + ' ############## %%%%%%%%%%%%%%%%', & + ' ########### %%%%%%%%%%%%%%%', & + ' ####### %%%%%%%%%%%%%%', & + ' %%%%%%%%%%%%' ! Write version information write(UNIT=OUTPUT_UNIT, FMT=*) & From 6b64cc7783e86fd3c2bc993921ca40a9e06dd8df Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 23 Aug 2016 10:23:52 -0500 Subject: [PATCH 322/417] Add SVG version of logo (thanks @samuelshaner!) --- docs/source/_images/openmc_logo.svg | 60 +++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs/source/_images/openmc_logo.svg diff --git a/docs/source/_images/openmc_logo.svg b/docs/source/_images/openmc_logo.svg new file mode 100644 index 0000000000..a7352b79ab --- /dev/null +++ b/docs/source/_images/openmc_logo.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + From 93862cea249e4441beb714e719120da3bd2b7d0a Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 23 Aug 2016 11:33:23 -0400 Subject: [PATCH 323/417] changed current tallying so in/out partial currents are tallies separately --- src/cmfd_data.F90 | 122 ++++++++++++++++---------------------------- src/cmfd_header.F90 | 2 +- src/cmfd_input.F90 | 7 ++- src/constants.F90 | 18 ++++--- src/input_xml.F90 | 11 ++-- src/output.F90 | 85 +++++++++++++++++++++++++----- src/tally.F90 | 72 +++++++++++++------------- src/trigger.F90 | 12 ++--- 8 files changed, 185 insertions(+), 144 deletions(-) diff --git a/src/cmfd_data.F90 b/src/cmfd_data.F90 index 0a1490bb97..befdc9c465 100644 --- a/src/cmfd_data.F90 +++ b/src/cmfd_data.F90 @@ -51,8 +51,9 @@ contains subroutine compute_xs() use constants, only: FILTER_MESH, FILTER_ENERGYIN, FILTER_ENERGYOUT, & - FILTER_SURFACE, LEFT, RIGHT, BACK, & - FRONT, BOTTOM, TOP, CMFD_NOACCEL, & + FILTER_SURFACE, OUT_LEFT, OUT_RIGHT, OUT_BACK, & + OUT_FRONT, OUT_BOTTOM, OUT_TOP, IN_LEFT, IN_RIGHT, & + IN_BACK, IN_FRONT, IN_BOTTOM, IN_TOP, CMFD_NOACCEL, & ZERO, ONE, TINY_BIT use error, only: fatal_error use global, only: cmfd, n_cmfd_tallies, cmfd_tallies, meshes,& @@ -234,106 +235,74 @@ contains matching_bins(i_filter_ein) = ng - h + 1 end if - ! Left surface + ! Get the bin for this mesh cell matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & (/ i, j, k /)) - matching_bins(i_filter_surf) = LEFT + + ! Left surface + matching_bins(i_filter_surf) = OUT_LEFT score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t%stride) + 1 ! outgoing + * t % stride) + 1 cmfd % current(1,h,i,j,k) = t % results(1,score_index) % sum - if (i > 1) then - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i-1, j, k /)) - matching_bins(i_filter_surf) = RIGHT - score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! incoming - cmfd % current(2,h,i,j,k) = t % results(1,score_index) % sum - end if + matching_bins(i_filter_surf) = IN_LEFT + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + cmfd % current(2,h,i,j,k) = t % results(1,score_index) % sum ! Right surface - if (i < nx) then - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i+1, j, k /) ) - matching_bins(i_filter_surf) = LEFT - score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! incoming - cmfd % current(3,h,i,j,k) = t % results(1,score_index) % sum - end if - - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k /) ) - matching_bins(i_filter_surf) = RIGHT + matching_bins(i_filter_surf) = OUT_RIGHT score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! outgoing + * t % stride) + 1 + cmfd % current(3,h,i,j,k) = t % results(1,score_index) % sum + + matching_bins(i_filter_surf) = IN_RIGHT + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 cmfd % current(4,h,i,j,k) = t % results(1,score_index) % sum ! Back surface - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k /)) - matching_bins(i_filter_surf) = BACK + matching_bins(i_filter_surf) = OUT_BACK score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! outgoing + * t % stride) + 1 cmfd % current(5,h,i,j,k) = t % results(1,score_index) % sum - if (j > 1) then - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j-1, k /)) - matching_bins(i_filter_surf) = FRONT - score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! incoming - cmfd % current(6,h,i,j,k) = t % results(1,score_index) % sum - end if + matching_bins(i_filter_surf) = IN_BACK + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + cmfd % current(6,h,i,j,k) = t % results(1,score_index) % sum ! Front surface - if (j < ny) then - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j+1, k /)) - matching_bins(i_filter_surf) = BACK - score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! incoming - cmfd % current(7,h,i,j,k) = t % results(1,score_index) % sum - end if - - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k /)) - matching_bins(i_filter_surf) = FRONT + matching_bins(i_filter_surf) = OUT_FRONT score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! outgoing + * t % stride) + 1 + cmfd % current(7,h,i,j,k) = t % results(1,score_index) % sum + + matching_bins(i_filter_surf) = IN_FRONT + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 cmfd % current(8,h,i,j,k) = t % results(1,score_index) % sum ! Bottom surface - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k /)) - matching_bins(i_filter_surf) = BOTTOM + matching_bins(i_filter_surf) = OUT_BOTTOM score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! outgoing + * t % stride) + 1 cmfd % current(9,h,i,j,k) = t % results(1,score_index) % sum - if (k > 1) then - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k-1 /)) - matching_bins(i_filter_surf) = TOP - score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! incoming - cmfd % current(10,h,i,j,k) = t % results(1,score_index) % sum - end if + matching_bins(i_filter_surf) = IN_BOTTOM + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + cmfd % current(10,h,i,j,k) = t % results(1,score_index) % sum ! Top surface - if (k < nz) then - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k+1 /)) - matching_bins(i_filter_surf) = BOTTOM - score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! incoming - cmfd % current(11,h,i,j,k) = t % results(1,score_index) % sum - end if - - matching_bins(i_filter_mesh) = mesh_indices_to_bin(m, & - (/ i, j, k /)) - matching_bins(i_filter_surf) = TOP + matching_bins(i_filter_surf) = OUT_TOP score_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 ! outgoing + * t % stride) + 1 + cmfd % current(11,h,i,j,k) = t % results(1,score_index) % sum + + matching_bins(i_filter_surf) = IN_TOP + score_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 cmfd % current(12,h,i,j,k) = t % results(1,score_index) % sum end if TALLY @@ -478,7 +447,6 @@ contains ! Get leakage leakage = ZERO LEAK: do l = 1, 3 - leakage = leakage + ((cmfd % current(4*l,g,i,j,k) - & cmfd % current(4*l-1,g,i,j,k))) - & ((cmfd % current(4*l-2,g,i,j,k) - & diff --git a/src/cmfd_header.F90 b/src/cmfd_header.F90 index e743cc928e..7d253c3081 100644 --- a/src/cmfd_header.F90 +++ b/src/cmfd_header.F90 @@ -126,7 +126,7 @@ contains if (.not. allocated(this % hxyz)) allocate(this % hxyz(3,nx,ny,nz)) ! Allocate surface currents - if (.not. allocated(this % current)) allocate(this % current(12,ng,nx,ny,nz)) + if (.not. allocated(this % current)) allocate(this % current(6,ng,nx,ny,nz)) ! Allocate source distributions if (.not. allocated(this % cmfd_src)) allocate(this % cmfd_src(ng,nx,ny,nz)) diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index 77e8f4348c..50f078a182 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -534,9 +534,12 @@ contains filt % n_bins = 2 * m % n_dimension allocate(filt % surfaces(2 * m % n_dimension)) if (m % n_dimension == 2) then - filt % surfaces = (/ LEFT, RIGHT, BACK, FRONT /) + filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT, & + IN_LEFT, IN_RIGHT, IN_BACK, IN_FRONT /) elseif (m % n_dimension == 3) then - filt % surfaces = (/ LEFT, RIGHT, BACK, FRONT, BOTTOM, TOP /) + filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT, & + OUT_BOTTOM, OUT_TOP, IN_LEFT, IN_RIGHT, IN_BACK, IN_FRONT, & + IN_BOTTOM, IN_TOP /) end if end select t % find_filter(FILTER_SURFACE) = n_filters diff --git a/src/constants.F90 b/src/constants.F90 index ceb68b9e2d..481ca8e033 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -359,12 +359,18 @@ module constants ! Tally surface current directions integer, parameter :: & - LEFT = 1, & ! x min - RIGHT = 2, & ! x max - BACK = 3, & ! y min - FRONT = 4, & ! y max - BOTTOM = 5, & ! z min - TOP = 6 ! z max + OUT_LEFT = 1, & ! x min + OUT_RIGHT = 2, & ! x max + OUT_BACK = 3, & ! y min + OUT_FRONT = 4, & ! y max + OUT_BOTTOM = 5, & ! z min + OUT_TOP = 6, & ! z max + IN_LEFT = 7, & ! x min + IN_RIGHT = 8, & ! x max + IN_BACK = 9, & ! y min + IN_FRONT = 10, & ! y max + IN_BOTTOM = 11, & ! z min + IN_TOP = 12 ! z max ! Tally trigger types and threshold integer, parameter :: & diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 8de1983865..bcdf310e80 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3698,12 +3698,15 @@ contains allocate(SurfaceFilter :: t % filters(n_filters) % obj) select type (filt => t % filters(size(t % filters)) % obj) type is (SurfaceFilter) - filt % n_bins = 2 * m % n_dimension - allocate(filt % surfaces(2 * m % n_dimension)) + filt % n_bins = 4 * m % n_dimension + allocate(filt % surfaces(4 * m % n_dimension)) if (m % n_dimension == 2) then - filt % surfaces = (/ LEFT, RIGHT, BACK, FRONT /) + filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT, & + IN_LEFT, IN_RIGHT, IN_BACK, IN_FRONT /) elseif (m % n_dimension == 3) then - filt % surfaces = (/ LEFT, RIGHT, BACK, FRONT, BOTTOM, TOP /) + filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT, & + OUT_BOTTOM, OUT_TOP, IN_LEFT, IN_RIGHT, IN_BACK, & + IN_FRONT, IN_BOTTOM, IN_TOP /) end if end select t % find_filter(FILTER_SURFACE) = size(t % filters) diff --git a/src/output.F90 b/src/output.F90 index 7aacd67136..eae6547872 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -1034,43 +1034,85 @@ contains matching_bins(i_filter_ein))) end if + ! Get the bin for this mesh cell + ! Left Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = LEFT + matching_bins(i_filter_surf) = OUT_LEFT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Net Current on Left", & + "Outgoing Current on Left", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j, k /)) + matching_bins(i_filter_surf) = IN_LEFT + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current on Left", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) ! Right Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = RIGHT + matching_bins(i_filter_surf) = OUT_RIGHT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Net Current on Right", & + "Outgoing Current on Right", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j, k /)) + matching_bins(i_filter_surf) = IN_RIGHT + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current on Right", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) ! Back Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = BACK + matching_bins(i_filter_surf) = OUT_BACK filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Net Current on Back", & + "Outgoing Current on Back", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j, k /)) + matching_bins(i_filter_surf) = IN_BACK + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current on Back", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) ! Front Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = FRONT + matching_bins(i_filter_surf) = OUT_FRONT + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Net Current on Front", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j, k /)) + matching_bins(i_filter_surf) = IN_FRONT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & @@ -1081,26 +1123,45 @@ contains ! Bottom Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = BOTTOM + matching_bins(i_filter_surf) = OUT_BOTTOM filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Net Current on Bottom", & + "Outgoing Current on Bottom", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j, k /)) + matching_bins(i_filter_surf) = IN_BOTTOM + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current on Bottom", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) ! Top Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) - matching_bins(i_filter_surf) = TOP + matching_bins(i_filter_surf) = OUT_TOP filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Net Current on Top", & + "Outgoing Current on Top", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, (/ i, j, k /)) + matching_bins(i_filter_surf) = IN_TOP + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current on Top", & to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) end do - end do end do end do diff --git a/src/tally.F90 b/src/tally.F90 index 6bb36d9ce1..7f743d134b 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2410,7 +2410,7 @@ contains ! OUT_TOP if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = TOP + matching_bins(i_filter_surf) = OUT_TOP matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2426,7 +2426,7 @@ contains ijk0(2) <= m % dimension(2) .and. & ijk0(3) < m % dimension(3)) then ijk0(3) = ijk0(3) + 1 - matching_bins(i_filter_surf) = BOTTOM + matching_bins(i_filter_surf) = IN_BOTTOM matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2443,14 +2443,14 @@ contains ! OUT_BOTTOM if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = BOTTOM + matching_bins(i_filter_surf) = OUT_BOTTOM matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt end if ! IN_TOP @@ -2459,14 +2459,14 @@ contains ijk0(2) <= m % dimension(2) .and. & ijk0(3) <= m % dimension(3) + 1) then ijk0(3) = ijk0(3) - 1 - matching_bins(i_filter_surf) = TOP + matching_bins(i_filter_surf) = IN_TOP matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt ijk0(3) = ijk0(3) + 1 end if end do @@ -2480,7 +2480,7 @@ contains ! OUT_FRONT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = FRONT + matching_bins(i_filter_surf) = OUT_FRONT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2496,7 +2496,7 @@ contains ijk0(2) < m % dimension(2) .and. & ijk0(3) <= m % dimension(3)) then ijk0(2) = ijk0(2) + 1 - matching_bins(i_filter_surf) = BACK + matching_bins(i_filter_surf) = IN_BACK matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2513,14 +2513,14 @@ contains ! OUT_BACK if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = BACK + matching_bins(i_filter_surf) = OUT_BACK matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt end if ! IN_FRONT @@ -2529,14 +2529,14 @@ contains ijk0(2) <= m % dimension(2) + 1 .and. & ijk0(3) <= m % dimension(3)) then ijk0(2) = ijk0(2) - 1 - matching_bins(i_filter_surf) = FRONT + matching_bins(i_filter_surf) = IN_FRONT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt ijk0(2) = ijk0(2) + 1 end if end do @@ -2550,7 +2550,7 @@ contains ! OUT_RIGHT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = RIGHT + matching_bins(i_filter_surf) = OUT_RIGHT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2566,7 +2566,7 @@ contains ijk0(2) <= m % dimension(2) .and. & ijk0(3) <= m % dimension(3)) then ijk0(1) = ijk0(1) + 1 - matching_bins(i_filter_surf) = LEFT + matching_bins(i_filter_surf) = IN_LEFT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2583,14 +2583,14 @@ contains ! OUT_LEFT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = LEFT + matching_bins(i_filter_surf) = OUT_LEFT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt end if ! IN_RIGHT @@ -2599,14 +2599,14 @@ contains ijk0(2) <= m % dimension(2) .and. & ijk0(3) <= m % dimension(3)) then ijk0(1) = ijk0(1) - 1 - matching_bins(i_filter_surf) = RIGHT + matching_bins(i_filter_surf) = IN_RIGHT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt ijk0(1) = ijk0(1) + 1 end if end do @@ -2655,7 +2655,7 @@ contains ! OUT_RIGHT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = RIGHT + matching_bins(i_filter_surf) = OUT_RIGHT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2671,7 +2671,7 @@ contains ijk0(2) <= m % dimension(2) .and. & ijk0(3) <= m % dimension(3)) then ijk0(1) = ijk0(1) + 1 - matching_bins(i_filter_surf) = LEFT + matching_bins(i_filter_surf) = IN_LEFT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2688,14 +2688,14 @@ contains ! OUT_LEFT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = LEFT + matching_bins(i_filter_surf) = OUT_LEFT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt end if ! IN_RIGHT @@ -2704,14 +2704,14 @@ contains ijk0(2) <= m % dimension(2) .and. & ijk0(3) <= m % dimension(3)) then ijk0(1) = ijk0(1) - 1 - matching_bins(i_filter_surf) = RIGHT + matching_bins(i_filter_surf) = IN_RIGHT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt ijk0(1) = ijk0(1) + 1 end if @@ -2723,7 +2723,7 @@ contains ! OUT_FRONT if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = FRONT + matching_bins(i_filter_surf) = OUT_FRONT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2739,7 +2739,7 @@ contains ijk0(2) < m % dimension(2) .and. & ijk0(3) <= m % dimension(3)) then ijk0(2) = ijk0(2) + 1 - matching_bins(i_filter_surf) = BACK + matching_bins(i_filter_surf) = IN_BACK matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2756,14 +2756,14 @@ contains ! OUT_BACK if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = BACK + matching_bins(i_filter_surf) = OUT_BACK matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt end if ! IN_FRONT @@ -2772,14 +2772,14 @@ contains ijk0(2) <= m % dimension(2) + 1 .and. & ijk0(3) <= m % dimension(3)) then ijk0(2) = ijk0(2) - 1 - matching_bins(i_filter_surf) = FRONT + matching_bins(i_filter_surf) = IN_FRONT matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt ijk0(2) = ijk0(2) + 1 end if @@ -2791,7 +2791,7 @@ contains ! OUT_TOP if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = TOP + matching_bins(i_filter_surf) = OUT_TOP matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2807,7 +2807,7 @@ contains ijk0(2) <= m % dimension(2) .and. & ijk0(3) < m % dimension(3)) then ijk0(3) = ijk0(3) + 1 - matching_bins(i_filter_surf) = BOTTOM + matching_bins(i_filter_surf) = IN_BOTTOM matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2824,14 +2824,14 @@ contains ! OUT_BOTTOM if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = BOTTOM + matching_bins(i_filter_surf) = OUT_BOTTOM matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt end if ! IN_TOP @@ -2840,14 +2840,14 @@ contains ijk0(2) <= m % dimension(2) .and. & ijk0(3) <= m % dimension(3) + 1) then ijk0(3) = ijk0(3) - 1 - matching_bins(i_filter_surf) = TOP + matching_bins(i_filter_surf) = IN_TOP matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 !$omp atomic t % results(1, filter_index) % value = & - t % results(1, filter_index) % value - p % wgt + t % results(1, filter_index) % value + p % wgt ijk0(3) = ijk0(3) + 1 end if diff --git a/src/trigger.F90 b/src/trigger.F90 index 6f886cd8e0..4af03a2dea 100644 --- a/src/trigger.F90 +++ b/src/trigger.F90 @@ -332,7 +332,7 @@ contains mesh_indices_to_bin(m, (/ i, j, k /)) ! Left Surface - matching_bins(i_filter_surf) = LEFT + matching_bins(i_filter_surf) = OUT_LEFT filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -345,7 +345,7 @@ contains trigger % variance = std_dev**2 ! Right Surface - matching_bins(i_filter_surf) = RIGHT + matching_bins(i_filter_surf) = OUT_RIGHT filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -358,7 +358,7 @@ contains trigger % variance = trigger % std_dev**2 ! Back Surface - matching_bins(i_filter_surf) = BACK + matching_bins(i_filter_surf) = OUT_BACK filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -371,7 +371,7 @@ contains trigger % variance = trigger % std_dev**2 ! Front Surface - matching_bins(i_filter_surf) = FRONT + matching_bins(i_filter_surf) = OUT_FRONT filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -384,7 +384,7 @@ contains trigger % variance = trigger % std_dev**2 ! Bottom Surface - matching_bins(i_filter_surf) = BOTTOM + matching_bins(i_filter_surf) = OUT_BOTTOM filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) @@ -397,7 +397,7 @@ contains trigger % variance = trigger % std_dev**2 ! Top Surface - matching_bins(i_filter_surf) = TOP + matching_bins(i_filter_surf) = OUT_TOP filter_index = & sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) From ba42547eb3a0bb06c83094f5b21f26530eaf3098 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 23 Aug 2016 15:26:24 -0400 Subject: [PATCH 324/417] added tally-arithmetic.ipynb with six-factor formula --- .../pythonapi/examples/tally-arithmetic.ipynb | 533 ++++++++++++------ openmc/filter.py | 18 +- 2 files changed, 360 insertions(+), 191 deletions(-) diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index dfd493f168..088af07b30 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -136,8 +136,8 @@ "max_x = openmc.XPlane(x0=+0.63, boundary_type='reflective')\n", "min_y = openmc.YPlane(y0=-0.63, boundary_type='reflective')\n", "max_y = openmc.YPlane(y0=+0.63, boundary_type='reflective')\n", - "min_z = openmc.ZPlane(z0=-0.63, boundary_type='reflective')\n", - "max_z = openmc.ZPlane(z0=+0.63, boundary_type='reflective')" + "min_z = openmc.ZPlane(z0=-100., boundary_type='vacuum')\n", + "max_z = openmc.ZPlane(z0=+100., boundary_type='vacuum')" ] }, { @@ -264,7 +264,7 @@ "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", + "bounds = [-0.63, -0.63, -100., 0.63, 0.63, 100.]\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", @@ -339,7 +339,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AHFwInLqDpadAAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDctMjJUMjE6Mzk6\nNDYtMDU6MDBOOEOsAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA3LTIyVDIxOjM5OjQ2LTA1OjAw\nP2X7EAAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIFw8YNfjajoIAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDgtMjNUMTU6MjQ6\nNTMtMDQ6MDANSReSAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA4LTIzVDE1OjI0OjUzLTA0OjAw\nfBSvLgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -410,7 +410,32 @@ "tally.filters.append(energy_filter)\n", "tally.scores = ['absorption', 'total']\n", "tally.nuclides = [o16, h1]\n", - "tallies_file.append(tally)" + "tallies_file.append(tally)\n", + "\n", + "# Instantiate a tally mesh \n", + "mesh = openmc.Mesh(mesh_id=1)\n", + "mesh.type = 'regular'\n", + "mesh.dimension = [1, 1, 1]\n", + "mesh.lower_left = [-0.63, -0.63, -100.]\n", + "mesh.width = [1.26, 1.26, 200.]\n", + "mesh_filter = openmc.Filter(type='mesh', bins=[mesh.id])\n", + "mesh_filter.mesh = mesh\n", + "\n", + "# Instantiate thermal, fast, and total leakage tallies\n", + "leak = openmc.Tally(name='leakage')\n", + "leak.filters = [mesh_filter]\n", + "leak.scores = ['current']\n", + "tallies_file.append(leak)\n", + "\n", + "thermal_leak = openmc.Tally(name='thermal leakage')\n", + "thermal_leak.filters = [mesh_filter, openmc.Filter(type='energy', bins=[0., 0.625e-6])]\n", + "thermal_leak.scores = ['current']\n", + "tallies_file.append(thermal_leak)\n", + "\n", + "fast_leak = openmc.Tally(name='fast leakage')\n", + "fast_leak.filters = [mesh_filter, openmc.Filter(type='energy', bins=[0.625e-6, 20.])]\n", + "fast_leak.scores = ['current']\n", + "tallies_file.append(fast_leak)" ] }, { @@ -484,12 +509,12 @@ "outputs": [], "source": [ "# Instantiate energy filter to illustrate Tally slicing\n", - "energy_filter = openmc.Filter(type='energy', bins=np.logspace(np.log10(1e-8), np.log10(20), 10))\n", + "fine_energy_filter = openmc.Filter(type='energy', bins=np.logspace(np.log10(1e-8), np.log10(20), 10))\n", "\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", - "tally.filters.append(energy_filter)\n", + "tally.filters.append(fine_energy_filter)\n", "tally.scores = ['nu-fission', 'scatter']\n", "tally.nuclides = [h1, u238]\n", "tallies_file.append(tally)" @@ -541,9 +566,10 @@ "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", - " Date/Time: 2016-07-22 21:39:46\n", + " Version: 0.8.0\n", + " Git SHA1: 93862cea249e4441beb714e719120da3bd2b7d0a\n", + " Date/Time: 2016-08-23 15:24:53\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -553,12 +579,12 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", - " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", - " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", - " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", - " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", + " Reading U235.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U235_71c.h5\n", + " Reading U238.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U238_71c.h5\n", + " Reading O16.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/O16_71c.h5\n", + " Reading H1.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/H1_71c.h5\n", + " Reading B10.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/B10_71c.h5\n", + " Reading Zr90.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/Zr90_71c.h5\n", " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", @@ -570,26 +596,26 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \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", + " 1/1 0.96168 \n", + " 2/1 0.96651 \n", + " 3/1 1.00678 \n", + " 4/1 0.98773 \n", + " 5/1 1.01883 \n", + " 6/1 1.02959 \n", + " 7/1 0.99859 1.01409 +/- 0.01550\n", + " 8/1 1.03441 1.02086 +/- 0.01123\n", + " 9/1 1.06097 1.03089 +/- 0.01279\n", + " 10/1 1.06094 1.03690 +/- 0.01159\n", + " 11/1 1.04687 1.03856 +/- 0.00961\n", + " 12/1 1.02982 1.03731 +/- 0.00821\n", + " 13/1 1.03520 1.03705 +/- 0.00712\n", + " 14/1 0.99508 1.03239 +/- 0.00782\n", + " 15/1 1.03973 1.03312 +/- 0.00703\n", + " 16/1 1.03807 1.03357 +/- 0.00638\n", + " 17/1 1.03091 1.03335 +/- 0.00583\n", + " 18/1 1.01421 1.03188 +/- 0.00556\n", + " 19/1 0.99339 1.02913 +/- 0.00583\n", + " 20/1 1.04827 1.03040 +/- 0.00558\n", " Creating state point statepoint.20.h5...\n", "\n", " ===========================================================================\n", @@ -599,28 +625,28 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.5600E-01 seconds\n", - " Reading cross sections = 2.3400E-01 seconds\n", - " Total time in simulation = 1.8333E+01 seconds\n", - " Time in transport only = 1.8325E+01 seconds\n", - " Time in inactive batches = 2.6950E+00 seconds\n", - " Time in active batches = 1.5638E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-03 seconds\n", - " Sampling source sites = 0.0000E+00 seconds\n", + " Total time for initialization = 5.4300E-01 seconds\n", + " Reading cross sections = 3.5400E-01 seconds\n", + " Total time in simulation = 1.8555E+01 seconds\n", + " Time in transport only = 1.8464E+01 seconds\n", + " Time in inactive batches = 2.4600E+00 seconds\n", + " Time in active batches = 1.6095E+01 seconds\n", + " Time synchronizing fission bank = 1.1000E-02 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 = 1.0000E-03 seconds\n", - " Total time elapsed = 1.8711E+01 seconds\n", - " Calculation Rate (inactive) = 4638.22 neutrons/second\n", - " Calculation Rate (active) = 2398.00 neutrons/second\n", + " Total time for finalization = 3.0000E-03 seconds\n", + " Total time elapsed = 1.9120E+01 seconds\n", + " Calculation Rate (inactive) = 5081.30 neutrons/second\n", + " Calculation Rate (active) = 2329.92 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\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", + " k-effective (Collision) = 1.02791 +/- 0.00553\n", + " k-effective (Track-length) = 1.03040 +/- 0.00558\n", + " k-effective (Absorption) = 1.02011 +/- 0.00491\n", + " Combined k-effective = 1.02461 +/- 0.00398\n", + " Leakage Fraction = 0.01677 +/- 0.00109\n", "\n" ] }, @@ -674,8 +700,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We have a tally of the total fission rate and the total absorption rate, so we can calculate k-infinity as:\n", - "$$k_\\infty = \\frac{\\langle \\nu \\Sigma_f \\phi \\rangle}{\\langle \\Sigma_a \\phi \\rangle}$$\n", + "We have a tally of the total fission rate and the total absorption rate, so we can calculate k-eff as:\n", + "$$k_{eff} = \\frac{\\langle \\nu \\Sigma_f \\phi \\rangle}{\\langle \\Sigma_a \\phi \\rangle + \\langle L \\rangle}$$\n", "In this notation, $\\langle \\cdot \\rangle^a_b$ represents an OpenMC that is integrated over region $a$ and energy range $b$. If $a$ or $b$ is not reported, it means the value represents an integral over all space or all energy, respectively." ] }, @@ -704,17 +730,17 @@ " \n", " 0\n", " total\n", - " (nu-fission / absorption)\n", - " 1.038387\n", - " 0.006141\n", + " (nu-fission / (absorption + current))\n", + " 1.02431\n", + " 0.00704\n", " \n", " \n", "\n", "" ], "text/plain": [ - " nuclide score mean std. dev.\n", - "0 total (nu-fission / absorption) 1.04e+00 6.14e-03" + " nuclide score mean std. dev.\n", + "0 total (nu-fission / (absorption + current)) 1.02e+00 7.04e-03" ] }, "execution_count": 24, @@ -723,10 +749,17 @@ } ], "source": [ - "# Compute k-infinity using tally arithmetic\n", + "# Get the fission and absorption rate tallies\n", "fiss_rate = sp.get_tally(name='fiss. rate')\n", "abs_rate = sp.get_tally(name='abs. rate')\n", - "keff = fiss_rate / abs_rate\n", + "\n", + "# Get the leakage tally\n", + "leak = sp.get_tally(name='leakage')\n", + "leak = leak.summation(filter_type='surface', remove_filter=True)\n", + "leak = leak.summation(filter_type='mesh', remove_filter=True)\n", + "\n", + "# Compute k-infinity using tally arithmetic\n", + "keff = fiss_rate / (abs_rate + leak)\n", "keff.get_pandas_dataframe()" ] }, @@ -734,9 +767,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Notice that even though the neutron production rate and absorption rate are separate tallies, we still get a first-order estimate of the uncertainty on the quotient of them automatically!\n", + "Notice that even though the neutron production rate, absorption rate, and current are separate tallies, we still get a first-order estimate of the uncertainty on the quotient of them automatically!\n", "\n", - "Often in textbooks you'll see k-infinity represented using the four-factor formula $$k_\\infty = p \\epsilon f \\eta.$$ Let's analyze each of these factors, starting with the resonance escape probability which is defined as $$p=\\frac{\\langle\\Sigma_a\\phi\\rangle_T}{\\langle\\Sigma_a\\phi\\rangle}$$ where the subscript $T$ means thermal energies." + "Often in textbooks you'll see k-eff represented using the six-factor formula $$k_{eff} = p \\epsilon f \\eta P_{FNL} P_{TNL}.$$ Let's analyze each of these factors, starting with the resonance escape probability which is defined as $$p=\\frac{\\langle\\Sigma_a\\phi\\rangle_T + \\langle L \\rangle_T}{\\langle\\Sigma_a\\phi\\rangle + \\langle L \\rangle_T}$$ where the subscript $T$ means thermal energies." ] }, { @@ -768,17 +801,20 @@ " 0.0\n", " 6.250000e-07\n", " total\n", - " absorption\n", - " 0.693337\n", - " 0.004109\n", + " (absorption + current)\n", + " 0.695303\n", + " 0.005091\n", " \n", " \n", "\n", "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total absorption 6.93e-01 4.11e-03" + " energy low [MeV] energy high [MeV] nuclide score \\\n", + "0 0.00e+00 6.25e-07 total (absorption + current) \n", + "\n", + " mean std. dev. \n", + "0 6.95e-01 5.09e-03 " ] }, "execution_count": 25, @@ -789,7 +825,10 @@ "source": [ "# Compute resonance escape probability using tally arithmetic\n", "therm_abs_rate = sp.get_tally(name='therm. abs. rate')\n", - "res_esc = therm_abs_rate / abs_rate\n", + "thermal_leak = sp.get_tally(name='thermal leakage')\n", + "thermal_leak = thermal_leak.summation(filter_type='surface', remove_filter=True)\n", + "thermal_leak = thermal_leak.summation(filter_type='mesh', remove_filter=True)\n", + "res_esc = (therm_abs_rate + thermal_leak) / (abs_rate + thermal_leak)\n", "res_esc.get_pandas_dataframe()" ] }, @@ -831,8 +870,8 @@ " 6.250000e-07\n", " total\n", " nu-fission\n", - " 1.203042\n", - " 0.0076\n", + " 1.202639\n", + " 0.010348\n", " \n", " \n", "\n", @@ -840,7 +879,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 7.60e-03" + "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 1.03e-02" ] }, "execution_count": 26, @@ -896,8 +935,8 @@ " 10000\n", " total\n", " absorption\n", - " 0.748413\n", - " 0.004723\n", + " 0.749349\n", + " 0.006731\n", " \n", " \n", "\n", @@ -905,10 +944,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.48e-01 \n", + "0 0.00e+00 6.25e-07 10000 total absorption 7.49e-01 \n", "\n", " std. dev. \n", - "0 4.72e-03 " + "0 6.73e-03 " ] }, "execution_count": 27, @@ -927,7 +966,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The final factor is the number of fission neutrons produced per absorption in fuel, calculated as $$\\eta = \\frac{\\langle \\nu\\Sigma_f\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle^F_T}$$" + "The next factor is the number of fission neutrons produced per absorption in fuel, calculated as $$\\eta = \\frac{\\langle \\nu\\Sigma_f\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle^F_T}$$" ] }, { @@ -962,8 +1001,8 @@ " 10000\n", " total\n", " (nu-fission / absorption)\n", - " 1.663385\n", - " 0.011253\n", + " 1.663736\n", + " 0.015707\n", " \n", " \n", "\n", @@ -974,7 +1013,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.13e-02 " + "0 (nu-fission / absorption) 1.66e+00 1.57e-02 " ] }, "execution_count": 28, @@ -992,7 +1031,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we can calculate $k_\\infty$ using the product of the factors form the four-factor formula." + "There are two leakage factors to account for fast and thermal leakage. The fast non-leakage probability is computed as $$P_{FNL} = \\frac{\\langle \\Sigma_a\\phi \\rangle + \\langle L \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle + \\langle L \\rangle}$$" ] }, { @@ -1001,6 +1040,130 @@ "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", + "
energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
00.06.250000e-07total(absorption + current)0.9851020.005855
\n", + "
" + ], + "text/plain": [ + " energy low [MeV] energy high [MeV] nuclide score \\\n", + "0 0.00e+00 6.25e-07 total (absorption + current) \n", + "\n", + " mean std. dev. \n", + "0 9.85e-01 5.86e-03 " + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_fnl = (abs_rate + thermal_leak) / (abs_rate + leak)\n", + "p_fnl.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The final factor is the thermalnon-leakage probability and is computed as $$P_{TNL} = \\frac{\\langle \\Sigma_a\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle_T + \\langle L \\rangle_T}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "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", + "
energy low [MeV]energy high [MeV]nuclidescoremeanstd. dev.
00.06.250000e-07total(absorption / (absorption + current))0.9974070.008492
\n", + "
" + ], + "text/plain": [ + " energy low [MeV] energy high [MeV] nuclide \\\n", + "0 0.00e+00 6.25e-07 total \n", + "\n", + " score mean std. dev. \n", + "0 (absorption / (absorption + current)) 9.97e-01 8.49e-03 " + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_tnl = therm_abs_rate / (therm_abs_rate + thermal_leak)\n", + "p_tnl.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can calculate $k_{eff}$ using the product of the factors form the four-factor formula." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, "outputs": [ { "data": { @@ -1026,9 +1189,9 @@ " 6.250000e-07\n", " 10000\n", " total\n", - " (((absorption * nu-fission) * absorption) * (n...\n", - " 1.038387\n", - " 0.01316\n", + " ((((((absorption + current) * nu-fission) * ab...\n", + " 1.02431\n", + " 0.02062\n", " \n", " \n", "\n", @@ -1039,16 +1202,16 @@ "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 1.32e-02 " + "0 ((((((absorption + current) * nu-fission) * ab... 1.02e+00 2.06e-02 " ] }, - "execution_count": 29, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "keff = res_esc * fast_fiss * therm_util * eta\n", + "keff = res_esc * fast_fiss * therm_util * eta * p_fnl * p_tnl\n", "keff.get_pandas_dataframe()" ] }, @@ -1063,7 +1226,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 32, "metadata": { "collapsed": false, "scrolled": true @@ -1079,7 +1242,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -1109,8 +1272,8 @@ " 6.250000e-07\n", " (U238 / total)\n", " (nu-fission / flux)\n", - " 6.636968e-07\n", - " 4.132875e-09\n", + " 6.662479e-07\n", + " 6.039323e-09\n", " \n", " \n", " 1\n", @@ -1119,8 +1282,8 @@ " 6.250000e-07\n", " (U238 / total)\n", " (scatter / flux)\n", - " 2.099856e-01\n", - " 1.232455e-03\n", + " 2.099897e-01\n", + " 1.843251e-03\n", " \n", " \n", " 2\n", @@ -1129,8 +1292,8 @@ " 6.250000e-07\n", " (U235 / total)\n", " (nu-fission / flux)\n", - " 3.552458e-01\n", - " 2.252681e-03\n", + " 3.568130e-01\n", + " 3.255144e-03\n", " \n", " \n", " 3\n", @@ -1139,8 +1302,8 @@ " 6.250000e-07\n", " (U235 / total)\n", " (scatter / flux)\n", - " 5.554345e-03\n", - " 3.265385e-05\n", + " 5.555326e-03\n", + " 4.893022e-05\n", " \n", " \n", " 4\n", @@ -1149,8 +1312,8 @@ " 2.000000e+01\n", " (U238 / total)\n", " (nu-fission / flux)\n", - " 7.126668e-03\n", - " 5.296883e-05\n", + " 7.215044e-03\n", + " 4.968448e-05\n", " \n", " \n", " 5\n", @@ -1159,8 +1322,8 @@ " 2.000000e+01\n", " (U238 / total)\n", " (scatter / flux)\n", - " 2.277460e-01\n", - " 1.003558e-03\n", + " 2.273966e-01\n", + " 8.969811e-04\n", " \n", " \n", " 6\n", @@ -1169,8 +1332,8 @@ " 2.000000e+01\n", " (U235 / total)\n", " (nu-fission / flux)\n", - " 8.010911e-03\n", - " 6.802256e-05\n", + " 7.969615e-03\n", + " 5.374119e-05\n", " \n", " \n", " 7\n", @@ -1179,8 +1342,8 @@ " 2.000000e+01\n", " (U235 / total)\n", " (scatter / flux)\n", - " 3.367794e-03\n", - " 1.443644e-05\n", + " 3.362798e-03\n", + " 1.286767e-05\n", " \n", " \n", "\n", @@ -1198,17 +1361,17 @@ "7 10000 6.25e-07 2.00e+01 (U235 / total) \n", "\n", " score mean std. dev. \n", - "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 " + "0 (nu-fission / flux) 6.66e-07 6.04e-09 \n", + "1 (scatter / flux) 2.10e-01 1.84e-03 \n", + "2 (nu-fission / flux) 3.57e-01 3.26e-03 \n", + "3 (scatter / flux) 5.56e-03 4.89e-05 \n", + "4 (nu-fission / flux) 7.22e-03 4.97e-05 \n", + "5 (scatter / flux) 2.27e-01 8.97e-04 \n", + "6 (nu-fission / flux) 7.97e-03 5.37e-05 \n", + "7 (scatter / flux) 3.36e-03 1.29e-05 " ] }, - "execution_count": 31, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -1227,7 +1390,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 34, "metadata": { "collapsed": false }, @@ -1236,11 +1399,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 6.63696783e-07]\n", - " [ 3.55245846e-01]]\n", + "[[[ 6.66247898e-07]\n", + " [ 3.56812954e-01]]\n", "\n", - " [[ 7.12666800e-03]\n", - " [ 8.01091088e-03]]]\n" + " [[ 7.21504433e-03]\n", + " [ 7.96961502e-03]]]\n" ] } ], @@ -1259,7 +1422,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -1268,9 +1431,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00555435]]\n", + "[[[ 0.00555533]]\n", "\n", - " [[ 0.00336779]]]\n" + " [[ 0.0033628 ]]]\n" ] } ], @@ -1283,7 +1446,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 36, "metadata": { "collapsed": false }, @@ -1292,8 +1455,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.22774598]\n", - " [ 0.00336779]]]\n" + "[[[ 0.22739657]\n", + " [ 0.0033628 ]]]\n" ] } ], @@ -1314,7 +1477,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 37, "metadata": { "collapsed": false }, @@ -1345,7 +1508,7 @@ " U238\n", " nu-fission\n", " 0.000002\n", - " 7.473789e-09\n", + " 1.057199e-08\n", " \n", " \n", " 1\n", @@ -1354,8 +1517,8 @@ " 6.250000e-07\n", " U235\n", " nu-fission\n", - " 0.861547\n", - " 4.131310e-03\n", + " 0.856784\n", + " 5.730044e-03\n", " \n", " \n", " 2\n", @@ -1364,8 +1527,8 @@ " 2.000000e+01\n", " U238\n", " nu-fission\n", - " 0.082356\n", - " 5.560461e-04\n", + " 0.082495\n", + " 5.176027e-04\n", " \n", " \n", " 3\n", @@ -1374,8 +1537,8 @@ " 2.000000e+01\n", " U235\n", " nu-fission\n", - " 0.092574\n", - " 7.315442e-04\n", + " 0.091123\n", + " 5.574052e-04\n", " \n", " \n", "\n", @@ -1383,19 +1546,19 @@ ], "text/plain": [ " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10000 0.00e+00 6.25e-07 U238 nu-fission 1.61e-06 \n", - "1 10000 0.00e+00 6.25e-07 U235 nu-fission 8.62e-01 \n", - "2 10000 6.25e-07 2.00e+01 U238 nu-fission 8.24e-02 \n", - "3 10000 6.25e-07 2.00e+01 U235 nu-fission 9.26e-02 \n", + "0 10000 0.00e+00 6.25e-07 U238 nu-fission 1.60e-06 \n", + "1 10000 0.00e+00 6.25e-07 U235 nu-fission 8.57e-01 \n", + "2 10000 6.25e-07 2.00e+01 U238 nu-fission 8.25e-02 \n", + "3 10000 6.25e-07 2.00e+01 U235 nu-fission 9.11e-02 \n", "\n", " std. dev. \n", - "0 7.47e-09 \n", - "1 4.13e-03 \n", - "2 5.56e-04 \n", - "3 7.32e-04 " + "0 1.06e-08 \n", + "1 5.73e-03 \n", + "2 5.18e-04 \n", + "3 5.57e-04 " ] }, - "execution_count": 35, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -1408,7 +1571,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -1438,8 +1601,8 @@ " 1.080060e-07\n", " H1\n", " scatter\n", - " 4.599225\n", - " 0.015973\n", + " 4.547947\n", + " 0.028000\n", " \n", " \n", " 1\n", @@ -1448,8 +1611,8 @@ " 1.166529e-06\n", " H1\n", " scatter\n", - " 2.037260\n", - " 0.011236\n", + " 2.003068\n", + " 0.008587\n", " \n", " \n", " 2\n", @@ -1458,8 +1621,8 @@ " 1.259921e-05\n", " H1\n", " scatter\n", - " 1.662552\n", - " 0.010280\n", + " 1.647225\n", + " 0.011136\n", " \n", " \n", " 3\n", @@ -1468,8 +1631,8 @@ " 1.360790e-04\n", " H1\n", " scatter\n", - " 1.872201\n", - " 0.012136\n", + " 1.831367\n", + " 0.010196\n", " \n", " \n", " 4\n", @@ -1478,8 +1641,8 @@ " 1.469734e-03\n", " H1\n", " scatter\n", - " 2.080459\n", - " 0.013155\n", + " 2.039613\n", + " 0.008059\n", " \n", " \n", " 5\n", @@ -1488,8 +1651,8 @@ " 1.587401e-02\n", " H1\n", " scatter\n", - " 2.154996\n", - " 0.011975\n", + " 2.137523\n", + " 0.012885\n", " \n", " \n", " 6\n", @@ -1498,8 +1661,8 @@ " 1.714488e-01\n", " H1\n", " scatter\n", - " 2.218740\n", - " 0.008528\n", + " 2.170725\n", + " 0.012669\n", " \n", " \n", " 7\n", @@ -1508,8 +1671,8 @@ " 1.851749e+00\n", " H1\n", " scatter\n", - " 2.010517\n", - " 0.009187\n", + " 2.002724\n", + " 0.010768\n", " \n", " \n", " 8\n", @@ -1518,8 +1681,8 @@ " 2.000000e+01\n", " H1\n", " scatter\n", - " 0.372022\n", - " 0.003196\n", + " 0.371624\n", + " 0.002959\n", " \n", " \n", "\n", @@ -1527,29 +1690,29 @@ ], "text/plain": [ " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10002 1.00e-08 1.08e-07 H1 scatter 4.60e+00 \n", - "1 10002 1.08e-07 1.17e-06 H1 scatter 2.04e+00 \n", - "2 10002 1.17e-06 1.26e-05 H1 scatter 1.66e+00 \n", - "3 10002 1.26e-05 1.36e-04 H1 scatter 1.87e+00 \n", - "4 10002 1.36e-04 1.47e-03 H1 scatter 2.08e+00 \n", - "5 10002 1.47e-03 1.59e-02 H1 scatter 2.15e+00 \n", - "6 10002 1.59e-02 1.71e-01 H1 scatter 2.22e+00 \n", - "7 10002 1.71e-01 1.85e+00 H1 scatter 2.01e+00 \n", + "0 10002 1.00e-08 1.08e-07 H1 scatter 4.55e+00 \n", + "1 10002 1.08e-07 1.17e-06 H1 scatter 2.00e+00 \n", + "2 10002 1.17e-06 1.26e-05 H1 scatter 1.65e+00 \n", + "3 10002 1.26e-05 1.36e-04 H1 scatter 1.83e+00 \n", + "4 10002 1.36e-04 1.47e-03 H1 scatter 2.04e+00 \n", + "5 10002 1.47e-03 1.59e-02 H1 scatter 2.14e+00 \n", + "6 10002 1.59e-02 1.71e-01 H1 scatter 2.17e+00 \n", + "7 10002 1.71e-01 1.85e+00 H1 scatter 2.00e+00 \n", "8 10002 1.85e+00 2.00e+01 H1 scatter 3.72e-01 \n", "\n", " std. dev. \n", - "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 " + "0 2.80e-02 \n", + "1 8.59e-03 \n", + "2 1.11e-02 \n", + "3 1.02e-02 \n", + "4 8.06e-03 \n", + "5 1.29e-02 \n", + "6 1.27e-02 \n", + "7 1.08e-02 \n", + "8 2.96e-03 " ] }, - "execution_count": 36, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } @@ -1565,21 +1728,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.2" + "pygments_lexer": "ipython2", + "version": "2.7.12" } }, "nbformat": 4, diff --git a/openmc/filter.py b/openmc/filter.py index 9b4eb67dd2..771d40401c 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -781,12 +781,18 @@ class Filter(object): filter_bins = np.repeat(self.bins, self.stride) tile_factor = data_size / len(filter_bins) filter_bins = np.tile(filter_bins, tile_factor) - filter_bins = [x if x != 1 else 'x-min' for x in filter_bins] - filter_bins = [x if x != 2 else 'x-max' for x in filter_bins] - filter_bins = [x if x != 3 else 'y-min' for x in filter_bins] - filter_bins = [x if x != 4 else 'y-max' for x in filter_bins] - filter_bins = [x if x != 5 else 'z-min' for x in filter_bins] - filter_bins = [x if x != 6 else 'z-max' for x in filter_bins] + filter_bins = [x if x != 1 else 'x-min out' for x in filter_bins] + filter_bins = [x if x != 2 else 'x-max out' for x in filter_bins] + filter_bins = [x if x != 3 else 'y-min out' for x in filter_bins] + filter_bins = [x if x != 4 else 'y-max out' for x in filter_bins] + filter_bins = [x if x != 5 else 'z-min out' for x in filter_bins] + filter_bins = [x if x != 6 else 'z-max out' for x in filter_bins] + filter_bins = [x if x != 7 else 'x-min in' for x in filter_bins] + filter_bins = [x if x != 8 else 'x-max in' for x in filter_bins] + filter_bins = [x if x != 9 else 'y-min in' for x in filter_bins] + filter_bins = [x if x != 10 else 'y-max in' for x in filter_bins] + filter_bins = [x if x != 11 else 'z-min in' for x in filter_bins] + filter_bins = [x if x != 12 else 'z-max in' for x in filter_bins] df = pd.concat([df, pd.DataFrame({self.type : filter_bins})]) # universe, material, surface, cell, and cellborn filters From ac17ca4e612babd0e6509b2d94a3d4319dce9896 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 23 Aug 2016 15:27:34 -0400 Subject: [PATCH 325/417] reverted pincell xml example --- examples/xml/pincell/geometry.xml | 14 +++++++------- examples/xml/pincell/settings.xml | 12 ++++++------ examples/xml/pincell/tallies.xml | 11 +++-------- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/examples/xml/pincell/geometry.xml b/examples/xml/pincell/geometry.xml index f4e1bf1dd4..f67f9e74c2 100644 --- a/examples/xml/pincell/geometry.xml +++ b/examples/xml/pincell/geometry.xml @@ -8,16 +8,16 @@ --> - - - + + + - - - - + + + + diff --git a/examples/xml/pincell/settings.xml b/examples/xml/pincell/settings.xml index 9402b979a9..443af9cde2 100644 --- a/examples/xml/pincell/settings.xml +++ b/examples/xml/pincell/settings.xml @@ -3,7 +3,7 @@ - 20 + 100 10 1000 @@ -14,8 +14,8 @@ - -8.62992 -8.62992 -1. - 8.62992 8.62992 1. + -0.62992 -0.62992 -1. + 0.62992 0.62992 1. @@ -24,9 +24,9 @@ bounds for a mesh over which the Shannon entropy should be calculated. The extent in the z direction is made arbitrarily large. --> - -3.39218 -3.39218 -1.e50 - 3.39218 3.39218 1.e50 + -0.39218 -0.39218 -1.e50 + 0.39218 0.39218 1.e50 10 10 1 - + \ No newline at end of file diff --git a/examples/xml/pincell/tallies.xml b/examples/xml/pincell/tallies.xml index 2e39c083d4..73242b9136 100644 --- a/examples/xml/pincell/tallies.xml +++ b/examples/xml/pincell/tallies.xml @@ -2,9 +2,9 @@ - 2 2 1 - -8.62992 -8.62992 -1.e50 - 8.62992 8.62992 1.e50 + 100 100 1 + -0.62992 -0.62992 -1.e50 + 0.62992 0.62992 1.e50 @@ -13,9 +13,4 @@ flux fission nu-fission - - - current - - From 28f50a635a6365bbf365858e07046680b82798f4 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 23 Aug 2016 15:31:44 -0400 Subject: [PATCH 326/417] removed unnecessary repeated filter mesh bin look up in output.F90 --- src/cmfd_header.F90 | 2 +- src/output.F90 | 26 ++------------------------ 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/src/cmfd_header.F90 b/src/cmfd_header.F90 index 7d253c3081..e743cc928e 100644 --- a/src/cmfd_header.F90 +++ b/src/cmfd_header.F90 @@ -126,7 +126,7 @@ contains if (.not. allocated(this % hxyz)) allocate(this % hxyz(3,nx,ny,nz)) ! Allocate surface currents - if (.not. allocated(this % current)) allocate(this % current(6,ng,nx,ny,nz)) + if (.not. allocated(this % current)) allocate(this % current(12,ng,nx,ny,nz)) ! Allocate source distributions if (.not. allocated(this % cmfd_src)) allocate(this % cmfd_src(ng,nx,ny,nz)) diff --git a/src/output.F90 b/src/output.F90 index eae6547872..2ee213e8eb 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -1035,10 +1035,10 @@ contains end if ! Get the bin for this mesh cell - - ! Left Surface matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, (/ i, j, k /)) + + ! Left Surface matching_bins(i_filter_surf) = OUT_LEFT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1047,8 +1047,6 @@ contains to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = IN_LEFT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1058,8 +1056,6 @@ contains trim(to_str(t % results(1,filter_index) % sum_sq)) ! Right Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = OUT_RIGHT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1068,8 +1064,6 @@ contains to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = IN_RIGHT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1079,8 +1073,6 @@ contains trim(to_str(t % results(1,filter_index) % sum_sq)) ! Back Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = OUT_BACK filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1089,8 +1081,6 @@ contains to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = IN_BACK filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1100,8 +1090,6 @@ contains trim(to_str(t % results(1,filter_index) % sum_sq)) ! Front Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = OUT_FRONT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1110,8 +1098,6 @@ contains to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = IN_FRONT filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1121,8 +1107,6 @@ contains trim(to_str(t % results(1,filter_index) % sum_sq)) ! Bottom Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = OUT_BOTTOM filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1131,8 +1115,6 @@ contains to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = IN_BOTTOM filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1142,8 +1124,6 @@ contains trim(to_str(t % results(1,filter_index) % sum_sq)) ! Top Surface - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = OUT_TOP filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 @@ -1152,8 +1132,6 @@ contains to_str(t % results(1,filter_index) % sum), & trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) matching_bins(i_filter_surf) = IN_TOP filter_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 From 11dea6f26aaa07794a484b8d009a75cce36a8784 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 23 Aug 2016 16:01:33 -0400 Subject: [PATCH 327/417] fixed error in cmfd surface filter allocation and updated cmfd test results --- src/cmfd_data.F90 | 12 +- src/cmfd_input.F90 | 14 +- tests/test_cmfd_feed/results_true.dat | 528 ++++++++++++++++++++++ tests/test_cmfd_nofeed/results_true.dat | 528 ++++++++++++++++++++++ tests/test_score_current/results_true.dat | 2 +- 5 files changed, 1070 insertions(+), 14 deletions(-) diff --git a/src/cmfd_data.F90 b/src/cmfd_data.F90 index befdc9c465..e1bf1f9c35 100644 --- a/src/cmfd_data.F90 +++ b/src/cmfd_data.F90 @@ -251,12 +251,12 @@ contains cmfd % current(2,h,i,j,k) = t % results(1,score_index) % sum ! Right surface - matching_bins(i_filter_surf) = OUT_RIGHT + matching_bins(i_filter_surf) = IN_RIGHT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 cmfd % current(3,h,i,j,k) = t % results(1,score_index) % sum - matching_bins(i_filter_surf) = IN_RIGHT + matching_bins(i_filter_surf) = OUT_RIGHT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 cmfd % current(4,h,i,j,k) = t % results(1,score_index) % sum @@ -273,12 +273,12 @@ contains cmfd % current(6,h,i,j,k) = t % results(1,score_index) % sum ! Front surface - matching_bins(i_filter_surf) = OUT_FRONT + matching_bins(i_filter_surf) = IN_FRONT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 cmfd % current(7,h,i,j,k) = t % results(1,score_index) % sum - matching_bins(i_filter_surf) = IN_FRONT + matching_bins(i_filter_surf) = OUT_FRONT score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 cmfd % current(8,h,i,j,k) = t % results(1,score_index) % sum @@ -295,12 +295,12 @@ contains cmfd % current(10,h,i,j,k) = t % results(1,score_index) % sum ! Top surface - matching_bins(i_filter_surf) = OUT_TOP + matching_bins(i_filter_surf) = IN_TOP score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 cmfd % current(11,h,i,j,k) = t % results(1,score_index) % sum - matching_bins(i_filter_surf) = IN_TOP + matching_bins(i_filter_surf) = OUT_TOP score_index = sum((matching_bins(1:size(t % filters)) - 1) & * t % stride) + 1 cmfd % current(12,h,i,j,k) = t % results(1,score_index) % sum diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index 50f078a182..327b55b42a 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -531,15 +531,15 @@ contains allocate(SurfaceFilter :: filters(n_filters) % obj) select type(filt => filters(n_filters) % obj) type is(SurfaceFilter) - filt % n_bins = 2 * m % n_dimension - allocate(filt % surfaces(2 * m % n_dimension)) + filt % n_bins = 4 * m % n_dimension + allocate(filt % surfaces(4 * m % n_dimension)) if (m % n_dimension == 2) then - filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT, & - IN_LEFT, IN_RIGHT, IN_BACK, IN_FRONT /) + filt % surfaces = (/ OUT_LEFT, IN_LEFT, IN_RIGHT, OUT_RIGHT, & + OUT_BACK, IN_BACK, IN_FRONT, OUT_FRONT /) elseif (m % n_dimension == 3) then - filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT, & - OUT_BOTTOM, OUT_TOP, IN_LEFT, IN_RIGHT, IN_BACK, IN_FRONT, & - IN_BOTTOM, IN_TOP /) + filt % surfaces = (/ OUT_LEFT, IN_LEFT, IN_RIGHT, OUT_RIGHT, & + OUT_BACK, IN_BACK, IN_FRONT, OUT_FRONT, & + OUT_BOTTOM, IN_BOTTOM, IN_TOP, OUT_TOP /) end if end select t % find_filter(FILTER_SURFACE) = n_filters diff --git a/tests/test_cmfd_feed/results_true.dat b/tests/test_cmfd_feed/results_true.dat index 04103129dd..5fb87e5a3d 100644 --- a/tests/test_cmfd_feed/results_true.dat +++ b/tests/test_cmfd_feed/results_true.dat @@ -136,6 +136,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +5.514939E+00 +1.528899E+00 +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.514939E+00 1.528899E+00 5.032131E+00 @@ -148,6 +160,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +2.770358E+00 +3.879191E-01 +7.294002E+00 +2.675589E+00 +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.294002E+00 2.675589E+00 7.036008E+00 @@ -160,6 +184,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +5.032131E+00 +1.275040E+00 +8.668860E+00 +3.776102E+00 +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.668860E+00 3.776102E+00 8.352414E+00 @@ -172,6 +208,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +7.036008E+00 +2.490719E+00 +9.345868E+00 +4.380719E+00 +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.345868E+00 4.380719E+00 9.093766E+00 @@ -184,6 +232,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +8.352414E+00 +3.501945E+00 +9.223771E+00 +4.270119E+00 +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.223771E+00 4.270119E+00 9.219150E+00 @@ -196,6 +256,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +9.093766E+00 +4.158282E+00 +8.530966E+00 +3.651778E+00 +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.530966E+00 3.651778E+00 8.690373E+00 @@ -208,6 +280,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +9.219150E+00 +4.264346E+00 +7.204424E+00 +2.604203E+00 +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.204424E+00 2.604203E+00 7.513640E+00 @@ -220,6 +304,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +8.690373E+00 +3.785262E+00 +5.326721E+00 +1.426975E+00 +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.326721E+00 1.426975E+00 5.661144E+00 @@ -232,6 +328,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +7.513640E+00 +2.833028E+00 +2.847310E+00 +4.090440E-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 2.847310E+00 4.090440E-01 3.025812E+00 @@ -244,6 +352,426 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +5.661144E+00 +1.607138E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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_cmfd_nofeed/results_true.dat b/tests/test_cmfd_nofeed/results_true.dat index 54825f5db7..91da28751f 100644 --- a/tests/test_cmfd_nofeed/results_true.dat +++ b/tests/test_cmfd_nofeed/results_true.dat @@ -136,6 +136,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +5.555000E+00 +1.551579E+00 +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.555000E+00 1.551579E+00 5.095000E+00 @@ -148,6 +160,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +2.833000E+00 +4.078910E-01 +7.271000E+00 +2.659755E+00 +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.271000E+00 2.659755E+00 7.026000E+00 @@ -160,6 +184,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +5.095000E+00 +1.310819E+00 +8.577000E+00 +3.703215E+00 +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.577000E+00 3.703215E+00 8.572000E+00 @@ -172,6 +208,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +7.026000E+00 +2.486552E+00 +9.393000E+00 +4.422429E+00 +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.393000E+00 4.422429E+00 9.261000E+00 @@ -184,6 +232,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +8.572000E+00 +3.680852E+00 +9.265000E+00 +4.305625E+00 +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.265000E+00 4.305625E+00 9.303000E+00 @@ -196,6 +256,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +9.261000E+00 +4.304411E+00 +8.535000E+00 +3.659395E+00 +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.535000E+00 3.659395E+00 8.693000E+00 @@ -208,6 +280,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +9.303000E+00 +4.350791E+00 +7.104000E+00 +2.544182E+00 +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.104000E+00 2.544182E+00 7.334000E+00 @@ -220,6 +304,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +8.693000E+00 +3.799545E+00 +5.168000E+00 +1.344390E+00 +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.168000E+00 1.344390E+00 5.416000E+00 @@ -232,6 +328,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +7.334000E+00 +2.700052E+00 +2.724000E+00 +3.745680E-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 2.724000E+00 3.745680E-01 2.960000E+00 @@ -244,6 +352,426 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +5.416000E+00 +1.471086E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 68dbe069cf..cf139cce24 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -c2921f159dac64099862c1cd9c6d421c977991f621f954f893ec1351cfcea6794ca2c98c9c2dcc3411f1b8dac91ec83bd895788ba33179222c450a7df1d64f1e \ No newline at end of file +6e432700c1fb8641d106471f1fd19a0bf0f00f8b03a97131f2d73732c5a8eea48edf910c7b27b83058a7914c47c29dc7e7899b7dbb83485309b4f7d9f20471d2 \ No newline at end of file From 6ff1d758c3f782d9b3a2f587e81b28c3d32098aa Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 23 Aug 2016 19:17:42 -0400 Subject: [PATCH 328/417] Changes to modify resonance scattering with 0K data and getting some tests passing --- openmc/material.py | 5 ++-- src/input_xml.F90 | 28 +++---------------- src/nuclide_header.F90 | 17 ++++++----- tests/test_multipole/inputs_true.dat | 2 +- .../test_resonance_scattering/inputs_true.dat | 2 +- tests/test_triso/inputs_true.dat | 2 +- tests/test_volume_calc/inputs_true.dat | 2 +- 7 files changed, 21 insertions(+), 37 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index d922c685f9..15c0451872 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -634,8 +634,9 @@ class Material(object): element.set("name", str(self._name)) # Create temperature XML subelement - subelement = ET.SubElement(element, "temperature") - subelement.text = self.temperature + if len(self.temperature) > 0: + subelement = ET.SubElement(element, "temperature") + subelement.text = self.temperature # Create density XML subelement subelement = ET.SubElement(element, "density") diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 5fc38c7419..8e48131932 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1032,23 +1032,6 @@ contains nuclides_0K(i) % scheme) end if - ! check to make sure xs name for which method is applied is given - 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") - end if - call get_node_value(node_scatterer, "xs_label", & - nuclides_0K(i) % name) - - ! 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") - end if - call get_node_value(node_scatterer, "xs_label_0K", & - nuclides_0K(i) % name_0K) - if (check_for_node(node_scatterer, "E_min")) then call get_node_value(node_scatterer, "E_min", & nuclides_0K(i) % E_min) @@ -1073,8 +1056,6 @@ contains nuclides_0K(i) % nuclide = trim(nuclides_0K(i) % nuclide) nuclides_0K(i) % scheme = to_lower(trim(nuclides_0K(i) % scheme)) - nuclides_0K(i) % name = trim(nuclides_0K(i) % name) - nuclides_0K(i) % name_0K = trim(nuclides_0K(i) % name_0K) end do else call fatal_error("No resonant scatterers are specified within the & @@ -2086,9 +2067,9 @@ contains ! Check that 0K nuclides are listed in the cross_sections.xml file if (allocated(nuclides_0K)) then do i = 1, size(nuclides_0K) - if (.not. library_dict % has_key(to_lower(nuclides_0K(i) % name_0K))) then + if (.not. library_dict % has_key(to_lower(nuclides_0K(i) % nuclide))) then call fatal_error("Could not find resonant scatterer " & - // trim(nuclides_0K(i) % name_0K) & + // trim(nuclides_0K(i) % nuclide) & // " in cross_sections.xml file!") end if end do @@ -5942,16 +5923,15 @@ contains type(Nuclide) :: resonant_nuc do i = 1, size(nuclides_0K) - if (nuc % name == nuclides_0K(i) % name) then + if (nuc % name == nuclides_0K(i) % nuclide) then ! Copy basic information from settings.xml nuc % resonant = .true. - nuc % name_0K = trim(nuclides_0K(i) % name_0K) nuc % scheme = trim(nuclides_0K(i) % scheme) nuc % E_min = nuclides_0K(i) % E_min nuc % E_max = nuclides_0K(i) % E_max ! Get index in libraries array - name = nuc % name_0K + name = nuc % name i_library = library_dict % get_key(to_lower(name)) call write_message('Reading ' // trim(name) // ' 0K data from ' // & diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index e7c6c48243..5b66a09bc2 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -106,10 +106,8 @@ module nuclide_header !=============================================================================== type Nuclide0K - character(10) :: nuclide ! name of nuclide, e.g. U-238 + character(10) :: nuclide ! name of nuclide, e.g. U238 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 @@ -183,7 +181,7 @@ module nuclide_header subroutine nuclide_from_hdf5(this, group_id, temperature) class(Nuclide), intent(inout) :: this integer(HID_T), intent(in) :: group_id - character(6), intent(in) :: temperature + character(len=*), intent(in) :: temperature integer :: i integer :: Z @@ -246,9 +244,14 @@ module nuclide_header ! closest temperature my_temperature = temperatures(j) if (temperature /= my_temperature) then - call warning(trim(this % name) // " does not contain data at a & - &temperature of " // trim(temperature) // "; using the & - &nearest available temperature of " // trim(my_temperature)) + if (temperature == '0K') then + call fatal_error(trim(this % name) // " does not contain 0K data & + &needed for the resonance scattering options selected") + else + call warning(trim(this % name) // " does not contain data at a & + &temperature of " // trim(temperature) // "; using the & + &nearest available temperature of " // trim(my_temperature)) + end if end if kT_dset = open_dataset(kT_group, my_temperature) diff --git a/tests/test_multipole/inputs_true.dat b/tests/test_multipole/inputs_true.dat index f99b29e8ed..5498e68738 100644 --- a/tests/test_multipole/inputs_true.dat +++ b/tests/test_multipole/inputs_true.dat @@ -1 +1 @@ -54044104d26e9aa90abcdb62290b598bd6ef0d46c3a9e509726ae7b20a7155471edd3e942b71f07b5c855ac1e451d58913a2f43fa971a8c4d56e569ae3b401ed \ No newline at end of file +2ad86dbb798ab68b45ca535fed3bd848625e0a2b79c68d11db91b14c74b8a48ed4d0129de7e6f6b6b7e9cb47a55d45aadca5ef535dc8a18cb881dddfc74d0bbb \ No newline at end of file diff --git a/tests/test_resonance_scattering/inputs_true.dat b/tests/test_resonance_scattering/inputs_true.dat index fdfb2b84e3..a1149a1ba5 100644 --- a/tests/test_resonance_scattering/inputs_true.dat +++ b/tests/test_resonance_scattering/inputs_true.dat @@ -1 +1 @@ -a97844ec7ab45b9e8c1d5849c99414dfa1408956fd951fa783ffa99f78770cd4644a3fb5abe038b0f835ef233ccea2b014e8bd7448f06769944383035ef38ac6 \ No newline at end of file +647cb9773dea9e27ec53ecb5029ab983ecc15cdd5d9551185906a61529452f3966e2b72bcf04c6a09f66810c29934357085343ecc3b888268fae85a100a907e3 \ No newline at end of file diff --git a/tests/test_triso/inputs_true.dat b/tests/test_triso/inputs_true.dat index fb9d6893c0..3e29529450 100644 --- a/tests/test_triso/inputs_true.dat +++ b/tests/test_triso/inputs_true.dat @@ -1 +1 @@ -c844cc920677037d22e6075780ab3e419f6ded19ea08c6f205df1773caa1a0ee53c605b7794415a24d9f0dbf6bd21d40daa9fcc89497b2abccabb1a6c81a506c \ No newline at end of file +b59af664a4db28471fbf7a19514eb1d61c9c890d2bfa83d23ed186ad0f23d8fa2115fb56c18212476183bcab78622622d8394ba97a19e300e0ed84acecdce3ca \ No newline at end of file diff --git a/tests/test_volume_calc/inputs_true.dat b/tests/test_volume_calc/inputs_true.dat index c9515085a1..3a2d9c4747 100644 --- a/tests/test_volume_calc/inputs_true.dat +++ b/tests/test_volume_calc/inputs_true.dat @@ -1 +1 @@ -aeacdb4aabfdfba0ee06cb4e5b21e95c48b1db57cb1301a1798f9b2f37eb56032ea7e94d88d8eacd17988809059b2da2500c2496c2859e5b656b641440545722 \ No newline at end of file +8dc4641e35f7770b8297eab9f71080c62a1c9607f36f7671cc61d47e0714887dea2f4c2ee515b23f39c38b1ea256c695d7c4d0ad95f5d7497a52d15f2ead33a5 \ No newline at end of file From 766c93e4f79a5f558fde875f7c3acf0e0ce9f6be Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 23 Aug 2016 20:06:14 -0400 Subject: [PATCH 329/417] Got all the tests passing! --- openmc/macroscopic.py | 4 +- openmc/material.py | 13 ++--- openmc/mgxs/library.py | 55 +++---------------- src/input_xml.F90 | 6 ++ src/nuclide_header.F90 | 4 +- src/sab_header.F90 | 11 +++- tests/1d_mgxs.xml | 48 ++++++++-------- tests/input_set.py | 6 +- 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 | 7 +-- tests/test_mg_tallies/inputs_true.dat | 2 +- .../test_mgxs_library_ce_to_mg.py | 1 + 13 files changed, 65 insertions(+), 96 deletions(-) diff --git a/openmc/macroscopic.py b/openmc/macroscopic.py index e47baf9fba..a1ca62c9ab 100644 --- a/openmc/macroscopic.py +++ b/openmc/macroscopic.py @@ -32,8 +32,6 @@ class Macroscopic(object): if isinstance(other, Macroscopic): if self.name != other.name: return False - elif self.xs != other.xs: - return False else: return True elif isinstance(other, basestring) and other == self.name: @@ -45,7 +43,7 @@ class Macroscopic(object): return not self == other def __hash__(self): - return hash((self._name, self._xs)) + return hash((self._name)) def __repr__(self): string = 'Nuclide - {0}\n'.format(self._name) diff --git a/openmc/material.py b/openmc/material.py index 15c0451872..2b52995738 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -89,7 +89,7 @@ class Material(object): # A list of tuples (element, percent, percent type) self._elements = [] - # If specified, a list of tuples of (table name, xs identifier) + # If specified, a list of table names self._sab = [] # If true, the material will be initialized as distributed @@ -129,7 +129,8 @@ class Material(object): string = 'Material\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('\tName', '=\t', self._temperature) + string += '{0: <16}{1}{2}\n'.format('\Temperature', '=\t', + self._temperature) string += '{0: <16}{1}{2}'.format('\tDensity', '=\t', self._density) string += ' [{0}]\n'.format(self._density_units) @@ -137,8 +138,7 @@ class Material(object): string += '{0: <16}\n'.format('\tS(a,b) Tables') for sab in self._sab: - string += '{0: <16}{1}[{2}{3}]\n'.format('\tS(a,b)', '=\t', - sab[0], sab[1]) + string += '{0: <16}{1}{2}\n'.format('\tS(a,b)', '=\t', sab) string += '{0: <16}\n'.format('\tNuclides') @@ -507,7 +507,7 @@ class Material(object): 'Table "{}" is being renamed as "{}".'.format(name, new_name) warnings.warn(msg) - self._sab.append((new_name)) + self._sab.append(new_name) def make_isotropic_in_lab(self): @@ -580,9 +580,6 @@ class Material(object): xml_element = ET.Element("macroscopic") xml_element.set("name", macroscopic.name) - if macroscopic.xs is not None: - xml_element.set("xs", macroscopic.xs) - return xml_element def _get_element_xml(self, element, distrib=False): diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 9e5dba310c..4b68952a67 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -822,8 +822,8 @@ class Library(object): return pickle.load(open(full_filename, 'rb')) def get_xsdata(self, domain, xsdata_name, nuclide='total', xs_type='macro', - xs_id='1m', order=None, tabular_legendre=None, - tabular_points=33, subdomain=None): + order=None, tabular_legendre=None, tabular_points=33, + subdomain=None): """Generates an openmc.XSdata object describing a multi-group cross section data set for eventual combination in to an openmc.MGXSLibrary object (i.e., the library). @@ -841,8 +841,6 @@ class Library(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. If the Library object is not tallied by nuclide this will be set to 'macro' regardless. - xs_ids : str - Cross section set identifier. Defaults to '1m'. order : int Scattering order for this data entry. Default is None, which will set the XSdata object to use the order of the @@ -888,7 +886,6 @@ class Library(object): cv.check_type('xsdata_name', xsdata_name, basestring) cv.check_type('nuclide', nuclide, basestring) cv.check_value('xs_type', xs_type, ['macro', 'micro']) - cv.check_type('xs_id', xs_id, basestring) cv.check_type('order', order, (type(None), Integral)) if order is not None: cv.check_greater_than('order', order, 0, equality=True) @@ -915,7 +912,6 @@ class Library(object): name = xsdata_name if nuclide is not 'total': name += '_' + nuclide - name += '.' + xs_id xsdata = openmc.XSdata(name, self.energy_groups) if order is None: @@ -1022,8 +1018,7 @@ class Library(object): return xsdata def create_mg_library(self, xs_type='macro', xsdata_names=None, - xs_ids=None, tabular_legendre=None, - tabular_points=33): + tabular_legendre=None, tabular_points=33): """Creates an openmc.MGXSLibrary object to contain the MGXS data for the Multi-Group mode of OpenMC. @@ -1036,10 +1031,6 @@ class Library(object): xsdata_names : Iterable of str List of names to apply to the "xsdata" entries in the resultant mgxs data file. Defaults to 'set1', 'set2', ... - xs_ids : str or Iterable of str - Cross section set identifier (i.e., '71c') for all - data sets (if only str) or for each individual one - (if iterable of str). Defaults to '1m'. tabular_legendre : None or bool Flag to denote whether or not the Legendre expansion of the scattering angular distribution is to be converted to a tabular @@ -1087,26 +1078,6 @@ class Library(object): # Initialize file mgxs_file = openmc.MGXSLibrary(self.energy_groups) - # Get the number of domains to size arrays with - if self.domain_type is 'mesh': - num_domains = np.sum(d.num_mesh_cells for d in self.domains) - else: - num_domains = len(self.domains) - - # Set id names - if xs_ids is not None: - if isinstance(xs_ids, basestring): - # If we only have a string lets convert it now to a list - # of strings. - all_xs_ids = [xs_ids] * num_domains - else: - cv.check_iterable_type('xs_ids', xs_ids, basestring) - cv.check_length('xs_ids', xs_ids, num_domains, num_domains) - all_xs_ids = xs_ids - - else: - all_xs_ids = ['1m'] * num_domains - if self.domain_type == 'mesh': # Create the xsdata objects and add to the mgxs_file i = 0 @@ -1123,7 +1094,6 @@ class Library(object): # Create XSdata and Macroscopic for this domain xsdata = self.get_xsdata(domain, xsdata_name, - xs_id=all_xs_ids[i], tabular_legendre=tabular_legendre, tabular_points=tabular_points, subdomain=subdomain) @@ -1148,7 +1118,6 @@ class Library(object): xsdata = self.get_xsdata(domain, xsdata_name, nuclide=nuclide, xs_type=xs_type, - xs_id=all_xs_ids[i], tabular_legendre=tabular_legendre, tabular_points=tabular_points) @@ -1156,9 +1125,8 @@ class Library(object): return mgxs_file - def create_mg_mode(self, xsdata_names=None, xs_ids=None, - tabular_legendre=None, tabular_points=33, - bc=['reflective'] * 6): + def create_mg_mode(self, xsdata_names=None, tabular_legendre=None, + tabular_points=33, bc=['reflective'] * 6): """Creates an openmc.MGXSLibrary object to contain the MGXS data for the Multi-Group mode of OpenMC as well as the associated openmc.Materials and openmc.Geometry objects. The created Geometry is the same as that @@ -1172,10 +1140,6 @@ class Library(object): xsdata_names : Iterable of str List of names to apply to the "xsdata" entries in the resultant mgxs data file. Defaults to 'set1', 'set2', ... - xs_ids : str or Iterable of str - Cross section set identifier (i.e., '71c') for all - data sets (if only str) or for each individual one - (if iterable of str). Defaults to '1m'. tabular_legendre : None or bool Flag to denote whether or not the Legendre expansion of the scattering angular distribution is to be converted to a tabular @@ -1234,7 +1198,7 @@ class Library(object): cv.check_length("domains", self.domains, 1, 1) # Get the MGXS File Data - mgxs_file = self.create_mg_library('macro', xsdata_names, xs_ids, + mgxs_file = self.create_mg_library('macro', xsdata_names, tabular_legendre, tabular_points) # Now move on the creating the geometry and assigning materials @@ -1251,10 +1215,10 @@ class Library(object): for i, subdomain in enumerate(self.domains[0].cell_generator()): xsdata = mgxs_file.xsdatas[i] - [name, id] = xsdata.name.split('.') + # Build the macroscopic and assign it to the cell of # interest - macroscopic = openmc.Macroscopic(name=name, xs=id) + macroscopic = openmc.Macroscopic(name=xsdata.name) # Create Material and add to collection material = openmc.Material(name=xsdata.name) @@ -1275,9 +1239,8 @@ class Library(object): # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): xsdata = mgxs_file.xsdatas[i] - [name, id] = xsdata.name.split('.') - macroscopic = openmc.Macroscopic(name=name, xs=id) + macroscopic = openmc.Macroscopic(name=xsdata.name) # Create Material and add to collection material = openmc.Material(name=xsdata.name) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 8e48131932..1cb0dc0fd4 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2147,6 +2147,12 @@ contains ! Copy default temperature if (check_for_node(doc, "default_temperature")) then call get_node_value(doc, "default_temperature", default_temperature) + else if (.not. run_CE) then + ! FIXME This is only necessary while MG mode does not have a + ! temperature dependent library implementation. + ! Set a default for MG mode to allow MG libraries to not include + ! temperatures + default_temperature = '294K' else default_temperature = '' end if diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 5b66a09bc2..5b3dd31fe5 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -245,8 +245,8 @@ module nuclide_header my_temperature = temperatures(j) if (temperature /= my_temperature) then if (temperature == '0K') then - call fatal_error(trim(this % name) // " does not contain 0K data & - &needed for the resonance scattering options selected") + call warning(trim(this % name) // " does not contain 0K data & + &needed for the resonance scattering options selected") else call warning(trim(this % name) // " does not contain data at a & &temperature of " // trim(temperature) // "; using the & diff --git a/src/sab_header.F90 b/src/sab_header.F90 index d12b75a32b..59e336a38d 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -222,9 +222,14 @@ contains ! closest temperature my_temperature = temperatures(j) if (temperature /= my_temperature) then - call warning(trim(this % name) // " does not contain data at a & - &temperature of " // trim(temperature) // "; using the & - &nearest available temperature of " // trim(my_temperature)) + if (temperature == '0K') then + call warning(trim(this % name) // " does not contain 0K data & + &needed for the resonance scattering options selected") + else + call warning(trim(this % name) // " does not contain data at a & + &temperature of " // trim(temperature) // "; using the & + &nearest available temperature of " // trim(my_temperature)) + end if end if kT_dset = open_dataset(kT_group, my_temperature) diff --git a/tests/1d_mgxs.xml b/tests/1d_mgxs.xml index 33b20464b6..8704b49ad4 100644 --- a/tests/1d_mgxs.xml +++ b/tests/1d_mgxs.xml @@ -4,8 +4,8 @@ 0.0000000E+00 2.0000000E+01 - uo2_iso.71c - uo2_iso.71c + uo2_iso + uo2_iso 2.5300000E-08 5 true @@ -44,8 +44,8 @@ - clad_iso.71c - clad_iso.71c + clad_iso + clad_iso 2.5300000E-08 5 false @@ -75,8 +75,8 @@ - lwtr_iso.71c - lwtr_iso.71c + lwtr_iso + lwtr_iso 2.5300000E-08 5 false @@ -106,8 +106,8 @@ - uo2_iso_mu.71c - uo2_iso_mu.71c + uo2_iso_mu + uo2_iso_mu 2.5300000E-08 32 true @@ -199,8 +199,8 @@ - clad_iso_mu.71c - clad_iso_mu.71c + clad_iso_mu + clad_iso_mu 2.5300000E-08 32 false @@ -283,8 +283,8 @@ - lwtr_iso_mu.71c - lwtr_iso_mu.71c + lwtr_iso_mu + lwtr_iso_mu 2.5300000E-08 32 false @@ -367,8 +367,8 @@ - uo2_ang.71c - uo2_ang.71c + uo2_ang + uo2_ang 2.5300000E-08 5 true @@ -1246,8 +1246,8 @@ - clad_ang.71c - clad_ang.71c + clad_ang + clad_ang 2.5300000E-08 5 false @@ -1930,8 +1930,8 @@ - lwtr_ang.71c - lwtr_ang.71c + lwtr_ang + lwtr_ang 2.5300000E-08 5 false @@ -2614,8 +2614,8 @@ - uo2_ang_mu.71c - uo2_ang_mu.71c + uo2_ang_mu + uo2_ang_mu 2.5300000E-08 32 true @@ -5158,8 +5158,8 @@ - clad_ang_mu.71c - clad_ang_mu.71c + clad_ang_mu + clad_ang_mu 2.5300000E-08 32 false @@ -7507,8 +7507,8 @@ - lwtr_ang_mu.71c - lwtr_ang_mu.71c + lwtr_ang_mu + lwtr_ang_mu 2.5300000E-08 32 false diff --git a/tests/input_set.py b/tests/input_set.py index ae2876480a..e409fba58f 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -829,17 +829,17 @@ class AssemblyInputSet(object): class MGInputSet(InputSet): def build_default_materials_and_geometry(self): # Define materials needed for 1D/1G slab problem - uo2_data = openmc.Macroscopic('uo2_iso', '71c') + uo2_data = openmc.Macroscopic('uo2_iso') uo2 = openmc.Material(name='UO2', material_id=1) uo2.set_density('macro', 1.0) uo2.add_macroscopic(uo2_data) - clad_data = openmc.Macroscopic('clad_ang_mu', '71c') + clad_data = openmc.Macroscopic('clad_ang_mu') 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_mu', '71c') + water_data = openmc.Macroscopic('lwtr_iso_mu') water = openmc.Material(name='LWTR', material_id=3) water.set_density('macro', 1.0) water.add_macroscopic(water_data) diff --git a/tests/test_mg_basic/inputs_true.dat b/tests/test_mg_basic/inputs_true.dat index 3f83de7600..bfb0cc09e9 100644 --- a/tests/test_mg_basic/inputs_true.dat +++ b/tests/test_mg_basic/inputs_true.dat @@ -1 +1 @@ -2fdba76bad058eec6e43657692ef759de79c934076067d4ec5c9f2bdb131877e001f67e16b16bb14889e5e0a1ba84c780979b9d6772573aa6f82d979774c2af8 \ No newline at end of file +d90692c6bf8db3672d70103ded682326d7f14d416e79e18ec055bdeafe1dbc1dbe642e8410cad95bf247f27c907b10b1567127bd2868d466ce2586aacff0411f \ 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 63bdaab03e..d827cfaa49 100644 --- a/tests/test_mg_max_order/inputs_true.dat +++ b/tests/test_mg_max_order/inputs_true.dat @@ -1 +1 @@ -60a35864ad71646309d7f1687ba0826d4d53a5b2e8babf73614362645205484bad3c0e7bf605ec0b11cadf58474b2e3d0a97bf2d9297f9118682c37ff0269afd \ No newline at end of file +7d508b1f3a2661566b8e8cb76fee61aecb96e8b60d633b06f13c4600bd854ea3366cdebd033c0a71ffb8adb90a9aeb64fe5ac0ef3235260921f5689c93e54305 \ 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 088f6914ba..da699316ca 100644 --- a/tests/test_mg_max_order/test_mg_max_order.py +++ b/tests/test_mg_max_order/test_mg_max_order.py @@ -10,23 +10,22 @@ 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_data = openmc.Macroscopic('uo2_iso') 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_data = openmc.Macroscopic('clad_iso') 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_data = openmc.Macroscopic('lwtr_iso') 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 += (uo2, clad, water) # Define surfaces. diff --git a/tests/test_mg_tallies/inputs_true.dat b/tests/test_mg_tallies/inputs_true.dat index 41bbd2136e..c74d7759f7 100644 --- a/tests/test_mg_tallies/inputs_true.dat +++ b/tests/test_mg_tallies/inputs_true.dat @@ -1 +1 @@ -6c437c3f9281c52a80a9b166971aa0f5db7ff8b6cf65c79b6d7bf294fad30cc7044f6a665cd9059f8580441bcbb581f7152ff5bccbc21fbcc407847ea6fe3306 \ No newline at end of file +707285b77a091904a69720e78bf87a6779f2223c0fa2a3725353d00ca30f2624c7d53af016d78c7ad30b70a24bb53eda7dea2f592499b098f541591825b67143 \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index 0f7cba4a87..baa54b018b 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -83,6 +83,7 @@ class MGXSTestHarness(PyAPITestHarness): returncode = openmc.run(openmc_exec=self._opts.exe) def _cleanup(self): + return super(MGXSTestHarness, self)._cleanup() f = os.path.join(os.getcwd(), 'mgxs.xml') if os.path.exists(f): From 3e83ee6767e768aa548351ef9f55f5a432253150 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 23 Aug 2016 20:28:34 -0400 Subject: [PATCH 330/417] Cleaned up xs_label usage and updated rnc/rng files --- openmc/settings.py | 4 -- src/relaxng/materials.rnc | 16 ++---- src/relaxng/materials.rng | 101 ++++++++++---------------------------- src/relaxng/settings.rnc | 4 -- src/relaxng/settings.rng | 24 --------- 5 files changed, 30 insertions(+), 119 deletions(-) diff --git a/openmc/settings.py b/openmc/settings.py index 79f3606441..c1d4adc24c 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -1264,10 +1264,6 @@ class ResonanceScattering(object): if self.method is not None: subelement = ET.SubElement(scatterer, 'method') subelement.text = self.method - subelement = ET.SubElement(scatterer, 'xs_label') - subelement.text = self.nuclide.name - subelement = ET.SubElement(scatterer, 'xs_label_0K') - subelement.text = self.nuclide_0K.name if self.E_min is not None: subelement = ET.SubElement(scatterer, 'E_min') subelement.text = str(self.E_min) diff --git a/src/relaxng/materials.rnc b/src/relaxng/materials.rnc index 1b5b7c705a..4d1b217db0 100644 --- a/src/relaxng/materials.rnc +++ b/src/relaxng/materials.rnc @@ -4,6 +4,8 @@ element materials { (element name { xsd:string { maxLength="52" } } | attribute name { xsd:string { maxLength="52" } })? & + element temperature { xsd:string { maxLength = "6" } }? & + element density { (element value { xsd:double } | attribute value { xsd:double })? & (element units { xsd:string { maxLength = "10" } } | @@ -12,8 +14,6 @@ element materials { element nuclide { (element name { xsd:string } | attribute name { xsd:string }) & - (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,16 +24,12 @@ element materials { element macroscopic { (element name { xsd:string } | - attribute name { xsd:string }) & - (element xs { xsd:string { maxLength = "5" } } | - attribute xs { xsd:string { maxLength = "5" } }) + attribute name { xsd:string }) }* & element element { (element name { xsd:string { maxLength = "2" } } | attribute name { xsd:string { maxLength = "2" } }) & - (element xs { xsd:string { maxLength = "5" } } | - attribute xs { xsd:string { maxLength = "5" } })? & (element scattering { ( "data" | "iso-in-lab" ) } | attribute scattering { ( "data" | "iso-in-lab" ) })? & ( @@ -43,11 +39,9 @@ element materials { }* & element sab { - (element name { xsd:string } | attribute name { xsd:string }) & - (element xs { xsd:string { maxLength = "5" } } | - attribute xs { xsd:string { maxLength = "5" } })? + (element name { xsd:string } | attribute name { xsd:string }) }* }+ & - element default_xs { xsd:string { maxLength = "5" } }? + element default_temperature { xsd:string { maxLength = "6" } }? } diff --git a/src/relaxng/materials.rng b/src/relaxng/materials.rng index e93f201655..20b7b86ecb 100644 --- a/src/relaxng/materials.rng +++ b/src/relaxng/materials.rng @@ -26,6 +26,13 @@ + + + + 6 + + + @@ -63,20 +70,6 @@ - - - - - 5 - - - - - 5 - - - - @@ -116,28 +109,14 @@ - - - - - - - - - - - - - 5 - - - - - 5 - - - - + + + + + + + + @@ -155,20 +134,6 @@ - - - - - 5 - - - - - 5 - - - - @@ -208,39 +173,23 @@ - - - - - - - - - - - - - - 5 - - - - - 5 - - - - - + + + + + + + + - + - 5 + 6 diff --git a/src/relaxng/settings.rnc b/src/relaxng/settings.rnc index 742e137738..c554dfa753 100644 --- a/src/relaxng/settings.rnc +++ b/src/relaxng/settings.rnc @@ -170,10 +170,6 @@ element settings { attribute nuclide { xsd:string { maxLength = "12" } }) & (element method { xsd:string { maxLength = "16" } } | attribute method { xsd:string { maxLength = "16" } }) & - (element xs_label { xsd:string { maxLength = "12" } } | - attribute xs_label { xsd:string { maxLength = "12" } }) & - (element xs_label_0K { xsd:string { maxLength = "12" } } | - attribute xs_label_0K { xsd:string { maxLength = "12" } }) & (element E_min { xsd:double } | attribute E_min { xsd:double }) & (element E_max { xsd:double } | diff --git a/src/relaxng/settings.rng b/src/relaxng/settings.rng index 39bed4a62f..0719bcbc66 100644 --- a/src/relaxng/settings.rng +++ b/src/relaxng/settings.rng @@ -778,30 +778,6 @@ - - - - 12 - - - - - 12 - - - - - - - 12 - - - - - 12 - - - From fe43bd77905c5644d4a4be0f9db110c2f86cf660 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 23 Aug 2016 20:36:52 -0400 Subject: [PATCH 331/417] finished updating manual --- docs/source/io_formats/nuclear_data.rst | 12 +++++++++++- docs/source/usersguide/input.rst | 19 ++++++------------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index bb87bd5b95..18d36528fa 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -21,6 +21,15 @@ Incident Neutron Data :Datasets: - **energy** (*double[]*) -- Energy points at which cross sections are tabulated +**//kTs/** + + is the temperature in Kelvin, rounded to the nearest integer, of the +temperature-dependent data set. For example, the data set corresponding to +300 Kelvin would be located at `300K`. + +:Datasets: - **** (*double[]*) -- kT values (in MeV) for each Temperature + TTT (in Kelvin) + **//reactions/reaction_/** :Attributes: - **mt** (*int*) -- ENDF MT reaction number @@ -39,7 +48,8 @@ temperature-dependent data set. For example, the data set corresponding to :Attributes: - **threshold_idx** (*int*) -- Index on the energy grid that the reaction threshold corresponds to for temperature TTT (in Kelvin) -:Datasets: - **xs** (*double[]*) -- Cross section values tabulated against the nuclide energy grid for temperature TTT (in Kelvin) +:Datasets: - **xs** (*double[]*) -- Cross section values tabulated against the + nuclide energy grid for temperature TTT (in Kelvin) **//reactions/reaction_/product_/** diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 27a9d36435..57663594d5 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -395,19 +395,16 @@ attributes or sub-elements: :scatterer: An element with attributes/sub-elements called ``nuclide``, ``method``, - ``xs_label``, ``xs_label_0K``, ``E_min``, and ``E_max``. The ``nuclide`` - attribute is the name, as given by the ``name`` attribute within the - ``nuclide`` sub-element of the ``material`` element in ``materials.xml``, - of the nuclide to which a resonance scattering treatment is to be applied. + ``E_min``, and ``E_max``. The ``nuclide`` attribute is the name, as given + by the ``name`` attribute within the ``nuclide`` sub-element of the + ``material`` element in ``materials.xml``, of the nuclide to which a + resonance scattering treatment is to be applied. The ``method`` attribute gives the type of resonance scattering treatment that is to be applied to the ``nuclide``. Acceptable inputs - none of which are case-sensitive - for the ``method`` attribute are ``ARES``, ``CXS``, ``WCM``, and ``DBRC``. Descriptions of each of these methods - are documented here_. The ``xs_label`` attribute gives the label for the - cross section data of the ``nuclide`` at a given temperature. The - ``xs_label_0K`` gives the label for the 0 K cross section data for the - ``nuclide``. The ``E_min`` attribute gives the minimum energy above - which the ``method`` is applied. The ``E_max`` attribute gives the + are documented here_. The ``E_min`` attribute gives the minimum energy + above which the ``method`` is applied. The ``E_max`` attribute gives the maximum energy below which the ``method`` is applied. One example would be as follows: @@ -419,16 +416,12 @@ attributes or sub-elements: U-238 ARES - 92238.72c - 92238.00c 5.0e-6 40.0e-6 Pu-239 dbrc - 94239.72c - 94239.00c 0.01e-6 210.0e-6 From d83f8930c67a183c21b0722c2e6c9a7098248eed Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 24 Aug 2016 05:07:22 -0400 Subject: [PATCH 332/417] updated the travis.yaml to poing to data --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 173af7602c..f243a1c5a1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,7 +42,7 @@ install: true before_script: - if [[ ! -e $HOME/nndc_hdf5/cross_sections.xml ]]; then - wget https://anl.box.com/shared/static/dqkwdl7o4lauo91h3mgrn9qno6a3c8mp.xz -O - | tar -C $HOME -xvJ; + wget https://www.dropbox.com/s/6cvzl80lpkar87f/nndc_hdf5.tar.xz -O - | tar -C $HOME -xvJ; fi - export OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml From 07d62fc9aefb643e8c009dc0b056d3dc156d56fb Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 24 Aug 2016 05:26:42 -0400 Subject: [PATCH 333/417] Fixed a bug in reading kTs from HDF5 library on the python side --- openmc/data/neutron.py | 2 +- openmc/data/thermal.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 87415d427f..bf8020b72a 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -462,7 +462,7 @@ class IncidentNeutron(EqualityMixin): kTg = group['kTs'] kTs = [] for temp in kTg: - kTs.append(temp.value) + kTs.append(kTg[temp].value) temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] data = cls(name, atomic_number, mass_number, metastable, diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 6f4aadd749..8e4ab8ea57 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -441,7 +441,7 @@ class ThermalScattering(EqualityMixin): kTg = group['kTs'] kTs = [] for temp in kTg: - kTs.append(temp.value) + kTs.append(kTg[temp].value) temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] table = cls(name, atomic_weight_ratio, kTs) From 262554d53d968315bdc5691aa5deaef4aac1dae5 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 24 Aug 2016 06:53:56 -0400 Subject: [PATCH 334/417] Apparently i never committed the new inputs for test_resonance_scattering. Now I did! --- tests/test_resonance_scattering/inputs_true.dat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_resonance_scattering/inputs_true.dat b/tests/test_resonance_scattering/inputs_true.dat index a1149a1ba5..ba59e03f59 100644 --- a/tests/test_resonance_scattering/inputs_true.dat +++ b/tests/test_resonance_scattering/inputs_true.dat @@ -1 +1 @@ -647cb9773dea9e27ec53ecb5029ab983ecc15cdd5d9551185906a61529452f3966e2b72bcf04c6a09f66810c29934357085343ecc3b888268fae85a100a907e3 \ No newline at end of file +dea135e820f605cf7a7f8d184330d2dd093cbcd2d53a71198819cb4dc7c455809dbb37eff79538d9b35d19932bd88b555ba833f32d01fa8d5289840b2250f72a \ No newline at end of file From c91480e56c46f65f0e8ca3a4cc5e3035df524a4b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 24 Aug 2016 10:10:52 -0500 Subject: [PATCH 335/417] Will this one satisfy @nelsonag? We shall see. --- src/output.F90 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/output.F90 b/src/output.F90 index dc007aab61..ee5aeeaf1c 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -54,14 +54,14 @@ contains ' ##################### %%%%%%%%%%%%%%%%%%%%%', & ' ###################### %%%%%%%%%%%%%%%%%%%%', & ' ####################### %%%%%%%%%%%%%%%%%%', & - ' ######################## %%%%%%%%%%%%%%%%%', & + ' ####################### %%%%%%%%%%%%%%%%%', & ' ###################### %%%%%%%%%%%%%%%%%', & ' #################### %%%%%%%%%%%%%%%%%', & ' ################# %%%%%%%%%%%%%%%%%', & - ' ############## %%%%%%%%%%%%%%%%', & - ' ########### %%%%%%%%%%%%%%%', & - ' ####### %%%%%%%%%%%%%%', & - ' %%%%%%%%%%%%' + ' ############### %%%%%%%%%%%%%%%%', & + ' ############ %%%%%%%%%%%%%%%', & + ' ######## %%%%%%%%%%%%%%', & + ' %%%%%%%%%%%' ! Write version information write(UNIT=OUTPUT_UNIT, FMT=*) & From 0351ed96f026d7a4ccd2e763243a14ef9ebb9d8c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 24 Aug 2016 19:57:16 -0400 Subject: [PATCH 336/417] resolving first round of @paulromano comments --- docs/source/io_formats/nuclear_data.rst | 17 +++++++------- openmc/data/data.py | 7 +++--- openmc/data/neutron.py | 31 +++++++++++++++++-------- openmc/data/reaction.py | 10 ++++---- openmc/data/thermal.py | 15 ++++++------ 5 files changed, 47 insertions(+), 33 deletions(-) diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index 18d36528fa..39fcdfd325 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -16,18 +16,17 @@ Incident Neutron Data - **metastable** (*int*) -- Metastable state (0=ground, 1=first excited, etc.) - **atomic_weight_ratio** (*double*) -- Mass in units of neutron masses - - **kTs** (*double[]*) -- Temperatures (in MeV) contained in the library - **n_reaction** (*int*) -- Number of reactions :Datasets: - **energy** (*double[]*) -- Energy points at which cross sections are tabulated **//kTs/** - is the temperature in Kelvin, rounded to the nearest integer, of the +K is the temperature in Kelvin, rounded to the nearest integer, of the temperature-dependent data set. For example, the data set corresponding to 300 Kelvin would be located at `300K`. -:Datasets: - **** (*double[]*) -- kT values (in MeV) for each Temperature +:Datasets: - **K** (*double*) -- kT values (in MeV) for each Temperature TTT (in Kelvin) **//reactions/reaction_/** @@ -39,9 +38,9 @@ temperature-dependent data set. For example, the data set corresponding to scattering is center-of-mass (1) or laboratory (0) - **n_product** (*int*) -- Number of reaction products -**//reactions/reaction_//** +**//reactions/reaction_/K/** - is the temperature in Kelvin, rounded to the nearest integer, of the +K is the temperature in Kelvin, rounded to the nearest integer, of the temperature-dependent data set. For example, the data set corresponding to 300 Kelvin would be located at `300K`. @@ -116,9 +115,9 @@ Thermal Neutron Scattering Data outgoing angle-energy distributions are represented ('equal', 'skewed', or 'continuous'). -**//elastic//** +**//elastic/K/** - is the temperature in Kelvin, rounded to the nearest integer, of the +K is the temperature in Kelvin, rounded to the nearest integer, of the temperature-dependent data set. For example, the data set corresponding to 300 Kelvin would be located at `300K`. @@ -128,9 +127,9 @@ temperature-dependent data set. For example, the data set corresponding to and angles for coherent elastic scattering for temperature TTT (in Kelvin) -**//inelastic//** +**//inelastic/K/** - is the temperature in Kelvin, rounded to the nearest integer, of the +K is the temperature in Kelvin, rounded to the nearest integer, of the temperature-dependent data set. For example, the data set corresponding to 300 Kelvin would be located at `300K`. diff --git a/openmc/data/data.py b/openmc/data/data.py index 4eb7860c23..574ae541aa 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -219,6 +219,7 @@ def atomic_mass(isotope): return _ATOMIC_MASS.get(isotope.lower()) -def kT_to_K(kT): - K = kT / 8.6173324e-11 - return K \ No newline at end of file +# The value of the Boltzman constant in units of MeV / K +# Values here are from the Committee on Data for Science and Technology +# (CODATA) 2010 recommendation (doi:10.1103/RevModPhys.84.1527). +K_BOLTZMANN = 8.6173324E-11 diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index bf8020b72a..dbf2da23ca 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -7,7 +7,7 @@ from warnings import warn import numpy as np import h5py -from .data import ATOMIC_SYMBOL, SUM_RULES, kT_to_K +from .data import ATOMIC_SYMBOL, SUM_RULES, K_BOLTZMANN from .ace import Table, get_table from .fission_energy import FissionEnergyRelease from .function import Tabulated1D, Sum @@ -40,6 +40,16 @@ def _get_metadata(zaid, metastable_scheme='nndc'): Returns ------- + name : str + Name of the table + element : str + The atomic symbol of the isotope in the table; e.g., Zr. + Z : int + Number of protons in the nucleus + mass_number : int + Number of nucleons in the nucleus + metastable : int + Metastable state of the nucleus. A value of zero indicates ground state. """ @@ -98,7 +108,7 @@ class IncidentNeutron(EqualityMixin): Metastable state of the nucleus. A value of zero indicates ground state. atomic_weight_ratio : float Atomic mass ratio of the target nuclide. - kTs : Iterable float + kTs : Iterable of float List of temperatures of the target nuclide in the data set. The temperatures have units of MeV. @@ -112,7 +122,7 @@ class IncidentNeutron(EqualityMixin): Atomic weight ratio of the target nuclide. energy : dict of numpy.ndarray The energy values (MeV) at which reaction cross-sections are tabulated. - They keys of the dict are the temperature string ('296.3K') for each + They keys of the dict are the temperature string ('294K') for each set of energies fission_energy : None or openmc.data.FissionEnergyRelease The energy released by fission, tabulated by component (e.g. prompt @@ -122,7 +132,7 @@ class IncidentNeutron(EqualityMixin): metastable : int Metastable state of the nucleus. A value of zero indicates ground state. name : str - ZAID identifier of the table, e.g. 92235.70c. + ZAID identifier of the table, e.g. 92235. reactions : collections.OrderedDict Contains the cross sections, secondary angle and energy distributions, and other associated data for each reaction. The keys are the MT values @@ -132,8 +142,8 @@ class IncidentNeutron(EqualityMixin): are the MT values and the values are Reaction objects. temperatures : Iterable of str List of string representations the temperatures of the target nuclide - in the data set. The temperatures are strings with 1 decimal place, - i.e., '293.6K' + in the data set. The temperatures are strings of the temperature, + rounded to the nearest integer; e.g., '294K' kTs : Iterable of float List of temperatures of the target nuclide in the data set. The temperatures have units of MeV. @@ -150,7 +160,8 @@ class IncidentNeutron(EqualityMixin): self.metastable = metastable self.atomic_weight_ratio = atomic_weight_ratio self.kTs = kTs - self.temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] + self.temperatures = [str(int(round(kT / K_BOLTZMANN))) + "K" + for kT in kTs] self.energy = {} self._fission_energy = None self.reactions = OrderedDict() @@ -300,7 +311,7 @@ class IncidentNeutron(EqualityMixin): if ace.temperature not in self.kTs: if name == self.name: # Add temperature and kTs - strT = str(int(round(kT_to_K(ace.temperature)))) + "K" + strT = str(int(round(ace.temperature / K_BOLTZMANN))) + "K" self.temperatures.append(strT) self.kTs.append(ace.temperature) # Read energy grid @@ -463,7 +474,7 @@ class IncidentNeutron(EqualityMixin): kTs = [] for temp in kTg: kTs.append(kTg[temp].value) - temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] + temperatures = [str(int(round(kT / K_BOLTZMANN))) + "K" for kT in kTs] data = cls(name, atomic_number, mass_number, metastable, atomic_weight_ratio, kTs) @@ -550,7 +561,7 @@ class IncidentNeutron(EqualityMixin): # Assign temperature to the running list kTs = [ace.temperature] - temperatures = [str(int(round(kT_to_K(ace.temperature)))) + "K"] + temperatures = [str(int(round(ace.temperature / K_BOLTZMANN))) + "K"] # If mass number hasn't been specified, make an educated guess zaid, xs = ace.name.split('.') diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 5d3b8daf59..9dc0d26a4d 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -12,7 +12,7 @@ from openmc.stats import Uniform from .angle_distribution import AngleDistribution from .angle_energy import AngleEnergy from .function import Tabulated1D, Polynomial -from .data import REACTION_NAME, kT_to_K +from .data import REACTION_NAME, K_BOLTZMANN from .product import Product from .uncorrelated import UncorrelatedAngleEnergy @@ -444,8 +444,10 @@ class Reaction(EqualityMixin): HDF5 group to write to energy : Iterable of float Array of energies at which cross sections are tabulated at - temperatures : Iterable of float - Array of temperatures at which to obtain the cross sections + temperatures : Iterable of str + List of string representations the temperatures of the target + nuclide in the data set. The temperatures are strings of the + temperature, rounded to the nearest integer; e.g., '294K' Returns ------- @@ -488,7 +490,7 @@ class Reaction(EqualityMixin): # Convert data temperature to a "300.0K" number for indexing # temperature data - strT = str(int(round(kT_to_K(ace.temperature)))) + "K" + strT = str(int(round(ace.temperature / K_BOLTZMANN))) + "K" if i_reaction > 0: mt = int(ace.xss[ace.jxs[3] + i_reaction - 1]) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 8e4ab8ea57..21edab6868 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -8,7 +8,7 @@ import h5py import openmc.checkvalue as cv from openmc.mixin import EqualityMixin -from .data import kT_to_K +from .data import K_BOLTZMANN from .ace import Table, get_table from .angle_energy import AngleEnergy from .function import Tabulated1D @@ -177,8 +177,8 @@ class ThermalScattering(EqualityMixin): Name of the table, e.g. lwtr.20t. temperatures : Iterable of str List of string representations the temperatures of the target nuclide - in the data set. The temperatures are strings with 1 decimal place, - i.e., '293.6K' + in the data set. The temperatures are strings of the temperature, + rounded to the nearest integer; e.g., '294K' kTs : Iterable of float List of temperatures of the target nuclide in the data set. The temperatures have units of MeV. @@ -191,7 +191,8 @@ class ThermalScattering(EqualityMixin): self.name = name self.atomic_weight_ratio = atomic_weight_ratio self.kTs = kTs - self.temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] + self.temperatures = [str(int(round(kT / K_BOLTZMANN))) + "K" + for kT in kTs] self.elastic_xs = {} self.elastic_mu_out = {} self.inelastic_xs = {} @@ -304,7 +305,7 @@ class ThermalScattering(EqualityMixin): if ace.temperature not in self.kTs: if name == self.name: # Add temperature and kTs - strT = str(int(round(kT_to_K(ace.temperature)))) + "K" + strT = str(int(round(ace.temperature / K_BOLTZMANN))) + "K" self.temperatures.append(strT) self.kTs.append(ace.temperature) @@ -442,7 +443,7 @@ class ThermalScattering(EqualityMixin): kTs = [] for temp in kTg: kTs.append(kTg[temp].value) - temperatures = [str(int(round(kT_to_K(kT)))) + "K" for kT in kTs] + temperatures = [str(int(round(kT / K_BOLTZMANN))) + "K" for kT in kTs] table = cls(name, atomic_weight_ratio, kTs) table.zaids = group.attrs['zaids'] @@ -530,7 +531,7 @@ class ThermalScattering(EqualityMixin): # Assign temperature to the running list kTs = [ace.temperature] - temperatures = [str(int(round(kT_to_K(ace.temperature)))) + "K"] + temperatures = [str(int(round(ace.temperature / K_BOLTZMANN))) + "K"] table = cls(name, ace.atomic_weight_ratio, kTs) From ced87d82560197af61f21ba02bb64ac1f02a51e3 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 24 Aug 2016 19:59:37 -0400 Subject: [PATCH 337/417] one more --- docs/source/io_formats/nuclear_data.rst | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index 39fcdfd325..c834059b75 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -108,13 +108,21 @@ Thermal Neutron Scattering Data **//** :Attributes: - **atomic_weight_ratio** (*double*) -- Mass in units of neutron masses - - **kTs** (*double[]*) -- Temperatures (in MeV) contained in the library - **zaids** (*int[]*) -- ZAID identifiers for which the thermal scattering data applies to - **secondary_mode** (*char[]*) -- Indicates how the inelastic outgoing angle-energy distributions are represented ('equal', 'skewed', or 'continuous'). +**//kTs/** + +K is the temperature in Kelvin, rounded to the nearest integer, of the +temperature-dependent data set. For example, the data set corresponding to +300 Kelvin would be located at `300K`. + +:Datasets: - **K** (*double*) -- kT values (in MeV) for each Temperature + TTT (in Kelvin) + **//elastic/K/** K is the temperature in Kelvin, rounded to the nearest integer, of the From 6eb5bcd2e46472e3f6d60d510a585824bd526455 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 25 Aug 2016 20:36:29 -0400 Subject: [PATCH 338/417] Fixed identification of closest temperature --- src/nuclide_header.F90 | 21 ++++++++------------- src/sab_header.F90 | 22 +++++++++------------- 2 files changed, 17 insertions(+), 26 deletions(-) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 5b3dd31fe5..c7ab6d233a 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -198,14 +198,12 @@ module nuclide_header integer(HID_T) :: total_nu integer(HID_T) :: fer_group ! fission_energy_release group integer(HID_T) :: fer_dset - integer(HID_T) :: temp_dset integer(SIZE_T) :: name_len, name_file_len integer(HSIZE_T) :: j integer(HSIZE_T) :: dims(1) character(MAX_WORD_LEN) :: temp character(MAX_FILE_LEN), allocatable :: temperatures(:) integer, allocatable :: temperatures_integer(:) - integer :: temperature_delta character(6) :: my_temperature integer :: temperature_integer type(VectorInt) :: MTs @@ -224,25 +222,22 @@ module nuclide_header this % zaid = 1000 * Z + A + 400 * this % metastable call read_attribute(this % awr, group_id, 'atomic_weight_ratio') kT_group = open_group(group_id, 'kTs') + ! Before accessing the temperature data, see if the user-provied temperature ! exists. We can find this out by looking at the datasets within kT_group - temp = adjustr(trim(temperature)) - temperature_integer = str_to_int(temp(1:len(temp) - 1)) + temperature_integer = & + str_to_int(temperature(1: len_trim(adjustl(temperature)) - 1)) call get_datasets(kT_group, temperatures) allocate(temperatures_integer(size(temperatures))) do i = 1, size(temperatures) - temp = adjustr(trim(temperatures(i))) - temperatures_integer(i) = str_to_int(temp(1:len(temp) - 1)) - end do - j = 1 - temperature_delta = temperature_integer - temperatures_integer(j) - do i = 2, size(temperatures) - if (abs(temperature_integer - temperatures_integer(i)) < temperature_delta) & - j = i + temperatures_integer(i) = & + str_to_int(temperatures(i)(1: len_trim(adjustl(temperatures(i))) - 1)) end do + my_temperature = & + temperatures(minloc(abs(temperature_integer - temperatures_integer), & + dim=1)) ! Now print a warning if there is no matching temperature and then use the ! closest temperature - my_temperature = temperatures(j) if (temperature /= my_temperature) then if (temperature == '0K') then call warning(trim(this % name) // " does not contain 0K data & diff --git a/src/sab_header.F90 b/src/sab_header.F90 index 59e336a38d..5facd3fc3f 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -176,9 +176,7 @@ contains logical :: exists type(CorrelatedAngleEnergy) :: correlated_dist character(MAX_FILE_LEN), allocatable :: temperatures(:) - character(MAX_FILE_LEN) :: temp_str integer, allocatable :: temperatures_integer(:) - integer :: temperature_delta character(6) :: my_temperature integer :: temperature_integer @@ -202,25 +200,23 @@ contains end select this % n_zaid = size(this % zaid) kT_group = open_group(group_id, 'kTs') + ! Before accessing the temperature data, see if the user-provied temperature ! exists. We can find this out by looking at the datasets within kT_group - temp_str = adjustr(trim(temperature)) - temperature_integer = str_to_int(temp_str(1:len(temp_str) - 1)) + temperature_integer = & + str_to_int(temperature(1: len_trim(adjustl(temperature)) - 1)) call get_datasets(kT_group, temperatures) allocate(temperatures_integer(size(temperatures))) do i = 1, size(temperatures) - temp_str = adjustr(trim(temperatures(i))) - temperatures_integer(i) = str_to_int(temp_str(1:len(temp_str) - 1)) - end do - j = 1 - temperature_delta = temperature_integer - temperatures_integer(j) - do i = 2, size(temperatures) - if (abs(temperature_integer - temperatures_integer(i)) < temperature_delta) & - j = i + temperatures_integer(i) = & + str_to_int(temperatures(i)(1: len_trim(adjustl(temperatures(i))) - 1)) end do + my_temperature = & + temperatures(minloc(abs(temperature_integer - temperatures_integer), & + dim=1)) + ! Now print a warning if there is no matching temperature and then use the ! closest temperature - my_temperature = temperatures(j) if (temperature /= my_temperature) then if (temperature == '0K') then call warning(trim(this % name) // " does not contain 0K data & From 68625ca314a722bf02e994b9aba5f4d74c9a412e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 25 Aug 2016 11:17:37 -0500 Subject: [PATCH 339/417] Improve storage of temperature-dependent cross sections. - Got rid of XS class - Renamed Reaction.T_data to Reaction.xs - Got rid of Reaction.add_temperature() - Simplified IncidentNeutron.add_temperature_from_ace() --- openmc/data/neutron.py | 118 +++++++++------------------ openmc/data/reaction.py | 172 +++++++++++++++------------------------- 2 files changed, 102 insertions(+), 188 deletions(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index dbf2da23ca..6020f09624 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -1,6 +1,7 @@ from __future__ import division, unicode_literals import sys from collections import OrderedDict, Iterable, Mapping +from itertools import chain from numbers import Integral, Real from warnings import warn @@ -160,8 +161,6 @@ class IncidentNeutron(EqualityMixin): self.metastable = metastable self.atomic_weight_ratio = atomic_weight_ratio self.kTs = kTs - self.temperatures = [str(int(round(kT / K_BOLTZMANN))) + "K" - for kT in kTs] self.energy = {} self._fission_energy = None self.reactions = OrderedDict() @@ -221,6 +220,10 @@ class IncidentNeutron(EqualityMixin): def urr(self): return self._urr + @property + def temperatures(self): + return ["{}K".format(int(round(kT / K_BOLTZMANN))) for kT in self.kTs] + @name.setter def name(self, name): cv.check_type('name', name, basestring) @@ -296,66 +299,31 @@ class IncidentNeutron(EqualityMixin): """ - if isinstance(ace_or_filename, Table): - ace = ace_or_filename - else: - ace = get_table(ace_or_filename) + data = IncidentNeutron.from_ace(ace_or_filename, metastable_scheme) - # Obtain the information needed to check if this ACE file is for the - # same nuclide. - zaid, xs = ace.name.split('.') - name, element, Z, mass_number, metastable = \ - _get_metadata(int(zaid), metastable_scheme) + # Check if temprature already exists + strT = data.temperatures[0] + if strT in self.temperatures: + warn('Cross sections at T={} already exist.'.format(strT)) + return - # If this ACE data matches the data within self then get the data - if ace.temperature not in self.kTs: - if name == self.name: - # Add temperature and kTs - strT = str(int(round(ace.temperature / K_BOLTZMANN))) + "K" - self.temperatures.append(strT) - self.kTs.append(ace.temperature) - # Read energy grid - n_energy = ace.nxs[3] - energy = ace.xss[ace.jxs[1]:ace.jxs[1] + n_energy] - self.energy[strT] = energy - total_xs = \ - Tabulated1D(energy, ace.xss[ace.jxs[1] + - n_energy:ace.jxs[1] + - 2 * n_energy]) - abs_xs = Tabulated1D(energy, ace.xss[ace.jxs[1] + 2 * - n_energy:ace.jxs[1] + - 3 * n_energy]) + # Check that name matches + if data.name != self.name: + raise ValueError('Data provided for an incorrect nuclide.') - self.summed_reactions[1].add_temperature(strT, 0, total_xs) - if 27 in self.summed_reactions: - self.summed_reactions[27].add_temperature(strT, 0, abs_xs) + # Add temperature + self.kTs += data.kTs - # Read each reaction and get the xs data out of it - n_reaction = ace.nxs[4] + 1 - for i in range(n_reaction): - rx = Reaction.from_ace(ace, i) + # Add energy grid + self.energy[strT] = data.energy[strT] - xsdata = list(rx.T_data.values())[0] - self.reactions[rx.mt].add_temperature(strT, - xsdata.threshold_idx, - xsdata.xs) - - # Obtain data for the summed photon reactions - for mt in self.summed_reactions: - if mt not in [1, 27]: - # Create summed appropriate cross section - mts = self.get_reaction_components(mt) - xsdata = Sum([self.reactions[mt_i].T_data[strT].xs - for mt_i in mts]) - - self.summed_reactions[mt].add_temperature(strT, 0, - xsdata) - else: - raise ValueError('Data provided for an incorrect nuclide') - - else: - raise Warning('Temperature data set already within ' - 'IncidentNeutron object') + # Add normal and summed reactions + for mt in chain(data.reactions, data.summed_reactions): + if mt not in self: + raise ValueError("Tried to add cross sections for MT={} at T={}" + " but this reaction doesn't exist.".format( + mt, strT)) + self[mt].xs[strT] = data[mt].xs[strT] def get_reaction_components(self, mt): """Determine what reactions make up summed reaction. @@ -474,7 +442,6 @@ class IncidentNeutron(EqualityMixin): kTs = [] for temp in kTg: kTs.append(kTg[temp].value) - temperatures = [str(int(round(kT / K_BOLTZMANN))) + "K" for kT in kTs] data = cls(name, atomic_number, mass_number, metastable, atomic_weight_ratio, kTs) @@ -500,15 +467,12 @@ class IncidentNeutron(EqualityMixin): # MTs never depend on lower MTs. for mt_sum in sorted(SUM_RULES, reverse=True): if mt_sum not in data: - for it, T in enumerate(data.temperatures): - xs_components = \ - [data[mt].T_data[T].xs for mt in SUM_RULES[mt_sum] - if mt in data] + data.summed_reactions[mt_sum] = rx = Reaction(mt_sum) + for T in data.temperatures: + xs_components = [data[mt].xs[T] for mt in SUM_RULES[mt_sum] + if mt in data] if len(xs_components) > 0: - if it == 0: - data.summed_reactions[mt_sum] = Reaction(mt_sum) - data.summed_reactions[mt_sum].add_temperature( - T, 0, Sum(xs_components)) + rx.xs[T] = Sum(xs_components) # Read unresolved resonance probability tables if 'urr' in group: @@ -561,8 +525,6 @@ class IncidentNeutron(EqualityMixin): # Assign temperature to the running list kTs = [ace.temperature] - temperatures = [str(int(round(ace.temperature / K_BOLTZMANN))) + "K"] - # If mass number hasn't been specified, make an educated guess zaid, xs = ace.name.split('.') name, element, Z, mass_number, metastable = \ @@ -571,22 +533,24 @@ class IncidentNeutron(EqualityMixin): data = cls(name, Z, mass_number, metastable, ace.atomic_weight_ratio, kTs) + # Get string of temperature to use as a dictionary key + strT = data.temperatures[0] + # Read energy grid n_energy = ace.nxs[3] energy = ace.xss[ace.jxs[1]:ace.jxs[1] + n_energy] - data.energy[temperatures[0]] = energy + data.energy[strT] = energy total_xs = ace.xss[ace.jxs[1] + n_energy:ace.jxs[1] + 2 * n_energy] absorption_xs = ace.xss[ace.jxs[1] + 2*n_energy:ace.jxs[1] + 3 * n_energy] # Create summed reactions (total and absorption) total = Reaction(1) - total.add_temperature(temperatures[-1], 0, - Tabulated1D(energy, total_xs)) + total.xs[strT] = Tabulated1D(energy, total_xs) data.summed_reactions[1] = total + absorption = Reaction(27) - absorption.add_temperature(temperatures[-1], 0, - Tabulated1D(energy, absorption_xs)) + absorption.xs[strT] = Tabulated1D(energy, absorption_xs) data.summed_reactions[27] = absorption # Read each reaction @@ -616,12 +580,8 @@ class IncidentNeutron(EqualityMixin): warn('Photon production is present for MT={} but no ' 'reaction components exist.'.format(mt)) continue - threshold_idx = \ - np.amin([data.reactions[mt_i].T_data[temperatures[-1]].xs.x[0] - for mt_i in mts]) - xsvals = Sum([data.reactions[mt_i].T_data[temperatures[-1]].xs - for mt_i in mts]) - rx.add_temperature(temperatures[-1], threshold_idx, xsvals) + rx.xs[strT] = Sum([data.reactions[mt_i].xs[strT] + for mt_i in mts]) # Determine summed cross section rx.products += _get_photon_products(ace, rx) diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 9dc0d26a4d..45d668b92f 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -1,5 +1,5 @@ from __future__ import division, unicode_literals -from collections import Iterable, Callable +from collections import Iterable, Callable, MutableMapping from copy import deepcopy from numbers import Real, Integral from warnings import warn @@ -11,7 +11,7 @@ from openmc.mixin import EqualityMixin from openmc.stats import Uniform from .angle_distribution import AngleDistribution from .angle_energy import AngleEnergy -from .function import Tabulated1D, Polynomial +from .function import Tabulated1D, Polynomial, Function1D from .data import REACTION_NAME, K_BOLTZMANN from .product import Product from .uncorrelated import UncorrelatedAngleEnergy @@ -211,7 +211,7 @@ def _get_photon_products(ace, rx): # Get photon production cross section photon_prod_xs = ace.xss[idx + 2:idx + 2 + n_energy] - neutron_xs = list(rx.T_data.values())[0].xs(energy) + neutron_xs = list(rx.xs.values())[0](energy) idx = np.where(neutron_xs > 0.) # Calculate photon yield @@ -251,78 +251,6 @@ def _get_photon_products(ace, rx): return photons -class XS(EqualityMixin): - """An energy-dependent cross-section for a reaction channel - - Parameters - ---------- - threshold_idx : int - The index on the energy grid corresponding to the threshold of this - reaction. - xs : dict of callable - Microscopic cross section for this reaction as a function of incident - energy; these cross sections are provided in a dictionary where the key - is the temperature of the cross section set. - - Attributes - ---------- - threshold : float - Threshold of the reaction in MeV - threshold_idx : int - The index on the energy grid corresponding to the threshold of this - reaction. - xs : dict of callable - Microscopic cross section for this reaction as a function of incident - energy; these cross sections are provided in a dictionary where the key - is the temperature of the cross section set. - - """ - - def __init__(self, threshold_idx, xs): - self._threshold_idx = threshold_idx - self._xs = xs - - @property - def threshold_idx(self): - return self._threshold_idx - - @property - def threshold(self): - return self.xs.x[0] - - @property - def xs(self): - return self._xs - - @threshold_idx.setter - def threshold_idx(self, threshold_idx): - cv.check_type('threshold_idx', threshold_idx, Integral) - cv.check_greater_than('threshold_idx', threshold_idx, 0, equality=True) - self._threshold_idx = threshold_idx - - @xs.setter - def xs(self, xs): - cv.check_type('reaction cross section', xs, Callable) - if isinstance(xs, Tabulated1D): - for y in xs.y: - cv.check_greater_than('reaction cross section', y, 0.0, True) - self._xs = xs - - def to_hdf5(self, group): - """Write XS to an HDF5 group - - Parameters - ---------- - group : h5py.Group - HDF5 group to write to - - """ - - group.attrs['threshold_idx'] = self.threshold_idx + 1 - if self.xs is not None: - group.create_dataset('xs', data=self.xs.y) - - class Reaction(EqualityMixin): """A nuclear reaction @@ -333,8 +261,7 @@ class Reaction(EqualityMixin): Parameters ---------- mt : int - The ENDF MT number for this reaction. On occasion, MCNP uses MT numbers - that don't correspond exactly to the ENDF specification. + The ENDF MT number for this reaction. Attributes ---------- @@ -346,14 +273,9 @@ class Reaction(EqualityMixin): The ENDF MT number for this reaction. q_value : float The Q-value of this reaction in MeV. - table : openmc.data.ace.Table - The ACE table which contains this reaction. threshold : float Threshold of the reaction in MeV - threshold_idx : int - The index on the energy grid corresponding to the threshold of this - reaction. - T_data : dict of openmc.data.XS + xs : dict of str to openmc.data.Function1D Microscopic cross section for this reaction as a function of incident energy; these cross sections are provided in a dictionary where the key is the temperature of the cross section set. @@ -366,12 +288,13 @@ class Reaction(EqualityMixin): """ def __init__(self, mt): - self.center_of_mass = True + self._center_of_mass = True + self._q_value = 0. + self._xs = {} + self._products = [] + self._derived_products = [] + self.mt = mt - self.q_value = 0. - self.T_data = {} - self.products = [] - self.derived_products = [] def __repr__(self): if self.mt in REACTION_NAME: @@ -391,6 +314,14 @@ class Reaction(EqualityMixin): def products(self): return self._products + @property + def derived_products(self): + return self._derived_products + + @property + def xs(self): + return self._xs + @center_of_mass.setter def center_of_mass(self, center_of_mass): cv.check_type('center of mass', center_of_mass, (bool, np.bool_)) @@ -406,9 +337,19 @@ class Reaction(EqualityMixin): cv.check_type('reaction products', products, Iterable, Product) self._products = products - def add_temperature(self, temperature, threshold_idx, xs): - cv.check_type('temperature', temperature, str) - self.T_data[temperature] = XS(threshold_idx, xs) + @derived_products.setter + def derived_products(self, derived_products): + cv.check_type('reaction derived products', derived_products, + Iterable, Product) + self._derived_products = derived_products + + @xs.setter + def xs(self, xs): + cv.check_type('reaction cross section dictionary', xs, MutableMapping) + for key, value in xs.items(): + cv.check_type('reaction cross section temperature', key, basestring) + cv.check_type('reaction cross section', value, Function1D) + self._xs = xs def to_hdf5(self, group): """Write reaction to an HDF5 group @@ -427,27 +368,30 @@ class Reaction(EqualityMixin): group.attrs['label'] = np.string_(self.mt) group.attrs['Q_value'] = self.q_value group.attrs['center_of_mass'] = 1 if self.center_of_mass else 0 - for T in self.T_data: + for T in self.xs: Tgroup = group.create_group(T) - self.T_data[T].to_hdf5(Tgroup) + if self.xs[T] is not None: + dset = Tgroup.create_dataset('xs', data=self.xs[T].y) + if hasattr(self.xs[T], '_threshold_idx'): + threshold_idx = self.xs[T]._threshold_idx + 1 + else: + threshold_idx = 1 + dset.attrs['threshold_idx'] = threshold_idx for i, p in enumerate(self.products): pgroup = group.create_group('product_{}'.format(i)) p.to_hdf5(pgroup) @classmethod - def from_hdf5(cls, group, energy, temperatures): + def from_hdf5(cls, group, energy): """Generate reaction from an HDF5 group Parameters ---------- group : h5py.Group HDF5 group to write to - energy : Iterable of float - Array of energies at which cross sections are tabulated at - temperatures : Iterable of str - List of string representations the temperatures of the target - nuclide in the data set. The temperatures are strings of the - temperature, rounded to the nearest integer; e.g., '294K' + energy : dict + Dictionary whose keys are temperatures (e.g., '300K') and values are + arrays of energies at which cross sections are tabulated at. Returns ------- @@ -461,13 +405,21 @@ class Reaction(EqualityMixin): rx.q_value = group.attrs['Q_value'] rx.center_of_mass = bool(group.attrs['center_of_mass']) - # Read cross section data - for T in temperatures: - Tgroup = group[T] - if 'xs' in Tgroup: - threshold_idx = Tgroup.attrs['threshold_idx'] - 1 - xs = Tabulated1D(energy[T][threshold_idx:], Tgroup['xs'].value) - rx.T_data[T] = XS(threshold_idx, xs) + # Read cross section at each temperature + for T, Tgroup in group.items(): + if T.endswith('K'): + if 'xs' in Tgroup: + # Make sure temperature has associated energy grid + if T not in energy: + raise ValueError( + 'Could not create reaction cross section for MT={} ' + 'at T={} because no corresponding energy grid ' + 'exists.'.format(mt, T)) + xs = Tgroup['xs'].value + threshold_idx = Tgroup['xs'].attrs['threshold_idx'] - 1 + tabulated_xs = Tabulated1D(energy[T][threshold_idx:], xs) + tabulated_xs._threshold_idx = threshold_idx + rx.xs[T] = tabulated_xs # Determine number of products n_product = 0 @@ -522,7 +474,8 @@ class Reaction(EqualityMixin): xs[xs < 0.0] = 0.0 tabulated_xs = Tabulated1D(energy, xs) - rx.T_data[strT] = XS(threshold_idx, tabulated_xs) + tabulated_xs._threshold_idx = threshold_idx + rx.xs[strT] = tabulated_xs # ================================================================== # YIELD AND ANGLE-ENERGY DISTRIBUTION @@ -582,7 +535,8 @@ class Reaction(EqualityMixin): elastic_xs[elastic_xs < 0.0] = 0.0 tabulated_xs = Tabulated1D(grid, elastic_xs) - rx.T_data[strT] = XS(0, tabulated_xs) + tabulated_xs._threshold_idx = 0 + rx.xs[strT] = tabulated_xs # No energy distribution for elastic scattering neutron = Product('neutron') From 19c8a1159d6d6089faf6fda4efb4decc742fbbe9 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 25 Aug 2016 13:58:53 -0500 Subject: [PATCH 340/417] Make probability tables temperature-dependent --- openmc/data/neutron.py | 51 +++++++++++++++++++++++++---------------- src/nuclide_header.F90 | 3 ++- src/reaction_header.F90 | 2 +- 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 6020f09624..c629dbc2ad 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -1,6 +1,6 @@ from __future__ import division, unicode_literals import sys -from collections import OrderedDict, Iterable, Mapping +from collections import OrderedDict, Iterable, Mapping, MutableMapping from itertools import chain from numbers import Integral, Real from warnings import warn @@ -141,15 +141,16 @@ class IncidentNeutron(EqualityMixin): summed_reactions : collections.OrderedDict Contains summed cross sections, e.g., the total cross section. The keys are the MT values and the values are Reaction objects. - temperatures : Iterable of str + temperatures : list of str List of string representations the temperatures of the target nuclide in the data set. The temperatures are strings of the temperature, rounded to the nearest integer; e.g., '294K' kTs : Iterable of float List of temperatures of the target nuclide in the data set. The temperatures have units of MeV. - urr : None or openmc.data.ProbabilityTables - Unresolved resonance region probability tables + urr : dict + Dictionary whose keys are temperatures (e.g., '294K') and values are + unresolved resonance region probability tables. """ @@ -165,7 +166,7 @@ class IncidentNeutron(EqualityMixin): self._fission_energy = None self.reactions = OrderedDict() self.summed_reactions = OrderedDict() - self.urr = None + self._urr = {} def __contains__(self, mt): return mt in self.reactions or mt in self.summed_reactions @@ -275,8 +276,10 @@ class IncidentNeutron(EqualityMixin): @urr.setter def urr(self, urr): - cv.check_type('probability tables', urr, - (ProbabilityTables, type(None))) + cv.check_type('probability table dictionary', urr, MutableMapping) + for key, value in urr: + cv.check_type('probability table temperature', key, basestring) + cv.check_type('probability tables', value, ProbabilityTables) self._urr = urr def add_temperature_from_ace(self, ace_or_filename, metastable_scheme='nndc'): @@ -325,6 +328,10 @@ class IncidentNeutron(EqualityMixin): mt, strT)) self[mt].xs[strT] = data[mt].xs[strT] + # Add probability tables + if strT in data.urr: + self.urr[strT] = data.urr[strT] + def get_reaction_components(self, mt): """Determine what reactions make up summed reaction. @@ -399,9 +406,11 @@ class IncidentNeutron(EqualityMixin): rx.derived_products[0].to_hdf5(tgroup) # Write unresolved resonance probability tables - if self.urr is not None: + if self.urr: urr_group = g.create_group('urr') - self.urr.to_hdf5(urr_group) + for temperature, urr in self.urr.items(): + tgroup = urr_group.create_group(temperature) + urr.to_hdf5(tgroup) # Write fission energy release data if self.fission_energy is not None: @@ -448,14 +457,14 @@ class IncidentNeutron(EqualityMixin): # Read energy grid e_group = group['energy'] - for temperature in temperatures: - data.energy[temperature] = e_group[temperature].value + for temperature, dset in e_group.items(): + data.energy[temperature] = dset.value # Read reaction data rxs_group = group['reactions'] for name, obj in sorted(rxs_group.items()): if name.startswith('reaction_'): - rx = Reaction.from_hdf5(obj, data.energy, temperatures) + rx = Reaction.from_hdf5(obj, data.energy) data.reactions[rx.mt] = rx # Read total nu data if available @@ -467,17 +476,17 @@ class IncidentNeutron(EqualityMixin): # MTs never depend on lower MTs. for mt_sum in sorted(SUM_RULES, reverse=True): if mt_sum not in data: - data.summed_reactions[mt_sum] = rx = Reaction(mt_sum) - for T in data.temperatures: - xs_components = [data[mt].xs[T] for mt in SUM_RULES[mt_sum] - if mt in data] - if len(xs_components) > 0: - rx.xs[T] = Sum(xs_components) + rxs = [data[mt] for mt in SUM_RULES[mt_sum] if mt in data] + if len(rxs) > 0: + data.summed_reactions[mt_sum] = rx = Reaction(mt_sum) + for T in data.temperatures: + rx.xs[T] = Sum([rx.xs[T] for rx in rxs]) # Read unresolved resonance probability tables if 'urr' in group: urr_group = group['urr'] - data.urr = ProbabilityTables.from_hdf5(urr_group) + for temperature, tgroup in urr_group.items(): + data.urr[temperature] = ProbabilityTables.from_hdf5(tgroup) # Read fission energy release data if 'fission_energy_release' in group: @@ -588,6 +597,8 @@ class IncidentNeutron(EqualityMixin): data.summed_reactions[mt] = rx # Read unresolved resonance probability tables - data.urr = ProbabilityTables.from_ace(ace) + urr = ProbabilityTables.from_ace(ace) + if urr is not None: + data.urr[strT] = urr return data diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index c7ab6d233a..3fffb76f3d 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -280,6 +280,7 @@ module nuclide_header do i = 1, size(this % reactions) rx_group = open_group(rxs_group, 'reaction_' // trim(& zero_padded(MTs % data(i), 3))) + call this % reactions(i) % from_hdf5(rx_group, my_temperature) call close_group(rx_group) end do @@ -290,7 +291,7 @@ module nuclide_header if (exists) then this % urr_present = .true. allocate(this % urr_data) - urr_group = open_group(group_id, 'urr') + urr_group = open_group(group_id, 'urr/' // trim(my_temperature)) call this % urr_data % from_hdf5(urr_group) ! if the inelastic competition flag indicates that the inelastic cross diff --git a/src/reaction_header.F90 b/src/reaction_header.F90 index 4289e2160c..c0501d43ea 100644 --- a/src/reaction_header.F90 +++ b/src/reaction_header.F90 @@ -55,8 +55,8 @@ contains ! Read cross section and threshold_idx data xs_group = open_group(group_id, temperature) - call read_attribute(this % threshold, xs_group, 'threshold_idx') xs = open_dataset(xs_group, 'xs') + call read_attribute(this % threshold, xs, 'threshold_idx') call get_shape(xs, dims) allocate(this % sigma(dims(1))) call read_dataset(this % sigma, xs) From 94e8538ebd1ebad5bd1bda168211b6fc514fc0b9 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 25 Aug 2016 20:55:02 -0500 Subject: [PATCH 341/417] Mention urr change in documentation --- docs/source/io_formats/nuclear_data.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index c834059b75..8d8da8edae 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -54,7 +54,11 @@ temperature-dependent data set. For example, the data set corresponding to Reaction product data is described in :ref:`product`. -**//urr** +**//urr/K/** + +K is the temperature in Kelvin, rounded to the nearest integer, of the +temperature-dependent data set. For example, the data set corresponding to +300 Kelvin would be located at `300K`. :Attributes: - **interpolation** (*int*) -- interpolation scheme - **inelastic** (*int*) -- flag indicating inelastic scattering From 50042b4fe3a12b7a98359b236c073b482e2646f3 Mon Sep 17 00:00:00 2001 From: amandalund Date: Thu, 25 Aug 2016 22:39:40 -0500 Subject: [PATCH 342/417] Added domain classes; Moved packing algorithms into separate functions --- openmc/model/triso.py | 1121 +++++++++++++++--------------- tests/test_triso/inputs_true.dat | 2 +- 2 files changed, 570 insertions(+), 553 deletions(-) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index 33c955e3be..d0d67b6878 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -1,13 +1,14 @@ from __future__ import division import copy -from collections import Iterable, defaultdict -from numbers import Real import warnings import itertools import random +from collections import Iterable, defaultdict +from numbers import Real from random import uniform, gauss from heapq import heappush, heappop from math import pi, sin, cos, floor, log10, sqrt +from abc import ABCMeta, abstractproperty, abstractmethod import numpy as np import scipy.spatial @@ -91,6 +92,363 @@ class TRISO(openmc.Cell): k_min:k_max+1, j_min:j_max+1, i_min:i_max+1])) +class _Domain(object): + """Container in which to pack particles. + + Parameters + ---------- + particle_radius : float + Radius of particles to be packed in container. + center : Iterable of float + Cartesian coordinates of the center of the container. Default is + [0., 0., 0.] + + Attributes + ---------- + particle_radius : float + Radius of particles to be packed in container. + center : list of float + Cartesian coordinates of the center of the container. Default is + [0., 0., 0.] + cell_length : list of float + Length in x-, y-, and z- directions of each cell in mesh overlaid on + domain. + limits : list of float + Minimum and maximum position in x-, y-, and z-directions where particle + center can be placed. + volume : float + Volume of the container. + + """ + + __metaclass__ = ABCMeta + + def __init__(self, particle_radius, center=[0., 0., 0.]): + self._particle_radius = None + self._center = None + self._cell_length = None + self._limits = None + + self.particle_radius = particle_radius + self.center = center + + @property + def particle_radius(self): + return self._particle_radius + + @property + def center(self): + return self._center + + @property + def cell_length(self): + return self._cell_length + + @property + def limits(self): + return self._limits + + @abstractproperty + def volume(self): + pass + + @particle_radius.setter + def particle_radius(self, particle_radius): + self._particle_radius = float(particle_radius) + self.reset() + + @center.setter + def center(self, center): + if np.asarray(center).size != 3: + raise ValueError('Unable to set domain center to {} since it must ' + 'be of length 3'.format(center)) + self._center = [float(x) for x in center] + self.reset() + + @cell_length.setter + def cell_length(self, cell_length): + self._cell_length = cell_length + + @limits.setter + def limits(self, limits): + self._limits = limits + + def mesh_cell(self, p): + """Calculate the index of the cell in a mesh overlaid on the domain in + which the given particle center falls. + + Parameters + ---------- + p : Iterable of float + Cartesian coordinates of particle center. + + Returns + ------- + tuple of int + Indices of mesh cell. + + """ + return tuple(int(p[i]/self.cell_length[i]) for i in range(3)) + + def nearby_mesh_cells(self, p): + """Calculates the indices of all cells in a mesh overlaid on the domain + within one diameter of the given particle. + + Parameters + ---------- + p : Iterable of float + Cartesian coordinates of particle center. + + Returns + ------- + list of tuple of int + Indices of mesh cells. + + """ + d = 2*self.particle_radius + r = [[a/self.cell_length[i] for a in [p[i]-d, p[i], p[i]+d]] + for i in range(3)] + return list(itertools.product(*({int(x) for x in y} for y in r))) + + @abstractmethod + def reset(self): + """Recalculate attributes that depend on input parameters if any of the + parameters are modified. + + """ + pass + + @abstractmethod + def random_point(self): + """Generate Cartesian coordinates of center of a particle that is + contained entirely within the domain with uniform probability. + + Returns + ------- + list of float + Cartesian coordinates of particle center. + + """ + pass + + +class _CubicDomain(_Domain): + """Cubic container in which to pack particles. + + Parameters + ---------- + length : float + Length of each side of the cubic container. + particle_radius : float + Radius of particles to be packed in container. + center : Iterable of float + Cartesian coordinates of the center of the container. Default is + [0., 0., 0.] + + Attributes + ---------- + length : float + Length of each side of the cubic container. + particle_radius : float + Radius of particles to be packed in container. + center : list of float + Cartesian coordinates of the center of the container. Default is + [0., 0., 0.] + cell_length : list of float + Length in x-, y-, and z- directions of each cell in mesh overlaid on + domain. + limits : list of float + Minimum and maximum position in x-, y-, and z-directions where particle + center can be placed. + volume : float + Volume of the container. + + """ + + def __init__(self, length, particle_radius, center=[0., 0., 0.]): + self._length = None + super(_CubicDomain, self).__init__(particle_radius, center) + self.length = length + + @property + def volume(self): + return self.length**3 + + @property + def length(self): + return self._length + + @length.setter + def length(self, length): + self._length = float(length) + self.reset() + + def reset(self): + if (self.particle_radius is not None and self.center is not None + and self.length is not None): + xlim = self.length/2 - self.particle_radius + self.limits = [[x - xlim for x in self.center], + [x + xlim for x in self.center]] + mesh_length = [self.length, self.length, self.length] + self.cell_length = [x/int(x/(4*self.particle_radius)) + for x in mesh_length] + + def random_point(self): + return [uniform(self.limits[0][0], self.limits[1][0]), + uniform(self.limits[0][1], self.limits[1][1]), + uniform(self.limits[0][2], self.limits[1][2])] + + +class _CylindricalDomain(_Domain): + """Cylindrical container in which to pack particles. + + Parameters + ---------- + length : float + Length along z-axis of the cylindrical container. + radius : float + Radius of the cylindrical container. + center : Iterable of float + Cartesian coordinates of the center of the container. Default is + [0., 0., 0.] + + Attributes + ---------- + length : float + Length along z-axis of the cylindrical container. + radius : float + Radius of the cylindrical container. + particle_radius : float + Radius of particles to be packed in container. + center : list of float + Cartesian coordinates of the center of the container. Default is + [0., 0., 0.] + cell_length : list of float + Length in x-, y-, and z- directions of each cell in mesh overlaid on + domain. + limits : list of float + Minimum and maximum position in x-, y-, and z-directions where particle + center can be placed. + volume : float + Volume of the container. + + """ + + def __init__(self, length, radius, particle_radius, center=[0., 0., 0.]): + self._length = None + self._radius = None + super(_CylindricalDomain, self).__init__(particle_radius, center) + self.length = length + self.radius = radius + + @property + def volume(self): + return self.length * pi * self.radius**2 + + @property + def length(self): + return self._length + + @property + def radius(self): + return self._radius + + @length.setter + def length(self, length): + self._length = float(length) + self.reset() + + @radius.setter + def radius(self, radius): + self._radius = float(radius) + self.reset() + + def reset(self): + if (self.particle_radius is not None and self.center is not None + and self.length is not None and self.radius is not None): + xlim = self.length/2 - self.particle_radius + rlim = self.radius - self.particle_radius + self.limits = [[self.center[0] - rlim, self.center[1] - rlim, + self.center[2] - xlim], + [self.center[0] + rlim, self.center[1] + rlim, + self.center[2] + xlim]] + mesh_length = [2*self.radius, 2*self.radius, self.length] + self.cell_length = [x/int(x/(4*self.particle_radius)) + for x in mesh_length] + + def random_point(self): + r = sqrt(uniform(0, (self.radius - self.particle_radius)**2)) + t = uniform(0, 2*pi) + return [r*cos(t) + self.center[0], r*sin(t) + self.center[1], + uniform(self.limits[0][2], self.limits[1][2])] + + +class _SphericalDomain(_Domain): + """Spherical container in which to pack particles. + + Parameters + ---------- + radius : float + Radius of the spherical container. + center : Iterable of float + Cartesian coordinates of the center of the container. Default is + [0., 0., 0.] + + Attributes + ---------- + radius : float + Radius of the spherical container. + particle_radius : float + Radius of particles to be packed in container. + center : list of float + Cartesian coordinates of the center of the container. Default is + [0., 0., 0.] + cell_length : list of float + Length in x-, y-, and z- directions of each cell in mesh overlaid on + domain. + limits : list of float + Minimum and maximum position in x-, y-, and z-directions where particle + center can be placed. + volume : float + Volume of the container. + + """ + + def __init__(self, radius, particle_radius, center=[0., 0., 0.]): + self._radius = None + super(_SphericalDomain, self).__init__(particle_radius, center) + self.radius = radius + + @property + def volume(self): + return 4/3 * pi * self.radius**3 + + @property + def radius(self): + return self._radius + + @radius.setter + def radius(self, radius): + self._radius = float(radius) + self.reset() + + def reset(self): + if (self.particle_radius is not None and self.center is not None + and self.radius is not None): + rlim = self.radius - self.particle_radius + self.limits = [[x - rlim for x in self.center], + [x + rlim for x in self.center]] + mesh_length = [2*self.radius, 2*self.radius, 2*self.radius] + self.cell_length = [x/int(x/(4*self.particle_radius)) + for x in mesh_length] + + def random_point(self): + x = (gauss(0, 1), gauss(0, 1), gauss(0, 1)) + r = (uniform(0, (self.radius - self.particle_radius)**3)**(1/3) / + sqrt(x[0]**2 + x[1]**2 + x[2]**2)) + return [r*x[i] + self.center[i] for i in range(3)] + + def create_triso_lattice(trisos, lower_left, pitch, shape, background): """Create a lattice containing TRISO particles for optimized tracking. @@ -164,261 +522,58 @@ def create_triso_lattice(trisos, lower_left, pitch, shape, background): return lattice -def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, - domain_radius=None, domain_center=(0., 0., 0.), - n_particles=None, packing_fraction=None, - initial_packing_fraction=0.3, contraction_rate=1/400, seed=1): - """Generate a random, non-overlapping configuration of TRISO particles - within a container. +def _random_sequential_pack(domain, n_particles): + """Random sequential packing of particles within a container. Parameters ---------- - radius : float - Outer radius of TRISO particles. - fill : openmc.Universe - Universe which contains all layers of the TRISO particle. - domain_shape : {'cube', 'cylinder', or 'sphere'} - Geometry of the container in which the TRISO particles are packed. - domain_length : float - Length of the container (if cube or cylinder). - domain_radius : float - Radius of the container (if cylinder or sphere). - domain_center : Iterable of float - Cartesian coordinates of the center of the container. + domain : openmc.model._Domain + Container in which to pack particles. n_particles : int - Number of TRISO particles to pack in the domain. Exactly one of - 'n_particles' and 'packing_fraction' should be specified -- the other - will be calculated. - packing_fraction : float - Packing fraction of particles. Exactly one of 'n_particles' and - 'packing_fraction' should be specified -- the other will be calculated. - initial_packing_fraction : float, optional - Packing fraction used to initialize the configuration of particles in - the domain. Default value is 0.3. It is not recommended to set the - initial packing fraction much higher than 0.3 as the random sequential - packing algorithm becomes prohibitively slow as it approaches its limit - (~0.38). - contraction_rate : float, optional - Contraction rate of outer diameter. This can affect the speed of the - close random packing algorithm. Default value is 1/400. - seed : int, optional - RNG seed. + Number of particles to pack. Returns - ------- - trisos : list of openmc.model.TRISO - List of TRISO particles in the domain. - - Notes - ----- - The particle configuration is generated using a combination of random - sequential packing (RSP) and close random packing (CRP). RSP is faster than - CRP for lower packing fractions (pf), but it becomes prohibitively slow as - it approaches its packing limit (~0.38). CRP can achieve higher pf of up to - ~0.64 and scales better with increasing pf. - - If the desired pf is below some threshold for which RSP performs better - than CRP ('initial_packing_fraction'), only RSP is used. If a higher pf is - required, particles with a radius smaller than the desired final radius - (and therefore with a smaller pf) are initialized within the domain using - RSP. This initial configuration of particles is then used as a starting - point for CRP using Jodrey and Tory's algorithm [1]_. - - In RSP, particle centers are placed one by one at random, and placement - attempts for a particle are made until the particle is not overlapping any - others. This implementation of the algorithm uses a lattice over the domain - to speed up the nearest neighbor search by only searching for a particle's - neighbors within that lattice cell. - - In CRP, each particle is assigned two diameters, and inner and an outer, - which approach each other during the simulation. The inner diameter, - defined as the minimum center-to-center distance, is the true diameter of - the particles and defines the pf. At each iteration the worst overlap - between particles based on outer diameter is eliminated by moving the - particles apart along the line joining their centers and the outer diameter - is decreased. Iterations continue until the two diameters converge or until - the desired pf is reached. - - References - ---------- - .. [1] W. S. Jodrey and E. M. Tory, "Computer simulation of close random - packing of equal spheres", Phys. Rev. A 32 (1985) 2347-2351. + ------ + numpy.ndarray + Cartesian coordinates of centers of particles. """ - def get_domain_volume(): - """Calculates the volume of the container in which the TRISO particles - are packed. + sqd = (2*domain.particle_radius)**2 + particles = [] + mesh = defaultdict(list) - Returns - ------- - float - Volume of the domain. + for i in range(n_particles): + # Randomly sample new center coordinates while there are any overlaps + while True: + p = domain.random_point() + idx = domain.mesh_cell(p) + if any((p[0]-q[0])**2 + (p[1]-q[1])**2 + (p[2]-q[2])**2 < sqd + for q in mesh[idx]): + continue + else: + break + particles.append(p) - """ + for idx in domain.nearby_mesh_cells(p): + mesh[idx].append(p) - if domain_shape is 'cube': - return domain_length**3 - elif domain_shape is 'cylinder': - return domain_length * pi * domain_radius**2 - elif domain_shape is 'sphere': - return 4/3 * pi * domain_radius**3 + return np.array(particles) - def get_cell_length(radius): - """Calculates the length of a lattice element in x-, y-, and - z-directions. +def _close_random_pack(domain, particles, contraction_rate): + """Close random packing of particles using the Jodrey-Tory algorithm. - Parameters - ---------- - radius : float - Radius of the particle. - - Returns - ------- - tuple of float - Length of lattice cell in x-, y-, and z-directions. - - """ - - if domain_length: - m = domain_length/int(domain_length/(4*radius)) - if domain_radius: - n = 2*domain_radius/int(domain_radius/(2*radius)) - - if domain_shape is 'cube': - return (m, m, m) - elif domain_shape is 'cylinder': - return (n, n, m) - elif domain_shape is 'sphere': - return (n, n, n) - - - def get_boundary_extremes(): - """Calculates the minimum and maximum positions in x-, y-, and - z-directions where a particle center can be placed within the domain. - - Returns - ------- - llim, ulim : tuple of float - Minimum and maximum position in x-, y-, and z-directions where - particle center can be placed. - - """ - - if domain_length: - x_min = radius - x_max = domain_length - radius - if domain_radius: - r_min = radius - domain_radius - r_max = domain_radius - radius - - if domain_shape is 'cube': - return (x_min, x_min, x_min), (x_max, x_max, x_max) - elif domain_shape is 'cylinder': - return (r_min, r_min, x_min), (r_max, r_max, x_max) - elif domain_shape is 'sphere': - return (r_min, r_min, r_min), (r_max, r_max, r_max) - - - def get_particle_offset(): - """Calculates the offset in x-, y-, and z-directions of the particle - center based on the domain center - - Returns - ------- - tuple of float - Amount to offset particle center in x-, y-, and z-directions - - """ - - if domain_shape is 'cube': - return np.array(domain_center) - domain_length/2 - elif domain_shape is 'cylinder': - return np.array(domain_center) - (0, 0, domain_length/2) - elif domain_shape is 'sphere': - return np.array(domain_center) - - - def inner_packing_fraction(): - """Calculates the true packing fraction of the particles based on the - inner diameter. - - Returns - ------- - float - Packing fraction calculated from inner diameter. - - """ - - return (4/3 * pi * (inner_diameter[0]/2)**3 * n_particles / - domain_volume) - - - def outer_packing_fraction(): - """Calculates the nominal packing fraction of the particles based on - the outer diameter. - - Returns - ------- - float - Packing fraction calculated from outer diameter. - - """ - - return (4/3 * pi * (outer_diameter[0]/2)**3 * n_particles / - domain_volume) - - - def random_point_cube(): - """Generate Cartesian coordinates of center of a particle that is - contained entirely within cubic domain with uniform probability. - - Returns - ------- - list of float - Cartesian coordinates of particle center. - - """ - - return [uniform(llim[0], ulim[0]), - uniform(llim[0], ulim[0]), - uniform(llim[0], ulim[0])] - - - def random_point_cylinder(): - """Generate Cartesian coordinates of center of a particle that is - contained entirely within cylindrical domain with uniform probability - (see http://mathworld.wolfram.com/DiskPointPicking.html for generating - random points on a disk). - - Returns - ------- - list of float - Cartesian coordinates of particle center. - - """ - - r = sqrt(uniform(0, ulim[0]**2)) - t = uniform(0, 2*pi) - return [r*cos(t), r*sin(t), uniform(llim[2], ulim[2])] - - - def random_point_sphere(): - """Generate Cartesian coordinates of center of a particle that is - contained entirely within spherical domain with uniform probability. - - Returns - ------- - list of float - Cartesian coordinates of particle center. - - """ - - x = (gauss(0, 1), gauss(0, 1), gauss(0, 1)) - r = (uniform(0, ulim[0]**3)**(1/3) / sqrt(x[0]**2 + x[1]**2 + x[2]**2)) - return [r*i for i in x] + Parameters + ---------- + domain : openmc.model._Domain + Container in which to pack particles. + particles : numpy.ndarray + Initial Cartesian coordinates of centers of particles. + contraction_rate : float + Contraction rate of outer diameter. + """ def add_rod(d, i, j): """Add a new rod to the priority queue. @@ -530,6 +685,35 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, inner_diameter[0] = rods[0][0] + def update_mesh(i): + """Update which mesh cells the particle is in based on new particle + center coordinates. + + 'mesh'/'mesh_map' is a two way dictionary used to look up which + particles are located within one diameter of a given mesh cell and + which mesh cells a given particle center is within one diameter of. + This is used to speed up the nearest neighbor search. + + Parameters + ---------- + i : int + Index of particle in particles array. + + """ + + # Determine which mesh cells the particle is in and remove the + # particle id from those cells + for idx in mesh_map[i]: + mesh[idx].remove(i) + del mesh_map[i] + + # Determine which mesh cells are within one diameter of particle's + # center and add this particle to the list of particles in those cells + for idx in domain.nearby_mesh_cells(particles[i]): + mesh[idx].add(i) + mesh_map[i].add(idx) + + def reduce_outer_diameter(): """Reduce the outer diameter so that at the (i+1)-st iteration it is: @@ -541,60 +725,14 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, """ - j = floor(-log10(outer_packing_fraction() - inner_packing_fraction())) - outer_diameter[0] = (outer_diameter[0] - 0.5**j * - initial_outer_diameter * contraction_rate / - n_particles) + inner_pf = (4/3 * pi * (inner_diameter[0]/2)**3 * n_particles / + domain.volume) + outer_pf = (4/3 * pi * (outer_diameter[0]/2)**3 * n_particles / + domain.volume) - - def update_mesh(i): - """Update which lattice cells the particle is in based on new particle - center coordinates. - - 'mesh'/'mesh_map' is a two way dictionary used to look up which - particles are located within one diameter of a given lattice cell and - which lattice cells a given particle center is within one diameter of. - This is used to speed up the nearest neighbor search. - - Parameters - ---------- - i : int - Index of particle in particles array. - - """ - - # Determine which lattice cells the particle is in and remove the - # particle id from those cells - for idx in mesh_map[i]: - mesh[idx].remove(i) - del mesh_map[i] - - # Determine which lattice cells are within one diameter of particle's - # center and add this particle to the list of particles in those cells - for idx in cell_list(particles[i], diameter): - mesh[idx].add(i) - mesh_map[i].add(idx) - - - def apply_boundary_conditions(i, j): - """Apply reflective boundary conditions to particles i and j. - - Parameters - ---------- - i, j : int - Index of particles in particles array. - - """ - - for k in range(3): - if particles[i][k] < llim[k]: - particles[i][k] = llim[k] - elif particles[i][k] > ulim[k]: - particles[i][k] = ulim[k] - if particles[j][k] < llim[k]: - particles[j][k] = llim[k] - elif particles[j][k] > ulim[k]: - particles[j][k] = ulim[k] + j = floor(-log10(outer_pf - inner_pf)) + outer_diameter[0] = (outer_diameter[0] - 0.5**j * contraction_rate * + initial_outer_diameter / n_particles) def repel_particles(i, j, d): @@ -624,7 +762,15 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, particles[j] -= r*v # Apply reflective boundary conditions - apply_boundary_conditions(i, j) + for k in range(3): + if particles[i][k] < domain.limits[0][k]: + particles[i][k] = domain.limits[0][k] + elif particles[i][k] > domain.limits[1][k]: + particles[i][k] = domain.limits[1][k] + if particles[j][k] < domain.limits[0][k]: + particles[j][k] = domain.limits[0][k] + elif particles[j][k] > domain.limits[1][k]: + particles[j][k] = domain.limits[1][k] update_mesh(i) update_mesh(j) @@ -651,7 +797,7 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, # Need the second nearest neighbor of i since the nearest neighbor # will be itself. Using argpartition, the k-th nearest neighbor is # placed at index k. - idx = list(mesh[cell_index(particles[i])]) + idx = list(mesh[domain.mesh_cell(particles[i])]) dists = cdist([particles[i]], particles[idx])[0] if dists.size > 1: j = dists.argpartition(1)[1] @@ -689,233 +835,120 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, inner_diameter[0] = rods[0][0] - def cell_index_cube(p, cl=None): - """Calculate the index of the lattice cell in which the given particle - center falls. + n_particles = len(particles) + diameter = 2*domain.particle_radius - Parameters - ---------- - p : list of float - Cartesian coordinates of particle center. - cl : list of float - Length of the lattice cells in x-, y-, and z-directions. + # Outer diameter initially set to arbitrary value that yields pf of 1 + initial_outer_diameter = 2*(domain.volume/(n_particles*4/3*pi))**(1/3) - Returns - ------- - tuple of int - Indices of lattice cell. + # Inner and outer diameter of particles will change during packing + outer_diameter = [initial_outer_diameter] + inner_diameter = [0] - """ + rods = [] + rods_map = {} + mesh = defaultdict(set) + mesh_map = defaultdict(set) - if cl is None: - cl = cell_length - - return tuple(int(p[i]/cl[i]) for i in range(3)) - - - def cell_index_cylinder(p, cl=None): - """Calculate the index of the lattice cell in which the given particle - center falls. - - Parameters - ---------- - p : list of float - Cartesian coordinates of particle center. - cl : list of float - Length of the lattice cells in x-, y-, and z-directions. - - Returns - ------- - tuple of int - Indices of lattice cell. - - """ - - if cl is None: - cl = cell_length - - return (int((p[0] + domain_radius)/cl[0]), - int((p[1] + domain_radius)/cl[1]), int(p[2]/cl[2])) - - - def cell_index_sphere(p, cl=None): - """Calculate the index of the lattice cell in which the given particle - center falls. - - Parameters - ---------- - p : list of float - Cartesian coordinates of particle center. - cl : list of float - Length of the lattice cells in x-, y-, and z-directions. - - Returns - ------- - tuple of int - Indices of lattice cell. - - """ - - if cl is None: - cl = cell_length - - return tuple(int((p[i] + domain_radius)/cl[i]) for i in range(3)) - - - def cell_list_cube(p, d, cl=None): - """Return the indices of all cells within the given distance of the - point. - - Parameters - ---------- - p : list of float - Cartesian coordinates of particle center. - d : float - Find all lattice cells that are within a radius of length 'd' of - the particle center. - cl : list of float - Length of the lattice cells in x-, y-, and z-directions. - - Returns - ------- - list of tuple of int - Indices of lattice cells. - - """ - - if cl is None: - cl = cell_length - - r = [[a/cl[i] for a in [p[i]-d, p[i], p[i]+d] if a > 0 and - a < domain_length] for i in range(3)] - - return list(itertools.product(*({int(i) for i in j} for j in r))) - - - def cell_list_cylinder(p, d, cl=None): - """Return the indices of all cells within the given distance of the - point. - - Parameters - ---------- - p : list of float - Cartesian coordinates of particle center. - d : float - Find all lattice cells that are within a radius of length 'd' of - the particle center. - cl : list of float - Length of the lattice cells in x-, y-, and z-directions. - - Returns - ------- - list of tuple of int - Indices of lattice cells. - - """ - - if cl is None: - cl = cell_length - - x, y = [[(a + domain_radius)/cl[i] for a in [p[i]-d, p[i], p[i]+d] - if a > -domain_radius and a < domain_radius] for i in range(2)] - - z = [a/cl[2] for a in [p[2]-d, p[2], p[2]+d] if a > 0 - and a < domain_length] - - return list(itertools.product(*({int(i) for i in j} for j in (x, y, z)))) - - - def cell_list_sphere(p, d, cl=None): - """Return the indices of all cells within the given distance of the - point. - - Parameters - ---------- - p : list of float - Cartesian coordinates of particle center. - d : float - Find all lattice cells that are within a radius of length 'd' of - the particle center. - cl : list of float - Length of the lattice cells in x-, y-, and z-directions. - - Returns - ------- - list of tuple of int - Indices of lattice cells. - - """ - - if cl is None: - cl = cell_length - - r = [[(a + domain_radius)/cl[i] for a in [p[i]-d, p[i], p[i]+d] - if a > -domain_radius and a < domain_radius] for i in range(3)] - - return list(itertools.product(*({int(i) for i in j} for j in r))) - - - def random_sequential_pack(): - """Random sequential packing of particles whose radius is determined by - initial packing fraction. - - Returns - ------ - numpy.ndarray - Cartesian coordinates of centers of TRISO particles. - - """ - - # Set parameters for initial random sequential packing of particles. - r = (3/4*initial_packing_fraction*domain_volume/(pi*n_particles))**(1/3) - d = 2*r - sqd = d**2 - cl = get_cell_length(r) - - particles = [] - mesh = defaultdict(list) - - for i in range(n_particles): - # Randomly sample new center coordinates while there are any overlaps - while True: - p = random_point() - idx = cell_index(p, cl) - if any((p[0]-q[0])**2 + (p[1]-q[1])**2 + (p[2]-q[2])**2 < sqd - for q in mesh[idx]): - continue - else: - break - particles.append(p) - - for idx in cell_list(p, d, cl): - mesh[idx].append(p) - - return np.array(particles) - - - def close_random_pack(): - """Close random packing of particles using the Jodrey-Tory algorithm. - - """ - - for i in range(n_particles): - for idx in cell_list(particles[i], diameter): - mesh[idx].add(i) - mesh_map[i].add(idx) + for i in range(n_particles): + for idx in domain.nearby_mesh_cells(particles[i]): + mesh[idx].add(i) + mesh_map[i].add(idx) + while True: + create_rod_list() + if inner_diameter[0] >= diameter: + break while True: - create_rod_list() - if inner_diameter[0] >= diameter: + d, i, j = pop_rod() + reduce_outer_diameter() + repel_particles(i, j, d) + update_rod_list(i, j) + if inner_diameter[0] >= diameter or not rods: break - while True: - d, i, j = pop_rod() - reduce_outer_diameter() - repel_particles(i, j, d) - update_rod_list(i, j) - if inner_diameter[0] >= diameter or not rods: - break +def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, + domain_radius=None, domain_center=[0., 0., 0.], + n_particles=None, packing_fraction=None, + initial_packing_fraction=0.3, contraction_rate=1/400, seed=1): + """Generate a random, non-overlapping configuration of TRISO particles + within a container. + + Parameters + ---------- + radius : float + Outer radius of TRISO particles. + fill : openmc.Universe + Universe which contains all layers of the TRISO particle. + domain_shape : {'cube', 'cylinder', or 'sphere'} + Geometry of the container in which the TRISO particles are packed. + domain_length : float + Length of the container (if cube or cylinder). + domain_radius : float + Radius of the container (if cylinder or sphere). + domain_center : Iterable of float + Cartesian coordinates of the center of the container. + n_particles : int + Number of TRISO particles to pack in the domain. Exactly one of + 'n_particles' and 'packing_fraction' should be specified -- the other + will be calculated. + packing_fraction : float + Packing fraction of particles. Exactly one of 'n_particles' and + 'packing_fraction' should be specified -- the other will be calculated. + initial_packing_fraction : float, optional + Packing fraction used to initialize the configuration of particles in + the domain. Default value is 0.3. It is not recommended to set the + initial packing fraction much higher than 0.3 as the random sequential + packing algorithm becomes prohibitively slow as it approaches its limit + (~0.38). + contraction_rate : float, optional + Contraction rate of outer diameter. This can affect the speed of the + close random packing algorithm. Default value is 1/400. + seed : int, optional + RNG seed. + + Returns + ------- + trisos : list of openmc.model.TRISO + List of TRISO particles in the domain. + + Notes + ----- + The particle configuration is generated using a combination of random + sequential packing (RSP) and close random packing (CRP). RSP performs + better than CRP for lower packing fractions (pf), but it becomes + prohibitively slow as it approaches its packing limit (~0.38). CRP can + achieve higher pf of up to ~0.64 and scales better with increasing pf. + + If the desired pf is below some threshold for which RSP will be faster than + CRP ('initial_packing_fraction'), only RSP is used. If a higher pf is + required, particles with a radius smaller than the desired final radius + (and therefore with a smaller pf) are initialized within the domain using + RSP. This initial configuration of particles is then used as a starting + point for CRP using Jodrey and Tory's algorithm [1]_. + + In RSP, particle centers are placed one by one at random, and placement + attempts for a particle are made until the particle is not overlapping any + others. This implementation of the algorithm uses a mesh over the domain + to speed up the nearest neighbor search by only searching for a particle's + neighbors within that mesh cell. + + In CRP, each particle is assigned two diameters, and inner and an outer, + which approach each other during the simulation. The inner diameter, + defined as the minimum center-to-center distance, is the true diameter of + the particles and defines the pf. At each iteration the worst overlap + between particles based on outer diameter is eliminated by moving the + particles apart along the line joining their centers. Iterations continue + until the two diameters converge or until the desired pf is reached. + + References + ---------- + .. [1] W. S. Jodrey and E. M. Tory, "Computer simulation of close random + packing of equal spheres", Phys. Rev. A 32 (1985) 2347-2351. + + """ + # Check for valid container geometry and dimensions if domain_shape not in ['cube', 'cylinder', 'sphere']: raise ValueError('Unable to set domain_shape to "{}". Only "cube", ' @@ -928,9 +961,15 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, raise ValueError('"domain_radius" must be specified for {} domain ' 'geometry '.format(domain_shape)) - domain_volume = get_domain_volume() - llim, ulim = get_boundary_extremes() - offset = get_particle_offset() + if domain_shape is 'cube': + domain = _CubicDomain(length=domain_length, particle_radius=radius, + center=domain_center) + elif domain_shape is 'cylinder': + domain = _CylindricalDomain(length=domain_length, radius=domain_radius, + particle_radius=radius, center=domain_center) + elif domain_shape is 'sphere': + domain = _SphericalDomain(radius=domain_radius, particle_radius=radius, + center=domain_center) # Calculate the packing fraction if the number of particles is specified; # otherwise, calculate the number of particles from the packing fraction. @@ -939,9 +978,9 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, raise ValueError('Exactly one of "n_particles" and "packing_fraction" ' 'must be specified.') elif packing_fraction is None: - packing_fraction = 4/3*pi*radius**3*n_particles / domain_volume + packing_fraction = 4/3*pi*radius**3*n_particles / domain.volume elif n_particles is None: - n_particles = int(packing_fraction*domain_volume // (4/3*pi*radius**3)) + n_particles = int(packing_fraction*domain.volume // (4/3*pi*radius**3)) # Check for valid packing fractions for each algorithm if packing_fraction >= 0.64: @@ -957,48 +996,26 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, if packing_fraction > 0.3: initial_packing_fraction = 0.3 - # Set domain dependent functions - if domain_shape is 'cube': - random_point = random_point_cube - cell_list = cell_list_cube - cell_index = cell_index_cube - elif domain_shape is 'cylinder': - random_point = random_point_cylinder - cell_list = cell_list_cylinder - cell_index = cell_index_cylinder - elif domain_shape is 'sphere': - random_point = random_point_sphere - cell_list = cell_list_sphere - cell_index = cell_index_sphere - random.seed(seed) + # Set parameters for initial random sequential packing of particles. + initial_radius = (3/4 * initial_packing_fraction * domain.volume / + (pi * n_particles))**(1/3) + domain.particle_radius = initial_radius + domain.limits = [[x - initial_radius + radius for x in domain.limits[0]], + [x + initial_radius - radius for x in domain.limits[1]]] + # Generate non-overlapping particles for an initial inner radius using # random sequential packing algorithm - particles = random_sequential_pack() + particles = _random_sequential_pack(domain, n_particles) # Use the particle configuration produced in random sequential packing as a # starting point for close random pack with the desired final particle radius if initial_packing_fraction != packing_fraction: - diameter = 2*radius - cell_length = get_cell_length(radius) - - # Outer diameter initially set to arbitrary value that yields pf of 1 - initial_outer_diameter = 2*(domain_volume/(n_particles*4/3*pi))**(1/3) - - # Inner and outer diameter of particles will change during packing - outer_diameter = [initial_outer_diameter] - inner_diameter = [0] - - rods = [] - rods_map = {} - mesh = defaultdict(set) - mesh_map = defaultdict(set) - - close_random_pack() + domain.particle_radius = radius + _close_random_pack(domain, particles, contraction_rate) trisos = [] for p in particles: - trisos.append(TRISO(radius, fill, p + offset)) - + trisos.append(TRISO(radius, fill, p)) return trisos diff --git a/tests/test_triso/inputs_true.dat b/tests/test_triso/inputs_true.dat index 0df6042f6a..aed053263e 100644 --- a/tests/test_triso/inputs_true.dat +++ b/tests/test_triso/inputs_true.dat @@ -1 +1 @@ -2285ba99573743929cee590e2ba4d86becbf38d58af765498b73425f2fa3ccc3e0d20a59260d283a3ff39038d87e12142e0156b22152ccecbe2609a291d1d347 \ No newline at end of file +792d82b08d5fa6ac19df668d84cb90cbbe178e8769c87b732e9616ffeb70d8cfb4096607e58cda749cb800bb48139ac72f6983e84f38237d7d55711bdd1c6d4d \ No newline at end of file From 6b151e356367a1d06b8da6c11e3b14a9dca09dda Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 26 Aug 2016 09:11:01 -0500 Subject: [PATCH 343/417] Update data for Travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f243a1c5a1..845c103906 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,7 +42,7 @@ install: true before_script: - if [[ ! -e $HOME/nndc_hdf5/cross_sections.xml ]]; then - wget https://www.dropbox.com/s/6cvzl80lpkar87f/nndc_hdf5.tar.xz -O - | tar -C $HOME -xvJ; + wget https://anl.box.com/shared/static/68b2yhu8e6mx1f6hnbzz9mxsgg42d9ls.xz -O - | tar -C $HOME -xvJ; fi - export OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml From 6d82c7b48b9a83f0b6ad7f73c57562e920954e97 Mon Sep 17 00:00:00 2001 From: amandalund Date: Fri, 26 Aug 2016 12:08:13 -0500 Subject: [PATCH 344/417] Address #706 comments --- openmc/model/triso.py | 190 +++++++++++++++++++++--------------------- 1 file changed, 97 insertions(+), 93 deletions(-) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index d0d67b6878..83be99a33a 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -124,8 +124,6 @@ class _Domain(object): __metaclass__ = ABCMeta def __init__(self, particle_radius, center=[0., 0., 0.]): - self._particle_radius = None - self._center = None self._cell_length = None self._limits = None @@ -140,13 +138,13 @@ class _Domain(object): def center(self): return self._center - @property - def cell_length(self): - return self._cell_length - - @property + @abstractproperty def limits(self): - return self._limits + pass + + @abstractproperty + def cell_length(self): + pass @abstractproperty def volume(self): @@ -155,7 +153,8 @@ class _Domain(object): @particle_radius.setter def particle_radius(self, particle_radius): self._particle_radius = float(particle_radius) - self.reset() + self._limits = None + self._cell_length = None @center.setter def center(self, center): @@ -163,15 +162,8 @@ class _Domain(object): raise ValueError('Unable to set domain center to {} since it must ' 'be of length 3'.format(center)) self._center = [float(x) for x in center] - self.reset() - - @cell_length.setter - def cell_length(self, cell_length): - self._cell_length = cell_length - - @limits.setter - def limits(self, limits): - self._limits = limits + self._limits = None + self._cell_length = None def mesh_cell(self, p): """Calculate the index of the cell in a mesh overlaid on the domain in @@ -210,14 +202,6 @@ class _Domain(object): for i in range(3)] return list(itertools.product(*({int(x) for x in y} for y in r))) - @abstractmethod - def reset(self): - """Recalculate attributes that depend on input parameters if any of the - parameters are modified. - - """ - pass - @abstractmethod def random_point(self): """Generate Cartesian coordinates of center of a particle that is @@ -270,28 +254,39 @@ class _CubicDomain(_Domain): super(_CubicDomain, self).__init__(particle_radius, center) self.length = length - @property - def volume(self): - return self.length**3 - @property def length(self): return self._length + @property + def limits(self): + if self._limits is None: + xlim = self.length/2 - self.particle_radius + self._limits = [[x - xlim for x in self.center], + [x + xlim for x in self.center]] + return self._limits + + @property + def cell_length(self): + if self._cell_length is None: + mesh_length = [self.length, self.length, self.length] + self._cell_length = [x/int(x/(4*self.particle_radius)) + for x in mesh_length] + return self._cell_length + + @property + def volume(self): + return self.length**3 + @length.setter def length(self, length): self._length = float(length) - self.reset() + self._limits = None + self._cell_length = None - def reset(self): - if (self.particle_radius is not None and self.center is not None - and self.length is not None): - xlim = self.length/2 - self.particle_radius - self.limits = [[x - xlim for x in self.center], - [x + xlim for x in self.center]] - mesh_length = [self.length, self.length, self.length] - self.cell_length = [x/int(x/(4*self.particle_radius)) - for x in mesh_length] + @limits.setter + def limits(self, limits): + self._limits = limits def random_point(self): return [uniform(self.limits[0][0], self.limits[1][0]), @@ -341,10 +336,6 @@ class _CylindricalDomain(_Domain): self.length = length self.radius = radius - @property - def volume(self): - return self.length * pi * self.radius**2 - @property def length(self): return self._length @@ -353,28 +344,44 @@ class _CylindricalDomain(_Domain): def radius(self): return self._radius + @property + def limits(self): + if self._limits is None: + xlim = self.length/2 - self.particle_radius + rlim = self.radius - self.particle_radius + self._limits = [[self.center[0] - rlim, self.center[1] - rlim, + self.center[2] - xlim], + [self.center[0] + rlim, self.center[1] + rlim, + self.center[2] + xlim]] + return self._limits + + @property + def cell_length(self): + if self._cell_length is None: + mesh_length = [2*self.radius, 2*self.radius, self.length] + self._cell_length = [x/int(x/(4*self.particle_radius)) + for x in mesh_length] + return self._cell_length + + @property + def volume(self): + return self.length * pi * self.radius**2 + @length.setter def length(self, length): self._length = float(length) - self.reset() + self._limits = None + self._cell_length = None @radius.setter def radius(self, radius): self._radius = float(radius) - self.reset() + self._limits = None + self._cell_length = None - def reset(self): - if (self.particle_radius is not None and self.center is not None - and self.length is not None and self.radius is not None): - xlim = self.length/2 - self.particle_radius - rlim = self.radius - self.particle_radius - self.limits = [[self.center[0] - rlim, self.center[1] - rlim, - self.center[2] - xlim], - [self.center[0] + rlim, self.center[1] + rlim, - self.center[2] + xlim]] - mesh_length = [2*self.radius, 2*self.radius, self.length] - self.cell_length = [x/int(x/(4*self.particle_radius)) - for x in mesh_length] + @limits.setter + def limits(self, limits): + self._limits = limits def random_point(self): r = sqrt(uniform(0, (self.radius - self.particle_radius)**2)) @@ -419,28 +426,39 @@ class _SphericalDomain(_Domain): super(_SphericalDomain, self).__init__(particle_radius, center) self.radius = radius - @property - def volume(self): - return 4/3 * pi * self.radius**3 - @property def radius(self): return self._radius + @property + def limits(self): + if self._limits is None: + rlim = self.radius - self.particle_radius + self._limits = [[x - rlim for x in self.center], + [x + rlim for x in self.center]] + return self._limits + + @property + def cell_length(self): + if self._cell_length is None: + mesh_length = [2*self.radius, 2*self.radius, 2*self.radius] + self._cell_length = [x/int(x/(4*self.particle_radius)) + for x in mesh_length] + return self._cell_length + + @property + def volume(self): + return 4/3 * pi * self.radius**3 + @radius.setter def radius(self, radius): self._radius = float(radius) - self.reset() + self._limits = None + self._cell_length = None - def reset(self): - if (self.particle_radius is not None and self.center is not None - and self.radius is not None): - rlim = self.radius - self.particle_radius - self.limits = [[x - rlim for x in self.center], - [x + rlim for x in self.center]] - mesh_length = [2*self.radius, 2*self.radius, 2*self.radius] - self.cell_length = [x/int(x/(4*self.particle_radius)) - for x in mesh_length] + @limits.setter + def limits(self, limits): + self._limits = limits def random_point(self): x = (gauss(0, 1), gauss(0, 1), gauss(0, 1)) @@ -592,7 +610,6 @@ def _close_random_pack(domain, particles, contraction_rate): rods_map[j] = (i, rod) heappush(rods, rod) - def remove_rod(i): """Mark the rod containing particle i as removed. @@ -609,7 +626,6 @@ def _close_random_pack(domain, particles, contraction_rate): rod[1] = None rod[2] = None - def pop_rod(): """Remove and return the shortest rod. @@ -629,7 +645,6 @@ def _close_random_pack(domain, particles, contraction_rate): del rods_map[j] return d, i, j - def create_rod_list(): """Generate sorted list of rods (distances between particle centers). @@ -660,14 +675,15 @@ def _close_random_pack(domain, particles, contraction_rate): # distances to nearest neighbors a = np.dstack(([i for i in range(len(n))], n, d))[0] - # Array of nearest neighbor indices, indices of particles they are + # Sort along second column and swap first and second columns to create + # array of nearest neighbor indices, indices of particles they are # nearest neighbors of, and distances between them b = a[a[:,1].argsort()] b[:,[0, 1]] = b[:,[1, 0]] # Find the intersection between 'a' and 'b': a list of particles who # are each other's nearest neighbors and the distance between them - r = [x for x in {tuple(x) for x in a} & {tuple(x) for x in b}] + r = list([x for x in {tuple(x) for x in a} & {tuple(x) for x in b}]) # Remove duplicate rods and sort by distance r = map(list, set([(x[2], int(min(x[0:2])), int(max(x[0:2]))) @@ -684,7 +700,6 @@ def _close_random_pack(domain, particles, contraction_rate): if rods: inner_diameter[0] = rods[0][0] - def update_mesh(i): """Update which mesh cells the particle is in based on new particle center coordinates. @@ -713,7 +728,6 @@ def _close_random_pack(domain, particles, contraction_rate): mesh[idx].add(i) mesh_map[i].add(idx) - def reduce_outer_diameter(): """Reduce the outer diameter so that at the (i+1)-st iteration it is: @@ -725,9 +739,9 @@ def _close_random_pack(domain, particles, contraction_rate): """ - inner_pf = (4/3 * pi * (inner_diameter[0]/2)**3 * n_particles / + inner_pf = (4/3 * pi * (inner_diameter[0]/2)**3 * n_particles / domain.volume) - outer_pf = (4/3 * pi * (outer_diameter[0]/2)**3 * n_particles / + outer_pf = (4/3 * pi * (outer_diameter[0]/2)**3 * n_particles / domain.volume) j = floor(-log10(outer_pf - inner_pf)) @@ -762,20 +776,12 @@ def _close_random_pack(domain, particles, contraction_rate): particles[j] -= r*v # Apply reflective boundary conditions - for k in range(3): - if particles[i][k] < domain.limits[0][k]: - particles[i][k] = domain.limits[0][k] - elif particles[i][k] > domain.limits[1][k]: - particles[i][k] = domain.limits[1][k] - if particles[j][k] < domain.limits[0][k]: - particles[j][k] = domain.limits[0][k] - elif particles[j][k] > domain.limits[1][k]: - particles[j][k] = domain.limits[1][k] + particles[i] = particles[i].clip(domain.limits[0], domain.limits[1]) + particles[j] = particles[j].clip(domain.limits[0], domain.limits[1]) update_mesh(i) update_mesh(j) - def nearest(i): """Find index of nearest neighbor of particle i. @@ -805,7 +811,6 @@ def _close_random_pack(domain, particles, contraction_rate): else: return None, None - def update_rod_list(i, j): """Update the rod list with the new nearest neighbors of particles i and j since their overlap was eliminated. @@ -834,7 +839,6 @@ def _close_random_pack(domain, particles, contraction_rate): if rods: inner_diameter[0] = rods[0][0] - n_particles = len(particles) diameter = 2*domain.particle_radius From 19eca29642bf0cbe7d4bc024e9fc93ecce3fe71e Mon Sep 17 00:00:00 2001 From: amandalund Date: Fri, 26 Aug 2016 16:19:12 -0500 Subject: [PATCH 345/417] Address #706 comments --- openmc/model/triso.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index 83be99a33a..b75ffd88fb 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -673,7 +673,7 @@ def _close_random_pack(domain, particles, contraction_rate): # Array of particle indices, indices of nearest neighbors, and # distances to nearest neighbors - a = np.dstack(([i for i in range(len(n))], n, d))[0] + a = np.vstack((list(range(n.size)), n, d)).T # Sort along second column and swap first and second columns to create # array of nearest neighbor indices, indices of particles they are From 56f85323b84d9b15e31fc9934bc217230723f843 Mon Sep 17 00:00:00 2001 From: amandalund Date: Fri, 26 Aug 2016 17:13:09 -0500 Subject: [PATCH 346/417] Make sure input parameters are native Python types --- openmc/model/triso.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index b75ffd88fb..e8ed04e3a0 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -982,8 +982,10 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, raise ValueError('Exactly one of "n_particles" and "packing_fraction" ' 'must be specified.') elif packing_fraction is None: + n_particles = int(n_particles) packing_fraction = 4/3*pi*radius**3*n_particles / domain.volume elif n_particles is None: + packing_fraction = float(packing_fraction) n_particles = int(packing_fraction*domain.volume // (4/3*pi*radius**3)) # Check for valid packing fractions for each algorithm From 203f64023c48be5c6434d8bb939e7630e53bd152 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 26 Aug 2016 21:04:26 -0400 Subject: [PATCH 347/417] Fixed a problem where in openmc-ace-to-hdf5 was over-writing h5 files instead of appending temperatures --- scripts/openmc-ace-to-hdf5 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 index 9a55ca7493..3b5721972f 100755 --- a/scripts/openmc-ace-to-hdf5 +++ b/scripts/openmc-ace-to-hdf5 @@ -115,6 +115,7 @@ elif args.xsdata is not None: else: ace_libraries = args.libraries +nuclides = {} library = openmc.data.DataLibrary() for filename in ace_libraries: @@ -124,11 +125,11 @@ for filename in ace_libraries: continue lib = openmc.data.ace.Library(filename) - nuclides = {} for table in lib.tables: name, xs = table.name.split('.') if xs.endswith('c'): # Continuous-energy neutron data + if name not in nuclides: try: neutron = openmc.data.IncidentNeutron.from_ace( From 771f2770f44c6e60018a03ed46aa8669ec4ebf11 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 27 Aug 2016 12:35:12 -0400 Subject: [PATCH 348/417] updated openmc-ace-to-hdf5 to work for JEFF --- scripts/openmc-ace-to-hdf5 | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 index 3b5721972f..b926698c99 100755 --- a/scripts/openmc-ace-to-hdf5 +++ b/scripts/openmc-ace-to-hdf5 @@ -129,7 +129,6 @@ for filename in ace_libraries: name, xs = table.name.split('.') if xs.endswith('c'): # Continuous-energy neutron data - if name not in nuclides: try: neutron = openmc.data.IncidentNeutron.from_ace( @@ -160,13 +159,17 @@ for filename in ace_libraries: nuclides[name] = outfile else: # Then we only need to append the data - print('Converting {} (ACE) to {} (HDF5)'.format(table.name, - neutron.name)) - neutron = \ - openmc.data.IncidentNeutron.from_hdf5(nuclides[name]) - neutron.add_temperature_from_ace(table, args.metastable) - neutron.export_to_hdf5(outfile + '_1', 'w') - os.rename(outfile + '_1', outfile) + try: + neutron = \ + openmc.data.IncidentNeutron.from_hdf5(nuclides[name]) + print('Converting {} (ACE) to {} (HDF5)'.format(table.name, + neutron.name)) + neutron.add_temperature_from_ace(table, args.metastable) + neutron.export_to_hdf5(nuclides[name] + '_1', 'w') + os.rename(nuclides[name] + '_1', nuclides[name]) + except Exception as e: + print('Failed to convert {}: {}'.format(table.name, e)) + continue elif xs.endswith('t'): # Thermal scattering data @@ -192,14 +195,16 @@ for filename in ace_libraries: else: # Then we only need to append the data - print('Converting {} (ACE) to {} (HDF5)'.format(table.name, - thermal.name)) - # if table.name == 'poly.11t': - # import pdb; pdb.set_trace() - thermal = openmc.data.ThermalScattering.from_hdf5(nuclides[name]) - thermal.add_temperature_from_ace(table) - thermal.export_to_hdf5(outfile + '_1', 'w') - os.rename(outfile + '_1', outfile) + try: + thermal = openmc.data.ThermalScattering.from_hdf5(nuclides[name]) + print('Converting {} (ACE) to {} (HDF5)'.format(table.name, + thermal.name)) + thermal.add_temperature_from_ace(table) + thermal.export_to_hdf5(nuclides[name] + '_1', 'w') + os.rename(nuclides[name] + '_1', nuclides[name]) + except Exception as e: + print('Failed to convert {}: {}'.format(table.name, e)) + continue # Write cross_sections.xml libpath = os.path.join(args.destination, 'cross_sections.xml') From 6eaf6e04d0b739aab40f1f382761fb7b8b220cc2 Mon Sep 17 00:00:00 2001 From: jingang Date: Sun, 28 Aug 2016 17:28:23 -0400 Subject: [PATCH 349/417] openmc.plot can now set 'meshlines' and 'level' --- docs/source/usersguide/input.rst | 4 +- openmc/plots.py | 102 +++++++++++++++++++++++++++++-- 2 files changed, 99 insertions(+), 7 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 4bbc96cf86..2ab823e6ed 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -2105,8 +2105,8 @@ attributes or sub-elements. These are not used in "voxel" plots: *Default*: None :meshlines: - The ``meshlines`` sub-element allows for plotting the boundaries of - a tally mesh on top of a plot. Only one ``meshlines`` element is allowed per + The ``meshlines`` sub-element allows for plotting the boundaries of a + regular mesh on top of a plot. Only one ``meshlines`` element is allowed per ``plot`` element, and it must contain as attributes or sub-elements a mesh type and a linewidth. Optionally, a color may be specified for the overlay: diff --git a/openmc/plots.py b/openmc/plots.py index 73b51da5e8..4dacabf288 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -67,6 +67,16 @@ class Plot(object): col_spec : dict Dictionary indicating that certain cells/materials (keys) should be colored with a specific RGB (values) + level : int + Universe depth to plot at + meshlines_type : {'tally', 'entropy', 'ufs', 'cmfd'} + The type of the mesh to be plotted + meshlines_id : int + ID for the mesh specified on ``tallies.xml`` that should be plotted + meshlines_linewidth : int + Pixels of linewidth to specify for the mesh boundaries + meshlines_color : Iterable of int + Color for the meshlines boundaries by RGB. """ @@ -85,6 +95,11 @@ class Plot(object): self._mask_components = None self._mask_background = None self._col_spec = None + self._level = None + self._meshlines_type = None + self._meshlines_id = None + self._meshlines_linewidth = None + self._meshlines_color = None @property def id(self): @@ -138,6 +153,26 @@ class Plot(object): def col_spec(self): return self._col_spec + @property + def level(self): + return self._level + + @property + def meshlines_type(self): + return self._meshlines_type + + @property + def meshlines_id(self): + return self._meshlines_id + + @property + def meshlines_linewidth(self): + return self._meshlines_linewidth + + @property + def meshlines_color(self): + return self._meshlines_color + @id.setter def id(self, plot_id): if plot_id is None: @@ -231,9 +266,9 @@ class Plot(object): @mask_components.setter def mask_components(self, mask_components): - cv.check_type('plot mask_components', mask_components, Iterable, Integral) + cv.check_type('plot mask components', mask_components, Iterable, Integral) for component in mask_components: - cv.check_greater_than('plot mask_components', component, 0, True) + cv.check_greater_than('plot mask components', component, 0, True) self._mask_components = mask_components @mask_background.setter @@ -245,6 +280,40 @@ class Plot(object): cv.check_less_than('plot mask background', rgb, 256) self._mask_background = mask_background + @level.setter + def level(self, plot_level): + cv.check_type('plot level', plot_level, Integral) + cv.check_greater_than('plot level', plot_level, 0, equality=True) + self._level = plot_level + + @meshlines_type.setter + def meshlines_type(self, meshlines_type): + cv.check_type('plot meshlines type', meshlines_type, basestring) + cv.check_value('plot meshlines type', meshlines_type, + ['tally', 'entropy', 'ufs', 'cmfd']) + self._meshlines_type = meshlines_type + + @meshlines_id.setter + def meshlines_id(self, mesh_id): + cv.check_type('plot meshlines id', mesh_id, Integral) + cv.check_greater_than('plot meshlines id', mesh_id, 0, equality=True) + self._meshlines_id = mesh_id + + @meshlines_linewidth.setter + def meshlines_linewidth(self, linewidth): + cv.check_type('plot mesh linewidth', linewidth, Integral) + cv.check_greater_than('plot mesh linewidth', linewidth, 0, equality=True) + self._meshlines_linewidth = linewidth + + @meshlines_color.setter + def meshlines_color(self, color): + cv.check_type('plot meshlines color', color, Iterable, Integral) + cv.check_length('plot meshlines color', color, 3) + for rgb in color: + cv.check_greater_than('plot meshlines color', rgb, 0, True) + cv.check_less_than('plot meshlines color', rgb, 256) + self._meshlines_color = color + def __repr__(self): string = 'Plot\n' string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) @@ -256,11 +325,20 @@ class Plot(object): string += '{0: <16}{1}{2}\n'.format('\tOrigin', '=\t', self._origin) string += '{0: <16}{1}{2}\n'.format('\tPixels', '=\t', self._origin) string += '{0: <16}{1}{2}\n'.format('\tColor', '=\t', self._color) - string += '{0: <16}{1}{2}\n'.format('\tMask', '=\t', + string += '{0: <16}{1}{2}\n'.format('\tMask components', '=\t', self._mask_components) - string += '{0: <16}{1}{2}\n'.format('\tMask', '=\t', + string += '{0: <16}{1}{2}\n'.format('\tMask background', '=\t', self._mask_background) string += '{0: <16}{1}{2}\n'.format('\tCol Spec', '=\t', self._col_spec) + string += '{0: <16}{1}{2}\n'.format('\tLevel', '=\t', self._level) + string += '{0: <16}{1}{2}\n'.format('\tMeshlines type', '=\t', + self._meshlines_type) + string += '{0: <16}{1}{2}\n'.format('\tMeshlines id', '=\t', + self._meshlines_id) + string += '{0: <16}{1}{2}\n'.format('\tMeshlines color', '=\t', + self._meshlines_color) + string += '{0: <16}{1}{2}\n'.format('\tMeshlines linewidth', '=\t', + self._meshlines_linewidth) return string def colorize(self, geometry, seed=1): @@ -382,7 +460,7 @@ class Plot(object): subelement = ET.SubElement(element, "pixels") subelement.text = ' '.join(map(str, self._pixels)) - if self._mask_background is not None: + if self._background is not None: subelement = ET.SubElement(element, "background") subelement.text = ' '.join(map(str, self._background)) @@ -400,6 +478,20 @@ class Plot(object): subelement.set("background", ' '.join(map( str, self._mask_background))) + if self._level is not None: + subelement = ET.SubElement(element, "level") + subelement.text = ' '.join(str(self._level)) + + if self._meshlines_type is not None: + subelement = ET.SubElement(element, "meshlines") + subelement.set("meshtype", self._meshlines_type) + if self._meshlines_id is not None: + subelement.set("id", str(self._meshlines_id)) + if self._meshlines_linewidth is not None: + subelement.set("linewidth", str(self._meshlines_linewidth)) + if self._meshlines_color is not None: + subelement.set("color", ' '.join(map(str, self._meshlines_color))) + return element From 26bdadd79aac3712450d8c0612ac3edcb68e720f Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 29 Aug 2016 10:05:00 -0400 Subject: [PATCH 350/417] removed redundant code in tally.F90 and addressed other PR comments --- .../pythonapi/examples/tally-arithmetic.ipynb | 64 +- openmc/filter.py | 20 +- src/tally.F90 | 556 +++++------------- 3 files changed, 188 insertions(+), 452 deletions(-) diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 088af07b30..b4b41f8d28 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -339,7 +339,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIFw8YNfjajoIAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDgtMjNUMTU6MjQ6\nNTMtMDQ6MDANSReSAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA4LTIzVDE1OjI0OjUzLTA0OjAw\nfBSvLgAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIHQoDEQSZg0YAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDgtMjlUMTA6MDM6\nMTctMDQ6MDAuYJb8AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA4LTI5VDEwOjAzOjE3LTA0OjAw\nXz0uQAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -567,8 +567,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", - " Git SHA1: 93862cea249e4441beb714e719120da3bd2b7d0a\n", - " Date/Time: 2016-08-23 15:24:53\n", + " Git SHA1: 11dea6f26aaa07794a484b8d009a75cce36a8784\n", + " Date/Time: 2016-08-29 10:03:18\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -625,20 +625,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.4300E-01 seconds\n", - " Reading cross sections = 3.5400E-01 seconds\n", - " Total time in simulation = 1.8555E+01 seconds\n", - " Time in transport only = 1.8464E+01 seconds\n", - " Time in inactive batches = 2.4600E+00 seconds\n", - " Time in active batches = 1.6095E+01 seconds\n", - " Time synchronizing fission bank = 1.1000E-02 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 4.6700E-01 seconds\n", + " Reading cross sections = 2.8600E-01 seconds\n", + " Total time in simulation = 1.9770E+01 seconds\n", + " Time in transport only = 1.9753E+01 seconds\n", + " Time in inactive batches = 2.4920E+00 seconds\n", + " Time in active batches = 1.7278E+01 seconds\n", + " Time synchronizing fission bank = 0.0000E+00 seconds\n", + " Sampling source sites = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 3.0000E-03 seconds\n", - " Total time elapsed = 1.9120E+01 seconds\n", - " Calculation Rate (inactive) = 5081.30 neutrons/second\n", - " Calculation Rate (active) = 2329.92 neutrons/second\n", + " Total time for finalization = 2.0000E-03 seconds\n", + " Total time elapsed = 2.0257E+01 seconds\n", + " Calculation Rate (inactive) = 5016.05 neutrons/second\n", + " Calculation Rate (active) = 2170.39 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -731,8 +731,8 @@ " 0\n", " total\n", " (nu-fission / (absorption + current))\n", - " 1.02431\n", - " 0.00704\n", + " 1.007511\n", + " 0.007114\n", " \n", " \n", "\n", @@ -740,7 +740,7 @@ ], "text/plain": [ " nuclide score mean std. dev.\n", - "0 total (nu-fission / (absorption + current)) 1.02e+00 7.04e-03" + "0 total (nu-fission / (absorption + current)) 1.01e+00 7.11e-03" ] }, "execution_count": 24, @@ -802,8 +802,8 @@ " 6.250000e-07\n", " total\n", " (absorption + current)\n", - " 0.695303\n", - " 0.005091\n", + " 0.695851\n", + " 0.00511\n", " \n", " \n", "\n", @@ -814,7 +814,7 @@ "0 0.00e+00 6.25e-07 total (absorption + current) \n", "\n", " mean std. dev. \n", - "0 6.95e-01 5.09e-03 " + "0 6.96e-01 5.11e-03 " ] }, "execution_count": 25, @@ -1064,8 +1064,8 @@ " 6.250000e-07\n", " total\n", " (absorption + current)\n", - " 0.985102\n", - " 0.005855\n", + " 0.970693\n", + " 0.005989\n", " \n", " \n", "\n", @@ -1076,7 +1076,7 @@ "0 0.00e+00 6.25e-07 total (absorption + current) \n", "\n", " mean std. dev. \n", - "0 9.85e-01 5.86e-03 " + "0 9.71e-01 5.99e-03 " ] }, "execution_count": 29, @@ -1093,7 +1093,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The final factor is the thermalnon-leakage probability and is computed as $$P_{TNL} = \\frac{\\langle \\Sigma_a\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle_T + \\langle L \\rangle_T}$$" + "The final factor is the thermal non-leakage probability and is computed as $$P_{TNL} = \\frac{\\langle \\Sigma_a\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle_T + \\langle L \\rangle_T}$$" ] }, { @@ -1126,8 +1126,8 @@ " 6.250000e-07\n", " total\n", " (absorption / (absorption + current))\n", - " 0.997407\n", - " 0.008492\n", + " 0.994827\n", + " 0.008481\n", " \n", " \n", "\n", @@ -1138,7 +1138,7 @@ "0 0.00e+00 6.25e-07 total \n", "\n", " score mean std. dev. \n", - "0 (absorption / (absorption + current)) 9.97e-01 8.49e-03 " + "0 (absorption / (absorption + current)) 9.95e-01 8.48e-03 " ] }, "execution_count": 30, @@ -1190,8 +1190,8 @@ " 10000\n", " total\n", " ((((((absorption + current) * nu-fission) * ab...\n", - " 1.02431\n", - " 0.02062\n", + " 1.007511\n", + " 0.020364\n", " \n", " \n", "\n", @@ -1202,7 +1202,7 @@ "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", - "0 ((((((absorption + current) * nu-fission) * ab... 1.02e+00 2.06e-02 " + "0 ((((((absorption + current) * nu-fission) * ab... 1.01e+00 2.04e-02 " ] }, "execution_count": 31, diff --git a/openmc/filter.py b/openmc/filter.py index 771d40401c..4961ce7252 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -17,6 +17,13 @@ _FILTER_TYPES = ['universe', 'material', 'cell', 'cellborn', 'surface', 'mesh', 'energy', 'energyout', 'mu', 'polar', 'azimuthal', 'distribcell', 'delayedgroup'] +_CURRENT_NAMES = {1: 'x-min out', 2: 'x-max out', + 3: 'y-min out', 4: 'y-max out', + 5: 'z-min out', 6: 'z-max out', + 7: 'x-min in', 8: 'x-max in', + 9: 'y-min in', 10: 'y-max in', + 11: 'z-min in', 12: 'z-max in'} + class Filter(object): """A filter used to constrain a tally to a specific criterion, e.g. only tally events when the particle is in a certain cell and energy range. @@ -781,18 +788,7 @@ class Filter(object): filter_bins = np.repeat(self.bins, self.stride) tile_factor = data_size / len(filter_bins) filter_bins = np.tile(filter_bins, tile_factor) - filter_bins = [x if x != 1 else 'x-min out' for x in filter_bins] - filter_bins = [x if x != 2 else 'x-max out' for x in filter_bins] - filter_bins = [x if x != 3 else 'y-min out' for x in filter_bins] - filter_bins = [x if x != 4 else 'y-max out' for x in filter_bins] - filter_bins = [x if x != 5 else 'z-min out' for x in filter_bins] - filter_bins = [x if x != 6 else 'z-max out' for x in filter_bins] - filter_bins = [x if x != 7 else 'x-min in' for x in filter_bins] - filter_bins = [x if x != 8 else 'x-max in' for x in filter_bins] - filter_bins = [x if x != 9 else 'y-min in' for x in filter_bins] - filter_bins = [x if x != 10 else 'y-max in' for x in filter_bins] - filter_bins = [x if x != 11 else 'z-min in' for x in filter_bins] - filter_bins = [x if x != 12 else 'z-max in' for x in filter_bins] + filter_bins = [_CURRENT_NAMES[x] for x in filter_bins] df = pd.concat([df, pd.DataFrame({self.type : filter_bins})]) # universe, material, surface, cell, and cellborn filters diff --git a/src/tally.F90 b/src/tally.F90 index 7f743d134b..e34fecd148 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2321,6 +2321,9 @@ contains integer :: i_tally integer :: j ! loop indices integer :: k ! loop indices + integer :: d1 ! dimension index + integer :: d2 ! dimension index + integer :: d3 ! dimension index integer :: ijk0(3) ! indices of starting coordinates integer :: ijk1(3) ! indices of ending coordinates integer :: n_cross ! number of surface crossings @@ -2398,231 +2401,96 @@ contains ! ======================================================================= ! SPECIAL CASES WHERE TWO INDICES ARE THE SAME - x_same = (ijk0(1) == ijk1(1)) - y_same = (ijk0(2) == ijk1(2)) - z_same = (ijk0(3) == ijk1(3)) + ! Loop over the dimensions + do d1 = 1, 3 - if (x_same .and. y_same) then - ! Only z crossings - if (uvw(3) > 0) then - do j = ijk0(3), ijk1(3) - 1 - ijk0(3) = j + ! Get the other dimensions + d2 = mod(d1, 3) + 1 + d3 = mod(d1 + 1, 3) + 1 - ! OUT_TOP - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_TOP - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 + ! If cell index in dimension d1 and d2 are the same and the cells is + ! within the mesh bounds + if (ijk0(d1) == ijk1(d1) .and. ijk0(d2) == ijk1(d2) .and. & + ijk0(d1) >= 1 .and. ijk0(d1) <= m % dimension(d1) .and. & + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2)) then + + ! Only d3 crossings + if (uvw(d3) > 0) then + + ! Loop over d3 cells + do j = ijk0(d3), ijk1(d3) - 1 + + ! Outward current on d3 max surface + if (j >= 1 .and. j <= m % dimension(d3)) then + ijk0(d3) = j + matching_bins(i_filter_surf) = d3 * 2 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if - ! IN_BOTTOM - if (ijk0(1) >= 1 .and. ijk0(2) >= 1 .and. ijk0(3) >= 0 .and. & - ijk0(1) <= m % dimension(1) .and. & - ijk0(2) <= m % dimension(2) .and. & - ijk0(3) < m % dimension(3)) then - ijk0(3) = ijk0(3) + 1 - matching_bins(i_filter_surf) = IN_BOTTOM - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 + ! Inward current on d3 min surface + if (j >= 0 .and. j < m % dimension(d3)) then + ijk0(d3) = j + 1 + matching_bins(i_filter_surf) = d3 * 2 + 5 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(3) = ijk0(3) - 1 - end if - end do - else - do j = ijk0(3), ijk1(3) + 1, -1 - ijk0(3) = j + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + end do + else - ! OUT_BOTTOM - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_BOTTOM - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if + do j = ijk0(d3), ijk1(d3) + 1, -1 - ! IN_TOP - if (ijk0(1) >= 1 .and. ijk0(2) >= 1 .and. ijk0(3) > 1 .and. & - ijk0(1) <= m % dimension(1) .and. & - ijk0(2) <= m % dimension(2) .and. & - ijk0(3) <= m % dimension(3) + 1) then - ijk0(3) = ijk0(3) - 1 - matching_bins(i_filter_surf) = IN_TOP - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 + + ! Outward current on d3 min surface + if (j >= 1 .and. j <= m % dimension(d3)) then + ijk0(d3) = j + matching_bins(i_filter_surf) = d3 * 2 - 1 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(3) = ijk0(3) + 1 - end if - end do + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + + ! Inward current on d3 max surface + if (j > 1 .and. j <= m % dimension(d3) + 1) then + ijk0(d3) = j - 1 + matching_bins(i_filter_surf) = d3 * 2 + 6 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + end do + end if + cycle end if - cycle - elseif (x_same .and. z_same) then - ! Only y crossings - if (uvw(2) > 0) then - do j = ijk0(2), ijk1(2) - 1 - ijk0(2) = j - - ! OUT_FRONT - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_FRONT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! IN_BACK - if (ijk0(1) >= 1 .and. ijk0(2) >= 0 .and. ijk0(3) >= 1 .and. & - ijk0(1) <= m % dimension(1) .and. & - ijk0(2) < m % dimension(2) .and. & - ijk0(3) <= m % dimension(3)) then - ijk0(2) = ijk0(2) + 1 - matching_bins(i_filter_surf) = IN_BACK - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(2) = ijk0(2) - 1 - end if - end do - else - do j = ijk0(2), ijk1(2) + 1, -1 - ijk0(2) = j - - ! OUT_BACK - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_BACK - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! IN_FRONT - if (ijk0(1) >= 1 .and. ijk0(2) > 1 .and. ijk0(3) >= 1 .and. & - ijk0(1) <= m % dimension(1) .and. & - ijk0(2) <= m % dimension(2) + 1 .and. & - ijk0(3) <= m % dimension(3)) then - ijk0(2) = ijk0(2) - 1 - matching_bins(i_filter_surf) = IN_FRONT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(2) = ijk0(2) + 1 - end if - end do - end if - cycle - elseif (y_same .and. z_same) then - ! Only x crossings - if (uvw(1) > 0) then - do j = ijk0(1), ijk1(1) - 1 - ijk0(1) = j - - ! OUT_RIGHT - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_RIGHT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! IN_LEFT - if (ijk0(1) >= 0 .and. ijk0(2) >= 1 .and. ijk0(3) >= 1 .and. & - ijk0(1) < m % dimension(1) .and. & - ijk0(2) <= m % dimension(2) .and. & - ijk0(3) <= m % dimension(3)) then - ijk0(1) = ijk0(1) + 1 - matching_bins(i_filter_surf) = IN_LEFT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(1) = ijk0(1) - 1 - end if - end do - else - do j = ijk0(1), ijk1(1) + 1, -1 - ijk0(1) = j - - ! OUT_LEFT - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_LEFT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! IN_RIGHT - if (ijk0(1) > 1 .and. ijk0(2) >= 1 .and. ijk0(3) >= 1 .and. & - ijk0(1) <= m % dimension(1) + 1 .and. & - ijk0(2) <= m % dimension(2) .and. & - ijk0(3) <= m % dimension(3)) then - ijk0(1) = ijk0(1) - 1 - matching_bins(i_filter_surf) = IN_RIGHT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(1) = ijk0(1) + 1 - end if - end do - end if - cycle - end if + end do ! ======================================================================= ! GENERIC CASE ! Bounding coordinates - do j = 1, 3 - if (uvw(j) > 0) then - xyz_cross(j) = m % lower_left(j) + ijk0(j) * m % width(j) + do d1 = 1, 3 + if (uvw(d1) > 0) then + xyz_cross(d1) = m % lower_left(d1) + ijk0(d1) * m % width(d1) else - xyz_cross(j) = m % lower_left(j) + (ijk0(j) - 1) * m % width(j) + xyz_cross(d1) = m % lower_left(d1) + (ijk0(d1) - 1) * m % width(d1) end if end do @@ -2634,11 +2502,11 @@ contains ! special case where the cosine of the angle is zero since this would ! result in a divide-by-zero. - do j = 1, 3 - if (uvw(j) == 0) then - d(j) = INFINITY + do d1 = 1, 3 + if (uvw(d1) == 0) then + d(d1) = INFINITY else - d(j) = (xyz_cross(j) - xyz0(j))/uvw(j) + d(d1) = (xyz_cross(d1) - xyz0(d1))/uvw(d1) end if end do @@ -2650,211 +2518,83 @@ contains ! Now use the minimum distance and direction of the particle to ! determine which surface was crossed - if (distance == d(1)) then - if (uvw(1) > 0) then + ! Loop over the dimensions + do d1 = 1, 3 - ! OUT_RIGHT - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_RIGHT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 + ! Get the other dimensions + d2 = mod(d1, 3) + 1 + d3 = mod(d1 + 1, 3) + 1 + + if (distance == d(d1)) then + + ! Check dimension d2 and d3 indices + if (ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & + ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3)) then + + if (uvw(d1) > 0) then + + ! Outward current on d1 max surface + if (ijk0(d1) >= 1 .and. ijk0(d1) <= m % dimension(d1)) then + matching_bins(i_filter_surf) = d1 * 2 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if - ! IN_LEFT - if (ijk0(1) >= 0 .and. ijk0(2) >= 1 .and. ijk0(3) >= 1 .and. & - ijk0(1) < m % dimension(1) .and. & - ijk0(2) <= m % dimension(2) .and. & - ijk0(3) <= m % dimension(3)) then - ijk0(1) = ijk0(1) + 1 - matching_bins(i_filter_surf) = IN_LEFT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 + ! Inward current on d1 min surface + if (ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1)) then + ijk0(d1) = ijk0(d1) + 1 + matching_bins(i_filter_surf) = d1 * 2 + 5 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(1) = ijk0(1) - 1 - end if + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + ijk0(d1) = ijk0(d1) - 1 + end if - ijk0(1) = ijk0(1) + 1 - xyz_cross(1) = xyz_cross(1) + m % width(1) - else + ijk0(d1) = ijk0(d1) + 1 + xyz_cross(d1) = xyz_cross(d1) + m % width(d1) + else - ! OUT_LEFT - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_LEFT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 + ! Outward current on d1 min surface + if (ijk0(d1) >= 1 .and. ijk0(d1) <= m % dimension(d1)) then + matching_bins(i_filter_surf) = d1 * 2 - 1 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if - ! IN_RIGHT - if (ijk0(1) > 1 .and. ijk0(2) >= 1 .and. ijk0(3) >= 1 .and. & - ijk0(1) <= m % dimension(1) + 1 .and. & - ijk0(2) <= m % dimension(2) .and. & - ijk0(3) <= m % dimension(3)) then - ijk0(1) = ijk0(1) - 1 - matching_bins(i_filter_surf) = IN_RIGHT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 + ! Inward current on d1 max surface + if (ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1) then + ijk0(d1) = ijk0(d1) - 1 + matching_bins(i_filter_surf) = d1 * 2 + 6 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(1) = ijk0(1) + 1 - end if + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + ijk0(d1) = ijk0(d1) + 1 + end if - ijk0(1) = ijk0(1) - 1 - xyz_cross(1) = xyz_cross(1) - m % width(1) + ijk0(d1) = ijk0(d1) - 1 + xyz_cross(d1) = xyz_cross(d1) - m % width(d1) + end if + end if end if - elseif (distance == d(2)) then - if (uvw(2) > 0) then - - ! OUT_FRONT - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_FRONT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! IN_BACK - if (ijk0(1) >= 1 .and. ijk0(2) >= 0 .and. ijk0(3) >= 1 .and. & - ijk0(1) <= m % dimension(1) .and. & - ijk0(2) < m % dimension(2) .and. & - ijk0(3) <= m % dimension(3)) then - ijk0(2) = ijk0(2) + 1 - matching_bins(i_filter_surf) = IN_BACK - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(2) = ijk0(2) - 1 - end if - - ijk0(2) = ijk0(2) + 1 - xyz_cross(2) = xyz_cross(2) + m % width(2) - else - - ! OUT_BACK - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_BACK - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! IN_FRONT - if (ijk0(1) >= 1 .and. ijk0(2) > 1 .and. ijk0(3) >= 1 .and. & - ijk0(1) <= m % dimension(1) .and. & - ijk0(2) <= m % dimension(2) + 1 .and. & - ijk0(3) <= m % dimension(3)) then - ijk0(2) = ijk0(2) - 1 - matching_bins(i_filter_surf) = IN_FRONT - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(2) = ijk0(2) + 1 - end if - - ijk0(2) = ijk0(2) - 1 - xyz_cross(2) = xyz_cross(2) - m % width(2) - end if - else if (distance == d(3)) then - if (uvw(3) > 0) then - - ! OUT_TOP - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_TOP - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! IN_BOTTOM - if (ijk0(1) >= 1 .and. ijk0(2) >= 1 .and. ijk0(3) >= 0 .and. & - ijk0(1) <= m % dimension(1) .and. & - ijk0(2) <= m % dimension(2) .and. & - ijk0(3) < m % dimension(3)) then - ijk0(3) = ijk0(3) + 1 - matching_bins(i_filter_surf) = IN_BOTTOM - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(3) = ijk0(3) - 1 - end if - - ijk0(3) = ijk0(3) + 1 - xyz_cross(3) = xyz_cross(3) + m % width(3) - else - - ! OUT_BOTTOM - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = OUT_BOTTOM - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! IN_TOP - if (ijk0(1) >= 1 .and. ijk0(2) >= 1 .and. ijk0(3) > 1 .and. & - ijk0(1) <= m % dimension(1) .and. & - ijk0(2) <= m % dimension(2) .and. & - ijk0(3) <= m % dimension(3) + 1) then - ijk0(3) = ijk0(3) - 1 - matching_bins(i_filter_surf) = IN_TOP - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(3) = ijk0(3) + 1 - end if - - ijk0(3) = ijk0(3) - 1 - xyz_cross(3) = xyz_cross(3) - m % width(3) - end if - end if + end do ! Calculate new coordinates xyz0 = xyz0 + distance * uvw From b01a8972504edb17b20d6cd91fc9cf776448389b Mon Sep 17 00:00:00 2001 From: jingang Date: Mon, 29 Aug 2016 11:02:29 -0400 Subject: [PATCH 351/417] make meshlines a dict as a single attribute of plot --- openmc/plots.py | 118 ++++++++++++++++++++---------------------------- 1 file changed, 50 insertions(+), 68 deletions(-) diff --git a/openmc/plots.py b/openmc/plots.py index 4dacabf288..cc5c0d44b3 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -69,14 +69,9 @@ class Plot(object): colored with a specific RGB (values) level : int Universe depth to plot at - meshlines_type : {'tally', 'entropy', 'ufs', 'cmfd'} - The type of the mesh to be plotted - meshlines_id : int - ID for the mesh specified on ``tallies.xml`` that should be plotted - meshlines_linewidth : int - Pixels of linewidth to specify for the mesh boundaries - meshlines_color : Iterable of int - Color for the meshlines boundaries by RGB. + meshlines : dict + Dictionary defining type, id, linewidth and color of a regular mesh + to be plotted on top of a plot """ @@ -91,15 +86,12 @@ class Plot(object): self._color = 'cell' self._type = 'slice' self._basis = 'xy' - self._background = [0, 0, 0] + self._background = None self._mask_components = None self._mask_background = None self._col_spec = None self._level = None - self._meshlines_type = None - self._meshlines_id = None - self._meshlines_linewidth = None - self._meshlines_color = None + self._meshlines = None @property def id(self): @@ -158,20 +150,8 @@ class Plot(object): return self._level @property - def meshlines_type(self): - return self._meshlines_type - - @property - def meshlines_id(self): - return self._meshlines_id - - @property - def meshlines_linewidth(self): - return self._meshlines_linewidth - - @property - def meshlines_color(self): - return self._meshlines_color + def meshlines(self): + return self._meshlines @id.setter def id(self, plot_id): @@ -286,33 +266,38 @@ class Plot(object): cv.check_greater_than('plot level', plot_level, 0, equality=True) self._level = plot_level - @meshlines_type.setter - def meshlines_type(self, meshlines_type): - cv.check_type('plot meshlines type', meshlines_type, basestring) - cv.check_value('plot meshlines type', meshlines_type, - ['tally', 'entropy', 'ufs', 'cmfd']) - self._meshlines_type = meshlines_type + @meshlines.setter + def meshlines(self, meshlines): + cv.check_type('plot meshlines', meshlines, dict) + if 'type' not in meshlines: + msg = 'Unable to set on plot the meshlines "{0}" which ' \ + 'does not have a "type" key'.format(meshlines) + raise ValueError(msg) - @meshlines_id.setter - def meshlines_id(self, mesh_id): - cv.check_type('plot meshlines id', mesh_id, Integral) - cv.check_greater_than('plot meshlines id', mesh_id, 0, equality=True) - self._meshlines_id = mesh_id + elif meshlines['type'] not in ['tally', 'entropy', 'ufs', 'cmfd']: + msg = 'Unable to set the meshlines with ' \ + 'type "{0}"'.format(meshlines['type']) + raise ValueError(msg) - @meshlines_linewidth.setter - def meshlines_linewidth(self, linewidth): - cv.check_type('plot mesh linewidth', linewidth, Integral) - cv.check_greater_than('plot mesh linewidth', linewidth, 0, equality=True) - self._meshlines_linewidth = linewidth + if 'id' in meshlines: + cv.check_type('plot meshlines id', meshlines['id'], Integral) + cv.check_greater_than('plot meshlines id', meshlines['id'], 0, + equality=True) - @meshlines_color.setter - def meshlines_color(self, color): - cv.check_type('plot meshlines color', color, Iterable, Integral) - cv.check_length('plot meshlines color', color, 3) - for rgb in color: - cv.check_greater_than('plot meshlines color', rgb, 0, True) - cv.check_less_than('plot meshlines color', rgb, 256) - self._meshlines_color = color + if 'linewidth' in meshlines: + cv.check_type('plot mesh linewidth', meshlines['linewidth'], Integral) + cv.check_greater_than('plot mesh linewidth', meshlines['linewidth'], + 0, equality=True) + + if 'color' in meshlines: + cv.check_type('plot meshlines color', meshlines['color'], Iterable, + Integral) + cv.check_length('plot meshlines color', meshlines['color'], 3) + for rgb in meshlines['color']: + cv.check_greater_than('plot meshlines color', rgb, 0, True) + cv.check_less_than('plot meshlines color', rgb, 256) + + self._meshlines = meshlines def __repr__(self): string = 'Plot\n' @@ -325,20 +310,16 @@ class Plot(object): string += '{0: <16}{1}{2}\n'.format('\tOrigin', '=\t', self._origin) string += '{0: <16}{1}{2}\n'.format('\tPixels', '=\t', self._origin) string += '{0: <16}{1}{2}\n'.format('\tColor', '=\t', self._color) + string += '{0: <16}{1}{2}\n'.format('\tBackground', '=\t', + self._background) string += '{0: <16}{1}{2}\n'.format('\tMask components', '=\t', self._mask_components) string += '{0: <16}{1}{2}\n'.format('\tMask background', '=\t', self._mask_background) string += '{0: <16}{1}{2}\n'.format('\tCol Spec', '=\t', self._col_spec) string += '{0: <16}{1}{2}\n'.format('\tLevel', '=\t', self._level) - string += '{0: <16}{1}{2}\n'.format('\tMeshlines type', '=\t', - self._meshlines_type) - string += '{0: <16}{1}{2}\n'.format('\tMeshlines id', '=\t', - self._meshlines_id) - string += '{0: <16}{1}{2}\n'.format('\tMeshlines color', '=\t', - self._meshlines_color) - string += '{0: <16}{1}{2}\n'.format('\tMeshlines linewidth', '=\t', - self._meshlines_linewidth) + string += '{0: <16}{1}{2}\n'.format('\tMeshlines', '=\t', + self._meshlines) return string def colorize(self, geometry, seed=1): @@ -480,17 +461,18 @@ class Plot(object): if self._level is not None: subelement = ET.SubElement(element, "level") - subelement.text = ' '.join(str(self._level)) + subelement.text = str(self._level) - if self._meshlines_type is not None: + if self._meshlines is not None: subelement = ET.SubElement(element, "meshlines") - subelement.set("meshtype", self._meshlines_type) - if self._meshlines_id is not None: - subelement.set("id", str(self._meshlines_id)) - if self._meshlines_linewidth is not None: - subelement.set("linewidth", str(self._meshlines_linewidth)) - if self._meshlines_color is not None: - subelement.set("color", ' '.join(map(str, self._meshlines_color))) + subelement.set("meshtype", self._meshlines['type']) + if self._meshlines['id'] is not None: + subelement.set("id", str(self._meshlines['id'])) + if self._meshlines['linewidth'] is not None: + subelement.set("linewidth", str(self._meshlines['linewidth'])) + if self._meshlines['color'] is not None: + subelement.set("color", ' '.join(map( + str, self._meshlines['color']))) return element From 813efa3b66dd9b89378621bd0057c2520287b152 Mon Sep 17 00:00:00 2001 From: amandalund Date: Mon, 29 Aug 2016 10:45:34 -0500 Subject: [PATCH 352/417] Address #706 comments --- openmc/model/triso.py | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index e8ed04e3a0..76293051b0 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -11,8 +11,11 @@ from math import pi, sin, cos, floor, log10, sqrt from abc import ABCMeta, abstractproperty, abstractmethod import numpy as np -import scipy.spatial -from scipy.spatial.distance import cdist +try: + import scipy.spatial + _SCIPY_AVAILABLE = True +except ImportError: + _SCIPY_AVAILABLE = False import openmc import openmc.checkvalue as cv @@ -250,7 +253,6 @@ class _CubicDomain(_Domain): """ def __init__(self, length, particle_radius, center=[0., 0., 0.]): - self._length = None super(_CubicDomain, self).__init__(particle_radius, center) self.length = length @@ -330,8 +332,6 @@ class _CylindricalDomain(_Domain): """ def __init__(self, length, radius, particle_radius, center=[0., 0., 0.]): - self._length = None - self._radius = None super(_CylindricalDomain, self).__init__(particle_radius, center) self.length = length self.radius = radius @@ -422,7 +422,6 @@ class _SphericalDomain(_Domain): """ def __init__(self, radius, particle_radius, center=[0., 0., 0.]): - self._radius = None super(_SphericalDomain, self).__init__(particle_radius, center) self.radius = radius @@ -435,7 +434,7 @@ class _SphericalDomain(_Domain): if self._limits is None: rlim = self.radius - self.particle_radius self._limits = [[x - rlim for x in self.center], - [x + rlim for x in self.center]] + [x + rlim for x in self.center]] return self._limits @property @@ -443,7 +442,7 @@ class _SphericalDomain(_Domain): if self._cell_length is None: mesh_length = [2*self.radius, 2*self.radius, 2*self.radius] self._cell_length = [x/int(x/(4*self.particle_radius)) - for x in mesh_length] + for x in mesh_length] return self._cell_length @property @@ -683,7 +682,7 @@ def _close_random_pack(domain, particles, contraction_rate): # Find the intersection between 'a' and 'b': a list of particles who # are each other's nearest neighbors and the distance between them - r = list([x for x in {tuple(x) for x in a} & {tuple(x) for x in b}]) + r = list({tuple(x) for x in a} & {tuple(x) for x in b}) # Remove duplicate rods and sort by distance r = map(list, set([(x[2], int(min(x[0:2])), int(max(x[0:2]))) @@ -804,7 +803,7 @@ def _close_random_pack(domain, particles, contraction_rate): # will be itself. Using argpartition, the k-th nearest neighbor is # placed at index k. idx = list(mesh[domain.mesh_cell(particles[i])]) - dists = cdist([particles[i]], particles[idx])[0] + dists = scipy.spatial.distance.cdist([particles[i]], particles[idx])[0] if dists.size > 1: j = dists.argpartition(1)[1] return idx[j], dists[j] @@ -839,6 +838,10 @@ def _close_random_pack(domain, particles, contraction_rate): if rods: inner_diameter[0] = rods[0][0] + if not _SCIPY_AVAILABLE: + raise ImportError('SciPy must be installed to perform ' + 'close random packing.') + n_particles = len(particles) diameter = 2*domain.particle_radius @@ -1004,10 +1007,15 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, random.seed(seed) - # Set parameters for initial random sequential packing of particles. + # Calculate the particle radius used in the initial random sequential + # packing from the initial packing fraction initial_radius = (3/4 * initial_packing_fraction * domain.volume / (pi * n_particles))**(1/3) domain.particle_radius = initial_radius + + # Recalculate the limits for the initial random sequential packing using + # the desired final particle radius to ensure particles are fully contained + # within the domain during the close random pack domain.limits = [[x - initial_radius + radius for x in domain.limits[0]], [x + initial_radius - radius for x in domain.limits[1]]] @@ -1016,7 +1024,8 @@ def pack_trisos(radius, fill, domain_shape='cylinder', domain_length=None, particles = _random_sequential_pack(domain, n_particles) # Use the particle configuration produced in random sequential packing as a - # starting point for close random pack with the desired final particle radius + # starting point for close random pack with the desired final particle + # radius if initial_packing_fraction != packing_fraction: domain.particle_radius = radius _close_random_pack(domain, particles, contraction_rate) From 329f7d452a91c4276d598490e6877f1249ffedfe Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 29 Aug 2016 12:17:51 -0400 Subject: [PATCH 353/417] fixed bug in using cycle in nested do loop in tally.F90 --- src/tally.F90 | 149 +++++++++++++++++++++++++------------------------- 1 file changed, 76 insertions(+), 73 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index e34fecd148..b9d945778a 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2410,19 +2410,17 @@ contains ! If cell index in dimension d1 and d2 are the same and the cells is ! within the mesh bounds - if (ijk0(d1) == ijk1(d1) .and. ijk0(d2) == ijk1(d2) .and. & - ijk0(d1) >= 1 .and. ijk0(d1) <= m % dimension(d1) .and. & - ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2)) then + if (ijk0(d1) == ijk1(d1) .and. ijk0(d2) == ijk1(d2)) then ! Only d3 crossings if (uvw(d3) > 0) then ! Loop over d3 cells do j = ijk0(d3), ijk1(d3) - 1 + ijk0(d3) = j ! Outward current on d3 max surface - if (j >= 1 .and. j <= m % dimension(d3)) then - ijk0(d3) = j + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then matching_bins(i_filter_surf) = d3 * 2 matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) @@ -2434,7 +2432,9 @@ contains end if ! Inward current on d3 min surface - if (j >= 0 .and. j < m % dimension(d3)) then + if (ijk0(d1) >= 1 .and. ijk0(d1) <= m % dimension(d1) .and. & + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & + j >= 0 .and. j < m % dimension(d3)) then ijk0(d3) = j + 1 matching_bins(i_filter_surf) = d3 * 2 + 5 matching_bins(i_filter_mesh) = & @@ -2444,16 +2444,16 @@ contains !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt + ijk0(d3) = j end if end do else do j = ijk0(d3), ijk1(d3) + 1, -1 - + ijk0(d3) = j ! Outward current on d3 min surface - if (j >= 1 .and. j <= m % dimension(d3)) then - ijk0(d3) = j + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then matching_bins(i_filter_surf) = d3 * 2 - 1 matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) @@ -2465,7 +2465,9 @@ contains end if ! Inward current on d3 max surface - if (j > 1 .and. j <= m % dimension(d3) + 1) then + if (ijk0(d1) >= 1 .and. ijk0(d1) <= m % dimension(d1) .and. & + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & + j > 1 .and. j <= m % dimension(d3) + 1) then ijk0(d3) = j - 1 matching_bins(i_filter_surf) = d3 * 2 + 6 matching_bins(i_filter_mesh) = & @@ -2475,10 +2477,11 @@ contains !$omp atomic t % results(1, filter_index) % value = & t % results(1, filter_index) % value + p % wgt + ijk0(d3) = j end if end do end if - cycle + cycle TALLY_LOOP end if end do @@ -2525,73 +2528,73 @@ contains d2 = mod(d1, 3) + 1 d3 = mod(d1 + 1, 3) + 1 + ! Check distance and dimension d2 and d3 indices if (distance == d(d1)) then - ! Check dimension d2 and d3 indices - if (ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & - ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3)) then + if (uvw(d1) > 0) then - if (uvw(d1) > 0) then - - ! Outward current on d1 max surface - if (ijk0(d1) >= 1 .and. ijk0(d1) <= m % dimension(d1)) then - matching_bins(i_filter_surf) = d1 * 2 - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 + ! Outward current on d1 max surface + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = d1 * 2 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 !$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! Inward current on d1 min surface - if (ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1)) then - ijk0(d1) = ijk0(d1) + 1 - matching_bins(i_filter_surf) = d1 * 2 + 5 - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(d1) = ijk0(d1) - 1 - end if - - ijk0(d1) = ijk0(d1) + 1 - xyz_cross(d1) = xyz_cross(d1) + m % width(d1) - else - - ! Outward current on d1 min surface - if (ijk0(d1) >= 1 .and. ijk0(d1) <= m % dimension(d1)) then - matching_bins(i_filter_surf) = d1 * 2 - 1 - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! Inward current on d1 max surface - if (ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1) then - ijk0(d1) = ijk0(d1) - 1 - matching_bins(i_filter_surf) = d1 * 2 + 6 - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(d1) = ijk0(d1) + 1 - end if - - ijk0(d1) = ijk0(d1) - 1 - xyz_cross(d1) = xyz_cross(d1) - m % width(d1) + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt end if + + ! Inward current on d1 min surface + if (ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1) .and. & + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & + ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3)) then + ijk0(d1) = ijk0(d1) + 1 + matching_bins(i_filter_surf) = d1 * 2 + 5 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + ijk0(d1) = ijk0(d1) - 1 + end if + + ijk0(d1) = ijk0(d1) + 1 + xyz_cross(d1) = xyz_cross(d1) + m % width(d1) + else + + ! Outward current on d1 min surface + if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + matching_bins(i_filter_surf) = d1 * 2 - 1 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + end if + + ! Inward current on d1 max surface + if (ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1 .and. & + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & + ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3)) then + ijk0(d1) = ijk0(d1) - 1 + matching_bins(i_filter_surf) = d1 * 2 + 6 + matching_bins(i_filter_mesh) = & + mesh_indices_to_bin(m, ijk0) + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 +!$omp atomic + t % results(1, filter_index) % value = & + t % results(1, filter_index) % value + p % wgt + ijk0(d1) = ijk0(d1) + 1 + end if + + ijk0(d1) = ijk0(d1) - 1 + xyz_cross(d1) = xyz_cross(d1) - m % width(d1) end if end if end do From bc49c74d88aa5794a38a77afdd3fe98e725bfea7 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 29 Aug 2016 12:20:41 -0400 Subject: [PATCH 354/417] updated tally-arithmetic.ipynb --- .../pythonapi/examples/tally-arithmetic.ipynb | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index b4b41f8d28..2fecc3c29d 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -339,7 +339,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIHQoDEQSZg0YAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDgtMjlUMTA6MDM6\nMTctMDQ6MDAuYJb8AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA4LTI5VDEwOjAzOjE3LTA0OjAw\nXz0uQAAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIHQwUARggawYAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDgtMjlUMTI6MjA6\nMDEtMDQ6MDBSHRTRAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA4LTI5VDEyOjIwOjAxLTA0OjAw\nI0CsbQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -567,8 +567,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.8.0\n", - " Git SHA1: 11dea6f26aaa07794a484b8d009a75cce36a8784\n", - " Date/Time: 2016-08-29 10:03:18\n", + " Git SHA1: 26bdadd79aac3712450d8c0612ac3edcb68e720f\n", + " Date/Time: 2016-08-29 12:20:02\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -625,20 +625,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.6700E-01 seconds\n", - " Reading cross sections = 2.8600E-01 seconds\n", - " Total time in simulation = 1.9770E+01 seconds\n", - " Time in transport only = 1.9753E+01 seconds\n", - " Time in inactive batches = 2.4920E+00 seconds\n", - " Time in active batches = 1.7278E+01 seconds\n", - " Time synchronizing fission bank = 0.0000E+00 seconds\n", + " Total time for initialization = 4.6800E-01 seconds\n", + " Reading cross sections = 2.8200E-01 seconds\n", + " Total time in simulation = 1.8453E+01 seconds\n", + " Time in transport only = 1.8432E+01 seconds\n", + " Time in inactive batches = 2.5060E+00 seconds\n", + " Time in active batches = 1.5947E+01 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", " Sampling source sites = 0.0000E+00 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 2.0257E+01 seconds\n", - " Calculation Rate (inactive) = 5016.05 neutrons/second\n", - " Calculation Rate (active) = 2170.39 neutrons/second\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 3.0000E-03 seconds\n", + " Total time elapsed = 1.8947E+01 seconds\n", + " Calculation Rate (inactive) = 4988.03 neutrons/second\n", + " Calculation Rate (active) = 2351.54 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -731,8 +731,8 @@ " 0\n", " total\n", " (nu-fission / (absorption + current))\n", - " 1.007511\n", - " 0.007114\n", + " 1.02431\n", + " 0.00704\n", " \n", " \n", "\n", @@ -740,7 +740,7 @@ ], "text/plain": [ " nuclide score mean std. dev.\n", - "0 total (nu-fission / (absorption + current)) 1.01e+00 7.11e-03" + "0 total (nu-fission / (absorption + current)) 1.02e+00 7.04e-03" ] }, "execution_count": 24, @@ -802,8 +802,8 @@ " 6.250000e-07\n", " total\n", " (absorption + current)\n", - " 0.695851\n", - " 0.00511\n", + " 0.695303\n", + " 0.005091\n", " \n", " \n", "\n", @@ -814,7 +814,7 @@ "0 0.00e+00 6.25e-07 total (absorption + current) \n", "\n", " mean std. dev. \n", - "0 6.96e-01 5.11e-03 " + "0 6.95e-01 5.09e-03 " ] }, "execution_count": 25, @@ -1064,8 +1064,8 @@ " 6.250000e-07\n", " total\n", " (absorption + current)\n", - " 0.970693\n", - " 0.005989\n", + " 0.985102\n", + " 0.005855\n", " \n", " \n", "\n", @@ -1076,7 +1076,7 @@ "0 0.00e+00 6.25e-07 total (absorption + current) \n", "\n", " mean std. dev. \n", - "0 9.71e-01 5.99e-03 " + "0 9.85e-01 5.86e-03 " ] }, "execution_count": 29, @@ -1126,8 +1126,8 @@ " 6.250000e-07\n", " total\n", " (absorption / (absorption + current))\n", - " 0.994827\n", - " 0.008481\n", + " 0.997407\n", + " 0.008492\n", " \n", " \n", "\n", @@ -1138,7 +1138,7 @@ "0 0.00e+00 6.25e-07 total \n", "\n", " score mean std. dev. \n", - "0 (absorption / (absorption + current)) 9.95e-01 8.48e-03 " + "0 (absorption / (absorption + current)) 9.97e-01 8.49e-03 " ] }, "execution_count": 30, @@ -1190,8 +1190,8 @@ " 10000\n", " total\n", " ((((((absorption + current) * nu-fission) * ab...\n", - " 1.007511\n", - " 0.020364\n", + " 1.02431\n", + " 0.02062\n", " \n", " \n", "\n", @@ -1202,7 +1202,7 @@ "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", - "0 ((((((absorption + current) * nu-fission) * ab... 1.01e+00 2.04e-02 " + "0 ((((((absorption + current) * nu-fission) * ab... 1.02e+00 2.06e-02 " ] }, "execution_count": 31, From ce6b893dd4889dc3de202a2bf96cb21e92fc2898 Mon Sep 17 00:00:00 2001 From: amandalund Date: Mon, 29 Aug 2016 14:24:52 -0500 Subject: [PATCH 355/417] Changed flag marking removed rods to integer to fix unorderable type error --- openmc/model/triso.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index 76293051b0..0c372aeefd 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -622,8 +622,8 @@ def _close_random_pack(domain, particles, contraction_rate): if i in rods_map: j, rod = rods_map.pop(i) del rods_map[j] - rod[1] = None - rod[2] = None + rod[1] = removed + rod[2] = removed def pop_rod(): """Remove and return the shortest rod. @@ -639,7 +639,7 @@ def _close_random_pack(domain, particles, contraction_rate): while rods: d, i, j = heappop(rods) - if i is not None and j is not None: + if i is not removed and j is not removed: del rods_map[i] del rods_map[j] return d, i, j @@ -845,6 +845,9 @@ def _close_random_pack(domain, particles, contraction_rate): n_particles = len(particles) diameter = 2*domain.particle_radius + # Flag for marking rods that have been removed from priority queue + removed = -1 + # Outer diameter initially set to arbitrary value that yields pf of 1 initial_outer_diameter = 2*(domain.volume/(n_particles*4/3*pi))**(1/3) From 4631c5c7df44395536cf2d5bef2f4f7976f6c404 Mon Sep 17 00:00:00 2001 From: amandalund Date: Mon, 29 Aug 2016 14:27:53 -0500 Subject: [PATCH 356/417] is not -> != --- openmc/model/triso.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/model/triso.py b/openmc/model/triso.py index 0c372aeefd..5525ea559c 100644 --- a/openmc/model/triso.py +++ b/openmc/model/triso.py @@ -639,7 +639,7 @@ def _close_random_pack(domain, particles, contraction_rate): while rods: d, i, j = heappop(rods) - if i is not removed and j is not removed: + if i != removed and j != removed: del rods_map[i] del rods_map[j] return d, i, j From 4448d17ee1769c19873d6c96d2d28205d4348414 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 26 Aug 2016 13:32:36 -0500 Subject: [PATCH 357/417] Add procedures for sorting and finding --- src/algorithm.F90 | 275 +++++++++++++++++++++++++++++++++++ src/angle_distribution.F90 | 2 +- src/cmfd_execute.F90 | 2 +- src/cross_section.F90 | 2 +- src/eigenvalue.F90 | 2 +- src/endf_header.F90 | 2 +- src/energy_distribution.F90 | 2 +- src/mesh.F90 | 10 +- src/physics.F90 | 2 +- src/scattdata_header.F90 | 2 +- src/search.F90 | 143 ------------------ src/secondary_correlated.F90 | 2 +- src/secondary_kalbach.F90 | 2 +- src/source.F90 | 13 +- src/tally.F90 | 10 +- src/tally_filter.F90 | 2 +- 16 files changed, 302 insertions(+), 171 deletions(-) create mode 100644 src/algorithm.F90 delete mode 100644 src/search.F90 diff --git a/src/algorithm.F90 b/src/algorithm.F90 new file mode 100644 index 0000000000..101b11b9a7 --- /dev/null +++ b/src/algorithm.F90 @@ -0,0 +1,275 @@ +module algorithm + + use constants + use stl_vector, only: VectorInt, VectorReal + + implicit none + + integer, parameter :: MAX_ITERATION = 64 + + interface binary_search + module procedure binary_search_real, binary_search_int4, binary_search_int8 + end interface binary_search + + interface sort + module procedure sort_int, sort_real, sort_vector_int, sort_vector_real + end interface sort + + interface find + module procedure find_int, find_real, find_vector_int, find_vector_real + end interface find + +contains + +!=============================================================================== +! BINARY_SEARCH performs a binary search of an array to find where a specific +! value lies in the array. This is used extensively for energy grid searching +!=============================================================================== + + pure function binary_search_real(array, n, val) result(array_index) + + integer, intent(in) :: n + real(8), intent(in) :: array(n) + real(8), intent(in) :: val + integer :: array_index + + integer :: L + integer :: R + integer :: n_iteration + + L = 1 + R = n + + if (val < array(L) .or. val > array(R)) then + array_index = -1 + return + end if + + n_iteration = 0 + do while (R - L > 1) + ! Find values at midpoint + array_index = L + (R - L)/2 + if (val >= array(array_index)) then + L = array_index + else + R = array_index + end if + + ! check for large number of iterations + n_iteration = n_iteration + 1 + if (n_iteration == MAX_ITERATION) then + array_index = -2 + return + end if + end do + + array_index = L + + end function binary_search_real + + pure function binary_search_int4(array, n, val) result(array_index) + + integer, intent(in) :: n + integer, intent(in) :: array(n) + integer, intent(in) :: val + integer :: array_index + + integer :: L + integer :: R + integer :: n_iteration + + L = 1 + R = n + + if (val < array(L) .or. val > array(R)) then + array_index = -1 + return + end if + + n_iteration = 0 + do while (R - L > 1) + ! Find values at midpoint + array_index = L + (R - L)/2 + if (val >= array(array_index)) then + L = array_index + else + R = array_index + end if + + ! check for large number of iterations + n_iteration = n_iteration + 1 + if (n_iteration == MAX_ITERATION) then + array_index = -2 + return + end if + end do + + array_index = L + + end function binary_search_int4 + + pure function binary_search_int8(array, n, val) result(array_index) + + integer, intent(in) :: n + integer(8), intent(in) :: array(n) + integer(8), intent(in) :: val + integer :: array_index + + integer :: L + integer :: R + integer :: n_iteration + + L = 1 + R = n + + if (val < array(L) .or. val > array(R)) then + array_index = -1 + return + end if + + n_iteration = 0 + do while (R - L > 1) + ! Find values at midpoint + array_index = L + (R - L)/2 + if (val >= array(array_index)) then + L = array_index + else + R = array_index + end if + + ! check for large number of iterations + n_iteration = n_iteration + 1 + if (n_iteration == MAX_ITERATION) then + array_index = -2 + return + end if + end do + + array_index = L + + end function binary_search_int8 + +!=============================================================================== +! SORT sorts an array in place using an insertion sort. +!=============================================================================== + + pure subroutine sort_int(array) + integer, intent(inout) :: array(:) + + integer :: k, m + integer :: temp + + if (size(array) > 1) then + SORT: do k = 2, size(array) + ! Save value to move + m = k + temp = array(k) + + MOVE_OVER: do while (m > 1) + ! Check if insertion value is greater than (m-1)th value + if (temp >= array(m - 1)) exit + + ! Move values over until hitting one that's not larger + array(m) = array(m - 1) + m = m - 1 + end do MOVE_OVER + + ! Put the original value into its new position + array(m) = temp + end do SORT + end if + end subroutine sort_int + + pure subroutine sort_real(array) + real(8), intent(inout) :: array(:) + + integer :: k, m + real(8) :: temp + + if (size(array) > 1) then + SORT: do k = 2, size(array) + ! Save value to move + m = k + temp = array(k) + + MOVE_OVER: do while (m > 1) + ! Check if insertion value is greater than (m-1)th value + if (temp >= array(m - 1)) exit + + ! Move values over until hitting one that's not larger + array(m) = array(m - 1) + m = m - 1 + end do MOVE_OVER + + ! Put the original value into its new position + array(m) = temp + end do SORT + end if + end subroutine sort_real + + pure subroutine sort_vector_int(vec) + type(VectorInt), intent(inout) :: vec + + call sort_int(vec % data(1:vec%size())) + end subroutine sort_vector_int + + pure subroutine sort_vector_real(vec) + type(VectorReal), intent(inout) :: vec + + call sort_real(vec % data(1:vec%size())) + end subroutine sort_vector_real + +!=============================================================================== +! FIND determines the index of the first occurrence of a value in an array. If +! the value does not appear in the array, -1 is returned. +!=============================================================================== + + pure function find_int(array, val) result(index) + integer, intent(in) :: array(:) + integer, intent(in) :: val + integer :: index + + integer :: i + + index = -1 + do i = 1, size(array) + if (array(i) == val) then + index = i + exit + end if + end do + end function find_int + + pure function find_real(array, val) result(index) + real(8), intent(in) :: array(:) + real(8), intent(in) :: val + integer :: index + + integer :: i + + index = -1 + do i = 1, size(array) + if (array(i) == val) then + index = i + exit + end if + end do + end function find_real + + pure function find_vector_int(vec, val) result(index) + type(VectorInt), intent(in) :: vec + integer, intent(in) :: val + integer :: index + + index = find_int(vec % data(1:vec % size()), val) + end function find_vector_int + + pure function find_vector_real(vec, val) result(index) + type(VectorReal), intent(in) :: vec + real(8), intent(in) :: val + integer :: index + + index = find_real(vec % data(1:vec % size()), val) + end function find_vector_real + +end module algorithm diff --git a/src/angle_distribution.F90 b/src/angle_distribution.F90 index a4fea6ff77..5d16f74242 100644 --- a/src/angle_distribution.F90 +++ b/src/angle_distribution.F90 @@ -2,12 +2,12 @@ module angle_distribution use hdf5, only: HID_T, HSIZE_T + use algorithm, only: binary_search use constants, only: ZERO, ONE, HISTOGRAM, LINEAR_LINEAR use distribution_univariate, only: DistributionContainer, Tabular use hdf5_interface, only: read_attribute, get_shape, read_dataset, & open_dataset, close_dataset use random_lcg, only: prn - use search, only: binary_search implicit none private diff --git a/src/cmfd_execute.F90 b/src/cmfd_execute.F90 index b7d0cc3879..d2631254b1 100644 --- a/src/cmfd_execute.F90 +++ b/src/cmfd_execute.F90 @@ -213,13 +213,13 @@ contains subroutine cmfd_reweight(new_weights) + use algorithm, only: binary_search 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 diff --git a/src/cross_section.F90 b/src/cross_section.F90 index a8acb25a83..b67226a1b8 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -1,5 +1,6 @@ module cross_section + use algorithm, only: binary_search use constants use energy_grid, only: grid_method, log_spacing use error, only: fatal_error @@ -14,7 +15,6 @@ module cross_section use particle_header, only: Particle use random_lcg, only: prn, future_prn, prn_set_stream use sab_header, only: SAlphaBeta - use search, only: binary_search implicit none diff --git a/src/eigenvalue.F90 b/src/eigenvalue.F90 index 9befbe3c3d..713bbc351a 100644 --- a/src/eigenvalue.F90 +++ b/src/eigenvalue.F90 @@ -4,6 +4,7 @@ module eigenvalue use message_passing #endif + use algorithm, only: binary_search use constants, only: ZERO use error, only: fatal_error, warning use global @@ -11,7 +12,6 @@ module eigenvalue use mesh, only: count_bank_sites use mesh_header, only: RegularMesh use random_lcg, only: prn, set_particle_seed, advance_prn_seed - use search, only: binary_search use string, only: to_str implicit none diff --git a/src/endf_header.F90 b/src/endf_header.F90 index 8d8aefaa3c..e9e45ab751 100644 --- a/src/endf_header.F90 +++ b/src/endf_header.F90 @@ -2,10 +2,10 @@ module endf_header use hdf5, only: HID_T, HSIZE_T + use algorithm, only: binary_search use constants, only: ZERO, HISTOGRAM, LINEAR_LINEAR, LINEAR_LOG, & LOG_LINEAR, LOG_LOG use hdf5_interface - use search, only: binary_search implicit none diff --git a/src/energy_distribution.F90 b/src/energy_distribution.F90 index c45762bb0a..770da617cc 100644 --- a/src/energy_distribution.F90 +++ b/src/energy_distribution.F90 @@ -2,12 +2,12 @@ module energy_distribution use hdf5 + use algorithm, only: binary_search use constants, only: ZERO, ONE, HALF, TWO, PI, HISTOGRAM, LINEAR_LINEAR use endf_header, only: Tabulated1D use hdf5_interface 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/mesh.F90 b/src/mesh.F90 index cee29aa1ca..4a3def4282 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -1,14 +1,14 @@ module mesh - use constants - use global - use mesh_header - use search, only: binary_search - #ifdef MPI use message_passing #endif + use algorithm, only: binary_search + use constants + use global + use mesh_header + implicit none contains diff --git a/src/physics.F90 b/src/physics.F90 index a9f2263955..00bd2c20c9 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -1,5 +1,6 @@ module physics + use algorithm, only: binary_search use constants use cross_section, only: elastic_xs_0K use endf, only: reaction_name @@ -15,7 +16,6 @@ module physics 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 diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 2066b36b92..d4643a0721 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -1,10 +1,10 @@ module scattdata_header + use algorithm, only: binary_search use constants use error, only: fatal_error use math use random_lcg, only: prn - use search, only: binary_search implicit none diff --git a/src/search.F90 b/src/search.F90 deleted file mode 100644 index f338105f4d..0000000000 --- a/src/search.F90 +++ /dev/null @@ -1,143 +0,0 @@ -module search - - use constants - - implicit none - - integer, parameter :: MAX_ITERATION = 64 - - interface binary_search - module procedure binary_search_real, binary_search_int4, binary_search_int8 - end interface binary_search - -contains - -!=============================================================================== -! BINARY_SEARCH performs a binary search of an array to find where a specific -! value lies in the array. This is used extensively for energy grid searching -!=============================================================================== - - pure function binary_search_real(array, n, val) result(array_index) - - integer, intent(in) :: n - real(8), intent(in) :: array(n) - real(8), intent(in) :: val - integer :: array_index - - integer :: L - integer :: R - integer :: n_iteration - - L = 1 - R = n - - if (val < array(L) .or. val > array(R)) then - array_index = -1 - return - end if - - n_iteration = 0 - do while (R - L > 1) - ! Find values at midpoint - array_index = L + (R - L)/2 - if (val >= array(array_index)) then - L = array_index - else - R = array_index - end if - - ! check for large number of iterations - n_iteration = n_iteration + 1 - if (n_iteration == MAX_ITERATION) then - array_index = -2 - return - end if - end do - - array_index = L - - end function binary_search_real - - pure function binary_search_int4(array, n, val) result(array_index) - - integer, intent(in) :: n - integer, intent(in) :: array(n) - integer, intent(in) :: val - integer :: array_index - - integer :: L - integer :: R - integer :: n_iteration - - L = 1 - R = n - - if (val < array(L) .or. val > array(R)) then - array_index = -1 - return - end if - - n_iteration = 0 - do while (R - L > 1) - ! Find values at midpoint - array_index = L + (R - L)/2 - if (val >= array(array_index)) then - L = array_index - else - R = array_index - end if - - ! check for large number of iterations - n_iteration = n_iteration + 1 - if (n_iteration == MAX_ITERATION) then - array_index = -2 - return - end if - end do - - array_index = L - - end function binary_search_int4 - - pure function binary_search_int8(array, n, val) result(array_index) - - integer, intent(in) :: n - integer(8), intent(in) :: array(n) - integer(8), intent(in) :: val - integer :: array_index - - integer :: L - integer :: R - integer :: n_iteration - - L = 1 - R = n - - if (val < array(L) .or. val > array(R)) then - array_index = -1 - return - end if - - n_iteration = 0 - do while (R - L > 1) - ! Find values at midpoint - array_index = L + (R - L)/2 - if (val >= array(array_index)) then - L = array_index - else - R = array_index - end if - - ! check for large number of iterations - n_iteration = n_iteration + 1 - if (n_iteration == MAX_ITERATION) then - array_index = -2 - return - end if - end do - - array_index = L - - end function binary_search_int8 - -end module search diff --git a/src/secondary_correlated.F90 b/src/secondary_correlated.F90 index e163fdcc24..a0e203f33d 100644 --- a/src/secondary_correlated.F90 +++ b/src/secondary_correlated.F90 @@ -2,13 +2,13 @@ module secondary_correlated use hdf5, only: HID_T, HSIZE_T + use algorithm, only: binary_search use angleenergy_header, only: AngleEnergy use constants, only: ZERO, ONE, HALF, TWO, HISTOGRAM, LINEAR_LINEAR use distribution_univariate, only: DistributionContainer, Tabular use hdf5_interface, only: get_shape, read_attribute, open_dataset, & read_dataset, close_dataset use random_lcg, only: prn - use search, only: binary_search !=============================================================================== ! CORRELATEDANGLEENERGY represents a correlated angle-energy distribution. This diff --git a/src/secondary_kalbach.F90 b/src/secondary_kalbach.F90 index 4b5e690b5d..f963cff3ff 100644 --- a/src/secondary_kalbach.F90 +++ b/src/secondary_kalbach.F90 @@ -2,12 +2,12 @@ module secondary_kalbach use hdf5, only: HID_T, HSIZE_T + use algorithm, only: binary_search use angleenergy_header, only: AngleEnergy use constants, only: ZERO, HALF, ONE, TWO, HISTOGRAM, LINEAR_LINEAR use hdf5_interface, only: read_attribute, read_dataset, open_dataset, & close_dataset, get_shape use random_lcg, only: prn - use search, only: binary_search !=============================================================================== ! KalbachMann represents a correlated angle-energy distribution with the angular diff --git a/src/source.F90 b/src/source.F90 index 452d8ddfce..9aeccde156 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -1,5 +1,11 @@ module source + use hdf5, only: HID_T +#ifdef MPI + use message_passing +#endif + + use algorithm, only: binary_search use bank_header, only: Bank use constants use distribution_univariate, only: Discrete @@ -12,17 +18,10 @@ module source use output, only: write_message use particle_header, only: Particle use random_lcg, only: prn, set_particle_seed, prn_set_stream - use search, only: binary_search use string, only: to_str use math use state_point, only: read_source_bank, write_source_bank -#ifdef MPI - use message_passing -#endif - - use hdf5, only: HID_T - implicit none contains diff --git a/src/tally.F90 b/src/tally.F90 index 3c3dc6a693..3ee4702e2f 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1,5 +1,10 @@ module tally +#ifdef MPI + use message_passing +#endif + + use algorithm, only: binary_search use constants use error, only: fatal_error use geometry_header @@ -11,15 +16,10 @@ module tally use mesh_header, only: RegularMesh use output, only: header use particle_header, only: LocalCoord, Particle - use search, only: binary_search use string, only: to_str use tally_header, only: TallyResult use tally_filter -#ifdef MPI - use message_passing -#endif - implicit none integer :: position(N_FILTER_TYPES - 3) = 0 ! Tally map positioning array diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index 67d0452847..bd568e29ae 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -1,5 +1,6 @@ module tally_filter + use algorithm, only: binary_search use constants, only: ONE, NO_BIN_FOUND, FP_PRECISION use dict_header, only: DictIntInt use geometry_header, only: BASE_UNIVERSE, RectLattice, HexLattice @@ -10,7 +11,6 @@ module tally_filter get_mesh_indices, mesh_indices_to_bin, & mesh_intersects_2d, mesh_intersects_3d use particle_header, only: Particle - use search, only: binary_search use string, only: to_str use tally_filter_header, only: TallyFilter, TallyFilterContainer From f63cad37bf8ff9c41aa30f8b17b92e301639a1b7 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 30 Aug 2016 08:09:03 -0400 Subject: [PATCH 358/417] removed special case for tally surface current --- src/tally.F90 | 109 ++++---------------------------------------------- 1 file changed, 7 insertions(+), 102 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index b9d945778a..d5af4ddc1f 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2320,7 +2320,6 @@ contains integer :: i integer :: i_tally integer :: j ! loop indices - integer :: k ! loop indices integer :: d1 ! dimension index integer :: d2 ! dimension index integer :: d3 ! dimension index @@ -2340,9 +2339,6 @@ contains real(8) :: filt_score ! score applied by filters logical :: start_in_mesh ! particle's starting xyz in mesh? logical :: end_in_mesh ! particle's ending xyz in mesh? - logical :: x_same ! same starting/ending x index (i) - logical :: y_same ! same starting/ending y index (j) - logical :: z_same ! same starting/ending z index (k) type(TallyObject), pointer :: t type(RegularMesh), pointer :: m @@ -2398,96 +2394,6 @@ contains if (matching_bins(i_filter_energy) == NO_BIN_FOUND) cycle end if - ! ======================================================================= - ! SPECIAL CASES WHERE TWO INDICES ARE THE SAME - - ! Loop over the dimensions - do d1 = 1, 3 - - ! Get the other dimensions - d2 = mod(d1, 3) + 1 - d3 = mod(d1 + 1, 3) + 1 - - ! If cell index in dimension d1 and d2 are the same and the cells is - ! within the mesh bounds - if (ijk0(d1) == ijk1(d1) .and. ijk0(d2) == ijk1(d2)) then - - ! Only d3 crossings - if (uvw(d3) > 0) then - - ! Loop over d3 cells - do j = ijk0(d3), ijk1(d3) - 1 - ijk0(d3) = j - - ! Outward current on d3 max surface - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = d3 * 2 - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! Inward current on d3 min surface - if (ijk0(d1) >= 1 .and. ijk0(d1) <= m % dimension(d1) .and. & - ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & - j >= 0 .and. j < m % dimension(d3)) then - ijk0(d3) = j + 1 - matching_bins(i_filter_surf) = d3 * 2 + 5 - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(d3) = j - end if - end do - else - - do j = ijk0(d3), ijk1(d3) + 1, -1 - ijk0(d3) = j - - ! Outward current on d3 min surface - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = d3 * 2 - 1 - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - end if - - ! Inward current on d3 max surface - if (ijk0(d1) >= 1 .and. ijk0(d1) <= m % dimension(d1) .and. & - ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & - j > 1 .and. j <= m % dimension(d3) + 1) then - ijk0(d3) = j - 1 - matching_bins(i_filter_surf) = d3 * 2 + 6 - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, ijk0) - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 -!$omp atomic - t % results(1, filter_index) % value = & - t % results(1, filter_index) % value + p % wgt - ijk0(d3) = j - end if - end do - end if - cycle TALLY_LOOP - end if - end do - - ! ======================================================================= - ! GENERIC CASE - ! Bounding coordinates do d1 = 1, 3 if (uvw(d1) > 0) then @@ -2497,14 +2403,13 @@ contains end if end do - do k = 1, n_cross + do j = 1, n_cross ! Reset scoring bin index matching_bins(i_filter_surf) = 0 ! Calculate distance to each bounding surface. We need to treat ! special case where the cosine of the angle is zero since this would ! result in a divide-by-zero. - do d1 = 1, 3 if (uvw(d1) == 0) then d(d1) = INFINITY @@ -2514,13 +2419,10 @@ contains end do ! Determine the closest bounding surface of the mesh cell by - ! calculating the minimum distance - + ! calculating the minimum distance. Then use the minimum distance and + ! direction of the particle to determine which surface was crossed. distance = minval(d) - ! Now use the minimum distance and direction of the particle to - ! determine which surface was crossed - ! Loop over the dimensions do d1 = 1, 3 @@ -2528,9 +2430,10 @@ contains d2 = mod(d1, 3) + 1 d3 = mod(d1 + 1, 3) + 1 - ! Check distance and dimension d2 and d3 indices + ! Check whether distance is the shortest distance if (distance == d(d1)) then + ! Check whether particle is moving in positive d1 direction if (uvw(d1) > 0) then ! Outward current on d1 max surface @@ -2563,6 +2466,8 @@ contains ijk0(d1) = ijk0(d1) + 1 xyz_cross(d1) = xyz_cross(d1) + m % width(d1) + + ! The particle is moving in the negative d1 direction else ! Outward current on d1 min surface From 0fbe8e72f1dcf09178e5647e93797c2c866f3fa3 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 30 Aug 2016 12:04:34 -0600 Subject: [PATCH 359/417] Bug fix for MGXS Pandas DataFrames with selected nuclides --- openmc/mgxs/mgxs.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index de7475308c..d0bc07987c 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1496,12 +1496,14 @@ class MGXS(object): # If the user requested a specific set of nuclides elif self.by_nuclide and nuclides != 'all': + query_nuclides = nuclides xs_tally = self.xs_tally.get_slice(nuclides=nuclides) df = xs_tally.get_pandas_dataframe( distribcell_paths=distribcell_paths) # If the user requested all nuclides, keep nuclide column in dataframe else: + query_nuclides = self.get_nuclides() df = self.xs_tally.get_pandas_dataframe( distribcell_paths=distribcell_paths) @@ -1513,7 +1515,7 @@ 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) + all_groups = np.repeat(all_groups, len(query_nuclides)) if 'energy low [MeV]' in df and 'energyout low [MeV]' in df: df.rename(columns={'energy low [MeV]': 'group in'}, inplace=True) From b80b0fae835e920e1fc2a7686265cc37cd200cb1 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 30 Aug 2016 14:29:19 -0400 Subject: [PATCH 360/417] Fixed isue with MGXS Pandas DataFrame with total nuclides --- openmc/mgxs/mgxs.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d0bc07987c..dd5c2056c6 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -337,7 +337,7 @@ class MGXS(object): if self.by_nuclide: return self.get_nuclides() else: - return 'sum' + return ['sum'] @property def loaded_sp(self): @@ -1483,7 +1483,7 @@ class MGXS(object): if self.by_nuclide and nuclides == 'sum': # Use tally summation to sum across all nuclides - query_nuclides = self.get_nuclides() + query_nuclides = [nuclides] xs_tally = self.xs_tally.summation(nuclides=query_nuclides) df = xs_tally.get_pandas_dataframe( distribcell_paths=distribcell_paths) @@ -1503,7 +1503,7 @@ class MGXS(object): # If the user requested all nuclides, keep nuclide column in dataframe else: - query_nuclides = self.get_nuclides() + query_nuclides = self.nuclides df = self.xs_tally.get_pandas_dataframe( distribcell_paths=distribcell_paths) From 627057d87717411c94475e53ac097a33a3dddadf Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 30 Aug 2016 16:03:29 -0400 Subject: [PATCH 361/417] Fixed query_nuclides for sum in MGXS Pandas DataFrames --- 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 dd5c2056c6..543caf088a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1484,7 +1484,7 @@ class MGXS(object): # Use tally summation to sum across all nuclides query_nuclides = [nuclides] - xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + xs_tally = self.xs_tally.summation(nuclides=self.get_nuclides()) df = xs_tally.get_pandas_dataframe( distribcell_paths=distribcell_paths) From 96acab8ba1f8e34200a72a66fd768d9bcaed15aa Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 30 Aug 2016 21:40:50 -0400 Subject: [PATCH 362/417] Fixed bug in nuclide summation for MGXS Pandas DataFrame --- 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 543caf088a..1d2e9098d3 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1490,9 +1490,9 @@ class MGXS(object): # Remove nuclide column since it is homogeneous and redundant if self.domain_type == 'mesh': - df.drop('nuclide', axis=1, level=0, inplace=True) + df.drop('sum(nuclide)', axis=1, level=0, inplace=True) else: - df.drop('nuclide', axis=1, inplace=True) + df.drop('sum(nuclide)', axis=1, inplace=True) # If the user requested a specific set of nuclides elif self.by_nuclide and nuclides != 'all': From 368e5cc87a5ad705c992f9b907f262163c960483 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Wed, 31 Aug 2016 07:24:31 -0400 Subject: [PATCH 363/417] fixed issue in mdgxs.get_pandas_dataframe(...) --- openmc/mgxs/mdgxs.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index 5e5d840b6c..7a76a6c9d9 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -343,7 +343,7 @@ class MDGXS(MGXS): # Construct a collection of the nuclides to retrieve from the xs tally if self.by_nuclide: if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: - query_nuclides = self.get_all_nuclides() + query_nuclides = self.get_nuclides() else: query_nuclides = nuclides else: @@ -553,7 +553,7 @@ class MDGXS(MGXS): # Construct a collection of the nuclides to report if self.by_nuclide: if nuclides == 'all': - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() elif nuclides == 'sum': nuclides = ['sum'] else: @@ -751,25 +751,27 @@ class MDGXS(MGXS): if self.by_nuclide and nuclides == 'sum': # Use tally summation to sum across all nuclides - query_nuclides = self.get_all_nuclides() - xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + query_nuclides = [nuclides] + xs_tally = self.xs_tally.summation(nuclides=self.get_nuclides()) df = xs_tally.get_pandas_dataframe( distribcell_paths=distribcell_paths) # Remove nuclide column since it is homogeneous and redundant if self.domain_type == 'mesh': - df.drop('nuclide', axis=1, level=0, inplace=True) + df.drop('sum(nuclide)', axis=1, level=0, inplace=True) else: - df.drop('nuclide', axis=1, inplace=True) + df.drop('sum(nuclide)', axis=1, inplace=True) # If the user requested a specific set of nuclides elif self.by_nuclide and nuclides != 'all': + query_nuclides = nuclides xs_tally = self.xs_tally.get_slice(nuclides=nuclides) df = xs_tally.get_pandas_dataframe( distribcell_paths=distribcell_paths) # If the user requested all nuclides, keep nuclide column in dataframe else: + query_nuclides = nuclides df = self.xs_tally.get_pandas_dataframe( distribcell_paths=distribcell_paths) @@ -781,7 +783,7 @@ class MDGXS(MGXS): # Override energy groups bounds with indices all_groups = np.arange(self.num_groups, 0, -1, dtype=np.int) - all_groups = np.repeat(all_groups, self.num_nuclides) + all_groups = np.repeat(all_groups, len(query_nuclides)) if 'energy low [MeV]' in df and 'energyout low [MeV]' in df: df.rename(columns={'energy low [MeV]': 'group in'}, inplace=True) @@ -1239,7 +1241,7 @@ class ChiDelayed(MDGXS): delayed_nu_fission_out = self.tallies['delayed-nu-fission-out'] # Sum out all nuclides - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() delayed_nu_fission_in = delayed_nu_fission_in.summation\ (nuclides=nuclides) delayed_nu_fission_out = delayed_nu_fission_out.summation\ @@ -1261,7 +1263,7 @@ class ChiDelayed(MDGXS): # Get chi delayed for all nuclides in the domain elif nuclides == 'all': - nuclides = self.get_all_nuclides() + nuclides = self.get_nuclides() xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, nuclides=nuclides, value=value) From a95266ab2208f15d1b1af29d23509dcfd8fb3e39 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 29 Aug 2016 10:16:59 -0500 Subject: [PATCH 364/417] Major refactor to include cross sections at multiple temperatures within the Nuclide and SAlphaData derived types. --- docs/source/io_formats/nuclear_data.rst | 23 +- docs/source/methods/cross_sections.rst | 37 +- docs/source/usersguide/input.rst | 73 ++- examples/python/basic/build-xml.py | 1 - examples/python/boxes/build-xml.py | 1 - .../python/lattice/hexagonal/build-xml.py | 1 - examples/python/lattice/nested/build-xml.py | 1 - examples/python/lattice/simple/build-xml.py | 1 - examples/python/pincell/build-xml.py | 1 - .../python/pincell_multigroup/build-xml.py | 9 +- examples/python/reflective/build-xml.py | 1 - examples/xml/basic/materials.xml | 2 - examples/xml/boxes/materials.xml | 2 - examples/xml/lattice/nested/materials.xml | 2 - examples/xml/lattice/simple/materials.xml | 2 - examples/xml/pincell/materials.xml | 3 - examples/xml/pincell_multigroup/materials.xml | 3 - .../pincell_multigroup/mg_cross_sections.xml | 32 +- examples/xml/reflective/materials.xml | 2 - openmc/data/neutron.py | 9 +- openmc/data/thermal.py | 24 +- openmc/mgxs_library.py | 23 - openmc/nuclide.py | 16 - openmc/settings.py | 122 ++-- openmc/summary.py | 4 +- src/constants.F90 | 12 +- src/cross_section.F90 | 511 +++++++++-------- src/energy_grid.F90 | 176 +----- src/geometry.F90 | 52 +- src/global.F90 | 12 +- src/hdf5_interface.F90 | 62 +++ src/initialize.F90 | 76 +-- src/input_xml.F90 | 291 ++++++---- src/material_header.F90 | 3 - src/mgxs_header.F90 | 12 - src/multipole.F90 | 110 +--- src/nuclide_header.F90 | 524 +++++++++--------- src/output.F90 | 51 -- src/particle_header.F90 | 2 + src/physics.F90 | 454 +++++++-------- src/reaction_header.F90 | 36 +- src/relaxng/materials.rnc | 6 +- src/relaxng/materials.rng | 307 +++++----- src/relaxng/settings.rnc | 6 + src/relaxng/settings.rng | 15 + src/sab_header.F90 | 428 +++++++------- src/summary.F90 | 14 +- src/tally.F90 | 42 +- src/tracking.F90 | 7 +- tests/test_cmfd_feed/materials.xml | 4 +- tests/test_cmfd_nofeed/materials.xml | 4 +- tests/test_complex_cell/materials.xml | 2 - tests/test_confidence_intervals/materials.xml | 2 +- tests/test_density/materials.xml | 2 - .../test_eigenvalue_genperbatch/materials.xml | 2 - .../test_eigenvalue_no_inactive/materials.xml | 2 - tests/test_energy_grid/materials.xml | 2 - tests/test_energy_grid/settings.xml | 2 +- tests/test_energy_laws/materials.xml | 1 - tests/test_entropy/materials.xml | 2 - .../case-1/materials.xml | 2 - .../case-2/materials.xml | 3 - .../case-3/materials.xml | 2 - .../case-4/materials.xml | 2 - tests/test_filter_mesh_2d/materials.xml | 2 - tests/test_filter_mesh_3d/materials.xml | 2 - tests/test_fixed_source/materials.xml | 2 - tests/test_fixed_source/settings.xml | 2 + tests/test_infinite_cell/materials.xml | 2 - tests/test_lattice/materials.xml | 2 - tests/test_lattice_hex/materials.xml | 10 +- tests/test_lattice_mixed/materials.xml | 10 +- tests/test_lattice_multiple/materials.xml | 2 - tests/test_multipole/inputs_true.dat | 2 +- tests/test_multipole/results_true.dat | 2 +- tests/test_multipole/test_multipole.py | 34 +- tests/test_natural_element/materials.xml | 2 - tests/test_output/materials.xml | 2 - tests/test_output/settings.xml | 2 +- tests/test_output/test_output.py | 4 - .../materials.xml | 2 - .../test_particle_restart_fixed/materials.xml | 2 - tests/test_plot/materials.xml | 2 - tests/test_ptables_off/materials.xml | 2 - tests/test_quadric_surfaces/materials.xml | 2 - tests/test_reflective_plane/materials.xml | 2 - .../test_resonance_scattering/inputs_true.dat | 2 +- .../test_resonance_scattering.py | 41 +- tests/test_rotation/materials.xml | 2 - tests/test_salphabeta/materials.xml | 2 - tests/test_score_current/materials.xml | 2 - tests/test_seed/materials.xml | 2 - tests/test_source/inputs_true.dat | 2 +- tests/test_source/test_source.py | 2 +- tests/test_source_file/materials.xml | 2 - tests/test_sourcepoint_batch/materials.xml | 2 - tests/test_sourcepoint_interval/materials.xml | 2 - tests/test_sourcepoint_latest/materials.xml | 2 - tests/test_sourcepoint_restart/materials.xml | 2 - tests/test_statepoint_batch/materials.xml | 2 - tests/test_statepoint_interval/materials.xml | 2 - tests/test_statepoint_restart/materials.xml | 2 - tests/test_statepoint_sourcesep/materials.xml | 2 - tests/test_survival_biasing/materials.xml | 2 - tests/test_tally_assumesep/materials.xml | 2 - tests/test_tally_nuclides/materials.xml | 2 - tests/test_trace/materials.xml | 2 - tests/test_track_output/materials.xml | 2 - tests/test_translation/materials.xml | 2 - .../test_trigger_batch_interval/materials.xml | 2 - .../materials.xml | 2 - tests/test_trigger_no_status/materials.xml | 2 - tests/test_trigger_tallies/materials.xml | 2 - tests/test_uniform_fs/materials.xml | 2 - tests/test_union_energy_grids/geometry.xml | 8 - tests/test_union_energy_grids/materials.xml | 13 - .../test_union_energy_grids/results_true.dat | 2 - tests/test_union_energy_grids/settings.xml | 18 - .../test_union_energy_grids.py | 11 - tests/test_universe/materials.xml | 2 - tests/test_void/materials.xml | 2 - 121 files changed, 1670 insertions(+), 2213 deletions(-) delete mode 100644 tests/test_union_energy_grids/geometry.xml delete mode 100644 tests/test_union_energy_grids/materials.xml delete mode 100644 tests/test_union_energy_grids/results_true.dat delete mode 100644 tests/test_union_energy_grids/settings.xml delete mode 100644 tests/test_union_energy_grids/test_union_energy_grids.py diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index 8d8da8edae..060e96c0c9 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -26,8 +26,9 @@ Incident Neutron Data temperature-dependent data set. For example, the data set corresponding to 300 Kelvin would be located at `300K`. -:Datasets: - **K** (*double*) -- kT values (in MeV) for each Temperature - TTT (in Kelvin) +:Datasets: + - **K** (*double*) -- kT values (in MeV) for each Temperature + TTT (in Kelvin) **//reactions/reaction_/** @@ -44,11 +45,14 @@ temperature-dependent data set. For example, the data set corresponding to temperature-dependent data set. For example, the data set corresponding to 300 Kelvin would be located at `300K`. -:Attributes: - **threshold_idx** (*int*) -- Index on the energy grid that the - reaction threshold corresponds to for temperature TTT (in Kelvin) +:Datasets: + - **xs** (*double[]*) -- Cross section values tabulated against the + nuclide energy grid for temperature TTT (in Kelvin) -:Datasets: - **xs** (*double[]*) -- Cross section values tabulated against the - nuclide energy grid for temperature TTT (in Kelvin) + :Attributes: + - **threshold_idx** (*int*) -- Index on the energy + grid that the reaction threshold corresponds to for + temperature TTT (in Kelvin) **//reactions/reaction_/product_/** @@ -112,7 +116,7 @@ Thermal Neutron Scattering Data **//** :Attributes: - **atomic_weight_ratio** (*double*) -- Mass in units of neutron masses - - **zaids** (*int[]*) -- ZAID identifiers for which the thermal + - **nuclides** (*char[][]*) -- Names of nuclides for which the thermal scattering data applies to - **secondary_mode** (*char[]*) -- Indicates how the inelastic outgoing angle-energy distributions are represented ('equal', @@ -124,8 +128,9 @@ Thermal Neutron Scattering Data temperature-dependent data set. For example, the data set corresponding to 300 Kelvin would be located at `300K`. -:Datasets: - **K** (*double*) -- kT values (in MeV) for each Temperature - TTT (in Kelvin) +:Datasets: + - **K** (*double*) -- kT values (in MeV) for each Temperature + TTT (in Kelvin) **//elastic/K/** diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index 4ed7775367..a4d0f7d248 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -53,12 +53,12 @@ speed up the calculation. Logarithmic Mapping +++++++++++++++++++ -To speed up energy grid searches, OpenMC uses logarithmic mapping technique -[Brown]_ to limit the range of energies that must be searched for each -nuclide. The entire energy range is divided up into equal-lethargy segments, and -the bounding energies of each segment are mapped to bounding indices on each of -the nuclide energy grids. By default, OpenMC uses 8000 equal-lethargy segments -as recommended by Brown. +To speed up energy grid searches, OpenMC uses a `logarithmic mapping technique`_ +to limit the range of energies that must be searched for each nuclide. The +entire energy range is divided up into equal-lethargy segments, and the bounding +energies of each segment are mapped to bounding indices on each of the nuclide +energy grids. By default, OpenMC uses 8000 equal-lethargy segments as +recommended by Brown. Other Methods +++++++++++++ @@ -74,9 +74,9 @@ 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, :math:`p_j`, and residues, :math:`r_j`, in the complex +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, :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: @@ -232,21 +232,10 @@ sections. This allows flexibility for the model to use highly anisotropic scattering information in the water while the fuel can be simulated with linear or even isotropic scattering. -.. only:: html - - .. rubric:: References - -.. [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. Hwang, "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 - +.. _logarithmic mapping technique: + https://laws.lanl.gov/vhosts/mcnp.lanl.gov/pdf_files/la-ur-14-24530.pdf +.. _Hwang: http://www.ans.org/pubs/journals/nse/a_16381 +.. _Josey: 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 diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 57663594d5..41623b6a16 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -281,6 +281,8 @@ based on the recommended value in LA-UR-14-24530_. .. note:: This element is not used in the multi-group :ref:`energy_mode`. +.. _multipole_library: + ```` Element ------------------------------- @@ -290,8 +292,8 @@ 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" - for windowed multipole functionality. + .. note:: The :ref:`temperature_method` must also be set to "multipole" for + windowed multipole functionality. ```` Element --------------------------- @@ -707,6 +709,47 @@ survival biasing, otherwise known as implicit capture or absorption. *Default*: false +.. _temperature_default: + +```` Element +--------------------------------- + +The ```` element specifies a default temperature in Kelvin +that is to be applied to cells in the absence of an explicit cell temperature or +a material default temperature. + + *Default*: 293.6 K + +.. _temperature_method: + +```` Element +-------------------------------- + +The ```` element has an accepted value of "nearest" or +"interpolation". A value of "nearest" indicates that for each cell, the nearest +temperature at which cross sections are given is to be applied, within a given +tolerance (see :ref:`temperature_tolerance`). A value of "interpolation" +indicates that cross sections are to be interpolated between temperatures at +which nuclear data are present. A value of "multipole" indicates that the +windowed multipole method should be used to evaluate temperature-dependent cross +sections in the resolved resonance range (a :ref:`windowed multipole library +` must also be available). + + *Default*: "nearest" + +.. _temperature_tolerance: + +```` Element +----------------------------------- + +The ```` element specifies a tolerance in Kelvin that is +to be applied when the "nearest" temperature method is used. For example, if a +cell temperature is 340 K and the tolerance is 15 K, then the closest +temperature in the range of 325 K to 355 K will be used to evaluate cross +sections. + + *Default*: 10 K + ```` Element --------------------- @@ -1083,7 +1126,9 @@ Each ```` element can have the following attributes or sub-elements: specified for the "distributed temperature" feature. This will give each unique instance of the cell its own temperature. - *Default*: The temperature of the coldest nuclide in the cell's material(s) + *Default*: If a material default temperature is supplied, it is used. In the + absence of a material default temperature, the :ref:`global default + temperature ` is used. :rotation: If the cell is filled with a universe, this element specifies the angles in @@ -1289,11 +1334,12 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: "" :temperature: + An element with no attributes which is used to set the default temperature + of the material in Kelvin. - An element with no attributes which is used to set the temperature of the - material. This element accepts a maximum 6-character string that indicates - the default temperature rounded to the nearest integer in units of Kelvin, - e.g. "294K". + *Default*: If a material default temperature is not given and a cell + temperature is not specified, the :ref:`global default temperature + ` is used. :density: An element with attributes/sub-elements called ``value`` and ``units``. The @@ -1409,19 +1455,6 @@ Each ``material`` element can have the following attributes or sub-elements: .. _IUPAC Isotopic Compositions of the Elements 2009: http://pac.iupac.org/publications/pac/pdf/2011/pdf/8302x0397.pdf -```` Element ------------------------- - -In some circumstances, the temperature may be the same for many or -all materials in a given problem. In this case, rather than specifying the -```` element on every material, a ```` -element can be used to set the default material temperature for any material -without an explicitly provided temperature. This element has no attributes and -accepts a maximum 6-character string that indicates the default temperature -rounded to the nearest integer in units of Kelvin, e.g. "294K". - - *Default*: None - ------------------------------------ Tallies Specification -- tallies.xml ------------------------------------ diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index 802debf8cd..022737fdb0 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -33,7 +33,6 @@ fuel.add_nuclide(u235, 1.) # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([moderator, fuel]) -materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/boxes/build-xml.py b/examples/python/boxes/build-xml.py index 175d3f5113..308019e7dc 100644 --- a/examples/python/boxes/build-xml.py +++ b/examples/python/boxes/build-xml.py @@ -38,7 +38,6 @@ moderator.add_s_alpha_beta('c_H_in_H2O') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([fuel1, fuel2, moderator]) -materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index b131e9dea2..cca072ba72 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -37,7 +37,6 @@ iron.add_nuclide(fe56, 1.) # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([moderator, fuel, iron]) -materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index 59962c2c30..3189641e77 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -32,7 +32,6 @@ moderator.add_s_alpha_beta('c_H_in_H2O') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials((moderator, fuel)) -materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index ad1c465d43..2f1f8e76e3 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -32,7 +32,6 @@ moderator.add_s_alpha_beta('c_H_in_H2O') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([moderator, fuel]) -materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index a11ddb7cdc..fc91ae6931 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -102,7 +102,6 @@ borated_water.add_s_alpha_beta('c_H_in_H2O') # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([uo2, helium, zircaloy, borated_water]) -materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index 6dbfa336bb..2b08e82748 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -19,7 +19,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', groups) uo2_xsdata.order = 0 uo2_xsdata.total = [0.1779492, 0.3298048, 0.4803882, 0.5543674, 0.3118013, 0.3951678, 0.5644058] @@ -41,7 +41,7 @@ uo2_xsdata.nu_fission = [2.005998E-02, 2.027303E-03, 1.570599E-02, uo2_xsdata.chi = [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', groups) h2o_xsdata.order = 0 h2o_xsdata.total = [0.15920605, 0.412969593, 0.59030986, 0.58435, 0.718, 1.2544497, 2.650379] @@ -66,8 +66,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') +h2o_data = openmc.Macroscopic('LWTR') # Instantiate some Materials and register the appropriate Macroscopic objects uo2 = openmc.Material(material_id=1, name='UO2 fuel') @@ -80,7 +80,6 @@ water.add_macroscopic(h2o_data) # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([uo2, water]) -materials_file.default_xs = '300K' materials_file.export_to_xml() diff --git a/examples/python/reflective/build-xml.py b/examples/python/reflective/build-xml.py index 098fa8620e..af86e446ab 100644 --- a/examples/python/reflective/build-xml.py +++ b/examples/python/reflective/build-xml.py @@ -25,7 +25,6 @@ fuel.add_nuclide(u235, 1.) # Instantiate a Materials collection and export to XML materials_file = openmc.Materials([fuel]) -materials_file.default_temperature = '294K' materials_file.export_to_xml() diff --git a/examples/xml/basic/materials.xml b/examples/xml/basic/materials.xml index b7bc2e4e5a..606c676df8 100644 --- a/examples/xml/basic/materials.xml +++ b/examples/xml/basic/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/examples/xml/boxes/materials.xml b/examples/xml/boxes/materials.xml index 417fb83ba5..1d0ab4a1ca 100644 --- a/examples/xml/boxes/materials.xml +++ b/examples/xml/boxes/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/examples/xml/lattice/nested/materials.xml b/examples/xml/lattice/nested/materials.xml index ddd932fcbc..2222721959 100644 --- a/examples/xml/lattice/nested/materials.xml +++ b/examples/xml/lattice/nested/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/examples/xml/lattice/simple/materials.xml b/examples/xml/lattice/simple/materials.xml index ddd932fcbc..2222721959 100644 --- a/examples/xml/lattice/simple/materials.xml +++ b/examples/xml/lattice/simple/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/examples/xml/pincell/materials.xml b/examples/xml/pincell/materials.xml index 020c0e676b..9f9afa3843 100644 --- a/examples/xml/pincell/materials.xml +++ b/examples/xml/pincell/materials.xml @@ -1,9 +1,6 @@ - - 294K - - 300K - diff --git a/examples/xml/pincell_multigroup/mg_cross_sections.xml b/examples/xml/pincell_multigroup/mg_cross_sections.xml index 3c671a1922..af1f0072b4 100644 --- a/examples/xml/pincell_multigroup/mg_cross_sections.xml +++ b/examples/xml/pincell_multigroup/mg_cross_sections.xml @@ -11,8 +11,8 @@ --> - UO2.300K - UO2.300K + UO2 + UO2 2.53E-8 0 true @@ -67,8 +67,8 @@ - MOX1.300K - MOX1.300K + MOX1 + MOX1 2.53E-8 0 true @@ -124,8 +124,8 @@ - MOX2.300K - MOX2.300K + MOX2 + MOX2 2.53E-8 0 true @@ -180,8 +180,8 @@ - MOX3.300K - MOX3.300K + MOX3 + MOX3 2.53E-8 0 true @@ -236,8 +236,8 @@ - FC.300K - FC.300K + FC + FC 2.53E-8 0 true @@ -286,8 +286,8 @@ - GT.300K - GT.300K + GT + GT 2.53E-8 0 false @@ -318,8 +318,8 @@ - LWTR.300K - LWTR.300K + LWTR + LWTR 2.53E-8 0 false @@ -351,8 +351,8 @@ - CR.300K - CR.300K + CR + CR 2.53E-8 0 false diff --git a/examples/xml/reflective/materials.xml b/examples/xml/reflective/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/examples/xml/reflective/materials.xml +++ b/examples/xml/reflective/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index c629dbc2ad..7568a24ba8 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -100,7 +100,7 @@ class IncidentNeutron(EqualityMixin): Parameters ---------- name : str - Name of the table + Name of the nuclide using the GND naming convention atomic_number : int Number of protons in the nucleus mass_number : int @@ -133,7 +133,7 @@ class IncidentNeutron(EqualityMixin): metastable : int Metastable state of the nucleus. A value of zero indicates ground state. name : str - ZAID identifier of the table, e.g. 92235. + Name of the nuclide using the GND naming convention reactions : collections.OrderedDict Contains the cross sections, secondary angle and energy distributions, and other associated data for each reaction. The keys are the MT values @@ -534,11 +534,6 @@ class IncidentNeutron(EqualityMixin): # Assign temperature to the running list kTs = [ace.temperature] - # If mass number hasn't been specified, make an educated guess - zaid, xs = ace.name.split('.') - name, element, Z, mass_number, metastable = \ - _get_metadata(int(zaid), metastable_scheme) - data = cls(name, Z, mass_number, metastable, ace.atomic_weight_ratio, kTs) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 21edab6868..58c5276052 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -8,7 +8,7 @@ import h5py import openmc.checkvalue as cv from openmc.mixin import EqualityMixin -from .data import K_BOLTZMANN +from .data import K_BOLTZMANN, ATOMIC_SYMBOL from .ace import Table, get_table from .angle_energy import AngleEnergy from .function import Tabulated1D @@ -156,7 +156,7 @@ class ThermalScattering(EqualityMixin): Parameters ---------- name : str - ZAID identifier of the table, e.g. lwtr.10t. + Name of the material using GND convention, e.g. c_H_in_H2O atomic_weight_ratio : float Atomic mass ratio of the target nuclide. kTs : Iterable of float @@ -174,7 +174,7 @@ class ThermalScattering(EqualityMixin): Inelastic scattering cross section derived in the incoherent approximation name : str - Name of the table, e.g. lwtr.20t. + Name of the material using GND convention, e.g. c_H_in_H2O temperatures : Iterable of str List of string representations the temperatures of the target nuclide in the data set. The temperatures are strings of the temperature, @@ -182,8 +182,8 @@ class ThermalScattering(EqualityMixin): kTs : Iterable of float List of temperatures of the target nuclide in the data set. The temperatures have units of MeV. - zaids : Iterable of int - ZAID identifiers that the thermal scattering data applies to + nuclides : Iterable of str + Nuclide names that the thermal scattering data applies to """ @@ -200,7 +200,7 @@ class ThermalScattering(EqualityMixin): self.inelastic_mu_out = {} self.inelastic_dist = {} self.secondary_mode = None - self.zaids = [] + self.nuclides = [] def __repr__(self): if hasattr(self, 'name'): @@ -226,7 +226,7 @@ class ThermalScattering(EqualityMixin): # Write basic data g = f.create_group(self.name) g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio - g.attrs['zaids'] = self.zaids + g.attrs['nuclides'] = np.string_(self.nuclides) g.attrs['secondary_mode'] = np.string_(self.secondary_mode) ktg = g.create_group('kTs') for i, temperature in enumerate(self.temperatures): @@ -446,7 +446,7 @@ class ThermalScattering(EqualityMixin): temperatures = [str(int(round(kT / K_BOLTZMANN))) + "K" for kT in kTs] table = cls(name, atomic_weight_ratio, kTs) - table.zaids = group.attrs['zaids'] + table.nuclides = [nuc.decode() for nuc in group.attrs['nuclides']] table.secondary_mode = group.attrs['secondary_mode'].decode() # Read thermal elastic scattering @@ -628,8 +628,10 @@ class ThermalScattering(EqualityMixin): table.elastic_mu_out[temperatures[0]].shape = \ (n_energy, n_mu) - # Get relevant ZAIDs - pairs = np.fromiter(map(lambda p: p[0], ace.pairs), int) - table.zaids = pairs[np.nonzero(pairs)] + # Get relevant nuclides + for zaid, awr in ace.pairs: + if zaid > 0: + Z, A = divmod(zaid, 1000) + table.nuclides.append(ATOMIC_SYMBOL[Z] + str(A)) return table diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index a3a2187b75..37ad6c1be4 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -99,9 +99,6 @@ class XSdata(object): Unique identifier for the xsdata object alias : str Separate unique identifier for the xsdata object - zaid : int - 1000*(atomic number) + mass number. As an example, the zaid of U235 - would be 92235. awr : float Atomic weight ratio of an isotope. That is, the ratio of the mass of the isotope to the mass of a single neutron. @@ -227,7 +224,6 @@ class XSdata(object): self._energy_groups = energy_groups self._representation = representation self._alias = None - self._zaid = None self._awr = None self._kT = None self._fissionable = False @@ -262,10 +258,6 @@ class XSdata(object): def alias(self): return self._alias - @property - def zaid(self): - return self._zaid - @property def awr(self): return self._awr @@ -396,13 +388,6 @@ class XSdata(object): else: self._alias = self._name - @zaid.setter - def zaid(self, zaid): - # Check type and value - check_type('zaid', zaid, Integral) - check_greater_than('zaid', zaid, 0) - self._zaid = zaid - @awr.setter def awr(self, awr): # Check validity of type and that the awr value is > 0 @@ -1013,18 +998,10 @@ class XSdata(object): subelement = ET.SubElement(element, 'kT') subelement.text = str(self._kT) - if self._zaid is not None: - subelement = ET.SubElement(element, 'zaid') - subelement.text = str(self._zaid) - if self._awr is not None: subelement = ET.SubElement(element, 'awr') subelement.text = str(self._awr) - if self._kT is not None: - subelement = ET.SubElement(element, 'kT') - subelement.text = str(self._kT) - if self._fissionable is not None: subelement = ET.SubElement(element, 'fissionable') subelement.text = str(self._fissionable) diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 186292a873..11c59e6879 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -20,9 +20,6 @@ class Nuclide(object): ---------- name : str Name of the nuclide, e.g. U235 - zaid : int - 1000*(atomic number) + mass number. As an example, the zaid of U235 - would be 92235. scattering : 'data' or 'iso-in-lab' or None The type of angular scattering distribution to use @@ -31,7 +28,6 @@ class Nuclide(object): def __init__(self, name=''): # Initialize class attributes self._name = '' - self._zaid = None self._scattering = None # Set the Material class attributes @@ -62,8 +58,6 @@ class Nuclide(object): def __repr__(self): string = 'Nuclide - {0}\n'.format(self._name) - if self.zaid is not None: - string += '{0: <16}{1}{2}\n'.format('\tZAID', '=\t', self.zaid) if self.scattering is not None: string += '{0: <16}{1}{2}\n'.format('\tscattering', '=\t', self.scattering) @@ -73,10 +67,6 @@ class Nuclide(object): def name(self): return self._name - @property - def zaid(self): - return self._zaid - @property def scattering(self): return self._scattering @@ -96,14 +86,8 @@ class Nuclide(object): '"{}" is being renamed as "{}".'.format(name, self._name) warnings.warn(msg) - @zaid.setter - def zaid(self, zaid): - check_type('zaid', zaid, Integral) - self._zaid = zaid - @scattering.setter def scattering(self, scattering): - if not scattering in ['data', 'iso-in-lab']: msg = 'Unable to set scattering for Nuclide to {0} ' \ 'which is not "data" or "iso-in-lab"'.format(scattering) diff --git a/openmc/settings.py b/openmc/settings.py index c1d4adc24c..86aac94712 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -1,4 +1,4 @@ -from collections import Iterable, MutableSequence +from collections import Iterable, MutableSequence, Mapping from numbers import Real, Integral import warnings from xml.etree import ElementTree as ET @@ -78,8 +78,6 @@ class Settings(object): 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'} Set whether the calculation should be continuous-energy or multi-group. max_order : int @@ -103,6 +101,14 @@ class Settings(object): Coordinates of the lower-left point of the Shannon entropy mesh entropy_upper_right : tuple or list Coordinates of the upper-right point of the Shannon entropy mesh + temperature : dict + Defines a default temperature and method for treating intermediate + temperatures at which nuclear data doesn't exist. Accepted keys are + 'default', 'method', and 'tolerance'. The value for 'default' should be + a float representing the default temperature in Kelvin. The value for + 'method' should be 'nearest' or 'interpolation'. If the method is + 'nearest', 'tolerance' indicates a range of temperature within which + cross sections may be used. trigger_active : bool Indicate whether tally triggers are used trigger_max_batches : int @@ -130,9 +136,6 @@ class Settings(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 - use_windowed_multipole : bool - Whether or not windowed multipole can be used to evaluate resolved - resonance cross sections. resonance_scattering : ResonanceScattering or iterable of ResonanceScattering The elastic scattering model to use for resonant isotopes volume_calculations : VolumeCalculation or iterable of VolumeCalculation @@ -160,7 +163,6 @@ class Settings(object): self._confidence_intervals = None self._cross_sections = None self._multipole_library = None - self._energy_grid = None self._ptables = None self._run_cmfd = None self._seed = None @@ -197,6 +199,8 @@ class Settings(object): self._trace = None self._track = None + self._temperature = {} + # Cutoff subelement self._weight = None self._weight_avg = None @@ -216,7 +220,6 @@ class Settings(object): self._settings_file = ET.Element("settings") self._run_mode_subelement = None - self._multipole_active = None self._resonance_scattering = cv.CheckedList( ResonanceScattering, 'resonance scattering models') @@ -271,10 +274,6 @@ class Settings(object): def multipole_library(self): return self._multipole_library - @property - def energy_grid(self): - return self._energy_grid - @property def ptables(self): return self._ptables @@ -363,6 +362,10 @@ class Settings(object): def verbosity(self): return self._verbosity + @property + def temperature(self): + return self._temperature + @property def trace(self): return self._trace @@ -415,10 +418,6 @@ class Settings(object): def dd_count_interactions(self): return self._dd_count_interactions - @property - def use_windowed_multipole(self): - return self._multipole_active - @property def resonance_scattering(self): return self._resonance_scattering @@ -593,12 +592,6 @@ class Settings(object): cv.check_type('cross sections', multipole_library, basestring) self._multipole_library = multipole_library - @energy_grid.setter - def energy_grid(self, energy_grid): - cv.check_value('energy grid', energy_grid, - ['nuclide', 'logarithm', 'material-union']) - self._energy_grid = energy_grid - @ptables.setter def ptables(self, ptables): cv.check_type('probability tables', ptables, bool) @@ -674,6 +667,21 @@ class Settings(object): cv.check_type('no reduction option', no_reduce, bool) self._no_reduce = no_reduce + @temperature.setter + def temperature(self, temperature): + cv.check_type('temperature settings', temperature, Mapping) + for key, value in temperature.items(): + cv.check_value('temperature key', key, + ['default', 'method', 'tolerance']) + if key == 'default': + cv.check_type('default temperature', value, Real) + elif key == 'method': + cv.check_value('temperature method', value, + ['nearest', 'interpolation', 'multipole']) + elif key == 'tolerance': + cv.check_type('temperature tolerance', value, Real) + self._temperature = temperature + @threads.setter def threads(self, threads): cv.check_type('number of threads', threads, Integral) @@ -801,11 +809,6 @@ class Settings(object): self._dd_count_interactions = interactions - @use_windowed_multipole.setter - def use_windowed_multipole(self, active): - cv.check_type('use_windowed_multipole', active, bool) - self._multipole_active = active - @resonance_scattering.setter def resonance_scattering(self, res): if not isinstance(res, MutableSequence): @@ -963,11 +966,6 @@ class Settings(object): element = ET.SubElement(self._settings_file, "multipole_library") element.text = str(self._multipole_library) - def _create_energy_grid_subelement(self): - if self._energy_grid is not None: - element = ET.SubElement(self._settings_file, "energy_grid") - element.text = str(self._energy_grid) - def _create_ptables_subelement(self): if self._ptables is not None: element = ET.SubElement(self._settings_file, "ptables") @@ -1050,6 +1048,13 @@ class Settings(object): element = ET.SubElement(self._settings_file, "no_reduce") element.text = str(self._no_reduce).lower() + def _create_temperature_subelements(self): + if self.temperature: + for key, value in self.temperature.items(): + element = ET.SubElement(self._settings_file, + "temperature_{}".format(key)) + element.text = str(value) + def _create_threads_subelement(self): if self._threads is not None: element = ET.SubElement(self._settings_file, "threads") @@ -1107,20 +1112,10 @@ class Settings(object): subelement = ET.SubElement(element, "count_interactions") subelement.text = str(self._dd_count_interactions).lower() - def _create_use_multipole_subelement(self): - if self._multipole_active is not None: - element = ET.SubElement(self._settings_file, - "use_windowed_multipole") - element.text = str(self._multipole_active) - def _create_resonance_scattering_subelement(self): if len(self.resonance_scattering) > 0: elem = ET.SubElement(self._settings_file, 'resonance_scattering') for r in self.resonance_scattering: - if r.nuclide.name != r.nuclide_0K.name: - raise ValueError("The nuclide and nuclide_0K attributes of " - "a ResonantScattering object must have " - "identical names.") elem.append(r.to_xml_element()) def export_to_xml(self): @@ -1142,7 +1137,6 @@ class Settings(object): self._create_confidence_intervals() self._create_cross_sections_subelement() self._create_multipole_library_subelement() - self._create_energy_grid_subelement() self._create_energy_mode_subelement() self._create_max_order_subelement() self._create_ptables_subelement() @@ -1155,11 +1149,11 @@ class Settings(object): self._create_no_reduce_subelement() self._create_threads_subelement() self._create_verbosity_subelement() + self._create_temperature_subelements() self._create_trace_subelement() self._create_track_subelement() self._create_ufs_subelement() self._create_dd_subelement() - self._create_use_multipole_subelement() self._create_resonance_scattering_subelement() self._create_volume_calcs_subelement() @@ -1175,14 +1169,26 @@ class Settings(object): class ResonanceScattering(object): """Specification of the elastic scattering model for resonant isotopes + Parameters + ---------- + nuclide : openmc.Nuclide + The nuclide affected by this resonance scattering treatment. + method : {'ARES', 'CXS', 'DBRC', 'WCM'} + 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. + Attributes ---------- nuclide : openmc.Nuclide The nuclide affected by this resonance scattering treatment. - 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 + method : {'ARES', 'CXS', 'DBRC', 'WCM'} 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). @@ -1195,21 +1201,20 @@ class ResonanceScattering(object): """ - def __init__(self): - self._nuclide = None - self._nuclide_0K = None - self._method = None + def __init__(self, nuclide, method='CXS', E_min=None, E_max=None): self._E_min = None self._E_max = None + self.nuclide = nuclide + self.method = method + if E_min is not None: + self.E_min = E_min + if E_max is not None: + self.E_max = E_max @property def nuclide(self): return self._nuclide - @property - def nuclide_0K(self): - return self._nuclide_0K - @property def method(self): return self._method @@ -1227,11 +1232,6 @@ class ResonanceScattering(object): cv.check_type('nuclide', nuc, Nuclide) self._nuclide = nuc - @nuclide_0K.setter - def nuclide_0K(self, nuc): - cv.check_type('nuclide_0K', nuc, Nuclide) - self._nuclide_0K = nuc - @method.setter def method(self, m): cv.check_value('method', m, ('ARES', 'CXS', 'DBRC', 'WCM')) diff --git a/openmc/summary.py b/openmc/summary.py index 3e25f2c26a..38c0e335c7 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -83,11 +83,10 @@ class Summary(object): n_nuclides = self._f['nuclides/n_nuclides_total'].value names = self._f['nuclides/names'].value awrs = self._f['nuclides/awrs'].value - zaids = self._f['nuclides/zaids'].value for n in range(n_nuclides): name = names[n].decode() name = name[:name.find('.')] - self.nuclides[name] = (zaids[n], awrs[n]) + self.nuclides[name] = awrs[n] def _read_geometry(self): # Read in and initialize the Materials and Geometry @@ -113,7 +112,6 @@ class Summary(object): material_id = int(key.lstrip('material ')) index = self._f['materials'][key]['index'].value name = self._f['materials'][key]['name'].value.decode() - temperature = self._f['materials'][key]['temperature'].value.decode() density = self._f['materials'][key]['atom_density'].value nuc_densities = self._f['materials'][key]['nuclide_densities'][...] nuclides = self._f['materials'][key]['nuclides'].value diff --git a/src/constants.F90 b/src/constants.F90 index 6d5f2fc107..ff2bd37107 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -268,6 +268,12 @@ module constants JENDL_33 = 7, & JENDL_40 = 8 + ! Temperature treatment method + integer, parameter :: & + TEMPERATURE_NEAREST = 1, & + TEMPERATURE_INTERPOLATION = 2, & + TEMPERATURE_MULTIPOLE = 3 + ! ============================================================================ ! TALLY-RELATED CONSTANTS @@ -401,12 +407,6 @@ module constants integer, parameter :: ERROR_INT = -huge(0) real(8), parameter :: ERROR_REAL = -huge(0.0_8) * 0.917826354_8 - ! Energy grid methods - integer, parameter :: & - GRID_NUCLIDE = 1, & ! unique energy grid for each nuclide - GRID_MAT_UNION = 2, & ! material union grids with pointers - GRID_LOGARITHM = 3 ! lethargy mapping - ! Running modes integer, parameter :: & MODE_FIXEDSOURCE = 1, & ! Fixed source mode diff --git a/src/cross_section.F90 b/src/cross_section.F90 index b67226a1b8..43e8544960 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -2,7 +2,7 @@ module cross_section use algorithm, only: binary_search use constants - use energy_grid, only: grid_method, log_spacing + use energy_grid, only: log_spacing use error, only: fatal_error use global use list_header, only: ListElemInt @@ -37,7 +37,6 @@ contains ! union grid real(8) :: atom_density ! atom density of a nuclide logical :: check_sab ! should we check for S(a,b) table? - type(Material), pointer :: mat ! current material ! Set all material macroscopic cross sections to zero material_xs % total = ZERO @@ -49,89 +48,83 @@ contains ! Exit subroutine if material is void if (p % material == MATERIAL_VOID) return - mat => materials(p % material) - - ! Find energy index on energy grid - if (grid_method == GRID_MAT_UNION) then - i_grid = find_energy_index(mat, p % E) - else if (grid_method == GRID_LOGARITHM) then + associate (mat => materials(p % material)) + ! Find energy index on energy grid i_grid = int(log(p % E/energy_min_neutron)/log_spacing) - end if - ! Determine if this material has S(a,b) tables - check_sab = (mat % n_sab > 0) + ! Determine if this material has S(a,b) tables + check_sab = (mat % n_sab > 0) - ! Initialize position in i_sab_nuclides - j = 1 + ! Initialize position in i_sab_nuclides + j = 1 - ! Add contribution from each nuclide in material - do i = 1, mat % n_nuclides - ! ======================================================================== - ! CHECK FOR S(A,B) TABLE + ! Add contribution from each nuclide in material + do i = 1, mat % n_nuclides + ! ======================================================================== + ! CHECK FOR S(A,B) TABLE - i_sab = 0 + i_sab = 0 - ! Check if this nuclide matches one of the S(a,b) tables specified -- this - ! relies on i_sab_nuclides being in sorted order - if (check_sab) then - if (i == mat % i_sab_nuclides(j)) then - ! Get index in sab_tables - i_sab = mat % i_sab_tables(j) + ! Check if this nuclide matches one of the S(a,b) tables specified -- this + ! relies on i_sab_nuclides being in sorted order + if (check_sab) then + if (i == mat % i_sab_nuclides(j)) then + ! Get index in sab_tables + i_sab = mat % i_sab_tables(j) - ! If particle energy is greater than the highest energy for the S(a,b) - ! table, don't use the S(a,b) table - if (p % E > sab_tables(i_sab) % threshold_inelastic) i_sab = 0 + ! If particle energy is greater than the highest energy for the S(a,b) + ! table, don't use the S(a,b) table + if (p % E > sab_tables(i_sab) % data(1) % threshold_inelastic) i_sab = 0 - ! Increment position in i_sab_nuclides - j = j + 1 + ! Increment position in i_sab_nuclides + j = j + 1 - ! Don't check for S(a,b) tables if there are no more left - if (j > mat % n_sab) check_sab = .false. + ! Don't check for S(a,b) tables if there are no more left + if (j > mat % n_sab) check_sab = .false. + end if end if - end if - ! ======================================================================== - ! CALCULATE MICROSCOPIC CROSS SECTION + ! ======================================================================== + ! CALCULATE MICROSCOPIC CROSS SECTION - ! Determine microscopic cross sections for this nuclide - i_nuclide = mat % nuclide(i) + ! Determine microscopic cross sections for this nuclide + i_nuclide = mat % nuclide(i) - ! Calculate microscopic cross section for this nuclide - if (p % E /= micro_xs(i_nuclide) % last_E & - .or. p % sqrtkT /= micro_xs(i_nuclide) % last_sqrtkT) then - call calculate_nuclide_xs(i_nuclide, i_sab, p % E, p % material, i, & - i_grid, p % sqrtkT) - else if (i_sab /= micro_xs(i_nuclide) % last_index_sab) then - call calculate_nuclide_xs(i_nuclide, i_sab, p % E, p % material, i, & - i_grid, p % sqrtkT) - end if + ! Calculate microscopic cross section for this nuclide + if (p % E /= micro_xs(i_nuclide) % last_E & + .or. p % sqrtkT /= micro_xs(i_nuclide) % last_sqrtkT) then + call calculate_nuclide_xs(i_nuclide, i_sab, p % E, i_grid, p % sqrtkT) + else if (i_sab /= micro_xs(i_nuclide) % last_index_sab) then + call calculate_nuclide_xs(i_nuclide, i_sab, p % E, i_grid, p % sqrtkT) + end if - ! ======================================================================== - ! ADD TO MACROSCOPIC CROSS SECTION + ! ======================================================================== + ! ADD TO MACROSCOPIC CROSS SECTION - ! Copy atom density of nuclide in material - atom_density = mat % atom_density(i) + ! Copy atom density of nuclide in material + atom_density = mat % atom_density(i) - ! Add contributions to material macroscopic total cross section - material_xs % total = material_xs % total + & - atom_density * micro_xs(i_nuclide) % total + ! Add contributions to material macroscopic total cross section + material_xs % total = material_xs % total + & + atom_density * micro_xs(i_nuclide) % total - ! Add contributions to material macroscopic scattering cross section - material_xs % elastic = material_xs % elastic + & - atom_density * micro_xs(i_nuclide) % elastic + ! Add contributions to material macroscopic scattering cross section + material_xs % elastic = material_xs % elastic + & + atom_density * micro_xs(i_nuclide) % elastic - ! Add contributions to material macroscopic absorption cross section - material_xs % absorption = material_xs % absorption + & - atom_density * micro_xs(i_nuclide) % absorption + ! Add contributions to material macroscopic absorption cross section + material_xs % absorption = material_xs % absorption + & + atom_density * micro_xs(i_nuclide) % absorption - ! Add contributions to material macroscopic fission cross section - material_xs % fission = material_xs % fission + & - atom_density * micro_xs(i_nuclide) % fission + ! Add contributions to material macroscopic fission cross section + material_xs % fission = material_xs % fission + & + atom_density * micro_xs(i_nuclide) % fission - ! Add contributions to material macroscopic nu-fission cross section - material_xs % nu_fission = material_xs % nu_fission + & - atom_density * micro_xs(i_nuclide) % nu_fission - end do + ! Add contributions to material macroscopic nu-fission cross section + material_xs % nu_fission = material_xs % nu_fission + & + atom_density * micro_xs(i_nuclide) % nu_fission + end do + end associate end subroutine calculate_xs @@ -140,169 +133,160 @@ contains ! given index in the nuclides array at the energy of the given particle !=============================================================================== - subroutine calculate_nuclide_xs(i_nuclide, i_sab, E, i_mat, i_nuc_mat, & - i_log_union, sqrtkT) + subroutine calculate_nuclide_xs(i_nuclide, i_sab, E, i_log_union, sqrtkT) integer, intent(in) :: i_nuclide ! index into nuclides array integer, intent(in) :: i_sab ! index into sab_tables array real(8), intent(in) :: E ! energy - integer, intent(in) :: i_mat ! index into materials array - integer, intent(in) :: i_nuc_mat ! index into nuclides array for a material integer, intent(in) :: i_log_union ! index into logarithmic mapping array or ! material union energy grid real(8), intent(in) :: sqrtkT ! Square root of kT, material dependent logical :: use_mp ! true if XS can be calculated with windowed multipole + integer :: i_temp ! index for temperature integer :: i_grid ! index on nuclide energy grid integer :: i_low ! lower logarithmic mapping index integer :: i_high ! upper logarithmic mapping index real(8) :: f ! interp factor on nuclide energy grid + real(8) :: kT ! temperature in MeV real(8) :: sigT, sigA, sigF ! Intermediate multipole variables - type(Nuclide), pointer :: nuc - type(Material), pointer :: mat - ! Set pointer to nuclide and material - nuc => nuclides(i_nuclide) - mat => materials(i_mat) - - ! Check to see if there is multipole data present at this energy - use_mp = .false. - if (nuc % mp_present) then - if (E >= nuc % multipole % start_E/1.0e6_8 .and. & - E <= nuc % multipole % end_E/1.0e6_8) then - use_mp = .true. - end if - end if - - ! Evaluate multipole or interpolate - if (use_mp) then - ! Call multipole kernel - call multipole_eval(nuc % multipole, E, sqrtkT, sigT, sigA, sigF) - - micro_xs(i_nuclide) % total = sigT - micro_xs(i_nuclide) % absorption = sigA - micro_xs(i_nuclide) % elastic = sigT - sigA - - if (nuc % fissionable) then - micro_xs(i_nuclide) % fission = sigF - micro_xs(i_nuclide) % nu_fission = sigF * nuc % nu(E, EMISSION_TOTAL) + associate (nuc => nuclides(i_nuclide)) + ! Check to see if there is multipole data present at this energy + use_mp = .false. + if (nuc % mp_present) then + if (E >= nuc % multipole % start_E/1.0e6_8 .and. & + E <= nuc % multipole % end_E/1.0e6_8) then + use_mp = .true. + else + ! If using multipole data but outside the RRR, just pick the first + ! temperature + i_temp = 1 + end if else - micro_xs(i_nuclide) % fission = ZERO - micro_xs(i_nuclide) % nu_fission = ZERO + ! If not using multipole data, do a linear search on temperature + kT = sqrtkT**2 + do i_temp = 1, size(nuclides(i_nuclide) % kTs) + if (abs(nuclides(i_nuclide) % kTs(i_temp) - kT) < & + K_BOLTZMANN*temperature_tolerance) exit + end do end if - ! Ensure these values are set - ! Note, the only time either is used is in one of 4 places: - ! 1. physics.F90 - scatter - For inelastic scatter. - ! 2. physics.F90 - sample_fission - For partial fissions. - ! 3. tally.F90 - score_general - For tallying on MTxxx reactions. - ! 4. cross_section.F90 - calculate_urr_xs - For unresolved purposes. - ! It is worth noting that none of these occur in the resolved - ! resonance range, so the value here does not matter. - micro_xs(i_nuclide) % index_grid = 0 - micro_xs(i_nuclide) % interp_factor = ZERO - else - ! Determine index on nuclide energy grid - select case (grid_method) - case (GRID_MAT_UNION) + ! Evaluate multipole or interpolate + if (use_mp) then + ! Call multipole kernel + call multipole_eval(nuc % multipole, E, sqrtkT, sigT, sigA, sigF) - i_grid = mat % nuclide_grid_index(i_nuc_mat, i_log_union) + micro_xs(i_nuclide) % total = sigT + micro_xs(i_nuclide) % absorption = sigA + micro_xs(i_nuclide) % elastic = sigT - sigA - case (GRID_LOGARITHM) - ! Determine the energy grid index using a logarithmic mapping to reduce - ! the energy range over which a binary search needs to be performed - - if (E < nuc % energy(1)) then - i_grid = 1 - elseif (E > nuc % energy(nuc % n_grid)) then - i_grid = nuc % n_grid - 1 + if (nuc % fissionable) then + micro_xs(i_nuclide) % fission = sigF + micro_xs(i_nuclide) % nu_fission = sigF * nuc % nu(E, EMISSION_TOTAL) else - ! Determine bounding indices based on which equal log-spaced interval - ! the energy is in - i_low = nuc % grid_index(i_log_union) - i_high = nuc % grid_index(i_log_union + 1) + 1 - - ! Perform binary search over reduced range - i_grid = binary_search(nuc % energy(i_low:i_high), & - i_high - i_low + 1, E) + i_low - 1 + micro_xs(i_nuclide) % fission = ZERO + micro_xs(i_nuclide) % nu_fission = ZERO end if - case (GRID_NUCLIDE) - ! Perform binary search on the nuclide energy grid in order to determine - ! which points to interpolate between + ! Ensure these values are set + ! Note, the only time either is used is in one of 4 places: + ! 1. physics.F90 - scatter - For inelastic scatter. + ! 2. physics.F90 - sample_fission - For partial fissions. + ! 3. tally.F90 - score_general - For tallying on MTxxx reactions. + ! 4. cross_section.F90 - calculate_urr_xs - For unresolved purposes. + ! It is worth noting that none of these occur in the resolved + ! resonance range, so the value here does not matter. + micro_xs(i_nuclide) % index_temp = i_temp + micro_xs(i_nuclide) % index_grid = 0 + micro_xs(i_nuclide) % interp_factor = ZERO + else + associate (grid => nuc % grid(i_temp), xs => nuc % sum_xs(i_temp)) + ! Determine the energy grid index using a logarithmic mapping to reduce + ! the energy range over which a binary search needs to be performed - if (E <= nuc % energy(1)) then - i_grid = 1 - elseif (E > nuc % energy(nuc % n_grid)) then - i_grid = nuc % n_grid - 1 - else - i_grid = binary_search(nuc % energy, nuc % n_grid, E) + if (E < grid % energy(1)) then + i_grid = 1 + elseif (E > grid % energy(size(grid % energy))) then + i_grid = size(grid % energy) - 1 + else + ! Determine bounding indices based on which equal log-spaced interval + ! the energy is in + i_low = grid % grid_index(i_log_union) + i_high = grid % grid_index(i_log_union + 1) + 1 + + ! Perform binary search over reduced range + i_grid = binary_search(grid % energy(i_low:i_high), & + i_high - i_low + 1, E) + i_low - 1 + end if + + ! check for rare case where two energy points are the same + if (grid % energy(i_grid) == grid % energy(i_grid + 1)) & + i_grid = i_grid + 1 + + ! calculate interpolation factor + f = (E - grid % energy(i_grid)) / & + (grid % energy(i_grid + 1) - grid % energy(i_grid)) + + micro_xs(i_nuclide) % index_temp = i_temp + micro_xs(i_nuclide) % index_grid = i_grid + micro_xs(i_nuclide) % interp_factor = f + + ! Initialize nuclide cross-sections to zero + micro_xs(i_nuclide) % fission = ZERO + micro_xs(i_nuclide) % nu_fission = ZERO + + ! Calculate microscopic nuclide total cross section + micro_xs(i_nuclide) % total = (ONE - f) * xs % total(i_grid) & + + f * xs % total(i_grid + 1) + + ! Calculate microscopic nuclide elastic cross section + micro_xs(i_nuclide) % elastic = (ONE - f) * xs % elastic(i_grid) & + + f * xs % elastic(i_grid + 1) + + ! Calculate microscopic nuclide absorption cross section + micro_xs(i_nuclide) % absorption = (ONE - f) * xs % absorption( & + i_grid) + f * xs % absorption(i_grid + 1) + + if (nuc % fissionable) then + ! Calculate microscopic nuclide total cross section + micro_xs(i_nuclide) % fission = (ONE - f) * xs % fission(i_grid) & + + f * xs % fission(i_grid + 1) + + ! Calculate microscopic nuclide nu-fission cross section + micro_xs(i_nuclide) % nu_fission = (ONE - f) * xs % nu_fission( & + i_grid) + f * xs % nu_fission(i_grid + 1) + end if + end associate + end if + + ! Initialize sab treatment to false + micro_xs(i_nuclide) % index_sab = NONE + micro_xs(i_nuclide) % elastic_sab = ZERO + + ! Initialize URR probability table treatment to false + micro_xs(i_nuclide) % use_ptable = .false. + + ! If there is S(a,b) data for this nuclide, we need to do a few + ! things. Since the total cross section was based on non-S(a,b) data, we + ! need to correct it by subtracting the non-S(a,b) elastic cross section and + ! then add back in the calculated S(a,b) elastic+inelastic cross section. + + if (i_sab > 0) call calculate_sab_xs(i_nuclide, i_sab, E, sqrtkT) + + ! if the particle is in the unresolved resonance range and there are + ! probability tables, we need to determine cross sections from the table + + if (urr_ptables_on .and. nuc % urr_present .and. .not. use_mp) then + if (E > nuc % urr_data(i_temp) % energy(1) .and. E < nuc % & + urr_data(i_temp) % energy(nuc % urr_data(i_temp) % n_energy)) then + call calculate_urr_xs(i_nuclide, i_temp, E) end if - - end select - - ! check for rare case where two energy points are the same - if (nuc % energy(i_grid) == nuc % energy(i_grid+1)) i_grid = i_grid + 1 - - ! calculate interpolation factor - f = (E - nuc%energy(i_grid))/(nuc%energy(i_grid+1) - nuc%energy(i_grid)) - - micro_xs(i_nuclide) % index_grid = i_grid - micro_xs(i_nuclide) % interp_factor = f - - ! Initialize nuclide cross-sections to zero - micro_xs(i_nuclide) % fission = ZERO - micro_xs(i_nuclide) % nu_fission = ZERO - - ! Calculate microscopic nuclide total cross section - micro_xs(i_nuclide) % total = (ONE - f) * nuc % total(i_grid) & - + f * nuc % total(i_grid+1) - - ! Calculate microscopic nuclide elastic cross section - micro_xs(i_nuclide) % elastic = (ONE - f) * nuc % elastic(i_grid) & - + f * nuc % elastic(i_grid+1) - - ! Calculate microscopic nuclide absorption cross section - micro_xs(i_nuclide) % absorption = (ONE - f) * nuc % absorption( & - i_grid) + f * nuc % absorption(i_grid+1) - - if (nuc % fissionable) then - ! Calculate microscopic nuclide total cross section - micro_xs(i_nuclide) % fission = (ONE - f) * nuc % fission(i_grid) & - + f * nuc % fission(i_grid+1) - - ! Calculate microscopic nuclide nu-fission cross section - micro_xs(i_nuclide) % nu_fission = (ONE - f) * nuc % nu_fission( & - i_grid) + f * nuc % nu_fission(i_grid+1) end if - end if - ! Initialize sab treatment to false - micro_xs(i_nuclide) % index_sab = NONE - micro_xs(i_nuclide) % elastic_sab = ZERO - - ! Initialize URR probability table treatment to false - micro_xs(i_nuclide) % use_ptable = .false. - - ! If there is S(a,b) data for this nuclide, we need to do a few - ! things. Since the total cross section was based on non-S(a,b) data, we - ! need to correct it by subtracting the non-S(a,b) elastic cross section and - ! then add back in the calculated S(a,b) elastic+inelastic cross section. - - if (i_sab > 0) call calculate_sab_xs(i_nuclide, i_sab, E) - - ! if the particle is in the unresolved resonance range and there are - ! probability tables, we need to determine cross sections from the table - - if (urr_ptables_on .and. nuc % urr_present) then - if (E > nuc % urr_data % energy(1) .and. & - E < nuc % urr_data % energy(nuc % urr_data % n_energy)) then - call calculate_urr_xs(i_nuclide, E) - end if - end if - - micro_xs(i_nuclide) % last_E = E - micro_xs(i_nuclide) % last_index_sab = i_sab - micro_xs(i_nuclide) % last_sqrtkT = sqrtkT + micro_xs(i_nuclide) % last_E = E + micro_xs(i_nuclide) % last_index_sab = i_sab + micro_xs(i_nuclide) % last_sqrtkT = sqrtkT + end associate end subroutine calculate_nuclide_xs @@ -312,75 +296,85 @@ contains ! whatever data were taken from the normal Nuclide table. !=============================================================================== - subroutine calculate_sab_xs(i_nuclide, i_sab, E) + subroutine calculate_sab_xs(i_nuclide, i_sab, E, sqrtkT) integer, intent(in) :: i_nuclide ! index into nuclides array integer, intent(in) :: i_sab ! index into sab_tables array real(8), intent(in) :: E ! energy + real(8), intent(in) :: sqrtkT ! temperature integer :: i_grid ! index on S(a,b) energy grid + integer :: i_temp ! temperature index real(8) :: f ! interp factor on S(a,b) energy grid real(8) :: inelastic ! S(a,b) inelastic cross section real(8) :: elastic ! S(a,b) elastic cross section - type(SAlphaBeta), pointer :: sab + real(8) :: kT ! Set flag that S(a,b) treatment should be used for scattering micro_xs(i_nuclide) % index_sab = i_sab + ! Determine temperature for S(a,b) table + kT = sqrtkT**2 + do i_temp = 1, size(sab_tables(i_sab) % kTs) + if (abs(sab_tables(i_sab) % kTs(i_temp) - kT) < & + K_BOLTZMANN*temperature_tolerance) exit + end do + ! Get pointer to S(a,b) table - sab => sab_tables(i_sab) + associate (sab => sab_tables(i_sab) % data(i_temp)) - ! Get index and interpolation factor for inelastic grid - if (E < sab % inelastic_e_in(1)) then - i_grid = 1 - f = ZERO - else - i_grid = binary_search(sab % inelastic_e_in, sab % n_inelastic_e_in, E) - f = (E - sab%inelastic_e_in(i_grid)) / & - (sab%inelastic_e_in(i_grid+1) - sab%inelastic_e_in(i_grid)) - end if + ! Get index and interpolation factor for inelastic grid + if (E < sab % inelastic_e_in(1)) then + i_grid = 1 + f = ZERO + else + i_grid = binary_search(sab % inelastic_e_in, sab % n_inelastic_e_in, E) + f = (E - sab%inelastic_e_in(i_grid)) / & + (sab%inelastic_e_in(i_grid+1) - sab%inelastic_e_in(i_grid)) + end if - ! Calculate S(a,b) inelastic scattering cross section - inelastic = (ONE - f) * sab % inelastic_sigma(i_grid) + & - f * sab % inelastic_sigma(i_grid + 1) + ! Calculate S(a,b) inelastic scattering cross section + inelastic = (ONE - f) * sab % inelastic_sigma(i_grid) + & + f * sab % inelastic_sigma(i_grid + 1) - ! Check for elastic data - if (E < sab % threshold_elastic) then - ! Determine whether elastic scattering is given in the coherent or - ! incoherent approximation. For coherent, the cross section is - ! represented as P/E whereas for incoherent, it is simply P + ! Check for elastic data + if (E < sab % threshold_elastic) then + ! Determine whether elastic scattering is given in the coherent or + ! incoherent approximation. For coherent, the cross section is + ! represented as P/E whereas for incoherent, it is simply P - if (sab % elastic_mode == SAB_ELASTIC_EXACT) then - if (E < sab % elastic_e_in(1)) then - ! If energy is below that of the lowest Bragg peak, the elastic - ! cross section will be zero - elastic = ZERO + if (sab % elastic_mode == SAB_ELASTIC_EXACT) then + if (E < sab % elastic_e_in(1)) then + ! If energy is below that of the lowest Bragg peak, the elastic + ! cross section will be zero + elastic = ZERO + else + i_grid = binary_search(sab % elastic_e_in, & + sab % n_elastic_e_in, E) + elastic = sab % elastic_P(i_grid) / E + end if else - i_grid = binary_search(sab % elastic_e_in, & - sab % n_elastic_e_in, E) - elastic = sab % elastic_P(i_grid) / E + ! Determine index on elastic energy grid + if (E < sab % elastic_e_in(1)) then + i_grid = 1 + else + i_grid = binary_search(sab % elastic_e_in, & + sab % n_elastic_e_in, E) + end if + + ! Get interpolation factor for elastic grid + f = (E - sab%elastic_e_in(i_grid))/(sab%elastic_e_in(i_grid+1) - & + sab%elastic_e_in(i_grid)) + + ! Calculate S(a,b) elastic scattering cross section + elastic = (ONE - f) * sab % elastic_P(i_grid) + & + f * sab % elastic_P(i_grid + 1) end if else - ! Determine index on elastic energy grid - if (E < sab % elastic_e_in(1)) then - i_grid = 1 - else - i_grid = binary_search(sab % elastic_e_in, & - sab % n_elastic_e_in, E) - end if - - ! Get interpolation factor for elastic grid - f = (E - sab%elastic_e_in(i_grid))/(sab%elastic_e_in(i_grid+1) - & - sab%elastic_e_in(i_grid)) - - ! Calculate S(a,b) elastic scattering cross section - elastic = (ONE - f) * sab % elastic_P(i_grid) + & - f * sab % elastic_P(i_grid + 1) + ! No elastic data + elastic = ZERO end if - else - ! No elastic data - elastic = ZERO - end if + end associate ! Correct total and elastic cross sections micro_xs(i_nuclide) % total = micro_xs(i_nuclide) % total - & @@ -390,6 +384,9 @@ contains ! Store S(a,b) elastic cross section for sampling later micro_xs(i_nuclide) % elastic_sab = elastic + ! Save temperature index + micro_xs(i_nuclide) % index_temp_sab = i_temp + end subroutine calculate_sab_xs !=============================================================================== @@ -397,9 +394,9 @@ contains ! from probability tables !=============================================================================== - subroutine calculate_urr_xs(i_nuclide, E) - + subroutine calculate_urr_xs(i_nuclide, i_temp, E) integer, intent(in) :: i_nuclide ! index into nuclides array + integer, intent(in) :: i_temp ! temperature index real(8), intent(in) :: E ! energy integer :: i_energy ! index for energy @@ -414,7 +411,7 @@ contains micro_xs(i_nuclide) % use_ptable = .true. - associate (nuc => nuclides(i_nuclide), urr => nuclides(i_nuclide) % urr_data) + associate (nuc => nuclides(i_nuclide), urr => nuclides(i_nuclide) % urr_data(i_temp)) ! determine energy table i_energy = 1 do @@ -433,7 +430,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 = future_prn(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) + r = future_prn(int(i_nuclide, 8)) call prn_set_stream(STREAM_TRACKING) i_low = 1 @@ -497,10 +494,10 @@ contains 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) + associate (xs => nuc % reactions(nuc % urr_inelastic) % xs(i_temp)) + if (i_energy >= xs % threshold) then + inelastic = (ONE - f) * xs % value(i_energy - xs % threshold + 1) + & + f * xs % value(i_energy - xs % threshold + 2) end if end associate end if diff --git a/src/energy_grid.F90 b/src/energy_grid.F90 index 66419f83cc..47408943e3 100644 --- a/src/energy_grid.F90 +++ b/src/energy_grid.F90 @@ -13,64 +13,18 @@ module energy_grid contains -!=============================================================================== -! UNIONIZED_GRID creates a unionized energy grid, for the entire problem or for -! each material, composed of the grids from each nuclide in the entire problem, -! or each material, respectively. Right now, the grid for each nuclide is added -! into a linked list one at a time with an effective insertion sort. Could be -! done with a hash for all energy points and then a quicksort at the end (what -! hash function to use?) -!=============================================================================== - - subroutine unionized_grid() - - integer :: i ! index in nuclides array - integer :: j ! index in materials array - type(ListReal) :: list - type(Nuclide), pointer :: nuc - type(Material), pointer :: mat - - call write_message("Creating unionized energy grid...", 5) - - ! add grid points for each nuclide in the material - do j = 1, n_materials - mat => materials(j) - do i = 1, mat % n_nuclides - nuc => nuclides(mat % nuclide(i)) - call add_grid_points(list, nuc % energy) - end do - - ! set size of unionized material energy grid - mat % n_grid = list % size() - - ! create allocated array from linked list - allocate(mat % e_grid(mat % n_grid)) - do i = 1, mat % n_grid - mat % e_grid(i) = list % get_item(i) - end do - - ! delete linked list and dictionary - call list % clear() - end do - - ! Set pointers to unionized energy grid for each nuclide - call grid_pointers() - - end subroutine unionized_grid - !=============================================================================== ! LOGARITHMIC_GRID determines a logarithmic mapping for energies to bounding ! indices on a nuclide energy grid !=============================================================================== subroutine logarithmic_grid() - integer :: i, j, k ! Loop indices + integer :: t ! temperature index integer :: M ! Number of equally log-spaced bins 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 ! Set minimum/maximum energies E_max = energy_max_neutron @@ -85,123 +39,29 @@ contains umesh(:) = [(i*log_spacing, i=0, M)] do i = 1, n_nuclides_total - ! Allocate logarithmic mapping for nuclide - nuc => nuclides(i) - allocate(nuc % grid_index(0:M)) + associate (nuc => nuclides(i)) + do t = 1, size(nuc % grid) + ! Allocate logarithmic mapping for nuclide + allocate(nuc % grid(t) % grid_index(0:M)) - ! Determine corresponding indices in nuclide grid to energies on - ! equal-logarithmic grid - j = 1 - do k = 0, M - do while (log(nuc%energy(j + 1)/E_min) <= umesh(k)) - ! Ensure that for isotopes where maxval(nuc % energy) << E_max - ! that there are no out-of-bounds issues. - if (j + 1 == nuc % n_grid) then - exit - end if - j = j + 1 + ! Determine corresponding indices in nuclide grid to energies on + ! equal-logarithmic grid + j = 1 + do k = 0, M + do while (log(nuc % grid(t) % energy(j + 1)/E_min) <= umesh(k)) + ! Ensure that for isotopes where maxval(nuc % energy) << E_max + ! that there are no out-of-bounds issues. + if (j + 1 == size(nuc % grid(t) % energy)) exit + j = j + 1 + end do + nuc % grid(t) % grid_index(k) = j + end do end do - nuc % grid_index(k) = j - end do + end associate end do deallocate(umesh) end subroutine logarithmic_grid -!=============================================================================== -! ADD_GRID_POINTS adds energy points from the 'energy' array into a linked list -! of points already stored from previous arrays. -!=============================================================================== - - subroutine add_grid_points(list, energy) - - type(ListReal) :: list - real(8), intent(in) :: energy(:) - - integer :: i ! index in energy array - integer :: n ! size of energy array - integer :: current ! current index - real(8) :: E ! actual energy value - - i = 1 - n = size(energy) - - ! Set current index to beginning of the list - current = 1 - - do while (i <= n) - E = energy(i) - - ! If we've reached the end of the grid energy list, add the remaining - ! energy points to the end - if (current > list % size()) then - ! Finish remaining energies - do while (i <= n) - call list % append(energy(i)) - i = i + 1 - end do - exit - end if - - if (E < list % get_item(current)) then - - ! Insert new energy in this position - call list % insert(current, E) - - ! Advance index in linked list and in new energy grid - i = i + 1 - current = current + 1 - - elseif (E == list % get_item(current)) then - ! Found the exact same energy, no need to store duplicates so just - ! skip and move to next index - i = i + 1 - current = current + 1 - else - current = current + 1 - end if - - end do - - end subroutine add_grid_points - -!=============================================================================== -! GRID_POINTERS creates an array of pointers (ints) for each nuclide to link -! each point on the nuclide energy grid to one on a unionized energy grid -!=============================================================================== - - subroutine grid_pointers() - - integer :: i ! loop index for nuclides - integer :: j ! loop index for nuclide energy grid - integer :: k ! loop index for materials - 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(Material), pointer :: mat - - do k = 1, n_materials - mat => materials(k) - allocate(mat % nuclide_grid_index(mat % n_nuclides, mat % n_grid)) - do i = 1, mat % n_nuclides - nuc => nuclides(mat % nuclide(i)) - - index_e = 1 - energy = nuc % energy(index_e) - - do j = 1, mat % n_grid - union_energy = mat % e_grid(j) - if (union_energy >= energy .and. index_e < nuc % n_grid) then - index_e = index_e + 1 - energy = nuc % energy(index_e) - end if - mat % nuclide_grid_index(i,j) = index_e - 1 - end do - end do - end do - - end subroutine grid_pointers - end module energy_grid diff --git a/src/geometry.F90 b/src/geometry.F90 index 6d4ca77671..d41ca14475 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -248,14 +248,15 @@ contains ! ====================================================================== ! AT LOWEST UNIVERSE, TERMINATE SEARCH - ! Set the particle material + ! Save previous material and temperature p % last_material = p % material - if (size(c % material) == 1) then - ! Only one material for this cell; assign that one to the particle. - p % material = c % material(1) - else - ! Distributed instances of this cell have different materials. - ! Determine which instance this is and assign the matching material. + p % last_sqrtkT = p % sqrtkT + + ! Get distributed offset + if (size(c % material) > 1 .or. size(c % sqrtkT) > 1) then + ! Distributed instances of this cell have different + ! materials/temperatures. Determine which instance this is for + ! assigning the matching material/temperature. distribcell_index = c % distribcell_index offset = 0 do k = 1, p % n_coord @@ -276,37 +277,20 @@ contains end if end if end do - p % material = c % material(offset + 1) end if - ! Set the particle temperature - if (size(c % sqrtkT) == 1) then - ! Only one temperature for this cell; assign that one to the particle. - p % sqrtkT = c % sqrtkT(1) + ! Save the material + if (size(c % material) > 1) then + p % material = c % material(offset + 1) else - ! Distributed instances of this cell have different temperatures. - ! Determine which instance this is and assign the matching temp. - distribcell_index = c % distribcell_index - offset = 0 - do k = 1, p % n_coord - if (cells(p % coord(k) % cell) % type == CELL_FILL) then - offset = offset + cells(p % coord(k) % cell) % & - offset(distribcell_index) - elseif (cells(p % coord(k) % cell) % type == CELL_LATTICE) then - if (lattices(p % coord(k + 1) % lattice) % obj & - % are_valid_indices([& - p % coord(k + 1) % lattice_x, & - p % coord(k + 1) % lattice_y, & - p % coord(k + 1) % lattice_z])) then - offset = offset + lattices(p % coord(k + 1) % lattice) % obj % & - offset(distribcell_index, & - p % coord(k + 1) % lattice_x, & - p % coord(k + 1) % lattice_y, & - p % coord(k + 1) % lattice_z) - end if - end if - end do + p % material = c % material(1) + end if + + ! Save the temperature + if (size(c % sqrtkT) > 1) then p % sqrtkT = c % sqrtkT(offset + 1) + else + p % sqrtkT = c % sqrtkT(1) end if elseif (c % type == CELL_FILL) then CELL_TYPE diff --git a/src/global.F90 b/src/global.F90 index 0fc1bc0c52..bea5f61a83 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -99,13 +99,10 @@ module global ! What to assume for expanding natural elements integer :: default_expand = ENDF_BVII1 - ! Whether or not windowed multipole cross sections should be used. - logical :: multipole_active = .false. - - ! Total amount of nuclide ZAID and dictionary of nuclide ZAID and index -- - ! this is used when sampling unresolved resonance probability tables - integer(8) :: n_nuc_zaid_total - type(DictIntInt) :: nuc_zaid_dict + ! Default temperature and method for choosing temperatures + integer :: temperature_method = TEMPERATURE_NEAREST + real(8) :: temperature_tolerance = 10.0_8 + real(8) :: temperature_default = 293.6_8 ! ============================================================================ ! MULTI-GROUP CROSS SECTION RELATED VARIABLES @@ -430,7 +427,6 @@ module global ! Various output options logical :: output_summary = .true. - logical :: output_xs = .false. logical :: output_tallies = .true. ! ============================================================================ diff --git a/src/hdf5_interface.F90 b/src/hdf5_interface.F90 index 36195d1190..415ec55c9e 100644 --- a/src/hdf5_interface.F90 +++ b/src/hdf5_interface.F90 @@ -73,6 +73,7 @@ module hdf5_interface module procedure read_attribute_integer_1D module procedure read_attribute_integer_2D module procedure read_attribute_string + module procedure read_attribute_string_1D end interface read_attribute interface write_attribute @@ -2425,6 +2426,67 @@ contains call h5tclose_f(memtype, hdf5_err) end subroutine read_attribute_string + subroutine read_attribute_string_1D(buffer, obj_id, name) + character(*), target, allocatable, intent(inout) :: buffer(:) + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name + + integer :: hdf5_err + integer(HID_T) :: space_id + integer(HID_T) :: attr_id + integer(HSIZE_T) :: dims(1) + integer(HSIZE_T) :: maxdims(1) + + call h5aopen_f(obj_id, trim(name), attr_id, hdf5_err) + + if (allocated(buffer)) then + dims(:) = shape(buffer) + else + call h5aget_space_f(attr_id, space_id, hdf5_err) + call h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdf5_err) + allocate(buffer(dims(1))) + call h5sclose_f(space_id, hdf5_err) + end if + + call read_attribute_string_1D_explicit(attr_id, dims, buffer) + call h5aclose_f(attr_id, hdf5_err) + end subroutine read_attribute_string_1D + + subroutine read_attribute_string_1D_explicit(attr_id, dims, buffer) + integer(HID_T), intent(in) :: attr_id + integer(HSIZE_T), intent(in) :: dims(1) + character(*), target, intent(inout) :: buffer(dims(1)) + + integer :: hdf5_err + integer(HID_T) :: filetype + integer(HID_T) :: memtype + integer(SIZE_T) :: size + integer(SIZE_T) :: n + type(c_ptr) :: f_ptr + + ! Make sure buffer is large enough + call h5aget_type_f(attr_id, filetype, hdf5_err) + call h5tget_size_f(filetype, size, hdf5_err) + if (size > len(buffer(1)) + 1) then + print *, size, len(buffer(1)) + call fatal_error("Character buffer is not long enough to & + &read HDF5 string array.") + end if + + ! Get datatype in memory based on Fortran character + n = len(buffer(1)) + call h5tcopy_f(H5T_FORTRAN_S1, memtype, hdf5_err) + call h5tset_size_f(memtype, n, hdf5_err) + + ! Get pointer to start of string + f_ptr = c_loc(buffer(1)(1:1)) + + call h5aread_f(attr_id, memtype, f_ptr, hdf5_err) + + call h5tclose_f(filetype, hdf5_err) + call h5tclose_f(memtype, hdf5_err) + end subroutine read_attribute_string_1D_explicit + subroutine get_shape(obj_id, dims) integer(HID_T), intent(in) :: obj_id integer(HSIZE_T), intent(out) :: dims(:) diff --git a/src/initialize.F90 b/src/initialize.F90 index 99adf967f0..f05b4f2b99 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -4,7 +4,7 @@ module initialize use constants use dict_header, only: DictIntInt, ElemKeyValueII use set_header, only: SetInt - use energy_grid, only: logarithmic_grid, grid_method, unionized_grid + 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 @@ -17,7 +17,7 @@ module initialize use material_header, only: Material 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 + print_usage, 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 @@ -111,20 +111,8 @@ contains if (run_mode /= MODE_PLOTTING) then ! Construct information needed for nuclear data if (run_CE) then - ! Set undefined cell temperatures to match the material data. - call lookup_material_temperatures() - - ! 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 log energy grid for cross-sections + call logarithmic_grid() else ! Create material macroscopic data for MGXS call time_read_xs%start() @@ -158,9 +146,6 @@ contains else ! Write summary information if (output_summary) call write_summary() - - ! Write cross section information - if (output_xs) call write_xs_summary() end if end if @@ -1005,57 +990,4 @@ contains end subroutine allocate_offsets -!=============================================================================== -! LOOKUP_MATERIAL_TEMPERATURES If any cells have undefined temperatures, try to -! find their temperatures from material data. -!=============================================================================== - - subroutine lookup_material_temperatures() - integer :: i, j, k - real(8) :: min_temp - logical :: warning_given - - warning_given = .false. - do i = 1, n_cells - ! Ignore non-normal cells and cells with defined temperature. - if (cells(i) % type /= CELL_NORMAL) cycle - if (cells(i) % sqrtkT(1) /= ERROR_REAL) cycle - - ! Set the number of temperatures equal to the number of materials. - deallocate(cells(i) % sqrtkT) - allocate(cells(i) % sqrtkT(size(cells(i) % material))) - - ! Check each of the cell materials for temperature data. - do j = 1, size(cells(i) % material) - ! Arbitrarily set void regions to 0K. - if (cells(i) % material(j) == MATERIAL_VOID) then - cells(i) % sqrtkT(j) = ZERO - cycle - end if - - associate (mat => materials(cells(i) % material(j))) - ! Find the temperature of the coldest nuclide. - min_temp = nuclides(mat % nuclide(1)) % kT - 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 .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 & - &with unknown temperature will be set to the coldest & - &temperature found in the nuclear data for that cell's & - &material") - warning_given = .true. - end if - min_temp = min(min_temp, nuclides(mat % nuclide(k)) % kT) - end do - - ! Set the temperature for this cell instance. - cells(i) % sqrtkT(j) = sqrt(min_temp) - end associate - end do - end do - end subroutine lookup_material_temperatures - end module initialize diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 1cb0dc0fd4..6ef8751a0e 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2,6 +2,7 @@ module input_xml use hdf5 + use algorithm, only: find use cmfd_input, only: configure_cmfd use constants use dict_header, only: DictIntInt, ElemKeyValueCI @@ -23,7 +24,8 @@ module input_xml use set_header, only: SetChar use stl_vector, only: VectorInt, VectorReal, VectorChar use string, only: to_lower, to_str, str_to_int, str_to_real, & - starts_with, ends_with, tokenize, split_string + starts_with, ends_with, tokenize, split_string, & + zero_padded use tally_header, only: TallyObject use tally_filter use tally_initialize, only: add_tallies @@ -359,26 +361,6 @@ contains ! Copy random number seed if specified if (check_for_node(doc, "seed")) call get_node_value(doc, "seed", seed) - ! Energy grid methods - if (check_for_node(doc, "energy_grid")) then - call get_node_value(doc, "energy_grid", temp_str) - else - temp_str = 'logarithm' - end if - select case (trim(temp_str)) - case ('nuclide') - grid_method = GRID_NUCLIDE - case ('material-union', 'union') - grid_method = GRID_MAT_UNION - if (trim(temp_str) == 'union') & - call warning('Energy grids will be unionized by material. Global& - & energy grid unionization is no longer an allowed option.') - case ('logarithm', 'logarithmic', 'log') - grid_method = GRID_LOGARITHM - case default - call fatal_error("Unknown energy grid method: " // trim(temp_str)) - end select - ! Number of bins for logarithmic grid if (check_for_node(doc, "log_grid_bins")) then call get_node_value(doc, "log_grid_bins", n_log_bins) @@ -978,14 +960,6 @@ contains trim(temp_str) == '0') output_summary = .false. end if - ! Check for cross sections option - if (check_for_node(node_output, "cross_sections")) then - call get_node_value(node_output, "cross_sections", temp_str) - temp_str = to_lower(temp_str) - if (trim(temp_str) == 'true' .or. & - trim(temp_str) == '1') output_xs = .true. - end if - ! Check for ASCII tallies output option if (check_for_node(node_output, "tallies")) then call get_node_value(node_output, "tallies", temp_str) @@ -1089,20 +1063,6 @@ contains end select end if - ! Check to see if windowed multipole functionality is requested - 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', '1') - multipole_active = .true. - case ('false', '0') - multipole_active = .false. - case default - call fatal_error("Unrecognized value for in & - &settings.xml") - end select - end if - call get_node_list(doc, "volume_calc", node_vol_list) n = get_list_size(node_vol_list) allocate(volume_calcs(n)) @@ -1111,6 +1071,27 @@ contains call volume_calcs(i) % from_xml(node_vol) end do + ! Get temperature settings + if (check_for_node(doc, "temperature_default")) then + call get_node_value(doc, "temperature_default", temperature_default) + end if + if (check_for_node(doc, "temperature_method")) then + call get_node_value(doc, "temperature_method", temp_str) + select case (to_lower(temp_str)) + case ('nearest') + temperature_method = TEMPERATURE_NEAREST + case ('interpolation') + temperature_method = TEMPERATURE_INTERPOLATION + case ('multipole') + temperature_method = TEMPERATURE_MULTIPOLE + case default + call fatal_error("Unknown temperature method: " // trim(temp_str)) + end select + end if + if (check_for_node(doc, "temperature_tolerance")) then + call get_node_value(doc, "temperature_tolerance", temperature_tolerance) + end if + ! Close settings XML file call close_xmldoc(doc) @@ -2050,6 +2031,9 @@ contains integer :: i, j type(DictCharInt) :: library_dict type(Library), allocatable :: libraries(:) + type(VectorReal), allocatable :: nuc_temps(:) ! List of T to read for each nuclide + type(VectorReal), allocatable :: sab_temps(:) ! List of T to read for each S(a,b) + real(8), allocatable :: material_temps(:) if (run_CE) then call read_ce_cross_sections_xml(libraries) @@ -2076,12 +2060,18 @@ contains end if ! Parse data from materials.xml - call read_materials_xml(libraries, library_dict) + call read_materials_xml(libraries, library_dict, material_temps) + + ! Assign temperatures to cells that don't have temperatures already assigned + call assign_temperatures(material_temps) + + ! Determine desired temperatures for each nuclide and S(a,b) table + call get_temperatures(nuc_temps, sab_temps) ! Read continuous-energy cross sections if (run_CE .and. run_mode /= MODE_PLOTTING) then call time_read_xs%start() - call read_ce_cross_sections(libraries, library_dict) + call read_ce_cross_sections(libraries, library_dict, nuc_temps, sab_temps) call time_read_xs%stop() end if @@ -2092,9 +2082,10 @@ contains call library_dict % clear() end subroutine read_materials - subroutine read_materials_xml(libraries, library_dict) + subroutine read_materials_xml(libraries, library_dict, material_temps) type(Library), intent(in) :: libraries(:) type(DictCharInt), intent(inout) :: library_dict + real(8), allocatable, intent(out) :: material_temps(:) integer :: i ! loop index for materials integer :: j ! loop index for nuclides @@ -2110,7 +2101,6 @@ contains logical :: file_exists ! does materials.xml exist? logical :: sum_density ! density is taken to be sum of nuclide densities character(20) :: name ! name of isotope, e.g. 92235.03c - character(6) :: default_temperature ! Default temperature, e.g., '300K' 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 @@ -2144,25 +2134,13 @@ contains ! Parse materials.xml file call open_xmldoc(doc, filename) - ! Copy default temperature - if (check_for_node(doc, "default_temperature")) then - call get_node_value(doc, "default_temperature", default_temperature) - else if (.not. run_CE) then - ! FIXME This is only necessary while MG mode does not have a - ! temperature dependent library implementation. - ! Set a default for MG mode to allow MG libraries to not include - ! temperatures - default_temperature = '294K' - else - default_temperature = '' - end if - ! Get pointer to list of XML call get_node_list(doc, "material", node_mat_list) ! Allocate cells array n_materials = get_list_size(node_mat_list) allocate(materials(n_materials)) + allocate(material_temps(n_materials)) ! Initialize count for number of nuclides/S(a,b) tables index_nuclide = 0 @@ -2192,14 +2170,11 @@ contains call get_node_value(node_mat, "name", mat % name) end if - ! Copy material temperature + ! Get material default temperature if (check_for_node(node_mat, "temperature")) then - call get_node_value(node_mat, "temperature", mat % temperature) - else if (default_temperature /= '') then - mat % temperature = default_temperature + call get_node_value(node_mat, "temperature", material_temps(i)) else - call fatal_error("Must specify either a material temperature or a & - &default temperature") + material_temps(i) = ERROR_REAL end if ! ======================================================================= @@ -5719,10 +5694,10 @@ contains ASSIGN_SAB: do k = 1, size(mat % i_sab_tables) ! In order to know which nuclide the S(a,b) table applies to, we need ! to search through the list of nuclides for one which has a matching - ! zaid + ! name associate (sab => sab_tables(mat % i_sab_tables(k))) FIND_NUCLIDE: do j = 1, size(mat % nuclide) - if (any(sab % zaid == nuclides(mat % nuclide(j)) % zaid)) then + if (any(sab % nuclides == nuclides(mat % nuclide(j)) % name)) then mat % i_sab_nuclides(k) = j exit FIND_NUCLIDE end if @@ -5774,16 +5749,16 @@ contains end do end subroutine assign_sab_tables - subroutine read_ce_cross_sections(libraries, library_dict) + subroutine read_ce_cross_sections(libraries, library_dict, nuc_temps, sab_temps) type(Library), intent(in) :: libraries(:) type(DictCharInt), intent(inout) :: library_dict + type(VectorReal), intent(in) :: nuc_temps(:) + type(VectorReal), intent(in) :: sab_temps(:) integer :: i, j integer :: i_library integer :: i_nuclide integer :: i_sab - integer :: index_nuc_zaid ! index in nuclide ZAID - integer :: zaid ! ZAID of nuclide integer(HID_T) :: file_id integer(HID_T) :: group_id logical :: mp_found ! if windowed multipole libraries were found @@ -5796,8 +5771,6 @@ contains allocate(micro_xs(n_nuclides_total)) !$omp end parallel - index_nuc_zaid = 0 - ! Read cross sections do i = 1, size(materials) do j = 1, size(materials(i) % names) @@ -5813,8 +5786,8 @@ contains ! Read nuclide data from HDF5 file_id = file_open(libraries(i_library) % path, 'r') group_id = open_group(file_id, name) - call nuclides(i_nuclide) % from_hdf5(group_id, & - materials(i) % temperature) + call nuclides(i_nuclide) % from_hdf5(group_id, nuc_temps(i_nuclide), & + temperature_method, temperature_tolerance) call close_group(group_id) call file_close(file_id) @@ -5824,23 +5797,19 @@ contains ! Determine if minimum/maximum energy for this nuclide is greater/less ! than the previous - energy_min_neutron = max(energy_min_neutron, nuclides(i_nuclide) % energy(1)) - energy_max_neutron = min(energy_max_neutron, nuclides(i_nuclide) % energy(& - size(nuclides(i_nuclide) % energy))) + if (size(nuclides(i_nuclide) % grid) >= 1) then + energy_min_neutron = max(energy_min_neutron, & + nuclides(i_nuclide) % grid(1) % energy(1)) + energy_max_neutron = min(energy_max_neutron, nuclides(i_nuclide) % & + grid(1) % energy(size(nuclides(i_nuclide) % grid(1) % energy))) + end if ! Add name and alias to dictionary call already_read % add(name) - ! Construct dictionary mapping nuclide zaids to [1,N] -- used for - ! unresolved resonance probability tables - zaid = nuclides(i_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 - ! Read multipole file into the appropriate entry on the nuclides array - if (multipole_active) call read_multipole_data(i_nuclide) + if (temperature_method == TEMPERATURE_MULTIPOLE) & + call read_multipole_data(i_nuclide) end if ! Check if material is fissionable @@ -5868,8 +5837,8 @@ contains ! Read S(a,b) data from HDF5 file_id = file_open(libraries(i_library) % path, 'r') group_id = open_group(file_id, name) - call sab_tables(i_sab) % from_hdf5(group_id, & - materials(i) % temperature) + call sab_tables(i_sab) % from_hdf5(group_id, sab_temps(i_sab), & + temperature_tolerance) call close_group(group_id) call file_close(file_id) @@ -5879,14 +5848,13 @@ contains end do end do - n_nuc_zaid_total = index_nuc_zaid - ! Associate S(a,b) tables with specific nuclides call assign_sab_tables() ! Show which nuclide results in lowest energy for neutron transport do i = 1, size(nuclides) - if (nuclides(i) % energy(nuclides(i) % n_grid) == energy_max_neutron) then + if (nuclides(i) % grid(1) % energy(size(nuclides(i) % grid(1) % energy)) & + == energy_max_neutron) then call write_message("Maximum neutron transport energy: " // & trim(to_str(energy_max_neutron)) // " MeV for " // & trim(adjustl(nuclides(i) % name)), 6) @@ -5895,7 +5863,7 @@ contains end do ! If the user wants multipole, make sure we found a multipole library. - if (multipole_active) then + if (temperature_method == TEMPERATURE_MULTIPOLE) then mp_found = .false. do i = 1, size(nuclides) if (nuclides(i) % mp_present) then @@ -5911,6 +5879,107 @@ contains end subroutine read_ce_cross_sections +!=============================================================================== +! ASSIGN_TEMPERATURES If any cells have undefined temperatures, try to find +! their temperatures from material or global default temperatures +!=============================================================================== + + subroutine assign_temperatures(material_temps) + real(8), intent(in) :: material_temps(:) + + integer :: i, j + integer :: i_material + + do i = 1, n_cells + ! Ignore non-normal cells and cells with defined temperature. + if (cells(i) % material(1) == NONE) cycle + if (cells(i) % sqrtkT(1) /= ERROR_REAL) cycle + + ! Set the number of temperatures equal to the number of materials. + deallocate(cells(i) % sqrtkT) + allocate(cells(i) % sqrtkT(size(cells(i) % material))) + + ! Check each of the cell materials for temperature data. + do j = 1, size(cells(i) % material) + ! Arbitrarily set void regions to 0K. + if (cells(i) % material(j) == MATERIAL_VOID) then + cells(i) % sqrtkT(j) = ZERO + cycle + end if + + ! Use material default or global default temperature + i_material = material_dict % get_key(cells(i) % material(j)) + if (material_temps(i_material) /= ERROR_REAL) then + cells(i) % sqrtkT(j) = sqrt(K_BOLTZMANN * & + material_temps(i_material)) + else + cells(i) % sqrtkT(j) = sqrt(K_BOLTZMANN * temperature_default) + end if + end do + end do + end subroutine assign_temperatures + +!=============================================================================== +! GET_TEMPERATURES returns a list of temperatures that each nuclide/S(a,b) table +! appears at in the model. Later, this list is used to determine the actual +! temperatures to read (which may be different if interpolation is used) +!=============================================================================== + + subroutine get_temperatures(nuc_temps, sab_temps) + type(VectorReal), allocatable, intent(out) :: nuc_temps(:) + type(VectorReal), allocatable, intent(out) :: sab_temps(:) + + integer :: i, j, k + integer :: i_nuclide ! index in nuclides array + integer :: i_sab ! index in S(a,b) array + integer :: i_material + real(8) :: temperature ! temperature in Kelvin + + allocate(nuc_temps(n_nuclides_total)) + allocate(sab_temps(n_sab_tables)) + + do i = 1, size(cells) + do j = 1, size(cells(i) % material) + ! Skip any non-material cells and void materials + if (cells(i) % material(j) == NONE .or. & + cells(i) % material(j) == MATERIAL_VOID) cycle + + ! Get temperature of cell (rounding to nearest integer) + if (size(cells(i) % sqrtkT) > 1) then + temperature = cells(i) % sqrtkT(j)**2 / K_BOLTZMANN + else + temperature = cells(i) % sqrtkT(1)**2 / K_BOLTZMANN + end if + + i_material = material_dict % get_key(cells(i) % material(j)) + associate (mat => materials(i_material)) + NUC_NAMES_LOOP: do k = 1, size(mat % names) + ! Get index in nuc_temps array + i_nuclide = nuclide_dict % get_key(to_lower(mat % names(k))) + + ! Add temperature if it hasn't already been added + if (find(nuc_temps(i_nuclide), temperature) == -1) then + call nuc_temps(i_nuclide) % push_back(temperature) + end if + end do NUC_NAMES_LOOP + + if (mat % n_sab > 0) then + SAB_NAMES_LOOP: do k = 1, size(mat % sab_names) + ! Get index in nuc_temps array + i_sab = sab_dict % get_key(to_lower(mat % sab_names(k))) + + ! Add temperature if it hasn't already been added + if (find(sab_temps(i_sab), temperature) == -1) then + call sab_temps(i_sab) % push_back(temperature) + end if + end do SAB_NAMES_LOOP + end if + end associate + end do + end do + + end subroutine get_temperatures + !=============================================================================== ! READ_0K_ELASTIC_SCATTERING !=============================================================================== @@ -5927,6 +5996,9 @@ contains real(8) :: xs_cdf_sum character(MAX_WORD_LEN) :: name type(Nuclide) :: resonant_nuc + type(VectorReal) :: temperature + + call temperature % push_back(ZERO) do i = 1, size(nuclides_0K) if (nuc % name == nuclides_0K(i) % nuclide) then @@ -5946,13 +6018,14 @@ contains ! Read nuclide data from HDF5 file_id = file_open(libraries(i_library) % path, 'r') group_id = open_group(file_id, name) - call resonant_nuc % from_hdf5(group_id, '0K') + call resonant_nuc % from_hdf5(group_id, temperature, & + TEMPERATURE_NEAREST, 1000.0_8) call close_group(group_id) call file_close(file_id) ! Copy 0K energy grid and elastic scattering cross section - call move_alloc(TO=nuc % energy_0K, FROM=resonant_nuc % energy) - call move_alloc(TO=nuc % elastic_0K, FROM=resonant_nuc % elastic) + call move_alloc(TO=nuc % energy_0K, FROM=resonant_nuc % grid(1) % energy) + call move_alloc(TO=nuc % elastic_0K, FROM=resonant_nuc % sum_xs(1) % elastic) nuc % n_grid_0K = size(nuc % energy_0K) ! Build CDF for 0K elastic scattering @@ -5987,18 +6060,22 @@ contains integer, intent(in) :: i_table ! index in nuclides/sab_tables - integer :: i 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 + character(MAX_FILE_LEN) :: 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. + ! that the file will be ZZZAAAmM.h5. associate (nuc => nuclides(i_table)) - write(zaid_string, '(I6.6)') nuc % zaid - filename = trim(path_multipole) // zaid_string // ".h5" + if (nuc % metastable > 0) then + filename = trim(path_multipole) // trim(zero_padded(nuc % Z, 3)) // & + trim(zero_padded(nuc % A, 3)) // 'm' // & + trim(to_str(nuc % metastable)) // ".h5" + else + filename = trim(path_multipole) // trim(zero_padded(nuc % Z, 3)) // & + trim(zero_padded(nuc % A, 3)) // ".h5" + end if ! Check if Multipole library exists and is readable inquire(FILE=filename, EXIST=file_exists, READ=readable) @@ -6019,16 +6096,6 @@ contains call multipole_read(filename, nuc % multipole, i_table) nuc % mp_present = .true. - ! Recreate nu-fission cross section - if (nuc % fissionable) then - do i = 1, size(nuc % energy) - nuc % nu_fission(i) = nuc % nu(nuc % energy(i), EMISSION_TOTAL) * & - nuc % fission(i) - end do - else - nuc % nu_fission(:) = ZERO - end if - end associate end subroutine read_multipole_data diff --git a/src/material_header.F90 b/src/material_header.F90 index 27a0e61fea..772e3a415d 100644 --- a/src/material_header.F90 +++ b/src/material_header.F90 @@ -13,9 +13,6 @@ module material_header integer, allocatable :: nuclide(:) ! index in nuclides array real(8) :: density ! total atom density in atom/b-cm real(8), allocatable :: atom_density(:) ! nuclide atom density in atom/b-cm - character(6) :: temperature ! Temperature of the material - ! as presented in the HDF5 library; - ! e.g., "300K" ! Energy grid information integer :: n_grid ! # of union material grid points diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 06dd1e2138..5947d2562d 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -19,7 +19,6 @@ module mgxs_header type, abstract :: Mgxs character(len=104) :: name ! name of dataset, e.g. 92235.03c - integer :: zaid ! Z and A identifier, e.g. 92235 real(8) :: awr ! Atomic Weight Ratio real(8) :: kT ! temperature in MeV (k*T) @@ -211,11 +210,6 @@ module mgxs_header 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 = 0 - end if if (check_for_node(node_xsdata, "awr")) then call get_node_value(node_xsdata, "awr", this % awr) else @@ -970,11 +964,6 @@ module mgxs_header ! Basic nuclide information write(unit_,*) 'MGXS Entry: ' // trim(this % name) - if (this % zaid > 0) then - write(unit_,*) ' ZAID = ' // trim(to_str(this % zaid)) - else if (this % zaid < 0) then - write(unit_,*) ' Material id = ' // trim(to_str(-this % zaid)) - end if if (this % awr > ZERO) then write(unit_,*) ' AWR = ' // trim(to_str(this % awr)) end if @@ -1319,7 +1308,6 @@ module mgxs_header else this % name = mat % name end if - this % zaid = -mat % id this % fissionable = mat % fissionable this % scatt_type = scatt_type diff --git a/src/multipole.F90 b/src/multipole.F90 index 770121b9d5..a099e50476 100644 --- a/src/multipole.F90 +++ b/src/multipole.F90 @@ -28,13 +28,8 @@ contains integer(HID_T) :: group_id ! Intermediate loading components - character(len=10) :: version - integer :: NMT - integer :: i, j - integer, allocatable :: MT(:) - logical :: accumulated_fission - character(len=24) :: MT_n ! Takes the form '/nuclide/reactions/MT???' integer :: is_fissionable + character(len=10) :: version associate (nuc => nuclides(i_table)) @@ -80,111 +75,8 @@ contains call read_dataset(multipole % curvefit, group_id, "curvefit") - ! Delete ACE pointwise data - call read_dataset(nuc % n_grid, group_id, "n_grid") - - deallocate(nuc % energy) - deallocate(nuc % total) - deallocate(nuc % elastic) - deallocate(nuc % fission) - deallocate(nuc % nu_fission) - deallocate(nuc % absorption) - - allocate(nuc % energy(nuc % n_grid)) - allocate(nuc % total(nuc % n_grid)) - allocate(nuc % elastic(nuc % n_grid)) - allocate(nuc % fission(nuc % n_grid)) - allocate(nuc % nu_fission(nuc % n_grid)) - allocate(nuc % absorption(nuc % n_grid)) - - nuc % total(:) = ZERO - nuc % absorption(:) = ZERO - nuc % fission(:) = ZERO - - ! Read in new energy axis (converting eV to MeV) - call read_dataset(nuc % energy, group_id, "energy_points") - nuc % energy = nuc % energy / 1.0e6_8 - - ! Get count and list of MT tables - call read_dataset(NMT, group_id, "MT_count") - allocate(MT(NMT)) - - call read_dataset(MT, group_id, "MT_list") - call close_group(group_id) - accumulated_fission = .false. - - ! Loop over each MT entry and load it into a reaction. - do i = 1, NMT - write(MT_n, '(A, I3.3)') '/nuclide/reactions/MT', MT(i) - - group_id = open_group(file_id, MT_n) - - ! Each MT needs to be treated slightly differently. - select case (MT(i)) - case(ELASTIC) - call read_dataset(nuc % elastic, group_id, "MT_sigma") - nuc % total(:) = nuc % total + nuc % elastic - case(N_FISSION) - call read_dataset(nuc % fission, group_id, "MT_sigma") - nuc % total(:) = nuc % total + nuc % fission - nuc % absorption(:) = nuc % absorption + nuc % fission - accumulated_fission = .true. - case default - ! Search through all of our secondary reactions - do j = 1, size(nuc % reactions) - if (nuc % reactions(j) % MT == MT(i)) then - ! Match found - - ! Individual Fission components exist, so remove the combined - ! 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(:) = ZERO - accumulated_fission = .false. - end if - - deallocate(nuc % reactions(j) % sigma) - allocate(nuc % reactions(j) % sigma(nuc % n_grid)) - - call read_dataset(nuc % reactions(j) % sigma, & - group_id, "MT_sigma") - call read_dataset(nuc % reactions(j) % Q_value, & - group_id, "Q_value") - call read_dataset(nuc % reactions(j) % threshold, & - group_id, "threshold") - nuc % reactions(j) % threshold = 1 ! TODO: reconsider implications. - 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 - end if - - ! Accumulate absorption - if (MT(i) >= N_GAMMA .and. MT(i) <= N_DA) then - 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 - end if - end if - end do - end select - - call close_group(group_id) - end do - ! Close file call file_close(file_id) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 3fffb76f3d..f9e473f45c 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -7,6 +7,7 @@ module nuclide_header h5lget_name_by_idx_f, H5_INDEX_NAME_F, H5_ITER_INC_F use h5lt, only: h5ltpath_valid_f + use algorithm, only: sort, find use constants use dict_header, only: DictIntInt use endf, only: reaction_name, is_fission, is_disappearance @@ -20,7 +21,7 @@ module nuclide_header use product_header, only: AngleEnergyContainer use reaction_header, only: Reaction use secondary_uncorrelated, only: UncorrelatedAngleEnergy - use stl_vector, only: VectorInt + use stl_vector, only: VectorInt, VectorReal use string use urr_header, only: UrrData use xml_interface @@ -32,29 +33,37 @@ module nuclide_header ! for continuous-energy neutron transport. !=============================================================================== - type :: Nuclide - ! Nuclide meta-data - character(20) :: name ! name of nuclide, e.g. U235.71c - integer :: zaid ! Z and A identifier, e.g. 92235 - integer :: metastable ! metastable state - real(8) :: awr ! Atomic Weight Ratio - real(8) :: kT ! temperature in MeV (k*T) - - ! Fission information - logical :: fissionable = .false. ! nuclide is fissionable? - - ! Energy grid information - integer :: n_grid ! # of nuclide grid points + type EnergyGrid integer, allocatable :: grid_index(:) ! log grid mapping indices real(8), allocatable :: energy(:) ! energy values corresponding to xs + end type EnergyGrid - ! Microscopic cross sections + type SumXS 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 + end type SumXS + + type :: Nuclide + ! Nuclide meta-data + character(20) :: name ! name of nuclide, e.g. U235.71c + integer :: Z ! atomic number + integer :: A ! mass number + integer :: metastable ! metastable state + real(8) :: awr ! Atomic Weight Ratio + real(8), allocatable :: kTs(:) ! temperature in MeV (k*T) + + ! Fission information + logical :: fissionable = .false. ! nuclide is fissionable? + + ! Energy grid for each temperature + type(EnergyGrid), allocatable :: grid(:) + + ! Microscopic cross sections + type(SumXS), allocatable :: sum_xs(:) ! Resonance scattering info logical :: resonant = .false. ! resonant scatterer? @@ -77,7 +86,7 @@ module nuclide_header ! Unresolved resonance data logical :: urr_present = .false. integer :: urr_inelastic - type(UrrData), pointer :: urr_data => null() + type(UrrData), allocatable :: urr_data(:) ! Multipole data logical :: mp_present = .false. @@ -94,7 +103,6 @@ module nuclide_header contains procedure :: clear => nuclide_clear - procedure :: print => nuclide_print procedure :: from_hdf5 => nuclide_from_hdf5 procedure :: nu => nuclide_nu procedure, private :: create_derived => nuclide_create_derived @@ -131,6 +139,7 @@ module nuclide_header ! 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 + integer :: index_temp_sab ! temperature index for sab_tables real(8) :: elastic_sab ! microscopic elastic scattering on S(a,b) table ! Information for URR probability table use @@ -173,23 +182,25 @@ module nuclide_header subroutine nuclide_clear(this) class(Nuclide), intent(inout) :: this ! The Nuclide object to clear - if (associated(this % urr_data)) deallocate(this % urr_data) if (associated(this % multipole)) deallocate(this % multipole) end subroutine nuclide_clear - subroutine nuclide_from_hdf5(this, group_id, temperature) - class(Nuclide), intent(inout) :: this - integer(HID_T), intent(in) :: group_id - character(len=*), intent(in) :: temperature + subroutine nuclide_from_hdf5(this, group_id, temperature, method, tolerance) + class(Nuclide), intent(inout) :: this + integer(HID_T), intent(in) :: group_id + type(VectorReal), intent(in) :: temperature ! list of desired temperatures + integer, intent(in) :: method + real(8), intent(in) :: tolerance integer :: i - integer :: Z - integer :: A + integer :: n integer :: storage_type integer :: max_corder integer :: n_links integer :: hdf5_err + integer :: i_closest + integer :: n_temperature integer(HID_T) :: urr_group, nu_group integer(HID_T) :: energy_group, energy_dset integer(HID_T) :: kT_group, kT_dset @@ -201,13 +212,14 @@ module nuclide_header integer(SIZE_T) :: name_len, name_file_len integer(HSIZE_T) :: j integer(HSIZE_T) :: dims(1) - character(MAX_WORD_LEN) :: temp - character(MAX_FILE_LEN), allocatable :: temperatures(:) - integer, allocatable :: temperatures_integer(:) - character(6) :: my_temperature - integer :: temperature_integer - type(VectorInt) :: MTs + character(MAX_WORD_LEN) :: temp_str + character(MAX_FILE_LEN), allocatable :: dset_names(:) + real(8), allocatable :: temps_available(:) ! temperatures available + real(8) :: temp_desired + real(8) :: temp_actual logical :: exists + type(VectorInt) :: MTs + type(VectorInt) :: temps_to_read ! Get name of nuclide from group name_len = len(this % name) @@ -216,62 +228,90 @@ module nuclide_header ! Get rid of leading '/' this % name = trim(this % name(2:)) - call read_attribute(Z, group_id, 'Z') - call read_attribute(A, group_id, 'A') + call read_attribute(this % Z, group_id, 'Z') + call read_attribute(this % A, group_id, 'A') call read_attribute(this % metastable, group_id, 'metastable') - this % zaid = 1000 * Z + A + 400 * this % metastable call read_attribute(this % awr, group_id, 'atomic_weight_ratio') kT_group = open_group(group_id, 'kTs') - ! Before accessing the temperature data, see if the user-provied temperature - ! exists. We can find this out by looking at the datasets within kT_group - temperature_integer = & - str_to_int(temperature(1: len_trim(adjustl(temperature)) - 1)) - call get_datasets(kT_group, temperatures) - allocate(temperatures_integer(size(temperatures))) - do i = 1, size(temperatures) - temperatures_integer(i) = & - str_to_int(temperatures(i)(1: len_trim(adjustl(temperatures(i))) - 1)) + ! Determine temperatures available + call get_datasets(kT_group, dset_names) + allocate(temps_available(size(dset_names))) + do i = 1, size(dset_names) + ! Read temperature value + call read_dataset(temps_available(i), kT_group, trim(dset_names(i))) + temps_available(i) = temps_available(i) / K_BOLTZMANN + end do + + select case (method) + case (TEMPERATURE_NEAREST) + ! Determine actual temperatures to read + TEMP_LOOP: do i = 1, temperature % size() + temp_desired = temperature % data(i) + i_closest = minloc(abs(temps_available - temp_desired), dim=1) + temp_actual = temps_available(i_closest) + if (abs(temp_actual - temp_desired) < tolerance) then + if (find(temps_to_read, nint(temp_actual)) == -1) then + call temps_to_read % push_back(nint(temp_actual)) + + ! Write warning for resonance scattering data if 0K is not available + if (abs(temp_actual - temp_desired) > 0 .and. temp_desired == 0) then + call warning(trim(this % name) // " does not contain 0K data & + &needed for resonance scattering options selected. Using & + &data at " // trim(to_str(nint(temp_actual))) // " K instead.") + end if + end if + else + call fatal_error("Nuclear data library does not contain cross sections & + &for " // trim(this % name) // " at or near " // & + trim(to_str(nint(temp_desired))) // " K.") + end if + end do TEMP_LOOP + + case (TEMPERATURE_INTERPOLATION) + ! TODO: Get bounding temperatures + call fatal_error("Temperature interpolation not yet implemented") + + case (TEMPERATURE_MULTIPOLE) + ! Add first available temperature + call temps_to_read % push_back(nint(temps_available(1))) + + end select + + ! Sort temperatures to read + call sort(temps_to_read) + + n_temperature = temps_to_read % size() + allocate(this % kTs(n_temperature)) + allocate(this % grid(n_temperature)) + + do i = 1, n_temperature + ! Get temperature as a string + temp_str = trim(to_str(temps_to_read % data(i))) // "K" + + ! Read exact temperature value + call read_dataset(this % kTs(i), kT_group, trim(temp_str)) + + ! Read energy grid + energy_group = open_group(group_id, 'energy') + energy_dset = open_dataset(energy_group, temp_str) + call get_shape(energy_dset, dims) + allocate(this % grid(i) % energy(int(dims(1), 4))) + call read_dataset(this % grid(i) % energy, energy_dset) + call close_dataset(energy_dset) + call close_group(energy_group) end do - my_temperature = & - temperatures(minloc(abs(temperature_integer - temperatures_integer), & - dim=1)) - ! Now print a warning if there is no matching temperature and then use the - ! closest temperature - if (temperature /= my_temperature) then - if (temperature == '0K') then - call warning(trim(this % name) // " does not contain 0K data & - &needed for the resonance scattering options selected") - else - call warning(trim(this % name) // " does not contain data at a & - &temperature of " // trim(temperature) // "; using the & - &nearest available temperature of " // trim(my_temperature)) - end if - end if - kT_dset = open_dataset(kT_group, my_temperature) - call read_dataset(this % kT, kT_dset) - call close_dataset(kT_dset) call close_group(kT_group) - ! Read energy grid - energy_group = open_group(group_id, 'energy') - energy_dset = open_dataset(energy_group, my_temperature) - call get_shape(energy_dset, dims) - this % n_grid = int(dims(1), 4) - allocate(this % energy(this % n_grid)) - call read_dataset(this % energy, energy_dset) - call close_dataset(energy_dset) - call close_group(energy_group) - ! Get MT values based on group names rxs_group = open_group(group_id, 'reactions') call h5gget_info_f(rxs_group, storage_type, n_links, max_corder, hdf5_err) do j = 0, n_links - 1 call h5lget_name_by_idx_f(rxs_group, ".", H5_INDEX_NAME_F, H5_ITER_INC_F, & - j, temp, hdf5_err, name_len) - if (starts_with(temp, "reaction_")) then - call MTs % push_back(int(str_to_int(temp(10:12)))) + j, temp_str, hdf5_err, name_len) + if (starts_with(temp_str, "reaction_")) then + call MTs % push_back(int(str_to_int(temp_str(10:12)))) end if end do @@ -281,7 +321,7 @@ module nuclide_header rx_group = open_group(rxs_group, 'reaction_' // trim(& zero_padded(MTs % data(i), 3))) - call this % reactions(i) % from_hdf5(rx_group, my_temperature) + call this % reactions(i) % from_hdf5(rx_group, temps_to_read) call close_group(rx_group) end do call close_group(rxs_group) @@ -290,32 +330,42 @@ module nuclide_header call h5ltpath_valid_f(group_id, 'urr', .true., exists, hdf5_err) if (exists) then this % urr_present = .true. - allocate(this % urr_data) - urr_group = open_group(group_id, 'urr/' // trim(my_temperature)) - call this % urr_data % from_hdf5(urr_group) + allocate(this % urr_data(n_temperature)) + + do i = 1, n_temperature + ! Get temperature as a string + temp_str = trim(to_str(temps_to_read % data(i))) // "K" + + ! Read probability tables for i-th temperature + urr_group = open_group(group_id, 'urr/' // trim(temp_str)) + call this % urr_data(i) % from_hdf5(urr_group) + call close_group(urr_group) + + ! Check for negative values + if (any(this % urr_data(i) % prob < ZERO)) then + call warning("Negative value(s) found on probability table & + &for nuclide " // this % name // " at " // trim(temp_str)) + end if + end do ! if the inelastic competition flag indicates that the inelastic cross ! section should be determined from a normal reaction cross section, we ! need to get the index of the reaction - if (this % urr_data % inelastic_flag > 0) then - do i = 1, size(this % reactions) - if (this % reactions(i) % MT == this % urr_data % inelastic_flag) then - this % urr_inelastic = i + if (n_temperature > 0) then + if (this % urr_data(1) % inelastic_flag > 0) then + do i = 1, size(this % reactions) + if (this % reactions(i) % MT == this % urr_data(1) % inelastic_flag) then + this % urr_inelastic = i + end if + end do + + ! Abort if no corresponding inelastic reaction was found + if (this % urr_inelastic == NONE) then + call fatal_error("Could not find inelastic reaction specified on & + &unresolved resonance probability table.") end if - end do - - ! Abort if no corresponding inelastic reaction was found - if (this % urr_inelastic == NONE) then - call fatal_error("Could not find inelastic reaction specified on & - &unresolved resonance probability table.") end if end if - - ! Check for negative values - if (any(this % urr_data % prob < ZERO)) then - call warning("Negative value(s) found on probability table & - &for nuclide " // this % name) - end if end if ! Check for nu-total @@ -325,8 +375,8 @@ module nuclide_header ! Read total nu data total_nu = open_dataset(nu_group, 'yield') - call read_attribute(temp, total_nu, 'type') - select case (temp) + call read_attribute(temp_str, total_nu, 'type') + select case (temp_str) case ('Tabulated1D') allocate(Tabulated1D :: this % total_nu) case ('Polynomial') @@ -346,8 +396,8 @@ module nuclide_header ! Check to see if this is polynomial or tabulated data fer_dset = open_dataset(fer_group, 'q_prompt') - call read_attribute(temp, fer_dset, 'type') - if (temp == 'Polynomial') then + call read_attribute(temp_str, fer_dset, 'type') + if (temp_str == 'Polynomial') then ! Read the prompt Q-value allocate(Polynomial :: this % fission_q_prompt) call this % fission_q_prompt % from_hdf5(fer_dset) @@ -358,7 +408,7 @@ module nuclide_header fer_dset = open_dataset(fer_group, 'q_recoverable') call this % fission_q_recov % from_hdf5(fer_dset) call close_dataset(fer_dset) - else if (temp == 'Tabulated1D') then + else if (temp_str == 'Tabulated1D') then ! Read the prompt Q-value allocate(Tabulated1D :: this % fission_q_prompt) call this % fission_q_prompt % from_hdf5(fer_dset) @@ -383,108 +433,125 @@ module nuclide_header subroutine nuclide_create_derived(this) class(Nuclide), intent(inout) :: this - integer :: i - integer :: j - integer :: k + integer :: i, j, k + integer :: t integer :: m integer :: n + integer :: n_grid integer :: i_fission - type(ListInt) :: MTs + integer :: n_temperature + type(VectorInt) :: MTs - ! Allocate and initialize derived cross sections - allocate(this % total(this % n_grid)) - allocate(this % elastic(this % n_grid)) - allocate(this % fission(this % n_grid)) - allocate(this % nu_fission(this % n_grid)) - allocate(this % absorption(this % n_grid)) - this % total(:) = ZERO - this % elastic(:) = ZERO - this % fission(:) = ZERO - this % nu_fission(:) = ZERO - this % absorption(:) = ZERO + n_temperature = size(this % kTs) + allocate(this % sum_xs(n_temperature)) + + do i = 1, n_temperature + ! Allocate and initialize derived cross sections + n_grid = size(this % grid(i) % energy) + allocate(this % sum_xs(i) % total(n_grid)) + allocate(this % sum_xs(i) % elastic(n_grid)) + allocate(this % sum_xs(i) % fission(n_grid)) + allocate(this % sum_xs(i) % nu_fission(n_grid)) + allocate(this % sum_xs(i) % absorption(n_grid)) + this % sum_xs(i) % total(:) = ZERO + this % sum_xs(i) % elastic(:) = ZERO + this % sum_xs(i) % fission(:) = ZERO + this % sum_xs(i) % nu_fission(:) = ZERO + this % sum_xs(i) % absorption(:) = ZERO + end do i_fission = 0 do i = 1, size(this % reactions) - call MTs % append(this % reactions(i) % MT) + call MTs % push_back(this % reactions(i) % MT) call this % reaction_index % add_key(this % reactions(i) % MT, i) associate (rx => this % reactions(i)) - j = rx % threshold - n = size(rx % sigma) - ! Skip total inelastic level scattering, gas production cross sections ! (MT=200+), etc. if (rx % MT == N_LEVEL .or. rx % MT == N_NONELASTIC) cycle if (rx % MT > N_5N2P .and. rx % MT < N_P0) cycle ! Skip level cross sections if total is available - if (rx % MT >= N_P0 .and. rx % MT <= N_PC .and. MTs % contains(N_P)) cycle - if (rx % MT >= N_D0 .and. rx % MT <= N_DC .and. MTs % contains(N_D)) cycle - if (rx % MT >= N_T0 .and. rx % MT <= N_TC .and. MTs % contains(N_T)) cycle - if (rx % MT >= N_3HE0 .and. rx % MT <= N_3HEC .and. MTs % contains(N_3HE)) cycle - if (rx % MT >= N_A0 .and. rx % MT <= N_AC .and. MTs % contains(N_A)) cycle - if (rx % MT >= N_2N0 .and. rx % MT <= N_2NC .and. MTs % contains(N_2N)) cycle + if (rx % MT >= N_P0 .and. rx % MT <= N_PC .and. find(MTs, N_P) /= -1) cycle + if (rx % MT >= N_D0 .and. rx % MT <= N_DC .and. find(MTs, N_D) /= -1) cycle + if (rx % MT >= N_T0 .and. rx % MT <= N_TC .and. find(MTs, N_T) /= -1) cycle + if (rx % MT >= N_3HE0 .and. rx % MT <= N_3HEC .and. find(MTs, N_3HE) /= -1) cycle + if (rx % MT >= N_A0 .and. rx % MT <= N_AC .and. find(MTs, N_A) /= -1) cycle + if (rx % MT >= N_2N0 .and. rx % MT <= N_2NC .and. find(MTs, N_2N) /= -1) cycle - ! Copy elastic - if (rx % MT == ELASTIC) this % elastic(:) = rx % sigma + do t = 1, n_temperature + j = rx % xs(t) % threshold + n = size(rx % xs(t) % value) - ! Add contribution to total cross section - this % total(j:j+n-1) = this % total(j:j+n-1) + rx % sigma + ! Copy elastic + if (rx % MT == ELASTIC) this % sum_xs(t) % elastic(:) = rx % xs(t) % value - ! Add contribution to absorption cross section - if (is_disappearance(rx % MT)) then - this % absorption(j:j+n-1) = this % absorption(j:j+n-1) + rx % sigma - end if + ! Add contribution to total cross section + this % sum_xs(t) % total(j:j+n-1) = this % sum_xs(t) % total(j:j+n-1) + & + rx % xs(t) % value - ! Information about fission reactions - if (rx % MT == N_FISSION) then - allocate(this % index_fission(1)) - elseif (rx % MT == N_F) then - allocate(this % index_fission(PARTIAL_FISSION_MAX)) - this % has_partial_fission = .true. - end if + ! Add contribution to absorption cross section + if (is_disappearance(rx % MT)) then + this % sum_xs(t) % absorption(j:j+n-1) = this % sum_xs(t) % & + absorption(j:j+n-1) + rx % xs(t) % value + end if - ! Add contribution to fission cross section - if (is_fission(rx % MT)) then - this % fissionable = .true. - this % fission(j:j+n-1) = this % fission(j:j+n-1) + rx % sigma - - ! Also need to add fission cross sections to absorption - this % absorption(j:j+n-1) = this % absorption(j:j+n-1) + rx % sigma - - ! If total fission reaction is present, there's no need to store the - ! reaction cross-section since it was copied to this % fission - if (rx % MT == N_FISSION) deallocate(rx % sigma) - - ! Keep track of this reaction for easy searching later - i_fission = i_fission + 1 - this % index_fission(i_fission) = i - this % n_fission = this % n_fission + 1 - - ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< - ! Before the secondary distribution refactor, when the angle/energy - ! distribution was uncorrelated, no angle was actually sampled. With - ! the refactor, an angle is always sampled for an uncorrelated - ! 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. - do k = 1, size(rx % products) - if (rx % products(k) % particle == NEUTRON) then - do m = 1, size(rx % products(k) % distribution) - associate (aedist => rx % products(k) % distribution(m) % obj) - select type (aedist) - type is (UncorrelatedAngleEnergy) - aedist % fission = .true. - end select - end associate - end do + ! Information about fission reactions + if (t == 1) then + if (rx % MT == N_FISSION) then + allocate(this % index_fission(1)) + elseif (rx % MT == N_F) then + allocate(this % index_fission(PARTIAL_FISSION_MAX)) + this % has_partial_fission = .true. end if - end do - ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< - end if - end associate - end do + end if + + ! Add contribution to fission cross section + if (is_fission(rx % MT)) then + this % fissionable = .true. + this % sum_xs(t) % fission(j:j+n-1) = this % sum_xs(t) % & + fission(j:j+n-1) + rx % xs(t) % value + + ! Also need to add fission cross sections to absorption + this % sum_xs(t) % absorption(j:j+n-1) = this % sum_xs(t) % & + absorption(j:j+n-1) + rx % xs(t) % value + + ! If total fission reaction is present, there's no need to store the + ! reaction cross-section since it was copied to this % fission + if (rx % MT == N_FISSION) deallocate(rx % xs(t) % value) + + ! Keep track of this reaction for easy searching later + if (t == 1) then + i_fission = i_fission + 1 + this % index_fission(i_fission) = i + this % n_fission = this % n_fission + 1 + + ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<< + ! Before the secondary distribution refactor, when the angle/energy + ! distribution was uncorrelated, no angle was actually sampled. With + ! the refactor, an angle is always sampled for an uncorrelated + ! 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. + do k = 1, size(rx % products) + if (rx % products(k) % particle == NEUTRON) then + do m = 1, size(rx % products(k) % distribution) + associate (aedist => rx % products(k) % distribution(m) % obj) + select type (aedist) + type is (UncorrelatedAngleEnergy) + aedist % fission = .true. + end select + end associate + end do + end if + end do + ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<< + end if + end if ! fission + end do ! temperature + end associate ! rx + end do ! reactions ! Determine number of delayed neutron precursors if (this % fissionable) then @@ -497,17 +564,16 @@ module nuclide_header end if ! Calculate nu-fission cross section - if (this % fissionable) then - do i = 1, size(this % energy) - this % nu_fission(i) = this % nu(this % energy(i), EMISSION_TOTAL) * & - this % fission(i) - end do - else - this % nu_fission(:) = ZERO - end if - - ! Clear MTs set - call MTs % clear() + do t = 1, n_temperature + if (this % fissionable) then + do i = 1, size(this % sum_xs(t) % fission) + this % sum_xs(t) % nu_fission(i) = this % nu(this % grid(t) % energy(i), & + EMISSION_TOTAL) * this % sum_xs(t) % fission(i) + end do + else + this % sum_xs(t) % nu_fission(:) = ZERO + end if + end do end subroutine nuclide_create_derived !=============================================================================== @@ -575,86 +641,4 @@ module nuclide_header end function nuclide_nu - -!=============================================================================== -! NUCLIDE*_PRINT displays information about a continuous-energy neutron -! cross_section table and its reactions and secondary angle/energy distributions -!=============================================================================== - - subroutine nuclide_print(this, unit) - class(Nuclide), 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) - - ! 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 - - ! 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(size(this % reactions))) - - ! Information on each reaction - write(unit_,*) ' Reaction Q-value COM IE' - do i = 1, size(this % reactions) - 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 - - ! 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))) - - ! 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' - - ! Blank line at end of nuclide - write(unit_,*) - end subroutine nuclide_print - end module nuclide_header diff --git a/src/output.F90 b/src/output.F90 index 9e23f11d88..f8b0c5ab09 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -317,57 +317,6 @@ contains end subroutine print_particle -!=============================================================================== -! 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 -! as information about their secondary angle/energy distributions, how much -! memory is consumed, thresholds, etc. -!=============================================================================== - - subroutine write_xs_summary() - - integer :: i ! loop index - integer :: unit_xs ! cross_sections.out file unit - character(MAX_FILE_LEN) :: path ! path of summary file - - ! Create filename for log file - path = trim(path_output) // "cross_sections.out" - - ! Open log file for writing - open(NEWUNIT=unit_xs, FILE=path, STATUS='replace', ACTION='write') - - if (run_CE) then - ! Write header - call header("CROSS SECTION TABLES", unit=unit_xs) - - NUCLIDE_LOOP: do i = 1, n_nuclides_total - ! Print information about nuclide - call nuclides(i) % print(unit=unit_xs) - end do NUCLIDE_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 - ! Write header - call header("MGXS LIBRARY TABLES", unit=unit_xs) - NuclideMG_LOOP: do i = 1, n_nuclides_total - ! Print information about nuclide - call nuclides_mg(i) % obj % print(unit=unit_xs) - end do NuclideMG_LOOP - call header("MATERIAL MGXS TABLES", unit=unit_xs) - MATERIAL_LOOP: do i = 1, n_materials - ! Print information about Materials - call macro_xs(i) % obj % print(unit=unit_xs) - end do MATERIAL_LOOP - end if - - ! Close cross section summary file - close(unit_xs) - - end subroutine write_xs_summary - !=============================================================================== ! PRINT_COLUMNS displays a header listing what physical values will displayed ! below them diff --git a/src/particle_header.F90 b/src/particle_header.F90 index ee854aea37..53a503ce2e 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -88,6 +88,7 @@ module particle_header ! Temperature of the current cell real(8) :: sqrtkT ! sqrt(k_Boltzmann * temperature) in MeV + real(8) :: last_sqrtKT ! last temperature ! Statistical data integer :: n_collision ! # of collisions @@ -129,6 +130,7 @@ contains this % cell_born = NONE this % material = NONE this % last_material = NONE + this % last_sqrtkT = NONE this % wgt = ONE this % last_wgt = ONE this % absorb_wgt = ZERO diff --git a/src/physics.F90 b/src/physics.F90 index 00bd2c20c9..f1f6733097 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -59,7 +59,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 advance_prn_seed(n_nuc_zaid_total) + call advance_prn_seed(size(nuclides, kind=8)) call prn_set_stream(STREAM_TRACKING) endif @@ -200,6 +200,7 @@ contains integer :: i integer :: i_grid + integer :: i_temp real(8) :: f real(8) :: prob real(8) :: cutoff @@ -219,6 +220,7 @@ contains end if ! Get grid index and interpolatoin factor and sample fission cdf + i_temp = micro_xs(i_nuclide) % index_temp i_grid = micro_xs(i_nuclide) % index_grid f = micro_xs(i_nuclide) % interp_factor cutoff = prn() * micro_xs(i_nuclide) % fission @@ -229,13 +231,13 @@ contains FISSION_REACTION_LOOP: do i = 1, nuc % n_fission i_reaction = nuc % index_fission(i) - associate (rxn => nuc % reactions(i_reaction)) + associate (xs => nuc % reactions(i_reaction) % xs(i_temp)) ! if energy is below threshold for this reaction, skip it - if (i_grid < rxn % threshold) cycle + if (i_grid < xs % threshold) cycle ! add to cumulative probability - prob = prob + ((ONE - f)*rxn%sigma(i_grid - rxn%threshold + 1) & - + f*(rxn%sigma(i_grid - rxn%threshold + 2))) + prob = prob + ((ONE - f) * xs % value(i_grid - xs % threshold + 1) & + + f*(xs % value(i_grid - xs % threshold + 2))) end associate ! Create fission bank sites if fission occurs @@ -294,6 +296,7 @@ contains integer, intent(in) :: i_nuc_mat integer :: i + integer :: i_temp integer :: i_grid real(8) :: f real(8) :: prob @@ -301,6 +304,7 @@ contains real(8) :: uvw_new(3) ! outgoing uvw for iso-in-lab scattering real(8) :: uvw_old(3) ! incoming uvw for iso-in-lab scattering real(8) :: phi ! azimuthal angle for iso-in-lab scattering + real(8) :: kT ! temperature in MeV type(Nuclide), pointer :: nuc ! copy incoming direction @@ -308,6 +312,7 @@ contains ! Get pointer to nuclide and grid index/interpolation factor nuc => nuclides(i_nuclide) + i_temp = micro_xs(i_nuclide) % index_temp i_grid = micro_xs(i_nuclide) % index_grid f = micro_xs(i_nuclide) % interp_factor @@ -328,8 +333,15 @@ contains p % E, p % coord(1) % uvw, p % mu) else + ! Determine temperature +!!$ if (temperature_method == TEMPERATURE_MULTIPOLE) then +!!$ kT = p % sqrtkT**2 +!!$ else + kT = nuc % kTs(micro_xs(i_nuclide) % index_temp) +!!$ end if + ! Perform collision physics for elastic scattering - call elastic_scatter(i_nuclide, nuc % reactions(1), & + call elastic_scatter(i_nuclide, nuc % reactions(1), kT, & p % E, p % coord(1) % uvw, p % mu, p % wgt) end if @@ -352,22 +364,24 @@ contains &// trim(nuc % name)) end if - associate (rxn => nuc % reactions(i)) + associate (rx => nuc % reactions(i)) ! Skip fission reactions - if (rxn % MT == N_FISSION .or. rxn % MT == N_F .or. rxn % MT == N_NF & - .or. rxn % MT == N_2NF .or. rxn % MT == N_3NF) cycle + if (rx % MT == N_FISSION .or. rx % MT == N_F .or. rx % MT == N_NF & + .or. rx % MT == N_2NF .or. rx % MT == N_3NF) cycle ! some materials have gas production cross sections with MT > 200 that ! are duplicates. Also MT=4 is total level inelastic scattering which ! should be skipped - if (rxn % MT >= 200 .or. rxn % MT == N_LEVEL) cycle + if (rx % MT >= 200 .or. rx % MT == N_LEVEL) cycle - ! if energy is below threshold for this reaction, skip it - if (i_grid < rxn % threshold) cycle + associate (xs => rx % xs(i_temp)) + ! if energy is below threshold for this reaction, skip it + if (i_grid < xs % threshold) cycle - ! add to cumulative probability - prob = prob + ((ONE - f)*rxn%sigma(i_grid - rxn%threshold + 1) & - + f*(rxn%sigma(i_grid - rxn%threshold + 2))) + ! add to cumulative probability + prob = prob + ((ONE - f)*xs % value(i_grid - xs % threshold + 1) & + + f*(xs % value(i_grid - xs % threshold + 2))) + end associate end associate end do @@ -401,9 +415,10 @@ contains ! target. !=============================================================================== - subroutine elastic_scatter(i_nuclide, rxn, E, uvw, mu_lab, wgt) + subroutine elastic_scatter(i_nuclide, rxn, kT, E, uvw, mu_lab, wgt) integer, intent(in) :: i_nuclide type(Reaction), intent(in) :: rxn + real(8), intent(in) :: kT ! temperature in MeV real(8), intent(inout) :: E real(8), intent(inout) :: uvw(3) real(8), intent(out) :: mu_lab @@ -430,7 +445,7 @@ contains ! Sample velocity of target nucleus if (.not. micro_xs(i_nuclide) % use_ptable) then call sample_target_velocity(nuc, v_t, E, uvw, v_n, wgt, & - & micro_xs(i_nuclide) % elastic) + micro_xs(i_nuclide) % elastic, kT) else v_t = ZERO end if @@ -494,6 +509,7 @@ contains integer :: i ! incoming energy bin integer :: j ! outgoing energy bin integer :: k ! outgoing cosine bin + integer :: i_temp ! temperature index integer :: n_energy_out ! number of outgoing energy bins real(8) :: f ! interpolation factor real(8) :: r ! used for skewed sampling & continuous @@ -502,7 +518,6 @@ contains real(8) :: mu_ijk ! outgoing cosine k for E_in(i) and E_out(j) real(8) :: mu_i1jk ! outgoing cosine k for E_in(i+1) and E_out(j) real(8) :: prob ! probability for sampling Bragg edge - type(SAlphaBeta), pointer :: sab ! Following are needed only for SAB_SECONDARY_CONT scattering integer :: l ! sampled incoming E bin (is i or i + 1) real(8) :: E_i_1, E_i_J ! endpoints on outgoing grid i @@ -514,213 +529,216 @@ contains real(8) :: frac ! interpolation factor on outgoing energy real(8) :: r1 ! RNG for outgoing energy + i_temp = micro_xs(i_nuclide) % index_temp_sab + ! Get pointer to S(a,b) table - sab => sab_tables(i_sab) + associate (sab => sab_tables(i_sab) % data(i_temp)) - ! Determine whether inelastic or elastic scattering will occur - if (prn() < micro_xs(i_nuclide) % elastic_sab / & - micro_xs(i_nuclide) % elastic) then - ! elastic scattering + ! Determine whether inelastic or elastic scattering will occur + if (prn() < micro_xs(i_nuclide) % elastic_sab / & + micro_xs(i_nuclide) % elastic) then + ! elastic scattering - ! Get index and interpolation factor for elastic grid - if (E < sab % elastic_e_in(1)) then - i = 1 - f = ZERO - else - i = binary_search(sab % elastic_e_in, sab % n_elastic_e_in, E) - f = (E - sab%elastic_e_in(i)) / & - (sab%elastic_e_in(i+1) - sab%elastic_e_in(i)) - end if - - ! Select treatment based on elastic mode - if (sab % elastic_mode == SAB_ELASTIC_DISCRETE) then - ! With this treatment, we interpolate between two discrete cosines - ! corresponding to neighboring incoming energies. This is used for - ! data derived in the incoherent approximation - - ! Sample outgoing cosine bin - k = 1 + int(prn() * sab % n_elastic_mu) - - ! Determine outgoing cosine corresponding to E_in(i) and E_in(i+1) - mu_ijk = sab % elastic_mu(k,i) - mu_i1jk = sab % elastic_mu(k,i+1) - - ! Cosine of angle between incoming and outgoing neutron - mu = (1 - f)*mu_ijk + f*mu_i1jk - - elseif (sab % elastic_mode == SAB_ELASTIC_EXACT) then - ! This treatment is used for data derived in the coherent - ! approximation, i.e. for crystalline structures that have Bragg - ! edges. - - ! Sample a Bragg edge between 1 and i - prob = prn() * sab % elastic_P(i+1) - if (prob < sab % elastic_P(1)) then - k = 1 + ! Get index and interpolation factor for elastic grid + if (E < sab % elastic_e_in(1)) then + i = 1 + f = ZERO else - k = binary_search(sab % elastic_P(1:i+1), i+1, prob) + i = binary_search(sab % elastic_e_in, sab % n_elastic_e_in, E) + f = (E - sab%elastic_e_in(i)) / & + (sab%elastic_e_in(i+1) - sab%elastic_e_in(i)) end if - ! Characteristic scattering cosine for this Bragg edge - mu = ONE - TWO*sab % elastic_e_in(k) / E + ! Select treatment based on elastic mode + if (sab % elastic_mode == SAB_ELASTIC_DISCRETE) then + ! With this treatment, we interpolate between two discrete cosines + ! corresponding to neighboring incoming energies. This is used for + ! data derived in the incoherent approximation - end if + ! Sample outgoing cosine bin + k = 1 + int(prn() * sab % n_elastic_mu) - ! Outgoing energy is same as incoming energy -- no need to do anything + ! Determine outgoing cosine corresponding to E_in(i) and E_in(i+1) + mu_ijk = sab % elastic_mu(k,i) + mu_i1jk = sab % elastic_mu(k,i+1) - else - ! Perform inelastic calculations + ! Cosine of angle between incoming and outgoing neutron + mu = (1 - f)*mu_ijk + f*mu_i1jk - ! Get index and interpolation factor for inelastic grid - if (E < sab % inelastic_e_in(1)) then - i = 1 - f = ZERO - else - i = binary_search(sab % inelastic_e_in, sab % n_inelastic_e_in, E) - f = (E - sab%inelastic_e_in(i)) / & - (sab%inelastic_e_in(i+1) - sab%inelastic_e_in(i)) - end if + elseif (sab % elastic_mode == SAB_ELASTIC_EXACT) then + ! This treatment is used for data derived in the coherent + ! approximation, i.e. for crystalline structures that have Bragg + ! edges. - ! Now that we have an incoming energy bin, we need to determine the - ! outgoing energy bin. This will depend on the "secondary energy - ! mode". If the mode is 0, then the outgoing energy bin is chosen from a - ! set of equally-likely bins. If the mode is 1, then the first - ! two and last two bins are skewed to have lower probabilities than the - ! other bins (0.1 for the first and last bins and 0.4 for the second and - ! second to last bins, relative to a normal bin probability of 1). - ! Finally, if the mode is 2, then a continuous distribution (with - ! accompanying PDF and CDF is utilized) - - if ((sab % secondary_mode == SAB_SECONDARY_EQUAL) .or. & - (sab % secondary_mode == SAB_SECONDARY_SKEWED)) then - if (sab % secondary_mode == SAB_SECONDARY_EQUAL) then - ! All bins equally likely - - j = 1 + int(prn() * sab % n_inelastic_e_out) - elseif (sab % secondary_mode == SAB_SECONDARY_SKEWED) then - ! Distribution skewed away from edge points - - ! Determine number of outgoing energy and angle bins - n_energy_out = sab % n_inelastic_e_out - - r = prn() * (n_energy_out - 3) - if (r > ONE) then - ! equally likely N-4 middle bins - j = int(r) + 2 - elseif (r > 0.6_8) then - ! second to last bin has relative probability of 0.4 - j = n_energy_out - 1 - elseif (r > HALF) then - ! last bin has relative probability of 0.1 - j = n_energy_out - elseif (r > 0.1_8) then - ! second bin has relative probability of 0.4 - j = 2 + ! Sample a Bragg edge between 1 and i + prob = prn() * sab % elastic_P(i+1) + if (prob < sab % elastic_P(1)) then + k = 1 else - ! first bin has relative probability of 0.1 - j = 1 + k = binary_search(sab % elastic_P(1:i+1), i+1, prob) end if + + ! Characteristic scattering cosine for this Bragg edge + mu = ONE - TWO*sab % elastic_e_in(k) / E + end if - ! Determine outgoing energy corresponding to E_in(i) and E_in(i+1) - E_ij = sab % inelastic_e_out(j,i) - E_i1j = sab % inelastic_e_out(j,i+1) - - ! Outgoing energy - E = (1 - f)*E_ij + f*E_i1j - - ! Sample outgoing cosine bin - k = 1 + int(prn() * sab % n_inelastic_mu) - - ! Determine outgoing cosine corresponding to E_in(i) and E_in(i+1) - mu_ijk = sab % inelastic_mu(k,j,i) - mu_i1jk = sab % inelastic_mu(k,j,i+1) - - ! Cosine of angle between incoming and outgoing neutron - mu = (1 - f)*mu_ijk + f*mu_i1jk - - else if (sab % secondary_mode == SAB_SECONDARY_CONT) then - ! Continuous secondary energy - this is to be similar to - ! Law 61 interpolation on outgoing energy - - ! Sample between ith and (i+1)th bin - r = prn() - if (f > r) then - l = i + 1 - else - l = i - end if - - ! Determine endpoints on grid i - n_energy_out = sab % inelastic_data(i) % n_e_out - E_i_1 = sab % inelastic_data(i) % e_out(1) - E_i_J = sab % inelastic_data(i) % e_out(n_energy_out) - - ! Determine endpoints on grid i + 1 - n_energy_out = sab % inelastic_data(i + 1) % n_e_out - E_i1_1 = sab % inelastic_data(i + 1) % e_out(1) - E_i1_J = sab % inelastic_data(i + 1) % e_out(n_energy_out) - - E_1 = E_i_1 + f * (E_i1_1 - E_i_1) - E_J = E_i_J + f * (E_i1_J - E_i_J) - - ! Determine outgoing energy bin - ! (First reset n_energy_out to the right value) - n_energy_out = sab % inelastic_data(l) % n_e_out - r1 = prn() - c_j = sab % inelastic_data(l) % e_out_cdf(1) - do j = 1, n_energy_out - 1 - c_j1 = sab % inelastic_data(l) % e_out_cdf(j + 1) - if (r1 < c_j1) exit - c_j = c_j1 - end do - - ! check to make sure k is <= n_energy_out - 1 - j = min(j, n_energy_out - 1) - - ! Get the data to interpolate between - E_l_j = sab % inelastic_data(l) % e_out(j) - p_l_j = sab % inelastic_data(l) % e_out_pdf(j) - - ! Next part assumes linear-linear interpolation in standard - E_l_j1 = sab % inelastic_data(l) % e_out(j + 1) - p_l_j1 = sab % inelastic_data(l) % e_out_pdf(j + 1) - - ! Find secondary energy (variable E) - frac = (p_l_j1 - p_l_j) / (E_l_j1 - E_l_j) - if (frac == ZERO) then - E = E_l_j + (r1 - c_j) / p_l_j - else - E = E_l_j + (sqrt(max(ZERO, p_l_j * p_l_j + & - TWO * frac * (r1 - c_j))) - p_l_j) / frac - end if - - ! Now interpolate between incident energy bins i and i + 1 - if (l == i) then - E = E_1 + (E - E_i_1) * (E_J - E_1) / (E_i_J - E_i_1) - else - E = E_1 + (E - E_i1_1) * (E_J - E_1) / (E_i1_J - E_i1_1) - end if - - ! Find angular distribution for closest outgoing energy bin - if (r1 - c_j < c_j1 - r1) then - j = j - else - j = j + 1 - end if - - ! Sample outgoing cosine bin - k = 1 + int(prn() * sab % n_inelastic_mu) - - ! Will use mu from the randomly chosen incoming and closest outgoing - ! energy bins - mu = sab % inelastic_data(l) % mu(k, j) + ! Outgoing energy is same as incoming energy -- no need to do anything else - call fatal_error("Invalid secondary energy mode on S(a,b) table " & - &// trim(sab % name)) - end if ! (inelastic secondary energy treatment) - end if ! (elastic or inelastic) + ! Perform inelastic calculations + + ! Get index and interpolation factor for inelastic grid + if (E < sab % inelastic_e_in(1)) then + i = 1 + f = ZERO + else + i = binary_search(sab % inelastic_e_in, sab % n_inelastic_e_in, E) + f = (E - sab%inelastic_e_in(i)) / & + (sab%inelastic_e_in(i+1) - sab%inelastic_e_in(i)) + end if + + ! Now that we have an incoming energy bin, we need to determine the + ! outgoing energy bin. This will depend on the "secondary energy + ! mode". If the mode is 0, then the outgoing energy bin is chosen from a + ! set of equally-likely bins. If the mode is 1, then the first + ! two and last two bins are skewed to have lower probabilities than the + ! other bins (0.1 for the first and last bins and 0.4 for the second and + ! second to last bins, relative to a normal bin probability of 1). + ! Finally, if the mode is 2, then a continuous distribution (with + ! accompanying PDF and CDF is utilized) + + if ((sab_tables(i_sab) % secondary_mode == SAB_SECONDARY_EQUAL) .or. & + (sab_tables(i_sab) % secondary_mode == SAB_SECONDARY_SKEWED)) then + if (sab_tables(i_sab) % secondary_mode == SAB_SECONDARY_EQUAL) then + ! All bins equally likely + + j = 1 + int(prn() * sab % n_inelastic_e_out) + elseif (sab_tables(i_sab) % secondary_mode == SAB_SECONDARY_SKEWED) then + ! Distribution skewed away from edge points + + ! Determine number of outgoing energy and angle bins + n_energy_out = sab % n_inelastic_e_out + + r = prn() * (n_energy_out - 3) + if (r > ONE) then + ! equally likely N-4 middle bins + j = int(r) + 2 + elseif (r > 0.6_8) then + ! second to last bin has relative probability of 0.4 + j = n_energy_out - 1 + elseif (r > HALF) then + ! last bin has relative probability of 0.1 + j = n_energy_out + elseif (r > 0.1_8) then + ! second bin has relative probability of 0.4 + j = 2 + else + ! first bin has relative probability of 0.1 + j = 1 + end if + end if + + ! Determine outgoing energy corresponding to E_in(i) and E_in(i+1) + E_ij = sab % inelastic_e_out(j,i) + E_i1j = sab % inelastic_e_out(j,i+1) + + ! Outgoing energy + E = (1 - f)*E_ij + f*E_i1j + + ! Sample outgoing cosine bin + k = 1 + int(prn() * sab % n_inelastic_mu) + + ! Determine outgoing cosine corresponding to E_in(i) and E_in(i+1) + mu_ijk = sab % inelastic_mu(k,j,i) + mu_i1jk = sab % inelastic_mu(k,j,i+1) + + ! Cosine of angle between incoming and outgoing neutron + mu = (1 - f)*mu_ijk + f*mu_i1jk + + else if (sab_tables(i_sab) % secondary_mode == SAB_SECONDARY_CONT) then + ! Continuous secondary energy - this is to be similar to + ! Law 61 interpolation on outgoing energy + + ! Sample between ith and (i+1)th bin + r = prn() + if (f > r) then + l = i + 1 + else + l = i + end if + + ! Determine endpoints on grid i + n_energy_out = sab % inelastic_data(i) % n_e_out + E_i_1 = sab % inelastic_data(i) % e_out(1) + E_i_J = sab % inelastic_data(i) % e_out(n_energy_out) + + ! Determine endpoints on grid i + 1 + n_energy_out = sab % inelastic_data(i + 1) % n_e_out + E_i1_1 = sab % inelastic_data(i + 1) % e_out(1) + E_i1_J = sab % inelastic_data(i + 1) % e_out(n_energy_out) + + E_1 = E_i_1 + f * (E_i1_1 - E_i_1) + E_J = E_i_J + f * (E_i1_J - E_i_J) + + ! Determine outgoing energy bin + ! (First reset n_energy_out to the right value) + n_energy_out = sab % inelastic_data(l) % n_e_out + r1 = prn() + c_j = sab % inelastic_data(l) % e_out_cdf(1) + do j = 1, n_energy_out - 1 + c_j1 = sab % inelastic_data(l) % e_out_cdf(j + 1) + if (r1 < c_j1) exit + c_j = c_j1 + end do + + ! check to make sure k is <= n_energy_out - 1 + j = min(j, n_energy_out - 1) + + ! Get the data to interpolate between + E_l_j = sab % inelastic_data(l) % e_out(j) + p_l_j = sab % inelastic_data(l) % e_out_pdf(j) + + ! Next part assumes linear-linear interpolation in standard + E_l_j1 = sab % inelastic_data(l) % e_out(j + 1) + p_l_j1 = sab % inelastic_data(l) % e_out_pdf(j + 1) + + ! Find secondary energy (variable E) + frac = (p_l_j1 - p_l_j) / (E_l_j1 - E_l_j) + if (frac == ZERO) then + E = E_l_j + (r1 - c_j) / p_l_j + else + E = E_l_j + (sqrt(max(ZERO, p_l_j * p_l_j + & + TWO * frac * (r1 - c_j))) - p_l_j) / frac + end if + + ! Now interpolate between incident energy bins i and i + 1 + if (l == i) then + E = E_1 + (E - E_i_1) * (E_J - E_1) / (E_i_J - E_i_1) + else + E = E_1 + (E - E_i1_1) * (E_J - E_1) / (E_i1_J - E_i1_1) + end if + + ! Find angular distribution for closest outgoing energy bin + if (r1 - c_j < c_j1 - r1) then + j = j + else + j = j + 1 + end if + + ! Sample outgoing cosine bin + k = 1 + int(prn() * sab % n_inelastic_mu) + + ! Will use mu from the randomly chosen incoming and closest outgoing + ! energy bins + mu = sab % inelastic_data(l) % mu(k, j) + + else + call fatal_error("Invalid secondary energy mode on S(a,b) table " & + // trim(sab_tables(i_sab) % name)) + end if ! (inelastic secondary energy treatment) + end if ! (elastic or inelastic) + end associate ! Because of floating-point roundoff, it may be possible for mu to be ! outside of the range [-1,1). In these cases, we just set mu to exactly @@ -741,19 +759,19 @@ contains ! implemented here. !=============================================================================== - subroutine sample_target_velocity(nuc, v_target, E, uvw, v_neut, wgt, xs_eff) + subroutine sample_target_velocity(nuc, v_target, E, uvw, v_neut, wgt, xs_eff, kT) type(Nuclide), 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 real(8), intent(in) :: uvw(3) ! direction cosines + real(8), intent(in) :: v_neut(3) ! neutron velocity real(8), intent(inout) :: wgt ! particle weight + real(8), intent(in) :: xs_eff ! effective elastic xs at temperature T + real(8), intent(in) :: kT ! equilibrium temperature of target in MeV real(8) :: awr ! target/neutron mass ratio - real(8) :: kT ! equilibrium temperature of target in MeV real(8) :: E_rel ! trial relative energy real(8) :: xs_0K ! 0K xs at E_rel - real(8) :: xs_eff ! effective elastic xs at temperature T real(8) :: wcf ! weight correction factor real(8) :: E_red ! reduced energy (same as used by Cullen in SIGMA1) real(8) :: E_low ! lowest practical relative energy @@ -782,7 +800,6 @@ contains character(80) :: sampling_scheme ! method of target velocity sampling - kT = nuc % kT awr = nuc % awr ! check if nuclide is a resonant scatterer @@ -817,12 +834,12 @@ contains case ('cxs') ! sample target velocity with the constant cross section (cxs) approx. - call sample_cxs_target_velocity(nuc, v_target, E, uvw) + call sample_cxs_target_velocity(nuc, v_target, E, uvw, kT) case ('wcm') ! sample target velocity with the constant cross section (cxs) approx. - call sample_cxs_target_velocity(nuc, v_target, E, uvw) + call sample_cxs_target_velocity(nuc, v_target, E, uvw, kT) ! adjust weight as prescribed by the weight correction method (wcm) E_rel = dot_product((v_neut - v_target), (v_neut - v_target)) @@ -874,7 +891,7 @@ contains do ! sample target velocity with the constant cross section (cxs) approx. - call sample_cxs_target_velocity(nuc, v_target, E, uvw) + call sample_cxs_target_velocity(nuc, v_target, E, uvw, kT) ! perform Doppler broadening rejection correction (dbrc) E_rel = dot_product((v_neut - v_target), (v_neut - v_target)) @@ -986,13 +1003,13 @@ contains ! can be found in FRA-TM-123. !=============================================================================== - subroutine sample_cxs_target_velocity(nuc, v_target, E, uvw) + subroutine sample_cxs_target_velocity(nuc, v_target, E, uvw, kT) type(Nuclide), 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) + real(8), intent(in) :: kT ! equilibrium temperature of target in MeV - real(8) :: kT ! equilibrium temperature of target in MeV real(8) :: awr ! target/neutron mass ratio real(8) :: alpha ! probability of sampling f2 over f1 real(8) :: mu ! cosine of angle between neutron and target vel @@ -1004,7 +1021,6 @@ contains real(8) :: beta_vt_sq ! (beta * speed of target)^2 real(8) :: vt ! speed of target - kT = nuc % kT awr = nuc % awr beta_vn = sqrt(awr * E / kT) diff --git a/src/reaction_header.F90 b/src/reaction_header.F90 index c0501d43ea..a7896e9ff3 100644 --- a/src/reaction_header.F90 +++ b/src/reaction_header.F90 @@ -7,6 +7,7 @@ module reaction_header use hdf5_interface, only: read_attribute, open_group, close_group, & open_dataset, read_dataset, close_dataset, get_shape use product_header, only: ReactionProduct + use stl_vector, only: VectorInt use string, only: to_str, starts_with implicit none @@ -16,12 +17,16 @@ module reaction_header ! distributions for a single reaction in a continuous-energy ACE-format table !=============================================================================== + type TemperatureXS + integer :: threshold ! Energy grid index of threshold + real(8), allocatable :: value(:) ! Cross section values + end type TemperatureXS + 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(TemperatureXS), allocatable :: xs(:) type(ReactionProduct), allocatable :: products(:) contains procedure :: from_hdf5 => reaction_from_hdf5 @@ -29,10 +34,10 @@ module reaction_header contains - subroutine reaction_from_hdf5(this, group_id, temperature) + subroutine reaction_from_hdf5(this, group_id, temperatures) class(Reaction), intent(inout) :: this integer(HID_T), intent(in) :: group_id - character(6), intent(in) :: temperature + type(VectorInt), intent(in) :: temperatures integer :: i integer :: cm @@ -42,11 +47,12 @@ contains integer :: n_links integer :: hdf5_err integer(HID_T) :: pgroup - integer(HID_T) :: xs, xs_group + integer(HID_T) :: xs, temp_group integer(SIZE_T) :: name_len integer(HSIZE_T) :: dims(1) integer(HSIZE_T) :: j character(MAX_WORD_LEN) :: name + character(MAX_WORD_LEN) :: temp_str ! temperature dataset name, e.g. '294K' call read_attribute(this % Q_value, group_id, 'Q_value') call read_attribute(this % MT, group_id, 'mt') @@ -54,14 +60,18 @@ contains this % scatter_in_cm = (cm == 1) ! Read cross section and threshold_idx data - xs_group = open_group(group_id, temperature) - xs = open_dataset(xs_group, 'xs') - call read_attribute(this % threshold, xs, 'threshold_idx') - call get_shape(xs, dims) - allocate(this % sigma(dims(1))) - call read_dataset(this % sigma, xs) - call close_dataset(xs) - call close_group(xs_group) + allocate(this % xs(temperatures % size())) + do i = 1, temperatures % size() + temp_str = trim(to_str(temperatures % data(i))) // "K" + temp_group = open_group(group_id, temp_str) + xs = open_dataset(temp_group, 'xs') + call read_attribute(this % xs(i) % threshold, xs, 'threshold_idx') + call get_shape(xs, dims) + allocate(this % xs(i) % value(dims(1))) + call read_dataset(this % xs(i) % value, xs) + call close_dataset(xs) + call close_group(temp_group) + end do ! Determine number of products call h5gget_info_f(group_id, storage_type, n_links, max_corder, hdf5_err) diff --git a/src/relaxng/materials.rnc b/src/relaxng/materials.rnc index 4d1b217db0..c5f4efd6f3 100644 --- a/src/relaxng/materials.rnc +++ b/src/relaxng/materials.rnc @@ -4,7 +4,7 @@ element materials { (element name { xsd:string { maxLength="52" } } | attribute name { xsd:string { maxLength="52" } })? & - element temperature { xsd:string { maxLength = "6" } }? & + element temperature { xsd:double }? & element density { (element value { xsd:double } | attribute value { xsd:double })? & @@ -41,7 +41,5 @@ element materials { element sab { (element name { xsd:string } | attribute name { xsd:string }) }* - }+ & - - element default_temperature { xsd:string { maxLength = "6" } }? + }+ } diff --git a/src/relaxng/materials.rng b/src/relaxng/materials.rng index 20b7b86ecb..3c92dc94a4 100644 --- a/src/relaxng/materials.rng +++ b/src/relaxng/materials.rng @@ -1,197 +1,186 @@ - - - - + + + + + + + + + + + + - - + + + 52 + - - + + + 52 + - + + + + + + + + + + + + + + + + + + - + - 52 + 10 - + - 52 + 10 - - - - - 6 - - - - + + + + + + + + + + + + - - + + + data + iso-in-lab + - - + + + data + iso-in-lab + - - - 10 - - - - - 10 - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - data - iso-in-lab - - - - - data - iso-in-lab - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + + 2 + - + + 2 + - - - - - + - - - 2 - + + + data + iso-in-lab + - - - 2 - + + + data + iso-in-lab + - - - - - data - iso-in-lab - - - - - data - iso-in-lab - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - 6 - - - - + + + + + + + + + + + + + + + + + + diff --git a/src/relaxng/settings.rnc b/src/relaxng/settings.rnc index c554dfa753..70550a40f7 100644 --- a/src/relaxng/settings.rnc +++ b/src/relaxng/settings.rnc @@ -128,6 +128,12 @@ element settings { element survival_biasing { xsd:boolean }? & + element temperature_default { xsd:double }? & + + element temperature_method { xsd:string }? & + + element temperature_tolerance { xsd:double }? & + element threads { xsd:positiveInteger }? & element trace { list { xsd:positiveInteger+ } }? & diff --git a/src/relaxng/settings.rng b/src/relaxng/settings.rng index 0719bcbc66..246c78e68d 100644 --- a/src/relaxng/settings.rng +++ b/src/relaxng/settings.rng @@ -565,6 +565,21 @@ + + + + + + + + + + + + + + + diff --git a/src/sab_header.F90 b/src/sab_header.F90 index 5facd3fc3f..c8619efa32 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -2,14 +2,17 @@ module sab_header use, intrinsic :: ISO_FORTRAN_ENV + use algorithm, only: find, sort use constants + use dict_header, only: DictIntInt use distribution_univariate, only: Tabular - use error, only: warning + use error, only: warning, fatal_error use hdf5, only: HID_T, HSIZE_T, SIZE_T use h5lt, only: h5ltpath_valid_f, h5iget_name_f use hdf5_interface, only: read_attribute, get_shape, open_group, close_group, & open_dataset, read_dataset, close_dataset, get_datasets use secondary_correlated, only: CorrelatedAngleEnergy + use stl_vector, only: VectorInt, VectorReal use string, only: to_str, str_to_int implicit none @@ -33,13 +36,7 @@ module sab_header ! of light isotopes such as water, graphite, Be, etc !=============================================================================== - type SAlphaBeta - character(100) :: 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 - + type SabData ! threshold for S(a,b) treatment (usually ~4 eV) real(8) :: threshold_inelastic real(8) :: threshold_elastic = ZERO @@ -48,7 +45,6 @@ module sab_header 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 @@ -67,101 +63,35 @@ module sab_header real(8), allocatable :: elastic_e_in(:) real(8), allocatable :: elastic_P(:) real(8), allocatable :: elastic_mu(:,:) + end type SabData + + type SAlphaBeta + character(100) :: name ! name of table, e.g. lwtr.10t + real(8) :: awr ! weight of nucleus in neutron masses + real(8), allocatable :: kTs(:) ! temperatures in MeV (k*T) + character(10), allocatable :: nuclides(:) ! List of valid nuclides + integer :: secondary_mode ! secondary mode (equal/skewed/continuous) + + ! cross sections and distributions at each temperature + type(SabData), allocatable :: data(:) contains - procedure :: print => salphabeta_print procedure :: from_hdf5 => salphabeta_from_hdf5 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 salphabeta_print(this, unit) - 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 this % 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 salphabeta_print - - subroutine salphabeta_from_hdf5(this, group_id, temperature) + subroutine salphabeta_from_hdf5(this, group_id, temperature, tolerance) class(SAlphaBeta), intent(inout) :: this integer(HID_T), intent(in) :: group_id - character(6), intent(in) :: temperature + type(VectorReal), intent(in) :: temperature ! list of temperatures + real(8), intent(in) :: tolerance integer :: i, j + integer :: n + integer :: t integer :: n_energy, n_energy_out, n_mu + integer :: i_closest + integer :: n_temperature integer :: hdf5_err integer(SIZE_T) :: name_len, name_file_len integer(HID_T) :: T_group @@ -175,10 +105,13 @@ contains character(20) :: type logical :: exists type(CorrelatedAngleEnergy) :: correlated_dist - character(MAX_FILE_LEN), allocatable :: temperatures(:) - integer, allocatable :: temperatures_integer(:) - character(6) :: my_temperature - integer :: temperature_integer + + character(MAX_WORD_LEN) :: temp_str + character(MAX_FILE_LEN), allocatable :: dset_names(:) + real(8), allocatable :: temps_available(:) ! temperatures available + real(8) :: temp_desired + real(8) :: temp_actual + type(VectorInt) :: temps_to_read ! Get name of table from group name_len = len(this % name) @@ -188,7 +121,7 @@ contains this % name = trim(this % name(2:)) call read_attribute(this % awr, group_id, 'atomic_weight_ratio') - call read_attribute(this % zaid, group_id, 'zaids') + call read_attribute(this % nuclides, group_id, 'nuclides') call read_attribute(type, group_id, 'secondary_mode') select case (type) case ('equal') @@ -198,168 +131,185 @@ contains case ('continuous') this % secondary_mode = SAB_SECONDARY_CONT end select - this % n_zaid = size(this % zaid) + + ! Read temperatures kT_group = open_group(group_id, 'kTs') - ! Before accessing the temperature data, see if the user-provied temperature - ! exists. We can find this out by looking at the datasets within kT_group - temperature_integer = & - str_to_int(temperature(1: len_trim(adjustl(temperature)) - 1)) - call get_datasets(kT_group, temperatures) - allocate(temperatures_integer(size(temperatures))) - do i = 1, size(temperatures) - temperatures_integer(i) = & - str_to_int(temperatures(i)(1: len_trim(adjustl(temperatures(i))) - 1)) + ! Determine temperatures available + call get_datasets(kT_group, dset_names) + allocate(temps_available(size(dset_names))) + do i = 1, size(dset_names) + ! Read temperature value + call read_dataset(temps_available(i), kT_group, trim(dset_names(i))) + temps_available(i) = temps_available(i) / K_BOLTZMANN end do - my_temperature = & - temperatures(minloc(abs(temperature_integer - temperatures_integer), & - dim=1)) - ! Now print a warning if there is no matching temperature and then use the - ! closest temperature - if (temperature /= my_temperature) then - if (temperature == '0K') then - call warning(trim(this % name) // " does not contain 0K data & - &needed for the resonance scattering options selected") + ! Determine actual temperatures to read + TEMP_LOOP: do i = 1, temperature % size() + temp_desired = temperature % data(i) + i_closest = minloc(abs(temps_available - temp_desired), dim=1) + temp_actual = temps_available(i_closest) + if (abs(temp_actual - temp_desired) < tolerance) then + if (find(temps_to_read, nint(temp_actual)) == -1) then + call temps_to_read % push_back(nint(temp_actual)) + end if else - call warning(trim(this % name) // " does not contain data at a & - &temperature of " // trim(temperature) // "; using the & - &nearest available temperature of " // trim(my_temperature)) + call fatal_error("Nuclear data library does not contain cross sections & + &for " // trim(this % name) // " at or near " // & + trim(to_str(nint(temp_desired))) // " K.") end if - end if + end do TEMP_LOOP - kT_dset = open_dataset(kT_group, my_temperature) - call read_dataset(this % kT, kT_dset) - call close_dataset(kT_dset) - call close_group(kT_group) + ! TODO: If using interpolation, add a block to add bounding temperatures for + ! each - ! Open my_temperature group - T_group = open_group(group_id, my_temperature) + ! Sort temperatures to read + call sort(temps_to_read) - ! Coherent elastic data - call h5ltpath_valid_f(T_group, 'elastic', .true., exists, hdf5_err) - if (exists) then - ! Read cross section data - elastic_group = open_group(T_group, 'elastic') - dset_id = open_dataset(elastic_group, 'xs') - call read_attribute(type, dset_id, 'type') - call get_shape(dset_id, dims2) - allocate(temp(dims2(1), dims2(2))) - call read_dataset(temp, dset_id) - call close_dataset(dset_id) + n_temperature = temps_to_read % size() + allocate(this % kTs(n_temperature)) + allocate(this % data(n_temperature)) - ! Set cross section data and type - this % n_elastic_e_in = int(dims2(1), 4) - allocate(this % elastic_e_in(this % n_elastic_e_in)) - allocate(this % elastic_P(this % n_elastic_e_in)) - this % elastic_e_in(:) = temp(:, 1) - this % elastic_P(:) = temp(:, 2) - select case (type) - case ('tab1') - this % elastic_mode = SAB_ELASTIC_DISCRETE - case ('bragg') - this % elastic_mode = SAB_ELASTIC_EXACT - end select - deallocate(temp) + do t = 1, n_temperature + ! Get temperature as a string + temp_str = trim(to_str(temps_to_read % data(t))) // "K" - ! Set elastic threshold - this % threshold_elastic = this % elastic_e_in(this % n_elastic_e_in) + ! Read exact temperature value + call read_dataset(this % kTs(t), kT_group, temp_str) - ! Read angle distribution - if (this % elastic_mode /= SAB_ELASTIC_EXACT) then - dset_id = open_dataset(elastic_group, 'mu_out') + ! Open group for temperature i + T_group = open_group(group_id, temp_str) + + ! Coherent elastic data + call h5ltpath_valid_f(T_group, 'elastic', .true., exists, hdf5_err) + if (exists) then + ! Read cross section data + elastic_group = open_group(T_group, 'elastic') + dset_id = open_dataset(elastic_group, 'xs') + call read_attribute(type, dset_id, 'type') call get_shape(dset_id, dims2) - this % n_elastic_mu = int(dims2(1), 4) - allocate(this % elastic_mu(dims2(1), dims2(2))) - call read_dataset(this % elastic_mu, dset_id) + allocate(temp(dims2(1), dims2(2))) + call read_dataset(temp, dset_id) call close_dataset(dset_id) - end if - call close_group(elastic_group) - end if + ! Set cross section data and type + this % data(t) % n_elastic_e_in = int(dims2(1), 4) + allocate(this % data(t) % elastic_e_in(this % data(t) % n_elastic_e_in)) + allocate(this % data(t) % elastic_P(this % data(t) % n_elastic_e_in)) + this % data(t) % elastic_e_in(:) = temp(:, 1) + this % data(t) % elastic_P(:) = temp(:, 2) + select case (type) + case ('tab1') + this % data(t) % elastic_mode = SAB_ELASTIC_DISCRETE + case ('bragg') + this % data(t) % elastic_mode = SAB_ELASTIC_EXACT + end select + deallocate(temp) - ! Inelastic data - call h5ltpath_valid_f(T_group, 'inelastic', .true., exists, hdf5_err) - if (exists) then - ! Read type of inelastic data - inelastic_group = open_group(T_group, 'inelastic') - - ! Read cross section data - dset_id = open_dataset(inelastic_group, 'xs') - call get_shape(dset_id, dims2) - allocate(temp(dims2(1), dims2(2))) - call read_dataset(temp, dset_id) - call close_dataset(dset_id) - - ! Set cross section data - this % n_inelastic_e_in = int(dims2(1), 4) - allocate(this % inelastic_e_in(this % n_inelastic_e_in)) - allocate(this % inelastic_sigma(this % n_inelastic_e_in)) - this % inelastic_e_in(:) = temp(:, 1) - this % inelastic_sigma(:) = temp(:, 2) - deallocate(temp) - - ! Set inelastic threshold - this % threshold_inelastic = this % inelastic_e_in(this % n_inelastic_e_in) - - if (this % secondary_mode /= SAB_SECONDARY_CONT) then - ! Read energy distribution - dset_id = open_dataset(inelastic_group, 'energy_out') - call get_shape(dset_id, dims2) - this % n_inelastic_e_out = int(dims2(1), 4) - allocate(this % inelastic_e_out(dims2(1), dims2(2))) - call read_dataset(this % inelastic_e_out, dset_id) - call close_dataset(dset_id) + ! Set elastic threshold + this % data(t) % threshold_elastic = this % data(t) % elastic_e_in(& + this % data(t) % n_elastic_e_in) ! Read angle distribution - dset_id = open_dataset(inelastic_group, 'mu_out') - call get_shape(dset_id, dims3) - this % n_inelastic_mu = int(dims3(1), 4) - allocate(this % inelastic_mu(dims3(1), dims3(2), dims3(3))) - call read_dataset(this % inelastic_mu, dset_id) - call close_dataset(dset_id) - else - ! Read correlated angle-energy distribution - call correlated_dist % from_hdf5(inelastic_group) + if (this % data(t) % elastic_mode /= SAB_ELASTIC_EXACT) then + dset_id = open_dataset(elastic_group, 'mu_out') + call get_shape(dset_id, dims2) + this % data(t) % n_elastic_mu = int(dims2(1), 4) + allocate(this % data(t) % elastic_mu(dims2(1), dims2(2))) + call read_dataset(this % data(t) % elastic_mu, dset_id) + call close_dataset(dset_id) + end if - ! Convert to S(a,b) native format - n_energy = size(correlated_dist % energy) - allocate(this % inelastic_data(n_energy)) - do i = 1, n_energy - associate (edist => correlated_dist % distribution(i)) - ! Get number of outgoing energies for incoming energy i - n_energy_out = size(edist % e_out) - this % inelastic_data(i) % n_e_out = n_energy_out - allocate(this % inelastic_data(i) % e_out(n_energy_out)) - allocate(this % inelastic_data(i) % e_out_pdf(n_energy_out)) - allocate(this % inelastic_data(i) % e_out_cdf(n_energy_out)) - - ! Copy outgoing energy distribution - this % inelastic_data(i) % e_out(:) = edist % e_out - this % inelastic_data(i) % e_out_pdf(:) = edist % p - this % inelastic_data(i) % e_out_cdf(:) = edist % c - - do j = 1, n_energy_out - select type (adist => edist % angle(j) % obj) - type is (Tabular) - ! On first pass, allocate space for angles - if (j == 1) then - n_mu = size(adist % x) - this % n_inelastic_mu = n_mu - allocate(this % inelastic_data(i) % mu(n_mu, n_energy_out)) - end if - - ! Copy outgoing angles - this % inelastic_data(i) % mu(:, j) = adist % x - end select - end do - end associate - end do + call close_group(elastic_group) end if - call close_group(inelastic_group) - end if - call close_group(T_group) + ! Inelastic data + call h5ltpath_valid_f(T_group, 'inelastic', .true., exists, hdf5_err) + if (exists) then + ! Read type of inelastic data + inelastic_group = open_group(T_group, 'inelastic') + + ! Read cross section data + dset_id = open_dataset(inelastic_group, 'xs') + call get_shape(dset_id, dims2) + allocate(temp(dims2(1), dims2(2))) + call read_dataset(temp, dset_id) + call close_dataset(dset_id) + + ! Set cross section data + this % data(t) % n_inelastic_e_in = int(dims2(1), 4) + allocate(this % data(t) % inelastic_e_in(this % data(t) % n_inelastic_e_in)) + allocate(this % data(t) % inelastic_sigma(this % data(t) % n_inelastic_e_in)) + this % data(t) % inelastic_e_in(:) = temp(:, 1) + this % data(t) % inelastic_sigma(:) = temp(:, 2) + deallocate(temp) + + ! Set inelastic threshold + this % data(t) % threshold_inelastic = this % data(t) % inelastic_e_in(& + this % data(t) % n_inelastic_e_in) + + if (this % secondary_mode /= SAB_SECONDARY_CONT) then + ! Read energy distribution + dset_id = open_dataset(inelastic_group, 'energy_out') + call get_shape(dset_id, dims2) + this % data(t) % n_inelastic_e_out = int(dims2(1), 4) + allocate(this % data(t) % inelastic_e_out(dims2(1), dims2(2))) + call read_dataset(this % data(t) % inelastic_e_out, dset_id) + call close_dataset(dset_id) + + ! Read angle distribution + dset_id = open_dataset(inelastic_group, 'mu_out') + call get_shape(dset_id, dims3) + this % data(t) % n_inelastic_mu = int(dims3(1), 4) + allocate(this % data(t) % inelastic_mu(dims3(1), dims3(2), dims3(3))) + call read_dataset(this % data(t) % inelastic_mu, dset_id) + call close_dataset(dset_id) + else + ! Read correlated angle-energy distribution + call correlated_dist % from_hdf5(inelastic_group) + + ! Convert to S(a,b) native format + n_energy = size(correlated_dist % energy) + allocate(this % data(t) % inelastic_data(n_energy)) + do i = 1, n_energy + associate (edist => correlated_dist % distribution(i)) + ! Get number of outgoing energies for incoming energy i + n_energy_out = size(edist % e_out) + this % data(t) % inelastic_data(i) % n_e_out = n_energy_out + allocate(this % data(t) % inelastic_data(i) % e_out(n_energy_out)) + allocate(this % data(t) % inelastic_data(i) % e_out_pdf(n_energy_out)) + allocate(this % data(t) % inelastic_data(i) % e_out_cdf(n_energy_out)) + + ! Copy outgoing energy distribution + this % data(t) % inelastic_data(i) % e_out(:) = edist % e_out + this % data(t) % inelastic_data(i) % e_out_pdf(:) = edist % p + this % data(t) % inelastic_data(i) % e_out_cdf(:) = edist % c + + do j = 1, n_energy_out + select type (adist => edist % angle(j) % obj) + type is (Tabular) + ! On first pass, allocate space for angles + if (j == 1) then + n_mu = size(adist % x) + this % data(t) % n_inelastic_mu = n_mu + allocate(this % data(t) % inelastic_data(i) % mu(& + n_mu, n_energy_out)) + end if + + ! Copy outgoing angles + this % data(t) % inelastic_data(i) % mu(:, j) = adist % x + end select + end do + end associate + end do + end if + + call close_group(inelastic_group) + end if + call close_group(T_group) + end do + + call close_group(kT_group) end subroutine salphabeta_from_hdf5 end module sab_header diff --git a/src/summary.F90 b/src/summary.F90 index 5bd440ff31..cc0c517588 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -115,36 +115,31 @@ contains integer :: i character(12), allocatable :: nucnames(:) real(8), allocatable :: awrs(:) - integer, allocatable :: zaids(:) ! Write useful data from nuclide objects nuclide_group = create_group(file_id, "nuclides") call write_dataset(nuclide_group, "n_nuclides_total", n_nuclides_total) - ! Build array of nuclide names, awrs, and zaids + ! Build array of nuclide names and awrs allocate(nucnames(n_nuclides_total)) allocate(awrs(n_nuclides_total)) - allocate(zaids(n_nuclides_total)) do i = 1, n_nuclides_total if (run_CE) then nucnames(i) = nuclides(i) % name awrs(i) = nuclides(i) % awr - zaids(i) = nuclides(i) % zaid else nucnames(i) = nuclides_MG(i) % obj % name awrs(i) = nuclides_MG(i) % obj % awr - zaids(i) = nuclides_MG(i) % obj % zaid end if end do - ! Write nuclide names, awrs and zaids + ! Write nuclide names and awrs call write_dataset(nuclide_group, "names", nucnames) call write_dataset(nuclide_group, "awrs", awrs) - call write_dataset(nuclide_group, "zaids", zaids) call close_group(nuclide_group) - deallocate(nucnames, awrs, zaids) + deallocate(nucnames, awrs) end subroutine write_nuclides @@ -529,9 +524,6 @@ contains ! Write name for this material call write_dataset(material_group, "name", m % name) - ! Write temperature for this material - call write_dataset(material_group, "temperature", m % temperature) - ! Write atom density with units call write_dataset(material_group, "atom_density", m % density) call write_attribute_string(material_group, "atom_density", "units", & diff --git a/src/tally.F90 b/src/tally.F90 index 3ee4702e2f..3cee65b965 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -88,6 +88,7 @@ contains integer :: l ! loop index for nuclides in material integer :: m ! loop index for reactions integer :: q ! loop index for scoring bins + integer :: i_temp ! temperature index integer :: i_nuc ! index in nuclides array (from material) integer :: i_energy ! index in nuclide energy grid integer :: score_bin ! scoring bin, e.g. SCORE_FLUX @@ -887,16 +888,18 @@ contains if (i_nuclide > 0) then if (nuclides(i_nuclide)%reaction_index%has_key(score_bin)) then m = nuclides(i_nuclide)%reaction_index%get_key(score_bin) - associate (rxn => nuclides(i_nuclide) % reactions(m)) - ! Retrieve index on nuclide energy grid and interpolation - ! factor - i_energy = micro_xs(i_nuclide) % index_grid - f = micro_xs(i_nuclide) % interp_factor - if (i_energy >= rxn % threshold) then - score = ((ONE - f) * rxn % sigma(i_energy - & - rxn%threshold + 1) + f * rxn % sigma(i_energy - & - rxn%threshold + 2)) * atom_density * flux + ! Retrieve temperature and energy grid index and interpolation + ! factor + i_temp = micro_xs(i_nuclide) % index_temp + i_energy = micro_xs(i_nuclide) % index_grid + f = micro_xs(i_nuclide) % interp_factor + + associate (xs => nuclides(i_nuclide) % reactions(m) % xs(i_temp)) + if (i_energy >= xs % threshold) then + score = ((ONE - f) * xs % value(i_energy - & + xs % threshold + 1) + f * xs % value(i_energy - & + xs % threshold + 2)) * atom_density * flux end if end associate end if @@ -911,15 +914,18 @@ contains if (nuclides(i_nuc)%reaction_index%has_key(score_bin)) then m = nuclides(i_nuc)%reaction_index%get_key(score_bin) - associate (rxn => nuclides(i_nuc) % reactions(m)) - ! Retrieve index on nuclide energy grid and interpolation - ! factor - i_energy = micro_xs(i_nuc) % index_grid - f = micro_xs(i_nuc) % interp_factor - if (i_energy >= rxn % threshold) then - score = score + ((ONE - f) * rxn % sigma(i_energy - & - rxn%threshold + 1) + f * rxn % sigma(i_energy - & - rxn%threshold + 2)) * atom_density_ * flux + + ! Retrieve temperature and energy grid index and interpolation + ! factor + i_temp = micro_xs(i_nuc) % index_temp + i_energy = micro_xs(i_nuc) % index_grid + f = micro_xs(i_nuc) % interp_factor + + associate (xs => nuclides(i_nuc) % reactions(m) % xs(i_temp)) + if (i_energy >= xs % threshold) then + score = score + ((ONE - f) * xs % value(i_energy - & + xs % threshold + 1) + f * xs % value(i_energy - & + xs % threshold + 2)) * atom_density_ * flux end if end associate end if diff --git a/src/tracking.F90 b/src/tracking.F90 index 69fb78c354..f2613146e4 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -84,9 +84,10 @@ contains ! Calculate microscopic and macroscopic cross sections 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) + ! If the material is the same as the last material and the temperature + ! hasn't changed, we don't need to lookup cross sections again. + if (p % material /= p % last_material .or. & + p % sqrtkT /= p % last_sqrtkT) call calculate_xs(p) else ! Since the MGXS can be angle dependent, this needs to be done ! After every collision for the MGXS mode diff --git a/tests/test_cmfd_feed/materials.xml b/tests/test_cmfd_feed/materials.xml index f773d83d04..70580e3a8d 100644 --- a/tests/test_cmfd_feed/materials.xml +++ b/tests/test_cmfd_feed/materials.xml @@ -1,9 +1,7 @@ -294K - - + diff --git a/tests/test_cmfd_nofeed/materials.xml b/tests/test_cmfd_nofeed/materials.xml index f773d83d04..70580e3a8d 100644 --- a/tests/test_cmfd_nofeed/materials.xml +++ b/tests/test_cmfd_nofeed/materials.xml @@ -1,9 +1,7 @@ -294K - - + diff --git a/tests/test_complex_cell/materials.xml b/tests/test_complex_cell/materials.xml index 857626d5a6..6edf0a5f9c 100644 --- a/tests/test_complex_cell/materials.xml +++ b/tests/test_complex_cell/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_confidence_intervals/materials.xml b/tests/test_confidence_intervals/materials.xml index e1124a3038..0965c8783c 100644 --- a/tests/test_confidence_intervals/materials.xml +++ b/tests/test_confidence_intervals/materials.xml @@ -2,7 +2,7 @@ - 294K + 294 diff --git a/tests/test_density/materials.xml b/tests/test_density/materials.xml index 53a7b0fcbb..7b49233ed7 100644 --- a/tests/test_density/materials.xml +++ b/tests/test_density/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_eigenvalue_genperbatch/materials.xml b/tests/test_eigenvalue_genperbatch/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_eigenvalue_genperbatch/materials.xml +++ b/tests/test_eigenvalue_genperbatch/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_eigenvalue_no_inactive/materials.xml b/tests/test_eigenvalue_no_inactive/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_eigenvalue_no_inactive/materials.xml +++ b/tests/test_eigenvalue_no_inactive/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_energy_grid/materials.xml b/tests/test_energy_grid/materials.xml index 2946a8d609..87a3b8fe1c 100644 --- a/tests/test_energy_grid/materials.xml +++ b/tests/test_energy_grid/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_energy_grid/settings.xml b/tests/test_energy_grid/settings.xml index f925356a91..1e4b5937b8 100644 --- a/tests/test_energy_grid/settings.xml +++ b/tests/test_energy_grid/settings.xml @@ -1,7 +1,7 @@ - nuclide + 20000 10 diff --git a/tests/test_energy_laws/materials.xml b/tests/test_energy_laws/materials.xml index e7acd32e2b..e63f4018c3 100644 --- a/tests/test_energy_laws/materials.xml +++ b/tests/test_energy_laws/materials.xml @@ -1,6 +1,5 @@ - 294K diff --git a/tests/test_entropy/materials.xml b/tests/test_entropy/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_entropy/materials.xml +++ b/tests/test_entropy/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_filter_distribcell/case-1/materials.xml b/tests/test_filter_distribcell/case-1/materials.xml index afd4b05b76..e7108b477f 100644 --- a/tests/test_filter_distribcell/case-1/materials.xml +++ b/tests/test_filter_distribcell/case-1/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_filter_distribcell/case-2/materials.xml b/tests/test_filter_distribcell/case-2/materials.xml index afd4b05b76..794d410a32 100644 --- a/tests/test_filter_distribcell/case-2/materials.xml +++ b/tests/test_filter_distribcell/case-2/materials.xml @@ -1,9 +1,6 @@ - 294K - - diff --git a/tests/test_filter_distribcell/case-3/materials.xml b/tests/test_filter_distribcell/case-3/materials.xml index f03693e524..5889122717 100644 --- a/tests/test_filter_distribcell/case-3/materials.xml +++ b/tests/test_filter_distribcell/case-3/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_filter_distribcell/case-4/materials.xml b/tests/test_filter_distribcell/case-4/materials.xml index 15cf0c54b9..2eb744fe64 100644 --- a/tests/test_filter_distribcell/case-4/materials.xml +++ b/tests/test_filter_distribcell/case-4/materials.xml @@ -1,7 +1,5 @@ - 294K - diff --git a/tests/test_filter_mesh_2d/materials.xml b/tests/test_filter_mesh_2d/materials.xml index bead58f8b2..8021f5f99e 100644 --- a/tests/test_filter_mesh_2d/materials.xml +++ b/tests/test_filter_mesh_2d/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_filter_mesh_3d/materials.xml b/tests/test_filter_mesh_3d/materials.xml index bead58f8b2..8021f5f99e 100644 --- a/tests/test_filter_mesh_3d/materials.xml +++ b/tests/test_filter_mesh_3d/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_fixed_source/materials.xml b/tests/test_fixed_source/materials.xml index cfd0efd6c3..6e4249da32 100644 --- a/tests/test_fixed_source/materials.xml +++ b/tests/test_fixed_source/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_fixed_source/settings.xml b/tests/test_fixed_source/settings.xml index 8a0ddb251e..1e9b85d5a8 100644 --- a/tests/test_fixed_source/settings.xml +++ b/tests/test_fixed_source/settings.xml @@ -6,6 +6,8 @@ 100 + 294 + diff --git a/tests/test_infinite_cell/materials.xml b/tests/test_infinite_cell/materials.xml index 8bd6c820b3..6acd8df74b 100644 --- a/tests/test_infinite_cell/materials.xml +++ b/tests/test_infinite_cell/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_lattice/materials.xml b/tests/test_lattice/materials.xml index 91772da798..971f5c5480 100644 --- a/tests/test_lattice/materials.xml +++ b/tests/test_lattice/materials.xml @@ -10,8 +10,6 @@ =============================================================== --> - 294K - diff --git a/tests/test_lattice_hex/materials.xml b/tests/test_lattice_hex/materials.xml index 90b79b7b49..c7649fcf9a 100644 --- a/tests/test_lattice_hex/materials.xml +++ b/tests/test_lattice_hex/materials.xml @@ -1,9 +1,7 @@ - 294K - - + @@ -11,7 +9,7 @@ - + @@ -19,7 +17,7 @@ - + @@ -29,7 +27,7 @@ - + diff --git a/tests/test_lattice_mixed/materials.xml b/tests/test_lattice_mixed/materials.xml index 90b79b7b49..c7649fcf9a 100644 --- a/tests/test_lattice_mixed/materials.xml +++ b/tests/test_lattice_mixed/materials.xml @@ -1,9 +1,7 @@ - 294K - - + @@ -11,7 +9,7 @@ - + @@ -19,7 +17,7 @@ - + @@ -29,7 +27,7 @@ - + diff --git a/tests/test_lattice_multiple/materials.xml b/tests/test_lattice_multiple/materials.xml index bead58f8b2..8021f5f99e 100644 --- a/tests/test_lattice_multiple/materials.xml +++ b/tests/test_lattice_multiple/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_multipole/inputs_true.dat b/tests/test_multipole/inputs_true.dat index 5498e68738..930be95361 100644 --- a/tests/test_multipole/inputs_true.dat +++ b/tests/test_multipole/inputs_true.dat @@ -1 +1 @@ -2ad86dbb798ab68b45ca535fed3bd848625e0a2b79c68d11db91b14c74b8a48ed4d0129de7e6f6b6b7e9cb47a55d45aadca5ef535dc8a18cb881dddfc74d0bbb \ No newline at end of file +8462e17d102259b3a48a7e908bc75038a28a19d4a5e8bd38f26579e5baf3998bc2d05d1d3055ac1ed478d0c01bd64868d654919c2e6ca3fea86d79f03eda25ef \ No newline at end of file diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index d138fa16a9..9555a2d536 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.457760E+00 1.119659E-02 +1.457760E+00 1.119656E-02 Cell ID = 11 Name = diff --git a/tests/test_multipole/test_multipole.py b/tests/test_multipole/test_multipole.py index 812f5b6d0f..a44489aa5a 100644 --- a/tests/test_multipole/test_multipole.py +++ b/tests/test_multipole/test_multipole.py @@ -7,7 +7,6 @@ import openmc from openmc.stats import Box from openmc.source import Source - class MultipoleTestHarness(PyAPITestHarness): def _build_inputs(self): #################### @@ -24,29 +23,20 @@ class MultipoleTestHarness(PyAPITestHarness): dense_fuel.add_nuclide('U235', 1.0) mats_file = openmc.Materials([moderator, dense_fuel]) - mats_file.default_temperature = '294K' mats_file.export_to_xml() - #################### # Geometry #################### - c1 = openmc.Cell(cell_id=1) - c1.fill = moderator - mod_univ = openmc.Universe(universe_id=1) - mod_univ.add_cell(c1) + c1 = openmc.Cell(cell_id=1, fill=moderator) + mod_univ = openmc.Universe(universe_id=1, cells=(c1,)) r0 = openmc.ZCylinder(R=0.3) - c11 = openmc.Cell(cell_id=11) - c11.region = -r0 - c11.fill = dense_fuel + c11 = openmc.Cell(cell_id=11, fill=dense_fuel, region=-r0) c11.temperature = [500, 0, 700, 800] - c12 = openmc.Cell(cell_id=12) - c12.region = +r0 - c12.fill = moderator - fuel_univ = openmc.Universe(universe_id=11) - fuel_univ.add_cells((c11, c12)) + c12 = openmc.Cell(cell_id=12, fill=moderator, region=+r0) + fuel_univ = openmc.Universe(universe_id=11, cells=(c11, c12)) lat = openmc.RectLattice(lattice_id=101) lat.dimension = [2, 2] @@ -61,17 +51,12 @@ class MultipoleTestHarness(PyAPITestHarness): y1 = openmc.YPlane(y0=3.0) for s in [x0, x1, y0, y1]: s.boundary_type = 'reflective' - c101 = openmc.Cell(cell_id=101) - c101.region = +x0 & -x1 & +y0 & -y1 - c101.fill = lat - root_univ = openmc.Universe(universe_id=0) - root_univ.add_cell(c101) + c101 = openmc.Cell(cell_id=101, fill=lat, region=+x0 & -x1 & +y0 & -y1) + root_univ = openmc.Universe(universe_id=0, cells=(c101,)) - geometry = openmc.Geometry() - geometry.root_universe = root_univ + geometry = openmc.Geometry(root_univ) geometry.export_to_xml() - #################### # Settings #################### @@ -82,10 +67,9 @@ class MultipoleTestHarness(PyAPITestHarness): sets_file.particles = 1000 sets_file.source = Source(space=Box([-1, -1, -1], [1, 1, 1])) sets_file.output = {'summary': True} - sets_file.use_windowed_multipole=True + sets_file.temperature = {'method': 'multipole'} sets_file.export_to_xml() - #################### # Plots #################### diff --git a/tests/test_natural_element/materials.xml b/tests/test_natural_element/materials.xml index 543b5351d8..6568951f43 100644 --- a/tests/test_natural_element/materials.xml +++ b/tests/test_natural_element/materials.xml @@ -3,8 +3,6 @@ - 294K - diff --git a/tests/test_output/materials.xml b/tests/test_output/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_output/materials.xml +++ b/tests/test_output/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_output/settings.xml b/tests/test_output/settings.xml index fef5e2fcf1..e2f3fc0186 100644 --- a/tests/test_output/settings.xml +++ b/tests/test_output/settings.xml @@ -1,7 +1,7 @@ - + 10 diff --git a/tests/test_output/test_output.py b/tests/test_output/test_output.py index 8e36ead808..81f8f42c8a 100644 --- a/tests/test_output/test_output.py +++ b/tests/test_output/test_output.py @@ -19,10 +19,6 @@ class OutputTestHarness(TestHarness): assert summary[0].endswith('h5'),\ 'Summary file is not a HDF5 file.' - # Check for the cross sections. - assert os.path.exists(os.path.join(os.getcwd(), 'cross_sections.out')),\ - 'Cross section output file does not exist.' - def _cleanup(self): TestHarness._cleanup(self) output = glob.glob(os.path.join(os.getcwd(), 'summary.*')) diff --git a/tests/test_particle_restart_eigval/materials.xml b/tests/test_particle_restart_eigval/materials.xml index 301efd2bd1..3aa37fca6c 100644 --- a/tests/test_particle_restart_eigval/materials.xml +++ b/tests/test_particle_restart_eigval/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_particle_restart_fixed/materials.xml b/tests/test_particle_restart_fixed/materials.xml index 95afc39990..f3851d7ef1 100644 --- a/tests/test_particle_restart_fixed/materials.xml +++ b/tests/test_particle_restart_fixed/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_plot/materials.xml b/tests/test_plot/materials.xml index 0d5ee77cef..90b3542675 100644 --- a/tests/test_plot/materials.xml +++ b/tests/test_plot/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_ptables_off/materials.xml b/tests/test_ptables_off/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_ptables_off/materials.xml +++ b/tests/test_ptables_off/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_quadric_surfaces/materials.xml b/tests/test_quadric_surfaces/materials.xml index baf523b34c..f687683837 100644 --- a/tests/test_quadric_surfaces/materials.xml +++ b/tests/test_quadric_surfaces/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_reflective_plane/materials.xml b/tests/test_reflective_plane/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_reflective_plane/materials.xml +++ b/tests/test_reflective_plane/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_resonance_scattering/inputs_true.dat b/tests/test_resonance_scattering/inputs_true.dat index ba59e03f59..7b515cd1cc 100644 --- a/tests/test_resonance_scattering/inputs_true.dat +++ b/tests/test_resonance_scattering/inputs_true.dat @@ -1 +1 @@ -dea135e820f605cf7a7f8d184330d2dd093cbcd2d53a71198819cb4dc7c455809dbb37eff79538d9b35d19932bd88b555ba833f32d01fa8d5289840b2250f72a \ No newline at end of file +15d4ce20d34fbafc757689f1a1f014c42b25efd1cac6bbefdd284c5c1af8bca264c75055fef719441655a61201d0ef098c82cacaa2aeea2b410d3006e983a942 \ No newline at end of file diff --git a/tests/test_resonance_scattering/test_resonance_scattering.py b/tests/test_resonance_scattering/test_resonance_scattering.py index 0e34a4a4cd..3daf5a3870 100644 --- a/tests/test_resonance_scattering/test_resonance_scattering.py +++ b/tests/test_resonance_scattering/test_resonance_scattering.py @@ -9,16 +9,21 @@ import openmc class ResonanceScatteringTestHarness(PyAPITestHarness): def _build_inputs(self): + # Nuclides + u238 = openmc.Nuclide('U238') + u235 = openmc.Nuclide('U235') + pu239 = openmc.Nuclide('Pu239') + h1 = openmc.Nuclide('H1') + # Materials mat = openmc.Material(material_id=1) mat.set_density('g/cc', 1.0) - mat.add_nuclide('U238', 1.0) - mat.add_nuclide('U235', 0.02) - mat.add_nuclide('Pu239', 0.02) - mat.add_nuclide('H1', 20.0) + mat.add_nuclide(u238, 1.0) + mat.add_nuclide(u235, 0.02) + mat.add_nuclide(pu239, 0.02) + mat.add_nuclide(h1, 20.0) mats_file = openmc.Materials([mat]) - mats_file.default_temperature = '294K' mats_file.export_to_xml() # Geometry @@ -37,29 +42,9 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): geometry.export_to_xml() # Settings - nuclide = openmc.Nuclide('U238') - 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('U235') - 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('Pu239') - 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 + res_scatt_dbrc = openmc.ResonanceScattering(u238, 'DBRC', 1e-6, 210e-6) + res_scatt_wcm = openmc.ResonanceScattering(u235, 'WCM', 1e-6, 210e-6) + res_scatt_ares = openmc.ResonanceScattering(pu239, 'ARES', 1e-6, 210e-6) sets_file = openmc.Settings() sets_file.batches = 10 diff --git a/tests/test_rotation/materials.xml b/tests/test_rotation/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_rotation/materials.xml +++ b/tests/test_rotation/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_salphabeta/materials.xml b/tests/test_salphabeta/materials.xml index 0d250e7b47..bfe0a6224d 100644 --- a/tests/test_salphabeta/materials.xml +++ b/tests/test_salphabeta/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_score_current/materials.xml b/tests/test_score_current/materials.xml index bead58f8b2..8021f5f99e 100644 --- a/tests/test_score_current/materials.xml +++ b/tests/test_score_current/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_seed/materials.xml b/tests/test_seed/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_seed/materials.xml +++ b/tests/test_seed/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_source/inputs_true.dat b/tests/test_source/inputs_true.dat index 5744adeebc..0c8f18194a 100644 --- a/tests/test_source/inputs_true.dat +++ b/tests/test_source/inputs_true.dat @@ -1 +1 @@ -29498faa9496b8eeeab79f6cb5a966cb03a54e9c3c7e9178e7cc132df575f1377aa780fa2684201c4becdf199f89c3e7c36a824a495e60359bc6fd30b02cad6f \ No newline at end of file +b791dc4a37d20599afe375d91a9c6da123d6579cdc3ae7093a4a464c82bce43f2349fc6828f0b5d9f6b11b8a1aa1031459cd19f2771277ef40d775fedb68c00f \ No newline at end of file diff --git a/tests/test_source/test_source.py b/tests/test_source/test_source.py index f83e39974c..ce9012bc26 100644 --- a/tests/test_source/test_source.py +++ b/tests/test_source/test_source.py @@ -13,7 +13,7 @@ import openmc class SourceTestHarness(PyAPITestHarness): def _build_inputs(self): - mat1 = openmc.Material(material_id=1, temperature='294K') + mat1 = openmc.Material(material_id=1, temperature='294') mat1.set_density('g/cm3', 4.5) mat1.add_nuclide(openmc.Nuclide('U235'), 1.0) materials = openmc.Materials([mat1]) diff --git a/tests/test_source_file/materials.xml b/tests/test_source_file/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_source_file/materials.xml +++ b/tests/test_source_file/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_sourcepoint_batch/materials.xml b/tests/test_sourcepoint_batch/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_sourcepoint_batch/materials.xml +++ b/tests/test_sourcepoint_batch/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_sourcepoint_interval/materials.xml b/tests/test_sourcepoint_interval/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_sourcepoint_interval/materials.xml +++ b/tests/test_sourcepoint_interval/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_sourcepoint_latest/materials.xml b/tests/test_sourcepoint_latest/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_sourcepoint_latest/materials.xml +++ b/tests/test_sourcepoint_latest/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_sourcepoint_restart/materials.xml b/tests/test_sourcepoint_restart/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_sourcepoint_restart/materials.xml +++ b/tests/test_sourcepoint_restart/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_statepoint_batch/materials.xml b/tests/test_statepoint_batch/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_statepoint_batch/materials.xml +++ b/tests/test_statepoint_batch/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_statepoint_interval/materials.xml b/tests/test_statepoint_interval/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_statepoint_interval/materials.xml +++ b/tests/test_statepoint_interval/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_statepoint_restart/materials.xml b/tests/test_statepoint_restart/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_statepoint_restart/materials.xml +++ b/tests/test_statepoint_restart/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_statepoint_sourcesep/materials.xml b/tests/test_statepoint_sourcesep/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_statepoint_sourcesep/materials.xml +++ b/tests/test_statepoint_sourcesep/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_survival_biasing/materials.xml b/tests/test_survival_biasing/materials.xml index 03b2162b3b..f271ddee22 100644 --- a/tests/test_survival_biasing/materials.xml +++ b/tests/test_survival_biasing/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_tally_assumesep/materials.xml b/tests/test_tally_assumesep/materials.xml index bead58f8b2..8021f5f99e 100644 --- a/tests/test_tally_assumesep/materials.xml +++ b/tests/test_tally_assumesep/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_tally_nuclides/materials.xml b/tests/test_tally_nuclides/materials.xml index 5ac4f69424..1f89c7df61 100644 --- a/tests/test_tally_nuclides/materials.xml +++ b/tests/test_tally_nuclides/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_trace/materials.xml b/tests/test_trace/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_trace/materials.xml +++ b/tests/test_trace/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_track_output/materials.xml b/tests/test_track_output/materials.xml index f31f61fc3c..5dc9a64755 100644 --- a/tests/test_track_output/materials.xml +++ b/tests/test_track_output/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_translation/materials.xml b/tests/test_translation/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_translation/materials.xml +++ b/tests/test_translation/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_trigger_batch_interval/materials.xml b/tests/test_trigger_batch_interval/materials.xml index 5ac4f69424..1f89c7df61 100644 --- a/tests/test_trigger_batch_interval/materials.xml +++ b/tests/test_trigger_batch_interval/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_trigger_no_batch_interval/materials.xml b/tests/test_trigger_no_batch_interval/materials.xml index 5ac4f69424..1f89c7df61 100644 --- a/tests/test_trigger_no_batch_interval/materials.xml +++ b/tests/test_trigger_no_batch_interval/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_trigger_no_status/materials.xml b/tests/test_trigger_no_status/materials.xml index 5ac4f69424..1f89c7df61 100644 --- a/tests/test_trigger_no_status/materials.xml +++ b/tests/test_trigger_no_status/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_trigger_tallies/materials.xml b/tests/test_trigger_tallies/materials.xml index 5ac4f69424..1f89c7df61 100644 --- a/tests/test_trigger_tallies/materials.xml +++ b/tests/test_trigger_tallies/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_uniform_fs/materials.xml b/tests/test_uniform_fs/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_uniform_fs/materials.xml +++ b/tests/test_uniform_fs/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_union_energy_grids/geometry.xml b/tests/test_union_energy_grids/geometry.xml deleted file mode 100644 index bc56030e18..0000000000 --- a/tests/test_union_energy_grids/geometry.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/tests/test_union_energy_grids/materials.xml b/tests/test_union_energy_grids/materials.xml deleted file mode 100644 index 2946a8d609..0000000000 --- a/tests/test_union_energy_grids/materials.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - 294K - - - - - - - - - diff --git a/tests/test_union_energy_grids/results_true.dat b/tests/test_union_energy_grids/results_true.dat deleted file mode 100644 index 0a607592c8..0000000000 --- a/tests/test_union_energy_grids/results_true.dat +++ /dev/null @@ -1,2 +0,0 @@ -k-combined: -3.330789E-01 2.216495E-03 diff --git a/tests/test_union_energy_grids/settings.xml b/tests/test_union_energy_grids/settings.xml deleted file mode 100644 index 1eb22241cc..0000000000 --- a/tests/test_union_energy_grids/settings.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - union - - - 10 - 5 - 1000 - - - - - -4 -4 -4 4 4 4 - - - - diff --git a/tests/test_union_energy_grids/test_union_energy_grids.py b/tests/test_union_energy_grids/test_union_energy_grids.py deleted file mode 100644 index 2a595f3e66..0000000000 --- a/tests/test_union_energy_grids/test_union_energy_grids.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -sys.path.insert(0, os.pardir) -from testing_harness import TestHarness - - -if __name__ == '__main__': - harness = TestHarness('statepoint.10.*') - harness.main() diff --git a/tests/test_universe/materials.xml b/tests/test_universe/materials.xml index 37cfcdc6ed..2472a74717 100644 --- a/tests/test_universe/materials.xml +++ b/tests/test_universe/materials.xml @@ -1,8 +1,6 @@ - 294K - diff --git a/tests/test_void/materials.xml b/tests/test_void/materials.xml index 2a578e0ed4..f70c3a40f2 100644 --- a/tests/test_void/materials.xml +++ b/tests/test_void/materials.xml @@ -3,8 +3,6 @@ - 294K - From fbebf7bf709fe2fe1813af95bff9b29c0d59312c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 30 Aug 2016 21:49:22 -0500 Subject: [PATCH 365/417] Fix cell temperature bug for multipole. Results change a bit. --- src/physics.F90 | 8 ++++---- tests/test_multipole/results_true.dat | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/physics.F90 b/src/physics.F90 index f1f6733097..23fb6f1df2 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -334,11 +334,11 @@ contains else ! Determine temperature -!!$ if (temperature_method == TEMPERATURE_MULTIPOLE) then -!!$ kT = p % sqrtkT**2 -!!$ else + if (temperature_method == TEMPERATURE_MULTIPOLE) then + kT = p % sqrtkT**2 + else kT = nuc % kTs(micro_xs(i_nuclide) % index_temp) -!!$ end if + end if ! Perform collision physics for elastic scattering call elastic_scatter(i_nuclide, nuc % reactions(1), kT, & diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 9555a2d536..4d379b3f40 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.457760E+00 1.119656E-02 +1.425673E+00 1.779969E-02 Cell ID = 11 Name = From 3d29075022d64823d7fd08940e76da01c7ad2d21 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 31 Aug 2016 10:59:21 -0500 Subject: [PATCH 366/417] Update Jupyter notebooks --- .../pythonapi/examples/mgxs-part-i.ipynb | 101 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 1099 +++++++---------- .../pythonapi/examples/mgxs-part-iii.ipynb | 466 ++++--- .../pythonapi/examples/mgxs-part-iv.ipynb | 316 ++--- .../examples/pandas-dataframes.ipynb | 235 ++-- .../pythonapi/examples/post-processing.ipynb | 129 +- .../pythonapi/examples/tally-arithmetic.ipynb | 87 +- 7 files changed, 1159 insertions(+), 1274 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 7c5132100e..4477e323d7 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -214,7 +214,6 @@ "source": [ "# Instantiate a Materials collection and export to XML\n", "materials_file = openmc.Materials([inf_medium])\n", - "materials_file.default_xs = '71c'\n", "materials_file.export_to_xml()" ] }, @@ -499,23 +498,37 @@ "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", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", + " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%%%%%%\n", + " ##################### %%%%%%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%\n", + " ################# %%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%\n", + " ############ %%%%%%%%%%%%%%%\n", + " ######## %%%%%%%%%%%%%%\n", + " %%%%%%%%%%%\n", "\n", - " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", - " Date/Time: 2016-07-22 21:03:18\n", + " | The OpenMC Monte Carlo Code\n", + " Copyright | 2011-2016 Massachusetts Institute of Technology\n", + " License | http://openmc.readthedocs.io/en/latest/license.html\n", + " Version | 0.8.0\n", + " Git SHA1 | fbebf7bf709fe2fe1813af95bff9b29c0d59312c\n", + " Date/Time | 2016-08-31 10:40:13\n", + " OpenMP Threads | 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -525,12 +538,12 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", - " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", - " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", - " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", - " Maximum neutron transport energy: 20.0000 MeV for H1.71c\n", + " Reading H1 from /home/romano/openmc/data/nndc_hdf5/H1.h5\n", + " Reading O16 from /home/romano/openmc/data/nndc_hdf5/O16.h5\n", + " Reading U235 from /home/romano/openmc/data/nndc_hdf5/U235.h5\n", + " Reading U238 from /home/romano/openmc/data/nndc_hdf5/U238.h5\n", + " Reading Zr90 from /home/romano/openmc/data/nndc_hdf5/Zr90.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for H1\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", " Initializing source particles...\n", @@ -600,20 +613,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.2300E-01 seconds\n", - " Reading cross sections = 1.6900E-01 seconds\n", - " Total time in simulation = 1.9882E+01 seconds\n", - " Time in transport only = 1.9869E+01 seconds\n", - " Time in inactive batches = 2.6590E+00 seconds\n", - " Time in active batches = 1.7223E+01 seconds\n", + " Total time for initialization = 3.9900E-01 seconds\n", + " Reading cross sections = 2.6500E-01 seconds\n", + " Total time in simulation = 1.1488E+01 seconds\n", + " Time in transport only = 1.1152E+01 seconds\n", + " Time in inactive batches = 1.2180E+00 seconds\n", + " Time in active batches = 1.0270E+01 seconds\n", " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 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 = 0.0000E+00 seconds\n", - " Total time elapsed = 2.0217E+01 seconds\n", - " Calculation Rate (inactive) = 9402.03 neutrons/second\n", - " Calculation Rate (active) = 5806.19 neutrons/second\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 1.1901E+01 seconds\n", + " Calculation Rate (inactive) = 20525.5 neutrons/second\n", + " Calculation Rate (active) = 9737.10 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -894,7 +907,7 @@ " 6.250000e-07\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " -3.774758e-15\n", + " -2.886580e-15\n", " 0.011292\n", " \n", " \n", @@ -904,7 +917,7 @@ " 2.000000e+01\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " 1.443290e-15\n", + " -5.551115e-16\n", " 0.002570\n", " \n", " \n", @@ -917,8 +930,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "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 " + "0 (((total / flux) - (absorption / flux)) - (sca... -2.89e-15 1.13e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... -5.55e-16 2.57e-03 " ] }, "execution_count": 22, @@ -1167,21 +1180,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.11" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index ca4832809a..341969fbdd 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -34,9 +34,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.py:878: 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", - "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.py:1357: UserWarning: This call to matplotlib.use() has no effect\n", + "/home/romano/miniconda3/envs/default/lib/python3.5/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", @@ -134,7 +132,6 @@ "source": [ "# Instantiate a Materials collection\n", "materials_file = openmc.Materials((fuel, water, zircaloy))\n", - "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", "materials_file.export_to_xml()" @@ -428,24 +425,37 @@ "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", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", + " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%%%%%%\n", + " ##################### %%%%%%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%\n", + " ################# %%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%\n", + " ############ %%%%%%%%%%%%%%%\n", + " ######## %%%%%%%%%%%%%%\n", + " %%%%%%%%%%%\n", "\n", - " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.8.0\n", - " Git SHA1: be7e6e035d22944a8c80ca32f99935b6822854c9\n", - " Date/Time: 2016-08-10 15:31:07\n", - " MPI Processes: 1\n", + " | The OpenMC Monte Carlo Code\n", + " Copyright | 2011-2016 Massachusetts Institute of Technology\n", + " License | http://openmc.readthedocs.io/en/latest/license.html\n", + " Version | 0.8.0\n", + " Git SHA1 | fbebf7bf709fe2fe1813af95bff9b29c0d59312c\n", + " Date/Time | 2016-08-31 10:55:07\n", + " OpenMP Threads | 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -455,12 +465,12 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading U235.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U238_71c.h5\n", - " Reading O16.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/O16_71c.h5\n", - " Reading H1.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/H1_71c.h5\n", - " Reading Zr90.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/Zr90_71c.h5\n", - " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", + " Reading U235 from /home/romano/openmc/data/nndc_hdf5/U235.h5\n", + " Reading U238 from /home/romano/openmc/data/nndc_hdf5/U238.h5\n", + " Reading O16 from /home/romano/openmc/data/nndc_hdf5/O16.h5\n", + " Reading H1 from /home/romano/openmc/data/nndc_hdf5/H1.h5\n", + " Reading Zr90 from /home/romano/openmc/data/nndc_hdf5/Zr90.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", " Initializing source particles...\n", @@ -521,7 +531,7 @@ " 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 10052\n", + " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10057\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", @@ -547,7 +557,7 @@ " 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 10052\n", + " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10057\n", " The estimated number of batches is 74\n", " 74/1 1.22437 1.22487 +/- 0.00188\n", " Triggers satisfied for batch 74\n", @@ -560,20 +570,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.0400E-01 seconds\n", - " Reading cross sections = 2.1100E-01 seconds\n", - " Total time in simulation = 2.8243E+02 seconds\n", - " Time in transport only = 2.8236E+02 seconds\n", - " Time in inactive batches = 1.8781E+01 seconds\n", - " Time in active batches = 2.6365E+02 seconds\n", - " Time synchronizing fission bank = 2.7000E-02 seconds\n", - " Sampling source sites = 1.7000E-02 seconds\n", + " Total time for initialization = 4.0300E-01 seconds\n", + " Reading cross sections = 2.6000E-01 seconds\n", + " Total time in simulation = 1.3275E+02 seconds\n", + " Time in transport only = 1.3260E+02 seconds\n", + " Time in inactive batches = 8.2130E+00 seconds\n", + " Time in active batches = 1.2454E+02 seconds\n", + " Time synchronizing fission bank = 3.0000E-02 seconds\n", + " Sampling source sites = 2.2000E-02 seconds\n", " SEND/RECV source sites = 8.0000E-03 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", - " Total time for finalization = 2.4000E-02 seconds\n", - " Total time elapsed = 2.8293E+02 seconds\n", - " Calculation Rate (inactive) = 5324.53 neutrons/second\n", - " Calculation Rate (active) = 1517.17 neutrons/second\n", + " Time accumulating tallies = 3.0000E-03 seconds\n", + " Total time for finalization = 1.5000E-02 seconds\n", + " Total time elapsed = 1.3324E+02 seconds\n", + " Calculation Rate (inactive) = 12175.8 neutrons/second\n", + " Calculation Rate (active) = 3211.92 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -772,14 +782,6 @@ "collapsed": false }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/shape_base.py:873: VisibleDeprecationWarning: 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": [ @@ -1170,239 +1172,169 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.423123\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.475921\tres = 5.769E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.491443\tres = 1.248E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.487441\tres = 3.261E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.483949\tres = 8.144E-03\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.477326\tres = 7.164E-03\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.469012\tres = 1.369E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.460422\tres = 1.742E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.450721\tres = 1.832E-02\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.441532\tres = 2.107E-02\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.432168\tres = 2.039E-02\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.423131\tres = 2.121E-02\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.414705\tres = 2.091E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.406942\tres = 1.991E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.399627\tres = 1.872E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.393329\tres = 1.798E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.387699\tres = 1.576E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.382948\tres = 1.431E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.379028\tres = 1.225E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.375934\tres = 1.024E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.373784\tres = 8.161E-03\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.372654\tres = 5.719E-03\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.372273\tres = 3.023E-03\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.372879\tres = 1.024E-03\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.374353\tres = 1.629E-03\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.376678\tres = 3.951E-03\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.379854\tres = 6.212E-03\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.383870\tres = 8.432E-03\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.388663\tres = 1.057E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.394216\tres = 1.249E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.400506\tres = 1.429E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.407501\tres = 1.596E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.415145\tres = 1.747E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.423426\tres = 1.876E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.432299\tres = 1.995E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.441713\tres = 2.095E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.451665\tres = 2.178E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.462081\tres = 2.253E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.472951\tres = 2.306E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.484220\tres = 2.352E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.495861\tres = 2.383E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.507836\tres = 2.404E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.520110\tres = 2.415E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.532648\tres = 2.417E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.545418\tres = 2.411E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.558388\tres = 2.398E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.571526\tres = 2.378E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.584802\tres = 2.353E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.598189\tres = 2.323E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.611657\tres = 2.289E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.625182\tres = 2.252E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.638738\tres = 2.211E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.652302\tres = 2.168E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.665851\tres = 2.124E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.679364\tres = 2.077E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.692821\tres = 2.029E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 0.706204\tres = 1.981E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 0.719496\tres = 1.932E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 0.732679\tres = 1.882E-02\n", - "[ NORMAL ] Iteration 59:\tk_eff = 0.745740\tres = 1.832E-02\n", - "[ NORMAL ] Iteration 60:\tk_eff = 0.758664\tres = 1.783E-02\n", - "[ NORMAL ] Iteration 61:\tk_eff = 0.771439\tres = 1.733E-02\n", - "[ NORMAL ] Iteration 62:\tk_eff = 0.784053\tres = 1.684E-02\n", - "[ NORMAL ] Iteration 63:\tk_eff = 0.796495\tres = 1.635E-02\n", - "[ NORMAL ] Iteration 64:\tk_eff = 0.808756\tres = 1.587E-02\n", - "[ NORMAL ] Iteration 65:\tk_eff = 0.820827\tres = 1.539E-02\n", - "[ NORMAL ] Iteration 66:\tk_eff = 0.832700\tres = 1.493E-02\n", - "[ NORMAL ] Iteration 67:\tk_eff = 0.844370\tres = 1.447E-02\n", - "[ NORMAL ] Iteration 68:\tk_eff = 0.855828\tres = 1.401E-02\n", - "[ NORMAL ] Iteration 69:\tk_eff = 0.867071\tres = 1.357E-02\n", - "[ NORMAL ] Iteration 70:\tk_eff = 0.878094\tres = 1.314E-02\n", - "[ NORMAL ] Iteration 71:\tk_eff = 0.888893\tres = 1.271E-02\n", - "[ NORMAL ] Iteration 72:\tk_eff = 0.899465\tres = 1.230E-02\n", - "[ NORMAL ] Iteration 73:\tk_eff = 0.909807\tres = 1.189E-02\n", - "[ NORMAL ] Iteration 74:\tk_eff = 0.919919\tres = 1.150E-02\n", - "[ NORMAL ] Iteration 75:\tk_eff = 0.929798\tres = 1.111E-02\n", - "[ NORMAL ] Iteration 76:\tk_eff = 0.939444\tres = 1.074E-02\n", - "[ NORMAL ] Iteration 77:\tk_eff = 0.948856\tres = 1.037E-02\n", - "[ NORMAL ] Iteration 78:\tk_eff = 0.958036\tres = 1.002E-02\n", - "[ NORMAL ] Iteration 79:\tk_eff = 0.966983\tres = 9.674E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 0.975698\tres = 9.339E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 0.984184\tres = 9.013E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 0.992441\tres = 8.697E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.000472\tres = 8.390E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.008280\tres = 8.092E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.015866\tres = 7.804E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.023234\tres = 7.524E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.030386\tres = 7.253E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.037327\tres = 6.990E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.044059\tres = 6.736E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.050585\tres = 6.490E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.056911\tres = 6.251E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.063038\tres = 6.021E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.068972\tres = 5.798E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.074716\tres = 5.582E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.080275\tres = 5.373E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.085651\tres = 5.172E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.090850\tres = 4.977E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.095876\tres = 4.789E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.100733\tres = 4.607E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.105424\tres = 4.432E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.109955\tres = 4.262E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.114328\tres = 4.099E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.118550\tres = 3.941E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.122623\tres = 3.788E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.126551\tres = 3.641E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.130339\tres = 3.499E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.133991\tres = 3.363E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.137511\tres = 3.231E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.140902\tres = 3.104E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.144168\tres = 2.981E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.147313\tres = 2.863E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.150342\tres = 2.749E-03\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.153257\tres = 2.640E-03\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.156062\tres = 2.534E-03\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.158761\tres = 2.432E-03\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.161356\tres = 2.334E-03\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.163852\tres = 2.240E-03\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.166252\tres = 2.149E-03\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.168559\tres = 2.062E-03\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.170776\tres = 1.978E-03\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.172906\tres = 1.897E-03\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.174952\tres = 1.819E-03\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.176918\tres = 1.745E-03\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.178805\tres = 1.673E-03\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.180617\tres = 1.603E-03\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.182356\tres = 1.537E-03\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.184025\tres = 1.473E-03\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.185626\tres = 1.412E-03\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.187163\tres = 1.353E-03\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.188637\tres = 1.296E-03\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.190050\tres = 1.241E-03\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.191405\tres = 1.189E-03\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.192704\tres = 1.139E-03\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.193950\tres = 1.091E-03\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.195144\tres = 1.044E-03\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.196287\tres = 9.997E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.197383\tres = 9.571E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.198433\tres = 9.161E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.199439\tres = 8.768E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.200402\tres = 8.391E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.201324\tres = 8.029E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.202207\tres = 7.682E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.203052\tres = 7.349E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.203861\tres = 7.030E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.204635\tres = 6.724E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.205376\tres = 6.431E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.206084\tres = 6.149E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.206762\tres = 5.880E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.207411\tres = 5.622E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.208031\tres = 5.374E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.208624\tres = 5.137E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.209192\tres = 4.910E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.209734\tres = 4.693E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.210252\tres = 4.484E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.210748\tres = 4.285E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.211221\tres = 4.094E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.211674\tres = 3.911E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.212106\tres = 3.736E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.212519\tres = 3.569E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.212914\tres = 3.408E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.213291\tres = 3.255E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.213651\tres = 3.108E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.213995\tres = 2.968E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.214323\tres = 2.834E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.214637\tres = 2.705E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.214936\tres = 2.582E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.215222\tres = 2.465E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.215495\tres = 2.353E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.215755\tres = 2.245E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.216004\tres = 2.142E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.216241\tres = 2.044E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.216468\tres = 1.951E-04\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.216683\tres = 1.861E-04\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.216889\tres = 1.775E-04\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.217086\tres = 1.693E-04\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.217274\tres = 1.615E-04\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.217452\tres = 1.540E-04\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.217623\tres = 1.469E-04\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.217786\tres = 1.401E-04\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.217941\tres = 1.336E-04\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.218089\tres = 1.274E-04\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.218230\tres = 1.214E-04\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.218364\tres = 1.158E-04\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.218492\tres = 1.104E-04\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.218614\tres = 1.052E-04\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.218731\tres = 1.003E-04\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.218842\tres = 9.556E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.218948\tres = 9.107E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.219048\tres = 8.679E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.219144\tres = 8.270E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.219236\tres = 7.880E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.219323\tres = 7.508E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.219406\tres = 7.152E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.219485\tres = 6.814E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.219561\tres = 6.491E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.219633\tres = 6.183E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.219701\tres = 5.889E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.219766\tres = 5.609E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.219828\tres = 5.341E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.219887\tres = 5.087E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.219944\tres = 4.844E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.219997\tres = 4.612E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.220048\tres = 4.391E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.220097\tres = 4.181E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.220143\tres = 3.981E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.220187\tres = 3.789E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.220229\tres = 3.607E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.220269\tres = 3.434E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.220307\tres = 3.268E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.220343\tres = 3.111E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.220377\tres = 2.961E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.220410\tres = 2.818E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.220441\tres = 2.681E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.220471\tres = 2.552E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.220499\tres = 2.428E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.220526\tres = 2.310E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.220551\tres = 2.198E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.220576\tres = 2.091E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.220599\tres = 1.990E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.220621\tres = 1.893E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.220642\tres = 1.801E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.220661\tres = 1.713E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.220680\tres = 1.629E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.220698\tres = 1.550E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.220715\tres = 1.474E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.220732\tres = 1.402E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.220747\tres = 1.333E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.220762\tres = 1.268E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.220776\tres = 1.206E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.220789\tres = 1.146E-05\n", - "[ NORMAL ] Iteration 231:\tk_eff = 1.220802\tres = 1.090E-05\n", - "[ NORMAL ] Iteration 232:\tk_eff = 1.220814\tres = 1.036E-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.658941\tres = 2.793E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.852E-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.522274\tres = 2.841E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.510609\tres = 2.567E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.493831\tres = 1.861E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.488780\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.485923\tres = 1.023E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485210\tres = 5.846E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.486569\tres = 1.467E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.489903\tres = 2.801E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495103\tres = 6.852E-03\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.502053\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.510627\tres = 1.404E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.520693\tres = 1.708E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532117\tres = 1.971E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.544764\tres = 2.194E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558501\tres = 2.377E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.573195\tres = 2.522E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.588718\tres = 2.631E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.604946\tres = 2.708E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.621759\tres = 2.756E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639047\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656702\tres = 2.780E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.674624\tres = 2.763E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.692722\tres = 2.729E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.710910\tres = 2.683E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729109\tres = 2.625E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.747248\tres = 2.560E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.765263\tres = 2.488E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783094\tres = 2.411E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.800690\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.818005\tres = 2.247E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.834999\tres = 2.163E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.851638\tres = 2.078E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.867892\tres = 1.993E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883736\tres = 1.909E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.899149\tres = 1.826E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914115\tres = 1.744E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928622\tres = 1.664E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.942659\tres = 1.587E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.956221\tres = 1.512E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.969305\tres = 1.439E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.981909\tres = 1.368E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.994035\tres = 1.300E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.005685\tres = 1.235E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.016866\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.027584\tres = 1.112E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037846\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.047661\tres = 9.986E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057040\tres = 9.457E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.065994\tres = 8.953E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.074533\tres = 8.470E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082671\tres = 8.011E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.090418\tres = 7.573E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.097790\tres = 7.156E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104797\tres = 6.760E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.111453\tres = 6.383E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.117770\tres = 6.025E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123764\tres = 5.684E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129446\tres = 5.362E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.134828\tres = 5.056E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139924\tres = 4.765E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.144746\tres = 4.491E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.149306\tres = 4.230E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153617\tres = 3.983E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.157688\tres = 3.751E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.161534\tres = 3.530E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165163\tres = 3.322E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.168586\tres = 3.124E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.171813\tres = 2.938E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.174855\tres = 2.762E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.177721\tres = 2.596E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.180419\tres = 2.439E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.182960\tres = 2.291E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.185350\tres = 2.152E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.187599\tres = 2.021E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.189713\tres = 1.897E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191700\tres = 1.780E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.193567\tres = 1.670E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195321\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.196967\tres = 1.469E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.198513\tres = 1.378E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.199964\tres = 1.291E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.201326\tres = 1.211E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.202602\tres = 1.135E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203800\tres = 1.062E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.204922\tres = 9.959E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.205974\tres = 9.321E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.206961\tres = 8.732E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207884\tres = 8.175E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208748\tres = 7.646E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209558\tres = 7.159E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210316\tres = 6.699E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211025\tres = 6.262E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211689\tres = 5.864E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212310\tres = 5.481E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212891\tres = 5.124E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213434\tres = 4.792E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.213942\tres = 4.477E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214416\tres = 4.189E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214861\tres = 3.907E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215275\tres = 3.660E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215663\tres = 3.414E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216025\tres = 3.188E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216363\tres = 2.981E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216679\tres = 2.776E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.216974\tres = 2.599E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217250\tres = 2.427E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217507\tres = 2.263E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217747\tres = 2.115E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.217970\tres = 1.970E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218180\tres = 1.834E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218375\tres = 1.718E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218557\tres = 1.602E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218726\tres = 1.496E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218885\tres = 1.387E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219032\tres = 1.301E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219169\tres = 1.211E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219298\tres = 1.127E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219418\tres = 1.058E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219529\tres = 9.828E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219633\tres = 9.100E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219730\tres = 8.530E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219820\tres = 7.940E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.219904\tres = 7.409E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.219983\tres = 6.876E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220056\tres = 6.455E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220124\tres = 5.969E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220187\tres = 5.603E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220246\tres = 5.166E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220301\tres = 4.829E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220352\tres = 4.510E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220400\tres = 4.199E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220445\tres = 3.939E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220486\tres = 3.630E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220525\tres = 3.362E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220561\tres = 3.181E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220594\tres = 2.977E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220626\tres = 2.745E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220655\tres = 2.569E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220682\tres = 2.376E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220707\tres = 2.201E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220730\tres = 2.071E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220752\tres = 1.925E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220772\tres = 1.793E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220791\tres = 1.669E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220809\tres = 1.554E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220826\tres = 1.457E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220841\tres = 1.372E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220855\tres = 1.249E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220868\tres = 1.138E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220881\tres = 1.104E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220892\tres = 1.028E-05\n" ] } ], @@ -1435,8 +1367,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.220814\n", - "bias [pcm]: -266.0\n" + "openmoc keff = 1.220892\n", + "bias [pcm]: -258.1\n" ] } ], @@ -1511,346 +1443,237 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.366907\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.391217\tres = 6.331E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.393027\tres = 6.626E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.381142\tres = 4.627E-03\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.375065\tres = 3.024E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.369645\tres = 1.594E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.365597\tres = 1.445E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.363111\tres = 1.095E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.361532\tres = 6.802E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.361339\tres = 4.349E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.362062\tres = 5.322E-04\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.363777\tres = 2.001E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.366395\tres = 4.735E-03\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.369859\tres = 7.198E-03\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.374042\tres = 9.454E-03\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.378972\tres = 1.131E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.384524\tres = 1.318E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.390678\tres = 1.465E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.397373\tres = 1.600E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.404563\tres = 1.714E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.412207\tres = 1.809E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.420270\tres = 1.890E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.428695\tres = 1.956E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.437463\tres = 2.005E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.446530\tres = 2.045E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.455867\tres = 2.073E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.465442\tres = 2.091E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.475229\tres = 2.101E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.485198\tres = 2.103E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.495327\tres = 2.098E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.505591\tres = 2.088E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.515969\tres = 2.072E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.526440\tres = 2.053E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.536985\tres = 2.029E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.547587\tres = 2.003E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.558228\tres = 1.974E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.568893\tres = 1.943E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.579569\tres = 1.911E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.590241\tres = 1.877E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.600898\tres = 1.841E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.611527\tres = 1.805E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.622118\tres = 1.769E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.632662\tres = 1.732E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.643149\tres = 1.695E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.653571\tres = 1.658E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.663920\tres = 1.620E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.674189\tres = 1.583E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.684372\tres = 1.547E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.694464\tres = 1.510E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.704457\tres = 1.475E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.714349\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.724134\tres = 1.404E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.733808\tres = 1.370E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.743369\tres = 1.336E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.752812\tres = 1.303E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.762135\tres = 1.270E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 0.771336\tres = 1.238E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 0.780412\tres = 1.207E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 0.789362\tres = 1.177E-02\n", - "[ NORMAL ] Iteration 59:\tk_eff = 0.798184\tres = 1.147E-02\n", - "[ NORMAL ] Iteration 60:\tk_eff = 0.806877\tres = 1.118E-02\n", - "[ NORMAL ] Iteration 61:\tk_eff = 0.815440\tres = 1.089E-02\n", - "[ NORMAL ] Iteration 62:\tk_eff = 0.823872\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 63:\tk_eff = 0.832172\tres = 1.034E-02\n", - "[ NORMAL ] Iteration 64:\tk_eff = 0.840340\tres = 1.007E-02\n", - "[ NORMAL ] Iteration 65:\tk_eff = 0.848377\tres = 9.816E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 0.856281\tres = 9.563E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 0.864053\tres = 9.317E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 0.871693\tres = 9.076E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 0.879202\tres = 8.842E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 0.886580\tres = 8.614E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 0.893828\tres = 8.392E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 0.900946\tres = 8.175E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 0.907936\tres = 7.964E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 0.914798\tres = 7.758E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 0.921534\tres = 7.558E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 0.928144\tres = 7.363E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 0.934629\tres = 7.173E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 0.940992\tres = 6.988E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 0.947233\tres = 6.808E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 0.953353\tres = 6.632E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 0.959355\tres = 6.461E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 0.965238\tres = 6.295E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 0.971006\tres = 6.133E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 0.976659\tres = 5.975E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 0.982199\tres = 5.822E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 0.987627\tres = 5.672E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 0.992945\tres = 5.527E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 0.998155\tres = 5.385E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.003258\tres = 5.247E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.008256\tres = 5.113E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.013151\tres = 4.982E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.017943\tres = 4.854E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.022635\tres = 4.730E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027229\tres = 4.609E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.031726\tres = 4.492E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.036127\tres = 4.377E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.040434\tres = 4.266E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.044649\tres = 4.157E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.048774\tres = 4.051E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.052810\tres = 3.948E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.056759\tres = 3.848E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.060622\tres = 3.751E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.064400\tres = 3.655E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.068096\tres = 3.563E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.071711\tres = 3.473E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.075247\tres = 3.385E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.078705\tres = 3.299E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.082086\tres = 3.216E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.085392\tres = 3.134E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.088624\tres = 3.055E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.091785\tres = 2.978E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.094875\tres = 2.903E-03\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.097895\tres = 2.830E-03\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.100848\tres = 2.759E-03\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.103734\tres = 2.689E-03\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.106555\tres = 2.622E-03\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.109312\tres = 2.556E-03\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.112007\tres = 2.492E-03\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.114641\tres = 2.429E-03\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.117214\tres = 2.368E-03\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.119729\tres = 2.309E-03\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.122187\tres = 2.251E-03\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.124588\tres = 2.195E-03\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.126934\tres = 2.140E-03\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.129226\tres = 2.086E-03\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.131466\tres = 2.034E-03\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.133654\tres = 1.983E-03\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.135791\tres = 1.934E-03\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.137879\tres = 1.885E-03\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.139919\tres = 1.838E-03\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.141911\tres = 1.793E-03\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.143857\tres = 1.748E-03\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.145758\tres = 1.704E-03\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.147615\tres = 1.662E-03\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.149428\tres = 1.620E-03\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.151200\tres = 1.580E-03\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.152929\tres = 1.541E-03\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.154619\tres = 1.503E-03\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.156268\tres = 1.465E-03\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.157879\tres = 1.429E-03\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.159453\tres = 1.393E-03\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.160989\tres = 1.359E-03\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.162489\tres = 1.325E-03\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.163954\tres = 1.292E-03\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.165384\tres = 1.260E-03\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.166781\tres = 1.229E-03\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.168144\tres = 1.198E-03\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.169476\tres = 1.169E-03\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.170776\tres = 1.140E-03\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.172045\tres = 1.112E-03\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.173284\tres = 1.084E-03\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.174494\tres = 1.057E-03\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.175675\tres = 1.031E-03\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.176828\tres = 1.006E-03\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.177953\tres = 9.807E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.179052\tres = 9.565E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.180125\tres = 9.328E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.181172\tres = 9.098E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.182194\tres = 8.873E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.183192\tres = 8.654E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.184166\tres = 8.441E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.185117\tres = 8.232E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.186045\tres = 8.029E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.186951\tres = 7.831E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.187835\tres = 7.638E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.188698\tres = 7.450E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.189541\tres = 7.266E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.190363\tres = 7.087E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.191166\tres = 6.912E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.191949\tres = 6.742E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.192713\tres = 6.576E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.193460\tres = 6.414E-04\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.194188\tres = 6.256E-04\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.194899\tres = 6.102E-04\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.195592\tres = 5.952E-04\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.196269\tres = 5.806E-04\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.196930\tres = 5.663E-04\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.197575\tres = 5.524E-04\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.198204\tres = 5.388E-04\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.198819\tres = 5.255E-04\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.199418\tres = 5.126E-04\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.200003\tres = 5.000E-04\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.200574\tres = 4.877E-04\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.201131\tres = 4.757E-04\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.201675\tres = 4.640E-04\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.202205\tres = 4.526E-04\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.202723\tres = 4.415E-04\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.203228\tres = 4.307E-04\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.203721\tres = 4.201E-04\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.204202\tres = 4.098E-04\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.204672\tres = 3.997E-04\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.205130\tres = 3.899E-04\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.205577\tres = 3.803E-04\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.206014\tres = 3.710E-04\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.206439\tres = 3.619E-04\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.206855\tres = 3.530E-04\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.207260\tres = 3.444E-04\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.207656\tres = 3.359E-04\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.208042\tres = 3.277E-04\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.208418\tres = 3.196E-04\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.208786\tres = 3.118E-04\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.209144\tres = 3.041E-04\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.209494\tres = 2.967E-04\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.209836\tres = 2.894E-04\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.210169\tres = 2.823E-04\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.210494\tres = 2.754E-04\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.210811\tres = 2.686E-04\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.211121\tres = 2.621E-04\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.211423\tres = 2.556E-04\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.211718\tres = 2.494E-04\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.212005\tres = 2.433E-04\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.212286\tres = 2.373E-04\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.212559\tres = 2.315E-04\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.212827\tres = 2.258E-04\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.213087\tres = 2.203E-04\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.213341\tres = 2.149E-04\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.213590\tres = 2.096E-04\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.213832\tres = 2.045E-04\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.214068\tres = 1.995E-04\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.214298\tres = 1.946E-04\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.214523\tres = 1.898E-04\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.214743\tres = 1.852E-04\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.214957\tres = 1.806E-04\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.215165\tres = 1.762E-04\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.215369\tres = 1.719E-04\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.215568\tres = 1.677E-04\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.215762\tres = 1.636E-04\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.215951\tres = 1.596E-04\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.216136\tres = 1.557E-04\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.216316\tres = 1.519E-04\n", - "[ NORMAL ] Iteration 231:\tk_eff = 1.216492\tres = 1.482E-04\n", - "[ NORMAL ] Iteration 232:\tk_eff = 1.216663\tres = 1.445E-04\n", - "[ NORMAL ] Iteration 233:\tk_eff = 1.216831\tres = 1.410E-04\n", - "[ NORMAL ] Iteration 234:\tk_eff = 1.216994\tres = 1.375E-04\n", - "[ NORMAL ] Iteration 235:\tk_eff = 1.217153\tres = 1.342E-04\n", - "[ NORMAL ] Iteration 236:\tk_eff = 1.217309\tres = 1.309E-04\n", - "[ NORMAL ] Iteration 237:\tk_eff = 1.217460\tres = 1.277E-04\n", - "[ NORMAL ] Iteration 238:\tk_eff = 1.217608\tres = 1.246E-04\n", - "[ NORMAL ] Iteration 239:\tk_eff = 1.217753\tres = 1.215E-04\n", - "[ NORMAL ] Iteration 240:\tk_eff = 1.217894\tres = 1.185E-04\n", - "[ NORMAL ] Iteration 241:\tk_eff = 1.218031\tres = 1.156E-04\n", - "[ NORMAL ] Iteration 242:\tk_eff = 1.218165\tres = 1.128E-04\n", - "[ NORMAL ] Iteration 243:\tk_eff = 1.218296\tres = 1.101E-04\n", - "[ NORMAL ] Iteration 244:\tk_eff = 1.218423\tres = 1.074E-04\n", - "[ NORMAL ] Iteration 245:\tk_eff = 1.218548\tres = 1.047E-04\n", - "[ NORMAL ] Iteration 246:\tk_eff = 1.218669\tres = 1.022E-04\n", - "[ NORMAL ] Iteration 247:\tk_eff = 1.218788\tres = 9.967E-05\n", - "[ NORMAL ] Iteration 248:\tk_eff = 1.218903\tres = 9.723E-05\n", - "[ NORMAL ] Iteration 249:\tk_eff = 1.219016\tres = 9.486E-05\n", - "[ NORMAL ] Iteration 250:\tk_eff = 1.219126\tres = 9.254E-05\n", - "[ NORMAL ] Iteration 251:\tk_eff = 1.219234\tres = 9.027E-05\n", - "[ NORMAL ] Iteration 252:\tk_eff = 1.219338\tres = 8.806E-05\n", - "[ NORMAL ] Iteration 253:\tk_eff = 1.219441\tres = 8.591E-05\n", - "[ NORMAL ] Iteration 254:\tk_eff = 1.219540\tres = 8.381E-05\n", - "[ NORMAL ] Iteration 255:\tk_eff = 1.219637\tres = 8.176E-05\n", - "[ NORMAL ] Iteration 256:\tk_eff = 1.219732\tres = 7.976E-05\n", - "[ NORMAL ] Iteration 257:\tk_eff = 1.219825\tres = 7.781E-05\n", - "[ NORMAL ] Iteration 258:\tk_eff = 1.219915\tres = 7.591E-05\n", - "[ NORMAL ] Iteration 259:\tk_eff = 1.220003\tres = 7.405E-05\n", - "[ NORMAL ] Iteration 260:\tk_eff = 1.220089\tres = 7.224E-05\n", - "[ NORMAL ] Iteration 261:\tk_eff = 1.220173\tres = 7.047E-05\n", - "[ NORMAL ] Iteration 262:\tk_eff = 1.220255\tres = 6.875E-05\n", - "[ NORMAL ] Iteration 263:\tk_eff = 1.220335\tres = 6.707E-05\n", - "[ NORMAL ] Iteration 264:\tk_eff = 1.220413\tres = 6.543E-05\n", - "[ NORMAL ] Iteration 265:\tk_eff = 1.220489\tres = 6.383E-05\n", - "[ NORMAL ] Iteration 266:\tk_eff = 1.220563\tres = 6.227E-05\n", - "[ NORMAL ] Iteration 267:\tk_eff = 1.220635\tres = 6.075E-05\n", - "[ NORMAL ] Iteration 268:\tk_eff = 1.220706\tres = 5.926E-05\n", - "[ NORMAL ] Iteration 269:\tk_eff = 1.220775\tres = 5.781E-05\n", - "[ NORMAL ] Iteration 270:\tk_eff = 1.220842\tres = 5.640E-05\n", - "[ NORMAL ] Iteration 271:\tk_eff = 1.220907\tres = 5.502E-05\n", - "[ NORMAL ] Iteration 272:\tk_eff = 1.220971\tres = 5.368E-05\n", - "[ NORMAL ] Iteration 273:\tk_eff = 1.221034\tres = 5.236E-05\n", - "[ NORMAL ] Iteration 274:\tk_eff = 1.221095\tres = 5.108E-05\n", - "[ NORMAL ] Iteration 275:\tk_eff = 1.221154\tres = 4.984E-05\n", - "[ NORMAL ] Iteration 276:\tk_eff = 1.221212\tres = 4.862E-05\n", - "[ NORMAL ] Iteration 277:\tk_eff = 1.221268\tres = 4.743E-05\n", - "[ NORMAL ] Iteration 278:\tk_eff = 1.221324\tres = 4.627E-05\n", - "[ NORMAL ] Iteration 279:\tk_eff = 1.221377\tres = 4.514E-05\n", - "[ NORMAL ] Iteration 280:\tk_eff = 1.221430\tres = 4.403E-05\n", - "[ NORMAL ] Iteration 281:\tk_eff = 1.221481\tres = 4.296E-05\n", - "[ NORMAL ] Iteration 282:\tk_eff = 1.221531\tres = 4.191E-05\n", - "[ NORMAL ] Iteration 283:\tk_eff = 1.221580\tres = 4.088E-05\n", - "[ NORMAL ] Iteration 284:\tk_eff = 1.221627\tres = 3.988E-05\n", - "[ NORMAL ] Iteration 285:\tk_eff = 1.221674\tres = 3.891E-05\n", - "[ NORMAL ] Iteration 286:\tk_eff = 1.221719\tres = 3.796E-05\n", - "[ NORMAL ] Iteration 287:\tk_eff = 1.221763\tres = 3.703E-05\n", - "[ NORMAL ] Iteration 288:\tk_eff = 1.221806\tres = 3.613E-05\n", - "[ NORMAL ] Iteration 289:\tk_eff = 1.221848\tres = 3.524E-05\n", - "[ NORMAL ] Iteration 290:\tk_eff = 1.221889\tres = 3.438E-05\n", - "[ NORMAL ] Iteration 291:\tk_eff = 1.221929\tres = 3.354E-05\n", - "[ NORMAL ] Iteration 292:\tk_eff = 1.221968\tres = 3.272E-05\n", - "[ NORMAL ] Iteration 293:\tk_eff = 1.222006\tres = 3.192E-05\n", - "[ NORMAL ] Iteration 294:\tk_eff = 1.222043\tres = 3.114E-05\n", - "[ NORMAL ] Iteration 295:\tk_eff = 1.222079\tres = 3.038E-05\n", - "[ NORMAL ] Iteration 296:\tk_eff = 1.222115\tres = 2.964E-05\n", - "[ NORMAL ] Iteration 297:\tk_eff = 1.222149\tres = 2.891E-05\n", - "[ NORMAL ] Iteration 298:\tk_eff = 1.222183\tres = 2.821E-05\n", - "[ NORMAL ] Iteration 299:\tk_eff = 1.222216\tres = 2.752E-05\n", - "[ NORMAL ] Iteration 300:\tk_eff = 1.222248\tres = 2.685E-05\n", - "[ NORMAL ] Iteration 301:\tk_eff = 1.222279\tres = 2.619E-05\n", - "[ NORMAL ] Iteration 302:\tk_eff = 1.222309\tres = 2.555E-05\n", - "[ NORMAL ] Iteration 303:\tk_eff = 1.222339\tres = 2.492E-05\n", - "[ NORMAL ] Iteration 304:\tk_eff = 1.222368\tres = 2.432E-05\n", - "[ NORMAL ] Iteration 305:\tk_eff = 1.222396\tres = 2.372E-05\n", - "[ NORMAL ] Iteration 306:\tk_eff = 1.222424\tres = 2.314E-05\n", - "[ NORMAL ] Iteration 307:\tk_eff = 1.222451\tres = 2.258E-05\n", - "[ NORMAL ] Iteration 308:\tk_eff = 1.222477\tres = 2.202E-05\n", - "[ NORMAL ] Iteration 309:\tk_eff = 1.222503\tres = 2.149E-05\n", - "[ NORMAL ] Iteration 310:\tk_eff = 1.222528\tres = 2.096E-05\n", - "[ NORMAL ] Iteration 311:\tk_eff = 1.222552\tres = 2.045E-05\n", - "[ NORMAL ] Iteration 312:\tk_eff = 1.222576\tres = 1.995E-05\n", - "[ NORMAL ] Iteration 313:\tk_eff = 1.222599\tres = 1.946E-05\n", - "[ NORMAL ] Iteration 314:\tk_eff = 1.222622\tres = 1.899E-05\n", - "[ NORMAL ] Iteration 315:\tk_eff = 1.222644\tres = 1.852E-05\n", - "[ NORMAL ] Iteration 316:\tk_eff = 1.222665\tres = 1.807E-05\n", - "[ NORMAL ] Iteration 317:\tk_eff = 1.222686\tres = 1.763E-05\n", - "[ NORMAL ] Iteration 318:\tk_eff = 1.222707\tres = 1.720E-05\n", - "[ NORMAL ] Iteration 319:\tk_eff = 1.222727\tres = 1.678E-05\n", - "[ NORMAL ] Iteration 320:\tk_eff = 1.222746\tres = 1.637E-05\n", - "[ NORMAL ] Iteration 321:\tk_eff = 1.222766\tres = 1.597E-05\n", - "[ NORMAL ] Iteration 322:\tk_eff = 1.222784\tres = 1.558E-05\n", - "[ NORMAL ] Iteration 323:\tk_eff = 1.222802\tres = 1.520E-05\n", - "[ NORMAL ] Iteration 324:\tk_eff = 1.222820\tres = 1.483E-05\n", - "[ NORMAL ] Iteration 325:\tk_eff = 1.222837\tres = 1.446E-05\n", - "[ NORMAL ] Iteration 326:\tk_eff = 1.222854\tres = 1.411E-05\n", - "[ NORMAL ] Iteration 327:\tk_eff = 1.222870\tres = 1.377E-05\n", - "[ NORMAL ] Iteration 328:\tk_eff = 1.222886\tres = 1.343E-05\n", - "[ NORMAL ] Iteration 329:\tk_eff = 1.222902\tres = 1.310E-05\n", - "[ NORMAL ] Iteration 330:\tk_eff = 1.222917\tres = 1.278E-05\n", - "[ NORMAL ] Iteration 331:\tk_eff = 1.222932\tres = 1.247E-05\n", - "[ NORMAL ] Iteration 332:\tk_eff = 1.222947\tres = 1.216E-05\n", - "[ NORMAL ] Iteration 333:\tk_eff = 1.222961\tres = 1.187E-05\n", - "[ NORMAL ] Iteration 334:\tk_eff = 1.222975\tres = 1.158E-05\n", - "[ NORMAL ] Iteration 335:\tk_eff = 1.222988\tres = 1.129E-05\n", - "[ NORMAL ] Iteration 336:\tk_eff = 1.223001\tres = 1.102E-05\n", - "[ NORMAL ] Iteration 337:\tk_eff = 1.223014\tres = 1.075E-05\n", - "[ NORMAL ] Iteration 338:\tk_eff = 1.223027\tres = 1.049E-05\n", - "[ NORMAL ] Iteration 339:\tk_eff = 1.223039\tres = 1.023E-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.496490\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.478834\tres = 6.465E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.479871\tres = 1.960E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.482684\tres = 2.165E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.487084\tres = 5.860E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.492900\tres = 9.116E-03\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.499971\tres = 1.194E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.508153\tres = 1.435E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.517312\tres = 1.637E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.527325\tres = 1.802E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.538079\tres = 1.936E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.549472\tres = 2.039E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.561410\tres = 2.117E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.573807\tres = 2.173E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.586585\tres = 2.208E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.599674\tres = 2.227E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.613007\tres = 2.231E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.626528\tres = 2.223E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.640181\tres = 2.206E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.653920\tres = 2.179E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.667700\tres = 2.146E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.681483\tres = 2.107E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.695234\tres = 2.064E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.708921\tres = 2.018E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.722515\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.735993\tres = 1.918E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.749331\tres = 1.865E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.762510\tres = 1.812E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.775514\tres = 1.759E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.788326\tres = 1.705E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800935\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.813328\tres = 1.599E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.825497\tres = 1.547E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.837433\tres = 1.496E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.849130\tres = 1.446E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.860583\tres = 1.397E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871788\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.882742\tres = 1.302E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.893442\tres = 1.256E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.903887\tres = 1.212E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914077\tres = 1.169E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.924012\tres = 1.127E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.933693\tres = 1.087E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.943122\tres = 1.048E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.952299\tres = 1.010E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961228\tres = 9.730E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969911\tres = 9.377E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.978351\tres = 9.033E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.986552\tres = 8.702E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 0.994517\tres = 8.382E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.002250\tres = 8.074E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.009755\tres = 7.776E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.017037\tres = 7.488E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.024099\tres = 7.211E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.030947\tres = 6.944E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.037584\tres = 6.687E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.044016\tres = 6.438E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.050247\tres = 6.199E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056282\tres = 5.969E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.062125\tres = 5.746E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067781\tres = 5.531E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.073255\tres = 5.326E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078552\tres = 5.126E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083676\tres = 4.936E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.088632\tres = 4.751E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.093425\tres = 4.573E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.098058\tres = 4.403E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.102537\tres = 4.237E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106866\tres = 4.079E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.111049\tres = 3.926E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.115090\tres = 3.779E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.118995\tres = 3.638E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.122766\tres = 3.501E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.126408\tres = 3.370E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.129925\tres = 3.244E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.133320\tres = 3.122E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.136597\tres = 3.005E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.139761\tres = 2.892E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142815\tres = 2.783E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.145761\tres = 2.679E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148605\tres = 2.579E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.151348\tres = 2.482E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.153994\tres = 2.388E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156547\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.159009\tres = 2.212E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.161384\tres = 2.129E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.163674\tres = 2.049E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165882\tres = 1.972E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.168012\tres = 1.898E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.170064\tres = 1.827E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.172043\tres = 1.757E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173951\tres = 1.692E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.175790\tres = 1.628E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.177562\tres = 1.566E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179269\tres = 1.507E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.180916\tres = 1.450E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.182502\tres = 1.396E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.184030\tres = 1.343E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.185503\tres = 1.292E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.186922\tres = 1.244E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.188288\tres = 1.197E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.189606\tres = 1.151E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.190874\tres = 1.108E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.192096\tres = 1.066E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.193273\tres = 1.026E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194407\tres = 9.870E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195499\tres = 9.504E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196550\tres = 9.140E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197563\tres = 8.792E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198538\tres = 8.468E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199477\tres = 8.140E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200382\tres = 7.837E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201253\tres = 7.539E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202091\tres = 7.257E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202898\tres = 6.979E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203676\tres = 6.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204424\tres = 6.465E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.205144\tres = 6.217E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205838\tres = 5.979E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206505\tres = 5.760E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207148\tres = 5.532E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207767\tres = 5.325E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208363\tres = 5.125E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208936\tres = 4.935E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.209487\tres = 4.744E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.210018\tres = 4.559E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210529\tres = 4.392E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.211021\tres = 4.223E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211495\tres = 4.060E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211951\tres = 3.914E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212390\tres = 3.763E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212812\tres = 3.623E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213217\tres = 3.480E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213608\tres = 3.344E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.213984\tres = 3.223E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214347\tres = 3.097E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214695\tres = 2.985E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.215031\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215352\tres = 2.763E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215663\tres = 2.648E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215962\tres = 2.552E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216249\tres = 2.460E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216526\tres = 2.362E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216792\tres = 2.279E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.217048\tres = 2.188E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217294\tres = 2.100E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.217531\tres = 2.024E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217759\tres = 1.948E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.217978\tres = 1.872E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218189\tres = 1.799E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.218393\tres = 1.733E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218588\tres = 1.668E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218776\tres = 1.600E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218957\tres = 1.544E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219131\tres = 1.485E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219298\tres = 1.428E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219459\tres = 1.374E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.219614\tres = 1.321E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.219763\tres = 1.270E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.219906\tres = 1.221E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.220044\tres = 1.175E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220177\tres = 1.130E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220304\tres = 1.084E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220427\tres = 1.045E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220545\tres = 1.007E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220659\tres = 9.678E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220768\tres = 9.304E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220874\tres = 8.984E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.220975\tres = 8.640E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.221073\tres = 8.326E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221166\tres = 7.985E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221256\tres = 7.662E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221343\tres = 7.371E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221426\tres = 7.091E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221506\tres = 6.827E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221583\tres = 6.560E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221657\tres = 6.320E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221729\tres = 6.067E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221797\tres = 5.829E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221863\tres = 5.641E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221927\tres = 5.382E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.221987\tres = 5.196E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.222046\tres = 4.968E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222102\tres = 4.810E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222157\tres = 4.617E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222209\tres = 4.456E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222260\tres = 4.287E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222308\tres = 4.122E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222355\tres = 3.971E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222399\tres = 3.805E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222442\tres = 3.657E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222484\tres = 3.521E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222523\tres = 3.381E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222561\tres = 3.262E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222598\tres = 3.107E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222634\tres = 2.985E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222668\tres = 2.902E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222700\tres = 2.804E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222732\tres = 2.639E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222762\tres = 2.577E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222792\tres = 2.487E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222820\tres = 2.400E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222847\tres = 2.291E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222872\tres = 2.200E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222897\tres = 2.121E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222921\tres = 2.040E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222944\tres = 1.964E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222967\tres = 1.882E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.222988\tres = 1.821E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.223009\tres = 1.763E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.223029\tres = 1.690E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.223048\tres = 1.630E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.223067\tres = 1.572E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223084\tres = 1.507E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223101\tres = 1.427E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223117\tres = 1.394E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223133\tres = 1.330E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223148\tres = 1.298E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223163\tres = 1.241E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223177\tres = 1.167E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223190\tres = 1.151E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223203\tres = 1.073E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223215\tres = 1.050E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223227\tres = 1.000E-05\n" ] } ], @@ -1876,8 +1699,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.223039\n", - "bias [pcm]: -43.5\n" + "openmoc keff = 1.223227\n", + "bias [pcm]: -24.7\n" ] } ], @@ -1962,9 +1785,9 @@ }, { "data": { - "image/png": "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\nYwHYAAAAAElFTkSuQmCC\n", + "image/png": "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\nRK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1973,7 +1796,7 @@ ], "source": [ "# Create a loglog plot of the U-235 continuous-energy fission cross section \n", - "plt.loglog(fission.xs.x, fission.xs.y, color='b', linewidth=1)\n", + "plt.loglog(fission.xs['294K'].x, fission.xs['294K'].y, color='b', linewidth=1)\n", "\n", "# Extract energy group bounds and MGXS values to plot\n", "nufission = xs_library[fuel_cell.id]['fission']\n", @@ -1983,7 +1806,7 @@ "y = np.squeeze(y)\n", "\n", "# Fix low energy bound to the value defined by the ACE library\n", - "x[0] = fission.xs.x[0]\n", + "x[0] = fission.xs['294K'].x[0]\n", "\n", "# Extend the mgxs values array for matplotlib's step plot\n", "y = np.insert(y, 0, y[0])\n", @@ -2046,9 +1869,9 @@ "outputs": [ { "data": { - "image/png": "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\nZlZT/x9xJfW8VvykSgAAAABJRU5ErkJggg==\n", + "image/png": "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\nfn35+EIOpHUAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2088,21 +1911,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index af9f2878fe..0c8b843be1 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": [ - "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.py:1357: UserWarning: This call to matplotlib.use() has no effect\n", + "/home/romano/miniconda3/envs/default/lib/python3.5/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", @@ -135,7 +135,6 @@ "source": [ "# Instantiate a Materials object\n", "materials_file = openmc.Materials((fuel, water, zircaloy))\n", - "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", "materials_file.export_to_xml()" @@ -458,7 +457,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -716,24 +715,37 @@ "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", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", + " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%%%%%%\n", + " ##################### %%%%%%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%\n", + " ################# %%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%\n", + " ############ %%%%%%%%%%%%%%%\n", + " ######## %%%%%%%%%%%%%%\n", + " %%%%%%%%%%%\n", "\n", - " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.8.0\n", - " Git SHA1: be7e6e035d22944a8c80ca32f99935b6822854c9\n", - " Date/Time: 2016-08-10 18:33:28\n", - " MPI Processes: 1\n", + " | The OpenMC Monte Carlo Code\n", + " Copyright | 2011-2016 Massachusetts Institute of Technology\n", + " License | http://openmc.readthedocs.io/en/latest/license.html\n", + " Version | 0.8.0\n", + " Git SHA1 | fbebf7bf709fe2fe1813af95bff9b29c0d59312c\n", + " Date/Time | 2016-08-31 10:44:00\n", + " OpenMP Threads | 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -743,13 +755,13 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading U235.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/U238_71c.h5\n", - " Reading O16.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/O16_71c.h5\n", - " Reading H1.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/H1_71c.h5\n", - " Reading B10.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/B10_71c.h5\n", - " Reading Zr90.71c from /Users/sam/git/openmc-sam/data/nndc_hdf5/Zr90_71c.h5\n", - " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", + " Reading U235 from /home/romano/openmc/data/nndc_hdf5/U235.h5\n", + " Reading U238 from /home/romano/openmc/data/nndc_hdf5/U238.h5\n", + " Reading O16 from /home/romano/openmc/data/nndc_hdf5/O16.h5\n", + " Reading H1 from /home/romano/openmc/data/nndc_hdf5/H1.h5\n", + " Reading B10 from /home/romano/openmc/data/nndc_hdf5/B10.h5\n", + " Reading Zr90 from /home/romano/openmc/data/nndc_hdf5/Zr90.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", " Initializing source particles...\n", @@ -784,32 +796,32 @@ " 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.97414 1.02442 +/- 0.00666\n", - " 26/1 1.04709 1.02584 +/- 0.00639\n", - " 27/1 1.05872 1.02777 +/- 0.00631\n", - " 28/1 1.03930 1.02841 +/- 0.00598\n", - " 29/1 1.01488 1.02770 +/- 0.00570\n", - " 30/1 1.04513 1.02857 +/- 0.00548\n", - " 31/1 0.99538 1.02699 +/- 0.00545\n", - " 32/1 1.00106 1.02581 +/- 0.00532\n", - " 33/1 0.99389 1.02442 +/- 0.00527\n", - " 34/1 0.99938 1.02338 +/- 0.00516\n", - " 35/1 1.02161 1.02331 +/- 0.00495\n", - " 36/1 1.04084 1.02398 +/- 0.00480\n", - " 37/1 0.98801 1.02265 +/- 0.00481\n", - " 38/1 1.01348 1.02232 +/- 0.00464\n", - " 39/1 1.06693 1.02386 +/- 0.00474\n", - " 40/1 1.07729 1.02564 +/- 0.00491\n", - " 41/1 1.03191 1.02585 +/- 0.00475\n", - " 42/1 1.05209 1.02667 +/- 0.00468\n", - " 43/1 1.02997 1.02677 +/- 0.00453\n", - " 44/1 1.07288 1.02812 +/- 0.00460\n", - " 45/1 1.01268 1.02768 +/- 0.00449\n", - " 46/1 1.03759 1.02796 +/- 0.00437\n", - " 47/1 1.02620 1.02791 +/- 0.00425\n", - " 48/1 1.02509 1.02783 +/- 0.00414\n", - " 49/1 1.01043 1.02739 +/- 0.00406\n", - " 50/1 1.01457 1.02707 +/- 0.00397\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", @@ -819,27 +831,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.3000E-01 seconds\n", - " Reading cross sections = 2.2800E-01 seconds\n", - " Total time in simulation = 6.1235E+01 seconds\n", - " Time in transport only = 6.1207E+01 seconds\n", - " Time in inactive batches = 5.0280E+00 seconds\n", - " Time in active batches = 5.6207E+01 seconds\n", - " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Total time for initialization = 6.4800E-01 seconds\n", + " Reading cross sections = 4.8000E-01 seconds\n", + " Total time in simulation = 3.2830E+01 seconds\n", + " Time in transport only = 3.2659E+01 seconds\n", + " Time in inactive batches = 2.7510E+00 seconds\n", + " Time in active batches = 3.0079E+01 seconds\n", + " Time synchronizing fission bank = 9.0000E-03 seconds\n", " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 5.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 6.1689E+01 seconds\n", - " Calculation Rate (inactive) = 4972.16 neutrons/second\n", - " Calculation Rate (active) = 1779.14 neutrons/second\n", + " Total time elapsed = 3.3498E+01 seconds\n", + " Calculation Rate (inactive) = 9087.60 neutrons/second\n", + " Calculation Rate (active) = 3324.58 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02489 +/- 0.00308\n", - " k-effective (Track-length) = 1.02707 +/- 0.00397\n", - " k-effective (Absorption) = 1.02637 +/- 0.00325\n", - " Combined k-effective = 1.02581 +/- 0.00264\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" ] @@ -955,13 +967,6 @@ "collapsed": false }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/sam/.local/lib/python2.7/site-packages/openmc-0.8.0-py2.7.egg/openmc/tallies.py:1944: RuntimeWarning: invalid value encountered in true_divide\n" - ] - }, { "data": { "text/html": [ @@ -983,16 +988,16 @@ " 10000\n", " 1\n", " U235\n", - " 8.046809e-03\n", - " 2.697198e-05\n", + " 8.055246e-03\n", + " 2.857567e-05\n", " \n", " \n", " 4\n", " 10000\n", " 1\n", " U238\n", - " 7.366624e-03\n", - " 4.255197e-05\n", + " 7.339215e-03\n", + " 4.349466e-05\n", " \n", " \n", " 5\n", @@ -1007,16 +1012,16 @@ " 10000\n", " 2\n", " U235\n", - " 3.614917e-01\n", - " 2.135233e-03\n", + " 3.615565e-01\n", + " 2.050486e-03\n", " \n", " \n", " 1\n", " 10000\n", " 2\n", " U238\n", - " 6.741607e-07\n", - " 3.924924e-09\n", + " 6.742638e-07\n", + " 3.795256e-09\n", " \n", " \n", " 2\n", @@ -1032,11 +1037,11 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\n", - "3 10000 1 U235 8.046809e-03 2.697198e-05\n", - "4 10000 1 U238 7.366624e-03 4.255197e-05\n", + "3 10000 1 U235 8.055246e-03 2.857567e-05\n", + "4 10000 1 U238 7.339215e-03 4.349466e-05\n", "5 10000 1 O16 0.000000e+00 0.000000e+00\n", - "0 10000 2 U235 3.614917e-01 2.135233e-03\n", - "1 10000 2 U238 6.741607e-07 3.924924e-09\n", + "0 10000 2 U235 3.615565e-01 2.050486e-03\n", + "1 10000 2 U238 6.742638e-07 3.795256e-09\n", "2 10000 2 O16 0.000000e+00 0.000000e+00" ] }, @@ -1074,13 +1079,13 @@ "\tDomain ID =\t10000\n", "\tNuclide =\tU235\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t8.05e-03 +/- 3.35e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t3.61e-01 +/- 5.91e-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 =\tU238\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t7.37e-03 +/- 5.78e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t6.74e-07 +/- 5.82e-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 =\tO16\n", "\tCross Sections [cm^-1]:\n", @@ -1196,16 +1201,16 @@ " 10000\n", " 1\n", " U235\n", - " 0.074734\n", - " 0.000325\n", + " 0.074860\n", + " 0.000303\n", " \n", " \n", " 1\n", " 10000\n", " 1\n", " U238\n", - " 0.005977\n", - " 0.000034\n", + " 0.005952\n", + " 0.000035\n", " \n", " \n", " 2\n", @@ -1221,8 +1226,8 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\n", - "0 10000 1 U235 0.074734 0.000325\n", - "1 10000 1 U238 0.005977 0.000034\n", + "0 10000 1 U235 0.074860 0.000303\n", + "1 10000 1 U238 0.005952 0.000035\n", "2 10000 1 O16 0.000000 0.000000" ] }, @@ -1305,131 +1310,124 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.823582\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.780361\tres = 1.940E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.739500\tres = 6.545E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.710868\tres = 5.284E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.689663\tres = 3.926E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.675035\tres = 3.007E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.665831\tres = 2.137E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.661179\tres = 1.377E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.660309\tres = 7.167E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.662566\tres = 1.972E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.667383\tres = 3.708E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.674274\tres = 7.412E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.682821\tres = 1.043E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.692664\tres = 1.276E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.703499\tres = 1.449E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.715063\tres = 1.571E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.727136\tres = 1.650E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.739531\tres = 1.694E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.752091\tres = 1.710E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.764686\tres = 1.703E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.777208\tres = 1.679E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.789567\tres = 1.642E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.801692\tres = 1.595E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.813525\tres = 1.540E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.825022\tres = 1.480E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.836147\tres = 1.417E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.846876\tres = 1.352E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.857190\tres = 1.287E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.867079\tres = 1.221E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.876536\tres = 1.157E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.885559\tres = 1.094E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.894153\tres = 1.032E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.902320\tres = 9.731E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.910071\tres = 9.161E-03\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.917414\tres = 8.614E-03\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.924362\tres = 8.092E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.930926\tres = 7.595E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.937121\tres = 7.122E-03\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.942961\tres = 6.674E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.948460\tres = 6.250E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.953633\tres = 5.849E-03\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.958495\tres = 5.471E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.963061\tres = 5.114E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.967346\tres = 4.779E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.971364\tres = 4.463E-03\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.975128\tres = 4.166E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.978653\tres = 3.888E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.981952\tres = 3.627E-03\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.985037\tres = 3.382E-03\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.987921\tres = 3.152E-03\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.990615\tres = 2.937E-03\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.993131\tres = 2.736E-03\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.995479\tres = 2.548E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.997670\tres = 2.373E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.999713\tres = 2.208E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.001618\tres = 2.055E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.003393\tres = 1.912E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.005046\tres = 1.778E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.006586\tres = 1.654E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.008019\tres = 1.537E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.009352\tres = 1.429E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.010593\tres = 1.328E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.011747\tres = 1.234E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.012820\tres = 1.146E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.013818\tres = 1.065E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.014745\tres = 9.887E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.015606\tres = 9.179E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.016406\tres = 8.522E-04\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.017149\tres = 7.909E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.017839\tres = 7.340E-04\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.018480\tres = 6.811E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.019074\tres = 6.319E-04\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.019626\tres = 5.862E-04\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.020138\tres = 5.437E-04\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.020613\tres = 5.042E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.021054\tres = 4.676E-04\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.021462\tres = 4.335E-04\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.021841\tres = 4.019E-04\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.022193\tres = 3.725E-04\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.022518\tres = 3.453E-04\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.022820\tres = 3.200E-04\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.023100\tres = 2.965E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.023359\tres = 2.748E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.023600\tres = 2.546E-04\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.023822\tres = 2.358E-04\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.024028\tres = 2.185E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.024219\tres = 2.023E-04\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.024396\tres = 1.874E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.024560\tres = 1.735E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.024712\tres = 1.607E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.024852\tres = 1.488E-04\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.024983\tres = 1.378E-04\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.025103\tres = 1.275E-04\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.025215\tres = 1.181E-04\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.025318\tres = 1.093E-04\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.025413\tres = 1.012E-04\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.025502\tres = 9.364E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.025584\tres = 8.666E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.025659\tres = 8.020E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.025729\tres = 7.422E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.025794\tres = 6.868E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.025854\tres = 6.355E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.025910\tres = 5.880E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.025961\tres = 5.440E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.026009\tres = 5.033E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.026053\tres = 4.656E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.026093\tres = 4.307E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.026131\tres = 3.984E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.026166\tres = 3.685E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.026198\tres = 3.409E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.026228\tres = 3.153E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.026255\tres = 2.916E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.026281\tres = 2.697E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.026304\tres = 2.494E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.026326\tres = 2.307E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.026346\tres = 2.133E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.026365\tres = 1.973E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.026382\tres = 1.824E-05\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.026398\tres = 1.687E-05\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.026413\tres = 1.560E-05\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.026426\tres = 1.442E-05\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.026439\tres = 1.333E-05\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.026451\tres = 1.233E-05\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.026461\tres = 1.140E-05\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.026471\tres = 1.054E-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.761745\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.732366\tres = 5.029E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.711073\tres = 3.869E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.696554\tres = 2.912E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.687670\tres = 2.044E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683465\tres = 1.277E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.683124\tres = 6.142E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.685943\tres = 7.897E-04\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.691322\tres = 4.180E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698746\tres = 7.873E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.707777\tres = 1.076E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.718039\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.729218\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.741045\tres = 1.559E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.753296\tres = 1.624E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765784\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.778355\tres = 1.659E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.790879\tres = 1.643E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803253\tres = 1.610E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815394\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.827235\tres = 1.513E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.838724\tres = 1.453E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849823\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860502\tres = 1.324E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.870744\tres = 1.258E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.880535\tres = 1.191E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889869\tres = 1.125E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898747\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.907172\tres = 9.985E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915150\tres = 9.382E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922692\tres = 8.802E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929810\tres = 8.248E-03\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.936517\tres = 7.720E-03\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.942827\tres = 7.219E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948756\tres = 6.744E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954321\tres = 6.295E-03\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.959539\tres = 5.871E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964424\tres = 5.472E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.968995\tres = 5.096E-03\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.973268\tres = 4.744E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977258\tres = 4.413E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.980981\tres = 4.104E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984453\tres = 3.814E-03\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.987689\tres = 3.543E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990701\tres = 3.289E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993505\tres = 3.053E-03\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.996112\tres = 2.832E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.998536\tres = 2.627E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.000787\tres = 2.435E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.002878\tres = 2.257E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.004818\tres = 2.091E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.006618\tres = 1.937E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.008287\tres = 1.793E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.009834\tres = 1.660E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.011268\tres = 1.536E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.012595\tres = 1.421E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.013824\tres = 1.314E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.014962\tres = 1.215E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.016015\tres = 1.123E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.016988\tres = 1.038E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.017889\tres = 9.595E-04\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.018721\tres = 8.864E-04\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.019490\tres = 8.187E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020201\tres = 7.560E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020857\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021464\tres = 6.443E-04\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.022024\tres = 5.947E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022540\tres = 5.488E-04\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.023017\tres = 5.063E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023457\tres = 4.670E-04\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.023863\tres = 4.308E-04\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.024238\tres = 3.972E-04\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.024583\tres = 3.663E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024902\tres = 3.376E-04\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.025195\tres = 3.112E-04\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.025466\tres = 2.868E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.025715\tres = 2.643E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.025945\tres = 2.435E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.026157\tres = 2.244E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.026352\tres = 2.067E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026531\tres = 1.904E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026697\tres = 1.753E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.026849\tres = 1.614E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.026989\tres = 1.487E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027118\tres = 1.368E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.027237\tres = 1.260E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027346\tres = 1.159E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027447\tres = 1.067E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027540\tres = 9.821E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027625\tres = 9.040E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027703\tres = 8.316E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027775\tres = 7.652E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027842\tres = 7.039E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027903\tres = 6.480E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.027959\tres = 5.959E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028011\tres = 5.479E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028058\tres = 5.043E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028102\tres = 4.633E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028142\tres = 4.265E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028180\tres = 3.921E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028214\tres = 3.605E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028245\tres = 3.315E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028273\tres = 3.047E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028300\tres = 2.800E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028324\tres = 2.575E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028346\tres = 2.368E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028367\tres = 2.176E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028386\tres = 2.003E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028403\tres = 1.837E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028419\tres = 1.690E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028434\tres = 1.553E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028447\tres = 1.426E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028459\tres = 1.309E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028471\tres = 1.202E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028481\tres = 1.107E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028491\tres = 1.015E-05\n" ] } ], @@ -1461,9 +1459,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "openmc keff = 1.025806\n", - "openmoc keff = 1.026471\n", - "bias [pcm]: 66.5\n" + "openmc keff = 1.028263\n", + "openmoc keff = 1.028491\n", + "bias [pcm]: 22.8\n" ] } ], @@ -1571,7 +1569,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 43, @@ -1580,9 +1578,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\nQkiM+D/axcWYV0AhpgAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1608,21 +1606,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index eaae92f7c9..301bbf0155 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -119,7 +119,6 @@ "source": [ "# Instantiate a Materials object\n", "materials_file = openmc.Materials((fuel, zircaloy, water))\n", - "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", "materials_file.export_to_xml()" @@ -432,7 +431,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -578,7 +577,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/romano/openmc/openmc/mgxs/library.py:312: RuntimeWarning: The P0 correction will be ignored since the scattering order 0 is greater than zero\n", + "/home/romano/openmc/openmc/mgxs/library.py:373: RuntimeWarning: The P0 correction will be ignored since the scattering order 0 is greater than zero\n", " warn(msg, RuntimeWarning)\n" ] } @@ -707,23 +706,37 @@ "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", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", + " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%%%%%%\n", + " ##################### %%%%%%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%\n", + " ################# %%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%\n", + " ############ %%%%%%%%%%%%%%%\n", + " ######## %%%%%%%%%%%%%%\n", + " %%%%%%%%%%%\n", "\n", - " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", - " Date/Time: 2016-07-23 16:50:57\n", + " | The OpenMC Monte Carlo Code\n", + " Copyright | 2011-2016 Massachusetts Institute of Technology\n", + " License | http://openmc.readthedocs.io/en/latest/license.html\n", + " Version | 0.8.0\n", + " Git SHA1 | fbebf7bf709fe2fe1813af95bff9b29c0d59312c\n", + " Date/Time | 2016-08-31 10:48:01\n", + " OpenMP Threads | 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -733,13 +746,13 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", - " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", - " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", - " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", - " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", - " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", + " Reading U235 from /home/romano/openmc/data/nndc_hdf5/U235.h5\n", + " Reading U238 from /home/romano/openmc/data/nndc_hdf5/U238.h5\n", + " Reading O16 from /home/romano/openmc/data/nndc_hdf5/O16.h5\n", + " Reading Zr90 from /home/romano/openmc/data/nndc_hdf5/Zr90.h5\n", + " Reading H1 from /home/romano/openmc/data/nndc_hdf5/H1.h5\n", + " Reading B10 from /home/romano/openmc/data/nndc_hdf5/B10.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", " Initializing source particles...\n", @@ -809,20 +822,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.6600E-01 seconds\n", - " Reading cross sections = 2.1400E-01 seconds\n", - " Total time in simulation = 7.0360E+01 seconds\n", - " Time in transport only = 7.0341E+01 seconds\n", - " Time in inactive batches = 9.6400E+00 seconds\n", - " Time in active batches = 6.0720E+01 seconds\n", - " Time synchronizing fission bank = 7.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.2200E-01 seconds\n", + " Reading cross sections = 2.8800E-01 seconds\n", + " Total time in simulation = 4.1409E+01 seconds\n", + " Time in transport only = 4.1265E+01 seconds\n", + " Time in inactive batches = 4.6120E+00 seconds\n", + " Time in active batches = 3.6797E+01 seconds\n", + " Time synchronizing fission bank = 9.0000E-03 seconds\n", + " Sampling source sites = 6.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 = 0.0000E+00 seconds\n", - " Total time elapsed = 7.0764E+01 seconds\n", - " Calculation Rate (inactive) = 5186.72 neutrons/second\n", - " Calculation Rate (active) = 3293.81 neutrons/second\n", + " Total time elapsed = 4.1869E+01 seconds\n", + " Calculation Rate (inactive) = 10841.3 neutrons/second\n", + " Calculation Rate (active) = 5435.23 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -960,24 +973,10 @@ "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/romano/openmc/openmc/tallies.py:1941: RuntimeWarning: invalid value encountered in true_divide\n", - " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", - "/home/romano/openmc/openmc/tallies.py:1942: RuntimeWarning: invalid value encountered in true_divide\n", - " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n", - "/home/romano/openmc/openmc/tallies.py:1943: RuntimeWarning: invalid value encountered in true_divide\n", - " new_tally._mean = data['self']['mean'] / data['other']['mean']\n" - ] - } - ], + "outputs": [], "source": [ "# Create a MGXS File which can then be written to disk\n", - "mgxs_file = mgxs_lib.create_mg_library(xs_type='macro', xsdata_names=['fuel', 'zircaloy', 'water'],\n", - " xs_ids='2m')\n", + "mgxs_file = mgxs_lib.create_mg_library(xs_type='macro', xsdata_names=['fuel', 'zircaloy', 'water'])\n", "\n", "# Write the file to disk using the default filename of `mgxs.xml`\n", "mgxs_file.export_to_xml()" @@ -991,7 +990,7 @@ "\n", "Since this example is using material-wise macroscopic cross sections without considering that the neutron energy spectra and thus cross sections may be changing in space, we only need to modify the materials.xml and settings.xml files. If the material names and ids are not otherwise changed, then the geometry.xml file does not need to be modified from its continuous-energy form. The tallies.xml file will be left untouched as it currently contains the tally types that we will need to perform our comparison. \n", "\n", - "First we will create the new materials.xml file. Continuous-energy cross section nuclidic data sets are named with the nuclide name followed by a cross section identifier. For example, the data for hydrogen is accessed in OpenMC by the name `H-1.71c`. The cross-section identifier (in this case, `71c`) can be used to distinguish between different variants of `H-1` data, such as for different evaluations or temperatures. OpenMC multi-group libraries use the same convention of a name followed by a xs identifier. We will use a cross section identifier here of `2m`. Similar to how continuous-energy cross section libraries are named, the `openmc.Macroscopic` quantities below can either have their `xs_id` included (i.e., `'fuel.2m'`). An alternative is to leave this extension off and simply change the `default_xs` parameter to `.2m`." + "First we will create the new materials.xml file." ] }, { @@ -1023,7 +1022,6 @@ "\n", "# Finally, instantiate our Materials object\n", "materials_file = openmc.Materials((fuel, zircaloy, water))\n", - "materials_file.default_xs = '2m'\n", "\n", "# Export to \"materials.xml\"\n", "materials_file.export_to_xml()\n" @@ -1082,23 +1080,37 @@ "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", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", + " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%%%%%%\n", + " ##################### %%%%%%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%\n", + " ################# %%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%\n", + " ############ %%%%%%%%%%%%%%%\n", + " ######## %%%%%%%%%%%%%%\n", + " %%%%%%%%%%%\n", "\n", - " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", - " Date/Time: 2016-07-23 16:52:09\n", + " | The OpenMC Monte Carlo Code\n", + " Copyright | 2011-2016 Massachusetts Institute of Technology\n", + " License | http://openmc.readthedocs.io/en/latest/license.html\n", + " Version | 0.8.0\n", + " Git SHA1 | fbebf7bf709fe2fe1813af95bff9b29c0d59312c\n", + " Date/Time | 2016-08-31 10:48:43\n", + " OpenMP Threads | 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -1111,9 +1123,9 @@ " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", " Loading Cross Section Data...\n", - " Loading fuel.2m Data...\n", - " Loading zircaloy.2m Data...\n", - " Loading water.2m Data...\n", + " Loading fuel Data...\n", + " Loading zircaloy Data...\n", + " Loading water Data...\n", " Initializing source particles...\n", "\n", " ===========================================================================\n", @@ -1122,56 +1134,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 0.99367 \n", - " 2/1 1.03173 \n", - " 3/1 1.01999 \n", - " 4/1 1.01421 \n", - " 5/1 1.03980 \n", - " 6/1 1.04540 \n", - " 7/1 1.04199 \n", - " 8/1 1.02680 \n", - " 9/1 1.01267 \n", - " 10/1 1.03420 \n", - " 11/1 1.05773 \n", - " 12/1 1.03475 1.04624 +/- 0.01149\n", - " 13/1 1.03632 1.04293 +/- 0.00741\n", - " 14/1 0.99297 1.03044 +/- 0.01355\n", - " 15/1 1.02413 1.02918 +/- 0.01057\n", - " 16/1 1.02359 1.02825 +/- 0.00868\n", - " 17/1 0.99913 1.02409 +/- 0.00843\n", - " 18/1 1.01493 1.02294 +/- 0.00739\n", - " 19/1 1.03010 1.02374 +/- 0.00657\n", - " 20/1 1.04890 1.02626 +/- 0.00639\n", - " 21/1 1.01267 1.02502 +/- 0.00591\n", - " 22/1 1.02637 1.02513 +/- 0.00540\n", - " 23/1 1.01374 1.02426 +/- 0.00504\n", - " 24/1 1.06661 1.02728 +/- 0.00556\n", - " 25/1 1.03212 1.02760 +/- 0.00519\n", - " 26/1 1.05433 1.02927 +/- 0.00513\n", - " 27/1 0.99891 1.02749 +/- 0.00514\n", - " 28/1 1.00616 1.02630 +/- 0.00499\n", - " 29/1 1.04583 1.02733 +/- 0.00483\n", - " 30/1 1.01512 1.02672 +/- 0.00462\n", - " 31/1 0.98104 1.02455 +/- 0.00491\n", - " 32/1 1.04202 1.02534 +/- 0.00474\n", - " 33/1 1.00779 1.02458 +/- 0.00460\n", - " 34/1 1.02450 1.02457 +/- 0.00440\n", - " 35/1 0.98882 1.02314 +/- 0.00446\n", - " 36/1 1.01541 1.02285 +/- 0.00429\n", - " 37/1 1.02050 1.02276 +/- 0.00413\n", - " 38/1 1.03573 1.02322 +/- 0.00401\n", - " 39/1 1.03649 1.02368 +/- 0.00389\n", - " 40/1 1.01434 1.02337 +/- 0.00378\n", - " 41/1 1.02345 1.02337 +/- 0.00365\n", - " 42/1 1.01900 1.02323 +/- 0.00354\n", - " 43/1 1.01450 1.02297 +/- 0.00344\n", - " 44/1 1.03127 1.02321 +/- 0.00335\n", - " 45/1 1.01598 1.02301 +/- 0.00326\n", - " 46/1 1.00851 1.02260 +/- 0.00319\n", - " 47/1 1.03406 1.02291 +/- 0.00312\n", - " 48/1 1.02373 1.02294 +/- 0.00303\n", - " 49/1 1.04066 1.02339 +/- 0.00299\n", - " 50/1 1.02011 1.02331 +/- 0.00292\n", + " 1/1 0.99122 \n", + " 2/1 1.03963 \n", + " 3/1 1.01551 \n", + " 4/1 1.03582 \n", + " 5/1 0.99023 \n", + " 6/1 1.00419 \n", + " 7/1 1.02047 \n", + " 8/1 1.05456 \n", + " 9/1 1.01063 \n", + " 10/1 1.03370 \n", + " 11/1 1.04616 \n", + " 12/1 1.04458 1.04537 +/- 0.00079\n", + " 13/1 1.02171 1.03748 +/- 0.00790\n", + " 14/1 1.02060 1.03326 +/- 0.00700\n", + " 15/1 1.01653 1.02992 +/- 0.00637\n", + " 16/1 1.02956 1.02986 +/- 0.00520\n", + " 17/1 1.01145 1.02723 +/- 0.00512\n", + " 18/1 1.03774 1.02854 +/- 0.00463\n", + " 19/1 1.00829 1.02629 +/- 0.00466\n", + " 20/1 1.03624 1.02729 +/- 0.00429\n", + " 21/1 1.03296 1.02780 +/- 0.00391\n", + " 22/1 0.99315 1.02491 +/- 0.00459\n", + " 23/1 0.99628 1.02271 +/- 0.00476\n", + " 24/1 1.04034 1.02397 +/- 0.00459\n", + " 25/1 1.02523 1.02406 +/- 0.00427\n", + " 26/1 1.07905 1.02749 +/- 0.00527\n", + " 27/1 1.01678 1.02686 +/- 0.00499\n", + " 28/1 1.01817 1.02638 +/- 0.00473\n", + " 29/1 1.03293 1.02672 +/- 0.00449\n", + " 30/1 1.01224 1.02600 +/- 0.00432\n", + " 31/1 1.01524 1.02549 +/- 0.00414\n", + " 32/1 1.00996 1.02478 +/- 0.00401\n", + " 33/1 1.05545 1.02612 +/- 0.00406\n", + " 34/1 1.02082 1.02589 +/- 0.00389\n", + " 35/1 0.99120 1.02451 +/- 0.00398\n", + " 36/1 1.03012 1.02472 +/- 0.00383\n", + " 37/1 1.01179 1.02424 +/- 0.00372\n", + " 38/1 1.04023 1.02481 +/- 0.00363\n", + " 39/1 1.05876 1.02598 +/- 0.00369\n", + " 40/1 0.99332 1.02490 +/- 0.00373\n", + " 41/1 1.05319 1.02581 +/- 0.00372\n", + " 42/1 1.03381 1.02606 +/- 0.00361\n", + " 43/1 1.00607 1.02545 +/- 0.00355\n", + " 44/1 1.03957 1.02587 +/- 0.00347\n", + " 45/1 1.02472 1.02584 +/- 0.00337\n", + " 46/1 1.00948 1.02538 +/- 0.00331\n", + " 47/1 1.02380 1.02534 +/- 0.00322\n", + " 48/1 1.05392 1.02609 +/- 0.00322\n", + " 49/1 1.01171 1.02572 +/- 0.00316\n", + " 50/1 1.03942 1.02606 +/- 0.00310\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -1181,27 +1193,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.6000E-02 seconds\n", - " Reading cross sections = 8.0000E-03 seconds\n", - " Total time in simulation = 5.5889E+01 seconds\n", - " Time in transport only = 5.5863E+01 seconds\n", - " Time in inactive batches = 7.1040E+00 seconds\n", - " Time in active batches = 4.8785E+01 seconds\n", - " Time synchronizing fission bank = 1.6000E-02 seconds\n", - " Sampling source sites = 1.0000E-02 seconds\n", - " SEND/RECV source sites = 6.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for initialization = 4.1000E-02 seconds\n", + " Reading cross sections = 4.0000E-03 seconds\n", + " Total time in simulation = 3.1713E+01 seconds\n", + " Time in transport only = 3.1522E+01 seconds\n", + " Time in inactive batches = 3.8940E+00 seconds\n", + " Time in active batches = 2.7819E+01 seconds\n", + " Time synchronizing fission bank = 2.1000E-02 seconds\n", + " Sampling source sites = 1.2000E-02 seconds\n", + " SEND/RECV source sites = 9.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.5976E+01 seconds\n", - " Calculation Rate (inactive) = 7038.29 neutrons/second\n", - " Calculation Rate (active) = 4099.62 neutrons/second\n", + " Total time elapsed = 3.1791E+01 seconds\n", + " Calculation Rate (inactive) = 12840.3 neutrons/second\n", + " Calculation Rate (active) = 7189.33 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02638 +/- 0.00260\n", - " k-effective (Track-length) = 1.02331 +/- 0.00292\n", - " k-effective (Absorption) = 1.02579 +/- 0.00132\n", - " Combined k-effective = 1.02558 +/- 0.00136\n", + " k-effective (Collision) = 1.02474 +/- 0.00282\n", + " k-effective (Track-length) = 1.02606 +/- 0.00310\n", + " k-effective (Absorption) = 1.02589 +/- 0.00165\n", + " Combined k-effective = 1.02601 +/- 0.00170\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -1283,8 +1295,8 @@ "output_type": "stream", "text": [ "Continuous-Energy keff = 1.024295\n", - "Multi-Group keff = 1.025577\n", - "bias [pcm]: -128.2\n" + "Multi-Group keff = 1.026013\n", + "bias [pcm]: -171.8\n" ] } ], @@ -1381,7 +1393,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1390,9 +1402,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1437,21 +1449,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.11" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 412013f2f4..f913e941af 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -111,7 +111,6 @@ "source": [ "# Instantiate a Materials collection\n", "materials_file = openmc.Materials((fuel, water, zircaloy))\n", - "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", "materials_file.export_to_xml()" @@ -370,7 +369,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AHFxUkA9dy05MAAAPZSURBVGje7Zs7buMwEIZ9iey5\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTIzVDE2OjM2OjAzLTA1OjAwxjuLbgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yM1QxNjozNjowMy0wNTowMLdmM9IAAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIHw8nG7lmgZ4AAAPZSURBVGje7Zs7buMwEIZ9iey5\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA4LTMxVDEwOjM5OjI3LTA1OjAwYiZUvgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wOC0zMVQxMDozOToyNy0wNTowMBN77AIAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -539,23 +538,37 @@ "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", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", + " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%%%%%%\n", + " ##################### %%%%%%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%\n", + " ################# %%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%\n", + " ############ %%%%%%%%%%%%%%%\n", + " ######## %%%%%%%%%%%%%%\n", + " %%%%%%%%%%%\n", "\n", - " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", - " Date/Time: 2016-07-23 16:36:04\n", + " | The OpenMC Monte Carlo Code\n", + " Copyright | 2011-2016 Massachusetts Institute of Technology\n", + " License | http://openmc.readthedocs.io/en/latest/license.html\n", + " Version | 0.8.0\n", + " Git SHA1 | fbebf7bf709fe2fe1813af95bff9b29c0d59312c\n", + " Date/Time | 2016-08-31 10:39:27\n", + " OpenMP Threads | 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -565,13 +578,13 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", - " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", - " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", - " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", - " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", - " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", + " Reading U235 from /home/romano/openmc/data/nndc_hdf5/U235.h5\n", + " Reading U238 from /home/romano/openmc/data/nndc_hdf5/U238.h5\n", + " Reading O16 from /home/romano/openmc/data/nndc_hdf5/O16.h5\n", + " Reading H1 from /home/romano/openmc/data/nndc_hdf5/H1.h5\n", + " Reading B10 from /home/romano/openmc/data/nndc_hdf5/B10.h5\n", + " Reading Zr90 from /home/romano/openmc/data/nndc_hdf5/Zr90.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", " Initializing source particles...\n", @@ -618,20 +631,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.2600E-01 seconds\n", - " Reading cross sections = 2.9500E-01 seconds\n", - " Total time in simulation = 1.1986E+01 seconds\n", - " Time in transport only = 1.1977E+01 seconds\n", - " Time in inactive batches = 1.8370E+00 seconds\n", - " Time in active batches = 1.0149E+01 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Total time for initialization = 4.4100E-01 seconds\n", + " Reading cross sections = 3.1500E-01 seconds\n", + " Total time in simulation = 5.7690E+00 seconds\n", + " Time in transport only = 5.7370E+00 seconds\n", + " Time in inactive batches = 7.9400E-01 seconds\n", + " Time in active batches = 4.9750E+00 seconds\n", + " Time synchronizing fission bank = 1.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", + " 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.2431E+01 seconds\n", - " Calculation Rate (inactive) = 6804.57 neutrons/second\n", - " Calculation Rate (active) = 3694.95 neutrons/second\n", + " Total time elapsed = 6.2280E+00 seconds\n", + " Calculation Rate (inactive) = 15743.1 neutrons/second\n", + " Calculation Rate (active) = 7537.69 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -744,10 +757,10 @@ "text": [ "[[[ 0.1501735 ]]\n", "\n", - " [[ 0.05936257]]\n", - "\n", " [[ 0.21402727]]\n", "\n", + " [[ 0.05936257]]\n", + "\n", " [[ 0.13436703]]]\n" ] } @@ -848,8 +861,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 3.52e-04\n", - " 3.39e-05\n", + " 2.32e-04\n", + " 4.97e-05\n", " \n", " \n", " 5\n", @@ -859,8 +872,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 8.57e-04\n", - " 8.26e-05\n", + " 5.65e-04\n", + " 1.21e-04\n", " \n", " \n", " 6\n", @@ -870,8 +883,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.02e-04\n", - " 6.16e-06\n", + " 6.96e-05\n", + " 6.90e-06\n", " \n", " \n", " 7\n", @@ -881,8 +894,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 2.70e-04\n", - " 1.61e-05\n", + " 1.86e-04\n", + " 1.90e-05\n", " \n", " \n", " 8\n", @@ -892,8 +905,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 6.09e-04\n", - " 6.55e-05\n", + " 2.43e-04\n", + " 3.24e-05\n", " \n", " \n", " 9\n", @@ -903,8 +916,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.48e-03\n", - " 1.60e-04\n", + " 5.91e-04\n", + " 7.90e-05\n", " \n", " \n", " 10\n", @@ -914,8 +927,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.38e-04\n", - " 6.74e-06\n", + " 7.27e-05\n", + " 4.76e-06\n", " \n", " \n", " 11\n", @@ -925,8 +938,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 3.65e-04\n", - " 1.88e-05\n", + " 1.93e-04\n", + " 1.14e-05\n", " \n", " \n", " 12\n", @@ -936,8 +949,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 6.23e-04\n", - " 5.16e-05\n", + " 2.61e-04\n", + " 4.48e-05\n", " \n", " \n", " 13\n", @@ -947,8 +960,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.52e-03\n", - " 1.26e-04\n", + " 6.35e-04\n", + " 1.09e-04\n", " \n", " \n", " 14\n", @@ -958,8 +971,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.74e-04\n", - " 9.99e-06\n", + " 6.00e-05\n", + " 4.53e-06\n", " \n", " \n", " 15\n", @@ -969,8 +982,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 4.58e-04\n", - " 2.68e-05\n", + " 1.59e-04\n", + " 1.17e-05\n", " \n", " \n", " 16\n", @@ -980,8 +993,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 6.94e-04\n", - " 8.68e-05\n", + " 2.23e-04\n", + " 2.89e-05\n", " \n", " \n", " 17\n", @@ -991,8 +1004,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.69e-03\n", - " 2.12e-04\n", + " 5.43e-04\n", + " 7.04e-05\n", " \n", " \n", " 18\n", @@ -1002,8 +1015,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.75e-04\n", - " 1.10e-05\n", + " 7.93e-05\n", + " 7.77e-06\n", " \n", " \n", " 19\n", @@ -1013,8 +1026,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 4.55e-04\n", - " 2.80e-05\n", + " 2.07e-04\n", + " 1.94e-05\n", " \n", " \n", "\n", @@ -1027,22 +1040,22 @@ "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.37e-04 \n", "2 1 1 1 6.25e-07 2.00e+01 fission 7.43e-05 \n", "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.97e-04 \n", - "4 1 2 1 0.00e+00 6.25e-07 fission 3.52e-04 \n", - "5 1 2 1 0.00e+00 6.25e-07 nu-fission 8.57e-04 \n", - "6 1 2 1 6.25e-07 2.00e+01 fission 1.02e-04 \n", - "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.70e-04 \n", - "8 1 3 1 0.00e+00 6.25e-07 fission 6.09e-04 \n", - "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.48e-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.65e-04 \n", - "12 1 4 1 0.00e+00 6.25e-07 fission 6.23e-04 \n", - "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.52e-03 \n", - "14 1 4 1 6.25e-07 2.00e+01 fission 1.74e-04 \n", - "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.58e-04 \n", - "16 1 5 1 0.00e+00 6.25e-07 fission 6.94e-04 \n", - "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.69e-03 \n", - "18 1 5 1 6.25e-07 2.00e+01 fission 1.75e-04 \n", - "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.55e-04 \n", + "4 1 2 1 0.00e+00 6.25e-07 fission 2.32e-04 \n", + "5 1 2 1 0.00e+00 6.25e-07 nu-fission 5.65e-04 \n", + "6 1 2 1 6.25e-07 2.00e+01 fission 6.96e-05 \n", + "7 1 2 1 6.25e-07 2.00e+01 nu-fission 1.86e-04 \n", + "8 1 3 1 0.00e+00 6.25e-07 fission 2.43e-04 \n", + "9 1 3 1 0.00e+00 6.25e-07 nu-fission 5.91e-04 \n", + "10 1 3 1 6.25e-07 2.00e+01 fission 7.27e-05 \n", + "11 1 3 1 6.25e-07 2.00e+01 nu-fission 1.93e-04 \n", + "12 1 4 1 0.00e+00 6.25e-07 fission 2.61e-04 \n", + "13 1 4 1 0.00e+00 6.25e-07 nu-fission 6.35e-04 \n", + "14 1 4 1 6.25e-07 2.00e+01 fission 6.00e-05 \n", + "15 1 4 1 6.25e-07 2.00e+01 nu-fission 1.59e-04 \n", + "16 1 5 1 0.00e+00 6.25e-07 fission 2.23e-04 \n", + "17 1 5 1 0.00e+00 6.25e-07 nu-fission 5.43e-04 \n", + "18 1 5 1 6.25e-07 2.00e+01 fission 7.93e-05 \n", + "19 1 5 1 6.25e-07 2.00e+01 nu-fission 2.07e-04 \n", "\n", " std. dev. \n", " \n", @@ -1050,22 +1063,22 @@ "1 8.06e-05 \n", "2 7.91e-06 \n", "3 1.96e-05 \n", - "4 3.39e-05 \n", - "5 8.26e-05 \n", - "6 6.16e-06 \n", - "7 1.61e-05 \n", - "8 6.55e-05 \n", - "9 1.60e-04 \n", - "10 6.74e-06 \n", - "11 1.88e-05 \n", - "12 5.16e-05 \n", - "13 1.26e-04 \n", - "14 9.99e-06 \n", - "15 2.68e-05 \n", - "16 8.68e-05 \n", - "17 2.12e-04 \n", - "18 1.10e-05 \n", - "19 2.80e-05 " + "4 4.97e-05 \n", + "5 1.21e-04 \n", + "6 6.90e-06 \n", + "7 1.90e-05 \n", + "8 3.24e-05 \n", + "9 7.90e-05 \n", + "10 4.76e-06 \n", + "11 1.14e-05 \n", + "12 4.48e-05 \n", + "13 1.09e-04 \n", + "14 4.53e-06 \n", + "15 1.17e-05 \n", + "16 2.89e-05 \n", + "17 7.04e-05 \n", + "18 7.77e-06 \n", + "19 1.94e-05 " ] }, "execution_count": 24, @@ -1095,7 +1108,7 @@ "data": { "image/png": "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\n/wf1F+RhutXrZwAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1118,7 +1131,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 26, @@ -1127,9 +1140,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVAAAAEZCAYAAADBv319AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xv0VeV95/H3B+WHxgveAlQQUMFrbNBYwzSZVJtUAVOx\nuVh1dYym06HLkJlZTdLENlNTV6aatCudMdZRG1cSmygx8UYSa42XZCpTCaliNICCCgIKeMMLIpcf\n3/njbOLxsPf5nf0c9m/zO3xea53F7zz7+Z7n2YcfX/bl2c+jiMDMzMobVncHzMyGKidQM7NETqBm\nZomcQM3MEjmBmpklcgI1M0vkBNqjJB0l6WFJr0iaLen/SPrLLj7vEknX7cw+mg118jjQ3iTpG8Ar\nEfGZuvuys0l6GvjjiLiv7r7Y7s1HoL1rAvCrujtRlqQ96u6DWaecQHuQpHuB04B/kPSqpEmSvinp\nsmz7wZJ+KOllSS9K+llT7OclrcriFks6LSu/VNI/NdU7S9Jjkl6SdJ+kY5q2PS3pM5Ieydq4SVJf\nQV8/IekBSV+T9AJwqaQjJN0r6QVJ6yR9R9L+Wf0bgPHAD7M+fjYrnyppXtbew5J+Z6d/sWYtnEB7\nUER8EPhX4FMRsX9ELGup8hlgJXAwMAr4C2hcNwU+BbwnIvYHzgCWN390U70bgf8KvBP4ZxoJbc+m\nuh8HTgcOB94NXNimy+8FlmV9+Z+AgL8BxgDHAuOAL2X7dgHwDPDhbN/+TtKhwI+AyyLiQOCzwC2S\nDh7gqzLrihPo7mkL8BvA4RHRHxHzsvJ+oA94l6Q9I+KZiHg6J/4c4EcRcV9E9AN/B+wN/HZTnf8d\nEWsjYj3wQ2BKm/6sjoirI2JbRGyKiCcj4t6I2BoRLwJ/D7QeUarp5z8CfhwR/wIQEfcCvwBmdPBd\nmCVzAt09/S3wJHC3pGWSPg8QEU8C/53G0d5aSTdKGpMTfyiwYvubaNyJXAmMbaqztunnN4B92/Rn\nZfMbSaOy0/5VktYD3wEOaRM/ATgnu5zwkqSXgffR+E/CrDJOoLuhiHg9Ij4bEUcCZwF/tv1aZ0TM\niYj/SCMpAXwl5yOebdq+3WHAqtQutbz/G2AbcHxEHEDjCFNt6q8EboiIg7LXgRGxX0R8NbE/Zh1x\nAt0NSTpT0pHZ29eArcC2bOzoadkNn83ARhqJrNXNwJlZ3T2zGzlvAv+2k7q4H/A68JqkscDnWrav\nAY5oev8d4PclnS5pmKS9JP1Odm3UrDJOoL2r3QDfycA9kl4D5gH/EBE/A0YAVwDP0zjKfCdwyQ4f\nHPEEjaPCq7K6ZwK/HxFbO2i7E38NvAfYfv30lpbtVwD/Iztd/7OIWAXMpHEz7Hkalxc+i3+/rWIe\nSG9mlsj/Q5uZJXICNTNL5ARqZpbICdTMLNGeA1epjyTf4TKrSURo4FrFDpDilc6rr4iIid20V4dd\n+i58I4FuLth6Do3hiC1OHl6+oavKh7BXQgww8pg1pWPOHnFbbvn9H72O0275L7nb3sv80u1M4snS\nMfvxWukYgKN4vHTMQfPfzC3/6BfglisKgv6qdDNpD4COSoj5VkIMNGYCaPHRVXDLuDYxJ5RrQt/v\nPoFKii93WPeLdN9eHWo7hZc0TdISSU9sf5TQzHrL8A5fQ1Utp/CShtE47vsgjQHbCyTdERFL6uiP\nmVVjl75GuBPUtX+nAEsjYgWApDk0niQpkUCPGbhKjxt5bN48H7ufYyfW3YP6HZs722r99q67AxWr\nK4GO5e0z8KyikVRLOHYndmdoOuA4TzYEcNzhdfegfseNqLsH+Yby6XknhsAR9jlNPx/DW4mzYN6K\nFxN26V/Kh6T+ZmxeuL50zFPDf5Fbvm5e8U2fYTxVup1nWFc6Zi/yb+wM5Jf0l47Zt3Va6My8X7YJ\neq50M/DvCTH7J8Sk9A0g59b2vI0DxOTceGq26FVY/Gpif9oYAgmmK3Xt32oayzJsNy4ry5Fzp/3X\nztux6OCEzHZG+ZDUu/B9CXfhjxhRfHPyiPN/K7f8t3InUWpvUsIcIOl34csn64Pmbyncdn7R3+G8\ngvJ23pMQk3IXfmlCDDSmw85x/sg2MePbbMuh75erX8RHoNVYAEySNIHG/8PnkpsNzWwo8xFoBSKi\nX9Js4G4aQ6muj4jFdfTFzKrjI9CKRMRdwNF1tW9m1XMCNTNL5GFMtSvq4h7521Ju7qQM3/9Q2t3n\niSOWl47ZyDtyyzfTV7jtRBaWbmfqykdKx2wYlfYw2z43lb/JxeSC8n4ai5LkSVnY+N6EmJR2yv8V\nNRxUPuTFWxPb6tIQSDBd6fX9M7Ma+RTezCxRryeYXt8/M6uRj0DNzBL1eoLxjPRmVplup7PrZNpL\nSVdKWippoaQpncZK+oykbZIOaiq7JPusxZJOH2j/ev0/CDOrUTfDmDqZ9lLSdODIiJgs6b3ANcDU\ngWIljQN+D1jR9FnH0ph841gaj5ffI2lytJl13kegZlaZLo9Afz3tZURsAbZPe9lsJnADQETMB0ZK\nGt1B7N8Dn8v5rDkRsTUiltOYraDtLHFOoGZWmT07fBXIm/ZybId1CmMlnQWsjIhHB/is1TntvY1P\n4c2sMsM7zTBFD0KU13ZdJUl7A39B4/S9a06gZlaZPbtLoJ1Me7kaOCynTl9B7JHAROARScrKH5J0\nSoftvY1P4c2sMsP36OxV4NfTXkrqozHt5dyWOnOBCwAkTQXWR8TaotiIeCwixkTEERFxOI1T+xMj\nYl32WX8oqU/S4cAk4Oft9s9HoGZWmY6PQHMUTXspaVZjc1wXEXdKmiFpGbABuKhdbF4zZKf9EbFI\n0s3AIhrTVl/c7g48DIkEWnRJQ/nbXk9oYlL5kN8Z+9OEhqCf4v9uixStob6Z5wq3zee9pduZSvnJ\nRDaNSFvNbJ+RCZOx3FRQ/gTwYv6mpUUxbUz+ZvkYUmZw/9OEGGgM1Gn1JrRbJeXr5VdQ2SmGd7lW\nU960lxFxbcv72Z3G5tQ5ouX95cDlnfZvCCRQMxuyejzD9PjumVmtejzD9PjumVmtejzD9PjumVmt\nyl/yH1KcQM2sOj2eYXp898ysVl3ehd/VOYGaWXV6PMP0+O6ZWa16PMP0+O6ZWa18E8nMLFGPZ5ge\n3z0zq1WPZ5ge3z0zq1WPZ5ge3z0zq5WHMQ0x+ybELCwf8rO9piU0BMe+56HSMffyodzy5xFr+WDu\ntlP5ael21hw2snTMfpteKx0D8OaA6x3uaI/fzS/f+n3Y8vH8bZNHlW+HuxNijk2IaZ3ZslPvyilb\nA4wpDvnQfeWa+Oty1Yv1XoZ5mx7fPTOrle/Cm5kl6vEM0+O7Z2a16vEM4zWRzKw6e3T4KiBpmqQl\nkp6Q9PmCOldKWippoaQpA8VKukzSI5IelnSXpDFZ+QRJb0h6KHtdPdDuOYGaWXW6WBhe0jDgKuAM\n4HjgPEnHtNSZDhwZEZOBWWQLngwQ+9WIeHdEnAj8GLi06SOXRcRJ2eviTnbPzKwae3UVfQqwNCJW\nAEiaA8wEljTVmQncABAR8yWNlDQaOLwoNiKaV07bB9jW9L7tuvKtfARqZtXp7hR+LLCy6f2qrKyT\nOm1jJX1Z0jPA+cBfNdWbmJ2+3y/p/QPtnhOomVWni1P4RB0dQUbEFyNiPPBd4NNZ8XPA+Ig4CfgM\ncKOktiPLnUDNrDrdJdDVwPim9+OystY6h+XU6SQW4EbgowARsTkiXs5+fgh4Ejiqzd45gZpZhbo7\nhV8ATMrujvcB57Lj81tzgQsAJE0F1kfE2naxkiY1xZ8NLM7KD8luPiHpCGAS8FS73fNNJDOrThcZ\nJiL6Jc2m8XDtMOD6iFgsaVZjc1wXEXdKmiFpGbABuKhdbPbRV0g6isbNoxXAn2blHwAuk7Q52zYr\nItZXtHtmZgPoMsNExF3A0S1l17a8n91pbFb+sYL6twK3lunfEEigWwrKt+Zve2F4+SbeLB+S6jd4\ntnTMRt5ROubQhHZu4+zSMR8Y8a+lYwAOHvFi6Zgx33glt3zP+ZDwt16sYNKStn6WEJMyAQnAL3LK\nXqX4nwrw/veVbGNeyfpFPBuTmVmiHs8wPb57ZlarHs8wPb57ZlYrT2dnZpaoxzNMj++emdWqxzNM\nj++emdXKp/BmZom6m41pl+cEambV6fEM0+O7Z2a18im8mVmiHs8wPb57ZlarHs8wPb57ZlYrn8LX\nbWNB+Zb8bQckTCuxrHwI56bNQPIch5aOOYC2M2rlWsuo0jH78VrpmImblpeOAVg/4oDyQUULLKxv\ns21r+WZ4JiFmysBVdnBGQgxks1e2eIDi7wDgtpJt7KzJRHwX3swskY9AqyFpOfAKjYlLt0TEKXX1\nxcwq0uOHaHXu3jbg1O1rkJhZD+rxBFrnmkiquX0zq1qXq3JKmiZpiaQnJH2+oM6VkpZKWihpykCx\nki6T9IikhyXdJWlM07ZLss9aLOn0gXavzgQWwE8kLZD0JzX2w8yq0sWictkCb1fRuN12PHCepGNa\n6kwHjoyIycAs4JoOYr8aEe+OiBOBHwOXZjHHAefQWCtgOnC1pLbLJNeZQN+Xrb88A/hUJ4vYm9kQ\n090R6CnA0ohYERFbgDnAzJY6M4EbACJiPjBS0uh2sRHxelP8PjQuJwKcBcyJiK0RsRxYmn1O292r\nRUQ8l/35vKTbaHT0gR1r/lHTz0cD2/8TmZ//wS/sXb4zS8uHcNvmhCB45aC8panb28IbueWvzftV\nYcxjFG8rslfhkLFiN2+J0jEAG4ZvKh1zUMEyT/MebhPUX7oZKL9cU/6K4wNJGWIF5C13Ne/xAWKW\nt9+86BVY/Gpif9rpbk2kscDKpver2DGh5dUZO1CspC/TWA55PXBa02f9W1PM6qysUC0JVNI7gGER\n8bqkfYDTgb/Or/2dNp/08R2LDtm/fIcmlw/hD9LGgY4cu6h0TLtxoO88/4O55e+ifGJLGQd6zqZ7\nS8cArB9R/l/W2CUbCred/+GCDYM1DjRvbOZAduY4UOD8dudwz5drQjeVq19o8DNM21Pu7SLii8AX\ns2ujnwa+lNJYXUego4HbJEXWh+9GxN019cXMqtJdhlkNjG96P44dj/VXA4fl1OnrIBbgRhrXQb/U\n5rMK1XINNCKejogpEXFiRJwQEVfU0Q8zq1h310AXAJMkTZDUB5wLzG2pM5fGqTiSpgLrI2Jtu1hJ\nk5rizwaWNH3WuZL6JB0OTAJ+PtDumZlVIrp4Eiki+iXNBu6mcbB3fUQsljSrsTmui4g7Jc2QtAzY\nAFzULjb76CskHUXj5tEK4E+zmEWSbgYW0XhW/OKIaHstzAnUzCrT32WGiYi7aNw9bi67tuX97E5j\ns/KPtWnvcuDyTvs3BBJo0V314fnbXkho4j+XD9n3gPI3XABWbjhs4Eotjtsn/8bTVl7m0LxbskD/\nIP3V3j/i1KS4M165r3xQ0dHMsDbbXi8ob+P5GfuWjnnn5ISGLisfAsBncsqW0f5m6NrEtrrUbQLd\n1fX47plZnTaN6OuwZtqwwLo5gZpZZfr36O3pmJxAzawy/T0+n50TqJlVZqsTqJlZmsG6mVmX3t47\nM6uVT+HNzBI5gZqZJdpEp8OYhiYnUDOrjK+Bmpkl8im8mVkiJ1Azs0QeB1q75QXlLxRsS5he/kfl\nQ16/653lg+CtFUlKePijJ+b3gWd5kfxtr7Ff6XZmcGfpmP/H+0rHAKwcWX5SlUkjn8wtf3TMOn4y\neVTutt97NmeVmAHskTCN/dLJ40rHTD5hVekYAL6VU7aE9hOGfKRkGwlzveTxNVAzs0Q+hTczS7S5\nx4cx1bmssZn1uK3s0dGriKRpkpZIeiJbAC6vzpWSlkpaKGnKQLGSvippcVb/Fkn7Z+UTJL0h6aHs\ndfVA++cEamaV6WfPjl55JA0DrqKxfunxwHmSjmmpMx04MiImA7OAazqIvRs4PiKm0FjU/JKmj1wW\nESdlr4sH2j8nUDOrTD97dPQqcAqwNCJWRMQWYA4ws6XOTOAGgIiYD4yUNLpdbETcExHbsvgHaay+\nuV1HyyJv5wRqZpXpMoGOBVY2vV+VlXVSp5NYgE8C/9z0fmJ2+n6/pPcPtH++iWRmlalhHGjHR5CS\n/hLYEhE3ZkXPAuMj4mVJJwG3SzouIgoXvHICNbPKbGZEN+GrgfFN78dlZa11Dsup09cuVtKFwAzg\nd7eXZaf6L2c/PyTpSeAo4KGiDvoU3swq0+Up/AJgUnZ3vA84F5jbUmcucAGApKnA+ohY2y5W0jTg\nc8BZEbFp+wdJOiS7+YSkI4BJwFPt9s9HoGZWmW5O4SOiX9JsGnfNhwHXR8RiSbMam+O6iLhT0gxJ\ny4ANwEXtYrOP/jqNI9SfSAJ4MLvj/gHgMkmbgW3ArIhY366PTqBmVpluH+WMiLuAo1vKrm15P7vT\n2Kw893nviLgVuLVM/5xAzawyfpSzdq8WlG/M37YsoYk3E2JeSIiBxlWVkp565Pj8DSseYV3Btv/4\n7v9bup3lTCwd8/v8sHQMwAk8WjrmB3w0t3wtYhlH5G7b+9A3Srdz8obCewbF9in/C7H0z8tPQAIw\neV3OJCS3QMHX0/BMUlNdcwI1M0vkBGpmlmhTd8OYdnlOoGZWGR+BmpklcgI1M0vU60t6DPgkkqRP\nSzpwMDpjZr2lm+nshoJOHuUcDSyQdHM2QWmp6Z7MbPfV5aOcu7wBE2hEfJHGSm3XAxcCSyX9jaQj\nK+6bmQ1xvZ5AOzp2joiQtAZYA2wFDgR+IOknEfHnVXbQzIauTT2+JtKACVTSf6Mx28kLwDeAz0XE\nlmzWkqWAE6iZ5RrK1zc70cneHQR8JCJWNBdGxDZJH66mW2bWC4by6XknBkygEXFpm22Li7aZme32\nCdTMLFWvjwMdAgl0Y0H55oJtL5Zv4lsHl4/5UPkQIGk2pjHvzp8Ue+Ov1rF3wbYXOaR0Oxt5R+mY\nr5C7VPeA/pDvlY55suDLW8uGwm0j2Fy6nUf3OaF0TIoLNv1TUlzk/KuNPfLLt3v55L1KtpIyRdmO\nfA3UzCxRr5/Ce00kM6vMZvo6ehXJHt5ZIukJSbmnO5KulLRU0kJJUwaKlfRVSYuz+rdI2r9p2yXZ\nZy2WdPpA++cEamaV2coeHb3yZEMlrwLOAI4HzpN0TEud6cCR2TIds4BrOoi9Gzg+IqbQGIp5SRZz\nHHAOcCwwHbh6oCcvnUDNrDJdPgt/CrA0IlZkSw7PAWa21JkJ3AAQEfOBkZJGt4uNiHsiYlsW/yCN\nJY8BzgLmRMTWiFhOI7me0m7/nEDNrDJdPso5FljZ9H5VVtZJnU5iAT4J3FnwWasLYn7NN5HMrDI1\n3ETqeLIjSX8JbImIm1IbcwI1s8p0OQ50NTC+6f24rKy1zmE5dfraxUq6EJgB/G4Hn1XIp/BmVpku\nr4EuACZJmiCpDzgXmNtSZy6NuTqQNBVYHxFr28VKmgZ8DjgrIja1fNa5kvokHU5j1PbP2+2fj0DN\nrDLthigNJCL6Jc2mcdd8GHB9RCyWNKuxOa6LiDslzZC0DNgAXNQuNvvor9M4Qv1JdpP9wYi4OCIW\nSboZWARsAS6OiGjXRydQM6tMt49yRsRdwNEtZde2vJ/daWxWPrlNe5cDl3faPydQM6uMH+U0M0vU\n649yDoEEundBeV/BtoSJQcrOswCNuflT/CChqTVH5G94eBSvjMzf9viZr5Vu5zX2Kx1zIgtLxwDM\n572lY0axNre8j83szRu5277L+aXb+QD/Wjpm5dtu3namf0TaP7/TRty/Q9nqfV9n0UH7FsaU/7t9\npGT9fE6gZmaJnEC7IOl64MPA2oj4zazsQOB7wARgOXBORLxSZT/MrB6bGFF3FypV9TjQb9J4mL/Z\nF4B7IuJo4D6yB/nNrPf0+qqclSbQiHgAeLmleCbw7eznbwNnV9kHM6tPryfQOq6BjsqeFCAi1kga\nVUMfzGwQeEmP6rUd6d944mq7w4Htd52L7hI+Xr4Hr5cPSb4L/6uEmK0F5YvnFYa8+sqKwm1F3iwc\n8VDsWcq3A7ApYemVdeRfKl85b1VhzJqEJT1+mfA79FLBCIF2tiZ+d2/k/MI+PK/9EhwbC3+JGp5e\n9CbLF++cZTyaeRzozrdW0uiIWCtpDLCuffW/bbNtWk7Ze8r3qHj0R7ExCTHQmNq1rPe32XZq/jCd\n/c8sPwxFCcOYDk0cxnTY22YN60zRMCaAd52f/8W+ym+Xbuc3E46aUoYxTUn853caz+SWn3n+zhvG\n9B/kYUydGIzJRMTbp5iaC1yY/fwJ4I5B6IOZ1cDXQLsg6UbgVOBgSc8AlwJXAN+X9ElgBY0p9M2s\nB23anD6ZyFBQaQKNiKLHQFIXBTazIaR/q6+Bmpkl6d86dE/PO+EEamaVcQKtXdGM+i/lb9sz4S78\n8i3lY6YMLx8D8FhCzLkF5Qfx1nqCLZbe8e7y7Uwp/z38YsLg/QotZ2Ju+XO8yRsFk5O8g42l23l8\nxykkB3QwL5SOSZm8BeDHzNih7GEeJ2fqy197kUNKtrJz7sJv3dLbCdRLephZZbb179nRq4ikaZKW\nSHpC0ucL6lwpaamkhZKmDBQr6WOSHpPUL+mkpvIJkt6Q9FD2unqg/RsCR6BmNmR1cQovaRhwFfBB\n4FlggaQ7ImJJU53pwJERMVnSe4FrgKkDxD4K/AFwLTtaFhEn5ZTncgI1s+q82VWKOQVYGhErACTN\noTGXxpKmOjOBGwAiYr6kkZJG03hsMTc2Ih7PyvKWQO54WWTwKbyZVWlrh698Y+Ftj6ytyso6qdNJ\nbJ6J2en7/ZLaPQMI+AjUzKrU/hH8KpQ6gmzxLDA+Il7Oro3eLum4iCicLcMJ1Myq010CXQ2Mb3o/\njh2H3qyGt01EsL1OXwexbxMRW8im34yIhyQ9CRwFPFQU41N4M6vOlg5f+RYAk7K74300BvTNbakz\nF7gAQNJUYH02XWYnsdB0xCrpkOzmE5KOACYBT7XbPR+Bmll1+tNDI6Jf0mzgbhoHe9dHxGJJsxqb\n47qIuFPSDEnLgA3ARe1iASSdDXwdOAT4kaSFETEd+ABwmaTNwDZgVkSsb9dHJ1Azq06X10Aj4i5a\nnhCIiGtb3s/uNDYrvx24Paf8VuDWMv1zAjWz6uz8OZp3KU6gZladwb8LP6icQM2sOk6gdXupoPz1\n/G1bny7fxF6Hl495oHwIkL8KyUB+UFD+GPBGwbbyc1vAlIGrtHp+3viBK+VY/r7yHTySJ3PL96Sf\nvoK1jx7nqNLtjEhYR+kEHi0dcydnlo4BmMiOv+NrGME6Ti2MOZl/T2qra06gZmaJEiY6G0qcQM2s\nOl0MYxoKnEDNrDo+hTczS+RhTGZmiXwEamaWyAnUzCyRE6iZWSIPYzIzS+RhTGZmiXwX3swska+B\nmpkl8jXQuhVNJrKhYNvPyzfx5vCEmPIhAPxiXPmYor+ll2isNbizPJjwPZwcSU0tfrzjpbffillT\nELN4Cw//7OO5m4a/69XS7Rx68LOlY26a/8nSMexbPgTgxUkH71C2ecszrN50cmHMffd8uGQrXypZ\nv0CPXwP1mkhmVp3uljVG0jRJSyQ9IenzBXWulLRU0kJJUwaKlfQxSY9J6s9W32z+rEuyz1os6fSB\nds8J1Myq00UCzRZ4uwo4AzgeOE/SMS11pgNHRsRkYBZwTQexjwJ/APys5bOOBc4BjgWmA1dLartM\nshOomVWnu1U5TwGWRsSKbMnhOcDMljozgRsAImI+MFLS6HaxEfF4RCxlxzXkZwJzImJrRCwHlmaf\nU8gJ1Myqs6nDV76xwMqm96uysk7qdBI7UHurB4oZAjeRzGzIGvxhTG1PuXc2J1Azq053w5hWA81r\nxozLylrrHJZTp6+D2Lz28j6rkE/hzaw6/R2+8i0AJkmaIKkPOBeY21JnLnABgKSpwPqIWNthLLz9\niHUucK6kPkmHA5MYYFykj0DNrDpdnMJHRL+k2cDdNA72ro+IxZJmNTbHdRFxp6QZkpbRGBx+UbtY\nAElnA18HDgF+JGlhREyPiEWSbgYW0Th2vjgi2g50dgI1s+p0eQ00Iu4Cjm4pu7bl/exOY7Py24Hb\nC2IuBy7vtH9OoGZWHT/KaWaWqHiIUk9wAjWz6ng2prrtXVDeV7BtUkIb5SecgIkJMcALCTE/Kih/\nk8bl7jxl544A+LuEmKmJw+4OSYh5vaB8MYWTu2y5Z//Szaz4UPkYDigfwoMJMZD2K/7TxLa65VN4\nM7NEPT4bkxOomVXHp/BmZomcQM3MEvkaqJlZIg9jMjNL5FN4M7NEPoU3M0vkYUxmZol8Cm9mlsgJ\n1Mwska+Bmpkl6vEjUC/pYWaWaAgcgW4sKN9csG2gdaN2lqJZogbwwsHlYyYVzA70GrBfQcwvyjfD\nkoSYlFmIAJbtxLZepvivfa+Edh5LiEmR+N298uCYHQuXHcDGB3LKt1uV1lbdJE0D/hdvLcvxlZw6\nVwLTaSzpcWFELGwXK+lA4HvABGA5cE5EvCJpAo25vbb/S3gwIi5u1z8fgZrZLknSMOAq4AzgeOA8\nSce01JkOHBkRk4FZwDUdxH4BuCcijgbuAy5p+shlEXFS9mqbPKHiBCrpeklrJf2yqexSSaskPZS9\nplXZBzOr05YOX7lOAZZGxIqI2ALMAWa21JkJ3AAQEfOBkZJGDxA7E/h29vO3gbObPq/UBLdVH4F+\nk8b/AK2+1pTl76q4D2ZWm60dvnKNBVY2vV+VlXVSp13s6GzpYyJiDTCqqd7E7MDufknvH2jvKr0G\nGhEPZNcVWiVOY25mQ8ugj2NKyS3bly5+DhgfES9LOgm4XdJxEVG0FkJt10BnS1oo6RuSRtbUBzOr\n3MYOX7lWA+Ob3o9jx9uFq4HDcuq0i12TneYjaQywDiAiNkfEy9nPDwFPAke127s67sJfDVwWESHp\ny8DXgD8urv6tpp9HZy+ApwvqD9Zd+KcS44pum7fxWsEd/43zimMK1ghqa1tCzJqEGChe36idKCjf\n0OZ7GJ7QzmAdNL2UGJd32LO2zXfQSVuvL4LXFyd2qJ2uvswFwKTsLPY54FzgvJY6c4FPAd+TNBVY\nHxFrJb0mAH2JAAAE1klEQVTQJnYucCHwFeATwB0Akg4BXoqIbZKOoLH6VNt/6IOeQCPi+aa3/wj8\nsH3EhW22nZRTlrLiVooTEuMShjHt12aRs/3Ozy9PGb6TkgzbjJxpKyWBthv2c+BO/B5S96ms1CFg\nRf9qJxV8B1B+GNNdO+sqW/pI+ojolzQbuJu3hiItljSrsTmui4g7Jc2QtIzGMKaL2sVmH/0V4GZJ\nnwRWAOdk5R8ALpO0mcbhxKyIWN+uj4ORQEXTdQlJY7ILtwAfYfBG3ZnZoOvucD67yXx0S9m1Le9n\ndxqblb8EfCin/Fbg1jL9qzSBSroROBU4WNIzwKXAaZKm0Mjwy2mM3TKzntTbz3JWfRc+75zim1W2\naWa7kt6eTWQIPMppZkNX4R32nuAEamYV8il8zV4tKN9YsC1lGFPK15A6BmVi+ZBlrQ9fbLcG1i4t\n2HZQ+XZYXj7knnEJ7aR6o6B8HawoGtaW8g949MBVdpAwPC35eZK88VwBPy0a59VNW93yKbyZWSIf\ngZqZJfIRqJlZIh+Bmpkl8hGomVkiD2MyM0vkI1Azs0S+BmpmlshHoLuo5weu0vNSlrbsRf4eYFHd\nHSjgI9BdlBNoY8JscwKFxmq8uyIfgZqZJfIRqJlZot4exqSIdhMQ1EvSrts5sx4XEV3NQCJpOZC3\nKm+eFRExsZv26rBLJ1Azs11ZXcsam5kNeU6gZmaJhlwClTRN0hJJT0j6fN39qYuk5ZIekfSwpJ/X\n3Z/BIul6SWsl/bKp7EBJd0t6XNK/SBpZZx+rVvAdXCpplaSHste0Ovu4uxhSCVTSMOAq4AzgeOA8\nScfU26vabANOjYgTI+KUujsziL5J4++/2ReAeyLiaOA+4JJB79XgyvsOAL4WESdlr7sGu1O7oyGV\nQIFTgKURsSIitgBzgJk196kuYuj9/XUtIh4AXm4pngl8O/v528DZg9qpQVbwHUB963bstobaP8Cx\nwMqm96uyst1RAD+RtEDSn9TdmZqNioi1ABGxBhhVc3/qMlvSQknf6PXLGLuKoZZA7S3vi4iTgBnA\npyS9v+4O7UJ2x7F5VwNHRMQUYA3wtZr7s1sYagl0NTC+6f040pbhHPIi4rnsz+eB22hc3thdrZU0\nGkDSGGBdzf0ZdBHxfLw1qPsfgd+qsz+7i6GWQBcAkyRNkNQHnAvMrblPg07SOyTtm/28D3A68Fi9\nvRpU4u3X++YCF2Y/fwK4Y7A7VIO3fQfZfxzbfYTd6/ehNkPqWfiI6Jc0G7ibRvK/PiJ21WloqjQa\nuC171HVP4LsRcXfNfRoUkm4ETgUOlvQMcClwBfB9SZ8EVgDn1NfD6hV8B6dJmkJjdMZyYFZtHdyN\n+FFOM7NEQ+0U3sxsl+EEamaWyAnUzCyRE6iZWSInUDOzRE6gZmaJnEDNzBI5gZqZJXICtZ1K0snZ\nRM99kvaR9Jik4+rul1kV/CSS7XSSLgP2zl4rI+IrNXfJrBJOoLbTSRpOY+KXjcBvh3/JrEf5FN6q\ncAiwL7AfsFfNfTGrjI9AbaeTdAdwE3A4cGhEfLrmLplVYkhNZ2e7Pkn/CdgcEXOyRQDnSTo1In5a\nc9fMdjofgZqZJfI1UDOzRE6gZmaJnEDNzBI5gZqZJXICNTNL5ARqZpbICdTMLJETqJlZov8Pu0Vp\nJ/KLgSwAAAAASUVORK5CYII=\n", + "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2124,7 +2137,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 36, @@ -2135,7 +2148,7 @@ "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2162,7 +2175,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 37, @@ -2173,7 +2186,7 @@ "data": { "image/png": "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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 19182aa7aa..a68ebb6046 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -106,7 +106,6 @@ "source": [ "# Instantiate a Materials collection\n", "materials_file = openmc.Materials((fuel, water, zircaloy))\n", - "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", "materials_file.export_to_xml()" @@ -339,7 +338,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AHFwIoGZ/M0BAAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDctMjJUMjE6NDA6\nMjUtMDU6MDBskW7/AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA3LTIyVDIxOjQwOjI1LTA1OjAw\nHczWQwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIHw8eOWKCTcAAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDgtMzFUMTA6MzA6\nNTctMDU6MDCU9nZtAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA4LTMxVDEwOjMwOjU3LTA1OjAw\n5avO0QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -433,23 +432,37 @@ "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", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", + " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%%%%%%\n", + " ##################### %%%%%%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%\n", + " ################# %%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%\n", + " ############ %%%%%%%%%%%%%%%\n", + " ######## %%%%%%%%%%%%%%\n", + " %%%%%%%%%%%\n", "\n", - " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", - " Date/Time: 2016-07-22 21:40:25\n", + " | The OpenMC Monte Carlo Code\n", + " Copyright | 2011-2016 Massachusetts Institute of Technology\n", + " License | http://openmc.readthedocs.io/en/latest/license.html\n", + " Version | 0.8.0\n", + " Git SHA1 | fbebf7bf709fe2fe1813af95bff9b29c0d59312c\n", + " Date/Time | 2016-08-31 10:30:57\n", + " OpenMP Threads | 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -459,13 +472,13 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", - " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", - " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", - " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", - " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", - " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", + " Reading U235 from /home/romano/openmc/data/nndc_hdf5/U235.h5\n", + " Reading U238 from /home/romano/openmc/data/nndc_hdf5/U238.h5\n", + " Reading O16 from /home/romano/openmc/data/nndc_hdf5/O16.h5\n", + " Reading H1 from /home/romano/openmc/data/nndc_hdf5/H1.h5\n", + " Reading B10 from /home/romano/openmc/data/nndc_hdf5/B10.h5\n", + " Reading Zr90 from /home/romano/openmc/data/nndc_hdf5/Zr90.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", " Initializing source particles...\n", @@ -585,20 +598,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.5100E-01 seconds\n", - " Reading cross sections = 1.8600E-01 seconds\n", - " Total time in simulation = 3.1672E+02 seconds\n", - " Time in transport only = 3.1667E+02 seconds\n", - " Time in inactive batches = 1.0782E+01 seconds\n", - " Time in active batches = 3.0594E+02 seconds\n", - " Time synchronizing fission bank = 2.1000E-02 seconds\n", - " Sampling source sites = 1.2000E-02 seconds\n", - " SEND/RECV source sites = 9.0000E-03 seconds\n", - " Time accumulating tallies = 1.7000E-02 seconds\n", - " Total time for finalization = 1.8100E-01 seconds\n", - " Total time elapsed = 3.1729E+02 seconds\n", - " Calculation Rate (inactive) = 4637.36 neutrons/second\n", - " Calculation Rate (active) = 1470.89 neutrons/second\n", + " Total time for initialization = 4.4800E-01 seconds\n", + " Reading cross sections = 3.1000E-01 seconds\n", + " Total time in simulation = 3.4103E+02 seconds\n", + " Time in transport only = 3.4086E+02 seconds\n", + " Time in inactive batches = 4.8890E+00 seconds\n", + " Time in active batches = 3.3614E+02 seconds\n", + " Time synchronizing fission bank = 1.5000E-02 seconds\n", + " Sampling source sites = 1.1000E-02 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 1.9000E-02 seconds\n", + " Total time for finalization = 1.8200E-01 seconds\n", + " Total time elapsed = 3.4170E+02 seconds\n", + " Calculation Rate (inactive) = 10227.0 neutrons/second\n", + " Calculation Rate (active) = 1338.71 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -707,14 +720,14 @@ "text/plain": [ "array([[[ 0.40945685, 0. ]],\n", "\n", - " [[ 0.40939021, 0. ]],\n", + " [[ 0.41078582, 0. ]],\n", "\n", - " [[ 0.410625 , 0. ]],\n", + " [[ 0.40926432, 0. ]],\n", "\n", " ..., \n", - " [[ 0.41130501, 0. ]],\n", + " [[ 0.41362317, 0. ]],\n", "\n", - " [[ 0.41228849, 0. ]],\n", + " [[ 0.41335428, 0. ]],\n", "\n", " [[ 0.41420317, 0. ]]])" ] @@ -754,26 +767,26 @@ "text/plain": [ "(array([[[ 0.00454952, 0. ]],\n", " \n", - " [[ 0.00454878, 0. ]],\n", + " [[ 0.00456429, 0. ]],\n", " \n", - " [[ 0.0045625 , 0. ]],\n", + " [[ 0.00454738, 0. ]],\n", " \n", " ..., \n", - " [[ 0.00457006, 0. ]],\n", + " [[ 0.00459581, 0. ]],\n", " \n", - " [[ 0.00458098, 0. ]],\n", + " [[ 0.00459283, 0. ]],\n", " \n", " [[ 0.00460226, 0. ]]]),\n", " array([[[ 1.64748193e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.70922989e-05, 0.00000000e+00]],\n", + " [[ 1.74996463e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.67622385e-05, 0.00000000e+00]],\n", + " [[ 1.74392771e-05, 0.00000000e+00]],\n", " \n", " ..., \n", - " [[ 1.69274948e-05, 0.00000000e+00]],\n", + " [[ 1.73541566e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.57842763e-05, 0.00000000e+00]],\n", + " [[ 1.67854889e-05, 0.00000000e+00]],\n", " \n", " [[ 2.06590062e-05, 0.00000000e+00]]]))" ] @@ -855,7 +868,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -864,9 +877,9 @@ }, { "data": { - "image/png": "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\nAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -898,7 +911,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1012,7 +1025,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1023,7 +1036,7 @@ "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1074,7 +1087,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 dfd493f168..763e80d204 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -105,7 +105,6 @@ "source": [ "# Instantiate a Materials collection\n", "materials_file = openmc.Materials((fuel, water, zircaloy))\n", - "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", "materials_file.export_to_xml()" @@ -339,7 +338,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AHFwInLqDpadAAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDctMjJUMjE6Mzk6\nNDYtMDU6MDBOOEOsAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA3LTIyVDIxOjM5OjQ2LTA1OjAw\nP2X7EAAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIHw8dMt59x4sAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDgtMzFUMTA6Mjk6\nNTAtMDU6MDBsyrzpAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA4LTMxVDEwOjI5OjUwLTA1OjAw\nHZcEVQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -527,23 +526,37 @@ "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", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", + " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%%%%%%\n", + " ##################### %%%%%%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%\n", + " ################# %%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%\n", + " ############ %%%%%%%%%%%%%%%\n", + " ######## %%%%%%%%%%%%%%\n", + " %%%%%%%%%%%\n", "\n", - " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", - " Date/Time: 2016-07-22 21:39:46\n", + " | The OpenMC Monte Carlo Code\n", + " Copyright | 2011-2016 Massachusetts Institute of Technology\n", + " License | http://openmc.readthedocs.io/en/latest/license.html\n", + " Version | 0.8.0\n", + " Git SHA1 | fbebf7bf709fe2fe1813af95bff9b29c0d59312c\n", + " Date/Time | 2016-08-31 10:29:51\n", + " OpenMP Threads | 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -553,13 +566,13 @@ " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", - " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", - " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", - " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", - " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", - " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", - " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", - " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", + " Reading U235 from /home/romano/openmc/data/nndc_hdf5/U235.h5\n", + " Reading U238 from /home/romano/openmc/data/nndc_hdf5/U238.h5\n", + " Reading O16 from /home/romano/openmc/data/nndc_hdf5/O16.h5\n", + " Reading H1 from /home/romano/openmc/data/nndc_hdf5/H1.h5\n", + " Reading B10 from /home/romano/openmc/data/nndc_hdf5/B10.h5\n", + " Reading Zr90 from /home/romano/openmc/data/nndc_hdf5/Zr90.h5\n", + " Maximum neutron transport energy: 20.0000 MeV for U235\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", " Initializing source particles...\n", @@ -599,20 +612,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.5600E-01 seconds\n", - " Reading cross sections = 2.3400E-01 seconds\n", - " Total time in simulation = 1.8333E+01 seconds\n", - " Time in transport only = 1.8325E+01 seconds\n", - " Time in inactive batches = 2.6950E+00 seconds\n", - " Time in active batches = 1.5638E+01 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 = 4.3100E-01 seconds\n", + " Reading cross sections = 3.0500E-01 seconds\n", + " Total time in simulation = 8.9870E+00 seconds\n", + " Time in transport only = 8.9500E+00 seconds\n", + " Time in inactive batches = 1.1950E+00 seconds\n", + " Time in active batches = 7.7920E+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 = 0.0000E+00 seconds\n", " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 1.8711E+01 seconds\n", - " Calculation Rate (inactive) = 4638.22 neutrons/second\n", - " Calculation Rate (active) = 2398.00 neutrons/second\n", + " Total time elapsed = 9.4370E+00 seconds\n", + " Calculation Rate (inactive) = 10460.3 neutrons/second\n", + " Calculation Rate (active) = 4812.63 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", From c4357ba177bd8d8c7a410629ef48e3d9f76b7f29 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 1 Sep 2016 06:34:01 -0500 Subject: [PATCH 367/417] Remove comment and mgxs print routines --- src/initialize.F90 | 2 +- src/mgxs_header.F90 | 162 -------------------------------------------- 2 files changed, 1 insertion(+), 163 deletions(-) diff --git a/src/initialize.F90 b/src/initialize.F90 index f05b4f2b99..2bcf2e01f2 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -4,7 +4,7 @@ module initialize use constants use dict_header, only: DictIntInt, ElemKeyValueII use set_header, only: SetInt - use energy_grid, only: logarithmic_grid, grid_method ! , unionized_grid + use energy_grid, only: logarithmic_grid, grid_method use error, only: fatal_error, warning use geometry, only: neighbor_lists, count_instance, calc_offsets, & maximum_levels diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 5947d2562d..9409398b3e 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -28,7 +28,6 @@ module mgxs_header contains procedure(mgxs_init_file_), deferred :: init_file ! Initialize the data - procedure(mgxs_print_), deferred :: print ! Writes object info procedure(mgxs_get_xs_), deferred :: get_xs ! Get the requested xs procedure(mgxs_combine_), deferred :: combine ! initializes object ! Sample the outgoing energy from a fission event @@ -63,12 +62,6 @@ module mgxs_header integer, intent(in) :: max_order ! Maximum requested order end subroutine mgxs_init_file_ - subroutine mgxs_print_(this, unit) - import Mgxs - class(Mgxs),intent(in) :: this - integer, optional, intent(in) :: unit - end subroutine mgxs_print_ - pure function mgxs_get_xs_(this,xstype,gin,gout,uvw,mu) result(xs) import Mgxs class(Mgxs), intent(in) :: this @@ -149,7 +142,6 @@ module mgxs_header contains procedure :: init_file => mgxsiso_init_file ! Initialize Nuclidic MGXS Data - procedure :: print => mgxsiso_print ! Writes nuclide info procedure :: get_xs => mgxsiso_get_xs ! Gets Size of Data w/in Object procedure :: combine => mgxsiso_combine ! inits object procedure :: sample_fission_energy => mgxsiso_sample_fission_energy @@ -180,7 +172,6 @@ module mgxs_header contains procedure :: init_file => mgxsang_init_file ! Initialize Nuclidic MGXS Data - procedure :: print => mgxsang_print ! Writes nuclide info procedure :: get_xs => mgxsang_get_xs ! Gets Size of Data w/in Object procedure :: combine => mgxsang_combine ! inits object procedure :: sample_fission_energy => mgxsang_sample_fission_energy @@ -951,159 +942,6 @@ module mgxs_header end subroutine mgxsang_init_file -!=============================================================================== -! MGXS*_PRINT displays information about a continuous-energy neutron -! cross_section table and its reactions and secondary angle/energy distributions -!=============================================================================== - - subroutine mgxs_print(this, unit_) - class(Mgxs), intent(in) :: this - integer, intent(in) :: unit_ - - character(MAX_LINE_LEN) :: temp_str - - ! Basic nuclide information - write(unit_,*) 'MGXS Entry: ' // trim(this % name) - if (this % awr > ZERO) then - write(unit_,*) ' AWR = ' // trim(to_str(this % awr)) - end if - if (this % kT > ZERO) then - write(unit_,*) ' kT = ' // trim(to_str(this % kT)) - end if - if (this % scatt_type == ANGLE_LEGENDRE) then - temp_str = "Legendre" - write(unit_,*) ' Scattering Type = ' // trim(temp_str) - select type(this) - type is (MgxsIso) - temp_str = to_str(size(this % scatter % dist(1) % data,dim=1) - 1) - end select - write(unit_,*) ' Scattering Order = ' // trim(temp_str) - else if (this % scatt_type == ANGLE_HISTOGRAM) then - temp_str = "Histogram" - write(unit_,*) ' Scattering Type = ' // trim(temp_str) - select type(this) - type is (MgxsIso) - temp_str = to_str(size(this % scatter % dist(1) % data,dim=1)) - end select - write(unit_,*) ' Num. Distribution Bins = ' // trim(temp_str) - else if (this % scatt_type == ANGLE_TABULAR) then - temp_str = "Tabular" - write(unit_,*) ' Scattering Type = ' // trim(temp_str) - select type(this) - type is (MgxsIso) - temp_str = to_str(size(this % scatter % dist(1) % data,dim=1)) - end select - write(unit_,*) ' Num. Distribution Points = ' // trim(temp_str) - end if - write(unit_,*) ' Fissionable = ', this % fissionable - - end subroutine mgxs_print - - subroutine mgxsiso_print(this, unit) - - class(MgxsIso), intent(in) :: this - integer, optional, intent(in) :: unit - - integer :: unit_ ! unit to write to - integer :: size_total, size_scattmat, size_mgxs - integer :: gin - - ! set default unit for writing information - if (present(unit)) then - unit_ = unit - else - unit_ = OUTPUT_UNIT - end if - - ! Write Basic Nuclide Information - call mgxs_print(this, unit_) - - ! Determine size of mgxs and scattering matrices - size_scattmat = 0 - do gin = 1, size(this % scatter % energy) - size_scattmat = size_scattmat + & - 2 * size(this % scatter % energy(gin) % data) + & - size(this % scatter % dist(gin) % data) - end do - size_scattmat = size_scattmat + size(this % scatter % scattxs) - size_scattmat = size_scattmat * 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 mgxsiso_print - - subroutine mgxsang_print(this, unit) - - class(MgxsAngle), intent(in) :: this - integer, optional, intent(in) :: unit - - integer :: unit_ ! unit to write to - integer :: size_total, size_scattmat, size_mgxs - integer :: ipol, iazi, gin - - ! set default unit for writing information - if (present(unit)) then - unit_ = unit - else - unit_ = OUTPUT_UNIT - end if - - ! Write Basic Nuclide Information - call mgxs_print(this, unit_) - - 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 = 0 - do ipol = 1, this % n_pol - do iazi = 1, this % n_azi - do gin = 1, size(this % scatter(iazi, ipol) % obj % energy) - size_scattmat = size_scattmat + & - 2 * size(this % scatter(iazi, ipol) % obj % energy(gin) % data) + & - size(this % scatter(iazi, ipol) % obj % dist(gin) % data) - end do - size_scattmat = size_scattmat + & - size(this % scatter(iazi, ipol) % obj % scattxs) - end do - end do - size_scattmat = size_scattmat * 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 mgxsang_print - !=============================================================================== ! MGXS*_GET_XS returns the requested data cross section data !=============================================================================== From fc1d856cf85cbd9918f0f5c2c9be887afa9abd3a Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 1 Sep 2016 10:29:48 -0400 Subject: [PATCH 368/417] fixed bug in MDGXS.get_pandas_dataframe(...) --- openmc/mgxs/mdgxs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index 7a76a6c9d9..8941d4c6f9 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -771,7 +771,7 @@ class MDGXS(MGXS): # If the user requested all nuclides, keep nuclide column in dataframe else: - query_nuclides = nuclides + query_nuclides = self.nuclides df = self.xs_tally.get_pandas_dataframe( distribcell_paths=distribcell_paths) From 176b92538946d82a0c9001fdd8a8bbd61a94668c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 2 Sep 2016 12:57:01 -0500 Subject: [PATCH 369/417] Pick nearest URR temperature when using multipole --- src/cross_section.F90 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 43e8544960..800552f891 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -158,9 +158,10 @@ contains E <= nuc % multipole % end_E/1.0e6_8) then use_mp = .true. else - ! If using multipole data but outside the RRR, just pick the first - ! temperature - i_temp = 1 + ! If using multipole data but outside the RRR, pick the nearest + ! temperature. Note that there is no tolerance here, so this + ! temperature could be very far off! + i_temp = minloc(abs(nuclides(i_nuclide) % kTs - kT), dim=1) end if else ! If not using multipole data, do a linear search on temperature From c4744ec638bf353a57338337f667e89f9ae4488c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 2 Sep 2016 17:12:43 -0400 Subject: [PATCH 370/417] Fixed He4 and H3 issue where temperatures were not being added. This was due to an issue where when the different temperatures were reading the absorption xs from ACE, it was being stored even if it was a 0. array. At the same time, the base h5 file was read by from_hdf5 which never had the derived absorption xs created for these nuclides --- openmc/data/neutron.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 7568a24ba8..064cc4199a 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -472,8 +472,8 @@ class IncidentNeutron(EqualityMixin): tgroup = group['total_nu'] rx.derived_products.append(Product.from_hdf5(tgroup)) - # Build summed reactions. Start from the highest MT number because high - # MTs never depend on lower MTs. + # Build summed reactions. Start from the highest MT number because + # high MTs never depend on lower MTs. for mt_sum in sorted(SUM_RULES, reverse=True): if mt_sum not in data: rxs = [data[mt] for mt in SUM_RULES[mt_sum] if mt in data] @@ -545,7 +545,7 @@ class IncidentNeutron(EqualityMixin): energy = ace.xss[ace.jxs[1]:ace.jxs[1] + n_energy] data.energy[strT] = energy total_xs = ace.xss[ace.jxs[1] + n_energy:ace.jxs[1] + 2 * n_energy] - absorption_xs = ace.xss[ace.jxs[1] + 2*n_energy:ace.jxs[1] + + absorption_xs = ace.xss[ace.jxs[1] + 2 * n_energy:ace.jxs[1] + 3 * n_energy] # Create summed reactions (total and absorption) @@ -553,9 +553,10 @@ class IncidentNeutron(EqualityMixin): total.xs[strT] = Tabulated1D(energy, total_xs) data.summed_reactions[1] = total - absorption = Reaction(27) - absorption.xs[strT] = Tabulated1D(energy, absorption_xs) - data.summed_reactions[27] = absorption + if np.count_nonzero(absorption_xs) > 0: + absorption = Reaction(27) + absorption.xs[strT] = Tabulated1D(energy, absorption_xs) + data.summed_reactions[27] = absorption # Read each reaction n_reaction = ace.nxs[4] + 1 From 623b705a399f16c8e5063732bc6e6a357611542d Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 2 Sep 2016 18:27:55 -0400 Subject: [PATCH 371/417] now fixed the thermal scattering side --- scripts/openmc-ace-to-hdf5 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 index b926698c99..ff8c19962b 100755 --- a/scripts/openmc-ace-to-hdf5 +++ b/scripts/openmc-ace-to-hdf5 @@ -172,6 +172,8 @@ for filename in ace_libraries: continue elif xs.endswith('t'): + # Adjust name to be the new thermal scattering name + name = openmc.data.get_thermal_name(name) # Thermal scattering data if name not in nuclides: try: From 6c70391973d61f6eb9e8c025de5242c9d59ee80a Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 4 Sep 2016 06:35:21 -0400 Subject: [PATCH 372/417] Fixed uninitialized value bug in calculate_nuclide_xs --- src/cross_section.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 800552f891..e2cc31d5ea 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -161,6 +161,7 @@ contains ! If using multipole data but outside the RRR, pick the nearest ! temperature. Note that there is no tolerance here, so this ! temperature could be very far off! + kT = sqrtkT**2 i_temp = minloc(abs(nuclides(i_nuclide) % kTs - kT), dim=1) end if else From 8f1b6c64ca7c9111bd39dce8824e89a8c9131909 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 5 Sep 2016 12:24:09 -0400 Subject: [PATCH 373/417] Got mesh tallies (including currents) working for 1D and 2D --- openmc/mesh.py | 50 +- src/constants.F90 | 20 +- src/input_xml.F90 | 8 +- src/mesh.F90 | 111 +- src/output.F90 | 247 +- src/tally.F90 | 66 +- src/tally_filter.F90 | 14 +- src/trigger.F90 | 177 +- tests/test_cmfd_feed/results_true.dat | 184 +- tests/test_cmfd_nofeed/results_true.dat | 184 +- tests/test_filter_mesh_1d/geometry.xml | 181 + tests/test_filter_mesh_1d/materials.xml | 272 + tests/test_filter_mesh_1d/results_true.dat | 174 + tests/test_filter_mesh_1d/settings.xml | 19 + tests/test_filter_mesh_1d/tallies.xml | 21 + .../test_filter_mesh_1d.py | 11 + tests/test_filter_mesh_2d/results_true.dat | 4625 + tests/test_filter_mesh_2d/tallies.xml | 5 + tests/test_filter_mesh_3d/results_true.dat | 117913 +++++++++++++++ tests/test_filter_mesh_3d/tallies.xml | 5 + 20 files changed, 123804 insertions(+), 483 deletions(-) create mode 100644 tests/test_filter_mesh_1d/geometry.xml create mode 100644 tests/test_filter_mesh_1d/materials.xml create mode 100644 tests/test_filter_mesh_1d/results_true.dat create mode 100644 tests/test_filter_mesh_1d/settings.xml create mode 100644 tests/test_filter_mesh_1d/tallies.xml create mode 100644 tests/test_filter_mesh_1d/test_filter_mesh_1d.py diff --git a/openmc/mesh.py b/openmc/mesh.py index 7d7b483f73..420dba0661 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -23,7 +23,7 @@ def reset_auto_mesh_id(): class Mesh(object): - """A structured Cartesian mesh in two or three dimensions + """A structured Cartesian mesh in one, two, or three dimensions Parameters ---------- @@ -147,25 +147,25 @@ class Mesh(object): @dimension.setter def dimension(self, dimension): cv.check_type('mesh dimension', dimension, Iterable, Integral) - cv.check_length('mesh dimension', dimension, 2, 3) + cv.check_length('mesh dimension', dimension, 1, 3) self._dimension = dimension @lower_left.setter def lower_left(self, lower_left): cv.check_type('mesh lower_left', lower_left, Iterable, Real) - cv.check_length('mesh lower_left', lower_left, 2, 3) + cv.check_length('mesh lower_left', lower_left, 1, 3) self._lower_left = lower_left @upper_right.setter def upper_right(self, upper_right): cv.check_type('mesh upper_right', upper_right, Iterable, Real) - cv.check_length('mesh upper_right', upper_right, 2, 3) + cv.check_length('mesh upper_right', upper_right, 1, 3) self._upper_right = upper_right @width.setter def width(self, width): cv.check_type('mesh width', width, Iterable, Real) - cv.check_length('mesh width', width, 2, 3) + cv.check_length('mesh width', width, 1, 3) self._width = width def __hash__(self): @@ -204,7 +204,10 @@ class Mesh(object): """ - if len(self.dimension) == 2: + if len(self.dimension) == 1: + for x in range(self.dimension[0]): + yield [x + 1, 1, 1] + elif len(self.dimension) == 2: for x in range(self.dimension[0]): for y in range(self.dimension[1]): yield [x + 1, y + 1, 1] @@ -272,7 +275,6 @@ class Mesh(object): """ - twod = len(self.dimension) == 2 cv.check_length('bc', bc, length_min=4, length_max=6) for entry in bc: cv.check_value('bc', entry, ['transmission', 'vacuum', @@ -283,11 +285,18 @@ class Mesh(object): boundary_type=bc[0]), openmc.XPlane(x0=self.upper_right[0], boundary_type=bc[1])] - yplanes = [openmc.YPlane(y0=self.lower_left[1], - boundary_type=bc[2]), - openmc.YPlane(y0=self.upper_right[1], - boundary_type=bc[3])] - if twod: + if len(self.dimension) == 1: + yplanes = [openmc.YPlane(y0=np.finfo(np.float).min, + boundary_type='reflective'), + openmc.YPlane(y0=np.finfo(np.float).max, + boundary_type='reflective')] + else: + yplanes = [openmc.YPlane(y0=self.lower_left[1], + boundary_type=bc[2]), + openmc.YPlane(y0=self.upper_right[1], + boundary_type=bc[3])] + + if len(self.dimension) <= 2: zplanes = [openmc.ZPlane(z0=np.finfo(np.float).min, boundary_type='reflective'), openmc.ZPlane(z0=np.finfo(np.float).max, @@ -308,7 +317,11 @@ class Mesh(object): universes = np.ndarray(self.dimension[::-1], dtype=np.object) cells = [] for [i, j, k] in self.cell_generator(): - if twod: + if len(self.dimension) == 1: + universes[i - 1] = openmc.Universe() + cells.append(openmc.Cell()) + universes[i - 1].add_cells([cells[-1]]) + elif len(self.dimension) == 2: universes[j - 1, i - 1] = openmc.Universe() cells.append(openmc.Cell()) universes[j - 1, i - 1].add_cells([cells[-1]]) @@ -325,11 +338,16 @@ class Mesh(object): else: dx = ((self.upper_right[0] - self.lower_left[0]) / self.dimension[0]) - dy = ((self.upper_right[1] - self.lower_left[1]) / - self.dimension[1]) - if twod: + + if len(self.dimension) == 1: + lattice.pitch = [dx] + elif len(self.dimension) == 2: + dy = ((self.upper_right[1] - self.lower_left[1]) / + self.dimension[1]) lattice.pitch = [dx, dy] else: + dy = ((self.upper_right[1] - self.lower_left[1]) / + self.dimension[1]) dz = ((self.upper_right[2] - self.lower_left[2]) / self.dimension[2]) lattice.pitch = [dx, dy, dz] diff --git a/src/constants.F90 b/src/constants.F90 index 481ca8e033..90003e5fed 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -360,16 +360,16 @@ module constants ! Tally surface current directions integer, parameter :: & OUT_LEFT = 1, & ! x min - OUT_RIGHT = 2, & ! x max - OUT_BACK = 3, & ! y min - OUT_FRONT = 4, & ! y max - OUT_BOTTOM = 5, & ! z min - OUT_TOP = 6, & ! z max - IN_LEFT = 7, & ! x min - IN_RIGHT = 8, & ! x max - IN_BACK = 9, & ! y min - IN_FRONT = 10, & ! y max - IN_BOTTOM = 11, & ! z min + IN_LEFT = 2, & ! x min + OUT_RIGHT = 3, & ! x max + IN_RIGHT = 4, & ! x max + OUT_BACK = 5, & ! y min + IN_BACK = 6, & ! y min + OUT_FRONT = 7, & ! y max + IN_FRONT = 8, & ! y max + OUT_BOTTOM = 9, & ! z min + IN_BOTTOM = 10, & ! z min + OUT_TOP = 11, & ! z max IN_TOP = 12 ! z max ! Tally trigger types and threshold diff --git a/src/input_xml.F90 b/src/input_xml.F90 index bcdf310e80..f9f805d27e 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2783,8 +2783,8 @@ contains ! Determine number of dimensions for mesh n = get_arraysize_integer(node_mesh, "dimension") - if (n /= 2 .and. n /= 3) then - call fatal_error("Mesh must be two or three dimensions.") + if (n /= 1 .and. n /= 2 .and. n /= 3) then + call fatal_error("Mesh must be one, two, or three dimensions.") end if m % n_dimension = n @@ -3700,7 +3700,9 @@ contains type is (SurfaceFilter) filt % n_bins = 4 * m % n_dimension allocate(filt % surfaces(4 * m % n_dimension)) - if (m % n_dimension == 2) then + if (m % n_dimension == 1) then + filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, IN_LEFT, IN_RIGHT /) + elseif (m % n_dimension == 2) then filt % surfaces = (/ OUT_LEFT, OUT_RIGHT, OUT_BACK, OUT_FRONT, & IN_LEFT, IN_RIGHT, IN_BACK, IN_FRONT /) elseif (m % n_dimension == 3) then diff --git a/src/mesh.F90 b/src/mesh.F90 index cee29aa1ca..b6dff14719 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -22,36 +22,26 @@ contains real(8), intent(in) :: xyz(:) ! coordinates integer, intent(out) :: bin ! tally bin - integer :: n ! size of mesh (2 or 3) + integer :: n ! size of mesh + integer :: d ! mesh dimension index integer :: ijk(3) ! indices in mesh logical :: in_mesh ! was given coordinate in mesh at all? ! Get number of dimensions n = m % n_dimension - ! Check for cases where particle is outside of mesh - if (xyz(1) < m % lower_left(1)) then - bin = NO_BIN_FOUND - return - elseif (xyz(1) > m % upper_right(1)) then - bin = NO_BIN_FOUND - return - elseif (xyz(2) < m % lower_left(2)) then - bin = NO_BIN_FOUND - return - elseif (xyz(2) > m % upper_right(2)) then - bin = NO_BIN_FOUND - return - end if - if (n > 2) then - if (xyz(3) < m % lower_left(3)) then + ! Loop over the dimensions of the mesh + do d = 1, n + + ! Check for cases where particle is outside of mesh + if (xyz(d) < m % lower_left(d)) then bin = NO_BIN_FOUND return - elseif (xyz(3) > m % upper_right(3)) then + elseif (xyz(d) > m % upper_right(d)) then bin = NO_BIN_FOUND return end if - end if + end do ! Determine indices call get_mesh_indices(m, xyz(1:n), ijk(1:n), in_mesh) @@ -89,8 +79,8 @@ contains end subroutine get_mesh_indices !=============================================================================== -! MESH_INDICES_TO_BIN maps (i,j) or (i,j,k) indices to a single bin number for -! use in a TallyObject results array +! MESH_INDICES_TO_BIN maps (i), (i,j), or (i,j,k) indices to a single bin number +! for use in a TallyObject results array !=============================================================================== pure function mesh_indices_to_bin(m, ijk) result(bin) @@ -98,23 +88,20 @@ contains integer, intent(in) :: ijk(:) integer :: bin - integer :: n_x ! number of mesh cells in x direction - integer :: n_y ! number of mesh cells in y direction - - n_x = m % dimension(1) - n_y = m % dimension(2) - - if (m % n_dimension == 2) then - bin = (ijk(2) - 1)*n_x + ijk(1) + if (m % n_dimension == 1) then + bin = ijk(1) + elseif (m % n_dimension == 2) then + bin = (ijk(2) - 1) * m % dimension(1) + ijk(1) elseif (m % n_dimension == 3) then - bin = (ijk(3) - 1)*n_y*n_x + (ijk(2) - 1)*n_x + ijk(1) + bin = ((ijk(3) - 1) * m % dimension(2) + (ijk(2) - 1)) & + * m % dimension(1) + ijk(1) end if end function mesh_indices_to_bin !=============================================================================== ! BIN_TO_MESH_INDICES maps a single mesh bin from a TallyObject results array to -! (i,j) or (i,j,k) indices +! (i), (i,j), or (i,j,k) indices !=============================================================================== pure subroutine bin_to_mesh_indices(m, bin, ijk) @@ -122,19 +109,16 @@ contains integer, intent(in) :: bin integer, intent(out) :: ijk(:) - integer :: n_x ! number of mesh cells in x direction - integer :: n_y ! number of mesh cells in y direction - - n_x = m % dimension(1) - n_y = m % dimension(2) - - if (m % n_dimension == 2) then - ijk(1) = mod(bin - 1, n_x) + 1 - ijk(2) = (bin - 1)/n_x + 1 + if (m % n_dimension == 1) then + ijk(1) = bin + else if (m % n_dimension == 2) then + ijk(1) = mod(bin - 1, m % dimension(1)) + 1 + ijk(2) = (bin - 1)/m % dimension(1) + 1 else if (m % n_dimension == 3) then - ijk(1) = mod(bin - 1, n_x) + 1 - ijk(2) = mod(bin - 1, n_x*n_y)/n_x + 1 - ijk(3) = (bin - 1)/(n_x*n_y) + 1 + ijk(1) = mod(bin - 1, m % dimension(1)) + 1 + ijk(2) = mod(bin - 1, m % dimension(1) * m % dimension(2)) & + / m % dimension(1) + 1 + ijk(3) = (bin - 1)/(m % dimension(1) * m % dimension(2)) + 1 end if end subroutine bin_to_mesh_indices @@ -248,6 +232,47 @@ contains ! track will score to a mesh tally. !=============================================================================== + pure function mesh_intersects_1d(m, xyz0, xyz1) result(intersects) + type(RegularMesh), intent(in) :: m + real(8), intent(in) :: xyz0(1) + real(8), intent(in) :: xyz1(1) + logical :: intersects + + real(8) :: x0 ! track start point + real(8) :: x1 ! track end point + real(8) :: xi ! track intersection point with mesh + real(8) :: xm0 ! lower-left coordinates of mesh + real(8) :: xm1 ! upper-right coordinates of mesh + + ! Copy coordinates of starting point + x0 = xyz0(1) + + ! Copy coordinates of ending point + x1 = xyz1(1) + + ! Copy coordinates of mesh lower_left + xm0 = m % lower_left(1) + + ! Copy coordinates of mesh upper_right + xm1 = m % upper_right(1) + + ! Set default value for intersects + intersects = .false. + + ! Check if line intersects left surface + if ((x0 < xm0 .and. x1 > xm0) .or. (x0 > xm0 .and. x1 < xm0)) then + intersects = .true. + return + end if + + ! Check if line intersects right surface + if ((x0 < xm1 .and. x1 > xm1) .or. (x0 > xm1 .and. x1 < xm1)) then + intersects = .true. + return + end if + + end function mesh_intersects_1d + pure function mesh_intersects_2d(m, xyz0, xyz1) result(intersects) type(RegularMesh), intent(in) :: m real(8), intent(in) :: xyz0(2) diff --git a/src/output.F90 b/src/output.F90 index 9244e2d957..8a23eb6ad3 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -989,9 +989,10 @@ contains type(TallyObject), intent(in) :: t integer, intent(in) :: unit_tally - integer :: i ! mesh index for x - integer :: j ! mesh index for y - integer :: k ! mesh index for z + integer :: i ! mesh index + integer :: ijk(3) ! indices of mesh cells + integer :: n_dim ! number of mesh dimensions + integer :: n_cells ! number of mesh cells integer :: l ! index for energy integer :: i_filter_mesh ! index for mesh filter integer :: i_filter_ein ! index for incoming energy filter @@ -1025,135 +1026,147 @@ contains n = 1 end if - do i = 1, m % dimension(1) - string = "Mesh Index (" // trim(to_str(i)) // ", " - len1 = len_trim(string) - do j = 1, m % dimension(2) - string = string(1:len1+1) // trim(to_str(j)) // ", " - len2 = len_trim(string) - do k = 1, m % dimension(3) - ! Write mesh cell index - string = string(1:len2+1) // trim(to_str(k)) // ")" - write(UNIT=unit_tally, FMT='(1X,A)') trim(string) + ! Get the dimensions and number of cells in the mesh + n_dim = m % n_dimension + n_cells = product(m % dimension) - do l = 1, n - if (print_ebin) then - ! Set incoming energy bin - matching_bins(i_filter_ein) = l + ! Loop over all the mesh cells + do i = 1, n_cells - ! Write incoming energy bin - write(UNIT=unit_tally, FMT='(3X,A)') & - trim(t % filters(i_filter_ein) % obj % text_label( & - matching_bins(i_filter_ein))) - end if + ! Get the indices for this cell + call bin_to_mesh_indices(m, i, ijk) + matching_bins(i_filter_mesh) = i - ! Get the bin for this mesh cell - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) + ! Write the header for this cell + if (n_dim == 1) then + string = "Mesh Index (" // trim(to_str(ijk(1))) // ")" + else if (n_dim == 2) then + string = "Mesh Index (" // trim(to_str(ijk(1))) // ", " & + // trim(to_str(ijk(2))) // ")" + else if (n_dim == 3) then + string = "Mesh Index (" // trim(to_str(ijk(1))) // ", " & + // trim(to_str(ijk(2))) // ", " // trim(to_str(ijk(3))) // ")" + end if - ! Left Surface - matching_bins(i_filter_surf) = OUT_LEFT - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current on Left", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + write(UNIT=unit_tally, FMT='(1X,A)') trim(string) - matching_bins(i_filter_surf) = IN_LEFT - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current on Left", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + do l = 1, n + if (print_ebin) then + ! Set incoming energy bin + matching_bins(i_filter_ein) = l - ! Right Surface - matching_bins(i_filter_surf) = OUT_RIGHT - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current on Right", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + ! Write incoming energy bin + write(UNIT=unit_tally, FMT='(3X,A)') & + trim(t % filters(i_filter_ein) % obj % text_label( & + matching_bins(i_filter_ein))) + end if - matching_bins(i_filter_surf) = IN_RIGHT - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current on Right", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + ! Left Surface + matching_bins(i_filter_surf) = OUT_LEFT + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current on Left", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) - ! Back Surface - matching_bins(i_filter_surf) = OUT_BACK - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current on Back", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + matching_bins(i_filter_surf) = IN_LEFT + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current on Left", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_surf) = IN_BACK - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current on Back", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + ! Right Surface + matching_bins(i_filter_surf) = OUT_RIGHT + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current on Right", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) - ! Front Surface - matching_bins(i_filter_surf) = OUT_FRONT - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Net Current on Front", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + matching_bins(i_filter_surf) = IN_RIGHT + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current on Right", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_surf) = IN_FRONT - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Net Current on Front", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + if (n_dim >= 2) then - ! Bottom Surface - matching_bins(i_filter_surf) = OUT_BOTTOM - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current on Bottom", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + ! Back Surface + matching_bins(i_filter_surf) = OUT_BACK + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current on Back", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_surf) = IN_BOTTOM - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current on Bottom", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + matching_bins(i_filter_surf) = IN_BACK + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current on Back", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) - ! Top Surface - matching_bins(i_filter_surf) = OUT_TOP - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Outgoing Current on Top", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) + ! Front Surface + matching_bins(i_filter_surf) = OUT_FRONT + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Net Current on Front", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) - matching_bins(i_filter_surf) = IN_TOP - filter_index = sum((matching_bins(1:size(t % filters)) - 1) & - * t % stride) + 1 - write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & - "Incoming Current on Top", & - to_str(t % results(1,filter_index) % sum), & - trim(to_str(t % results(1,filter_index) % sum_sq)) - end do - end do + matching_bins(i_filter_surf) = IN_FRONT + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Net Current on Front", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + end if + + if (n_dim == 3) then + ! Bottom Surface + matching_bins(i_filter_surf) = OUT_BOTTOM + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current on Bottom", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_surf) = IN_BOTTOM + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current on Bottom", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + ! Top Surface + matching_bins(i_filter_surf) = OUT_TOP + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Outgoing Current on Top", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + + matching_bins(i_filter_surf) = IN_TOP + filter_index = sum((matching_bins(1:size(t % filters)) - 1) & + * t % stride) + 1 + write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') & + "Incoming Current on Top", & + to_str(t % results(1,filter_index) % sum), & + trim(to_str(t % results(1,filter_index) % sum_sq)) + end if end do end do diff --git a/src/tally.F90 b/src/tally.F90 index d5af4ddc1f..9d8b5bc0c7 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -7,9 +7,10 @@ module tally use math, only: t_percentile, calc_pn, calc_rn use mesh, only: get_mesh_bin, bin_to_mesh_indices, & get_mesh_indices, mesh_indices_to_bin, & - mesh_intersects_2d, mesh_intersects_3d + mesh_intersects_1d, mesh_intersects_2d, & + mesh_intersects_3d use mesh_header, only: RegularMesh - use output, only: header + use output, only: header, write_message use particle_header, only: LocalCoord, Particle use search, only: binary_search use string, only: to_str @@ -2320,6 +2321,7 @@ contains integer :: i integer :: i_tally integer :: j ! loop indices + integer :: n_dim ! num dimensions of the mesh integer :: d1 ! dimension index integer :: d2 ! dimension index integer :: d3 ! dimension index @@ -2362,14 +2364,18 @@ contains m => meshes(filt % mesh) end select + n_dim = m % n_dimension + ! Determine indices for starting and ending location - call get_mesh_indices(m, xyz0, ijk0(:m % n_dimension), start_in_mesh) - call get_mesh_indices(m, xyz1, ijk1(:m % n_dimension), end_in_mesh) + call get_mesh_indices(m, xyz0, ijk0(:n_dim), start_in_mesh) + call get_mesh_indices(m, xyz1, ijk1(:n_dim), end_in_mesh) ! Check to see if start or end is in mesh -- if not, check if track still ! intersects with mesh if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then - if (m % n_dimension == 2) then + if (n_dim == 1) then + if (.not. mesh_intersects_1d(m, xyz0, xyz1)) cycle + else if (n_dim == 2) then if (.not. mesh_intersects_2d(m, xyz0, xyz1)) cycle else if (.not. mesh_intersects_3d(m, xyz0, xyz1)) cycle @@ -2377,7 +2383,7 @@ contains end if ! Calculate number of surface crossings - n_cross = sum(abs(ijk1 - ijk0)) + n_cross = sum(abs(ijk1(:n_dim) - ijk0(:n_dim))) if (n_cross == 0) then cycle end if @@ -2395,7 +2401,7 @@ contains end if ! Bounding coordinates - do d1 = 1, 3 + do d1 = 1, n_dim if (uvw(d1) > 0) then xyz_cross(d1) = m % lower_left(d1) + ijk0(d1) * m % width(d1) else @@ -2407,10 +2413,13 @@ contains ! Reset scoring bin index matching_bins(i_filter_surf) = 0 + ! Set the distances to infinity + d = INFINITY + ! Calculate distance to each bounding surface. We need to treat ! special case where the cosine of the angle is zero since this would ! result in a divide-by-zero. - do d1 = 1, 3 + do d1 = 1, n_dim if (uvw(d1) == 0) then d(d1) = INFINITY else @@ -2424,11 +2433,16 @@ contains distance = minval(d) ! Loop over the dimensions - do d1 = 1, 3 + do d1 = 1, n_dim - ! Get the other dimensions - d2 = mod(d1, 3) + 1 - d3 = mod(d1 + 1, 3) + 1 + ! Get the other dimensions. + if (d1 == 1) then + d2 = mod(d1, 3) + 1 + d3 = mod(d1 + 1, 3) + 1 + else + d2 = mod(d1 + 1, 3) + 1 + d3 = mod(d1, 3) + 1 + end if ! Check whether distance is the shortest distance if (distance == d(d1)) then @@ -2438,7 +2452,7 @@ contains ! Outward current on d1 max surface if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = d1 * 2 + matching_bins(i_filter_surf) = d1 * 4 - 1 matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2449,11 +2463,17 @@ contains end if ! Inward current on d1 min surface - if (ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1) .and. & + if ((n_dim == 1 .and. & + ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1)) .or. & + (n_dim == 2 .and. & + ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1) .and. & + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2)) .or. & + (n_dim == 3 .and. & + ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1) .and. & ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & - ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3)) then + ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3))) then ijk0(d1) = ijk0(d1) + 1 - matching_bins(i_filter_surf) = d1 * 2 + 5 + matching_bins(i_filter_surf) = d1 * 4 - 2 matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2472,7 +2492,7 @@ contains ! Outward current on d1 min surface if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then - matching_bins(i_filter_surf) = d1 * 2 - 1 + matching_bins(i_filter_surf) = d1 * 4 - 3 matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & @@ -2483,11 +2503,17 @@ contains end if ! Inward current on d1 max surface - if (ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1 .and. & + if ((n_dim == 1 .and. & + ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1) .or. & + (n_dim == 2 .and. & + ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1 .and. & + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2)) .or. & + (n_dim == 3 .and. & + ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1 .and. & ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & - ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3)) then + ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3))) then ijk0(d1) = ijk0(d1) - 1 - matching_bins(i_filter_surf) = d1 * 2 + 6 + matching_bins(i_filter_surf) = d1 * 4 matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) filter_index = sum((matching_bins(1:size(t % filters)) - 1) & diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index 67d0452847..b0453f713e 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -8,7 +8,8 @@ module tally_filter use mesh_header, only: RegularMesh use mesh, only: get_mesh_bin, bin_to_mesh_indices, & get_mesh_indices, mesh_indices_to_bin, & - mesh_intersects_2d, mesh_intersects_3d + mesh_intersects_1d, mesh_intersects_2d, & + mesh_intersects_3d use particle_header, only: Particle use search, only: binary_search use string, only: to_str @@ -261,7 +262,12 @@ contains ! intersects any part of the mesh. if (current_bin == NO_BIN_FOUND) then if ((.not. start_in_mesh) .and. (.not. end_in_mesh)) then - if (m % n_dimension == 2) then + if (m % n_dimension == 1) then + if (.not. mesh_intersects_1d(m, xyz0, xyz1)) then + next_bin = NO_BIN_FOUND + return + end if + else if (m % n_dimension == 2) then if (.not. mesh_intersects_2d(m, xyz0, xyz1)) then next_bin = NO_BIN_FOUND return @@ -427,7 +433,9 @@ contains m => meshes(this % mesh) allocate(ijk(m % n_dimension)) call bin_to_mesh_indices(m, bin, ijk) - if (m % n_dimension == 2) then + if (m % n_dimension == 1) then + label = "Mesh Index (" // trim(to_str(ijk(1))) // ")" + elseif (m % n_dimension == 2) then label = "Mesh Index (" // trim(to_str(ijk(1))) // ", " // & trim(to_str(ijk(2))) // ")" elseif (m % n_dimension == 3) then diff --git a/src/trigger.F90 b/src/trigger.F90 index 4af03a2dea..39786809b4 100644 --- a/src/trigger.F90 +++ b/src/trigger.F90 @@ -8,7 +8,7 @@ module trigger use global use string, only: to_str use output, only: warning, write_message - use mesh, only: mesh_indices_to_bin + use mesh, only: bin_to_mesh_indices use mesh_header, only: RegularMesh use trigger_header, only: TriggerObject use tally, only: TallyObject @@ -282,9 +282,10 @@ contains subroutine compute_tally_current(t, trigger) - integer :: i ! mesh index for x - integer :: j ! mesh index for y - integer :: k ! mesh index for z + integer :: i ! mesh index + integer :: ijk(3) ! indices of mesh cells + integer :: n_dim ! number of mesh dimensions + integer :: n_cells ! number of mesh cells integer :: l ! index for energy integer :: i_filter_mesh ! index for mesh filter integer :: i_filter_ein ! index for incoming energy filter @@ -319,99 +320,101 @@ contains n = 1 end if - do i = 1, m % dimension(1) - do j = 1, m % dimension(2) - do k = 1, m % dimension(3) - do l = 1, n + ! Get the dimensions and number of cells in the mesh + n_dim = m % n_dimension + n_cells = product(m % dimension) - if (print_ebin) then - matching_bins(i_filter_ein) = l - end if + ! Loop over all the mesh cells + do i = 1, n_cells - matching_bins(i_filter_mesh) = & - mesh_indices_to_bin(m, (/ i, j, k /)) + ! Get the indices for this cell + call bin_to_mesh_indices(m, i, ijk) + matching_bins(i_filter_mesh) = i - ! Left Surface - matching_bins(i_filter_surf) = OUT_LEFT - filter_index = & - sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = std_dev**2 + do l = 1, n - ! Right Surface - matching_bins(i_filter_surf) = OUT_RIGHT - filter_index = & - sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 + if (print_ebin) then + matching_bins(i_filter_ein) = l + end if - ! Back Surface - matching_bins(i_filter_surf) = OUT_BACK - filter_index = & - sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 + ! Left Surface + matching_bins(i_filter_surf) = OUT_LEFT + filter_index = & + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 + call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) + if (trigger % std_dev < std_dev) then + trigger % std_dev = std_dev + end if + if (trigger % rel_err < rel_err) then + trigger % rel_err = rel_err + end if + trigger % variance = std_dev**2 - ! Front Surface - matching_bins(i_filter_surf) = OUT_FRONT - filter_index = & - sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 + ! Right Surface + matching_bins(i_filter_surf) = OUT_RIGHT + filter_index = & + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 + call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) + if (trigger % std_dev < std_dev) then + trigger % std_dev = std_dev + end if + if (trigger % rel_err < rel_err) then + trigger % rel_err = rel_err + end if + trigger % variance = trigger % std_dev**2 - ! Bottom Surface - matching_bins(i_filter_surf) = OUT_BOTTOM - filter_index = & - sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 + ! Back Surface + matching_bins(i_filter_surf) = OUT_BACK + filter_index = & + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 + call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) + if (trigger % std_dev < std_dev) then + trigger % std_dev = std_dev + end if + if (trigger % rel_err < rel_err) then + trigger % rel_err = rel_err + end if + trigger % variance = trigger % std_dev**2 - ! Top Surface - matching_bins(i_filter_surf) = OUT_TOP - filter_index = & - sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 - call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) - if (trigger % std_dev < std_dev) then - trigger % std_dev = std_dev - end if - if (trigger % rel_err < rel_err) then - trigger % rel_err = rel_err - end if - trigger % variance = trigger % std_dev**2 + ! Front Surface + matching_bins(i_filter_surf) = OUT_FRONT + filter_index = & + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 + call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) + if (trigger % std_dev < std_dev) then + trigger % std_dev = std_dev + end if + if (trigger % rel_err < rel_err) then + trigger % rel_err = rel_err + end if + trigger % variance = trigger % std_dev**2 - end do + ! Bottom Surface + matching_bins(i_filter_surf) = OUT_BOTTOM + filter_index = & + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 + call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) + if (trigger % std_dev < std_dev) then + trigger % std_dev = std_dev + end if + if (trigger % rel_err < rel_err) then + trigger % rel_err = rel_err + end if + trigger % variance = trigger % std_dev**2 + + ! Top Surface + matching_bins(i_filter_surf) = OUT_TOP + filter_index = & + sum((matching_bins(1:size(t % filters)) - 1) * t % stride) + 1 + call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t) + if (trigger % std_dev < std_dev) then + trigger % std_dev = std_dev + end if + if (trigger % rel_err < rel_err) then + trigger % rel_err = rel_err + end if + trigger % variance = trigger % std_dev**2 - end do end do end do diff --git a/tests/test_cmfd_feed/results_true.dat b/tests/test_cmfd_feed/results_true.dat index 5fb87e5a3d..b7f6189aec 100644 --- a/tests/test_cmfd_feed/results_true.dat +++ b/tests/test_cmfd_feed/results_true.dat @@ -126,8 +126,18 @@ tally 3: tally 4: 3.049469E+00 4.677325E-01 +0.000000E+00 +0.000000E+00 2.770358E+00 3.879191E-01 +5.514939E+00 +1.528899E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -140,28 +150,10 @@ tally 4: 0.000000E+00 5.514939E+00 1.528899E+00 -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.514939E+00 -1.528899E+00 +2.770358E+00 +3.879191E-01 5.032131E+00 1.275040E+00 -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.770358E+00 -3.879191E-01 7.294002E+00 2.675589E+00 0.000000E+00 @@ -172,20 +164,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.294002E+00 2.675589E+00 +5.032131E+00 +1.275040E+00 7.036008E+00 2.490719E+00 -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.032131E+00 -1.275040E+00 8.668860E+00 3.776102E+00 0.000000E+00 @@ -196,20 +188,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.668860E+00 3.776102E+00 +7.036008E+00 +2.490719E+00 8.352414E+00 3.501945E+00 -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.036008E+00 -2.490719E+00 9.345868E+00 4.380719E+00 0.000000E+00 @@ -220,20 +212,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.345868E+00 4.380719E+00 +8.352414E+00 +3.501945E+00 9.093766E+00 4.158282E+00 -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.352414E+00 -3.501945E+00 9.223771E+00 4.270119E+00 0.000000E+00 @@ -244,20 +236,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.223771E+00 4.270119E+00 +9.093766E+00 +4.158282E+00 9.219150E+00 4.264346E+00 -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.093766E+00 -4.158282E+00 8.530966E+00 3.651778E+00 0.000000E+00 @@ -268,20 +260,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.530966E+00 3.651778E+00 +9.219150E+00 +4.264346E+00 8.690373E+00 3.785262E+00 -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.219150E+00 -4.264346E+00 7.204424E+00 2.604203E+00 0.000000E+00 @@ -292,20 +284,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.204424E+00 2.604203E+00 +8.690373E+00 +3.785262E+00 7.513640E+00 2.833028E+00 -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.690373E+00 -3.785262E+00 5.326721E+00 1.426975E+00 0.000000E+00 @@ -316,20 +308,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.326721E+00 1.426975E+00 +7.513640E+00 +2.833028E+00 5.661144E+00 1.607138E+00 -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.513640E+00 -2.833028E+00 2.847310E+00 4.090440E-01 0.000000E+00 @@ -340,8 +332,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.847310E+00 4.090440E-01 +5.661144E+00 +1.607138E+00 3.025812E+00 4.597241E-01 0.000000E+00 @@ -352,8 +354,6 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.661144E+00 -1.607138E+00 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_cmfd_nofeed/results_true.dat b/tests/test_cmfd_nofeed/results_true.dat index 91da28751f..3574e71433 100644 --- a/tests/test_cmfd_nofeed/results_true.dat +++ b/tests/test_cmfd_nofeed/results_true.dat @@ -126,8 +126,18 @@ tally 3: tally 4: 3.090000E+00 4.810640E-01 +0.000000E+00 +0.000000E+00 2.833000E+00 4.078910E-01 +5.555000E+00 +1.551579E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -140,28 +150,10 @@ tally 4: 0.000000E+00 5.555000E+00 1.551579E+00 -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.555000E+00 -1.551579E+00 +2.833000E+00 +4.078910E-01 5.095000E+00 1.310819E+00 -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.833000E+00 -4.078910E-01 7.271000E+00 2.659755E+00 0.000000E+00 @@ -172,20 +164,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.271000E+00 2.659755E+00 +5.095000E+00 +1.310819E+00 7.026000E+00 2.486552E+00 -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.095000E+00 -1.310819E+00 8.577000E+00 3.703215E+00 0.000000E+00 @@ -196,20 +188,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.577000E+00 3.703215E+00 +7.026000E+00 +2.486552E+00 8.572000E+00 3.680852E+00 -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.026000E+00 -2.486552E+00 9.393000E+00 4.422429E+00 0.000000E+00 @@ -220,20 +212,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.393000E+00 4.422429E+00 +8.572000E+00 +3.680852E+00 9.261000E+00 4.304411E+00 -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.572000E+00 -3.680852E+00 9.265000E+00 4.305625E+00 0.000000E+00 @@ -244,20 +236,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.265000E+00 4.305625E+00 +9.261000E+00 +4.304411E+00 9.303000E+00 4.350791E+00 -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.261000E+00 -4.304411E+00 8.535000E+00 3.659395E+00 0.000000E+00 @@ -268,20 +260,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.535000E+00 3.659395E+00 +9.303000E+00 +4.350791E+00 8.693000E+00 3.799545E+00 -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.303000E+00 -4.350791E+00 7.104000E+00 2.544182E+00 0.000000E+00 @@ -292,20 +284,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.104000E+00 2.544182E+00 +8.693000E+00 +3.799545E+00 7.334000E+00 2.700052E+00 -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.693000E+00 -3.799545E+00 5.168000E+00 1.344390E+00 0.000000E+00 @@ -316,20 +308,20 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.168000E+00 1.344390E+00 +7.334000E+00 +2.700052E+00 5.416000E+00 1.471086E+00 -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.334000E+00 -2.700052E+00 2.724000E+00 3.745680E-01 0.000000E+00 @@ -340,8 +332,18 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 +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.724000E+00 3.745680E-01 +5.416000E+00 +1.471086E+00 2.960000E+00 4.397840E-01 0.000000E+00 @@ -352,8 +354,6 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.416000E+00 -1.471086E+00 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_filter_mesh_1d/geometry.xml b/tests/test_filter_mesh_1d/geometry.xml new file mode 100644 index 0000000000..f6f067aadd --- /dev/null +++ b/tests/test_filter_mesh_1d/geometry.xml @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 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 + + + + + + 17 17 + -10.71 -10.71 + 1.26 1.26 + + 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 21 + -224.91 -224.91 + 21.42 21.42 + + 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 21 + -224.91 -224.91 + 21.42 21.42 + + 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_filter_mesh_1d/materials.xml b/tests/test_filter_mesh_1d/materials.xml new file mode 100644 index 0000000000..f5a9e61bea --- /dev/null +++ b/tests/test_filter_mesh_1d/materials.xml @@ -0,0 +1,272 @@ + + + + 71c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_filter_mesh_1d/results_true.dat b/tests/test_filter_mesh_1d/results_true.dat new file mode 100644 index 0000000000..b1ed402f69 --- /dev/null +++ b/tests/test_filter_mesh_1d/results_true.dat @@ -0,0 +1,174 @@ +k-combined: +9.581522E-01 4.261830E-02 +tally 1: +0.000000E+00 +0.000000E+00 +2.478640E-01 +6.143655E-02 +5.333571E+00 +7.576807E+00 +1.835243E+01 +7.767570E+01 +7.645679E+00 +1.417005E+01 +1.089665E+01 +2.529337E+01 +1.039660E+01 +2.336163E+01 +1.058091E+01 +2.339532E+01 +1.533977E+01 +4.881187E+01 +2.336757E+01 +1.136090E+02 +2.005142E+01 +9.280736E+01 +6.391589E+00 +8.560759E+00 +4.529351E-01 +1.762625E-01 +5.583971E-01 +1.790554E-01 +1.642981E+00 +1.466963E+00 +5.214580E-02 +2.719184E-03 +0.000000E+00 +0.000000E+00 +tally 2: +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.600000E-03 +5.000000E-02 +2.500000E-03 +5.000000E-02 +2.500000E-03 +4.000000E-02 +1.600000E-03 +2.500000E-01 +1.790000E-02 +3.300000E-01 +2.630000E-02 +3.300000E-01 +2.630000E-02 +2.500000E-01 +1.790000E-02 +3.000000E-01 +2.140000E-02 +2.400000E-01 +1.340000E-02 +2.400000E-01 +1.340000E-02 +3.000000E-01 +2.140000E-02 +9.000000E-02 +3.300000E-03 +1.100000E-01 +3.300000E-03 +1.100000E-01 +3.300000E-03 +9.000000E-02 +3.300000E-03 +1.600000E-01 +7.400000E-03 +2.200000E-01 +1.240000E-02 +2.200000E-01 +1.240000E-02 +1.600000E-01 +7.400000E-03 +1.000000E-01 +3.000000E-03 +8.000000E-02 +1.400000E-03 +8.000000E-02 +1.400000E-03 +1.000000E-01 +3.000000E-03 +1.900000E-01 +8.700000E-03 +2.800000E-01 +1.820000E-02 +2.800000E-01 +1.820000E-02 +1.900000E-01 +8.700000E-03 +5.600000E-01 +6.740000E-02 +7.100000E-01 +1.083000E-01 +7.100000E-01 +1.083000E-01 +5.600000E-01 +6.740000E-02 +4.500000E-01 +5.550000E-02 +4.100000E-01 +4.150000E-02 +4.100000E-01 +4.150000E-02 +4.500000E-01 +5.550000E-02 +4.100000E-01 +3.550000E-02 +2.900000E-01 +1.970000E-02 +2.900000E-01 +1.970000E-02 +4.100000E-01 +3.550000E-02 +3.000000E-02 +5.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.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 diff --git a/tests/test_filter_mesh_1d/settings.xml b/tests/test_filter_mesh_1d/settings.xml new file mode 100644 index 0000000000..517637a59f --- /dev/null +++ b/tests/test_filter_mesh_1d/settings.xml @@ -0,0 +1,19 @@ + + + + + 10 + 5 + 100 + + + + + + -160 -160 -183 + 160 160 183 + + + + + diff --git a/tests/test_filter_mesh_1d/tallies.xml b/tests/test_filter_mesh_1d/tallies.xml new file mode 100644 index 0000000000..488b81e872 --- /dev/null +++ b/tests/test_filter_mesh_1d/tallies.xml @@ -0,0 +1,21 @@ + + + + + regular + -182.07 + 182.07 + 17 + + + + + total + + + + + current + + + diff --git a/tests/test_filter_mesh_1d/test_filter_mesh_1d.py b/tests/test_filter_mesh_1d/test_filter_mesh_1d.py new file mode 100644 index 0000000000..ed6addec45 --- /dev/null +++ b/tests/test_filter_mesh_1d/test_filter_mesh_1d.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python + +import os +import sys +sys.path.insert(0, os.pardir) +from testing_harness import TestHarness + + +if __name__ == '__main__': + harness = TestHarness('statepoint.10.*', True) + harness.main() diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index e223464e5d..8c010d82e3 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -579,3 +579,4628 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +tally 2: +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +8.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-02 +2.600000E-03 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +9.000000E-02 +2.700000E-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 +8.000000E-02 +2.000000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.100000E-03 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +8.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +7.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +6.000000E-02 +2.600000E-03 +0.000000E+00 +0.000000E+00 +5.000000E-02 +9.000000E-04 +0.000000E+00 +0.000000E+00 +8.000000E-02 +1.800000E-03 +0.000000E+00 +0.000000E+00 +8.000000E-02 +3.000000E-03 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.800000E-03 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.300000E-03 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.300000E-01 +6.300000E-03 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.100000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.700000E-03 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.000000E-03 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +1.500000E-01 +9.500000E-03 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +1.400000E-01 +5.800000E-03 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +9.000000E-02 +1.900000E-03 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +8.000000E-02 +1.800000E-03 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.500000E-03 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.800000E-03 +0.000000E+00 +0.000000E+00 +4.000000E-02 +8.000000E-04 +0.000000E+00 +0.000000E+00 +8.000000E-02 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +8.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.700000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +2.500000E-03 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.900000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.000000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.600000E-03 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +5.000000E-02 +7.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.300000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +3.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.300000E-01 +4.300000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.500000E-03 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.300000E-01 +2.450000E-02 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +2.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 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +8.000000E-02 +2.000000E-03 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +0.000000E+00 +0.000000E+00 +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 +2.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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-01 +4.400000E-03 +0.000000E+00 +0.000000E+00 +5.000000E-02 +7.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.100000E-01 +4.300000E-03 +0.000000E+00 +0.000000E+00 +8.000000E-02 +2.600000E-03 +0.000000E+00 +0.000000E+00 +3.500000E-01 +2.550000E-02 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.700000E-03 +0.000000E+00 +0.000000E+00 +1.300000E-01 +6.100000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.000000E-04 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.500000E-03 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +2.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 +5.000000E-02 +1.300000E-03 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +9.000000E-02 +2.500000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-01 +2.800000E-03 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-01 +2.600000E-03 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.700000E-03 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +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 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.100000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.100000E-03 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +7.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.600000E-03 +0.000000E+00 +0.000000E+00 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +7.000000E-02 +3.700000E-03 +0.000000E+00 +0.000000E+00 +5.000000E-02 +7.000000E-04 +0.000000E+00 +0.000000E+00 +5.000000E-02 +9.000000E-04 +0.000000E+00 +0.000000E+00 +6.000000E-02 +2.000000E-03 +0.000000E+00 +0.000000E+00 +2.400000E-01 +1.420000E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.400000E-03 +0.000000E+00 +0.000000E+00 +2.100000E-01 +1.090000E-02 +0.000000E+00 +0.000000E+00 +9.000000E-02 +4.100000E-03 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +8.000000E-02 +3.400000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +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 +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 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.000000E-04 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.900000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +7.000000E-02 +1.100000E-03 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.100000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +5.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +8.000000E-02 +1.400000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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_filter_mesh_2d/tallies.xml b/tests/test_filter_mesh_2d/tallies.xml index de3fa65535..58089c554d 100644 --- a/tests/test_filter_mesh_2d/tallies.xml +++ b/tests/test_filter_mesh_2d/tallies.xml @@ -13,4 +13,9 @@ total + + + current + + diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat index 44cd1bcc8c..e28b201087 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -9827,3 +9827,117916 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +tally 2: +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.000000E-03 +3.000000E-02 +9.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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-02 +1.800000E-03 +5.000000E-02 +1.700000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +3.000000E-02 +9.000000E-04 +3.000000E-02 +5.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +5.000000E-02 +1.700000E-03 +6.000000E-02 +1.800000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +3.000000E-02 +9.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +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 +4.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.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 +2.000000E-02 +4.000000E-04 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +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 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +8.000000E-04 +4.000000E-02 +1.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +3.000000E-02 +5.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +4.000000E-02 +1.000000E-03 +4.000000E-02 +8.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.000000E-04 +4.000000E-02 +8.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +4.000000E-02 +8.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +7.000000E-02 +2.100000E-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 +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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +2.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 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +2.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 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +4.000000E-02 +1.000000E-03 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +3.000000E-04 +3.000000E-02 +5.000000E-04 +2.000000E-02 +2.000000E-04 +3.000000E-02 +5.000000E-04 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +4.000000E-02 +1.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +5.000000E-04 +3.000000E-02 +3.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.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 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-02 +1.000000E-03 +3.000000E-02 +3.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +3.000000E-04 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +8.000000E-04 +6.000000E-02 +1.200000E-03 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.200000E-03 +4.000000E-02 +8.000000E-04 +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 +1.000000E-02 +1.000000E-04 +7.000000E-02 +2.100000E-03 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +6.000000E-02 +2.000000E-03 +4.000000E-02 +1.000000E-03 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +4.000000E-02 +1.000000E-03 +2.000000E-02 +4.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +4.000000E-02 +8.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +4.000000E-02 +8.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +3.000000E-02 +3.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 +8.000000E-02 +3.800000E-03 +9.000000E-02 +1.900000E-03 +3.000000E-02 +3.000000E-04 +4.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +3.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +6.000000E-02 +1.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +3.000000E-02 +3.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +7.000000E-02 +1.900000E-03 +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 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +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 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +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 +3.000000E-02 +3.000000E-04 +3.000000E-02 +3.000000E-04 +4.000000E-02 +1.000000E-03 +6.000000E-02 +2.000000E-03 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +4.000000E-02 +8.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +4.000000E-02 +8.000000E-04 +2.000000E-02 +2.000000E-04 +3.000000E-02 +5.000000E-04 +4.000000E-02 +8.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +3.000000E-04 +2.000000E-02 +2.000000E-04 +4.000000E-02 +1.000000E-03 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +4.000000E-02 +8.000000E-04 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +3.000000E-04 +3.000000E-02 +3.000000E-04 +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 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +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 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +3.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.000000E-02 +1.900000E-03 +8.000000E-02 +3.800000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +3.000000E-02 +3.000000E-04 +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 +6.000000E-02 +1.400000E-03 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +3.000000E-04 +7.000000E-02 +2.100000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +7.000000E-02 +2.100000E-03 +3.000000E-02 +3.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 +1.800000E-01 +7.400000E-03 +1.700000E-01 +7.500000E-03 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +7.000000E-02 +1.900000E-03 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +3.500000E-03 +1.000000E-01 +3.600000E-03 +2.000000E-02 +2.000000E-04 +4.000000E-02 +6.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 +1.000000E-02 +1.000000E-04 +3.000000E-02 +9.000000E-04 +1.000000E-01 +3.600000E-03 +9.000000E-02 +3.500000E-03 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +1.700000E-01 +7.500000E-03 +1.800000E-01 +7.400000E-03 +5.000000E-02 +1.100000E-03 +5.000000E-02 +1.300000E-03 +7.000000E-02 +1.900000E-03 +4.000000E-02 +6.000000E-04 +7.000000E-02 +1.500000E-03 +4.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.000000E-04 +4.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.300000E-03 +5.000000E-02 +1.100000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +3.000000E-02 +3.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +4.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 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +1.800000E-01 +8.200000E-03 +1.800000E-01 +7.400000E-03 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +4.000000E-02 +6.000000E-04 +1.800000E-01 +7.400000E-03 +1.800000E-01 +8.200000E-03 +3.000000E-02 +9.000000E-04 +3.000000E-02 +5.000000E-04 +3.000000E-02 +3.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +3.000000E-02 +5.000000E-04 +3.000000E-02 +9.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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.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 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +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 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.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 +3.000000E-02 +9.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.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 +2.000000E-02 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.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 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +9.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +9.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +4.000000E-02 +6.000000E-04 +7.000000E-02 +1.900000E-03 +4.000000E-02 +1.600000E-03 +6.000000E-02 +1.800000E-03 +1.000000E-02 +1.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 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +3.000000E-02 +9.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +7.000000E-02 +2.700000E-03 +5.000000E-02 +1.100000E-03 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +4.000000E-02 +4.000000E-04 +7.000000E-02 +1.500000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.100000E-03 +7.000000E-02 +2.700000E-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 +4.000000E-02 +1.600000E-03 +3.000000E-02 +9.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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +2.000000E-02 +4.000000E-04 +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 +2.000000E-02 +4.000000E-04 +2.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 +2.000000E-02 +4.000000E-04 +2.000000E-02 +2.000000E-04 +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 +2.000000E-02 +4.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.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 +2.000000E-02 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +3.000000E-02 +9.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +5.000000E-04 +3.000000E-02 +5.000000E-04 +3.000000E-02 +5.000000E-04 +2.000000E-02 +2.000000E-04 +6.000000E-02 +1.800000E-03 +4.000000E-02 +8.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +3.000000E-02 +5.000000E-04 +4.000000E-02 +8.000000E-04 +3.000000E-02 +5.000000E-04 +3.000000E-02 +5.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 +1.000000E-02 +1.000000E-04 +4.000000E-02 +6.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +4.000000E-02 +8.000000E-04 +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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.000000E-02 +4.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 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +1.000000E-02 +1.000000E-04 +3.000000E-02 +5.000000E-04 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +5.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 +3.000000E-02 +5.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +3.000000E-02 +9.000000E-04 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +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 +1.000000E-02 +1.000000E-04 +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 +6.000000E-02 +1.800000E-03 +4.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 +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 +2.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.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 +3.000000E-02 +3.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +3.000000E-02 +9.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.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 +3.000000E-02 +9.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +8.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.100000E-03 +5.000000E-02 +1.700000E-03 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-01 +3.600000E-03 +8.000000E-02 +5.000000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +3.000000E-02 +3.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.000000E-03 +8.000000E-02 +2.600000E-03 +8.000000E-02 +5.000000E-03 +1.000000E-01 +3.600000E-03 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.700000E-03 +5.000000E-02 +1.100000E-03 +3.000000E-02 +5.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +3.000000E-02 +5.000000E-04 +7.000000E-02 +1.900000E-03 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +3.000000E-02 +3.000000E-04 +3.000000E-02 +3.000000E-04 +2.000000E-02 +2.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 +3.000000E-02 +3.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +1.000000E-02 +1.000000E-04 +4.000000E-02 +6.000000E-04 +3.000000E-02 +3.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 +2.000000E-02 +4.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +6.000000E-02 +1.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 +8.000000E-02 +2.600000E-03 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.200000E-03 +4.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +5.000000E-04 +1.000000E-02 +1.000000E-04 +4.000000E-02 +1.000000E-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 +1.000000E-02 +1.000000E-04 +2.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +1.000000E-02 +1.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 +4.000000E-02 +8.000000E-04 +5.000000E-02 +1.300000E-03 +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 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +2.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +3.000000E-02 +5.000000E-04 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.000000E-03 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.300000E-03 +4.000000E-02 +8.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.000000E-04 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +3.000000E-02 +9.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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.600000E-03 +4.000000E-02 +1.600000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.600000E-03 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.600000E-03 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.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 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.100000E-03 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +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 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +3.000000E-04 +2.000000E-02 +4.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 +3.000000E-02 +9.000000E-04 +2.000000E-02 +4.000000E-04 +3.000000E-02 +3.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +5.000000E-02 +1.100000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +4.000000E-02 +1.000000E-03 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +5.000000E-04 +2.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 +2.000000E-02 +4.000000E-04 +3.000000E-02 +9.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +3.000000E-02 +5.000000E-04 +3.000000E-02 +9.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.000000E-03 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +3.000000E-02 +9.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 +1.000000E-02 +1.000000E-04 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +8.000000E-04 +7.000000E-02 +1.700000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +7.000000E-02 +1.700000E-03 +4.000000E-02 +8.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.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 +4.000000E-02 +1.600000E-03 +4.000000E-02 +1.600000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +3.000000E-02 +9.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +3.000000E-02 +3.000000E-04 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +2.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 +3.000000E-02 +9.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +1.300000E-03 +3.000000E-02 +5.000000E-04 +2.000000E-02 +2.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 +1.000000E-02 +1.000000E-04 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.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 +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 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +4.000000E-04 +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 +2.000000E-02 +4.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 +2.000000E-02 +2.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.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 +1.000000E-02 +1.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 +7.000000E-02 +1.900000E-03 +6.000000E-02 +1.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +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 +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 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +3.000000E-02 +9.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +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 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.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 +2.000000E-02 +2.000000E-04 +3.000000E-02 +3.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.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 +3.000000E-02 +9.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +2.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +3.000000E-02 +5.000000E-04 +2.000000E-02 +4.000000E-04 +3.000000E-02 +5.000000E-04 +5.000000E-02 +1.300000E-03 +1.000000E-02 +1.000000E-04 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +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 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +3.000000E-02 +5.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +5.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +4.000000E-02 +6.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +3.000000E-02 +5.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +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 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +3.000000E-02 +5.000000E-04 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +4.000000E-04 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.400000E-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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.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 +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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +3.000000E-02 +5.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +3.000000E-02 +9.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +5.000000E-04 +3.000000E-02 +5.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +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 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +4.000000E-02 +1.000000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +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 +0.000000E+00 +0.000000E+00 +3.000000E-02 +5.000000E-04 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +5.000000E-04 +3.000000E-02 +9.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +3.000000E-02 +9.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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.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 +0.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 +2.000000E-02 +2.000000E-04 +2.000000E-02 +4.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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.000000E-02 +4.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +9.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +3.000000E-02 +9.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +4.000000E-02 +1.000000E-03 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.000000E-04 +2.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +2.000000E-04 +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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +9.000000E-04 +6.000000E-02 +1.400000E-03 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.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 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.400000E-03 +5.000000E-02 +9.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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.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 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +6.000000E-02 +2.600000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-02 +1.400000E-03 +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 +1.000000E-02 +1.000000E-04 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-02 +2.600000E-03 +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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-02 +9.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.600000E-03 +3.000000E-02 +9.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +4.000000E-02 +6.000000E-04 +5.000000E-02 +7.000000E-04 +2.000000E-02 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +4.000000E-04 +2.000000E-02 +4.000000E-04 +3.000000E-02 +9.000000E-04 +4.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 +2.000000E-02 +4.000000E-04 +2.000000E-02 +4.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 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +7.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 +3.000000E-02 +5.000000E-04 +2.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.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 +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 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +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 +2.000000E-02 +4.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 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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_filter_mesh_3d/tallies.xml b/tests/test_filter_mesh_3d/tallies.xml index cd7f925e80..67ec57d21c 100644 --- a/tests/test_filter_mesh_3d/tallies.xml +++ b/tests/test_filter_mesh_3d/tallies.xml @@ -13,4 +13,9 @@ total + + + current + + From f6f64fde7d958c584a58e9e81692dacc2dcd08ad Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 5 Sep 2016 12:28:11 -0400 Subject: [PATCH 374/417] hashed output for filter mesh tests --- tests/test_filter_mesh_1d/results_true.dat | 175 +- .../test_filter_mesh_1d.py | 4 +- tests/test_filter_mesh_2d/results_true.dat | 5207 +- .../test_filter_mesh_2d.py | 4 +- tests/test_filter_mesh_3d/results_true.dat | 127743 +-------------- .../test_filter_mesh_3d.py | 4 +- 6 files changed, 9 insertions(+), 133128 deletions(-) diff --git a/tests/test_filter_mesh_1d/results_true.dat b/tests/test_filter_mesh_1d/results_true.dat index b1ed402f69..8a69fe0745 100644 --- a/tests/test_filter_mesh_1d/results_true.dat +++ b/tests/test_filter_mesh_1d/results_true.dat @@ -1,174 +1 @@ -k-combined: -9.581522E-01 4.261830E-02 -tally 1: -0.000000E+00 -0.000000E+00 -2.478640E-01 -6.143655E-02 -5.333571E+00 -7.576807E+00 -1.835243E+01 -7.767570E+01 -7.645679E+00 -1.417005E+01 -1.089665E+01 -2.529337E+01 -1.039660E+01 -2.336163E+01 -1.058091E+01 -2.339532E+01 -1.533977E+01 -4.881187E+01 -2.336757E+01 -1.136090E+02 -2.005142E+01 -9.280736E+01 -6.391589E+00 -8.560759E+00 -4.529351E-01 -1.762625E-01 -5.583971E-01 -1.790554E-01 -1.642981E+00 -1.466963E+00 -5.214580E-02 -2.719184E-03 -0.000000E+00 -0.000000E+00 -tally 2: -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.600000E-03 -5.000000E-02 -2.500000E-03 -5.000000E-02 -2.500000E-03 -4.000000E-02 -1.600000E-03 -2.500000E-01 -1.790000E-02 -3.300000E-01 -2.630000E-02 -3.300000E-01 -2.630000E-02 -2.500000E-01 -1.790000E-02 -3.000000E-01 -2.140000E-02 -2.400000E-01 -1.340000E-02 -2.400000E-01 -1.340000E-02 -3.000000E-01 -2.140000E-02 -9.000000E-02 -3.300000E-03 -1.100000E-01 -3.300000E-03 -1.100000E-01 -3.300000E-03 -9.000000E-02 -3.300000E-03 -1.600000E-01 -7.400000E-03 -2.200000E-01 -1.240000E-02 -2.200000E-01 -1.240000E-02 -1.600000E-01 -7.400000E-03 -1.000000E-01 -3.000000E-03 -8.000000E-02 -1.400000E-03 -8.000000E-02 -1.400000E-03 -1.000000E-01 -3.000000E-03 -1.900000E-01 -8.700000E-03 -2.800000E-01 -1.820000E-02 -2.800000E-01 -1.820000E-02 -1.900000E-01 -8.700000E-03 -5.600000E-01 -6.740000E-02 -7.100000E-01 -1.083000E-01 -7.100000E-01 -1.083000E-01 -5.600000E-01 -6.740000E-02 -4.500000E-01 -5.550000E-02 -4.100000E-01 -4.150000E-02 -4.100000E-01 -4.150000E-02 -4.500000E-01 -5.550000E-02 -4.100000E-01 -3.550000E-02 -2.900000E-01 -1.970000E-02 -2.900000E-01 -1.970000E-02 -4.100000E-01 -3.550000E-02 -3.000000E-02 -5.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.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 +cd839fac1641aa07af562662f058b954faae5741faece9909e9ff9243f8555caf2d1cd8fa5a73e40afefa9c69718451b8fff970c936bf39f9d336decc0706196 \ No newline at end of file diff --git a/tests/test_filter_mesh_1d/test_filter_mesh_1d.py b/tests/test_filter_mesh_1d/test_filter_mesh_1d.py index ed6addec45..99c2981c2a 100644 --- a/tests/test_filter_mesh_1d/test_filter_mesh_1d.py +++ b/tests/test_filter_mesh_1d/test_filter_mesh_1d.py @@ -3,9 +3,9 @@ import os import sys sys.path.insert(0, os.pardir) -from testing_harness import TestHarness +from testing_harness import HashedTestHarness if __name__ == '__main__': - harness = TestHarness('statepoint.10.*', True) + harness = HashedTestHarness('statepoint.10.*', True) harness.main() diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index 8c010d82e3..b92e1b56bb 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -1,5206 +1 @@ -k-combined: -9.581522E-01 4.261830E-02 -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 -2.486634E-01 -2.561523E-02 -5.574899E-01 -1.049542E-01 -7.713789E-01 -2.948263E-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 -1.149324E-01 -1.320945E-02 -2.001407E+00 -1.600000E+00 -9.572791E-01 -8.942065E-01 -0.000000E+00 -0.000000E+00 -2.501129E-02 -6.255649E-04 -1.484996E-01 -2.205214E-02 -3.079994E-03 -9.486363E-06 -1.090478E+00 -5.381842E-01 -4.235354E+00 -5.638989E+00 -3.267703E-01 -4.763836E-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 -2.465048E-02 -3.049063E-04 -7.159080E-01 -2.988090E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.984785E-01 -1.486414E-01 -9.889831E-01 -3.657975E-01 -1.492571E+00 -6.318792E-01 -6.314497E-01 -1.552199E-01 -2.034493E+00 -1.162774E+00 -1.252153E+00 -4.563949E-01 -3.452042E-02 -1.191659E-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.251028E-01 -1.306358E-02 -2.850134E+00 -2.250972E+00 -2.083542E+00 -1.599782E+00 -3.417016E+00 -2.972256E+00 -1.533605E+00 -8.644495E-01 -1.962807E-01 -2.410165E-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 -4.131352E-01 -6.756111E-02 -2.677440E+00 -2.382024E+00 -5.709899E+00 -7.095076E+00 -4.663027E+00 -5.641430E+00 -1.357567E+00 -4.362757E-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 -3.473499E-01 -1.206520E-01 -5.299733E-01 -2.205463E-01 -4.425042E-01 -5.854257E-02 -9.831996E-01 -4.846833E-01 -8.393183E-03 -7.044551E-05 -4.457483E-01 -5.194318E-02 -1.194169E+00 -4.790398E-01 -1.261505E+00 -7.705206E-01 -2.356462E-01 -3.082678E-02 -3.679762E-01 -1.354065E-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 -1.597805E-01 -1.297695E-02 -1.349846E+00 -6.808561E-01 -2.237774E+00 -1.109643E+00 -4.237107E-01 -6.002592E-02 -0.000000E+00 -0.000000E+00 -5.424180E-02 -2.942173E-03 -1.420269E-01 -2.017163E-02 -1.954689E+00 -9.874394E-01 -1.380025E+00 -4.289689E-01 -5.043842E-02 -2.544034E-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 -1.438568E-01 -1.597365E-02 -6.874433E-01 -2.287801E-01 -7.495196E-01 -1.939234E-01 -8.922533E-01 -2.835397E-01 -7.462571E-02 -5.568996E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.449729E-01 -2.101714E-02 -1.876891E-01 -1.675278E-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 -7.002118E-02 -4.902965E-03 -8.612279E-02 -5.910825E-03 -5.651386E-01 -1.286874E-01 -3.804197E-01 -1.225870E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.355899E-02 -5.550260E-04 -3.214464E-01 -1.033278E-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.474078E-01 -2.172907E-02 -5.128548E-01 -1.258296E-01 -9.004671E-01 -2.791173E-01 -5.729905E-01 -2.680764E-01 -1.009880E-01 -9.392497E-03 -3.174349E-01 -1.007649E-01 -2.560771E-01 -6.557550E-02 -3.571813E-02 -1.275785E-03 -2.222160E-02 -4.937996E-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 -6.386562E-02 -4.078817E-03 -1.379070E+00 -4.300261E-01 -6.485841E+00 -1.046238E+01 -5.509254E-01 -1.200498E-01 -2.424177E+00 -1.613025E+00 -1.260449E+00 -5.881747E-01 -9.262861E-03 -8.580060E-05 -6.588191E-01 -2.543824E-01 -2.028040E-01 -4.112944E-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 -1.040956E+00 -3.089102E-01 -6.743595E+00 -1.135216E+01 -1.494910E+00 -6.327940E-01 -2.226123E+00 -1.203763E+00 -3.147407E+00 -3.333589E+00 -2.505905E-01 -6.279558E-02 -4.171440E-01 -8.701395E-02 -1.417427E+00 -9.671327E-01 -1.398153E-01 -1.954832E-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 -2.905797E-02 -8.443654E-04 -1.237157E+00 -6.284409E-01 -7.681046E-01 -1.896252E-01 -2.444256E-01 -2.804968E-02 -1.939766E+00 -1.132042E+00 -2.021896E+00 -1.425606E+00 -5.136552E-01 -2.638417E-01 -7.735493E-01 -1.575534E-01 -1.453489E+00 -6.697189E-01 -5.089636E-01 -8.836228E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.678278E-01 -2.097037E-02 -5.208007E-01 -2.057626E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.532560E-03 -5.673946E-05 -9.539296E-01 -5.206980E-01 -0.000000E+00 -0.000000E+00 -6.927475E-01 -2.317744E-01 -3.953753E-01 -1.420303E-01 -1.377786E-01 -1.716503E-02 -1.441275E+00 -5.086865E-01 -4.033076E-01 -5.492660E-02 -8.534416E-01 -2.290345E-01 -1.422521E+00 -6.953668E-01 -1.940736E-01 -2.763730E-02 -0.000000E+00 -0.000000E+00 -5.312751E-02 -1.423243E-03 -1.050464E+00 -5.524605E-01 -5.214580E-02 -2.719184E-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 -3.011069E-02 -9.066538E-04 -2.913901E+00 -1.841912E+00 -4.513270E+00 -5.611449E+00 -5.367404E+00 -6.853344E+00 -1.137705E+00 -5.670907E-01 -6.059470E-02 -3.671718E-03 -0.000000E+00 -0.000000E+00 -3.374418E-01 -1.138670E-01 -7.171591E-02 -5.143172E-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 -6.978650E-01 -2.584000E-01 -1.653243E+00 -8.369762E-01 -1.237276E+00 -4.961691E-01 -3.521780E-01 -6.575561E-02 -3.479381E-01 -1.210609E-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 -5.118696E-02 -2.620104E-03 -1.451562E-02 -2.107031E-04 -1.045336E-01 -1.092727E-02 -5.835684E-02 -3.405521E-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 -tally 2: -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -8.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-02 -2.600000E-03 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -9.000000E-02 -2.700000E-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 -8.000000E-02 -2.000000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.100000E-03 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -8.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -7.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -6.000000E-02 -2.600000E-03 -0.000000E+00 -0.000000E+00 -5.000000E-02 -9.000000E-04 -0.000000E+00 -0.000000E+00 -8.000000E-02 -1.800000E-03 -0.000000E+00 -0.000000E+00 -8.000000E-02 -3.000000E-03 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.800000E-03 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.300000E-03 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.300000E-01 -6.300000E-03 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.100000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.700000E-03 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.000000E-03 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -1.500000E-01 -9.500000E-03 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -1.400000E-01 -5.800000E-03 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -9.000000E-02 -1.900000E-03 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -8.000000E-02 -1.800000E-03 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.500000E-03 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.800000E-03 -0.000000E+00 -0.000000E+00 -4.000000E-02 -8.000000E-04 -0.000000E+00 -0.000000E+00 -8.000000E-02 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -8.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.700000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -2.500000E-03 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.900000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.000000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.600000E-03 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -5.000000E-02 -7.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.300000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -3.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.300000E-01 -4.300000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.500000E-03 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.300000E-01 -2.450000E-02 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -2.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 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -8.000000E-02 -2.000000E-03 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -0.000000E+00 -0.000000E+00 -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 -2.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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-01 -4.400000E-03 -0.000000E+00 -0.000000E+00 -5.000000E-02 -7.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.100000E-01 -4.300000E-03 -0.000000E+00 -0.000000E+00 -8.000000E-02 -2.600000E-03 -0.000000E+00 -0.000000E+00 -3.500000E-01 -2.550000E-02 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.700000E-03 -0.000000E+00 -0.000000E+00 -1.300000E-01 -6.100000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.000000E-04 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.500000E-03 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -2.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 -5.000000E-02 -1.300000E-03 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -9.000000E-02 -2.500000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-01 -2.800000E-03 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-01 -2.600000E-03 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.700000E-03 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -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 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.100000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.100000E-03 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -7.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.600000E-03 -0.000000E+00 -0.000000E+00 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -7.000000E-02 -3.700000E-03 -0.000000E+00 -0.000000E+00 -5.000000E-02 -7.000000E-04 -0.000000E+00 -0.000000E+00 -5.000000E-02 -9.000000E-04 -0.000000E+00 -0.000000E+00 -6.000000E-02 -2.000000E-03 -0.000000E+00 -0.000000E+00 -2.400000E-01 -1.420000E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.400000E-03 -0.000000E+00 -0.000000E+00 -2.100000E-01 -1.090000E-02 -0.000000E+00 -0.000000E+00 -9.000000E-02 -4.100000E-03 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -8.000000E-02 -3.400000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -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 -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 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -2.000000E-04 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.900000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -7.000000E-02 -1.100000E-03 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.100000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -5.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -8.000000E-02 -1.400000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +272943b6aaefbfd60201ae2e3f04a76eafe154e97c081acbb6c33673d58a76b64f376762cb3a431f2c95fca00f8b7e086f28c8ee14719766f44578e0acb07a02 \ No newline at end of file diff --git a/tests/test_filter_mesh_2d/test_filter_mesh_2d.py b/tests/test_filter_mesh_2d/test_filter_mesh_2d.py index ed6addec45..99c2981c2a 100644 --- a/tests/test_filter_mesh_2d/test_filter_mesh_2d.py +++ b/tests/test_filter_mesh_2d/test_filter_mesh_2d.py @@ -3,9 +3,9 @@ import os import sys sys.path.insert(0, os.pardir) -from testing_harness import TestHarness +from testing_harness import HashedTestHarness if __name__ == '__main__': - harness = TestHarness('statepoint.10.*', True) + harness = HashedTestHarness('statepoint.10.*', True) harness.main() diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat index e28b201087..505aa5c4d8 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -1,127742 +1 @@ -k-combined: -9.581522E-01 4.261830E-02 -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 -3.784067E-02 -1.431916E-03 -5.718522E-03 -3.270150E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.373020E-01 -2.296999E-01 -1.235293E-01 -1.096341E-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.646162E-01 -2.722494E-02 -3.297202E-01 -5.369813E-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.327761E-01 -1.698166E-02 -4.895403E-02 -2.396497E-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 -2.013954E-02 -4.056009E-04 -1.244176E-01 -1.547973E-02 -6.200444E-02 -3.844551E-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.919075E-02 -1.535915E-03 -1.076125E+00 -3.620665E-01 -1.895015E-01 -3.591083E-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.532992E-02 -5.674596E-03 -2.779035E-01 -3.159893E-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 -1.849679E-01 -3.421312E-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 -4.562052E-01 -1.041492E-01 -9.262861E-03 -8.580060E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.680080E-01 -7.239472E-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 -1.211417E-01 -1.467532E-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 -4.308558E-02 -1.856368E-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 -7.785033E-03 -6.060673E-05 -2.958840E-01 -7.992999E-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 -2.470259E-01 -3.094098E-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 -8.606674E-02 -7.407483E-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 -3.650200E-01 -7.121133E-02 -1.853335E-01 -3.434852E-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 -4.409446E-02 -1.944321E-03 -4.226996E-01 -1.360325E-01 -0.000000E+00 -0.000000E+00 -1.324670E-01 -1.754750E-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 -1.729718E-01 -2.991925E-02 -8.563908E-02 -4.712912E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.039507E-02 -3.647564E-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 -4.254527E-01 -1.810100E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.309308E-01 -5.812760E-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.162108E+00 -5.854785E-01 -1.144903E+00 -4.944036E-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.206585E-01 -1.455847E-02 -5.987372E-02 -2.032332E-03 -1.257462E-01 -1.456033E-02 -2.157774E-03 -4.655990E-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 -2.358169E-02 -5.560962E-04 -1.892565E-01 -3.581801E-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.668276E-01 -2.783144E-02 -1.382909E-01 -1.912437E-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 -1.553405E-01 -1.453017E-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 -5.089221E-02 -2.590017E-03 -2.384503E+00 -1.209500E+00 -4.612134E-01 -1.063957E-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.032011E-01 -1.065047E-02 -2.762615E-01 -3.559292E-02 -1.771223E-02 -3.137232E-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 -2.465169E-02 -6.077057E-04 -2.812104E-01 -7.907926E-02 -7.317899E-02 -5.355165E-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 -2.994456E-02 -8.966764E-04 -9.597166E-01 -3.206571E-01 -2.946064E-02 -8.679293E-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.391190E-01 -2.413267E-02 -0.000000E+00 -0.000000E+00 -3.630182E-02 -1.317822E-03 -7.945599E-03 -6.313254E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.640780E-01 -1.059726E-01 -7.558522E-01 -3.387696E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.753697E-01 -3.075454E-02 -9.929647E-02 -9.859789E-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.755790E-03 -3.082798E-06 -6.310707E-02 -2.175394E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.071175E-01 -5.415795E-02 -3.663834E-02 -8.107316E-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 -3.678545E-02 -1.353169E-03 -4.196949E-01 -8.821556E-02 -6.573174E-01 -3.473163E-01 -1.432122E-01 -1.520012E-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.642655E-02 -9.273189E-03 -5.463078E-01 -1.319680E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.214217E-01 -2.168033E-02 -1.223027E-01 -1.495794E-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.415665E-01 -2.918471E-02 -8.969160E-01 -4.355459E-01 -1.358408E-01 -1.019608E-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.149703E+00 -3.989107E-01 -8.078002E-01 -1.757558E-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.449729E-01 -2.101714E-02 -1.354717E-01 -9.718740E-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 -9.977770E-03 -9.955590E-05 -3.164476E-01 -5.280988E-02 -1.124256E-01 -1.263950E-02 -1.739446E-01 -3.025673E-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.565669E-02 -2.451318E-04 -3.823223E-01 -4.488260E-02 -1.508419E-01 -2.275329E-02 -6.960539E-02 -4.844911E-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 -9.052674E-02 -8.195092E-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.022426E-01 -9.085949E-03 -2.615062E-01 -3.533945E-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 -8.322470E-02 -3.984732E-03 -1.034037E-01 -3.976885E-03 -5.731061E-01 -1.428980E-01 -1.115403E+00 -3.834871E-01 -1.574353E-01 -2.355445E-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 -3.580128E-01 -9.575996E-02 -9.766238E-01 -3.187064E-01 -1.641852E+00 -9.021844E-01 -5.073845E-01 -9.507188E-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 -5.348043E-02 -2.860156E-03 -2.874488E-01 -4.930982E-02 -1.164369E-01 -1.355756E-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 -4.165841E-02 -1.735423E-03 -8.832720E-02 -7.801694E-03 -8.209316E-02 -3.505893E-03 -3.679762E-01 -1.354065E-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 -8.049861E-01 -1.599684E-01 -5.722246E-01 -9.204135E-02 -3.727350E-02 -1.389314E-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 -5.221740E-02 -2.726657E-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 -1.125733E-01 -1.267274E-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 -4.396029E-01 -6.352573E-02 -2.073790E+00 -1.188596E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.200689E-01 -2.392978E-01 -4.156041E+00 -4.315163E+00 -2.887905E-01 -4.216084E-02 -3.721224E-03 -1.384751E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.998387E-02 -7.936690E-03 -3.050953E-01 -3.658881E-02 -0.000000E+00 -0.000000E+00 -1.426667E-01 -2.035380E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.137535E-02 -2.639427E-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.742414E-01 -7.520835E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.027660E-02 -1.056086E-04 -8.945207E-02 -4.272339E-03 -4.274862E-02 -1.827445E-03 -2.729010E-01 -4.130164E-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 -3.011069E-02 -9.066538E-04 -4.871561E-01 -9.900028E-02 -2.263564E+00 -1.440716E+00 -2.844653E+00 -1.857026E+00 -4.871086E-01 -1.359461E-01 -3.788668E-02 -1.435401E-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 -4.290530E-02 -1.295592E-03 -2.593320E-01 -3.729386E-02 -2.357411E-01 -2.637254E-02 -8.896790E-03 -7.915287E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.316492E-02 -1.733152E-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 -1.083669E-01 -1.174340E-02 -2.623543E-01 -4.112454E-02 -3.364085E-01 -6.085429E-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.386562E-02 -4.078817E-03 -5.669837E-01 -1.209384E-01 -9.609431E-01 -2.621642E-01 -8.878742E-02 -7.053770E-03 -2.075806E-02 -4.308970E-04 -4.751513E-01 -1.205013E-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.748649E-01 -1.584562E-02 -1.009424E+00 -3.060875E-01 -4.015408E-01 -7.884715E-02 -7.406533E-02 -5.485672E-03 -8.567983E-02 -7.341033E-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.905797E-02 -8.443654E-04 -1.089115E+00 -5.614559E-01 -1.622477E-01 -1.848987E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.715405E-02 -4.509666E-03 -1.001959E-01 -1.003923E-02 -2.054517E-01 -4.221041E-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 -7.532560E-03 -5.673946E-05 -6.796882E-01 -2.348838E-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 -7.510694E-01 -2.592974E-01 -1.074496E-01 -1.154542E-02 -7.434457E-03 -5.527115E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.399012E+00 -6.326649E-01 -6.206466E-01 -1.107636E-01 -3.432563E-02 -1.076561E-03 -0.000000E+00 -0.000000E+00 -2.270802E-02 -5.156541E-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.262772E-01 -9.802530E-02 -8.510644E-02 -4.903433E-03 -5.896045E-03 -3.476335E-05 -0.000000E+00 -0.000000E+00 -4.847729E-02 -2.350047E-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 -5.835684E-02 -3.405521E-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 -3.508012E-02 -1.230615E-03 -1.429072E-01 -2.042247E-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.491740E-02 -2.225288E-04 -2.985580E-01 -4.742470E-02 -2.715682E-01 -6.930003E-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.046129E-01 -1.094386E-02 -3.355127E-01 -7.824603E-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 -7.002118E-02 -4.902965E-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.904088E-02 -1.524190E-03 -2.258489E-01 -5.100771E-02 -8.236284E-02 -4.869311E-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.423672E-01 -1.771243E-02 -4.350509E-01 -1.399885E-01 -0.000000E+00 -0.000000E+00 -8.573314E-01 -2.242082E-01 -2.686970E-01 -3.401364E-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.330296E+00 -6.633075E-01 -1.754088E+00 -8.632560E-01 -1.701984E-01 -2.896749E-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.805840E-02 -2.309610E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.091381E-02 -5.028768E-03 -0.000000E+00 -0.000000E+00 -4.465012E-01 -1.993633E-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 -1.811100E-01 -3.280084E-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 -4.954942E-01 -1.916582E-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.582984E-01 -2.505838E-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.905640E-01 -8.442745E-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 -4.016991E-02 -1.613622E-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 -3.209188E-02 -1.029889E-03 -1.711788E+00 -1.416936E+00 -1.685770E-02 -2.841820E-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 -8.728851E-03 -7.619284E-05 -1.524559E+00 -7.117855E-01 -2.225245E+00 -1.498774E+00 -1.375452E-01 -1.835673E-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 -4.457483E-01 -5.194318E-02 -4.628619E-01 -9.960982E-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 -5.424180E-02 -2.942173E-03 -1.420269E-01 -2.017163E-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 -2.267546E-01 -2.900091E-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 -1.862835E-02 -3.470153E-04 -7.547884E-04 -5.697055E-07 -8.039207E-02 -6.462885E-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 -1.085624E-02 -1.178580E-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 -1.460448E-01 -2.132907E-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 -1.385333E-02 -1.919148E-04 -4.750552E-01 -9.493583E-02 -4.475531E-02 -2.003038E-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.582575E-01 -2.504545E-02 -7.244018E-01 -2.009724E-01 -1.675068E+00 -7.021248E-01 -1.548403E-01 -2.397552E-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.325684E-01 -5.701948E-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 -1.326035E-02 -1.758368E-04 -1.155931E-01 -1.336177E-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.309870E-02 -1.095524E-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 -2.215622E-02 -4.908983E-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.890902E-02 -1.513911E-03 -1.333296E-03 -1.777678E-06 -5.545269E-01 -1.316670E-01 -9.183632E-01 -2.857440E-01 -3.452042E-02 -1.191659E-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.009713E-01 -3.766430E-02 -4.064749E-01 -9.731066E-02 -7.510889E-01 -3.262838E-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.834594E-02 -3.365736E-04 -5.221919E-01 -2.558641E-01 -6.058351E-02 -1.850615E-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 -1.075776E-01 -1.157294E-02 -1.408841E-01 -9.930494E-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.324866E-01 -1.755269E-02 -2.157489E-01 -2.724501E-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.362142E-01 -5.579715E-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 -7.171591E-02 -5.143172E-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 -3.079994E-03 -9.486363E-06 -2.573597E-01 -5.360516E-02 -7.663116E-02 -5.274654E-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.522719E-01 -2.318672E-02 -1.234218E+00 -4.999181E-01 -6.053656E-02 -3.664676E-03 -3.866882E-01 -1.202701E-01 -4.069831E-03 -1.656352E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.099509E-01 -6.290302E-02 -5.245828E-01 -7.576335E-02 -5.521306E-01 -1.121121E-01 -1.518297E-01 -1.402100E-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.298371E-01 -1.330104E-02 -1.431856E-01 -2.050213E-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.602120E-02 -1.297527E-03 -1.614711E-02 -2.607292E-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 -1.367392E-03 -1.869762E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.028040E-01 -4.112944E-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.876735E-02 -3.142665E-04 -1.266345E+00 -7.682954E-01 -1.355863E-01 -1.838365E-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 -4.894914E-01 -7.732641E-02 -7.546765E-01 -2.070654E-01 -1.481609E-01 -2.195167E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.589438E-01 -2.060098E-02 -4.924729E-01 -2.024222E-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.693310E-02 -6.692041E-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 -2.901092E-02 -8.416334E-04 -6.926635E-01 -2.428256E-01 -5.214580E-02 -2.719184E-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 -1.067391E-01 -1.139323E-02 -2.330690E-01 -5.432115E-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 -3.631683E-01 -1.318912E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.948898E-01 -3.798204E-02 -1.473267E-01 -2.170516E-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.021145E-01 -1.042738E-02 -5.996351E-01 -1.076802E-01 -7.003137E-01 -2.735252E-01 -3.750187E-01 -1.153951E-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 -2.054694E-02 -4.221768E-04 -9.531928E-02 -6.215764E-03 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.315614E-02 -2.242266E-03 -9.974406E-01 -3.947626E-01 -6.997755E-01 -1.672455E-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.613314E-01 -2.177882E-02 -0.000000E+00 -0.000000E+00 -9.028974E-02 -4.229429E-03 -7.462571E-02 -5.568996E-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 -9.683052E-03 -9.376150E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.228981E-03 -1.788428E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.883980E-03 -7.892509E-05 -2.832772E-02 -8.024597E-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 -3.591875E-02 -1.290157E-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 -5.993460E-03 -3.592156E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.374400E-01 -1.888975E-02 -1.770925E-01 -1.577698E-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.699969E-01 -4.178442E-02 -7.084057E-01 -1.536166E-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 -5.118696E-02 -2.620104E-03 -1.451562E-02 -2.107031E-04 -5.751275E-02 -3.307717E-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 -2.397100E-02 -5.746090E-04 -1.165202E-01 -6.930471E-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 -5.230381E-02 -2.735689E-03 -4.899885E-02 -2.400887E-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.526715E-02 -2.330858E-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 -4.241176E-01 -9.055699E-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 -1.715160E-01 -1.827795E-02 -3.979721E-01 -1.307262E-01 -2.136983E-01 -4.566698E-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 -3.699789E-01 -1.099867E-01 -2.906510E-01 -2.666266E-02 -4.420414E-02 -1.954006E-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 -6.974266E-02 -4.864039E-03 -3.006400E-01 -3.566201E-02 -9.975381E-01 -3.048346E-01 -1.525008E-01 -1.765369E-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 -3.896367E-02 -1.518168E-03 -4.750135E-01 -1.508282E-01 -6.670089E-01 -1.688817E-01 -8.019636E-01 -2.406005E-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 -2.396759E-03 -5.744454E-06 -3.936907E-01 -7.202022E-02 -3.707367E-01 -1.159281E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.355899E-02 -5.550260E-04 -2.878871E-01 -8.287897E-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.524618E-01 -6.373694E-02 -1.453317E-02 -2.112130E-04 -2.222160E-02 -4.937996E-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 -5.015914E-02 -2.515940E-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 -8.266086E-02 -6.832818E-03 -1.019759E-02 -1.039909E-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 -2.927144E-03 -8.568173E-06 -8.685372E-02 -7.543569E-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 -3.206602E-02 -8.744271E-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 -1.590867E-03 -2.530859E-06 -5.000909E-01 -1.141659E-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 -4.702083E-02 -2.210958E-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 -1.667122E-01 -1.609363E-02 -2.882401E-01 -4.938325E-02 -1.186127E-01 -1.335481E-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 -5.802912E-01 -1.787062E-01 -2.509994E-01 -3.312022E-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.071904E-01 -2.889953E-02 -3.636704E-02 -1.322562E-03 -4.636650E-02 -2.149852E-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.023202E+00 -7.786623E-01 -3.230798E-01 -3.896399E-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.698392E-01 -1.770322E-02 -1.047304E-01 -5.484511E-03 -0.000000E+00 -0.000000E+00 -9.764118E-02 -9.533800E-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 -5.319541E-03 -2.829752E-05 -1.034262E-01 -6.886191E-03 -4.038686E-02 -1.631098E-03 -9.389954E-01 -4.408852E-01 -8.393183E-03 -7.044551E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.176521E-02 -2.679637E-03 -5.390926E-01 -9.312562E-02 -2.712099E-01 -3.687123E-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.048931E-01 -7.753447E-03 -5.109842E-02 -1.598239E-03 -8.251077E-02 -3.717992E-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 -8.372603E-02 -5.869219E-03 -1.714479E-01 -1.505049E-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.355929E-02 -1.126226E-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.615369E-03 -1.307089E-05 -2.118496E-02 -4.488027E-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 -5.411503E-04 -2.928436E-07 -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.972802E-01 -2.058844E-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 -8.619416E-02 -6.961721E-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.164981E-01 -1.357181E-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 -2.682268E-01 -7.194562E-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.786607E-02 -3.191964E-04 -2.870320E-01 -4.518339E-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 -2.501129E-02 -6.255649E-04 -1.484996E-01 -2.205214E-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 -8.907152E-02 -7.933735E-03 -1.077088E-01 -1.160118E-02 -0.000000E+00 -0.000000E+00 -1.962851E-01 -3.852783E-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.978887E-01 -2.156289E-01 -2.621971E-01 -4.860489E-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.630962E-02 -2.320465E-03 -9.867531E-02 -9.736817E-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 -3.420304E-01 -1.169848E-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 -2.688171E-02 -7.226262E-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 -1.722215E-02 -2.966024E-04 -1.480967E+00 -5.223269E-01 -1.561576E-01 -2.112454E-02 -3.978837E-01 -1.583114E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.137979E-02 -1.294997E-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 -3.036511E-02 -9.220402E-04 -3.308084E-01 -5.110266E-02 -5.595964E-02 -2.146289E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.219441E-01 -1.487035E-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 -9.373673E-02 -4.377147E-03 -7.403983E-02 -3.220776E-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 -3.448095E-01 -5.774877E-02 -1.370265E-01 -1.583751E-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.306116E-02 -1.705939E-04 -6.033873E-01 -2.672168E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.094070E-01 -8.793386E-02 -4.867319E-01 -8.396510E-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.251028E-01 -1.306358E-02 -2.410067E-01 -5.808423E-02 -4.089938E-03 -9.542099E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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.381770E-02 -1.919990E-03 -7.711190E-02 -5.946245E-03 -1.009880E-01 -9.392497E-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.727443E-01 -1.798769E-02 -1.640942E-01 -2.692690E-02 -7.475045E-01 -2.090484E-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.004281E-01 -2.595071E-02 -3.159701E-01 -3.538768E-02 -5.329778E-01 -1.118275E-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.220497E-01 -1.051103E-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 -5.069737E-01 -1.407934E-01 -7.471872E-02 -5.582887E-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 -tally 2: -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.000000E-03 -3.000000E-02 -9.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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-02 -1.800000E-03 -5.000000E-02 -1.700000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -3.000000E-02 -9.000000E-04 -3.000000E-02 -5.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -5.000000E-02 -1.700000E-03 -6.000000E-02 -1.800000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -3.000000E-02 -9.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -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 -4.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.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 -2.000000E-02 -4.000000E-04 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -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 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -8.000000E-04 -4.000000E-02 -1.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -3.000000E-02 -5.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -4.000000E-02 -1.000000E-03 -4.000000E-02 -8.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -2.000000E-04 -4.000000E-02 -8.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -4.000000E-02 -8.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -7.000000E-02 -2.100000E-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 -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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -2.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 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -2.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 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -4.000000E-02 -1.000000E-03 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -3.000000E-04 -3.000000E-02 -5.000000E-04 -2.000000E-02 -2.000000E-04 -3.000000E-02 -5.000000E-04 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -4.000000E-02 -1.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -5.000000E-04 -3.000000E-02 -3.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.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 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-02 -1.000000E-03 -3.000000E-02 -3.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -3.000000E-04 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -8.000000E-04 -6.000000E-02 -1.200000E-03 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.200000E-03 -4.000000E-02 -8.000000E-04 -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 -1.000000E-02 -1.000000E-04 -7.000000E-02 -2.100000E-03 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -6.000000E-02 -2.000000E-03 -4.000000E-02 -1.000000E-03 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -4.000000E-02 -1.000000E-03 -2.000000E-02 -4.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -4.000000E-02 -8.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -4.000000E-02 -8.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -3.000000E-02 -3.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 -8.000000E-02 -3.800000E-03 -9.000000E-02 -1.900000E-03 -3.000000E-02 -3.000000E-04 -4.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -3.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -6.000000E-02 -1.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -3.000000E-02 -3.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -7.000000E-02 -1.900000E-03 -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 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -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 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -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 -3.000000E-02 -3.000000E-04 -3.000000E-02 -3.000000E-04 -4.000000E-02 -1.000000E-03 -6.000000E-02 -2.000000E-03 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -2.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -4.000000E-02 -8.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -4.000000E-02 -8.000000E-04 -2.000000E-02 -2.000000E-04 -3.000000E-02 -5.000000E-04 -4.000000E-02 -8.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -3.000000E-04 -2.000000E-02 -2.000000E-04 -4.000000E-02 -1.000000E-03 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -4.000000E-02 -8.000000E-04 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -3.000000E-04 -3.000000E-02 -3.000000E-04 -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 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -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 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -3.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.000000E-02 -1.900000E-03 -8.000000E-02 -3.800000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -3.000000E-02 -3.000000E-04 -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 -6.000000E-02 -1.400000E-03 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -3.000000E-04 -7.000000E-02 -2.100000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -7.000000E-02 -2.100000E-03 -3.000000E-02 -3.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 -1.800000E-01 -7.400000E-03 -1.700000E-01 -7.500000E-03 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -7.000000E-02 -1.900000E-03 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -3.500000E-03 -1.000000E-01 -3.600000E-03 -2.000000E-02 -2.000000E-04 -4.000000E-02 -6.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 -1.000000E-02 -1.000000E-04 -3.000000E-02 -9.000000E-04 -1.000000E-01 -3.600000E-03 -9.000000E-02 -3.500000E-03 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -1.700000E-01 -7.500000E-03 -1.800000E-01 -7.400000E-03 -5.000000E-02 -1.100000E-03 -5.000000E-02 -1.300000E-03 -7.000000E-02 -1.900000E-03 -4.000000E-02 -6.000000E-04 -7.000000E-02 -1.500000E-03 -4.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.000000E-04 -4.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.300000E-03 -5.000000E-02 -1.100000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -3.000000E-02 -3.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -4.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 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -1.800000E-01 -8.200000E-03 -1.800000E-01 -7.400000E-03 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -4.000000E-02 -6.000000E-04 -1.800000E-01 -7.400000E-03 -1.800000E-01 -8.200000E-03 -3.000000E-02 -9.000000E-04 -3.000000E-02 -5.000000E-04 -3.000000E-02 -3.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -3.000000E-02 -5.000000E-04 -3.000000E-02 -9.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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.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 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -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 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.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 -3.000000E-02 -9.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.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 -2.000000E-02 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.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 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -9.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -9.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -4.000000E-02 -6.000000E-04 -7.000000E-02 -1.900000E-03 -4.000000E-02 -1.600000E-03 -6.000000E-02 -1.800000E-03 -1.000000E-02 -1.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 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -3.000000E-02 -9.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -7.000000E-02 -2.700000E-03 -5.000000E-02 -1.100000E-03 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -4.000000E-02 -4.000000E-04 -7.000000E-02 -1.500000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.100000E-03 -7.000000E-02 -2.700000E-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 -4.000000E-02 -1.600000E-03 -3.000000E-02 -9.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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -2.000000E-02 -4.000000E-04 -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 -2.000000E-02 -4.000000E-04 -2.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 -2.000000E-02 -4.000000E-04 -2.000000E-02 -2.000000E-04 -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 -2.000000E-02 -4.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.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 -2.000000E-02 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -3.000000E-02 -9.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -5.000000E-04 -3.000000E-02 -5.000000E-04 -3.000000E-02 -5.000000E-04 -2.000000E-02 -2.000000E-04 -6.000000E-02 -1.800000E-03 -4.000000E-02 -8.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -3.000000E-02 -5.000000E-04 -4.000000E-02 -8.000000E-04 -3.000000E-02 -5.000000E-04 -3.000000E-02 -5.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 -1.000000E-02 -1.000000E-04 -4.000000E-02 -6.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -4.000000E-02 -8.000000E-04 -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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -2.000000E-02 -4.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 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -1.000000E-02 -1.000000E-04 -3.000000E-02 -5.000000E-04 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -5.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 -3.000000E-02 -5.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -3.000000E-02 -9.000000E-04 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -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 -1.000000E-02 -1.000000E-04 -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 -6.000000E-02 -1.800000E-03 -4.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 -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 -2.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.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 -3.000000E-02 -3.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -3.000000E-02 -9.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.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 -3.000000E-02 -9.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -8.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.100000E-03 -5.000000E-02 -1.700000E-03 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-01 -3.600000E-03 -8.000000E-02 -5.000000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -3.000000E-02 -3.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.000000E-03 -8.000000E-02 -2.600000E-03 -8.000000E-02 -5.000000E-03 -1.000000E-01 -3.600000E-03 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.700000E-03 -5.000000E-02 -1.100000E-03 -3.000000E-02 -5.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -3.000000E-02 -5.000000E-04 -7.000000E-02 -1.900000E-03 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -3.000000E-02 -3.000000E-04 -3.000000E-02 -3.000000E-04 -2.000000E-02 -2.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 -3.000000E-02 -3.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -1.000000E-02 -1.000000E-04 -4.000000E-02 -6.000000E-04 -3.000000E-02 -3.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 -2.000000E-02 -4.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -6.000000E-02 -1.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 -8.000000E-02 -2.600000E-03 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.200000E-03 -4.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -5.000000E-04 -1.000000E-02 -1.000000E-04 -4.000000E-02 -1.000000E-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 -1.000000E-02 -1.000000E-04 -2.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -1.000000E-02 -1.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 -4.000000E-02 -8.000000E-04 -5.000000E-02 -1.300000E-03 -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 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -2.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -3.000000E-02 -5.000000E-04 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.000000E-03 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.300000E-03 -4.000000E-02 -8.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.000000E-04 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -3.000000E-02 -9.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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.600000E-03 -4.000000E-02 -1.600000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.600000E-03 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.600000E-03 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.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 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.100000E-03 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -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 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -3.000000E-04 -2.000000E-02 -4.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 -3.000000E-02 -9.000000E-04 -2.000000E-02 -4.000000E-04 -3.000000E-02 -3.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -5.000000E-02 -1.100000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -4.000000E-02 -1.000000E-03 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -5.000000E-04 -2.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 -2.000000E-02 -4.000000E-04 -3.000000E-02 -9.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -3.000000E-02 -5.000000E-04 -3.000000E-02 -9.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.000000E-03 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -3.000000E-02 -9.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 -1.000000E-02 -1.000000E-04 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -8.000000E-04 -7.000000E-02 -1.700000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -7.000000E-02 -1.700000E-03 -4.000000E-02 -8.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.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 -4.000000E-02 -1.600000E-03 -4.000000E-02 -1.600000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -3.000000E-02 -9.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -3.000000E-02 -3.000000E-04 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -2.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 -3.000000E-02 -9.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -1.300000E-03 -3.000000E-02 -5.000000E-04 -2.000000E-02 -2.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 -1.000000E-02 -1.000000E-04 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.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 -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 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -4.000000E-04 -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 -2.000000E-02 -4.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 -2.000000E-02 -2.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -2.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.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 -1.000000E-02 -1.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 -7.000000E-02 -1.900000E-03 -6.000000E-02 -1.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -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 -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 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -3.000000E-02 -9.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -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 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.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 -2.000000E-02 -2.000000E-04 -3.000000E-02 -3.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.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 -3.000000E-02 -9.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -2.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -3.000000E-02 -5.000000E-04 -2.000000E-02 -4.000000E-04 -3.000000E-02 -5.000000E-04 -5.000000E-02 -1.300000E-03 -1.000000E-02 -1.000000E-04 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -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 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -3.000000E-02 -5.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -5.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -4.000000E-02 -6.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -3.000000E-02 -5.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -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 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -3.000000E-02 -5.000000E-04 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -4.000000E-04 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.400000E-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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -2.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 -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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -3.000000E-02 -5.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -3.000000E-02 -9.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -5.000000E-04 -3.000000E-02 -5.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -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 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -4.000000E-02 -1.000000E-03 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -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 -0.000000E+00 -0.000000E+00 -3.000000E-02 -5.000000E-04 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -5.000000E-04 -3.000000E-02 -9.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -3.000000E-02 -9.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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.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 -0.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 -2.000000E-02 -2.000000E-04 -2.000000E-02 -4.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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -2.000000E-02 -4.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -9.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -3.000000E-02 -9.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -4.000000E-02 -1.000000E-03 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.000000E-04 -2.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -2.000000E-04 -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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -9.000000E-04 -6.000000E-02 -1.400000E-03 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.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 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.400000E-03 -5.000000E-02 -9.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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.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 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -6.000000E-02 -2.600000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-02 -1.400000E-03 -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 -1.000000E-02 -1.000000E-04 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-02 -2.600000E-03 -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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -9.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -1.600000E-03 -3.000000E-02 -9.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -4.000000E-02 -6.000000E-04 -5.000000E-02 -7.000000E-04 -2.000000E-02 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -4.000000E-04 -2.000000E-02 -4.000000E-04 -3.000000E-02 -9.000000E-04 -4.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 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -7.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 -3.000000E-02 -5.000000E-04 -2.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.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 -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 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -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 -2.000000E-02 -4.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 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +9745cbccf9f7ecb9e95e0cd23f84df6ccceb28df02b6b881f80e6b297d1b9503e4226ef26699bb110306637c84ab71545048b84579dbc450db8311a35bb24c64 \ No newline at end of file diff --git a/tests/test_filter_mesh_3d/test_filter_mesh_3d.py b/tests/test_filter_mesh_3d/test_filter_mesh_3d.py index ed6addec45..99c2981c2a 100644 --- a/tests/test_filter_mesh_3d/test_filter_mesh_3d.py +++ b/tests/test_filter_mesh_3d/test_filter_mesh_3d.py @@ -3,9 +3,9 @@ import os import sys sys.path.insert(0, os.pardir) -from testing_harness import TestHarness +from testing_harness import HashedTestHarness if __name__ == '__main__': - harness = TestHarness('statepoint.10.*', True) + harness = HashedTestHarness('statepoint.10.*', True) harness.main() From c14ac4773695d020f93f22a5108d849a5acc2893 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 5 Sep 2016 12:32:06 -0400 Subject: [PATCH 375/417] removed write_message import in tally.F90 --- src/tally.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tally.F90 b/src/tally.F90 index 9d8b5bc0c7..e46d0cee7b 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -10,7 +10,7 @@ module tally mesh_intersects_1d, mesh_intersects_2d, & mesh_intersects_3d use mesh_header, only: RegularMesh - use output, only: header, write_message + use output, only: header use particle_header, only: LocalCoord, Particle use search, only: binary_search use string, only: to_str From 7747678068ea2d3e0554b8aa8aa12f2d039cc355 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 5 Sep 2016 14:43:47 -0400 Subject: [PATCH 376/417] changed k_fission to kappa_fission in mg pincell xml input --- .../pincell_multigroup/mg_cross_sections.xml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/xml/pincell_multigroup/mg_cross_sections.xml b/examples/xml/pincell_multigroup/mg_cross_sections.xml index 3c671a1922..9e46a4811e 100644 --- a/examples/xml/pincell_multigroup/mg_cross_sections.xml +++ b/examples/xml/pincell_multigroup/mg_cross_sections.xml @@ -40,9 +40,9 @@ - + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 - + @@ -100,9 +100,9 @@ - + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 - + @@ -156,9 +156,9 @@ - + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 - + @@ -212,9 +212,9 @@ - + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 - + @@ -262,9 +262,9 @@ - + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 - + From b91f28922abdb28c5a2f35544e7d930345c3d059 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 6 Sep 2016 07:56:09 -0400 Subject: [PATCH 377/417] updated test results for mesh filter 1d and current score --- tests/test_filter_mesh_1d/results_true.dat | 175 +++++++++++++++++- .../test_filter_mesh_1d.py | 4 +- tests/test_score_current/results_true.dat | 2 +- 3 files changed, 177 insertions(+), 4 deletions(-) diff --git a/tests/test_filter_mesh_1d/results_true.dat b/tests/test_filter_mesh_1d/results_true.dat index 8a69fe0745..29fc5f1301 100644 --- a/tests/test_filter_mesh_1d/results_true.dat +++ b/tests/test_filter_mesh_1d/results_true.dat @@ -1 +1,174 @@ -cd839fac1641aa07af562662f058b954faae5741faece9909e9ff9243f8555caf2d1cd8fa5a73e40afefa9c69718451b8fff970c936bf39f9d336decc0706196 \ No newline at end of file +k-combined: +9.581522E-01 4.261830E-02 +tally 1: +0.000000E+00 +0.000000E+00 +2.478640E-01 +6.143655E-02 +5.333571E+00 +7.576807E+00 +1.835243E+01 +7.767570E+01 +7.645679E+00 +1.417005E+01 +1.089665E+01 +2.529337E+01 +1.039660E+01 +2.336163E+01 +1.058091E+01 +2.339532E+01 +1.533977E+01 +4.881187E+01 +2.336757E+01 +1.136090E+02 +2.005142E+01 +9.280736E+01 +6.391589E+00 +8.560759E+00 +4.529351E-01 +1.762625E-01 +5.583971E-01 +1.790554E-01 +1.642981E+00 +1.466963E+00 +5.214580E-02 +2.719184E-03 +0.000000E+00 +0.000000E+00 +tally 2: +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +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 +2.500000E-03 +0.000000E+00 +0.000000E+00 +4.000000E-02 +1.600000E-03 +0.000000E+00 +0.000000E+00 +3.300000E-01 +2.630000E-02 +0.000000E+00 +0.000000E+00 +2.500000E-01 +1.790000E-02 +0.000000E+00 +0.000000E+00 +2.400000E-01 +1.340000E-02 +0.000000E+00 +0.000000E+00 +3.000000E-01 +2.140000E-02 +0.000000E+00 +0.000000E+00 +1.100000E-01 +3.300000E-03 +0.000000E+00 +0.000000E+00 +9.000000E-02 +3.300000E-03 +0.000000E+00 +0.000000E+00 +2.200000E-01 +1.240000E-02 +0.000000E+00 +0.000000E+00 +1.600000E-01 +7.400000E-03 +0.000000E+00 +0.000000E+00 +8.000000E-02 +1.400000E-03 +0.000000E+00 +0.000000E+00 +1.000000E-01 +3.000000E-03 +0.000000E+00 +0.000000E+00 +2.800000E-01 +1.820000E-02 +0.000000E+00 +0.000000E+00 +1.900000E-01 +8.700000E-03 +0.000000E+00 +0.000000E+00 +7.100000E-01 +1.083000E-01 +0.000000E+00 +0.000000E+00 +5.600000E-01 +6.740000E-02 +0.000000E+00 +0.000000E+00 +4.100000E-01 +4.150000E-02 +0.000000E+00 +0.000000E+00 +4.500000E-01 +5.550000E-02 +0.000000E+00 +0.000000E+00 +2.900000E-01 +1.970000E-02 +0.000000E+00 +0.000000E+00 +4.100000E-01 +3.550000E-02 +0.000000E+00 +0.000000E+00 +2.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +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 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +2.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 diff --git a/tests/test_filter_mesh_1d/test_filter_mesh_1d.py b/tests/test_filter_mesh_1d/test_filter_mesh_1d.py index 99c2981c2a..ed6addec45 100644 --- a/tests/test_filter_mesh_1d/test_filter_mesh_1d.py +++ b/tests/test_filter_mesh_1d/test_filter_mesh_1d.py @@ -3,9 +3,9 @@ import os import sys sys.path.insert(0, os.pardir) -from testing_harness import HashedTestHarness +from testing_harness import TestHarness if __name__ == '__main__': - harness = HashedTestHarness('statepoint.10.*', True) + harness = TestHarness('statepoint.10.*', True) harness.main() diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index cf139cce24..4b7833e85e 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -6e432700c1fb8641d106471f1fd19a0bf0f00f8b03a97131f2d73732c5a8eea48edf910c7b27b83058a7914c47c29dc7e7899b7dbb83485309b4f7d9f20471d2 \ No newline at end of file +05f3d67355e823afe6c8f3a721a2a7b9468f128bd14eace44aa7b85f8b6535e099cb27219dd88b9b1a242d36cc5cefd6d4c4f3549f0463120837e6c6b57650e7 \ No newline at end of file From c1c2fe818bd9f8e2c49239eb57ee4cfe2724dacc Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 6 Sep 2016 08:35:29 -0400 Subject: [PATCH 378/417] updated current names dict in filter.py --- openmc/filter.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 4961ce7252..25055c671a 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -17,12 +17,12 @@ _FILTER_TYPES = ['universe', 'material', 'cell', 'cellborn', 'surface', 'mesh', 'energy', 'energyout', 'mu', 'polar', 'azimuthal', 'distribcell', 'delayedgroup'] -_CURRENT_NAMES = {1: 'x-min out', 2: 'x-max out', - 3: 'y-min out', 4: 'y-max out', - 5: 'z-min out', 6: 'z-max out', - 7: 'x-min in', 8: 'x-max in', - 9: 'y-min in', 10: 'y-max in', - 11: 'z-min in', 12: 'z-max in'} +_CURRENT_NAMES = {1: 'x-min out', 2: 'x-min in', + 3: 'x-max out', 4: 'x-max in', + 5: 'y-min out', 6: 'y-min in', + 7: 'y-max out', 8: 'y-max in', + 9: 'z-min out', 10: 'z-min in', + 11: 'z-max out', 12: 'z-max in'} class Filter(object): """A filter used to constrain a tally to a specific criterion, e.g. only From 7936b04683123120174082df96ed37e97e055042 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 6 Sep 2016 08:45:39 -0400 Subject: [PATCH 379/417] implemented decay rate tally --- docs/source/io_formats/nuclear_data.rst | 2 +- .../pythonapi/examples/mdgxs-part-i.ipynb | 552 ++++++++++++------ docs/source/usersguide/input.rst | 5 + openmc/mgxs/mdgxs.py | 159 ++++- src/constants.F90 | 5 +- src/endf.F90 | 2 + src/input_xml.F90 | 38 +- src/output.F90 | 1 + src/tally.F90 | 139 +++++ .../inputs_true.dat | 2 +- .../results_true.dat | 21 + .../inputs_true.dat | 2 +- .../results_true.dat | 7 + tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 39 ++ tests/test_mgxs_library_mesh/inputs_true.dat | 2 +- tests/test_mgxs_library_mesh/results_true.dat | 26 + .../inputs_true.dat | 2 +- .../results_true.dat | 39 ++ 19 files changed, 817 insertions(+), 228 deletions(-) diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index 7ad80b2fcd..fefdf696df 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -133,7 +133,7 @@ Reaction Products :Attributes: - **particle** (*char[]*) -- Type of particle - **emission_mode** (*char[]*) -- Emission mode (prompt, delayed, total) - - **decay_rate** (*double*) -- Rate of decay in inverse seconds + - **decay_rate** (*double*) -- Rate of decay in inverse shakes - **n_distribution** (*int*) -- Number of angle/energy distributions :Datasets: diff --git a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb index 5d65a0a202..f2d81b10a3 100644 --- a/docs/source/pythonapi/examples/mdgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mdgxs-part-i.ipynb @@ -387,6 +387,7 @@ "* `DelayedNuFissionXS`\n", "* `ChiDelayed`\n", "* `Beta`\n", + "* `DecayRate`\n", "\n", "These classes provide us with an interface to generate the tally inputs as well as perform post-processing of OpenMC's tally data to compute the respective multi-group cross sections. In this case, let's create the multi-group chi-prompt, chi-delayed, and prompt-nu-fission cross sections with our 100-energy-group structure and multi-group delayed-nu-fission and beta cross sections with our 100-energy-group and 6-delayed-group structures. " ] @@ -405,19 +406,21 @@ "chi_delayed = mgxs.ChiDelayed(domain=cell, energy_groups=energy_groups, by_nuclide=True)\n", "delayed_nu_fission = mgxs.DelayedNuFissionXS(domain=cell, energy_groups=energy_groups, delayed_groups=delayed_groups, by_nuclide=True)\n", "beta = mgxs.Beta(domain=cell, energy_groups=energy_groups, delayed_groups=delayed_groups, by_nuclide=True)\n", + "decay_rate = mgxs.DecayRate(domain=cell, energy_groups=one_group, delayed_groups=delayed_groups, by_nuclide=True)\n", "\n", "chi_prompt.nuclides = ['U235', 'Pu239']\n", "prompt_nu_fission.nuclides = ['U235', 'Pu239']\n", "chi_delayed.nuclides = ['U235', 'Pu239']\n", "delayed_nu_fission.nuclides = ['U235', 'Pu239']\n", - "beta.nuclides = ['U235', 'Pu239']" + "beta.nuclides = ['U235', 'Pu239']\n", + "decay_rate.nuclides = ['U235', 'Pu239']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Each multi-group cross section object stores its tallies in a Python dictionary called `tallies`. We can inspect the tallies in the dictionary for our `Beta` object as follows. " + "Each multi-group cross section object stores its tallies in a Python dictionary called `tallies`. We can inspect the tallies in the dictionary for our `Decay Rate` object as follows. " ] }, { @@ -430,74 +433,25 @@ { "data": { "text/plain": [ - "OrderedDict([('nu-fission', Tally\n", + "OrderedDict([('delayed-nu-fission', Tally\n", " \tID =\t10000\n", " \tName =\t\n", " \tFilters =\t\n", " \t\tcell\t[1]\n", - " \t\tenergy\t[ 1.00000000e-09 1.26765187e-09 1.60694125e-09 2.03704208e-09\n", - " 2.58226019e-09 3.27340695e-09 4.14954043e-09 5.26017266e-09\n", - " 6.66806769e-09 8.45278845e-09 1.07151931e-08 1.35831345e-08\n", - " 1.72186857e-08 2.18272991e-08 2.76694165e-08 3.50751874e-08\n", - " 4.44631267e-08 5.63637656e-08 7.14496326e-08 9.05732601e-08\n", - " 1.14815362e-07 1.45545908e-07 1.84501542e-07 2.33883724e-07\n", - " 2.96483139e-07 3.75837404e-07 4.76430987e-07 6.03948629e-07\n", - " 7.65596607e-07 9.70509967e-07 1.23026877e-06 1.55955250e-06\n", - " 1.97696964e-06 2.50610925e-06 3.17687407e-06 4.02717034e-06\n", - " 5.10505000e-06 6.47142616e-06 8.20351544e-06 1.03992017e-05\n", - " 1.31825674e-05 1.67109061e-05 2.11836114e-05 2.68534445e-05\n", - " 3.40408190e-05 4.31519077e-05 5.47015963e-05 6.93425806e-05\n", - " 8.79022517e-05 1.11429453e-04 1.41253754e-04 1.79060585e-04\n", - " 2.26986485e-04 2.87739841e-04 3.64753947e-04 4.62381021e-04\n", - " 5.86138165e-04 7.43019138e-04 9.41889597e-04 1.19398810e-03\n", - " 1.51356125e-03 1.91866874e-03 2.43220401e-03 3.08318795e-03\n", - " 3.90840896e-03 4.95450191e-03 6.28058359e-03 7.96159350e-03\n", - " 1.00925289e-02 1.27938130e-02 1.62181010e-02 2.05589060e-02\n", - " 2.60615355e-02 3.30369541e-02 4.18793565e-02 5.30884444e-02\n", - " 6.72976656e-02 8.53100114e-02 1.08143395e-01 1.37088177e-01\n", - " 1.73780083e-01 2.20292646e-01 2.79254384e-01 3.53997341e-01\n", - " 4.48745390e-01 5.68852931e-01 7.21107479e-01 9.14113241e-01\n", - " 1.15877736e+00 1.46892628e+00 1.86208714e+00 2.36047823e+00\n", - " 2.99226464e+00 3.79314985e+00 4.80839348e+00 6.09536897e+00\n", - " 7.72680585e+00 9.79489985e+00 1.24165231e+01 1.57398286e+01\n", - " 1.99526231e+01]\n", + " \t\tdelayedgroup\t[1 2 3 4 5 6]\n", + " \t\tenergy\t[ 1.00000000e-09 1.99526231e+01]\n", " \tNuclides =\tU235 Pu239 \n", - " \tScores =\t['nu-fission']\n", - " \tEstimator =\ttracklength), ('delayed-nu-fission', Tally\n", + " \tScores =\t['delayed-nu-fission']\n", + " \tEstimator =\tanalog), ('decay-rate', Tally\n", " \tID =\t10001\n", " \tName =\t\n", " \tFilters =\t\n", " \t\tcell\t[1]\n", " \t\tdelayedgroup\t[1 2 3 4 5 6]\n", - " \t\tenergy\t[ 1.00000000e-09 1.26765187e-09 1.60694125e-09 2.03704208e-09\n", - " 2.58226019e-09 3.27340695e-09 4.14954043e-09 5.26017266e-09\n", - " 6.66806769e-09 8.45278845e-09 1.07151931e-08 1.35831345e-08\n", - " 1.72186857e-08 2.18272991e-08 2.76694165e-08 3.50751874e-08\n", - " 4.44631267e-08 5.63637656e-08 7.14496326e-08 9.05732601e-08\n", - " 1.14815362e-07 1.45545908e-07 1.84501542e-07 2.33883724e-07\n", - " 2.96483139e-07 3.75837404e-07 4.76430987e-07 6.03948629e-07\n", - " 7.65596607e-07 9.70509967e-07 1.23026877e-06 1.55955250e-06\n", - " 1.97696964e-06 2.50610925e-06 3.17687407e-06 4.02717034e-06\n", - " 5.10505000e-06 6.47142616e-06 8.20351544e-06 1.03992017e-05\n", - " 1.31825674e-05 1.67109061e-05 2.11836114e-05 2.68534445e-05\n", - " 3.40408190e-05 4.31519077e-05 5.47015963e-05 6.93425806e-05\n", - " 8.79022517e-05 1.11429453e-04 1.41253754e-04 1.79060585e-04\n", - " 2.26986485e-04 2.87739841e-04 3.64753947e-04 4.62381021e-04\n", - " 5.86138165e-04 7.43019138e-04 9.41889597e-04 1.19398810e-03\n", - " 1.51356125e-03 1.91866874e-03 2.43220401e-03 3.08318795e-03\n", - " 3.90840896e-03 4.95450191e-03 6.28058359e-03 7.96159350e-03\n", - " 1.00925289e-02 1.27938130e-02 1.62181010e-02 2.05589060e-02\n", - " 2.60615355e-02 3.30369541e-02 4.18793565e-02 5.30884444e-02\n", - " 6.72976656e-02 8.53100114e-02 1.08143395e-01 1.37088177e-01\n", - " 1.73780083e-01 2.20292646e-01 2.79254384e-01 3.53997341e-01\n", - " 4.48745390e-01 5.68852931e-01 7.21107479e-01 9.14113241e-01\n", - " 1.15877736e+00 1.46892628e+00 1.86208714e+00 2.36047823e+00\n", - " 2.99226464e+00 3.79314985e+00 4.80839348e+00 6.09536897e+00\n", - " 7.72680585e+00 9.79489985e+00 1.24165231e+01 1.57398286e+01\n", - " 1.99526231e+01]\n", + " \t\tenergy\t[ 1.00000000e-09 1.99526231e+01]\n", " \tNuclides =\tU235 Pu239 \n", - " \tScores =\t['delayed-nu-fission']\n", - " \tEstimator =\ttracklength)])" + " \tScores =\t['decay-rate']\n", + " \tEstimator =\tanalog)])" ] }, "execution_count": 13, @@ -506,7 +460,7 @@ } ], "source": [ - "beta.tallies" + "decay_rate.tallies" ] }, { @@ -542,6 +496,9 @@ "# Add beta tallies to the tallies file\n", "tallies_file += beta.tallies.values()\n", "\n", + "# Add decay rate tallies to the tallies file\n", + "tallies_file += decay_rate.tallies.values()\n", + "\n", "# Export to \"tallies.xml\"\n", "tallies_file.export_to_xml()" ] @@ -565,24 +522,37 @@ "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", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", + " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%%%%%%\n", + " ##################### %%%%%%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%\n", + " ################# %%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%\n", + " ############ %%%%%%%%%%%%%%%\n", + " ######## %%%%%%%%%%%%%%\n", + " %%%%%%%%%%%\n", "\n", - " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.io/en/latest/license.html\n", - " Version: 0.8.0\n", - " Git SHA1: c21ceb0aea4abc243b84106576c4f9010f608d0b\n", - " Date/Time: 2016-08-11 08:23:44\n", - " MPI Processes: 1\n", + " | The OpenMC Monte Carlo Code\n", + " Copyright | 2011-2016 Massachusetts Institute of Technology\n", + " License | http://openmc.readthedocs.io/en/latest/license.html\n", + " Version | 0.8.0\n", + " Git SHA1 | ce7cb67937f2ab26df3d995bdd30e99dbfadda7a\n", + " Date/Time | 2016-08-29 14:29:38\n", + " MPI Processes | 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -668,20 +638,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 6.1600E-01 seconds\n", - " Reading cross sections = 3.6500E-01 seconds\n", - " Total time in simulation = 8.3297E+01 seconds\n", - " Time in transport only = 8.3256E+01 seconds\n", - " Time in inactive batches = 4.4890E+00 seconds\n", - " Time in active batches = 7.8808E+01 seconds\n", - " Time synchronizing fission bank = 1.6000E-02 seconds\n", - " Sampling source sites = 1.1000E-02 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", - " Time accumulating tallies = 5.0000E-03 seconds\n", - " Total time for finalization = 8.0000E-02 seconds\n", - " Total time elapsed = 8.4019E+01 seconds\n", - " Calculation Rate (inactive) = 11138.3 neutrons/second\n", - " Calculation Rate (active) = 2537.81 neutrons/second\n", + " Total time for initialization = 5.7300E-01 seconds\n", + " Reading cross sections = 3.3600E-01 seconds\n", + " Total time in simulation = 9.3557E+01 seconds\n", + " Time in transport only = 9.3520E+01 seconds\n", + " Time in inactive batches = 4.6600E+00 seconds\n", + " Time in active batches = 8.8897E+01 seconds\n", + " Time synchronizing fission bank = 1.2000E-02 seconds\n", + " Sampling source sites = 6.0000E-03 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 4.0000E-03 seconds\n", + " Total time for finalization = 7.3000E-02 seconds\n", + " Total time elapsed = 9.4232E+01 seconds\n", + " Calculation Rate (inactive) = 10729.6 neutrons/second\n", + " Calculation Rate (active) = 2249.79 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -762,7 +732,8 @@ "prompt_nu_fission.load_from_statepoint(sp)\n", "chi_delayed.load_from_statepoint(sp)\n", "delayed_nu_fission.load_from_statepoint(sp)\n", - "beta.load_from_statepoint(sp)" + "beta.load_from_statepoint(sp)\n", + "decay_rate.load_from_statepoint(sp)" ] }, { @@ -962,6 +933,168 @@ "df.head(10)" ] }, + { + "cell_type": "code", + "execution_count": 20, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
celldelayedgroupgroup innuclidemeanstd. dev.
0111U2350.0133360.003509
1111Pu2390.0132710.007154
2121U2350.0327390.003864
3121Pu2390.0308810.008109
4131U2350.1207800.017277
5131Pu2390.1133700.031354
6141U2350.3027800.027190
7141Pu2390.2925000.057372
8151U2350.8494900.120338
9151Pu2390.8574900.231893
10161U2352.8530000.659168
11161Pu2392.7297001.342167
\n", + "
" + ], + "text/plain": [ + " cell delayedgroup group in nuclide mean std. dev.\n", + "0 1 1 1 U235 0.013336 0.003509\n", + "1 1 1 1 Pu239 0.013271 0.007154\n", + "2 1 2 1 U235 0.032739 0.003864\n", + "3 1 2 1 Pu239 0.030881 0.008109\n", + "4 1 3 1 U235 0.120780 0.017277\n", + "5 1 3 1 Pu239 0.113370 0.031354\n", + "6 1 4 1 U235 0.302780 0.027190\n", + "7 1 4 1 Pu239 0.292500 0.057372\n", + "8 1 5 1 U235 0.849490 0.120338\n", + "9 1 5 1 Pu239 0.857490 0.231893\n", + "10 1 6 1 U235 2.853000 0.659168\n", + "11 1 6 1 Pu239 2.729700 1.342167" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = decay_rate.get_pandas_dataframe()\n", + "df.head(12)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -971,7 +1104,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -989,7 +1122,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -1010,16 +1143,80 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Finally, we illustrate how one can leverage OpenMC's [tally arithmetic](https://mit-crpg.github.io/openmc/pythonapi/examples/tally-arithmetic.html) data processing feature with `MGXS` objects. The `openmc.mgxs` module uses tally arithmetic to compute multi-group cross sections with automated uncertainty propagation. Each `MGXS` object includes an `xs_tally` attribute which is a \"derived\" `Tally` based on the tallies needed to compute the cross section type of interest. These derived tallies can be used in subsequent tally arithmetic operations. For example, we can use tally artithmetic to compute the delayed neutron precursor concentrations using the `Beta` and `DelayedNuFissionXS` objects. The delayed neutron precursor concentrations are modeled using the following equations:\n", + "Finally, we illustrate how one can leverage OpenMC's [tally arithmetic](https://mit-crpg.github.io/openmc/pythonapi/examples/tally-arithmetic.html) data processing feature with `MGXS` objects. The `openmc.mgxs` module uses tally arithmetic to compute multi-group cross sections with automated uncertainty propagation. Each `MGXS` object includes an `xs_tally` attribute which is a \"derived\" `Tally` based on the tallies needed to compute the cross section type of interest. These derived tallies can be used in subsequent tally arithmetic operations. For example, we can use tally artithmetic to compute the delayed neutron precursor concentrations using the `Beta`, `DelayedNuFissionXS`, and `DecayRate` objects. The delayed neutron precursor concentrations are modeled using the following equations:\n", "\n", "$$\\frac{\\partial}{\\partial t} C_{k,d} (t) = \\int_{0}^{\\infty}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r} \\beta_{k,d} (t) \\nu_d \\sigma_{f,x}(\\mathbf{r},E',t)\\Phi(\\mathbf{r},E',t) - \\lambda_{d} C_{k,d} (t) $$\n", "\n", - "$$C_{k,d} (t=0) = \\frac{1}{\\lambda_{d}} \\int_{0}^{\\infty}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r} \\beta_{k,d} (t=0) \\nu_d \\sigma_{f,x}(\\mathbf{r},E',t=0)\\Phi(\\mathbf{r},E',t=0) $$" + "$$C_{k,d} (t=0) = \\frac{1}{\\lambda_{d}} \\int_{0}^{\\infty}\\mathrm{d}E'\\int_{\\mathbf{r} \\in V_{k}}\\mathrm{d}\\mathbf{r} \\beta_{k,d} (t=0) \\nu_d \\sigma_{f,x}(\\mathbf{r},E',t=0)\\Phi(\\mathbf{r},E',t=0) $$\n", + "\n", + "First, let's investigate the decay rates for U235 and Pu235. The fraction of the delayed neutron precursors remaining as a function of time after fission for each delayed group and fissioning isotope have been plotted below." ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n5WQcPnyYqKgohBAsX7680msoKCjA2dmZ559/no4dOxIfH09ERMQl269atco2qSj7KTvJKOJyupvN\nZvLz8zGbzZhMJlu7S3HgwAEKCgrIzc3lnXfe4fz584wcOZK6devSqFEjPvroI8xmM+np6cyfP5+b\nb765wn6OHz/Ohg0bKCwsxNnZGTc3NxwdHenYsSNeXl689dZbNr0OHTrEn9ZXih07diQoKIiXX36Z\n3NxcCgoK2Lp1K7feeiseHh689dZbmEwmNm7cyMqVKxk+fHil9wCgU6dOODo68v7772M2m/n+++/Z\nsWNHpbpWNnG7Ji4Vj1LbPuiY7xuavLw82bNnT4nKsicXL14spZTl4rxqgjOvn5Eb2GD7HHrgUPXE\nX5fAYrHINjt2SDZskGzYIDvt2iXzTCaZWyJG0S7MmiXlihVSWixS3neflP37S5mba1+Z14DZYpa3\nfX6bZCqSqciBCwfKjPwM+cmfn9jtXn36qZQGg5QPPyxlQYEqqyXLFjQ3CNSimO+aJi8vT06YMEGG\nh4dLHx8f2b59e7ly5cpLto+NjZVCCOnm5ibr1Kkj69SpIz09PeWCBQtkcnKy7N69u/T19ZXe3t6y\ndevWcu7cubZzk5OTZYcOHaSXl5f09fWVnTp1kuvWratQTmJiohw1apRcuHChTElJsZWfOXPGFn8s\npZTp6enyl19+KXXuzJkzZU5OzrUOSYVcTvepU6dKIYQ0GAy2T0k9+/XrJ9944w3b8fjx46Wvr6/0\n9PSUd911V6m4+3379sno6Gjp6+sr/f395ZAhQ2RycnKFeu3fv1927NhRenl5ybp168q7775bJiYm\nSinVGA4fPlzWr19f+vn5ldP57Nmz8t5775V169aV/v7+8tlnn5VSSnn48GHZvXt36e3tLVu0aCF/\n/PFH2zkRERHlrrvk+oBdu3bJtm3bSi8vLzls2DA5bNgwW8x3ZbpeDZX9/Qppbw9aFSGEkNeLrpqr\np7CwkL59+9rS+Tg7O/PII4/g4uLCnDlzalQ3KSWHhx0m+X/JAASODKT53OYIh4rzy9qLny5eZOCB\nAxS9fGvq5kYnLy++rK7NH379Fbp1UztkggpHqeLV/X+Fr/Z9xchlI23HgR6B3N30bj4e8DEOhir2\nWljZvRvatlWv1P/v/yAtDT7+2C6iNH9DrOEC1fI/Gv0bW7XExsby5ZdfMmXKFAB++OEHBgwYYEtv\n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\n1EUn3yotWgQJbgVFU7NU1CwkMgmSJnIyyHDOWb8/TnIyDzTnnGB9nmc/Z6+911rvu1dyzn732u96\n30NcuHCB9PR0HnnkEVOrA0CTAU3wetdLX457Jw51lml+gJcmJXH5zh1SCwv54dYtwwt0dISFC3Uh\nPs6dg59/hq5d4Y8/DC/7LtEKLR8d/IirGVf56fxPHLh2wKDyGjXSuZuYmUHjxhASIo1vyf1BaKhu\nq6/yXyEpKYldu3bRrVu3v9zXzZs3iY2NpWPH0mzFr732GnZ2dvj6+tKiRQsCAwOBqg1XIYT+IaAi\nJXkpLOo5xmhwcDDOzs64uLhU+hw0aFCNbd99911cXV15+umnOVjNyu+qxqQm7mYMK3L58mVWrFhB\ndHQ0KpWK3bt34+3tjRCC4OBgunbtSmpqKvv27WPZsmXs2bMHAK1WS1BQED4+PiQmJpKSkkJISAhq\ntZpBgwbRv39/0tLS+PzzzxkzZgyxsbHl5G7atInIyEji4+M5ffo0a9asoaioiCFDhjBhwgQyMjIY\nMWIEW7ZsqVXXe0Ea35L7msLCQhYuXEhWVhYqlYr58+ejVqsbxAx4qzdbYdlc9/SvzlQT/6FpUs+7\nWZUuAJ137RoXcnO5ZegU8JMn6wxwBwdITtbF/P7nPw0r8x4wU8w4l3YOjdBZwFPCp7Du9DrGbR1n\nsPTz/frp3OHj43VDotXC7dsGESWRPFAMHjwYFxcXnnnmGfr06cO77777l/pTq9WMHTuWiRMn0q5d\nO/3xFStWkJOTw2+//cbQoUNp1KgRAB06dMDV1ZXFixejVquJjIzk4MGDVfqe7927l1mzZtG8eXO+\n//77WnUpa+TVRkREBJmZmWRkZFT6DA8Pr7bdokWLiIuLIyUlhalTpxIcHEx8fPn7UnVjUh13O4YV\nMTc3p7CwkLNnz6JWq/H09MTHx4cTJ06Qnp7O+++/j7m5Od7e3kyZMoWNxavWjx07RmpqKosWLcLa\n2horKyv8/f05evQoubm5vPPOO1hYWNCnTx+CgoLYsGFDObkzZ87Ezc2Nxo0bExwcTExMDEePHkWt\nVjNjxgzMzc0ZNmwYPXr0qFXXe0Ea35L7GisrK5YuXaovr1y5El9fX8LCwkyolQ5zW3Psu+hSrVs/\nYo1LfxeT6PHPVq3oXpzyvUAIukdHszktzTjCra1h1Soo+wNlaMP/LlkRuAKnRk4AxN2O4609bzGx\ny0QUxXBBJvr31z2XfPcdtG8P69cbTJRE8sCwfft2MjIyiI+PZ/ny5dUadCWsX78eBwcHHB0dGThw\nYLlzQgjGjh1Lo0aNKrkzgC5Shb+/P0lJSaxatQrQzWBv27aNHTt24O7uzmeffcaLL75Iy5YtK7Xv\n168f5ubmzJo1i7FjxwKQlZVFWFgYCxcuLFdXpVJhb2/PlStX2Lp1Kx9//DG///77XY1NXejRowd2\ndnZYWloyfvx4evfuza5du/TnaxuTitzLGFakTZs2LF26lNDQUFxdXRk9ejSpqakkJCSQkpKCi4uL\nfmZ/4cKF3Cp+e5ucnIyXl1elRHvXr1/Xu8OU4OXlpX8LUYKbm5t+39bWlpycHK5fv46Hh0eltlXp\n6ubmptf1XpDGt+S+JygoiN69ewOg0Who2bIlI0eONLFWOh7732P4fu+L3zk/mgQ2MYkOFmZmLG7T\nRl/O12oJMFYElLKkpcHUqTpfiwaEu4M7S/62RF9Oz0vHx/neZjPuhkOH4OuvYcMGePVVg4uTSP4S\nDcHtpLq3Uba2tuVmn2/cuAHA6NGjyc7ORqVSsXPnznJtXnrpJdLT0wkLC8Pc3LxamWq1upy/cqdO\nnThw4ABpaWn873//4+rVq/j5+VXZNiYmppxrTElkkIpvZn/55Rf69OlDREQEHh4evP766yxevLha\nnQIDA/UPFRW3ig8ZNVEcCk9fruuY3G39imNYkZCQEKKiokhMTARg9uzZtGrVitatW5ORkaGf2c/K\nytL7b7dq1YrExES0Wm25vlq0aEFSUlK5Y4mJiZWM6qpwd3cnOTm5UtuqdE1ISNDrei8Y3PhWFKW/\noigXFUW5rCjKO1Wcb6Uoyi+KovyuKEqMoigDDK2T5MFCURQ+/fRTffngwYOV/LtMhaIouI1xw8zK\njKxDWZwJPoM6x/i+3wHOzjzv7AxAYwsLYu/cMa4CeXk6v28h4P/+z7iy68DkrpN52vNpACzNLTme\ncpwiTRHn084bTOYzz0BUFPj7G0yERPJQ0LVrV9avX49Wq+Xnn3+u1pe5hGnTpnHx4kXCw8OxKuOW\nl5aWxo8//khubi5arZbdu3ezceNG+vbtq69z5swZCgoKyMvLY/Hixdy4cYOJEydWknH+/Hl8fX1R\nFKVGVxCAgoICrKyseOONN/Dz8yM5OblGd4Zdu3bpHyoqbhUfMkrIysoiMjKSgoICNBoNP/zwA1FR\nUfTv37/GMamOvzKGZbl8+TL79++nsLAQKysrbGxssLCwwM/PD0dHRxYtWkR+fj4ajYZz585x8uRJ\nAPz8/HB3d2f27Nnk5eVRUFDA4cOH6dmzJ3Z2dixatAi1Ws2BAwfYsWMHIXWY9OnVqxeWlpYsX74c\njUZDWFgYx48fr1HXujykVEl1YVDqY0Nn3F8BvABLIAboUKHOl8Dfi/d9gfhq+rqnUC+Sh4fg4GDR\npUsX8b///U8UFRWJb775RsTFxZlaLSGEEJdnXBaHWx4WqetShVZjmrCD0SqVeO/qVZFZWChy1Grx\nUXy8iPzzT+MI371biA4dhPD1FaKoyDgy75KohCjxyo5XRNLtJPHT2Z/EI58/IsZvHW8U2bm5Qowe\nLcT27UYRJ7lPQIYa1OPj4yP27dtX5bmTJ0+Kjh07CkdHRzF+/HgxevToasPDJSQkCEVRhI2NjbC3\ntxf29vbCwcFBrF+/XqSlpYlnn31WODs7CycnJ/HYY4+J1atXl2v/1ltvCWdnZ+Hg4CACAwPF1atX\nq5STmpoqJk2aJDZs2CDS09P1x69duybmzZunL9++fVtERkaWa7tgwQKRW88hWtPS0kSPHj2Eo6Oj\ncHZ2Fr169dKPZ01jUsKAAQPEwoULa61flzEsyx9//CH8/PyEo6OjaNKkiQgODhapqalCCN0Yjho1\nSjRv3ly4uLiU01kIIZKSksTgwYNFkyZNRLNmzcTMmTOFELpQh88++6xwcnISHTt2FNsr/LBW/F8K\nDQ0V48aNE0Lo/pe6du0qHB0dRUhIiAgJCdH/L9Wka1XU9P01aIZLRVGeBOYKIQYUl2cXK/NpmTqr\ngDghxL8VRekF/FsI8VQVfQlD6iq5/8nMzMTJyYljx47x8ssv4+LiwpdffkmHDh1MrRrZMdnYtrXF\n3O4en5Lrkajbt3nx/HmebdyYBT4++NjYGFZgZiZ4euoyXYLOB/zZZ+HIEd3CzAZGXlEeIzaN4I0n\n36Bf634Gl7dyJbz+ui704PDhsGmTwUVK7hNkhssHj4SEBNasWcPcuXMB2Lp1K0FBQfrQfBEREQQE\nBHDjxg3alsQlldyXmDLDpQdQ1vkmufhYWeYB4xRFSQJ2AP8wsE6SBxRnZ2fMzMywtLRk/vz5HDhw\noEEY3gAOjzvoDe+i7CIuvnzRZKEH29naEt6pExsefdTwhjeAszO8915pedYsePppMLbrSx2xtbRl\n5+idRjG8QRdysMQFNCwMzhvO00UikZiQnJwcNm/eTHR0NOfO6bLp5ufn6w3vksWWw4YN46effjKl\nqhIDY+iZ7+HA34QQLxeXxwI9hBAzy9R5A0AI8VnxTPlqIUSl4JLyqVxyr9y5cwdra2uDRq+oK4mL\nE4l/Px5RKPCY6UHbpaaf2UgrLMTe3Bybe/Vdqwt37kCHDlCyeGX6dKjDanpTU6QpYvWp1aTnpfPB\nMx8YTE7//rB7t24/MBC2b4d6Dg0suQ+RM98PNpmZmURHR9Ovn3Ee9CXGxZQz38mAZ5lyS+B6hTov\nAT8BCCGOAtaKojStqrPQ0FD9duDAAQOoK3mQ0Gq1fPfdd7Rv355jx46ZWh0AMvdkIgp1N7jrK6+T\nd6VyfFhjkafR8Mm1a7Q/fpxDWVmGFWZjo4v7XcJXX5Ua4g0gJntV3Mi5QadVnfjx3I8MeMSw68D/\n9a/S/V274IsvDCpO0kA5cOBAufuc5MHm0KFDBAQEmFoNiQkw9My3OXAJ6AukAseBUUKIC2Xq7AR+\nEkJ8pyiKL7BHCFEpaKZ8KpfcLfPmzePrr79m8uTJfPTRR6ZWB9AtcD7V+xSqIyoAmg5uSqetnUyi\nxxtXrvDdzZs0NjcntmdPLMwM/Cyu1UKvXnD9us4Q79IFFi2CGzegOGtZQ+Jo0lGm/286jo0c+WXC\nLwaX1707lIT2HTcO1q41uEhJA0fOfEsk9y81fX8NanwXC+8PLEM3y75aCPEvRVHmASeEEDuKDe6v\nAXtAC7wlhNhXRT/yh0FSZ44dO8aAAQPIzMzEw8OD2NhYbIzh31wHVCdU/O5XmkCh8/8606S/cWOA\nZ6nVeB4+jKo4RurX7doxpUULwwu+dg1cXUGthscf18X9fvVVcHIyvOy7IDU7Fc+lnqi1Or/8feP3\n0dOjJ5n5mbR0rJxQoz64ehWeew7efx8mTJBuJxJpfEsk9zMmNb7rC/nDILkbcnNzadOmDTdv3gRg\n/vz52NraMmnSJBqbIsFMBY62Pkp+fD4AzSc1p8P/GX9h6IKEBN4vTi3c3NKSEa6uzGrZEm9jPaRo\nNGBIP/O/yJTwKaw+tRqA1o1bk6/JZ4bfDN55qlK6gnqjZEiysuA//4EZM6CJaXIzSRoA0viWSO5f\nTOnzLZGYBDs7O+bMmaMvf/jhh+zbt69cFjRT0n51e5wHONNlXxfar25vEh1mtmyJW/Eq+xtFRURn\nZ2NnTGO4rKzz5+HCherrmoA5z87BylyXPCLudhxv+b9lUMMbdEOyfj20awcJCboXBBKJRCJ5sJDG\nt+SBZerUqbQpTqsuhKBTp060MIZrRR1w7uNMl11dcP5/uqyTBdcLjK6Dnbk5H3p768sX8/KwMrTf\nd0UuX4YhQ6BPHygOvdVQ8HTy5OVuL+vLa0+vRSu0NbSoH7y8YO9eWLMG3NwMLk4ikUgkRkYa35IH\nFktLSz755BN9OSkpqWw2N5OjVWu5ueEm0d2iuTTlkkl0mOrujo+1NR5WVnzaujV2ZmbcKDDig0Bh\nIdjZwY8/6jLMNDDee/o9bCxsaGzdmBGPjiC7IJsFUQvYcn6LwWT27g2dO5eWb982mCiJRCKRmABp\nfEseaEaMGMG0adM4fPgwX3zxBcuWLePxxx8npyTbogkRhYJbP97CZ74PnXd0rr2BAbAyM2NH587E\n9uzJ0GbNmB0XR5tjx7hkDPec3bvhb3+DH37QRT1pgLg7uLP1xa3Ez4ynX+t+PLryUWJuxPCY22MG\nl52eDgMG6Hy+Y2IMLk4ikUgkRkIuuJQ8NDzzzDM0b96cN998k549e5panQbHu3FxFGm1/KNlS7ys\nrQ0vMDYW2reHku/1hg3w00/w6afQANMqZ+VncenPS/h5+BlFnqcnJBXnBw4NheJs1JKHCLngUiK5\nf5HRTiQSoKCggEaNGplajSrJT8nnyowrWDhb0OEb40c+MRlDh8LWrbp9OztYsACmTAFbW9PqVQeK\nNEVYmlsarP8ffoCxY3X7bm66BZgN9N9XYiCk8S2R3L/IaCcSCZQzvO/cucOVK1dMqE0pN9be4Gir\no6SHpXPzh5sUZZg+4+PNwkJ+/vNPwwv65z9L9wsKdH7fDdzwTs9LZ/6v8/Fa6sW5W4ZbJDpyJJSs\nD755Ez7+2GCiJBKJRGJEpPEteai4ffs2oaGheHt78+WXX5paHQCcnnXC2lvn5iHyBddXXTeZLtlq\nNRMuXKDN0aPszsw0vEB/f13WS9DF1Vu3Trd/3XRjUBuhB0I5cO0AO0fvpKNrR4PJsbTUvQQo4auv\nSj10JBKJRFJ/TJo0qVx4YkMjjW/JQ8XFixfZsmULTk5OLFy40NTqAGDjZYP3PG99OWlZEpo7GpPo\n8tOtW4T/+Se5Wi0djTUD/dZb8PTTsG0b9OihW4TZt68u40wDY1/cPg4lHmJf/D4u/Wn4CDWvvlqa\n6bJZM90iTInkYcTMzIy4uLhyx+bNm8e4ceOqrF9YWMiUKVPw9vbGycmJ7t278/PPP+vPjxs3jhYt\nWuDk5ESHDh1YvXp1ufYBAQHY2Njg6OiIg4MDvr6+9X9RBqC2616xYgU9evTA2tqayZMn19pfTfUd\nHBxwdHTUj5GFhQUzZ86s92t6EJHGt+ShoaioiEGDBnH27FliY2MJDw83tUp6XENcsWqpS+iiTlOT\nvCzZJHpkaTTcLs7s8nlKinHCMg4eDL/+CoMGwcqVEBICp083yOyXh5IOEXNTF3rkv8f/i6pAxW+J\nvxlMnpsbLFsGkZFw9qzOAJdIHkYUpWrX9+qOq9VqPD09iYqKIisri48++oiRI0eSmJgIwHvvvUdC\nQgJZWVmEh4fzwQcfcOrUqXL9rly5EpVKRXZ2NhcaWBKw6qjtuj08PPjwww956aWX6tRfTfWzs7NR\nqVSoVCpu3ryJra0tI0eOrNfreVCRxrfkocHS0pKXXy5NmrJ48WI+/fRTLl++bEKtdJhZmmHZpHTx\nXn5ivkn0mNy8OXbFiXbO5OYy9OxZwg093Vpy81QU2LwZJk8GKyvDyrxHXu7+MpZmur/ToaRDeH7m\nyfd/fG9Qma++Cs89Bykp8O67cOCAQcVJJA2Su50IsLW1Zc6cObRq1QqAgQMH4uPjQ3R0NAC+vr5Y\nFmf4FUKgKApXr169Z5l9+/ZF3QBS0tZ23YMHD2bQoEG4uLjUqb+61t+0aROurq707t272jqffvop\nLVu2xNHREV9fX/bv3w9Aamoqw4cPx9XVlTZt2rB8+fJy7ZKTkxk2bBiurq40a9aMGTNmAHDhwgX6\n9OmDs7MznTt3JiIiQt/Gx8eHJUuW0KVLF5ydnRk1ahSFhYX686dOnaJ79+44OTkREhJCfn75e251\nutYX0viWPFS8+uqrWBS/xz9y5Ai//vqrvmxquuzpgvtUd5744wnarzRNyvnGlpZMaN5cXz6fl8cT\nDg7GV0QIOHgQthgumc290Ny+OcMfLU0G1P+R/nwR9IXB5X73HTz2GOTlgY+PwcVJJJUIPRCKMk+p\ntIUeCK1z/erqGoObN28SGxtLx46l6zRee+017Ozs8PX1pUWLFgQGBpZr8+677+Lq6srTTz/NwYMH\nq+07JSUFoN7vJcHBwTg7O+Pi4lLpc9CgQXXqo6rrNgRr165l/Pjx1Z6/fPkyK1asIDo6GpVKxe7d\nu/H29kYIQXBwMF27diU1NZV9+/axbNky9uzZA4BWqyUoKAgfHx8SExNJSUkhJCQEtVrNoEGD6N+/\nP2lpaXz++eeMGTOG2NhYvcxNmzYRGRlJfHw8p0+fZs2aNYDuLfiQIUOYMGECGRkZjBgxgi1l7jXV\n6VqfSONb8lDRokULRowYoS83a9aM1q1bm1CjUqyaWdH+q/bYd7ZHW6Ql91yuSfSY7uGh379y5w4F\nWsOnVC9HYiI89RRMndog/b6n+03X72+/tJ0/8wwfFWbgQIiP17mgeHkZXJxE8kChVqsZO3YsEydO\npF27dvrjK1asICcnh99++42hQ4eWi4i1aNEi4uLiSElJYerUqQQHBxMfH1+p77179zJr1iyaN2/O\n99/X/hZsy11MKERERJCZmUlGRkalz7q4TVZ33fVNYmIiv/76KxMmTKi2jrm5OYWFhZw9e1bvGuPj\n48OJEydIT0/n/fffx9zcHG9vb6ZMmcLGjRsBOHbsGKmpqSxatAhra2usrKzw9/fn6NGj5Obm8s47\n72BhYUGfPn0ICgpiw4YNepkzZ87Ezc2Nxo0bExwcTExxtrIjR46gVquZMWMG5ubmDBs2jB49etSq\na30ijW/JQ0fJghAzMzPUajVCCLTGNjCrQZOvIemzJI61Oca1j6+ZRAdfOzv+5uzMk46OfO/ri0ej\nRmQZ83Vqo0a66d1vvtHF22tg9GrZi67Nu9LWpS3/6vsvsgqymLt/Lnvj9hpMZtOm4ORUWs43jVeS\nRGIyzM3NKSoqH4a1qKgIS0tL1q9fr1/8N3DgwHJ1hBCMHTuWRo0aVXJnAJ1vt7+/P0lJSaxatUp/\nvEePHtjZ2WFpacn48ePp3bs3u3btqtS+X79+mJubM2vWLMYWB+bPysoiLCys0qJ+lUqFvb09V65c\nYevWrXz88cf8/vvv9zwmNVHbddcna9eu5amnnsKrhpmBNm3asHTpUkJDQ3F1dWX06NGkpqaSkJBA\nSkoKLi4u+pn9hQsXcuvWLUDncuLl5YWZWXlz9fr163rXmhK8vLz0byEA3Nzc9Pu2trb6zNapqal4\nlJlkKmlbla5ubm56XesTaXxLHjp69uzJ0qVLiYuLY9GiRbz33nt07ty5QfjrKWYKeRfz6LilIx03\nGvY1YU1s6diRI9260c7WlskXL9L22DGyjTE+mzbBI4+UTzkvRIOKsacoCjtH7+Ti9Is0t29O96+6\ncyv3Ft6NvQ0u+9df4YkndIZ4rmlejEgeUkIDQhFzRaUtNCC0zvWrq1sXPD09uXbtWrlj8fHxeHl5\nMXr0aP3iv507d5ar89JLL5Genk5YWBjmNSziVqvVlXy+y1KcMKXKczExMXTr1k1fLokyUvFh4Zdf\nfqFPnz5ERETg4eHB66+/zuLFi6uVGRgYWC6iSNmt4kNGRep63fXBunXrmDhxYq31QkJCiIqK0i/+\nnD17Nq1ataJ169ZkZGToZ/azsrL0/tutWrUiMTGx0gRZixYtSCpJAVxMYmJiJaO6Ktzd3csZ6SVt\nq9I1ISFBr2t9Io1vyUPJzJkz8fT0JDAwkNzcXMLDwxuE77eZlRntv2yPYw9H/TFTZJ2zLx6LZcnJ\nPG5vz2U/PxyMMT6PPVZqVe7cCatW6VxQ1q83vOy7wN3BHTPFjL6t+3LlH1dYFbSKR1weMajMoiLd\nwsvoaCgshH37DCpOImlQvPjii8yfP5+U4ihMe/fuZceOHQwfPrzaNtOmTePixYuEh4djVWYRd1pa\nGj/++CO5ublotVp2797Nxo0b6du3L6CbuY6MjKSgoACNRsMPP/xAVFQUzz//fCUZ58+fx9fXF0VR\nanUFKSgowMrKijfeeAM/Pz+Sk5NrdGfYtWtXuYgiZbeKDxl1uW4AjUZDfn4+Go0GtVqtv8bqqK3+\n4cOHuX79eo1/B9D5Ue/fv5/CwkKsrKywsbHBwsICPz8/HB0dWbRokV7OuXPnOHnyJAB+fn64u7sz\ne/Zs8vLyKCgo4PDhw/Ts2RM7OzsWLVqEWq3mwIED7Nixg1GjRtWoB0CvXr2wsLBg+fLlaDQawsLC\nOH78eI261vsDjBDivth0qkok9YtarTa1CtWS9XuWONnrpDg94LSpVTEuL7xQMtcthJubEGvXCpGb\na2qt6kR+Ub5B+3/77dKh6dPHoKIkDYDi+568xwoh7ty5I95++23h7e0tGjduLLp37y527NhRbf2E\nhAShKIqwsbER9vb2wt7eXjg4OIj169eLtLQ08eyzzwpnZ2fh5OQkHnvsMbF69Wp927S0NNGjRw/h\n6OgonJ2dRa9evcS+ffuqlJOamiomTZokNmzYINLT0/XHr127JubNm6cv3759W0RGRpZru2DBApFb\nz79tNV23EEKEhoYKRVGEmZmZfiur54ABA8TChQv15drq//3vfxcTJkyoVa8//vhD+Pn5CUdHR9Gk\nSRMRHBwsUlNThRC6MRw1apRo3ry5cHFxqTTeSUlJYvDgwaJJkyaiWbNmYubMmUIIIc6fPy+exj1y\nJgAAIABJREFUffZZ4eTkJDp27Ci2b9+ub+Pj41Ouj9DQUDFu3Dh9OTo6WnTt2lU4OjqKkJAQERIS\nIj788MNadb0bavr+KqIBvc6tCUVRxP2iq+T+JD09nYyMDIMuTKkrqWtSuTSpOImLOTwZ9yTWntYm\n1elibi43CgsJcHY2rKBDh3Sz3aALOXjtGri7G1bmXyT2z1g+P/Y5Wy5s4fI/LmNvZW8QOUlJOnf4\nkomnDRt0YdElDybFrg5VB7Kuf1nyHluPJCQksGbNGubOnQvA1q1bCQoK0oc3jIiIICAggBs3btC2\nbVtTqioxEDV9f6XbieShJyUlhVdeeYW2bdtWuaDGFDQJbIJDj+IQfxpI/sw0SXcAEvPzef70aXqd\nOsXFvDzDC/T3hyef1O0XFuoyXwLU84KX+uSN3W+Qr87n5MsnDWZ4A7RqBf37l5Y//9xgoiQSyT2S\nk5PD5s2biY6O5ty5cwDk5+frDe+SxZbDhg3jp59+MqWqEhMhZ74lDzVCCLZs2cKcOXNo3749W7du\nNbVKev7835+cCTwDgLmjOf6p/pjbGjfroxCCmbGxfJOayh0huOznR1tjpJ3fulXn5z1jBpw5o4t8\noihw8mRpUp4GQIG6gCVHlrDq5CpUBSqS30jGoZFh46Lv2qULPQgwYADs2AFmchrlgUTOfD8YZGZm\nEh0dTb9+/UytisSIyJlviaQarly5wogRI7hw4QLh4eH6lc0NAZf+Llj76FxNNCoNN769YXQdFEUh\nLj+fO8U35RUVVogbjCFDdJFPevfW5VX/9FM4caJBGd4AluaWfHf6O5JVyagKVHz/x/ekqFI4ef2k\nwWQGBsK8eRATozPEpeEtkTRsDh06REBAgKnVkDQg5M+25KGmbdu2+hXuWq2WBQsW8Oabb1YKQ2QK\nFEXBzKb4K2oGBTcKTKLHjJYt9ftfp6Yy5OxZYrKzjSPczAxWrtSF+WiAVqaZYsb0HqVJd2bvm03n\nVZ35NeFXg8qdMwe6dIHTp2HyZGhAz4wSiaQCQUFBDSKalqTh0PDuZhKJkXn99df1+19//TUqlapB\nxPwG6BLZhdaftqZXci9af2yaTJzPOTvjW+xqkqfVYga0sbExviJqtS78YIV4rKZmwuMT9H7eqgIV\n3w3+jlm9Zhlc7ttv62bBH3mkfAIeiUQikTRspPEteegJDAzkkUd0MZqFEHTr1q3GTF3GpJFHIzzf\n9qSReyO0BVoK0wuNroOiKPyjTOKCM7m52Bk4aUMl1q8Hb2/4+GO4edO4smvBsZEj4x8bry+vOb3G\nKHJnztSlnH/vPWjc2CgiJRKJRFIPSONb8tBjZmbGjBkzALCzs0OlUplYo/LkXcnj8vTLHPY4zM3v\nTGN4jnNzw8XCgkFNmvBFu3YoQGGFjGMGxdkZhg2DgwehRw/jya0jr/m9BoB/K39e7PgiF9IuMG3H\nNOIy4wwm08NDF4mxBGP+OSQSiURy70jjWyIBJk6cyJIlS0hKSuLZZ5/llVde4c033zS1WgCoM9RY\nNbOi+4nutHqzlUl0sLewIP7JJ/mpY0fSiooYeOYMfWJijCN80iSdf8Xnn0NxyuGGxqPNHuXS9Esc\nmnyIc7fO8dy653Bs5Egj80YGlVtYCEuXQrt2uhcDEolEImn4yFCDEkkZTp48yejRo5kwYQLjxo3D\n09PT1Co1KHLUakZduECIqyuDmzY1jvvJ3Lnw0Ue6/eefhxEj4MoVWLjQ8LLvgbTcNFxsXDA3M/zY\nlM1HZG0Nt26Bg2EjHUqMiAw1KJHcv9T0/ZXGt0RShpL/MaWBhbQDEFpB2tY0Upal0Cm8E5aNLU2t\nknGIi4M2bUrLzz+vc3geMMB0OjUQhIDOnaE4jwdr1sCECSZVSVKPSONbIrl/kXG+JZI6oihKOcM7\nKyvLhNqUIjSCIy2PcH74ebKisri5vmEsOjydk0ORoZ2NW7eGZ58tLffr1+ANb41Ww56rexi3dRz/\njPynweQoCowbV1r+8kvp+y2RSCQNHWl8SyRVsG3bNgYNGkTr1q0bhAGumCs0GdREXzbVwssS/i81\nlU7HjzPwjz+Iz883vMCJE0v3v/1WN+Wr1eo+GyBHko8we99sOjXrxNu93zaorDFjysg9otskEolE\n0nCRxrdEUoH8/Hy+/fZbkpKS+O2333BqIEGUW3/SGsVKNyuffTyb3HO5JtHjVHY2X12/zqW8PAa4\nuNDOGOnmhw/XuZ68+SYsWwaffKIrN0BL83zaeX744wcSbieQlpeGq52rQeW1bAm+vqVlmXBHIpFI\nGjbS+JZIKvDiiy8SHh5OTEwM4eHhplZHj2UTS5oObqovX/vkmkn0uKPVciw7GzWwKS2NfI3G8ELt\n7SE2FhYvhl9+gZQU2LwZevUyvOy7JOF2Al9Ef8Gfd/5kw9kNaLQaMu5kGFTmokW69aeJiTB6tEFF\nSSQSyUPDpEmTmDNnTr33K41viaQCQ4cO1e+vW7eOM2fOEBdnuHjNd4O5XWkEDVWUClMskOrl6IiP\ntTUAWRoNHycksC8z0/CCS3zxFyyAVauge/fSYw2Ifq370dRW95B0Pfs6Pb7uQceVHSlQFxhMZlAQ\nzJ6ti/198CAcP24wURKJSfD29sbW1hZHR0fc3d2ZPHkyeXl5d91PYWEhU6ZMwdvbGycnJ7p3787P\nP/+sPz9u3DhatGiBk5MTHTp0YPXq1eXaX7x4kb59+9K4cWPatWvHtm3b/vK1GYOarru2MamJ2NhY\nbGxsGD++NNFYQEAANjY2ODo64uDggG/ZV3MSQBrfEkklhg4dik1x+vRz587Rr18/zpw5Y2KtdLT5\ndxtcgl1o91U7epztYZKoLIqiMNbNTV9edf06OcaY/a6KvDy4dMk0sqvB0tySkY+O1Jeb2DQhfmY8\njSwMG/N7/37d2tTp0yE52aCiJBKjoygKO3fuRKVS8fvvv3PixAnmz59/1/2o1Wo8PT2JiooiKyuL\njz76iJEjR5KYmAjAe++9R0JCAllZWYSHh/PBBx9w6tQpADQaDS+88AKDBg0iMzOTL7/8krFjx3Ll\nypV6vVZDUNN11zYmNTF9+nT8/PzKHVMUhZUrV6JSqcjOzubChQuGuqz7Fml8SyQVcHBwYMiQIfry\nmDFjeOGFF0yoUSmWTSx5LPwxWkxtgYWThUlmvgHGlDG+czUanja2X/zNm/Daa9CqFaxYYVzZdWB0\n51Lfj5OpJ1Ew/EOSry9s2wZ//AFlXt5IJA8MJb937u7uDBgwgLNnzwK6LMVl307W5Cpga2vLnDlz\naNVKl7Bs4MCB+Pj4EB0dDYCvry+WlpZ6eYqicPXqVUA3652amsrMmTNRFIU+ffrQu3dv1q1bV63O\nffv2Ra1W/8Ur/+vUdN21jUl1bNy4EWdnZ/r27Vvp3N3cmz799FNatmyJo6Mjvr6+7N+/H4DU1FSG\nDx+Oq6srbdq0Yfny5eXaJScnM2zYMFxdXWnWrJk+U/WFCxfo06cPzs7OdO7cmYgKydl8fHxYsmQJ\nXbp0wdnZmVGjRlFYWAjAqVOn6N69O05OToSEhJBfIaBAdbreLdL4lkiqYOzYsfr9n3/+2WRGblUI\nrSDzl0wujLvAmSDTzMi3t7XlCQcH7M3NGe3mRq6xZ76L30ywb58u82UDw7+VP96NvTFXzOnp0ZNb\nubc4lnyMZJXhpqSbN4fHH2+QnjiSB4DQA6GEHgitt/JfISkpiV27dtGtW7e/3NfNmzeJjY2lY8eO\n+mOvvfYadnZ2+Pr60qJFCwIDA4GqDUohhP4hoCIpKSkAWFhY/GU9yxIcHIyzszMuLi6VPgcNGlSn\nPqq67rqcK0GlUjF37lyWLFlS5bi8++67uLq68vTTT3Pw4MFq+7l8+TIrVqwgOjoalUrF7t278fb2\nRghBcHAwXbt2JTU1lX379rFs2TL27NkDgFarJSgoCB8fHxITE0lJSSEkJAS1Ws2gQYPo378/aWlp\nfP7554wZM4bY2Nhycjdt2kRkZCTx8fGcPn2aNWvWUFRUxJAhQ5gwYQIZGRmMGDGCLVu21KrrvSCN\nb4mkCp577jnGjh3Lpk2bOHHiBHv27GHx4sWmVguAovQirr59FYcnHOjwXQeT6bHe15eb/v581qYN\nP2dkEHLunHEeUrZvh//3/2DlSij+IW5oKIrC+qHrSZmVwpRuU+i3rh/jto7jSobhX0/n5MCHH+qG\nSCJ5kBg8eDAuLi4888wz9OnTh3ffffcv9adWqxk7diwTJ06kXbt2+uMrVqwgJyeH3377jaFDh9Ko\nkc5lrEOHDri6urJ48WLUajWRkZEcPHiwSt/zvXv3MmvWLJo3b873339fqy5ljbzaiIiIIDMzk4yM\njEqfdQkSUN1113auLHPmzGHq1Kl4eHhUOrdo0SLi4uJISUlh6tSpBAcHEx8fX2U/5ubmFBYWcvbs\nWb37i4+PDydOnCA9PZ33338fc3NzvL29mTJlChs3bgTg2LFjpKamsmjRIqytrbGyssLf35+jR4+S\nm5vLO++8g4WFBX369CEoKIgNGzaUkztz5kzc3Nxo3LgxwcHBxMTEcPToUdRqNTNmzMDc3Jxhw4bR\no0ePWnW9F6TxLZFUgYWFBevWreP555+nQ4cOvPfee9jZ2ZlaLQCsXK144uQTtJzZEqumVibTo62t\nLY3MzHj85EkiMzMZ4+aGUd4P3L4NJa9Dv/0WbtzQRUHJyTGG9DrTq1Uv3OzdaO3cmrWD13Jp+iUC\nvAMMKjMlBRo3hvnz4bffQKUyqDiJxKhs376djIwM4uPjWb58ud4oro7169fj4OCAo6MjAwcOLHdO\nCMHYsWNp1KhRJXcG0D1A+/v7k5SUxKpVqwDdfWHbtm3s2LEDd3d3PvvsM1588UVatmxZqX2/fv0w\nNzdn1qxZ+jepWVlZhIWFsXDhwnJ1VSoV9vb2XLlyha1bt/Lxxx/z+++/39XY1JWarru2MSkhJiaG\nvXv38vrrr1d5vkePHtjZ2WFpacn48ePp3bs3u3btqrJumzZtWLp0KaGhobi6ujJ69GhSU1NJSEgg\nJSUFFxcX/cz+woULuXXrFqBzOfHy8sLMrLwZe/36db37TAleXl76txAluJVxnbS1tSUnJ4fr169X\nepjw8vKqUlc3Nze9rveEEOK+2HSqSiTG5+rVq6ZWoVo0+RqRtDJJZJ/ONpkO+RqNcQVmZwthZyeE\nLsWOEA4OQkyeLERqqnH1aIBotUJ06FA6NGvWmFojyV+h+L4n77FCCG9vb7Fv374qz9nZ2YkzZ87o\ny/379xcffvhhjf1NmjRJ9O3bVxQUFNRYb8qUKeL111+v9ry/v7/46quvqjzn6+srtFptuWPXrl0T\n8+bNK3ds69atoqCgQPznP/8Rx44dEyqVSowaNapamQMGDBD29vbCwcGh0hYYGFjj9dR03XUdk6VL\nlwp7e3vh7u4umjdvLuzt7YWNjY3o3r17tfouX768xj6FECI7O1uMGjVKjB8/Xhw5ckS0a9eu2rpH\njhwRbm5uQlPh/hMVFSXc3d3LHRs9enS5Ma/4vxQaGirGjRsnDh48KFq0aFGube/evav8Xyqra3XU\n9P2VM98SSS20bt3a1CpUyZU3rxBlH8WVV6+Q8InpMqs0KjPzIIRAY2jXE3t7GDGitDxyJKxerXN6\nbsAUqAsIuxDGqhOrDCZDUWDSpNLy2rUNNgmoRFJvdO3alfXr16PVavn5559r9DEGmDZtGhcvXiQ8\nPBwrq9K3h2lpafz444/k5uai1WrZvXs3GzduLLeg8MyZMxQUFJCXl8fixYu5ceMGE8tm4C3m/Pnz\n+Pr6oihKra4gBQUFWFlZ8cYbb+Dn50dycnKN7gy7du0iOzsblUpVadu5c+ddX3dt5yry97//natX\nrxITE8Pp06eZNm0aQUFBREZGkpWVRWRkJAUFBWg0Gn744QeioqJ4/vnnq+zr8uXL7N+/n8LCQqys\nrLCxscHCwgI/Pz8cHR1ZtGgR+fn5aDQazp07x8mTJwHw8/PD3d2d2bNnk5eXR0FBAYcPH6Znz57Y\n2dmxaNEi1Go1Bw4cYMeOHYSEhNR4TQC9evXC0tKS5cuXo9FoCAsL43iZuK1V6Wpubl5Dj9UjjW+J\npA5kZ2fz7bffEhAQoA87ZWrMrMwQap1llfFzBpo8E4X7A+Lu3CE0Pp5Hjh3j5wzDJpQByqeb37IF\njJHi/i9w7fY1WvynBcuPL8fZxtmgssom2fnlF10uIonkfqemsKpLly4lPDwcZ2dnNmzYUC5aVUUS\nExP56quviImJwc3NTe+WsmHDBhRFYdWqVbRq1QoXFxfefvttli1bRlBQkL79unXrcHd3p3nz5uzf\nv589e/boo6OUxcXFBScnJzZu3Ejv3r2r1ScrKwsXF5dyx7Zt28b7779f03DcNTVdd03nSggMDORf\n//oXANbW1ri6uuo3e3t7rK2tcXFxoaioiA8++EAfgWTFihVs376dtm3bVqlXQUEBs2fPplmzZrRo\n0YK0tDQ++eQTzMzMiIiIICYmBh8fH1xdXZk6dSqqYl+6kvOxsbF4enrSqlUrfvrpJywtLQkPD2fX\nrl00bdqU6dOns27dunL+69X9L1laWrJlyxa+/fZbXFxc2LRpE8OGDatR1wULFtzT30MR98m0iKIo\n4n7RVfLgMXHiRE6fPs306dP1PnGmRgjB8Q7HuXP5DgAd1nWg+Vjjz/7mqNVMu3yZqKwsAho3Zk2H\nDoaPP67VwiOPgJkZTJgAffrArl3QuTOMGmVY2XeJWqtm79W9fH3qawa2HcjkrpMNLtPHB65d0+0v\nXKhLwCO5/1AUBSGEUeLXyHuscUhISGDNmjXMnTsXgK1btxIUFKQ34CMiIggICODGjRvVGqyS+4Oa\nvr9y5lsiqYUFCxawceNGYmJiUKlUDcLwBt0Xu/mkUmM7aUmSSfQ4rFLxw61bJBYUEJmZidYYQs3M\n4NdfdSnnPT11BrhWC126GEP6XfHtqW8ZsH4AYRfC+Ob3b4wic9486NkT/vtfmDLFKCIlEkkt5OTk\nsHnzZqKjozl37hwA+fn5esO7ZLHlsGHD+Omnn0ypqsTAyJlviaQWVq9ezZRiC6Zr1676GJ9Oxk4s\nUwUZkRn88fwf+nKv671o5G7chwO1VkvLI0e4WVQEQESnTrS3taWtra2RFFCDuXmDDXCdnpeO+xJ3\n1Fpdoo0Pn/mQPXF72B6yHVc7V4PIFKJ0OIqKID0d3N0NIkpiQOTM94NNZmYm0dHR9OvXz9SqSAyA\nnPmWSP4Cw4cP1892nzp1Ch8fn3r3x7tXHHo44PCkAy5BLnT4rgPmDve2+OOvYGFmxqgyYZuGnTvH\nfyuEdTKsAhYN1vAGaGrblOfblC42Cr8UzryAeTSxaWIwmYqiSzE/cya0bKmLxCiRSBoWhw4dIiAg\nwNRqSEyANL4lklpwcnIqlzXsmWeeqTEGqjGxdLak2+FuPBbxGM3HN8fCvn4zqdWVsWWMb3NggbEj\nxBQU6JLvjB0LgwcbV3YdGNN5jH6/UFPIc62fw9zMsA9KWi04O8OhQ7BkiUFFSSSSeyAoKKjes19K\n7g+k8S2R1IFx48bp9/fv39+g0s0rioLmjoa0bWnEh1adRczQdLO3p0Oxm4mtuTkXcnONq0BmJixd\nqnN0XmW4UH73yqD2g7C11I3P1cyrJGYlotFqyC003Dh5ekJoqG5dqkQikUgaDtL4lkjqQP/+/fHy\n8mLMmDF8/fXXFBUVceLECVOrBYDmjoYjrY6Q8nkKVm5WJnkwUBSFhT4+RHTqRKq/Px6NGvHf5GTD\nx/wG3aLLVat0js35+Q3SudnOyo45z8xh9aDVHJtyjJUnVuK11MtoCzBv3YLiKGESiUQiMTFywaVE\nUkc0Gg2KojBp0iQiIiJ49NFHOXDgQIN4bajOVmPhYHo9AMZfuEDEn38yuGlTPmvThsZVxMCtV9as\nKc0s8+STcOQIZGRAhdi5DYV9cfvYE7eHcY+No6NrR4PKys+Hrl3h0iVdgJiUFCjjISRp4MgFlxLJ\n/UtN399ajW9FUWZVcTgLiBZCxNSDfnVC/jBIGgqbNm3C398fDw8PU6tSJZp83UOCWSPTvNiKzs7G\n19YW23vM/HXX/PmnzqLUFCcZ6tkTrl7VBbq2szOODg0UIaB169KY32vW6KIySu4PpPEtkdy//NVo\nJ08A0wCP4u1lIAD4WlGUt+tLSYnkfmHEiBEN0vC+ufEmJ7udJMo+iuvfXDeZHt0dHIxneAM0aQJl\nIwY8/rgu1Md9YHjfKbrD2VtnDda/osArr5SWN240mCiJRCKR1JG6GN9NgG5CiDeFEG+iM8abAc8A\nEw2om0TSoLl16xbffPMN2dnZplYFgISPEsg5lQMayNydaVJdhBCcVKn4IC6OGGOMT5kUwMTGQgNJ\nhFQdN3NuMuynYTRf0pxPD31qUFkjR5bu79kDv/9uUHESiUQiqYW6GN+eQGGZchHgJYS4AxQYRCuJ\npIEzdepU2rVrx+7du7l9+7ap1QGg07ZO+v3MPZmoc9Qm0+WVy5cJOnOGs7m5OBrDJ37w4NJY32lp\nUFgIJ0/qoqA0QOws7fBw8GDziM2sG7LOoLK8vaFpU92+RgO//WZQcRKJRCKphboY3+uBo4qizFUU\nZS5wCNigKIodcN6g2kkkDZDNmzdz+fJl8vLymDRpEq1atTK1SgDYtrPFrpPO1UKbr+XPnX+aRI/d\nGRl8mZrKzaIiUgoLaW1jY3ih7u6wejWcPw+vvgrt28Po0Trf7wZG2IUwWn7WkuXHl7P61GqjyJwy\nRbfgMiAA2rUzikiJRCKRVEOtxrcQ4mN0ft630S20nCaE+EgIkSuEGFNza4nkweP48eP8+uuvFBUV\nsW3bNlOrUw7H3o76/ZTPjZhlsgw9HRywKJ6FPpmdTXJ+vnEET5oEvr7w2GO6hDuXLsETTxhH9l3Q\nrkk7sgqyAF22y/O3zrP29FqDynzzTV24wf37oX9/g4qSSCSSBsekSZOYM2eOqdXQU9dwCKeATUAY\ncEtRFE/DqSSRNGxeeOEF/f6WLVv44IMP+K2BvMtv5KHzdVasFKx9rE2iQ2NLSwIaN9aXh547x/Lk\nZOMp4O+vM8AbaMr5Tq6d6OzaGYA76jv0XN2TX+J/oVBTWEvLe6dpU3BwgN27dQsw1xrW1pdI6h0z\nMzPi4uLKHZs3b165BGhlKSwsZMqUKXh7e+Pk5ET37t35+eef9efHjRtHixYtcHJyokOHDqxeXf4t\nVEBAADY2Njg6OuLg4ICvr2/9X5SBuBvdHRwccHR01Ne1sLBg5syZlerFxsZiY2PD+PHjDan6Q0Ot\nxreiKP8AbgJ7gB3AzuJPieSh5Mknn8TV1RWAjIwMrl27pi+bGq8PvOi0vRO9/+zNo98/ajI9XmjS\nRL+fo9EwrFkz4yuRlwdhYbrp3gbGyI6lqyAD2wayZvAarMytDCrzu+9g3jxd6MFnnjGoKImk3lGq\neZiu7rharcbT05OoqCiysrL46KOPGDlyJImJiQC89957JCQkkJWVRXh4OB988AGnTp0q1+/KlStR\nqVRkZ2dz4cKF+r8oA3E3umdnZ6NSqVCpVNy8eRNbW1tGll2lXcz06dPx8/MzpNoPFXWZ+Z4JtBdC\ndBRCPCaE6CyEeMzQikkkDRVzc3OCg4P1ZQ8PD9o1EEdaRVFoOqgpFvYWaPI0FKSaZk30oJIVfsCV\nO3ewM2boQYCICJ0f+KpVukwzDYxB7Qfp93df2W3QWe8SpkyBw4fhrbd0izAlkvuJu41Bbmtry5w5\nc/RrcgYOHIiPjw/R0dEA+Pr6YlmcAEwIgaIoXK2wRuRuZPbt2xe12nSL3CtyLzHbN23ahKurK717\n9y53fOPGjTg7O9O3b98a23/66ae0bNkSR0dHfH192V888ZGamsrw4cNxdXWlTZs2LF++vFy75ORk\nhg0bhqurK82aNWPGjBkAXLhwgT59+uDs7Eznzp2JiIgo187Hx4clS5bQpUsXnJ2dGTVqFIWFut/S\nU6dO0b17d5ycnAgJCSG/wn2gOl2NRV2M7yR0vt73hKIo/RVFuagoymVFUd6pps5IRVHOKYpyRlGU\n7+9VlkRiLAYPHgyAk5MTZmamSWZTHTl/5HBuxDkOtzjMjf+7YRIdPK2tCWrShGktWrC9UydszcxQ\na7XGES4ENG4Mf/87hIfDgAHGkXsXdHbtTMdmHRnSYQj/ef4/RCVG8c/If3Ir95bBZFacIJT5VCQP\nEzdv3iQ2NpaOHUuzyr722mvY2dnh6+tLixYtCAwMLNfm3XffxdXVlaeffpqDBw9W23dKim59TX1n\nOw4ODsbZ2RkXF5dKn4MGDaqxbV11L8vatWsruZWoVCrmzp3LkiVLajToL1++zIoVK4iOjkalUrF7\n9268vb0RQhAcHEzXrl1JTU1l3759LFu2jD179gCg1WoJCgrCx8eHxMREUlJSCAkJQa1WM2jQIPr3\n709aWhqff/45Y8aMITY2tpzcTZs2ERkZSXx8PKdPn2bNmjUUFRUxZMgQJkyYQEZGBiNGjGDLli21\n6mpUhBA1bsBq4DfgXWBWyVZbu+K2ZsAVwAuwBGKADhXqPAJEA47F5abV9CUkkoZCXl6e2Lt3r7h9\n+7YICwsT48aNE6GhoaZWSwghRO7lXHF99XVRkFZgalXEn4WFYklionjq999F8B9/GEfo3/4mhM62\nFCI83Dgy7wGNViOEEGLQhkGiy6ouYu7+ueJWzi2DykxNFeIf/xCiVSshunY1qChJPVB836v1Xlsf\nW6332LlzS79XZbe5c+tev7q6dUBRFHH16tVyx0JDQ8W4ceNqbVtUVCT69esnXnnllUrntFqtOHTo\nkPjkk0+EWq3WHz9+/LjIyckRhYWF4rvvvhMODg4iLi6uUvs9e/aIkSNHitGjR4t169bVqsvmzZtr\nrfNXqavuZUlISBAWFhbi2rVr5Y7PnDlT/Pvf/xZC1DzeV65cEW5ubmLv3r2iqKhIf/yxyGFeAAAg\nAElEQVTYsWPCy8urXN2FCxeKyZMnCyGEOHz4sHB1dRUajaZcnaioKOHu7l7u2KhRo8S8efP0ZW9v\nb7F+/Xp9+e233xavvPKK+PXXX4WHh0e5tv7+/uLDDz+sUdf6pqbvb12m7BLR+XtbAQ5ltrrgB8QK\nIRKEEEXARuCFCnWmAiuEEKrib396HfuWSEyGjY0Nffv25cSJE/z3v/+lZ8+eTJkyxdRqAWDb1hb3\nye5YNTWsD3FduKPVciEvj3c9PfnpUSP5oHftWrq/bh189hm83fCS8Zopup/fDcM2EDMthtCAUJrZ\nGdY3PiwMli+HpCSdS7xEcr9gbm5OUVFRuWNFRUVYWlqyfv16/cLBgQMHlqsjhGDs2LE0atSokrsD\n6Fz1/P39SUpKYtWqVfrjPXr0wM7ODktLS8aPH0/v3r3ZtWtXpfb9+vXD3NycWbNmMXbsWACysrII\nCwtj4cKF5eqqVCrs7e25cuUKW7du5eOPP+Z3A2S9qqvuZVm7di1PPfUUXl5e+mMxMTHs3buX119/\nvVaZbdq0YenSpYSGhuLq6sro0aNJTU0lISGBlJQUXFxc9DP3Cxcu5NYt3Vu+5ORkvLy8Kr1Bvn79\neqUwvl5eXvq3DCW4ubnp921tbcnJyeH69euVslCXva6yurq5uel1NSZ1CTU4r6qtjv17oHNbKSG5\n+FhZ2gHtFUX5TVGUw4qiPF/HviUSk9OvXz/27dvHa6+91uBSzqtz1KSsTOF0/9MIjWl8DDwaNeLr\n9u0JbNIEa2P5fQ8dWrq/eTP88Qf062cc2feAraWt0WRNnAglYdcvXYLLl40mWiL5S3h6enLt2rVy\nx+Lj4/Hy8mL06NH6hYM7d+4sV+ell14iPT2dsLAwzGv4DVKr1ZV8vsuiKEq1bhcxMTF069ZNXy6J\nrlLxYeGXX36hT58+RERE4OHhweuvv87ixYurlRkYGFguGknZreJDRk3UpHsJ69atY+LEieWOHTx4\nkISEBDw9PXF3d2fx4sVs3ryZJ6oJ4RoSEkJUVJR+Uevs2bNp1aoVrVu3JiMjg4yMDDIzM8nKytL7\nb7dq1YrExES0FdwSW7RoQVJSUrljiYmJdbrPuru7k1whwlaJThV1TUhI0OtqTKo1vhVFWVr8GaEo\nSnjFrY79V7UMueJ/gAU615NngNHAN4qiOFZqJZHcB5Qs9jA1BTcKONT0ELGvxZK5O5PbUabPwimE\nIP7OHcMLeuIJaNmyRCiMHQt/+5vh5f4FMu9k8sMfPzBi0wh2XDZcMClb2/JDsX69wURJHjRCQ6ty\nOtEdr2v96urWgRdffJH58+eTkpKCEIK9e/eyY8cOhg8fXm2badOmcfHiRcLDw7GyKn0TmJaWxo8/\n/khubi5arZbdu3ezceNG/YLCrKwsIiMjKSgoQKPR8MMPPxAVFcXzz1eeGzx//jy+vr4oikJ4eM2m\nUUFBAVZWVrzxxhv4+fmRnJyMj49PtfV37dpVLhpJ2a3iQ0YJd6N7CYcPH+b69euVxvLvf/87V69e\nJSYmhtOnTzNt2jSCgoKIjIys1Mfly5fZv38/hYWFWFlZYWNjg4WFBX5+fjg6OrJo0SLy8/PRaDSc\nO3eOkydPAuDn54e7uzuzZ88mLy+PgoICDh8+TM+ePbGzs2PRokWo1WoOHDjAjh07CAkJqXGMAXr1\n6oWlpSXLly9Ho9EQFhbG8ePHa9S1pgczQ1DT6oCSnMfVP5bVTjK69PQltASuV1HniBBCC1xTFOUS\n0BadH3g5Qst8cQMCAggICPgLqkkk9UN2djarV69m69atFBUVcfjwYVOrhJWrFS7Pu/BnuC7LZfqW\ndJwDnE2iS6FWy1tXrxKWnk4TCwt+f+IJzAwZg9vMDIYM0flXgM7Xom9f3c2/gcb+/uLkFxxOOsxQ\n36H0atnLoLIGDNDlIAL4979h7twGOywPHQcOHODAgQOmVqNBMmfOHObOnctTTz3F7du3adOmDevX\nr+fRatzZEhMT+eqrr7C2tta7JiiKwpdffslzzz3HqlWreOWVV9BqtXh5ebFs2TKCgoIAnTvLBx98\nwKVLlzA3N6dDhw5s376dtm3bVpLj4uKCk5MTGzdu5LnnnqtW/6ysLFxcXMod27ZtG++///69DkmV\n1KZ7YGAgzzzzTLmZ3rVr1zJs2DDs7OzK9WVtbY21dWm+CHt7e6ytrStdB+geLGbPns3FixextLTE\n39+fr776CjMzMyIiIpg1axY+Pj4UFhbSvn175s+fD6A//49//ANPT0/MzMwYPXo0/v7+hIeH88or\nr7BgwQJatmzJunXrykUWqy7MpKWlJVu2bGHq1Kl88MEHBAYGMmzYsFp1NSZKba8i/lLnimIOXAL6\nAqnAcWCUEOLC/2fvzOOqqNc//h5WQdajgIAISC5kuaF4XSoJKlPQvHhzSUtLf7eupWVdr7apWbmk\nN82s225ZLqmoqOS+b6m45C4qssgiCIKALIfz/f0xcABlUznnoH7fr9e8mOU783xmOGfOM995vs9T\nrs0zJeuGK4rSGNXpbi+EyLzpWMKQWiWSOyU2NpYXX3yRZs2a8cMPP1S4WZmSzC2ZHAs5BoCVpxVd\n47uimBnfy/o+KYkZ8fFczM/nQMeOBDgY4cXWjh1qWce//x18feHAATX94OHDYAz7t8HvJ38n4nQE\nGy5s4PTo0zSxa2JQe1euQJMm6rOIuTmkpYGzaZ7LJDVQEi5glC+t/I2tW+Li4liwYAGTJk0CYOXK\nlYSGhurTG65Zs4aePXuSkpJSqVMvufep7vtbmyI73RVF2VSSKvCioiixiqJcrGk/ACFEMfA6sBE4\nCSwRQpxWFGWKoiihJW02AFcVRTkJbAHeudnxlkjqKykpKTz00EPs3r2b5cuX3xLjZ0ocn3DEXKO+\nSiu8XEjW/jvOGHpX7MjK4nx+Pjog8upV4xh94gk4dAjefVd1up2c1LSD9czxBrXXe+nJpVzLv6YP\nOSnWFRvMnqsrTJwIP/4IycnS8ZZI6pqcnByWL19OdHQ0J0+eBCA/P1/veJcOtgwPD+f33383pVSJ\niaix51tRlDPAW6g90vpfBCGEkX5F9TrkU7mkXtKhQweOHj0KwNKlS2nXrh2tWrUysSo1xnpPoz1o\nM9XCD55vetLic+P3sCy/coV/nDoFwKO2tkxt3pw+Gg0W9Sw/uqmYs38Ob214C4DWjVpjZ23H480e\nZ/Yzsw1uu7AQ9uyBnj1l6El9RPZ83x9kZmYSHR1NSD0e+C2pe+6q5xvIEkL8IYS4IoS4WjrVsUaJ\n5J6lX7+y7Jkvv/wyoaGh5NWDPG6KotDq+1a4DnLl4WUP0/zj5ibR8YxGg1WJZ3c8L4/P4uNJM9Ub\ngsJCqEdvJwDCWpZVS43JiGFKzylMD5lucLv/+pcafjJxImTKd40SicHYs2ePHKMmqUBtnO9tiqJ8\npihKV0VROpZOBlcmkdwjlFa7BNXhPXnyJLa2xksfVx0uf3fh4cUP4zrAFfOGRi7xXoK9hQXB5WIb\nnnd1xd3a2rgiVq5UB2G6uMD+/ca1XQN+Gj/auKhV94pFMVqdFktzS4Pb7d8fTpxQL0cl46ckEkkd\nERoaWufVLyX3NrVxvrsAnYBPgdkl091kQJFI7ivatWunT+Cfk5PDzp07TayoItosLamLUjkRfoLr\nR6+bREO/xo0BcLW0pNgUr7bz8uCpp+D8eXjsMePbr4G+rdRS0dbm1sRmxqITOhKzE2vY6+546inw\n8DCoCYlEIpFUgkGzndQlMh5NUp/55JNPSEpKol+/fgQGBrJ9+3aeeOIJnOvBaLaz/3eWgqQCXMJd\ncPm7CxaOxu+BuVpUxLm8PLo4OBCfn8/K9HSe1WhofVNqqzonPR1mzFDTDdrawvHjhrV3h5y7eo5T\naado69aW6bunE3k2ku7NurPi+RUGt52QAP/9L4wZoyaGkdQfZMy3RHLvUt33t0rnW1GUoUKIXxVF\nGVfZdiHEf+tQY43IG4PkXuC9997jyy+/JCAggK+++orWrVubWhJCiCrzoRqbiRcv8kNyMmGNGvGO\nlxf+hna+c3LUUJP8fHX57FmwswNra2jUyLC274Dcwlz+d+h/9Gvdj4c0DxncXufOalIYULOfjBhh\ncJOS20A63xLJvcudOt//FEJ8oyjKpMq230aJ+TpB3hgk9wInTpzA3d2dRvXQsQMovlFMUVoRDZqZ\nJhd5RlERjhYWmBvzYeC558qqyri7q474zz9DWFj1+z0AvPKK6nQDjB4NX35pWj2SikjnWyK5d7kj\n57u+IW8MEsmdk742nQvjLnDj/A1sWtnQ5XQXU0syHr/8Ai+9pM4//DAcOwb3wOCnrPws9iXuo9dD\nvQxmY/t2CApS5z091RCUevKSRIJ0viWSe5m7LbLTQFGU0YqifKUoyo+lU93LlEjuH+Lj45k7d269\nGXxZkFDAjZgbIODGhRsU5xquiEtNFAvBjmvXeOv8eRYkJxveYGioWsoR4PTpep9Xr1hXTJ9FffD6\n3IuvDn6FVqc1mK0ePcqK7Fy+DHPmGMyURCKRSEqoTbaThUAT4BlgB9AUME3KBInkHuDLL7+kQ4cO\nHDhwgIaGjmmuJZ6veWLbpiT9YRFkbjOdAzo3MZGhp09zNi+Pro6Ohjeo0cDf/qbOt20L8fGwd6+a\nZ68ekluUSyf3Tix4bgGRgyOxMDNcL72FBZSvbH3mjMFMSSQSiaSE2jjfDwkhPgByhRA/A32ARw0r\nSyK5N4mMjGTJkiVkZmbSqVMnAgICTC1JT6Nny+LQ0yPTTaLhUHY2b1+4QGJBAUdycmhhY2Mcw/Pn\nq127770HzzwDr76qDr6sZ0TFRNF4ZmM+2vkR8w7MM4rN8ePBykp9QfDss0YxKZFIJA80tXG+S8vB\nXVMU5RHAEfAxmCKJ5B7mypUr7NmzByEEq1atMrWcCti0LHN0035PwxTxnR3s7WlsqRaQSSks5OB1\nI71Ea9dOTWrdowccOQJ//QXh4caxfRt0dO9IkU695e6K28X+xP1M3z2d6wWGu05hYXD1KqxZo45N\nlUgkEolhqY3z/a2iKM7AB0AkcAqYaVBVEsk9SlhYmD6t365duxgzZgw//lg/hkjYtbNDsVIwa2iG\nc4izSeK+zRWF0HKZYIafPs3Lxox1cHcHLy/j2btNmtg1oYunOhi2WBTT+7feJGYnkleUZzCbVlZg\nZqamQn/xRRhXaXJZiUQiuf8YMWIEH374odHt1uh8CyG+F0JkCiF2CCGaCyFchRD/M4Y4ieRew83N\nja5duwJqfu24uDg6depkYlUqDoEOdDrciR6ZPXhk+SNY2Jkm40e/cs53dnExH5uisktGBixaBPXs\n7QSUVbsECGkewpe9v8TNzs2gNk+dUlMOBgaqKQclkvqGj48Ptra2ODg44O7uzssvv0xe3u0/lBYW\nFjJy5Eh8fHxwdHQkICCA9evX67cPGzYMDw8PHB0dad26NT/88EOF/c+cOUNwcDBOTk60bNmy3r3h\nrIklS5bw8MMPY2dnR4sWLdizZ0+l7ebPn0/nzp1p0KABL7/88m1vl1RPbbKdOCmKMkZRlP8qivJF\n6WQMcRLJvchz5d7dm5ub07ZtWxOqqUjDNg0xszRDm6PlRuwNk2h4SqOhgZl660kqLCSv2Mg98Bs3\ngo8PLFlSL/PqlXe+159fT2FxocFtduoEa9fC66+Dn5/BzUkkt42iKKxbt47s7GwOHz7MwYMH+fjj\nj2/7OFqtlmbNmrFr1y6ysrL46KOPeP7554mPjwfg3XffJS4ujqysLCIjI3n//fc5cuQIAMXFxfTr\n14++ffuSmZnJN998w9ChQzl//nydnquh2LRpExMnTuTnn38mJyeHnTt30rx580rbenp68sEHH/DK\nK6/c0XZJ9dQm7CQKNcb7OBBdbpJIJJUQGhoKqL3gnp6eJlZTkZy/cjgacpR97vtI/s4Iaf4qoaG5\nOSPd3Xm7aVN2tm+Pr40NhTqdcYxrtWqKj3/9C376Cfr1M47d26CNSxsC3AMY2nYoX/X+ivXn1zP2\nj7GcSTdeeI6x/h0Sye1QOk7F3d2dZ599lhMlGYvMzMy4ePGivl11oQS2trZ8+OGHeJWEn/Xp0wdf\nX1+io1W3xt/fH8uScSml1YEvXLgAqL3eycnJjB07FkVRCAoKonv37ixcuLBKzcHBwWi1hksXejtM\nnjyZDz/8kM6dOwPqdXR3d6+07XPPPUffvn3RaDR3tL08M2bMoGnTpjg4OODv78+2bdv025KTkxkw\nYACurq74+fkxb17ZQPPExETCw8NxdXXFxcWFMWPG6LedOXOGoKAgnJ2defTRR1mzZo1+m6+vL7Nn\nz6Zdu3Y4OzszePBgCgvVTowjR44QEBCAo6MjgwYNIr+0+nEttNYltXG+GwghxgkhfhJC/Fw6GUSN\nRHIf0Lp1a44dO8aJEyfo2LEjAwcO5O233za1LAAsXS1pOqYpXZO70vzTyns8jMG8Fi2Y6O3NxsxM\n/nb4ME8dO2Ycw717Q3AwzJgBmzYZx+ZtoigKB0cdZGH/hWyK3cSsvbNws3PDwdrBoHYvXoQhQ9Sw\n+PLpByWS+kZCQgJRUVF07Njxro+VmppKTEwMbdq00a8bPXo0DRs2xN/fHw8PD3r37g1Q6SB1IYT+\nIeBmLl++DIBFHRf1CgsLw9nZGY1Gc8vfvn37VrqPTqfj0KFDXLlyhRYtWtCsWTPeeOMNCgoK6lTb\nzZw7d4758+cTHR1NdnY2GzZswMfHB1CvXVhYGB06dCA5OZktW7Ywd+5cNm3ahE6nIzQ0FF9fX+Lj\n47l8+TKDBg0C1LcXYWFh9OrVi7S0NL744gteeOEFYmJi9HaXLVvGxo0biY2N5dixYyxYsICioiL6\n9+/PSy+9REZGBv/4xz9YsWJFrbTWNbXK860oyihFUdwVRdGUTgZRI5HcByiKQtu2bYmNjWX9+vX0\n6tWr3jjf1k2sady3scnivctjqShohWCWnx+b2rUzjtEePcrmf/sNpk2DqVONY/s2KB20u6DfAnaO\n2Mm7j72Lh72HQW0eOwaLF0NKChQWgix2KKnA5MnqVFfLd8Bzzz2HRqPh8ccfJygoiIkTJ97V8bRa\nLUOHDmX48OG0bNlSv37+/Pnk5OSwe/du/v73v2NtbQ2oHSuurq7MmjULrVbLxo0b2bFjR6Wx55s3\nb2bcuHE0adKEX3/9tUYt5Z3AmlizZg2ZmZlkZGTc8jcyMrLSfVJTUykqKmLFihXs2bOHo0ePcuTI\nkTsK3bkdzM3NKSws5MSJE/qQH9+ScT4HDx4kPT2d9957D3Nzc3x8fBg5ciRLlizhwIEDJCcnM3Pm\nTBo0aICVlRXdunUDYP/+/eTm5vKf//wHCwsLgoKCCA0NZfHixXq7Y8eOxc3NDScnJ8LCwjh69Cj7\n9+9Hq9UyZswYzM3NCQ8P178FqElrXVMb57sQ+AzYR1nIySGDqJFI7iM6d+7M0qVLGTFiBB4ehnWc\nbpf8pHzipsVxvN9xk6QcBHCwsGBa8+Y84eSElVltbkV1QK9ypdqjoiApqaJDXs9QjBiTHhoK9vbq\nfGJivUyDLnnAWb16NRkZGcTGxjJv3jy9U1wVixYtwt7eHgcHB/r06VNhmxCCoUOHYm1tXSHUoRRF\nUejWrRsJCQl8/fXXgNqDvWrVKtauXYu7uzuff/45AwcOpGnTprfsHxISgrm5OePGjWPo0KEAZGVl\nERERwbRp0yq0zc7Oxs7OjvPnz7Ny5UqmTp3K4cOHb+va1IRNSU2FMWPG4OrqikajYdy4cURFRdWp\nnZvx8/Njzpw5TJ48GTc3N4YMGUJySWXjuLg4Ll++jEaj0ffeT5s2jdTUVBISEvD29saskt+GpKQk\nfdhQKd7e3vo3DaCGfZZia2tLTk4OSUlJt4SCent710prXVObX7xxqIV2fIQQviWT6d5XSyT3KPUl\n7i/nVA77m+4n9t1YrkZeJe+s4dLY1RadEFy6YYQBoJ06QePGJUZ1MHw4BAUZ3u5dEHctjq8Pfk2/\nJf3YeGGjwexYWqoROaXcRkecRGIUquoosLW1rdD7nJKSAsCQIUO4fv062dnZrFu3rsI+r7zyCunp\n6URERGBubl6lTa1Wq4/5BnjkkUfYvn07aWlp/PHHH1y4cIHAwMBK9z169GiF0JjS7CpFRUUV2m3d\nupWgoCDWrFmDp6cnb775JrNmzapSU+/evfUPFTdPNz9klOLk5FTpQ4IxGDRoELt27SIuLg6ACRMm\nAODl5UXz5s3JyMjQ995nZWWxdu1avLy8iI+PR1fJABQPDw8SEhIqrIuPj69xjJW7uzuJiYm37Fcb\nrXVNbZzvk4Dpf50lknuQ1NRUJk2aRGBgYIUsKKbE1s8WpyAn/XJGVIbJtGRptQw9dQq3vXsZZox8\n32ZmaoXLUv74w/A275IlJ5awL3EfA9sMpJOHYdNWPvZY2fzs2QY1JbnXqAdhJ1XRoUMHFi1ahE6n\nY/369ezYsaPa9q+++ipnzpwhMjISKysr/fq0tDSWLl1Kbm4uOp2ODRs2sGTJEoLLPZUeP36cgoIC\n8vLymDVrFikpKQwfPvwWG6dOncLf3x9FUaoMBSmloKAAKysr3nrrLQIDA0lMTKw23CEqKkr/UHHz\ndPNDRnlGjBjBvHnzSEtLIzMzkzlz5hAWFlZp2+LiYvLz8ykuLkar1VJQUEBxucxUNW0v5dy5c2zb\nto3CwkKsrKywsbHRP+wEBgbi4ODAzJkz9cc6efIkhw4dIjAwEHd3dyZMmEBeXh4FBQXs3bsXgC5d\nutCwYUNmzpyJVqtl+/btrF27lsGDB1d7nbt27YqlpSXz5s2juLiYiIgIDhw4UCutdU1tnO9i4Kii\nKN/IVIMSSe0RQnD+/Hn27NlD586diYiIMLUkAMyszXAd7KpfzvjDdM733IQEdmdlkV5UxK/+/sYx\n2q8fPP00fPYZuLjAP/8JVfQWmRIhBF8e+JLdCbtZe24tYS3D0NgYdrhNSaIeQI37LjR8lkOJpFZU\nF4I1Z84cIiMjcXZ2ZvHixfTv37/KtvHx8Xz77bccPXoUNzc3fQ/y4sWLURSFr7/+Gi8vLzQaDePH\nj2fu3Ln6DFYACxcuxN3dnSZNmrBt2zY2bdqkz45SHo1Gg6OjI0uWLKF79+5V6snKyrolY8iqVat4\n7733qrscd8QHH3xAp06daNmyJW3atCEgIIB3330XUHvTp0+frm/78ccfY2try4wZM/jtt9+wtbXl\nk08+qfX2UgoKCpgwYQIuLi54eHiQlpbGp59+CqhZatasWcPRo0fx9fXF1dWVUaNGkZ2drd8WExND\ns2bN8PLy4vfffwfA0tKSyMhIoqKiaNy4Ma+//joLFy6kRclI8ao+K5aWlqxYsYKffvoJjUbDsmXL\nCC9X6bg6rXWNUlO8p6IoL1W23tgZTxRFEaaKTZVI7oQjR47oXzm6ubmRlJRUafyaKchPzGe/1351\nwRx6XOthkkGYvY4dY0NmJgDftGzJ/xkzNv76dRgwQO0J790bWrc2nu1a0v5/7TmWqmaCiRwUSVir\nMH36M0Px7rsQEKCGoDg51dxeYjgURUEIYZTAf/kbaxzi4uJYsGABkyZNAmDlypWEhobqHfg1a9bQ\ns2dPUlJS9M6k5N6kuu9vbSpc/gz8DuyXqQYlktrTtm1bGpVUc0xNTeXo0aMVBoSYErMGZmXf/mK4\ntu2aSXQ8U67HZ016OltKHHGjYG8PGzao9dTroeMN8IxfWYjMpO2TaPt1W76J/sagNj/9FMLDwdoa\nomVFB4mkzsjJyWH58uVER0dz8uRJAPLz8/WOd+lgy/DwcH0vr+T+pDY932HALMBKCOGrKEp74CMh\nROXJJA2EfCqX3IsMHjyYJUuWAGBnZ0fXrl3ZuNFwg+Zuh0ufXKIwqRDNsxqcg5wxb2iY2LbqOJWb\nS5uDB/XLfTQaIh99FDNTVJ4sKlJHHdYjtlzcQsjCEAA0DTSsHbKWzp6dsTAz3FuKvDzV+d69G7p1\ng/Xr62Uh0AcC2fN9f5OZmUl0dDQhISGmliIxAHfV8w1MBgKBawBCiKOAYRIfSiT3Gc+UG9zXpk2b\neuN4A/i850PL+S1pHNrYJI43gL+tLU3LpQub6O1tXMe7uBjmzlVjwL291QqY9YgezXpgY6GmCMvI\nz6CJXRODOt4AtrbwxhuQkKC+GJCOt0RiGPbs2UPPnj1NLUNiAmrjfGuFEFk3rZOPxxJJLSjvfB8+\nfJicnBwTqrmV/IR8kr5N4uyrpknqrCgKzzg7A9DM2pr0m1JwGRwzMzWp9SuvwJkzaun5eoS1hTU9\nfXoC0NCyIafTT1OsK+Z6wXWD2u3dW8Z7SySGJjQ0tM6rX0ruDWrjfJ9QFGUIYK4oSgtFUeYBew2s\nSyK5L3B3d2fQoEH85z//YePGjRQUFLBr1y5TywJAV6jj6ONHubbjGo49HBE60zxTj2/WjNOdOxPb\npQt+DRrwZWKicQr//PknjBqllnWMjQUHw5Zvv1Pee+w9tr20jagXovj52M+4znI1eNx3KadPq0VA\nJRKJRFJ31Cbm2xZ4D3i6ZNVGYKoQIt/A2m7WIePRJPcseXl59OrViyNHjhASEkJERIRRqxdWhaEz\nZ9yOjkcPHiRXp+NZjYZZfn7YGii/qp5ffoGXSpI5Pf447NgBly6Bj49h7d4hh5IOceLKCZ72e9rg\npeYzMtQonJwcNQw+KwtKCuRJjIiM+ZZI7l2q+/7W6HxXcUBvIUTcXSu7PZvyxiC5p9m+fTuBgYHY\n2tqaWkqlaLO0mDUww8zaNOkQUwoKcLOyMt7DQGoqNGmizisK+Pmp3uaJE1CSpeZBRQhwd1cvEcCe\nPergS4lxkc63RHLvcscDLhVF6aooygBFUVxLltsqirII2G0AnRLJfU3Pnj3rneMthODiuxfZ12wf\nu512k7463WRamlhbG7cX3s0NSks/C6EW27l8+Z5wvNPz0onNjDXY8RWlYsGd9bMbqvUAACAASURB\nVOsNZkoikUgeOKp0vhVF+Qz4EQgH1imKMgnYBPwJyMzvEskdIITg1KlTfPfdd6aWAqhP5mkRaRQk\nFACQsdl01S4BcrRa1qSn80ZMDLmVlCquc559tmz+7Fl1AGY9Znf8bgK/C8TvCz9WnF5hUFu9epXN\n//BDvUsEI5FIJPcs1f3S9AE6CCEGo8Z7TwB6CCHmGjveWyK5H9DpdDz88MP06tWL6OhoCutJ7e5W\n37bSz2euzzTOYMdKEELQ/cgRxp0/j42ZGVpj6Ch1vhVFDXQuLFRjv2/cMLztO8DOyo6nmj9FzBsx\nvNPtHYPaCg4um09KUpPCSCQSieTuqc75vlHqZAshMoGzQogY48iSSO4vCgsLef/997GwsCAzM5Mv\nvvgCKysrU8sCwKGrA+aO6uDGgoQC8k7lmUTH/507x1+5uZzPz8fNygpHY6Tg6tIFliyBtDQ1yLlx\nY3jnHdXbrGcMXzWcDt904NPdn7IzbqfB7Tk7q5fH0REGDACdzuAmJRKJ5IGgOufbT1GUyNIJ8Llp\nWSKR1BJLS0uWLFnCiRMnyMnJYe/e+pOt08zSDNvWZbHoKYtSTKKji729fn5DhpHCXywsYOBANc57\n1Cg128nBg+rgy3qGl4OXfn59zHoOJx9md7xhh99EREB6OixbBs2bG9SURCKRPDBU53z3A2aXm25e\nlkgktURRlAoFd7766ivefPNNCgoKTKiqDOumapVJC40Flo6mKbH+jEajn9+Wmcmzf/3FRWOGf7Rr\nB+U01Deeeajs8/PTsZ8YsmIIh5MPG9SmhwdcuQI//QSDBqmOuEQikUjujirf6wohdhhTiERyv9Or\nVy/+97//ARAVFcUHH3xAYWEh1uXKq5uKVt+2otmEZth3tEcxM03eb68GDfC3teV0Xh5aoKOdHa6W\nJngQuHwZNm2CsLB6lfmki2cX7K3suV54HZ3QsXrQalo1blXzjnfJqFHQsCE88wzUg4+qRCKR3DYj\nRozAy8uLjz76yNRSgNpVuJRIJHVAUFCQvpRwbm4uw4cPx75cqIUpsdRY4tDJAcVMoehqEbpC0wT4\nlu/9ztPpsDN26eUXX4S2bSEqCq5dM67tGrA0tyS4edkoyA0XNhjF7rp18Pvv8MorUE8+rpIHEDMz\nMy5evFhh3ZQpUxg2bFil7QsLCxk5ciQ+Pj44OjoSEBDA+nI5M4cNG4aHhweOjo60bt2aH374ocL+\nPXv2xMbGBgcHB+zt7fH396/7kzIANZ337bY9c+YMwcHBODk50bJlS1atWmWM07jvkc63RGIkHBwc\n6FZSqcTHx4dLly6ZVtBNJH2bxOGuh9nnvY+cv3JMoqG3RkMXe3smeXvzopubcY3n50OfPvDVV6q3\nWQ/jvp9u/jQ+Tj78M+CftGrUiojTEfx89GdTy5JIDE5VNQCqWq/VamnWrBm7du0iKyuLjz76iOef\nf574+HgA3n33XeLi4sjKyiIyMpL333+fI0eOVDjuV199RXZ2NtevX+f06dN1f1IGoKbzvp22xcXF\n9OvXj759+5KZmck333zD0KFDOX/+vLFP675DOt8SiRGZPXs2Z8+eZdOmTRw6dIiwsDASEhJMLQsA\nKw8rfD/xpXt6dxw6OZhEw1MaDfsDAnhKo+HX1FTaHDjA9sxMwxsurWo5aBCMH68W3amH/F/A/3Fx\nzEVGdx7NgGUD+O7wdwgMrzUqCvr2VZPB7NtncHMSyS3cbgpUW1tbPvzwQ7y81IHKffr0wdfXl+jo\naAD8/f2xLAlrE0KgKAoXLly4Y5vBwcFo60Ey/JrO+3banjlzhuTkZMaOHYuiKAQFBdG9e3cWLlxY\nqe0ZM2bQtGlTHBwc8Pf3Z9u2bQAkJyczYMAAXF1d8fPzY968eRX2S0xMJDw8HFdXV1xcXBgzZgwA\np0+fJigoCGdnZx599FHWrFlTYT9fX19mz55Nu3btcHZ2ZvDgwfoUvkeOHCEgIABHR0cGDRpEfn7F\nDNlVaTUWNTrfiqK0VBTlO0VRNiqKsrV0MoY4ieR+o1OnTrRs2ZLJkydz8OBBXnjhBZydnU0tC4DG\noY1xftIZ8wbmppbCgexsnCwsWNC6NY85ORneYKtWYF5y3vHxsHQpTJ4MsYarInknmJuZoygKD7s8\nzJV3rvDHC38wvP1wg9sdPhzWrIGrVyHFNMlwJJK7IjU1lZiYGNq0aaNfN3r0aBo2bIi/vz8eHh70\n7t27wj4TJ07E1dWVxx57jB07qh4Gd/nyZQB9WGFdERYWhrOzMxqN5pa/ffv2rdUxKjvv6tqeO3dO\n37ayhw8hBCdOnLhl/blz55g/fz7R0dFkZ2ezYcMGfHx8EEIQFhZGhw4dSE5OZsuWLcydO5dNmzYB\nav2L0NBQfH19iY+P5/LlywwaNAitVkvfvn3p1asXaWlpfPHFF7zwwgvExFTMeL1s2TI2btxIbGws\nx44dY8GCBRQVFdG/f39eeuklMjIy+Mc//sGKFStq1GpUhBDVTsAx4DUgEAgonWrar64nVapEIjEk\nOp1O5MbkigvvXxBpa9NMLce4hIUJofZ5C9G0qRD//rcQly6ZWlW9YPz4skszerSp1Tw4lPzu1Yvf\n2EkXLwq2bbtlmnTxYq3bV9W2NiiKIi5cuFBh3eTJk8WwYcNq3LeoqEiEhISI11577ZZtOp1O7Nmz\nR3zyySdCq9Xq1x84cEDk5OSIwsJC8fPPPwt7e3txsRL9mzZtEs8//7wYMmSIWLhwYY1ali9fXmOb\nuqK6865N26KiIuHn5yc+++wzUVRUJDZs2CCsrKxEr169btn//Pnzws3NTWzevFkUFRXp1//555/C\n29u7Qttp06aJl19+WQghxN69e4Wrq6soLi6u0GbXrl3C3d29wrrBgweLKVOm6Jd9fHzEokWL9Mvj\nx48Xr732mti5c6fw9PSssG+3bt3EBx98UK3Wuqa6729twk60QoivhRAHhBDRpZMhHgQkEolpOR52\nnAMtDhD/cTxJX9WPQjNFOh0FxqjwEhJSNh8YCDNngre34e3eIUIITl45yey9s5mweYJBbZXLkskf\nf0BxsUHNSSS3YG5uTlFRUYV1RUVFWFpasmjRIuzt7XFwcKBPnz4V2gghGDp0KNbW1reEO4Aa292t\nWzcSEhL4+uuv9es7d+5Mw4YNsbS05MUXX6R79+5ERUXdsn9ISAjm5uaMGzeOoUOHApCVlUVERATT\npk2r0DY7Oxs7OzvOnz/PypUrmTp1KocPGyZdaE3nXZu2FhYWrFq1irVr1+Lu7s7nn3/OwIEDadq0\n6S3H8PPzY86cOUyePBlXV1eGDBlCcnIycXFxXL58GY1Go++5nzZtGleuXAHUkBNvb2/MzCq6o0lJ\nSfpwmFK8vb31bxlKcSs3NsjW1pacnBySkpLw9PS8Zd/KtLq5uem1GpPaON9rFEX5l6Io7oqiaEon\ngyuTSO5zduzYwTvvvEP79u05ePCgqeUA4DrQVT+fcyTHZKXmAaKuXiX8xAlc9+4l6upVwxss73xv\n3VrvPcyk60n0WdSHmIwYejTrYVBb3buXpRm8eBF++cWg5iSSW2jWrNktg9RjY2Px9vZmyJAhXL9+\nnezsbNatW1ehzSuvvEJ6ejoRERGYm1cdUqfVam+J+S6PoihV3g+PHj1Kx44d9culmUNufljYunUr\nQUFBrFmzBk9PT958801mzZpVpc3evXvrHypunm5+yLiZ2p53TW0feeQRtm/fTlpaGn/88QcXLlwg\nMDCw0uMMGjSIXbt26QdsTpgwAS8vL5o3b05GRgYZGRlkZmaSlZWlj9/28vIiPj4e3U0dLB4eHreM\nh4qPj7/Fqa4Md3d3EhMTb9m3Mq1xcXF6rcakNs73S8C/gb1AdMl0yJCiJJL7HSEEERER/PXXX3z2\n2We0b9/e1JIAcBvihoWzGrdYmFxoslLzx3Ny+C4pif3Z2bzcpAn9XVwMb9TfHx5+GPr3h//8R/Uw\nX3oJKhmoZGrOXT3HouOL8HP240nfJwltGWpQe9bW6uUpJTfXoOYk9ZDJvr6Inj1vmSb7+ta6fVVt\na8PAgQP5+OOPuXz5MkIINm/ezNq1axkwYECV+7z66qucOXOGyMhIrKys9OvT0tJYunQpubm56HQ6\nNmzYwJIlSwgOVlN5ZmVlsXHjRgoKCiguLua3335j165dFQqllXLq1Cn8/f1RFIXIyOqLfxcUFGBl\nZcVbb71FYGAgiYmJ+FZzTaKiovQPFTdPNz9k1Oa876Tt8ePHKSgoIC8vj1mzZpGSksLw4cNvaXfu\n3Dm2bdtGYWEhVlZW2NjYYGFhQWBgIA4ODsycOZP8/HyKi4s5efIkhw6pbmRgYCDu7u5MmDCBvLw8\nCgoK2Lt3L126dKFhw4bMnDkTrVbL9u3bWbt2LYMGDar2fAC6du2KpaUl8+bNo7i4mIiICA4cOFCt\n1poeUOqcquJR6tuEjPmW3Ec888wzAhCAWLlypanlVOB4+HGxjW1iG9tE7EexJtGwNDVVHyfa5dAh\n4xnW6dS/b74pRP/+QsyfL0RKivHs15KpO6YKJiOYjBgWUXPMa12weLEQb7whxLp1QuTkGMXkAw/1\nKObb1Ny4cUOMHz9e+Pj4CCcnJxEQECDWrl1bZfu4uDihKIqwsbERdnZ2ws7OTtjb24tFixaJtLQ0\n8cQTTwhnZ2fh6Ogo2rZtK3744Qf9vmlpaaJz587CwcFBODs7i65du4otW7ZUaic5OVmMGDFCLF68\nWKSnp+vXX7p0qUJ88rVr18TGjRsr7Pvpp5+K3NzcO70kt33eQgjx7LPPimnTptWqrRBC/Pvf/xbO\nzs7C3t5e9O7d+5a4+1L++usvERgYKBwcHESjRo1EWFiYSE5OFkKo12jw4MGiSZMmQqPR3HI9ExIS\nxHPPPScaNWokXFxcxNixY4UQQpw6dUo88cQTwtHRUbRp00asXr26gk1fX98Kxyk/BuDQoUOiQ4cO\nwsHBQQwaNEgMGjRIH/Ndnda6pLrvryJqeK2sKIol6oDLx0tWbQe+EUIUVbmTAVAURdSkVSK5V3j3\n3Xf18YD//Oc/mT9/PoDxn74r4djTx8jcpKb3c3zMkQ47OxhdQ0ZRES579qBDfT13JjCQRpaWaExR\n8bIecvDyQQK/V1/9Olo7MqzdMOKz4lk9aLVR7OfkgKKolS8lhqMk1MEoJWflb2zdEhcXx4IFC5g0\naRIAK1euJDQ0VJ/ecM2aNfTs2ZOUlBRatGhhSqkSA1Hd97c2YSdfo2Y4+apkCihZJ5FI7pDyry9/\n/fVXXF1d2bt3rwkVldHsg2Y0bNcQr3974TPFxyQaNJaWdC4pp6gD2h06xI56VnHSlHR074jGRh16\nk1WQhblizgePf2Bwu4sXw+OPQ5Mmali8RCK5lZycHJYvX050dDQnT54EID8/X+94lw62DA8P5/ff\nfzelVImJqE3P9zEhRLua1hka+VQuuZ8oLCzE2dmZvDw1pnrfvn387W9/M7Gq+sWk2Fg+KhkMM9zN\njZ+MXd75r79g9WrYvBkmToRevYxrvwYGLR/E0pNLAZgZMpN/d/+3wW3u2KEWAu3RQ/Z6GwPZ831/\nkJmZSXR0NCHlB3VL7nvutue7WFEUfZ1lRVGaA/U7DYBEUs+xsrLi8ccf1y9XVrTAlAghyD2dS+K8\nRPLOmWbQ5dOasqRKcQUFxhewbRtkZsKECfDYY8a3XwNP+z2tn9+dsBu4/SqAt8sTT6hpB6XjLZHU\nnj179tCzZ09Ty5DUI2rT8x0M/ARcBBTAGxghhDBqLU75VC653/jiiy9YtmwZwcHBPP/887i5uWFj\nY4Otra2ppXFu9Dmurr2K81POeI3zouHDxve2inQ6fklNJdjJCa8GDTiak0NjS0u8GzQwrOGcHFi2\nTO3xzshQE1vXQ5KuJ/H94e95wvsJDicfZuulrcRmxnL8teMoimE7S4WAI0fA1RUqSfkrqSNkz7dE\ncu9S3fe3Rue75ADWQCtU5/uMEMLo3VDyxiC5X/nf//7Hd999R0xMDOvWreOxetDLWpxXjJmNmcGd\nuNrwTVIS7168iJuVFZ/5+dGnUSPDGszKgkaNyvJ8p6WpyzpdWQn6eoRWp2XsH2N53PtxnvR9EpeG\nhk3LOHQoLF8OBQUwZQp8+KFBzT3QSOdbIrl3uSPnW1GUJ4UQWxVF+Xtl24UQEXWosUbkjUFyv7J1\n61asrKwIDAysMSerqRBCmMwRv3TjBpZmZniWVnkxBt26wb596vyTT8L58zB9OgwebDwN9ZSXXior\nsvPWW/Df/5pWz/2MdL4lknuX6r6/FtXs9wSwFQirZJsAjOp8SyT3K08++aSpJVTK9aPXiZ8ez7Ud\n13Dq6USbxW1MosPHxsb4RkNCypzv/HxYvx5atza+jjsguyAbB2sHgx1/4MAy53vLFoOZkUgkkvuW\n2sR8+wohYmtaZ2jkU7nkfken03Hs2DGaNWtGI0OHVtSCEwNOkL4iHYAGDzXgbzGmzcaSUVTEtmvX\neMjGhnZ2doY1tmuXmlMPoHlzqKbsdH0gX5vPxM0T2Ry7mZzCHC6OuWiwNxU5OeDsDFqturx/P3Tp\nYhBTDzyy51siuXe522wnKypZt/zuJEkkkvJMnz4dNzc3Bg8ezNmzZ00tBwD/X/xRrNT7Rv75fAqS\nTJBxpITZCQk027eP2QkJZBQZob5Xly5lKT3i4iApCW7cgOvXDW/7DrA2t8be2p6pPacS80aMQUOE\n7OwqDrKspsq1RCKRSCqhSudbUZTWiqKEA46Kovy93DQcMHC6AYnkwWH79u2cPHkSjUbDd999R7du\n3UwtCQBzW3McuzvqlzO3ZJpEx5bMTKZeukSuToe9uTlBzs6GN2plBbNmQWQkLFwIL76opvZYu9bw\ntm+TqJgo/Of7M3XnVNbFrMPCrLpowrohPFz96+Iis51IJBLJ7VLdXboVEAo4UTHu+zowypCiJJIH\niUWLFvHrr78CsHnz5nqR7aQUuwA7rm1TK0umLEihybAmRtfQwsaGrJLMI7uysijQ6bA2q81Lu7vk\n1VfVv3v2wNixapJrB8PFUt8pjtaOnL2qvi3ZHLsZrU5LzNUY/F0MV5Ro7Fj1eeSRR8AY/wqJRCK5\nn6jS+RZCrAZWK4rSVQixz4iaJJIHiuDgYL777jsA1q9fT/v27enYsSPe3t4mVgZoy2aLrhoh3KMS\nmjVowEM2Npy/cYMbOh1vxsTwvKurcXrAAbp3N46dOyTQMxA7KztyCnO4dO0SjWY2olWjVuwfuR8z\nxTCesZeX2uN94YKaDr1TJ3WSSCQSSc3U5s78qqIoTqULiqI4K4ryY20NKIrSS1GUM4qinFMU5T/V\ntBugKIpOUZSOtT22RHI/UD7byYEDB/jqq69IS0szoaIy/Gb50eLLFnQ+1ZlOR0znXYWUc7QPXr+O\nvanybV+8CJcvm8Z2FViaW/K4d1m11A8e/4ADow4YzPEuZepU9WXA3r1qCnSJRCKR1I7a3J3bCiGu\nlS4IITKBDrU5uKIoZsCXwDNAG2Cwoii35OtSFMUOeAPYX5vjSiT3Ey4uLrRv316/PHbsWDrVk25E\nxVzBc7QnDf0blo7cNomO8s63pZkZnYwd/rFoEfj5qb3ge/ca13YtCPEN0c8fuHzAKDb//W9ITFTT\nDgYGGsWkRCKR1CkjRozgQxNUCquN822mKIr+l09RFA3Vx4qXJxCIEULECSGKgCVAv0raTQVmAKZL\npyCRmJDg4GD9/OHDh02o5FauR1/nwvgLHOp4iJSfUkyiIcjJCRszM4KcnHiucWPjC2jdWu3qTUqC\nf/zD+PZrILi5+vnxb+xP68atSctNY/359Qa1aWMD9aAAquQBwcfHB1tbWxwcHHB3d+fll18mLy/v\nto9TWFjIyJEj8fHxwdHRkYCAANavL/uuDBs2DA8PDxwdHWndujU//PBDhf3PnDlDcHAwTk5OtGzZ\nklWrVt31uRmDms77Zmq6Dvb29jg4OODg4IC9vT0WFhaMHTvW0Kdx/yCEqHYCXgROozrIU4EzwLCa\n9ivZNxz4ttzyUOCLm9q0B5aVzG8DOlZxLCGR3K8cOXJE/PjjjyI2NlYcO3ZMzJ49Wxw7dszUsoQQ\nQqQuTRWxk2PFtd3XRHFhscl05BcXi8zCQhFx5YoYffasWJqaanijublC9OghhIWFEDY2Qty4YXib\nd0CxrlgkZiWKouIi0fGbjsJxmqN4bslzQlusNajd3FwhfvpJiKefFuLHHw1q6oGk5Hevxt/aupjq\n+2+sj4+P2Lp1qxBCiKSkJPHII4+IiRMn3vZxcnNzxZQpU0R8fLwQQoi1a9cKe3t7ERcXJ4QQ4tSp\nU6KwsFAIIcTZs2dFkyZNxOHDh4UQQmi1WtGyZUsxZ84codPpxNatW0XDhg1FTExMXZyiQanpvG+m\nuutQ2bHt7e3F7t27DSPegAwfPlx88MEHBjl2dd/fGnu+hRC/AAOAVOAK8HchxMJa+vaV9Yvo31sr\najLaz4G3a9hHIrmvad++PSNGjGDu3LmEh4cTExODWT1JI+H6vCs+k3xw7O6ImaXpNFmbmbEsLY1v\nkpLwadCAjoYutANgawupqWpFmRs3YMcO2LoVTpwwvO3bwEwxw9PBEwszC37q9xPp49NZOXAl5maG\njY0PDoYRI2DjRjh1yqCmJBJ92Ju7uzvPPvssJ0q+h2ZmZly8eFHfrrpQAltbWz788EO8vLwA6NOn\nD76+vkRHRwPg7++PpaWl3p6iKFwoKbJ15swZkpOTGTt2LIqiEBQURPfu3Vm4sGqXKDg4GK1WW+V2\nY1HTed9MddfhZpYtW4arqyvdqxicPmPGDJo2bYqDgwP+/v5s27ZNvy05OZkBAwbg6uqKn58f8+bN\n029LTEwkPDwcV1dXXFxcGDNmjH7bmTNnCAoKwtnZmUcffZQ1a9bot/n6+jJ79mzatWuHs7MzgwcP\nprCwEIAjR44QEBCAo6MjgwYNIj8/v9Za65JahY8IIU4qipJGSX5vRVGaCSHia7FrItCs3HJTIKnc\nsj1qLPj2Eke8CWqGlb5CiFvevU+ePFk/37NnT3r27Fkb+RLJPcOMGTP4/PPPTS2jUoQQ5J7IRZuh\nxekJp5p3MACjPDwY5eFhXKMhIRATo8737QsdO8J776l59uohbd3aGs3WqFFqhUuA48eNZva+Zfv2\n7Wzfvt3UMuo9CQkJREVFMWDAgLs+VmpqKjExMbRp00a/bvTo0SxYsIAbN27QsWNHevfuDZQ5/+UR\nQugfAm7mcsngbAuLus29HxYWxu7du/XjcMr/7dGjB5GRkTUeo7LzvpmqrsPN/PLLL7z44ouVbjt3\n7hzz588nOjoaNzc34uPjKS5JHSuEICwsjP79+7N06VISEhIICQmhdevWBAcHExoaSkhICL/99htm\nZmYcOnQIAK1WS1hYGCNHjmTTpk3s2rWLfv36ER0dTYsWLQD1gWDjxo1YW1vTrVs3FixYwIgRI+jf\nvz/jxo1j9OjRrFq1isGDBzNhwoQatdY5VXWJi7JXUX2BGCAXiAV0wMma9ivZ1xw4D3gDVsBRwL+a\n9tuADlVsq/NXAhKJpHYkzEsQ2xtsF9vYJvY/tN/UcozLihVCgDp17GhqNbVCW6wVBy8fFF/++aVB\n7cTFlV0aGxsh8vMNau6Bg3oUdjLp4kUx6eLFOlu+XXx8fIS9vb1wdnYWPj4+4vXXXxf5JR84RVHE\nhQsX9G1rG0pQVFQkQkJCxGuvvXbLNp1OJ/bs2SM++eQTodVq9e39/PzEZ599JoqKisSGDRuElZWV\n6NWr1y37b9q0STz//PNiyJAhYuHChTVqWb58eY1t6orqzvtmKrsO5YmLixMWFhbi0qVLle5//vx5\n4ebmJjZv3iyKiooqbPvzzz+Ft7d3hXXTpk0TL7/8sti3b59wdXUVxcW3hjru2rVLuLu7V1g3ePBg\nMWXKFCGE+llZtGiRftv48ePFa6+9Jnbu3Ck8PT0r7NetWzf9Z6U6rXdCdd/f2rxDngr8DTgnhPAF\ngoE9tXTsi4HXgY3ASWCJEOK0oihTFEUJrWwXZNiJ5AEnKyuL1atX88YbbxjsldftYt3UGpGv9vrk\nX8pHe910r1Ev3bjB5wkJ9PnrL+YmJhreYFBQ2cjCo0ch0zSVPmuLTujwmevD8FXDOXf1HEXFhsvP\n3qwZ+Pio8zduwEcfGcyURMLq1avJyMggNjaWefPmYW1tXW37RYsW6QcG9unTp8I2IQRDhw7F2tq6\nQqhDKYqi0K1bNxISEvj6668BtQd71apVrF27Fnd3dz7//HMGDhxI00rKvIaEhGBubs64ceMYOnQo\noN7bIyIimDZtWoW22dnZ2NnZcf78eVauXMnUqVMNNvC+pvO+mcquQ3l++eUXevToUWVdCj8/P+bM\nmcPkyZNxc3NjyJAhJCcnAxAXF8fly5fRaDRoNBqcnZ2ZNm0aqampJCQk4O3tXWn4ZVJSkj58phRv\nb2/9mwYANzc3/bytrS05OTkkJSXh6el5y3610VrX1Mb5LhJCXEXNemImhNiGOkiyVggh1gshWgkh\nWgghppesmySEuKVOsxDiSVFJuIlE8iAxa9YsPv30U5ycnPAp9WxMjMtzLjRs1xAAoRVk7cwyiY7r\nWi3fJCXxfXIyNmZmDC13gzUYzs5qBRkXF3j+eTW4+ccfoR6GB2h1Wv5M/JNhjw7jnW7vMPfZuVia\nWxrUZvmPaG6uQU1JHnBEJWEfoDpX5TOfpKSoWZmGDBnC9evXyc7OZt26dRX2eeWVV0hPTyciIgLz\nauoGaLXaCrHOjzzyCNu3byctLY0//viDCxcuEFhFrs2jR4/SsWNZ6ZLSLCNFRRUfiLdu3UpQUBBr\n1qzB09OTN998k1mzZlWpqXfv3hWyjZSfbn7IuJnanvfN3HwdSlm4cCHDhw+vdt9Bgwaxa9cu4uLi\nAPRhHl5eXjRv3pyMjAwyMjLIzMwkKyuLtWvX4uXlRXx8PLpKigh4eHiQAtP0LAAAIABJREFUkJBQ\nYV18fPwtjvXNuLu7k3hTh018fMUI6qq01jW1cb6vleTh3gn8pijKXCrUvZNIJHXFtGnT+PLLLzlw\n4ACenp74+vqaWpIe55CyXNtpq01TBOhkbi7TExI4lZfHn9evo6njWMoqWbsWUlLUqjL9+8OmTWq0\nRT0j4nQE3X7sxrQ90/ju8HdGsTlmjBoGP348DB5sFJMSEzDZ15fJ5e5Hd7tcl3To0IFFixah0+lY\nv349O3bsqLb9q6++ypkzZ4iMjMTKykq/Pi0tjaVLl5Kbm4tOp2PDhg0sWbKkQirY48ePU1BQQF5e\nHrNmzSIlJaVS5/PUqVP4+/ujKEqNMdgFBQVYWVnx1ltvERgYSGJiYrX3/qioKP1Dxc3TzQ8ZtTnv\nm6nNdQDYu3cvSUlJ1cbenzt3jm3btlFYWIiVlRU2NjZ6pz8wMBAHBwdmzpxJfn4+xcXFnDx5kkOH\nDhEYGIi7uzsTJkwgLy+PgoIC9pbUWOjSpQsNGzZk5syZaLVatm/fztq1axlcww2oa9euWFpaMm/e\nPIqLi4mIiODAgbK6CNVprWtq43z3A/KAt4D1wAUgzCBqJJIHHFtbW65dU2tabd682cRqKmJuV3YT\nyliXYRINneztcSi5GSYWFHDuxg2KjeEEu7qCmZma2iMlBRYvVsNR6hlBPmWa9ifs5+djPzNuw7gq\newzrgv79IToaZsyALl0MZkbygKNUk1R+zpw5REZG4uzszOLFi+nfv3+VbePj4/n22285evQobm5u\n+h7kxYsXoygKX3/9NV5eXmg0GsaPH8/cuXMJDS2Lkl24cCHu7u40adKEbdu2sWnTJn1WkPJoNBoc\nHR1ZsmRJlVlAQA1F0Wg0FdatWrWK9957r7rLcdtUd96g9qZPnz4doFbXAdSQk/DwcBo2bFil3YKC\nAiZMmICLiwseHh6kpaXx6aefAmqWmjVr1nD06FF8fX1xdXVl1KhRZGdn67fFxMTQrFkzvLy8+P33\n3wGwtLQkMjKSqKgoGjduzOuvv87ChQv1gy2r+qxYWlqyYsUKfvrpJzQaDcuWLSM8PLxWWusapbqb\nsqIo5sAGIURIlY2MhKIowpA/IBJJfeDEiRM8+uijANjY2PDkk0/y0ksv8Y96UNgl+2A2R3ocwa69\nHZqnNfhM8UExM/4QjX7HjxN59SoATaysGOXuzkf16A2BqenwTQeOphwFoJNHJ1549AVe6/Qa1hbV\nx8feDSdOqM8jW7aoNYjefrvmfSQ1U5LFwihfMvkbaxzi4uJYsGABkyZNAmDlypWEhobqHfg1a9bQ\ns2dPUlJS9M6k5N6kuu9vtT3fJQMm8xRFcTSIMolEUoE2bdroB4rcuHGDHj163PKqz1Q4dHagR2YP\nAv4MwHeqr0kcb6hYar61rS2TjB0XX1Cg5vv+8ENYtsy4tmtBsG/Z56WHVw/e/NubBnW8AeLj1TGp\n06fD668b1JREcs+Sk5PD8uXLiY6O5uTJkwDk5+frHe/SwZbh4eH6Xl7J/UltAibzgeOKomxCTTcI\ngBBiTNW7SCSSO0FRFH1e09Llm19JmhJzW3OETpB7PBczGzNsW9oaXUNwOef7WE6O8dMj/forfPON\nmv/7oYeMbb1Ggn2Dmb1vNgBbYrcYxWbv3uokkUiqxs7Ojrfffpu3S14NZWZm4uLiot/ev3//akNm\nJPcPtXG+15VMEonECAQHB7N8+XJ69Oihz3YiSgoomJrUJamcH3MeC2cLfKb4mMT59re15XVPT7rY\n2/OkszM6IcjWanGqJO6yThECzp+HoiJ4+GH45JOyFIT1iMe8H+PZh56lp3dPmjo25bM9n7Erfhcr\nnl9h8MwnoF6m/HywsTG4KYnknmbPnj306tXL1DIkJqDKmO/bqGJpFGQ8muRBIS8vD0VROHHiBIsW\nLWLz5s289tpr/Otf/zK1NAqSChBaQYNmDUwthX1ZWUyLj2fntWu87eXFB4YOP9Hp1IGXJfHmHDsG\nbY1XTfJ2EULwzK/P0LJRS0Kah9C7RW+szKvOcHC3LFgAn30G585BeDgsWWIwUw8MMuZbIrl3qe77\nW13P9yqgY8kBVgghwqtpK5FI6ghbW7U3OTk5GVdXV3788ccKuWJNibWHYWOHbwdHCwtecHPjh1at\ncKkmbVadYWYGTz5ZFuc9fTqYm0Pnzmq+vXqGoihsHLbRaPb+/FNNgQ5QQ+0TiUQieaCpruf7iBCi\nw83zpkI+lUsk9YPiG8VcXXeV1IWpmDU0o82iNqaWZDy+/Rb++U913t0dJk+GXr3UUo8POH/+CX/7\nmzrv6QkJCfUyKueeQvZ8SyT3Lnea7URUMS+RSIyMVqslJyfH1DIASJybyKl/nOJq5FWurr6KTntr\nBTJjk1pYyMUbNwxvKKRc1tXsbBg+vN473itPr+Rf6/5Fm6/akFNouM9QQAA4luTFunwZdu82mCmJ\nRCK5p6nO+W6nKEq2oijXgbYl89mKolxXFCXbWAIlkgeZLVu28Nxzz9G4cWN++eUXU8sBwONfHlh5\nqmEeujwdOdGmeyjYmpnJowcP0vLPP1mdnm54g82bQ2lO8dxctbsX6mW1y1I2XdxEM8dmLPr7Imwt\nDTdA1sJCHYdayhdfGMyURCKR3NNU6XwLIcyFEA5CCHshhEXJfOmygzFFSiQPIhkZGRw4cICcnBy+\n//77ejHgEsDSwRLNU2XpDzM3Z5pEx8UbN/g0Lo4LN27QysaGt7y8jGN41Ci1lvpPP8H69dCjB0yc\naBzbt8HZ9LOMihzF+vPrOZx8mHZN2mGm1Kao8Z1T/sWAnZ1BTUkkEsk9S21SDUokEhMwc+ZMZsyY\nAYC/vz8DBgwwsaIynIKdSFmQAsCVJVfwfs/b6BqcLSzYdu0aOiA6J4drRUWGTzcIZY723r1w+jRM\nmgTVlI82FYXFhXx/5HsAsguy0Qkdxbpig6YbfPllcHNTnfCWLQ1mRiKRSO5pDNsNIpFI7piQct2I\nmzdvJjU1laSkJBMqKqMorUg/n3sml+K8YqNrcLa0JMDeHgAd8G1SEvuzsownoFs3mDEDnnoKbI2f\n77wmHnF9BNeGrgBcvXGVx356jMafNeZq3lWD2fTxgdGjVcf71CkoKeInkUgkknJI51siqad0794d\n65KcbWfOnKFly5ZERUWZWJVK07FNafpWU1p+05IuZ7tgbmtuEh3lq13OTEjgRG5uNa0NiBCQl2ca\n21WgKEqFUvN+zn5cGnuJRraNDGp33Tpo2hRCQ2HfPoOakkgkknsS6XxLJPUUGxsbHnvsMf3y7Nmz\nGTlypAkVlaGYKTz034fw+D8PbJqbrpRhSDnnu5GlJSM9PIwr4K+/1IwnXl7w/vvGtV0LyjvfV3Kv\n4GzjXE3ruqFTJ9i5Ey5ehHrycZVIJJJ6hXS+JZJ6TPnQk61bt5pQya1or2tJX5NOzNgYLn992SQa\nujs40MDMDFszM/xsbLhRbOTwFwsLaNcOtm2D2bONa7sWhDQv+/xcL7yOEILL2ZcxZD5nNzfw85M5\nviUSSf1hxIgRfPjhh6aWoUc63xJJPaZ379689NJL/Prrr8yaNYuDBw9y4sQJU8sCIHNLJolzE7Fy\nt8LpCSeTaGhgbs7+jh3J6NGDn1u3ZnV6OivT0oxj/KOP1F7vd95RY77robfp7eTNqoGrSH0nlSd9\nnuThrx6m3f/akZyTbHDb2dkwfz789pvBTUkeAMzMzLh48WKFdVOmTGHYsGGVti8sLGTkyJH4+Pjg\n6OhIQEAA69ev128fNmwYHh4eODo60rp1a3744YcK+/fs2ROb/2fvzOOirPbH/x6GQXZklEFQECQX\nNC8uiSlqkpqmQClqLmSaeq9pqdm3pPSSlWVy9aZ5yZZbeX+aUioa4IaaGmqmopAbikrsKgiyyjIw\nvz8GBpDNlFnQ83695jXP88w5z+czB2bmc875LGZmWFtbY2Vlhbu7e/O/KS2Rk5PD2LFjsbS0xNXV\nlS1btjTYNikpiTFjxiCXy3F0dOSNN96gokJdu6GpMRQ8OML4FggMmJ49e7JhwwZatWpFz549mTFj\nBn/88Ye+1QLA7kU7eh3oRcfAjlh0t9CbHh6Wlvx65w5P/P47m2/dolxXObePHIFTp6CiAg4eVOf9\nTk3Vjey/wAvdXkBhoaC3Q29+GPcDt96+haOVdt1z/u//oHVreP112LxZq6IEjwmSBia3DV1XKpU4\nOzsTHR1Nbm4uH374IRMnTiQ5ORmA9957j6SkJHJzcwkPD2fp0qWcPXu21n2/+OIL8vLyyM/P59Kl\nS83/prTE3LlzMTU1JTMzk02bNvHaa681qP/cuXOxt7fn5s2bxMbGcuTIEb744gug6TEUPDjC+BYI\nWgBDhgzh/PnznD9/nilTpuhbnTqoKlQUpxbrTf4zrVuT5eVFeM+ejFcodCO0ZlLrt99W+1t8841u\nZD8A49zH0cehj9ZzfQMMHlxddygpSeviBI8Bf9VVytzcnKCgIJwq8/+PGTMGV1dXYmJiAHX6Vlll\nalKVSoVEIuHatWsPLHPYsGEolcq/pKM2KCoqIiwsjOXLl2NmZoaXlxd+fn5s3Lix3vaJiYlMnDgR\nmUyGQqFg1KhRXKhMU9TUGN7LypUr6dChA9bW1ri7u3Po0CEAMjIyGD9+PAqFAjc3N9atW1erX2pq\nKv7+/igUCuzs7Jg/fz4Aly5dwtvbG1tbW3r27ElEREStfq6urqxevRoPDw9sbW2ZPHkypaWlAJw9\ne5a+fftiY2PDpEmTKC6u/fvUkK66QhjfAkELQKFQ4ODgoG816lDwRwGn+5zmV9NfOfXkKb3pYWJk\nhMxIx19nI0ZUH5eVwY0b8MEHutXhASgrL+No8lHKysuabvyAjBgBJuoiqFy4AAaSIVPwECQuS+Sw\n5HCdR+KyxPtu31BbXXDz5k0SEhLo0aOH5tq8efOwsLDA3d0dR0dHRo8eXavPu+++i0KhYPDgwRw5\ncqTBe6elqWNejI2bt3SKr68vtra2yOXyOs9+fn719rly5QrGxsa4ublprnl4eGgM6ntZuHAhW7Zs\n4e7du6SlpbFnzx6ef/75etvWN4Y15YaEhBATE0NeXh779u3DxcUFlUqFr68vvXv3JiMjg4MHD7J2\n7Vr2798PQEVFBT4+Pri6upKcnExaWhqTJk1CqVTi5+fHqFGjyMzM5PPPP2fq1KkkJCTUkrt161ai\noqJITEwkLi6ODRs2UFZWxtixY3nllVfIzs5mwoQJbN++vUlddYkwvgWCFkRWVhY//fSTwQRflt0u\no+BcAaoyFeW55dy9fldvupSrVJzOy+PTpCQ+14X7R+/eUJVtJScHWsBW7JzIObT9V1sW7F1Aer72\nLGJzc3Ua9CpawJxE8AijVCoJCAhg+vTpdKlR/SkkJISCggKOHj3KuHHjNKldQV3k7Pr166SlpTF7\n9mx8fX1JTKw7eThw4ACLFi2iXbt2bNq0qUldahqBTREREUFOTg7Z2dl1nsPDw+vtU1BQgI2NTa1r\nNjY25Ofn19t+yJAhXLhwAWtra5ydnenXr1+9hn1DY1iFVCqltLSU8+fPa9xVXF1dOXXqFFlZWSxZ\nsgSpVIqLiwuzZs0iNDQUgN9//52MjAyCg4MxNTXFxMSEgQMHcuLECQoLC1m8eDHGxsZ4e3vj4+NT\nx399wYIF2Nvb07p1a3x9fYmNjeXEiRMolUrmz5+PVCrF39+ffv36NamrLhHGt0DQQggNDaVTp058\n9913FOorn/U92HrbIn9O/6XmASKzsnjx/Hkib9/mbxY68EGXSuHZZ9XH7dtDSgokJEBsrPZlPwAl\nyhJ62fdi3fPriPl7DB1ba7cqqbNz9fHVq1oVJXgMkEqllJXV3q0pKytDJpOxefNmrKyssLa2ZsyY\nMbXaqFQqAgICaNWqVR13B1D7dg8cOJCUlBTWr1+vud6vXz8sLCyQyWRMmzYNLy+veussDB8+HKlU\nyqJFiwgICAAgNzeXsLAwVqxYUattXl4elpaWXL16lR07dvDRRx9x5syZBx6T+rC0tCQvL6+OXKvK\ngmQ1UalUjBw5kvHjx1NUVERWVhbZ2dksXry4TrvGxhDAzc2NNWvWsGzZMhQKBVOmTCEjI4OkpCTS\n0tKQy+WalfsVK1Zw69YtQO1y0rFjR4zu2blMT0/XuLtU0bFjR80uQxX29vaaY3NzcwoKCkhPT6d9\n+/Z1+tanq729vUZXXSKMb4GgBXDo0CH+97//UV5eTq9evfD19dW3Shpsh1fnjs6OytaLDrdKSxl7\n4QJppaWczs/H09paN4KXLVOXmN+8GWbPBm9vdfClgXHu5jnkwXJe2/0aHxzRzTL03LlgZKReATeg\nf1fBA+K6zJWhqqF1Hq7L6l8xrK99Q23vB2dnZ/78889a1xITE+nYsSNTpkwhPz+fvLw8du3aVavN\nzJkzycrKIiwsDKm04WJgSqWyjs93TSQSSYM+4LGxsfTp00dzXpUZ5N7Jwi+//IK3tzcRERG0b9+e\nhQsXsmrVqgZljh49WjOpuPdx7ySjii5dutR5L3FxcfW6imRnZ5Oamsq8efOQyWTY2toyY8YM9uzZ\nU6vd/Y7hpEmTiI6O1gRkBgYG4uTkRKdOncjOztas3Ofm5mr8t52cnEhOTtZkWKnC0dGRlJSUWteS\nk5PrGNX14eDgQOo9u5/3BolW6ZpUGZQSGBjY5H2bE2F8CwQtgNzcXPbu3UtRUZHGV85QMOtcXWTn\nduRtVBU6yjZSA4WJCe6VJd5LVCqidVVm/sknoVs36NkT9u9Xr36/9ZZuZP8FurbtigR1VojrOdf5\nLeU3NsZtJLdYe+P01FOQnQ3HjsHChVoTI3hMeOmll1i+fDlpaeo89QcOHCAyMpLx48c32GfOnDnE\nx8cTHh6OSVUQApCZmcmPP/5IYWEhFRUV7Nu3j9DQUIYNUxelys3NJSoqipKSEsrLy/nhhx+Ijo5m\n5MiRdWRcvHgRd3d3JBJJg64gVZSUlGBiYsKbb76Jp6cnqampjbo77N69WzOpuPdx7ySjCnNzc8aN\nG0dQUBBFRUUcO3aM8PDwelMytmnTBldXV9avX095eTl37tzhf//7Hx4eHk2O4b1cuXKFQ4cOUVpa\niomJCWZmZhgbG+Pp6Ym1tTXBwcEUFxdTXl7OhQsXOH36NACenp44ODgQGBhIUVERJSUlHD9+nP79\n+2NhYUFwcDBKpZLDhw8TGRnJpEmTGh1jgAEDBiCTyVi3bh3l5eWEhYVx8uTJRnVtbFKhDYTxLRC0\nALy9vTVfDmfOnOH9999ns4HkcDN1NcXIwgikYNXfirLb2gvka4wRNapdvnPtGm/q0tfB1ha6djXI\nXN8AJlITvF29NefDNw5n5+Wd5BRrz01IKlUHXe7bp049+MknWhMleAwICgpi4MCBDBo0CLlcTmBg\nIJs3b6Z79+71tk9OTubrr78mNjYWe3t7zQryli1bkEgkrF+/HicnJ+RyOe+88w5r167Fx8cHULuz\nLF26VJN9IyQkhJ9//pnOnTvXkSOXy7GxsSE0NBQvL68G9c/NzUUul9e6tnPnTpYsWfIQo1I/ISEh\nFBUVoVAomDp1Kl9++aUmT/no0aP59NNPNW3DwsLYs2cPdnZ2dOnSBZlMxmeffQY0Pob3UlJSQmBg\nIHZ2djg6OpKZmcnHH3+MkZERERERxMbG4urqikKhYPbs2RrXmKrXExIScHZ2xsnJiZ9++gmZTEZ4\neDi7d++mbdu2vP7662zcuLGWv3lDaSZlMhnbt2/n+++/Ry6Xs3XrVvz9/RvV9RMdf0FJtFnprDmR\nSCSqlqKrQKANvLy8OH78OAAjR45k6dKlDBo0SM9aqSmIK8DsCTOkFrpdPajJrtu38Tl3DgAHExMO\nenjgrgvf75oUFcHRo+o8e/WskumTdb+vY/5edQqvF7q+wM5JO7Uu89gxePdddfaTMWOgxs684D6o\ndHXQyYxO/MY2L0lJSWzYsIH3338fgB07duDj46NJbxgREcHQoUO5ceNGvUa9oOXT2OdXrHwLBC2E\nETVS2zk5ORmM4Q1g6WGJ1EKKqlxFaWapXnR4xsYGWeVKSEZpKbbNnParSQ4fVuf6/ugjg8ytN8Kt\n+v/n0J+HUFZoPyexlxf8+iv885/C8BY8PhQUFLBt2zZiYmI0Kf6Ki4s1hndVsKW/vz8//fSTPlUV\n6Amx8i0QtBCOHTvGoEGDsLCwYMqUKXz99df6VklDwfkC/gz6kzuH7mAfYE/ndfpZyQm4eBFzqZTn\nbG0Z3aYNZkZGDW5NNisqFZw9C1FRMG8e1JNZQN+oVCqeXP8kbrZuPOvyLL3a9SI6OZpXe79Ke+um\ng5gEukesfD8a5OTkEBMTw/CahbkEjzyNfX6F8S0QtBDKysr47bffcHd3Jzo6mgMHDuDi4sI777yj\nb9UoTi0m99dcWj/bmlbtWjXdQYtklZby/Y0bHMjJwdTIiJ979tS+0OeeUwdcAkRGqn0sDJCqSn5j\nfxzL9ZzrjOg0ggX9F+Bk49R05wckORmCg9W+3wqF2hVFcH8I4/vRIDIyklGjRjV7ER6BYdPY51f8\nJwgELQSZTMaQIUM4ePAg33zzDSNGjKhTkU1fmHYwxXSKqb7VANTZTv4sLuY1R0e8awRhahUPj2rj\ne+tWSEtTRxtOn64b+fdJ1S7Aj+N/xETacOaC5mTnTggJUR9bWupEpEBgUFQFcgoEVYiVb4FA0Gwo\nc5VkhWdREFvAE6uf0Lc6umPfPhg1Sn1sbAyTJ8OECSLBNerin23bQkWFOu93VlZ1YVBB44iVb4Gg\n5SLcTgQCgda5c/wOsYNiofJj6pXthcxWpl+lgAKlEkttb/cWFoJcDqWVwabp6eDgoF2ZD8mtwlsc\nvH6Q/df389aAt+ihqFuEo7no3x+q0uyGhsJLL2lN1COFML4FgpaLyHYiEDxipKens3r1ap5//nnm\nzp2rb3UAsHC3wLyrueb8zuE7etPlRkkJ865cocvvv/PC+fPaF2hhoS7lWIUBVrm8l6BDQYReCKWP\nQx/sLOy0Kuvpp6uP335bq6IEAoHA4BHGt0DQArl8+TJ79uzBw8OD5cuX61sdAGS2MtqObas5zzmg\nvQIujVGuUvFNRgb7c3LILCtjly4CLkHtdjJgALz3HiiVsHgx6Lhk8f1QrCxm0x+buKu8S/bdbF73\nfB2FhUKrMp95pvpYpv/NEIFAINArwu1EIGhh7Nq1SxPAM2jQIKKjo/WsUTU5v+QQNywOAJMOJgxM\nGdhED+3gduIE14uLATjcqxfPtG6tO+EXLsCMGWpj3NcX+vXTnez7oERZgjxYTlFZEQBX37iKm9xN\nuzJL4NVXwdsbhg8HFxetintkEG4nAkHLRfh8CwSPELdu3cLe3h4AY2NjsrOzMTExoVUr/ab4A8j9\nLZezA89qzp9OfhpTJ91nQZlz+TJfZWQAEOjkxAwHB7qYmzfR6/FhzOYx7E7YDairXeaV5BH0TBBD\nXYZqXXZFBdy8afAu8QaBML4FgpaL8PkWCB4hFAoFHh4eACiVSrp3786MGTP0rJUay96WtB3XFvsA\ne7pt6IaxjX6ymY6QyzXHwSkpLL5+XS96GCrPdXpOc3z+1nneGvAW/Ry1u0KfmqoOtFQowEDCFAQC\ngUAviDzfAkELZMSIEcTFqd07vLy82LRpk541UiM1lfLk9if1rQbPtm6NBHXiFRXwXdeuulWgsFCd\n73vPHnWuvago3cpvgpql5rOKshj5xEiMjbT7c2Brq/bEWbUKnLRX00cgEAgMHrHyLRC0QEaMqDae\n4uLiMDIyrI9yWU4Zt366RfrX6XqRbyuT0a+yxLu1VEp8UZFuFVAq1Yb3qFGwYYNuZd8H7m3daW+l\nLilfUFrAxcyLqFQqKlQVWpNpYaF2hReGt0AgeNwRK98CQQtk8ODBdO/encGDBzNixAhKS0u5desW\nHTp00LdqFMYXcsbzDDZDbFBM1G4WjcZY2akTpkZGPGVlxY3SUn7JyeFZXVR3+fVX+PlniI+H+fPB\n0VH7Mv8iEomET4Z9gpWJFcZGxvzn5H/Yf30/q0aswr+7v9blZ2XBmTPw3HNNtxUIBAJtMWPGDJyc\nnPjwww91KtewlssEAsF9YWZmxoULF1i0aBHff/89dnZ2LFu2TN9qAWDexZyBNwfyt8i/0W5aO73p\nMdTWlifMzOh5+jQep0+z5dYt3QjeuBH+/W/44w/YtUt9Tdcr7/fBNI9pjHUfS35pPt3tuhM5OZJx\n7uO0KvPoUXUtIjs7eOUVrYoSPGK4uLhgbm6OtbU1Dg4OvPrqqxQ9wOeqtLSUWbNm4eLigo2NDX37\n9mXv3r2a119++WUcHR2xsbGhW7dufPvtt7X6x8fHM2zYMFq3bk2XLl3YuXPnQ783XZGTk8PYsWOx\ntLTE1dWVLVu2NNg2KSmJMWPGIJfLcXR05I033qCionpnLCQkhH79+mFqasqrr76qC/UfKYTxLRC0\nYNq2bcsrr7zCtWvX+O9//6tvdQCQGEmQmkk15xVl2nNlaIo2Mhmb3d3J9PLiG135fY8ZU3387bfq\n8o5/+xsYaCaJKT2nsPDphfRQ9EAi0W5iDWdntQs8QHa2Qc5JBAaKRCJh165d5OXlcebMGU6dOvVA\nNQ6USiXOzs5ER0eTm5vLhx9+yMSJE0lOTgbgvffeIykpidzcXMLDw1m6dClnz6ozOJWXl/PCCy/g\n5+dHTk4OX331FQEBAVy9erVZ36u2mDt3LqampmRmZrJp0yZee+01Ll261GBbe3t7bt68SWxsLEeO\nHOGLL77QvN6+fXv++c9/MnPmTF2p/0ghjG+BoAUjl8uZMGECbdu2bbqxDlGpVPy5/E9O9jhJtHk0\nxSnFetFDIpHQ28oKIy0blbUYNqy6ksytW/DWW3DxIuhShwekWFlMYWmh1u7v7Azdu6uPS0vBgFLU\nC1oAVakQHRwceP755zlfWb3WyMiI6zUyGs2YMYOgoKB672Fubk7WLYCgAAAgAElEQVRQUBBOlcEH\nY8aMwdXVlZiYGADc3d2RVX5+VSoVEomEa9euAepV74yMDBYsWIBEIsHb2xsvLy82btzYoM7Dhg1D\nqVQ+5Dt/eIqKiggLC2P58uWYmZnh5eWFn59fg7onJiYyceJEZDIZCoWCUaNGceHCBc3rL774In5+\nfshrZJZqiJUrV9KhQwesra1xd3fn0KFDmtcyMjIYP348CoUCNzc31q1bp3ktNTUVf39/FAoFdnZ2\nzJ8/X/NafHw83t7e2Nra0rNnTyIiIjSvubq6snr1ajw8PLC1tWXy5MmUlpYCcPbsWfr27YuNjQ2T\nJk2iuLj2b1NjujYnwvgWCB4RUlNTtfZF8Vcpzysn+ZNkii4WoVKqyN6TrVd9yioqOJaby7eVub+1\nipVV7ZKOd+6AiYn25T4EOy7t4LmNz2H3Lzv2XN2jVVk1YoWpsZAmMHASlyWSuCyx2c4fhpSUFHbv\n3k2fPn0e+l43b94kISGBHj16aK7NmzcPCwsL3N3dcXR0ZPTo0UC18V8TlUqlmQTcS1paGqCux9Cc\n+Pr6Ymtri1wur/Ps5+dXb58rV65gbGyMm1t1QS0PD49aBnVNFi5cyJYtW7h79y5paWns2bOH559/\n/i/reuXKFUJCQoiJiSEvL499+/bhUlllS6VS4evrS+/evcnIyODgwYOsXbuW/fv3U1FRgY+PD66u\nriQnJ5OWlsakSZMA9e6Fr68vo0aNIjMzk88//5ypU6eSkJCgkbt161aioqJITEwkLi6ODRs2UFZW\nxtixY3nllVfIzs5mwoQJbN++/b50bW6E8S0QtHAyMjLo3bs3Hh4eBuN/aGxjjOsnrprz27tv602X\nfKWStseOMeXiRVKKi+v9AW12arqexMWpK8vEx2tf7gNiamzKYOfBpL6Zyvju47Uqy9Oz+vi337Qq\nSvCI8eKLLyKXyxkyZAje3t68++67D3U/pVJJQEAA06dPp0uXLprrISEhFBQUcPToUcaNG6cpYNat\nWzcUCgWrVq1CqVQSFRXFkSNH6vU9P3DgAIsWLaJdu3b3lQq2phHYFBEREeTk5JCdnV3nOTw8vN4+\nBQUF2NjY1LpmY2NDfn5+ve2HDBnChQsXsLa2xtnZmX79+jVo2DeGVCqltLSU8+fPa1x+XF3Vvw2n\nTp0iKyuLJUuWIJVKcXFxYdasWYSGhnLy5EkyMjIIDg7G1NQUExMTBg5UV0w+ceIEhYWFLF68GGNj\nY7y9vfHx8anlw75gwQLs7e1p3bo1vr6+xMbGcuLECZRKJfPnz0cqleLv70+/GhWIG9O1uRHGt0DQ\ngsnMzGTDhg1IpVIGDhzI2rVr9a2Shjaj22iOcw7kUFGiH9/vsefPk1deTnJJCaPkcq37NauFjoWQ\nELh+He7eVWc8GTtWXWfdgFCpVPht8ePFH18k6HAQ2Xe1v0Ph6wvGxurNgKeegrIyrYsUPCL8/PPP\nZGdnk5iYyLp165qs6rt582asrKywtrZmTM0JMer//YCAAFq1alXL1aEKiUTCwIEDSUlJYf369YB6\nBXvnzp1ERkbi4ODAZ599xksvvVRvlqnhw4cjlUpZtGgRAQEBAOTm5hIWFsaKFStqtc3Ly8PS0pKr\nV6+yY8cOPvroI86cOfOXxqYpLC0tycvLqyPXqjIla01UKhUjR45k/PjxFBUVkZWVRXZ2NosXL/7L\nct3c3FizZg3Lli3D3t6eKVOmkFG5A5mUlERaWhpyuVyzer9ixQpu3rxJSkoKHTt2rDeNbnp6usZt\nqIqOHTtqdhoATRVoULsaFRQUkJ6eTvv27ev0ux9dmxthfAsELZi7d+/y3nvvERMTw4EDBx4o+l9b\nmLqZImun9p2sKKwg51COXvToUOMHen+OjnTo2FFdxtHVFUaPhuPH4dIlaMJY0DUSiQRlhZLScrU/\n5P7r+0m4nUBiTvO4B9SHlRUcPAi3b8Pu3dXu8QLDxnWZK67LXJvt/EFoaNfK3Ny81nffjRs3AJgy\nZQr5+fnk5eWxqyrzUCUzZ84kKyuLsLAwpFIpDaFUKjU+3wBPPvkkhw8fJjMzkz179nDt2jU8a27n\n1CA2NraWa0xVdpWye2acv/zyC97e3kRERNC+fXsWLlzIqlWrGtRp9OjRmknFvY97JxlVdOnSpc57\niYuLq+VuU0V2djapqanMmzcPmUyGra0tM2bMYM+eB3NJmzRpEtHR0SQlJQEQGBgIgJOTE506dSI7\nO1uzep+bm0tkZCROTk4kJyfXyrBShaOjIykpKbWuJScn1zGs78XBwYHU1NQ6/e5H1+ZGGN8CQQvG\n2dkZd3d3AIqLi1m3bp3BrH5LjCQYW6l9HSWmEkpS9bPqW7PU/KabN5l+6RLKer7Qtcb48dCpk+7k\n/UVGdKp2wn4r6i2e2fAMJ1JPaFXmkCHq5x074O23DTYRjKCF0Lt3bzZv3kxFRQV79+7lyJEjjbaf\nM2cO8fHxhIeHY1IjHiMzM5Mff/yRwsJCKioq2LdvH6GhoQwbNkzT5ty5c5SUlFBUVMSqVau4ceMG\n06dPryPj4sWLuLu7I5FIGnQFqaKkpAQTExPefPNNPD09SU1NbdTdYffu3ZpJxb2PeycZVZibmzNu\n3DiCgoIoKiri2LFjhIeH8/LLL9dp26ZNG1xdXVm/fj3l5eXcuXOH//3vf/Tq1UvTpry8nOLiYsrL\ny1EqlZSUlFBeXl7nXleuXOHQoUOUlpZiYmKCmZmZZrLj6emJtbU1wcHBmntduHCB06dP4+npiYOD\nA4GBgRQVFVFSUsLx48cB6N+/PxYWFgQHB6NUKjl8+DCRkZFMnjy50XEeMGAAMpmMdevWUV5eTlhY\nGCdPnrwvXZsbYXwLBC2cmn54wcHBZGZm1rtaoGskEglP7nySv0X9jcF3BuM4Sz/FZobXKKxz5e5d\n+lpZUfcnQgfk5sLOnWr/bwPiObfalW6SFiYxuWfjP2IPS3k5dO2qDrh0clKfCwSN0Zi72Jo1awgP\nD8fW1pYtW7YwduzYBtsmJyfz9ddfExsbi729vWYFecuWLUgkEtavX4+TkxNyuZx33nmHtWvX4uPj\no+m/ceNGHBwcaNeuHYcOHWL//v2a7Cg1kcvl2NjYEBoaipeXV4P65Obm1skYsnPnTpYsWdLYcDwQ\nISEhFBUVoVAomDp1Kl9++aVm8Wb06NF8+umnmrZhYWHs2bMHOzs7unTpgkwm49///rfm9eXLl2Nu\nbs7KlSv54YcfMDc35+OPP64js6SkhMDAQOzs7HB0dCQzM5NPPvkEUGepiYiIIDY2FldXVxQKBbNn\nzyYvL0/zWkJCAs7Ozjg5OfHTTz8BIJPJCA8PZ/fu3bRt25bXX3+djRs30rlzZ6Dh/xWZTMb27dv5\n/vvvkcvlbN26FX//6qJijena3Eh0EnzUDEgkElVL0VUg0CXHjh1j0KBBALRr1460tDSDKzcPUF5c\njtRUO6sITfF0TAy/VwYWbezWjYB2Oi7+M2EC7N0LXl6waRMYUGpIlUpFh886kJ6fDsCJmSfo36G/\n1uWWlBicF47BIZFIUKlUOslRKX5jdUNSUhIbNmzg/fffB2DHjh34+PhoDPiIiAiGDh3KjRs3NMak\noGXS2OfX8H6hBQLBX+Lpp5/W5PkuLy+v4wunb9K/SeeP0X9wXHGc0luletHBr21bOpma8maHDnhY\nWupWeEUFvPCCuuT83r0GZXiD+gdiRKcRyM3kTOg+AYD91/az/9p+rcoVhrfgcaOgoIBt27YRExOj\nSfFXXFysMbyrgi39/f01q7yCRxOx8i0QPAJs3bqVDh064Obmxv79+9m3bx9ff/01pqam+laNlH+n\n0Mq5FfIRcoxtmjff7f1SVlGBsUTCucJCwrOyiLh9mx/c3XnC3Fy7go8cUa96Z2bCs8+qIw0NkDvF\nd7AyseJYyjH8tvjhbufO3Kfm8rJHXX/Q5iQuDtasgQMH4OxZg5uX6B2x8v1ok5OTQ0xMDMOHD9e3\nKgIt0NjnVxjfAsEjhKenJ46OjowZM4apU6dirm3jsoUx78oVTIyM8G3ThsE2Nsi07Z6Tng5VEfhS\nqTrrSXQ0vPoq1PBFNxQKSwspLCtEYaHQuiyVCszMqrMvHjsGlWl8BZUI4/vRJjIyklGjRjV7ER6B\nYSCMb4HgMaGqHLIhUppVys2NN7EeYI3N0zZNd3hU6NNHvawL6qVdf3/45z+rjfLHmJdfVrvAA7z/\nPixbpld1DA5hfAsELRfh8y0QPCYYquF97sVzHLc7zrVF10hdm9p0Bx1QoVLpJuVgZWlqQF1h5ssv\nDd7wzsjP4JuYb1h5dKVW5fj6Vh+Hh4uUgwKB4PFAGN8CwSPGuXPn+Pjjjxk4cCAXL17UtzoAWA+w\n1hznn8jXTYn3Bjhy5w6z4uNp/9tv7M3WfkXHWqXm9+wxuFSD93I95zo9vujBL3/+whPyJ7Qqa+RI\ntTcOqDcHtm3TqjiBQCAwCITxLRA8YqxZs4b9+/fzzjvv4Obmpm91AHB60wmppdrKKv6zmKLL+qnE\nmXj3LutSU9mfk8NLdnb46CLCz9MTHBxg6FB44w2IiFA/G8jEqCaZhZkcSjzEQKeBTH5yMv7d/Zvu\n9BDY2NSuP3T7tlbFCQQCgUGgdeNbIpGMkkgk8RKJ5IpEIllcz+tvSiSSCxKJJFYikeyXSCRO2tZJ\nIHhUmTJlCt999x1HjhxBqVTSykDyuRmZGGE7ojrA8NaWW3rR42R+PtuzskguKeFobq5uhEqlkJgI\nhw5BQgJ89pna7aR1a93I/wv85+R/mBUxi10Ju9h6catOZC5eDFOmwObNMGmSTkQKBAKBXtGq8S2R\nSIyA/wAjgR7AZIlE0u2eZmeAviqVqhewHfiXNnUSCB5lnnii2k0gIiIClUqFUqnUo0Y1qPFtk71b\nB+4e9TBKLse40i8+pqCAiwUFZJXqIPd41STou+/g8GEIDARH/VT8bIwXur2gOd4Zv5N3D7zLmM1j\ntOomNHMm/PADTJ4MpqZQWQtJIBAIHlm0vfLtCSSoVKoklUpVBoQCL9RsoFKpjqhUquLK0xOAYUci\nCQQGTM1S8z/++CMdOnQgIiJCjxpV02FBB0wcTHCY7UDHoI560cHG2JihNVac+8TEEK5LXwcDDYit\none73jhZqzcfC0oLSLyTyHuD3tO63IMH4cUXwd4edu7UujiBQCDQK9o2vtsDNcvtpdK4cT0T2KNV\njQSCR5g+ffrg4OAAQElJCf/6178YO3asnrVS03pwawakDaDr111p66u/aip+bdpojge3bs2rleOl\nM5KS4Isv1Kk+IiN1K7sJJBIJL3StXh+xM7fDy9lL61l0pFJ1Bsbr19XpBwUCgeBRRtvGd33f2PXu\nX0okkgCgL8LtRCB4YIyMjPCtkb8tNjZWj9rURSKRUHKjhIzvM8g7macXHXxrGN9JxcW6STdYk23b\n4ORJmDoVvLx0K/s+eLHbi5rjQ38eAqBCpd0xGjpUbXTX+NMIBALBI4u2yyqlAs41zjsA6fc2kkgk\nw4F3gSGV7in1sqxGBYahQ4cydOjQ5tJTIHhk8PX15dChQ/j5+TFhwgTy8/MpLS2ljQFYNqmfp/Ln\n+39iO8IW8676qb7pYmbGfzp3xsvamr9ZWHDl7l3uVlTQ28pKu4IrKmD3brh6VZ1X75tvQCbTrswH\nYEjHIbzh+QZjOo8h+242AWEBRF2LIv71eORmcq3LT0iAO3egXz+tizI4Dh8+zOHDh/WthkAg0DJa\nrXApkUikwGVgGJABnAQmq1SqSzXa9Aa2AiNVKtW1Ru4lqm8JBPdBVZXLgwcP8umnn3LixAk+++wz\nZs2apW/VUOYpMTIzwkim/yynR+/cYXp8PCUqFYHOzszTduEblQo6doSUSk+8w4dhyBAoLa0OyDQw\nFu9fjKutKz5dfOhg3UGrsj7/XF34My8PRo1Sp0R/3BEVLgWC5mHGjBk4OTnx4Ycf6kym3ipcqlSq\ncuB1IAq4AISqVKpLEonkA4lE4lPZLBiwALZKJJKzEolEhNsIBA9BlX+ura0tc+fOJT093SAMbwBj\na+Nahrc+f+y7mZuzrUcPkp9+WvuGN6iDLWsW3AkMhM6d1f7fBsrKESuZ89QcrRveoM50klfpiXTj\nhtbFCVoYRkZGXL9+vda1Dz74gJcbCBIoLS1l1qxZuLi4YGNjQ9++fdm7d6/m9ZdffhlHR0dsbGzo\n1q0b3377ba3+Q4cOxczMDGtra6ysrHB3d2/+N6UlcnJyGDt2LJaWlri6urJly5Z62zU1RjVJSEjA\nzMyMadOmaVP1xwZtu52gUqn2Al3vufZ+jeMR2tZBIHgc6dOnD3369NG3GnUozSolaXkSt8NvY2Ru\nhOd5T73o0dbEhLYmJroVOmaMurw8qP0roqKgd2/d6vCA3C66jXUra2RS7bjKTJ6srj1UWgqxseoN\nAidR9UFQSUNBvw1dVyqVODs7Ex0djZOTE7t27WLixImcP38eZ2dn3nvvPb777jtkMhlXrlzhmWee\noU+fPvSu/DxKJBK++OILZsyYobX3pC3mzp2LqakpmZmZnDlzhjFjxtCrV686E4imxqgmr7/+Op6e\n+vmufhTR/96vQCDQOleuXCEuLk7fagCQuTWTtLVpFCcWU3SpiLI7DYZ56ITi8nL23r7NDzdval/Y\ns89Wu5jcvg1yucGnH/zu7HcM+m4QnT7vxIXMC1qTY2WlDrys4pNPtCZK0AL5q7tk5ubmBAUF4VQ5\ngxszZgyurq7ExMQA4O7ujqwy5qLKVe/atdqer39F5rBhwwyipkJRURFhYWEsX74cMzMzvLy88PPz\nY+PGjXXaNjVGVYSGhmJra8uwYcMalb1y5Uo6dOiAtbU17u7uHDqkDtjOyMhg/PjxKBQK3NzcWLdu\nXa1+qamp+Pv7o1AosLOzY/78+QBcunQJb29vbG1t6dmzZ520ua6urqxevRoPDw9sbW2ZPHkypZV1\nG86ePUvfvn2xsbFh0qRJFBcX1+rbkK66QhjfAsEjTHR0NF26dMHb25ujR4/qWx0AHOc4YvVUZXBj\nBeTsz9GbLleKirA7fpzXExLI18UPp7k5eHtXn//+O9y9C5cuNdzHAHjO7Tlu/t9NerXrpVU5fftW\nHx85olVRgr/IsmXLkEgkdR41EyE01b6htrrg5s2bJCQk0KNHD821efPmYWFhgbu7O46OjowePbpW\nn3fffReFQsHgwYM50sg/ZFpaGgDGxs3rTODr64utrS1yubzOc82aDjW5cuUKxsbGuLm5aa55eHhw\n4ULTE+f6xigvL4/333+f1atXNzoZuXLlCiEhIcTExJCXl8e+fftwcXFBpVLh6+tL7969ycjI4ODB\ng6xdu5b9+/cDUFFRgY+PD66uriQnJ5OWlsakSZNQKpX4+fkxatQoMjMz+fzzz5k6dSoJCQm15G7d\nupWoqCgSExOJi4tjw4YNlJWVMXbsWF555RWys7OZMGEC27dvb1JXXSKMb4HgESU9PZ1du3Yhk8kY\nMmQI8+bN07dKgHo7Vz66OmvGrW36KTWvUql46cIFCsrLuVZcjLetrW4EL1gA338P586p83w7OMC/\nDC/Dall5Gc/+71lmR8zmgyMfUFBaoHWZVTv8lpbQp486RlUgeFiUSiUBAQFMnz6dLl26aK6HhIRQ\nUFDA0aNHGTduHK1qBD4HBwdz/fp10tLSmD17Nr6+viQmJta594EDB1i0aBHt2rVj06ZNTepS0whs\nioiICHJycsjOzq7zHB4eXm+fgoICbGxsal2zsbEhv4nSsQ2NUVBQELNnz6Z9E3ExUqmU0tJSzp8/\nr3FncXV15dSpU2RlZbFkyRKkUikuLi7MmjWL0NBQAH7//XcyMjIIDg7G1NQUExMTBg4cyIkTJygs\nLGTx4sUYGxvj7e2Nj49PHf/1BQsWYG9vT+vWrfH19SU2NpYTJ06gVCqZP38+UqkUf39/+tVIn9SQ\nrrpEGN8CwSPK7du3WblyJRcvXmTPnj2a7ThDoM0L1WkPs7ZnoczX/XatRCLB1cxMcx6elaUbwaNG\nwfTp8MQT8PTTEB+vLjtvYMikMkrKS6hQVVChqiDyciSxN2LJyM/QmszOndUr3llZsGmTwXvkCHSI\nVCqlrKy2i1pZWRkymYzNmzdjZWWFtbU1Y2oGNaOeZAcEBNCqVas67g6g/h4YOHAgKSkprF+/XnO9\nX79+WFhYIJPJmDZtGl5eXuzevbtO/+HDhyOVSlm0aBEBAQEA5ObmEhYWxooVK2q1zcvLw9LSkqtX\nr7Jjxw4++ugjzpw588BjUh+Wlpbk5dWuoZCXl4dVI6lUGxqj2NhYDhw4wMKFC5uU6+bmxpo1a1i2\nbBkKhYIpU6aQkZFBUlISaWlpyOVyzcr9ihUruHVLveiSmppKx44dMTKqbY6mp6dr3GGq6Nixo2aX\noQp7e3vNsbm5OQUFBaSnp9eZLHTsWF1Vuaau9vb2Gl11iTC+BYJHlCeffFLzhZObm8tnn33GTz/9\npGet1EjNpBiZq79+ZHYy7ibc1YseNatdfpWezhv3bGlqFVNTmDcP2rXTncy/yItdqwvuzN09l/E/\njdeq3zeosy8WFKiN76AgrYoS/AWWLVuGSqWq82jM7eR+294Pzs7O/Pnnn7WuJSYm0rFjR6ZMmUJ+\nfj55eXns2rWrVpuZM2eSlZVFWFgYUqm0wfsrlco6Pt81qUwbV+9rsbGxtYLbqzKH3DtZ+OWXX/D2\n9iYiIoL27duzcOFCVq1a1aDM0aNHayYV9z7unWRU0aVLlzrvJS4urpYryb00NEZHjhwhKSkJZ2dn\nHBwcWLVqFdu2beOpp56q9z6TJk0iOjqa5ORkAAIDA3FycqJTp05kZ2drVu5zc3M1/ttOTk4kJydT\ncU+xM0dHR1JSUmpdS05ObnIFHsDBwYHU1NQ6fevTNSkpSaOrLhHGt0DwiCKRSGr5Ba5du5acHP35\nV9fEwt2CHtt64PGLBwNTB2LVR8sFbhpgTA3j+1pxMX+zsNBP+sP0dPjqK4Pzs6hZ7bJCVUHcnDiG\ndxquVZm5uepNgW3bQMc7wQID5qWXXmL58uWkpaWhUqk4cOAAkZGRjB8/vsE+c+bMIT4+nvDwcExq\nZDbKzMzkxx9/pLCwkIqKCvbt20doaKgmoDA3N5eoqChKSkooLy/nhx9+IDo6mpEjR9aRcfHiRdzd\n3ZFIJA26glRRUlKCiYkJb775Jp6enqSmpjbq7rB7927NpOLex72TjCrMzc0ZN24cQUFBFBUVcezY\nMcLDwxtMydjQGAH84x//4Nq1a8TGxhIXF8ecOXPw8fEhKiqqzn2uXLnCoUOHKC0txcTEBDMzM4yN\njfH09MTa2prg4GCKi4spLy/nwoULnD59GgBPT08cHBwIDAykqKiIkpISjh8/Tv/+/bGwsCA4OBil\nUsnhw4eJjIxk0qRJjY4xwIABA5DJZKxbt47y8nLCwsI4efJko7o2NjHTBsL4FggeYWqWmjc1NeXv\nf/+7HrWpTZvn22DrbYtEqi45rw/sTEzwsrbWnJsYGTWYukxrjBsHPXrA8ePQhF+mruncpjPubdXp\nyUrKSzhw/YDWZdrYwM2bsHNntQ+4QBAUFMTAgQMZNGgQcrmcwMBANm/eTPfu3ettn5yczNdff01s\nbCz29vaaFeQtW7YgkUhYv349Tk5OyOVy3nnnHdauXYuPj7r8SFlZGUuXLtVk3wgJCeHnn3+mc+fO\ndeTI5XJsbGwIDQ3Fy8urQf1zc3ORy2tXiN25cydLlix5iFGpn5CQEIqKilAoFEydOpUvv/xSk2Zw\n9OjRfPrpp0DjYwTq3wyFQqF5WFpaYmpqWud9gHpiERgYiJ2dHY6OjmRmZvLxxx9jZGREREQEsbGx\nuLq6olAomD17tsY1pur1hIQEnJ2dcXJy4qeffkImkxEeHs7u3btp27Ytr7/+Ohs3bqzlj97Qd7VM\nJmP79u18//33yOVytm7dir+/f6O6fqLj9EparXDZnIjqWwLBX6e0tJS2bduSn59Px44dOXnyJAqF\nQt9qaUj/Op0b/7vB3Wt36X+1P8aWWi89UId/JSez6eZN/Nq2ZapCQTcLC90JLytTF9np2lXtC26A\nvHfwPb47+x1+Xf2Y0WsGNwtvYmduh5dzw4aGoHkQFS5bLklJSWzYsIH331eXNdmxYwc+Pj6a9IYR\nEREMHTqUGzdu1GvUC1o+eqtwKRAI9IuJiQnff/89f/zxBzExMWzfvp2RI0dSUqKfleZ7Kcssw/ld\nZwakDNCL4Q3wlpMTcf36MUouZ8ONG/Q9fVo3aQcPHVJnOlm4ECpXogyRJYOXkP5WOsM7DWfkppH8\n5+R/yC3J1apMlQoOH4bx48HZWV14RyBoKRQUFLBt2zZiYmI0Kf6Ki4s1hndVsKW/v7/BxOEIdItY\n+RYIHgNUKhW9e/emW7duTJs2jZEjR+rcx83Q8fnjD3pYWDC9XTvcdbH6feMGtG8PVYFGP/8Mv/4K\nEyZA//7al/8XuVN8BwkSbExtmm78kNy9q043WDU08fHqzYHHDbHy/WiQk5NDTEwMw4drN15CYFg0\n9vkVxrdA8JhQXl5usAZ3cWoxyZ8mY+piivP/OTfd4VFh1CjYt0993KYNvPYazJoFNdJiPa74+EBV\nTFlQEHzwgX710QfC+H40iIyMZNSoUc1ehEdg2AjjWyAQ1KKiogKlUlknul0fXF96neSP1WmgWjm1\n4umkp3Uf9HgPeUolpRUVtNX2+PzwA1TmBqZrV3WlSwNPbp2Rn8H/i/t/nLt1jk3jmi4q8qBs26be\nBAD1BsHFi1AjNvaxQBjfAkHLRfh8CwQCAK5fv87SpUtxdXXVVBjTN2392iIxVX8/laSUUHBW+5UU\nGyKuoICAixdx+u03dmVna1/giy9ClYvL5cvQzAU3mpuC0gJ6f9WbhOwEXnvqNa3K8vVVZz4BSEsz\nyCKgAoFA8EAI41sgeIwICwtj3759fPjhh0ybNk3f6gBg7Z15yp8AACAASURBVGmNYnx1Bpabm2/q\nRY/M0lL+k5bGnuxsBtnY8Iouit9YWKiXd597Dr79Vm2Av/SSugS9gZGRn8H3Z7/H3c4dN1s3rWc7\nadUKBg2qPtdVAVKBQCDQNsL4FggeE1atWsXbb7/N6dOn2b9/v77VqYViarXxnfHfDFTlut/+vl1W\nxn8zMshWKonKyeGGrjLCfPut2u+7Rw/18fDhBlna8UjSEebvnc/hPw8TeiEUlUpFaXkpygrtZYb5\n5BOYOBH27oX//EdrYgQCgUCnCJ9vgeAx4cyZM/Tt2xdQF0+4evUqmZmZ9OrVS8+aQWF8Iae6n4LK\nj3ivI71oPaS1zvUYcvYs0bnqNHrvODnR18qKiQaUF12f5JXkYb/KnmJlMQATe0zkl8Rf2PHSDgY5\nD2qi98Nz4wacOwcjRmhdlMEgfL4FgpaL8PkWCAT06dNHY2gXFxfTuXNn1q1bp2et1Jh3NafDog60\nf6M9fU70wWaw9tPZ1ccsBwfN8aqUFE7k5emn3DxATo5+5DaAdStrJj1ZXdr5ctZlfp/1u9YN75wc\neOEFcHeH3bu1KkogEAh0gjC+BYLHiJkzZ2qOn3jiCb799ls9alONRCLhiVVP0Pnzzlj3t9ZbtpPx\ndnbYVKZjrAD82rTRrS5lZbBmDQwYAE89VZ3o2kCoGWR5+fZlbE1ttS6zdWu1G3xKCnz2mdbFCQQC\ngdYRxrdA8BgxdepUWrVqBcC5c+e4evWqnjWqTUlaCcmrkonpH0PZnTKdyzeXSplqbw+Ap5UVOjd9\njY0hMRH+8Q91ZRkjw/qK7ufYj97tegPQ3qo913Ouc7voNrE3YrUmUyKBKVPURXcEAoHgUcCwvtkF\nAoFWsbW1Zd68eSxdupRr165hZmZGcHAw+fn5+lYNgEuvXKIovohOKzthbK2fghT/5+RE3FNPcaJP\nH8yNjJhz+TLnCnSQ/jAxEWbMgO++g40bobIUtSEhkUhYOXwlUQFRHJx2kJXHVuL2uRvbL27XifzD\nh2HoUHVSGIFAIGipiIBLgeAxZd68eWzZsgV/f38++ugj2ukitV4TqFQqvRfYqWLR1atE3r7NjHbt\nmOnggELbBXdSU8HZGVQq9XLvn39CcjL07l2dC9yAyCvJY/O5zUx6chKtTbUfHOvhAX/8oT7+6iv4\n+9+1LlLviIBLgaDlIipcCgSCOly+fBlnZ2fMzMz0rUq9FF0uoiy7DJsB+gm+zFMqsZJKdTsZGD4c\nDh5UH9vYQIcOsHWrOtrwMeftt2HVKvXxyJHq9IOPOsL4Fgi0y4wZM3BycuLDDz9s9nuLbCcCgaAO\nXbt2NUjD+9b2Wxx3OM7JbieJnxmvNz2sjY1rGd4VujBMXn65+tjOTp1brwUY3lduX+Gfv/xTk4ZQ\nG7z+unpDACAqSr0pIHh8cHFxwdzcHGtraxwcHHj11VcpKir6y/cpLS1l1qxZuLi4YGNjQ9++fdlb\nYyb38ssv4+joiI2NDd26dasTlB4fH8+wYcNo3bo1Xbp0YefOnQ/93nRFTk4OY8eOxdLSEldXV7Zs\n2VJvu6bGCGDo0KGYmZlhbW2NlZUV7i3ge8qQEMa3QPAYo1KpiImJYcGCBYSEhOhbHQDKc8spvVEK\nwN34u5Sk66jYTT2UVlQQlpmJzx9/EHDpkvYFjhsHVROiq1chLk77Mh+SgLAAhnw/hGJlMXfL7mpN\nTseO8Oyz6mOVCvz9tSZKYIBIJBJ27dpFXl4eZ86c4dSpUyxfvvwv30epVOLs7Ex0dDS5ubl8+OGH\nTJw4keTK2dx7771HUlISubm5hIeHs3TpUs6ePQtAeXk5L7zwAn5+fuTk5PDVV18REBBgcIHrDTF3\n7lxMTU3JzMxk06ZNvPbaa1yq53utqTEC9d/jiy++IC8vj/z8/HrvI2gYYXwLBI8xO3fuxM/Pj1u3\nbjF69Gh9qwOAw6sOtPau9CFWwa3QW3rT5WBODgsSEvg9P5/Vbm7aF2hlBS++CCYmauuyuBg2b1Yv\n9RogNwtuYm9hT9e2Xfl0+KfYmmk39eCwYdXHmZkGl4lRoGWq3GIcHBx4/vnnOX/+PABGRkZcv35d\n027GjBkENVAl1tzcnKCgIJycnAAYM2YMrq6uxMTEAODu7o6sMti5Kgbl2rVrgHrVOyMjgwULFiCR\nSPD29sbLy4uNGzc2qPOwYcNQKrVXBfZ+KSoqIiwsjOXLl2NmZoaXlxd+fn716t7UGFVxv25KK1eu\npEOHDlhbW+Pu7s6hQ4c0r2VkZDB+/HgUCgVubm61ak+kpqbi7++PQqHAzs6O+fPna16Lj4/H29sb\nW1tbevbsSUREhOY1V1dXVq9ejYeHB7a2tkyePJnSUvWCztmzZ+nbty82NjZMmjSJ4uLau3WN6dqc\nCONbIHhMuXbtGkuWLCE9PZ2jR4/i7Oysb5U02E+11xynf5OuFx1UKhX/d+0aqaWlZJWVsev2bd0I\n/vRTdTnHadPU1ua2bWCAVTbLK8rp9VUv/n3i3/ya9CtR17Q/QVi4UL0C/o9/wE8/VbuhCLTPsmXL\nWLZsWbOdPwwpKSns3r2bPn36PPS9bt68SUJCAj169NBcmzdvHhYWFri7u+Po6KhZmKjP2FSpVJpJ\nwL2kpaUBYGzcvJmbfH19sbW1RS6X13n28/Ort8+VK1cwNjbGrcYigoeHBxcuXGhSXn1jBPDuu++i\nUCgYPHgwR44caVBuSEgIMTEx5OXlsW/fPlxcXAD12Pn6+tK7d28yMjI4ePAga9euZf/+/VRUVODj\n44OrqyvJycmkpaUxaZK6yJdSqcTX15dRo0aRmZnJ559/ztSpU0lISNDI3bp1K1FRUSQmJhIXF8eG\nDRsoKytj7NixvPLKK2RnZzNhwgS2b99+X7o2N8L4FggeU5ycnMjKygLUKwz79+/XrA7oG+vB1lBp\nWN2Nv0vR5b/u2/mwSCSSWhUv/5uRQXxhofYrXjo7g60tPPMMnDoFYWFQWZnUkJAaSZnac6rm/KNf\nP+KVna+w+vhqrck0M4Pr1+HLL8HTU50gRvD48OKLLyKXyxkyZAje3t68++67D3U/pVJJQEAA06dP\np0uXLprrISEhFBQUcPToUcaNG6epjdCtWzcUCgWrVq1CqVQSFRXFkSNH6vU9P3DgAIsWLaJdu3Zs\n2rSpSV1qGoFNERERQU5ODtnZ2XWew8PD6+1TUFCAjU3t4HUbG5sm08w2NEbBwcFcv36dtLQ0Zs+e\nja+vL4mJiXX6S6VSSktLOX/+vMadxdXVFYBTp06RlZXFkiVLkEqluLi4MGvWLEJDQzl58iQZGRkE\nBwdjamqKiYkJAwcOBODEiRMUFhayePFijI2N8fb2xsfHp5YP+4IFC7C3t6d169b4+voSGxvLiRMn\nUCqVzJ8/H6lUir+/P/369bsvXZsbYXwLBI8pJiYmvFwjwG/WrFl069aNCgPYyzdzMcOylyUmHUxw\nDnRGainVix4v29sjq1xe/T0/n6Gxsdwq01HxHxsb6N69+vzuXbWzswHxj77/0Bz/lvobzjbOvOzx\nciM9Hh4jI/jhBxgyRF0EVFcbEgL98/PPP5OdnU1iYiLr1q3TGMUNsXnzZqysrLC2tmbMmDG1XlOp\nVAQEBNCqVatarg5VSCQSBg4cSEpKCuvXrwfUK9g7d+4kMjISBwcHPvvsM1566SU6dOhQp//w4cOR\nSqUsWrSIgIAAAHJzcwkLC2PFihW12ubl5WFpacnVq1fZsWMHH330EWfOnPlLY9MUlpaW5OXl1ZFr\nZWXVYJ/Gxqhfv35YWFggk8mYNm0aXl5e7N69u8493NzcWLNmDcuWLcPe3p4pU6aQkZEBQFJSEmlp\nacjlcs3q/YoVK7h58yYpKSl07NgRo3oKjaWnp2tcYqro2LGjZqcBwN6+evfU3NycgoIC0tPTad++\nfZ1+96NrcyOMb4HgMaZmufkbN24QFRVV75edrjEyMcLjoAcDkgbQaUUnWrVv/EdWW7Q1MWFs27aa\n8wl2dthrO9/3vdy5A598Ai4uUBn4ZSh0btOZ4Z2Ga84lSFBYaN9FJjUV3nxTXXK+TRutixNgGG4n\nDe06mZub11p9vnHjBgBTpkwhPz+fvLw8du3aVavPzJkzycrKIiwsDKm04cm9UqnU+HwDPPnkkxw+\nfJjMzEz27NnDtWvX8PT0rLdvbGxsLdeYqswhZfdM4H/55Re8vb2JiIigffv2LFy4kFVVeTXrYfTo\n0ZpJxb2PeycZVXTp0qXOe4mLi6vjSlKT+x0j0KTVq/e1SZMmER0dTVJSEgCBgYGAeve1U6dOZGdn\na1bvc3NziYyMxMnJieTk5HoXgxwdHUlJSal1LTk5uY5hfS8ODg6k3rNdlnxP2qSGdG1u9P8rKxAI\n9Eb37t15+umnAXUkf82gFX0js5UhMZJQlFDExYCLFF4q1IsesytdTyTAbX0ETn36KcTGwi+/QDP4\nuDY3c/rO0Ryfu3UOgDvFd7Qqc/FiGDtWHZcqEPTu3ZvNmzdTUVHB3r17G/Q/rmLOnDnEx8cTHh6O\nSY1/oszMTH788UcKCwupqKhg3759hIaGMqxGpO+5c+coKSmhqKiIVatWcePGDaZPn15HxsWLF3F3\nd0cikTToClJFSUkJJiYmvPnmm3h6epKamtqou8Pu3bs1k4p7H/dOMqowNzdn3LhxBAUFUVRUxLFj\nxwgPD6+1+3k/YwTqFfyoqChKSkooLy/nhx9+IDo6mpEjR9a5z5UrVzh06BClpaWYmJhgZmamMeQ9\nPT2xtrYmODiY4uJiysvLuXDhAqdPn8bT0xMHBwcCAwMpKiqipKSE48ePA9C/f38sLCwIDg5GqVRy\n+PBhIiMjmTx5cqPjPGDAAGQyGevWraO8vJywsDBOnjx5X7o2N8L4Fggec2bOnEn37t1ZvXo1U6dO\n5fLlyxpfcH2T+nkqZweexcLdglYd9LP6/aytLcGdOpH49NNsdHdn7+3b/JabqxvhJ0/C6dNw4gTo\nItvKA+DX1Y83n36T07NPM7H7REZsHMHf1v8NZYX2JyoqFYSGPh4Fdx53Git2tWbNmv/f3r3HRVmn\njR//XAiCSoI8hueUEnUtdUvXbDd/6bPt2uO6L9u0fpVZbWZPW1Z22OygoU9tbQfP+Xgot8xcz5ln\n00yttDwgnk0USEUUUBBEGRhmvs8f9zCiASJyz4xwvV8vXs59z3fme3k5zlzc8z2wZMkSGjRowOzZ\ns/nLX/5SZtsjR44wbdo0duzYQaNGjbxXkGfPno2IMHnyZFq0aEFUVBQvv/wy48ePp0+fPt7Hz5w5\nkyZNmtC4cWPWrVvHmjVrvKujlBQVFUVERARz5szhd7/7XZnx5OTkEBUVdcG5L7/8ktdff728dFTK\npEmTOHfuHNHR0QwYMIApU6Z41+fu3bs3//znP4HycwTgdDoZPny4dxWSSZMmsXjxYmJjY3/RZ0FB\nAa+88grXXnstTZs2JTMzk7fffhuwVqlZunQpO3bsICYmhujoaAYPHkxubq73voMHD3LdddfRokUL\n5s2bB0BISAhLlixhxYoVNGzYkCFDhjBz5kxv/2W9VkJCQli4cCGffPIJUVFRzJ8/n34l1iwtL9aq\npjtcKlXDuVwu7xvd22+/TW5uLrNmzeLmm2/2d2jk/5xPcGQwIZG//HDztbXZ2Tyyfz9NQkMZ1aoV\nve0e71BQYC3tkZ5uHY8dC48+CitXwiWu8PiDMYYnlz1Jz5ie3N3ubsKCw2ztb9w4eO01ayh8375w\nFe11UmG6w2X1c/jwYT799FPi4uIAWLRoEX369PEW8EuXLqVHjx6cOHGi1GJWXT10h0ulVJlqebZQ\nDw8PZ9CgQezatSsgCm+wJl4WF97GZTg67iiFmf5ZkeXGunVZ1bEjWzt3tr/wBggNtarLYq+/bl39\nXrkSAmDd4IuJCFP/PJX7b7rf9sIbICrKKrwBNm0CX82DVaqy8vLyWLBgAfHx8d4l/hwOh7fwLp5s\n2a9fP+9VXlU96ZVvpVSpijeYCARpH6eR9EISrjMumj7TlDYT2lz6QTbLd7moY9N4QK+CAmjT5vxe\n6s8/D2PG2NtnFTDGMH/ffKLqRF0wIbMquVzWFwPFCxxMmWKt/12d6JXv6i07O5v4+HjuvNOe/yPK\nv/TKt1KqwowxrFq1iptvvpmdAbK9eeaCTFxnXACcmH6Cwgz/rUfuMoZpaWncsHkze/Ly7O0sNBRK\nrhAxfXrAr613KOsQ3T/pzjvfv0O9kHq29VOrFvztb+ePn3oK9u2zrTulqtzGjRvp0aOHv8NQfqDF\nt1LqAiNHjmTgwIEMHjyYjh07+jscADqu6Ei9TlYh5z7n5sh7Ry7xCPs8lZjI35OS6B0VxU3h4fZ3\nOHAgtGtnrfs9bBjk5lpDUF54wf6+K+Hk2ZPUC6nHq7e/ym0tbrO1r+efh+J/Arfb2o9IqatFnz59\nqnz3S3V10OJbKeX17bff8tlnn3Hy5ElWrVoVMMNOJEiIGXV+6a3Ucak40hw+j2NTTg4fHT9OrsvF\n5+npHCplZ7sqFxwMc+daWzs++CB07gxZWTBkiP19X6bPd33Obf+6jdXJqxn9w2iMMRS6CjlTUP4u\nepVVt641CqdePXjnHXjpJVu6UUqpKqVjvpVSXsXrqxb/X1u6dCmFhYX07dvXtvVOK8rtdrOp4SaK\nsq3Jhi3jWhIz0p6tf8uMwRi6bd/OVs+WzL0aNKBHZCRPN2vGNb66gpWZCdde65u+LlN6XjotxrbA\n6bZmPz7b9VlWHFrB0FuH8nTXp23p0xgrJdHR1hD56dPh8cerxxrgOuZbqauXjvlWSlVIly5dLtj1\nsn///rz77rtkZGT4MSpLUFAQzYY2IzQmlHaftaPViFa+j0GESbGxFL+bfpWdzbJTpzhXyi5stilZ\neGdkQHa27/q+hEbhjXju1ue8xx9u/ZA3e75pW+ENIGIV3suWQfv28NVX1sgcpZQKVFp8K6Uu8I9/\n/IOIiAjA2nSgX79+NPHs8uhvrUa04tbEW2k8sDFSSyjK9f2Se7+pX9+76yXAscJC6vv6W4HUVHju\nOWss+Lff+rbvSxjZYyStIlsB4DZulhwof3e/qpKTA1OnwuLF0LChT7pUSqlK0eJbKXWB6OhoRo0a\n5T3esmULxhgC4StpESEoOIjcLbns7LWT/Q/v90scb19/PVHBwdSvVYvnmzcnRIQ8X669HR8PKSmw\ncKG1w0wAqVe7HlP7TAUgLDiMTo064XQ5mbx1MquTVtvW74ABUHLFtuI1wJVSKtDomG+l1C84nU7u\n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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Get the decay rate data\n", + "dr_tally = decay_rate.xs_tally\n", + "dr_u235 = dr_tally.get_values(nuclides=['U235']).flatten()\n", + "dr_pu239 = dr_tally.get_values(nuclides=['Pu239']).flatten()\n", + "\n", + "# Compute the exponential decay of the precursors\n", + "time = np.logspace(-3,3)\n", + "dr_u235_points = np.exp(-np.outer(dr_u235, time))\n", + "dr_pu239_points = np.exp(-np.outer(dr_pu239, time))\n", + "\n", + "# Create a plot of the fraction of the precursors remaining as a f(time)\n", + "colors = ['b', 'g', 'r', 'c', 'm', 'k']\n", + "legend = []\n", + "fig = plt.figure(figsize=(8,6))\n", + "for g,c in enumerate(colors):\n", + " plt.semilogx(time, dr_u235_points [g,:], color=c, linestyle='--', linewidth=3)\n", + " plt.semilogx(time, dr_pu239_points[g,:], color=c, linestyle=':' , linewidth=3)\n", + " legend.append('U-235 $t_{1/2}$ = ' + '{0:1.2f} seconds'.format(np.log(2) / dr_u235[g]))\n", + " legend.append('Pu-239 $t_{1/2}$ = ' + '{0:1.2f} seconds'.format(np.log(2) / dr_pu239[g]))\n", + "\n", + "plt.title('Delayed Neutron Precursor Decay Rates')\n", + "plt.xlabel('Time (s)')\n", + "plt.ylabel('Fraction Remaining')\n", + "plt.legend(legend, loc=1, bbox_to_anchor=(1.55, 0.95))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's compute the initial concentration of the delayed neutron precursors:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, "metadata": { "collapsed": false }, @@ -1045,173 +1242,156 @@ " 0\n", " 1\n", " 1\n", - " (U235 / total)\n", + " U235\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 9.391610e-08\n", - " 2.566220e-10\n", + " 8.779406e-08\n", + " 2.310240e-08\n", " \n", " \n", " 1\n", " 1\n", " 1\n", - " (Pu239 / total)\n", + " Pu239\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 7.611347e-09\n", - " 2.278727e-11\n", + " 7.150041e-09\n", + " 3.854534e-09\n", " \n", " \n", " 2\n", " 1\n", " 2\n", - " (U235 / total)\n", + " U235\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 1.102594e-06\n", - " 3.012794e-09\n", + " 9.528171e-07\n", + " 1.124883e-07\n", " \n", " \n", " 3\n", " 1\n", " 2\n", - " (Pu239 / total)\n", + " Pu239\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 1.422470e-07\n", - " 4.258670e-10\n", + " 1.303200e-07\n", + " 3.422243e-08\n", " \n", " \n", " 4\n", " 1\n", " 3\n", - " (U235 / total)\n", + " U235\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 6.685886e-07\n", - " 1.826892e-09\n", + " 2.353975e-07\n", + " 3.367779e-08\n", " \n", " \n", " 5\n", " 1\n", " 3\n", - " (Pu239 / total)\n", + " Pu239\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 5.419872e-08\n", - " 1.622631e-10\n", + " 2.032960e-08\n", + " 5.622830e-09\n", " \n", " \n", " 6\n", " 1\n", " 4\n", - " (U235 / total)\n", + " U235\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 4.886781e-07\n", - " 1.335293e-09\n", + " 4.720335e-07\n", + " 4.240950e-08\n", " \n", " \n", " 7\n", " 1\n", " 4\n", - " (Pu239 / total)\n", + " Pu239\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 2.626687e-08\n", - " 7.863920e-11\n", + " 2.626392e-08\n", + " 5.152078e-09\n", " \n", " \n", " 8\n", " 1\n", " 5\n", - " (U235 / total)\n", + " U235\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 1.469529e-08\n", - " 4.015430e-11\n", + " 2.828001e-08\n", + " 4.006859e-09\n", " \n", " \n", " 9\n", " 1\n", " 5\n", - " (Pu239 / total)\n", + " Pu239\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 1.274953e-09\n", - " 3.817026e-12\n", + " 2.430664e-09\n", + " 6.573695e-10\n", " \n", " \n", " 10\n", " 1\n", " 6\n", - " (U235 / total)\n", + " U235\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 1.185934e-09\n", - " 3.240517e-12\n", + " 1.477575e-09\n", + " 3.414084e-10\n", " \n", " \n", " 11\n", " 1\n", " 6\n", - " (Pu239 / total)\n", + " Pu239\n", " (((delayed-nu-fission / nu-fission) * (delayed...\n", - " 5.371343e-11\n", - " 1.608102e-13\n", + " 6.994534e-11\n", + " 3.439208e-11\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell delayedgroup nuclide \\\n", - "0 1 1 (U235 / total) \n", - "1 1 1 (Pu239 / total) \n", - "2 1 2 (U235 / total) \n", - "3 1 2 (Pu239 / total) \n", - "4 1 3 (U235 / total) \n", - "5 1 3 (Pu239 / total) \n", - "6 1 4 (U235 / total) \n", - "7 1 4 (Pu239 / total) \n", - "8 1 5 (U235 / total) \n", - "9 1 5 (Pu239 / total) \n", - "10 1 6 (U235 / total) \n", - "11 1 6 (Pu239 / total) \n", + " cell delayedgroup nuclide \\\n", + "0 1 1 U235 \n", + "1 1 1 Pu239 \n", + "2 1 2 U235 \n", + "3 1 2 Pu239 \n", + "4 1 3 U235 \n", + "5 1 3 Pu239 \n", + "6 1 4 U235 \n", + "7 1 4 Pu239 \n", + "8 1 5 U235 \n", + "9 1 5 Pu239 \n", + "10 1 6 U235 \n", + "11 1 6 Pu239 \n", "\n", " score mean std. dev. \n", - "0 (((delayed-nu-fission / nu-fission) * (delayed... 9.39e-08 2.57e-10 \n", - "1 (((delayed-nu-fission / nu-fission) * (delayed... 7.61e-09 2.28e-11 \n", - "2 (((delayed-nu-fission / nu-fission) * (delayed... 1.10e-06 3.01e-09 \n", - "3 (((delayed-nu-fission / nu-fission) * (delayed... 1.42e-07 4.26e-10 \n", - "4 (((delayed-nu-fission / nu-fission) * (delayed... 6.69e-07 1.83e-09 \n", - "5 (((delayed-nu-fission / nu-fission) * (delayed... 5.42e-08 1.62e-10 \n", - "6 (((delayed-nu-fission / nu-fission) * (delayed... 4.89e-07 1.34e-09 \n", - "7 (((delayed-nu-fission / nu-fission) * (delayed... 2.63e-08 7.86e-11 \n", - "8 (((delayed-nu-fission / nu-fission) * (delayed... 1.47e-08 4.02e-11 \n", - "9 (((delayed-nu-fission / nu-fission) * (delayed... 1.27e-09 3.82e-12 \n", - "10 (((delayed-nu-fission / nu-fission) * (delayed... 1.19e-09 3.24e-12 \n", - "11 (((delayed-nu-fission / nu-fission) * (delayed... 5.37e-11 1.61e-13 " + "0 (((delayed-nu-fission / nu-fission) * (delayed... 8.78e-08 2.31e-08 \n", + "1 (((delayed-nu-fission / nu-fission) * (delayed... 7.15e-09 3.85e-09 \n", + "2 (((delayed-nu-fission / nu-fission) * (delayed... 9.53e-07 1.12e-07 \n", + "3 (((delayed-nu-fission / nu-fission) * (delayed... 1.30e-07 3.42e-08 \n", + "4 (((delayed-nu-fission / nu-fission) * (delayed... 2.35e-07 3.37e-08 \n", + "5 (((delayed-nu-fission / nu-fission) * (delayed... 2.03e-08 5.62e-09 \n", + "6 (((delayed-nu-fission / nu-fission) * (delayed... 4.72e-07 4.24e-08 \n", + "7 (((delayed-nu-fission / nu-fission) * (delayed... 2.63e-08 5.15e-09 \n", + "8 (((delayed-nu-fission / nu-fission) * (delayed... 2.83e-08 4.01e-09 \n", + "9 (((delayed-nu-fission / nu-fission) * (delayed... 2.43e-09 6.57e-10 \n", + "10 (((delayed-nu-fission / nu-fission) * (delayed... 1.48e-09 3.41e-10 \n", + "11 (((delayed-nu-fission / nu-fission) * (delayed... 6.99e-11 3.44e-11 " ] }, - "execution_count": 22, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# Set the time constants for the delayed precursors (in seconds^-1) using some ficticious time constant data.\n", - "precursor_halflife = np.array([55.6, 24.5, 16.3, 2.37, 0.424, 0.195])\n", - "precursor_lambda = -np.log(0.5) / precursor_halflife\n", - "\n", - "# Create a tally object with only the delayed group filter for the time constants\n", - "beta_filters = [f for f in beta.xs_tally.filters if f.type != 'delayedgroup']\n", - "lambda_tally = beta.get_condensed_xs(one_group).xs_tally.summation(nuclides=beta.xs_tally.nuclides)\n", - "for f in beta_filters:\n", - " lambda_tally = lambda_tally.summation(filter_type=f.type, remove_filter=True) * 0. + 1.\n", - "\n", - "# Set the mean of the lambda tally and reshape to account for nuclides and scores\n", - "lambda_tally._mean = precursor_lambda\n", - "lambda_tally._mean.shape = lambda_tally.std_dev.shape\n", - "\n", - "# Set a total nuclide and lambda score\n", - "lambda_tally.nuclides = [openmc.Nuclide(name='total')]\n", - "lambda_tally.scores = ['lambda']\n", - "\n", "# Use tally arithmetic to compute the precursor concentrations\n", "precursor_conc = beta.get_condensed_xs(one_group).xs_tally.summation(filter_type='energy', remove_filter=True) * \\\n", - " delayed_nu_fission.get_condensed_xs(one_group).xs_tally.summation(filter_type='energy', remove_filter=True) / lambda_tally\n", - " \n", - "# The difference is a derived tally which can generate Pandas DataFrames for inspection\n", + " delayed_nu_fission.get_condensed_xs(one_group).xs_tally.summation(filter_type='energy', remove_filter=True) / \\\n", + " decay_rate.xs_tally.summation(filter_type='energy', remove_filter=True)\n", + "\n", + "# Get the Pandas DataFrames for inspection\n", "precursor_conc.get_pandas_dataframe()" ] }, @@ -1224,7 +1404,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -1243,7 +1423,7 @@ "(0, 7)" ] }, - "execution_count": 23, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, @@ -1251,7 +1431,7 @@ "data": { "image/png": "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\nA9YuP+yww7jqqqtYtGgRCxYsWHtHyra09eRV78RSKQWXv6PNbdPivpL6kJVwzo+I5WnxdcCHI2JP\nslLND1sdsVkHGTMGli+vulmntnx5dh22zr333svixYt59dVXueaaa+jVq1eL25911llrb1d8+eWX\nr7fum9/8JtOmTePXv/51xX179uzJyJEjueyyy3j55ZcB+K//+i/22msv9txzTw488ECOOeYYNtts\nM7bZZpvaXGAF9a4KmwsMLnm9AzC/bJs5wI7AfEmbAP0i4i1Jc9PyDfaVtClZUrk5Iu5t2iAi/lmy\n/S+Aic0FNqbk09/Y2EhjY2PuizKrh6InlSad6TraU3VVsxgqlE569+69XolhwYIFa59ff/31XH/9\n9RvsM3r0aB588EGeeOIJ+vTp0+I5V65cySuvvMLuu+9Or169uPrqq7n66qsB+PnPf87ee++dq+pt\n8uTJTJ48uep2G8hzN7C2PoBNgP8GhgA9gReAXcu2ORu4Lj0fRdauArAb8Hzab1g6TtONyW4ia6Qv\nP992Jc8vAG5rJq7qt1Az28iyO7RnjyLqqPg789/z0KFD45FHHtlg+YknnhgnnnhirFy5MqZMmRID\nBw6Mk08+udnjfO9734vhw4fHggULNlj39NNPx5NPPhnvv/9+rFixIi6//PLo27dvvPHGGxERMW/e\nvJg/f35ERDz11FOx4447xsMPP9xi3M29p+S8g+TGuA3wocDfgFnARWnZWOBz6fnmwB1p/dPA0JJ9\nL04JZTowIi07AFidktTzwFTg0FiXcF5K6/4fsG0zMbX4ppp1BCeWtp63875hw4YNq5hYXnnlldhv\nv/2ioaEhPve5z8X555/fYmKRFL169YqGhoa1tyu+7LLLIiLi8ccfjz322CP69u0bAwYMiMbGxnjy\nySfX7vvEE0/E0KFDo3fv3rHLLrvE7bffXjXu9iYW35rYrJMorZko4sezo+L3rYlrz7cmNjOzTqVq\n472k/YGTgE8C2wMrgL8AvwVuiYgldY3QzMwKpcWqMEm/I+uJdS/wZ+AfQC9gZ+Ag4AiyRvT76h9q\n7bgqzDojV4W19byuCqu19laFVUssAyNiUZUAqm7T2TixWGfkxNLW8zqx1Fpd21iaEoak3mneLyTt\nLOlISZuVbmNmZgb5G++fAHpJGgQ8AnwR+FW9gjIzs+LKO/JeEfGupNOAayLiCknP1zMwM7M8hgwZ\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1295,7 +1475,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -1306,7 +1486,7 @@ "(0.001, 20)" ] }, - "execution_count": 24, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, @@ -1314,7 +1494,7 @@ "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEdCAYAAAAIIcBlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXmYFNW1wH9nkAFhmGFT2WdQcFdQFNGADPrCEwExLiwG\nBDSuUTASEw2GqVEUjY+oaOKSEEUUiDsKBFcajKLiRlQggjjDKrLIJgozcN4fVd1U9/RSMz09vd3f\n99XXXXVv3TpVXX3PXc49R1QVg8FgMBj85CRbAIPBYDCkFkYxGAwGgyEIoxgMBoPBEIRRDAaDwWAI\nwigGg8FgMARhFIPBYDAYgjCKwWCoJUTkcBFZJCI7ROS+BF/rEREZH8f5t4nI47UpkyFzMIohhRGR\nMhHZIyI7RWSX8zkl2XLFQkSOF5HXRGSbsy0RkfMSfM0FInJFIq/hgauB71S1QFVvibcwERkpIpXh\nfn9VvU5V76pp2ao6SVWvjlfGUByZD4jIuJDja0Xk7Foov0REnoq3HEN0Dkm2AIaoKNBfVRck8iIi\nUk9V99dika8CfwH6O/unA1KL5VebBNxjOAqBZTU5MYp876lq3BVqHbMN+L2IPKaqu+v64iIialbu\nxoeqmi1FN+Ab4JwIaSOBd4D7sP+IXwPnudLzgb8DG4C1wJ2AuM79N/BnYCtwB3bvcTKw2Snr18AB\n5/glwEch1x8HvBhGrhbAfiA/gty9HXluc661GrjMlZ4L/B9QDmwE/go0cKUPAj4FdgArgb7ARKAS\n2APsBKY4eQ8A1wNfOfdU6L8nV3kLgCvCPJfvgVXAmc7xNcC3wOUR7usJYB+w15HhHOdeHgDWA+uA\n+4H6Ic/hd859TovwGy+Kcr07XM/8VUfmrcBCV77fO9feCSwH+jjHS4DprnwXAF8479LbwLEh7+E4\nYKlzjZlAboz3cjYwwXV8LXC2812AW53nuxmYBTR1P5dw/wPgf53nuxfYBXzq+g0nOr/dD8CRQGtH\nhq3O7/8rV3klwD+Bac5z+Rw4NdYzy6bNDCWlN92xX9wW2ApiqivtKeyK6kjgFODnwK9c6Wdg/zEP\nA+7CHgb5X+Bk4FTgQuweC8ArQJGIHOM6/5fONYJQ1a1Ouc+IyCAROTyM3K2A5kAbYBTwuIh0dtL+\nBHRy5OgEtAUmAIhId+w/8zhVLQDOBspU9XbsyugGVc1X1TGuaw3C7rEc7xcxjDxuugOfOfLNxK60\nTgOOAkYAD4tIozD3PRp4BrjXkeFt4HanvJOBLs7320OeQ1OgA/bzrynjsCveFsDhwB8ARORobAXf\nTVXzsX/fMrfYrnwzgDHY78O/gFdFxD2icCm2Eu7o3MuoKPIo8EfgNyLSNEz6WGxF1Av7HfgeuwEQ\nJFeVQlVfA+4G/qmqTVT1FFfycOz3uwm2Ep/pfLZyZL9bRPq48g907rmAgz1cL88sKzCKIfV52Rmn\n/975vNKVVq6q/1C7mTMNaO1MgB4OnAf8RlV/UtUt2C3XYa5z16vqX1X1gKruxf7zPKiqG1V1B3CP\nP6Oq7sNuYQ0HEJETsFvfcyPI3Ae7lfd/wAYR8YlIJ1e6An9U1QpVXeSUM9hJ+5Uj9w5V/cGRwy/3\nFcBUp9LFkfWrGM/vbqesvTHy+flGVZ9ynuk/gXZAqSPrG9jKtlPUEg5ymXPuVkdhlmIrFz/7gRKn\n7EjynRny+3cPk6cCu4XcUVX3q+q7rvJzgRNF5BBVXaOq34Q5fzAwR1XfVns46/+AQ4GzXHkeVNVN\nqroduyLtGu3GVfU/wOvYre9QrgbGO79fBXaP9RIRiac+elJVV6jqAWxl8DPg986zXYrde3Y/+3+r\n6mvO7zwdW3mD92eW0RjFkPoMUtXmqtrM+XT3Cr71f1HVH52vediVdn1go79SAR4FWrrOXRtynTYh\nx0LTn8Ku6MBWEM86f+oqqOoGVR2jqp0dWfZgKy4/36vqT679cqCNiBwGNAI+9k9cY7deWzj52mMP\nCVWHddXMv8n1/UcAR7G6j+V5LKsNdqvVT7lzzM/mSM/QxeKQ3//DMHnuw34ur4vIKhH5vSP318BN\ngAVsEpEZItIqgpzl/h2nslyL3Vvz434ue/D2DCYA14nIESHHC4GXXL/xMmzlFpqvOrjf1zbANlXd\n4zpWTvD9fOv6vgdoKCI5EZ5Z6zjkSkuMYkh9ajJpuxb4CWjhqlSaqurJrjyh3fWN2K1jPx3ciar6\nAbBPRHphK4jpXgRR1fXY3fQTXYebicihIdfaAGzB/pOe4Mjd3JG7wHVfR0W6lIfjPzif7qGgcBVl\nbbEeuxL0U4h9n35qZYJUVXer6m9V9SjsIZKb/cMmqjpLVXu55Lg3TBEbQuQEWwlXV6mGyvVf4EXs\noS33va4B+rl+42aq2lhVN2L/RoHfR0TqYQ9vBYqNdDnX9w1AcxFp7DrWAfv38CJ36DO7J1r+TMQo\nhgxEVb/F7sbfLyJNxObIGOaCzwJjRaSNMy78uzB5pgMPAxWq+l64QkSkqYhYInKUc92W2ENAi93Z\ngFIRqe8omv7YPRAF/gY84PQeEJG2ItLXOW8qMFpE+jhlt3HNe2zCnk+J9ly2YFcOw0UkxzFvjaRo\n3LLWlFnA7SLS0nkOf8SjQq0OItJfRPz3sRt7In6/iBztPKtc7CGwH7GHSkJ5Fujv5D1ERH6L3bBY\nHCZvdbkDGI09l+LnMewx/w6O/IeJyAVO2lfYrfd+zhzH7dhDO342Yc93RfxdVHUd8B4wSUQaiMjJ\nwJXA01HkFEcWr88sozGKIfV51bFf928vRMnrbjVdjv2HWoZtafIc0VvHf8NWJv8BPsYe9690xmz9\nTMdu+UezI98HFAFvYFsO/Qe7khntyrMRe8Jxg1PmNaq60kn7Pfbk9fsist2R6WgAVV3ilPOAU7aP\ngz2bB4FLRWSriDwQ5nn4uQpb6W0BjgPeDZPHTWgZ0Vr5oWkTgY+wn8FS53uN1x5EoTPwpojswr6f\nvzhzNw2wW7ubsZ/1YTgT00FC2/M0w7GV/mZsRT1QVSv9WWoqmKqWYf/G7tb7g9gWQ6+LyA7sSry7\nk38ntiXZVOweyy6Cey7PYVfiW0XkoyjyDcOeKN8AvIA9p/V2NFGdT0/PLNPxmy8m7gL2wqYHsJXQ\nVFW9NyS9l5N+MjBEVV8MSW+CbXnzYoi1iSGBOL/bI6ra0XWsIXaL7VRnLLYm5fbGNpPsEDOzwWBI\nCgntMThWBg9jm3ydAAwTkWNDspVj2z4/E6GYO7FbhoYEIiL+7ns9EWmLbev9Yki264ElNVUKBoMh\nPUj0yufuwEpVLQcQkVnYduUr/BlUdY2TVqXrIiLdsO2y52PbkhsSh2CbU87CHledg60c7EQRv8ne\nhXUvmsFgqEsSrRjaEmxGtg5nLDEWzuTS/2GPff5P7YtmcOOYu0b8bdxDSnFeZyEhFk8GgyG1SLRi\nCGc54HVS43pgrqqudwwQwlohhOtpGAwGgyE2qhq2Xk20VdI6gluH7Qi2447GmcANIrIau+cwQkTu\nDpdRE+gzpKSkJGHnxcoTKT3ccS/H3Ps1va9EPjev55jnlnrPrbr7yX5mtfXcqpuWSs8tGonuMSwB\nOolIIbaJ4lCC3TKEEtBeqjo8cFBkJLbvkjo3GysuLk7YebHyREoPd9zLsZreS02oybW8nmOeW83O\nSeRzS7dnVp3zouWrbloqPbeoJEobubTSecB/sT1h3uocKwUGON9Pw56H2IVtO/x5mDJG4njMDJOm\nhupTUlKSbBHSEvPcaoZ5bjUjkc/NqTvD1tsJj8egqvOBY0KOlbi+f4S9/D5aGdMI9rVjiJOUaZmk\nGea51Qzz3GpGsp5bwhe4JRoxMTkMBoOh2ogImqTJ56RRVFSEiJjNbFG3oqKiZL+qcWP5LKRUqmyW\nz4qav8mkJkx+b3LdCmtICzI2tGd5eXnMmXeDQSSpEUeTyu59u7EWWow7a1zszIasImN7DAaDITa7\n99V5SGZDGpCxcwwiYnoMhphk63sipQd7SlqSffdvyNI5BoPBYDDUjIydYzAYMhn3xLJVbEXMF4mS\n3iWxMxmyFjOUZPBETk4Oq1at4sgjowZJY+HChQwfPpy1a0NDRieW0aNH0759e+64445qnZeu74kZ\nCjLEixlKSkFycnJYvXp10LHS0lJGjBgRNv++ffv41a9+RVFREQUFBXTr1o358+cH0pcvX87pp59O\n8+bNadGiBX379mX58uVBZefm5pKfn0+TJk3Iz8+nrKzMs7zVsd7JZksfgyETMIohSUSqPCMdr6ys\npEOHDrzzzjvs2LGDO+64g8GDB7NmzRoA2rZtywsvvMC2bdvYsmULAwcOZOjQoUFlDB06lJ07d7Jr\n1y527txZLRv+dGxVGwyGmmEUQ5KobkXbqFEjJkyYQPv2tveQ/v3707FjRz7++GMA8vPz6dDBdmS7\nf/9+cnJy+Prrmgdau++++2jTpg3t2rXjiSeeCFJY+/bt47e//S2FhYW0bt2a66+/nr1794Yt5957\n76VTp07k5+dz4okn8vLLLwfKaNGiBV9++WUg7+bNm2nUqBFbt24FYM6cOZxyyik0a9aMnj178vnn\nnwfyfvrpp3Tr1o2CggKGDh3KTz/9VON7NRgMwWS1YrAsEKm6WZb3/JHyJppNmzaxcuVKTjjhhKDj\nzZo1o1GjRowdO5bx48cHpb366qu0bNmSk046iUcffTRi2fPnz+fPf/4zb731FitXruTNN98MSv/d\n737HqlWr+M9//sOqVatYv359xLH9Tp068e6777Jz505KSkoYPnw4mzZtIjc3l2HDhvH0008H8s6c\nOZOf//zntGjRgk8++YQrr7ySv/3tb2zbto1rrrmGCy64gIqKCioqKvjFL37ByJEj2bZtG5deeikv\nvPBCdR+hwWCIQFYrhnSlsrKS4cOHM2rUKI4++uigtO+//54dO3bw8MMP06VLl8DxIUOGsHz5cjZv\n3szjjz/OHXfcwT//+c+w5T/33HOMHj2a4447jkMPPRTLsoJ6OH//+9+5//77KSgooHHjxtx6663M\nnDkzbFkXX3wxRxxxBACXXnopnTt35sMPPwTg8ssv55lnDob6nj59OpdffnngGtdeey2nnXYaIsKI\nESNo0KAB77//Pu+//z6VlZWMGTOGevXqcfHFF3P66afX4EmmLyW9SwJbTbB8VmAzGEIx5qpJol69\nelRUVAQdq6iooH79+gCcf/75vPPOO4gIjz32GMOG2WEsVJXhw4fToEEDHnroobBlH3rooVxzzTUc\ndthhrFixgpYtW3LssccG0s8880zGjh3L888/z5AhQ6qcv2HDBk477WCI7cLCwsD3zZs3s2fPHrp1\n6xY4duDAgYhDY0899RT3339/YKL7hx9+YMuWLQB0796dvLw8Fi5cSKtWrfj6668ZOHAgYLs0eeqp\npwL3qKpUVFSwYYMd56lt27ZB13HLmA3UxETVTenC0lory5B5ZLVisKzqDQVVN380OnToQFlZGccc\nc9Aj+TfffBPYnzdvXtjzrrzySrZs2cK8efOoV69exPL379/Pnj17WL9+PS1btqySHs1Ms3Xr1kHm\npuXl5YE5hpYtW9KoUSO+/PJLWrduHfUe16xZw9VXX82CBQs488wzATjllFOCrjty5EimT59Oq1at\nuOSSS8jNzQWgffv2jB8/nttuu61KuYsWLWL9+vVVrtWpU6eo8hgMBm+YoaQkMWTIECZOnMj69etR\nVd58803mzJnDJZdcEvGca6+9lhUrVvDKK68EKlA/b775Jp999hkHDhxg586d3HzzzTRv3pzjjjsO\ngFdeeYXt27cD8OGHHzJlyhQuvPDCsNcZPHgwTz75JMuXL2fPnj1B8wciwlVXXcVNN93E5s2bAVi/\nfj2vv/56lXJ++OEHcnJyaNmyJQcOHOCJJ57giy++CMozfPhwXnrpJZ555pnAMBLAVVddxaOPPhoY\ndvrhhx+YN28eP/zwA2eeeSaHHHIIDz30EPv37+fFF18M5DMYDPFjFEOSmDBhAmeddRY9e/akefPm\n3HrrrcyYMYPjjz8+bP41a9bw+OOP89lnn3HEEUcE1iL4x/a3b9/OsGHDaNq0KZ07d2b16tXMnz8/\n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\nalQgII2f77//nh9//DHQGvczZMgQrrnmGo444gjef/99Lr74Ypo1a8aQIUPCXkNEuPPOO6lfvz5n\nn302/fviYcdKAAAgAElEQVT359lnn2X8+PEADBo0iB49egBQv359nn32WZYuXUqjRo0oLCxk3Lhx\nTJ8+PaAY3OE4hwwZwt13301JSQn169fn5z//Obm5uaxatYqTT7Y9rfTv35+f/exnANx1110UFBSw\nfv162rZtC1S/x5XOhBvWSfc4C4nGDFXFh9cIbk2Bbc73ggTJklXUq1ePioqKoGMVFRXUr18fgPPP\nP5933nkHEeGxxx4LOJNTVYYPH06DBg0C8ZlDOfTQQ7nmmms47LDDWLFiBS1btuTYY48NpJ955pmM\nHTuW559/PqJiaNasGQ0bNgzsFxYWsmHDhsC+O6Tnli1bqKioCFJEhYWFQSE9jzjiiCD5AFq2bBl0\nbPfug61kd/mNGzemefPmbNiwIaAYsp10r/dMxZ3aeFEMk4BPRWQBIMDZQPxR61OASN3Qmu5Xhw4d\nOlBWVsYxxxwTOPbNN98E9ufNC28dfOWVV7JlyxbmzZtHvXr1Ipa/f/9+9uzZw/r164MqYD+xXEH4\nex7+SnzNmjWcdNJJQef7admyJfXr16e8vDyggMrLy+OqxN0hQ3fv3s22bduySinEaw2U6b6SYmFc\nZsRHVMUg9r//30AP7HkGAX6vqt9GO88QmyFDhjBx4kROPPFE2rRpw1tvvcWcOXMCQzXhuPbaa1mx\nYgVvvvkmubm5QWlvvvkmLVu25OSTT2b37t3cfvvtNG/enOOOOw6AV155hbPPPpumTZvy4YcfMmXK\nFO65556I11JVSkpKuOuuu3j//feZO3dulTkLPzk5OQwePJjx48czbdo0tm7dyv3338/vfve7qOVH\nY968ebz33nucdtpp/PGPf6RHjx60adMGgFatWrF69WqOPPLIqGWkM/FWxqWu+Ds1qRcTvbLaVNyp\nTVTFoKoqIi+rajfglTqSKSuYMGECJSUl9OzZk+3bt3PUUUcxY8YMjj/++LD516xZw+OPP07Dhg0D\nwzLuYabt27dz4403sn79eg499FBOP/105s+fH1Ags2bN4oorrmDfvn20a9eO2267jeHDh0eUr3Xr\n1jRr1ow2bdrQuHFjHnvsscDEczhz0SlTpnDjjTdy5JFHcuihh3L11VcH5hfCEVpG6P5ll12GZVks\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 2ab823e6ed..425724bb6f 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1859,6 +1859,11 @@ The ```` element accepts the following sub-elements: | |deposited locally. Units are MeV per source | | |paticle. | +----------------------+---------------------------------------------------+ + |decay-rate |The delayed-nu-fission-weighted decay rate where | + | |the decay rate is in units of inverse seconds. | + | |This score type is not used in the | + | |multi-group :ref:`energy_mode`. | + +----------------------+---------------------------------------------------+ .. note:: The ``analog`` estimator is actually identical to the ``collision`` diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index 8941d4c6f9..9fa286ff31 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -20,7 +20,8 @@ if sys.version_info[0] >= 3: # Supported cross section types MDGXS_TYPES = ['delayed-nu-fission', 'chi-delayed', - 'beta'] + 'beta', + 'decay-rate'] # Maximum number of delayed groups, from src/constants.F90 MAX_DELAYED_GROUPS = 8 @@ -213,7 +214,7 @@ class MDGXS(MGXS): Parameters ---------- - mdgxs_type : {'delayed-nu-fission', 'chi-delayed', 'beta'} + mdgxs_type : {'delayed-nu-fission', 'chi-delayed', 'beta', 'decay-rate'} The type of multi-delayed-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh @@ -249,6 +250,8 @@ class MDGXS(MGXS): delayed_groups) elif mdgxs_type == 'beta': mdgxs = Beta(domain, domain_type, energy_groups, delayed_groups) + elif mdgxs_type == 'decay-rate': + mdgxs = DecayRate(domain, domain_type, energy_groups, delayed_groups) mdgxs.by_nuclide = by_nuclide mdgxs.name = name @@ -1574,3 +1577,155 @@ class Beta(MDGXS): super(Beta, self)._compute_xs() return self._xs_tally + + +class DecayRate(MDGXS): + r"""The decay rate for delayed neutron precursors. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group and multi-delayed group cross sections for multi-group + neutronics calculations. At a minimum, one needs to set the + :attr:`DecayRate.energy_groups` and :attr:`DecayRate.domain` properties. + Tallies for the flux and appropriate reaction rates over the specified + domain are generated automatically via the :attr:`DecayRate.tallies` + property, which can then be appended to a :class:`openmc.Tallies` instance. + + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`DecayRate.xs_tally` property. + + For a spatial domain :math:`V`, energy group :math:`[E_g,E_{g-1}]`, and + delayed group :math:`d`, the decay rate is calculated as: + + .. math:: + + \langle \lambda_d \nu^d \sigma_f \phi \rangle &= \int_{r \in V} dr + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu^d + \sigma_f (r, E') \psi(r, E', \Omega') \\ + \langle \nu \sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu^d + \sigma_f (r, E') \psi(r, E', \Omega') \\ + \lambda_d &= \frac{\langle \lambda_d \nu^d \sigma_f \phi \rangle} + {\langle \nu^d \sigma_f \phi \rangle} + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + delayed_groups : list of int + Delayed groups to filter out the xs + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + delayed_groups : list of int + Delayed groups to filter out the xs + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`DecayRate.tally_keys` property and + values are instances of :class:`openmc.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 : 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 : 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 : 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' + 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 + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + + """ + + def __init__(self, domain=None, domain_type=None, energy_groups=None, + delayed_groups=None, by_nuclide=False, name=''): + super(DecayRate, self).__init__(domain, domain_type, energy_groups, + delayed_groups, by_nuclide, name) + self._rxn_type = 'decay-rate' + self._estimator = 'analog' + + @property + def scores(self): + return ['delayed-nu-fission', 'decay-rate'] + + @property + def tally_keys(self): + return ['delayed-nu-fission', 'decay-rate'] + + @property + def filters(self): + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + + if self.delayed_groups != None: + delayed_filter = openmc.Filter('delayedgroup', self.delayed_groups) + return [[delayed_filter, energy_filter], [delayed_filter, energy_filter]] + else: + return [[energy_filter], [energy_filter]] + + @property + def xs_tally(self): + + if self._xs_tally is None: + delayed_nu_fission = self.tallies['delayed-nu-fission'] + + # Compute the decay rate + self._xs_tally = self.rxn_rate_tally / delayed_nu_fission + super(DecayRate, self)._compute_xs() + + return self._xs_tally diff --git a/src/constants.F90 b/src/constants.F90 index 481ca8e033..6cbe4edb8d 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -290,7 +290,7 @@ module constants EVENT_ABSORB = 2 ! Tally score type - integer, parameter :: N_SCORE_TYPES = 23 + integer, parameter :: N_SCORE_TYPES = 24 integer, parameter :: & SCORE_FLUX = -1, & ! flux SCORE_TOTAL = -2, & ! total reaction rate @@ -314,7 +314,8 @@ module constants SCORE_PROMPT_NU_FISSION = -20, & ! prompt neutron production rate SCORE_INVERSE_VELOCITY = -21, & ! flux-weighted inverse velocity SCORE_FISS_Q_PROMPT = -22, & ! prompt fission Q-value - SCORE_FISS_Q_RECOV = -23 ! recoverable fission Q-value + SCORE_FISS_Q_RECOV = -23, & ! recoverable fission Q-value + SCORE_DECAY_RATE = -24 ! delayed neutron precursor decay rate ! Maximum scattering order supported integer, parameter :: MAX_ANG_ORDER = 10 diff --git a/src/endf.F90 b/src/endf.F90 index 07094d5d9b..0ba2db388b 100644 --- a/src/endf.F90 +++ b/src/endf.F90 @@ -40,6 +40,8 @@ contains string = "fission" case (SCORE_NU_FISSION) string = "nu-fission" + case (SCORE_DECAY_RATE) + string = "decay-rate" case (SCORE_DELAYED_NU_FISSION) string = "delayed-nu-fission" case (SCORE_PROMPT_NU_FISSION) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index bcdf310e80..64fd30ea6a 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3297,22 +3297,6 @@ contains ! Check if total material was specified if (trim(sarray(j)) == 'total') then - - ! Check if a delayedgroup filter is present for this tally - do l = 1, size(t % filters) - select type(filt => t % filters(l) % obj) - type is (DelayedGroupFilter) - call warning("A delayedgroup filter was used on a total & - &nuclide tally. Cross section libraries are not & - &guaranteed to have the same delayed group structure & - &across all isotopes. In particular, ENDF/B-VII.1 does & - ¬ have a consistent delayed group structure across & - &all isotopes while the JEFF 3.1.1 library has the same & - &delayed group structure across all isotopes. Use with & - &caution!") - end select - end do - t % nuclide_bins(j) = -1 cycle end if @@ -3357,20 +3341,6 @@ contains allocate(t % nuclide_bins(1)) t % nuclide_bins(1) = -1 t % n_nuclide_bins = 1 - - ! Check if a delayedgroup filter is present for this tally - do l = 1, size(t % filters) - select type(filt => t % filters(l) % obj) - type is (DelayedGroupFilter) - call warning("A delayedgroup filter was used on a total nuclide & - &tally. Cross section libraries are not guaranteed to have the& - & same delayed group structure across all isotopes. In & - &particular, ENDF/B-VII.1 does not have a consistent delayed & - &group structure across all isotopes while the JEFF 3.1.1 & - &library has the same delayed group structure across all & - &isotopes. Use with caution!") - end select - end do end if ! ======================================================================= @@ -3484,8 +3454,9 @@ contains end if ! Check if delayed group filter is used with any score besides - ! delayed-nu-fission - if (score_name /= 'delayed-nu-fission' .and. & + ! delayed-nu-fission or decay-rate + if ((score_name /= 'delayed-nu-fission' .and. & + score_name /= 'decay-rate') .and. & t % find_filter(FILTER_DELAYEDGROUP) > 0) then call fatal_error("Cannot tally " // trim(score_name) // " with a & &delayedgroup filter.") @@ -3639,6 +3610,9 @@ contains ! Set tally estimator to analog t % estimator = ESTIMATOR_ANALOG end if + case ('decay-rate') + t % score_bins(j) = SCORE_DECAY_RATE + t % estimator = ESTIMATOR_ANALOG case ('delayed-nu-fission') t % score_bins(j) = SCORE_DELAYED_NU_FISSION if (t % find_filter(FILTER_ENERGYOUT) > 0) then diff --git a/src/output.F90 b/src/output.F90 index 9244e2d957..a43735da22 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -786,6 +786,7 @@ contains score_names(abs(SCORE_NU_SCATTER_N)) = "Scattering Prod. Rate Moment" score_names(abs(SCORE_NU_SCATTER_PN)) = "Scattering Prod. Rate Moment" score_names(abs(SCORE_NU_SCATTER_YN)) = "Scattering Prod. Rate Moment" + score_names(abs(SCORE_DECAY_RATE)) = "Decay Rate" score_names(abs(SCORE_DELAYED_NU_FISSION)) = "Delayed-Nu-Fission Rate" score_names(abs(SCORE_PROMPT_NU_FISSION)) = "Prompt-Nu-Fission Rate" score_names(abs(SCORE_INVERSE_VELOCITY)) = "Flux-Weighted Inverse Velocity" diff --git a/src/tally.F90 b/src/tally.F90 index d5af4ddc1f..f9e233d730 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -93,6 +93,8 @@ contains integer :: score_bin ! scoring bin, e.g. SCORE_FLUX integer :: score_index ! scoring bin index integer :: d ! delayed neutron index + integer :: g ! delayed neutron index + integer :: k ! loop index for bank sites integer :: d_bin ! delayed group bin index integer :: dg_filter ! index of delayed group filter real(8) :: yield ! delayed neutron yield @@ -670,6 +672,143 @@ contains end if + case (SCORE_DECAY_RATE) + + ! Set the delayedgroup filter index + dg_filter = t % find_filter(FILTER_DELAYEDGROUP) + + if (survival_biasing) then + ! No fission events occur if survival biasing is on -- need to + ! calculate fraction of absorptions that would have resulted in + ! delayed-nu-fission + if (micro_xs(p % event_nuclide) % absorption > ZERO .and. & + nuclides(p % event_nuclide) % fissionable) then + + ! Check if the delayed group filter is present + if (dg_filter > 0) then + select type(filt => t % filters(dg_filter) % obj) + type is (DelayedGroupFilter) + + ! Loop over all delayed group bins and tally to them + ! individually + do d_bin = 1, filt % n_bins + + ! Get the delayed group for this bin + d = filt % groups(d_bin) + + ! Compute the yield for this delayed group + yield = nuclides(p % event_nuclide) & + % nu(E, EMISSION_DELAYED, d) + + associate (rxn => nuclides(p % event_nuclide) % & + reactions(nuclides(p % event_nuclide) % index_fission(1))) + + ! Compute the score + score = p % absorb_wgt * yield * & + micro_xs(p % event_nuclide) % fission & + / micro_xs(p % event_nuclide) % absorption & + * rxn % products(1 + d) % decay_rate * 1.e8 + end associate + + ! Tally to bin + call score_fission_delayed_dg(t, d_bin, score, score_index) + end do + cycle SCORE_LOOP + end select + else + + ! If the delayed group filter is not present, compute the score + ! by accumulating the absorbed weight times the decay rate times + ! the fraction of the delayed-nu-fission xs to the absorption xs + ! for all delayed groups. + score = ZERO + + associate (rxn => nuclides(p % event_nuclide) % & + reactions(nuclides(p % event_nuclide) % index_fission(1))) + + ! We need to be careful not to overshoot the number of delayed + ! groups since this could cause the range of the rxn % products + ! array to be exceeded. Hence, we use the size of this array + ! and not the MAX_DELAYED_GROUPS constant for this loop. + do d = 1, size(rxn % products) - 2 + + score = score + rxn % products(1 + d) % decay_rate * 1.e8 * & + p % absorb_wgt * micro_xs(p % event_nuclide) % fission *& + nuclides(p % event_nuclide) % nu(E, EMISSION_DELAYED, d)& + / micro_xs(p % event_nuclide) % absorption + end do + end associate + end if + 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. Loop over the neutrons produced from + ! fission and check which ones are delayed. If a delayed neutron is + ! encountered, add its contribution to the fission bank to the + ! score. + + score = ZERO + + ! loop over number of particles banked + do k = 1, p % n_bank + + ! get the delayed group + g = fission_bank(n_bank - p % n_bank + k) % delayed_group + + ! Case for tallying delayed emissions + if (g /= 0) then + + ! Accumulate the decay rate times delayed nu fission score + associate (rxn => nuclides(p % event_nuclide) % & + reactions(nuclides(p % event_nuclide) % index_fission(1))) + + ! determine score based on bank site weight and keff. Note that + ! the units of the decay rate have been converted from inverse + ! shakes to inverse seconds (1 shake = 1.e-8 seconds) + score = score + keff * fission_bank(n_bank - p % n_bank + k) & + % wgt * rxn % products(1 + g) % decay_rate * 1.e8 + end associate + + ! if the delayed group filter is present, tally to corresponding + ! delayed group bin if it exists + if (dg_filter > 0) then + + ! declare the delayed group filter type + select type(filt => t % filters(dg_filter) % obj) + type is (DelayedGroupFilter) + + ! loop over delayed group bins until the corresponding bin is + ! found + do d_bin = 1, filt % n_bins + d = filt % groups(d_bin) + + ! check whether the delayed group of the particle is equal to + ! the delayed group of this bin + if (d == g) then + call score_fission_delayed_dg(t, d_bin, score, score_index) + end if + end do + end select + + ! Reset the score to zero + score = ZERO + end if + end if + end do + + ! If the delayed group filter is present, cycle because the + ! score_fission_delayed_dg(...) has already tallied the score + if (dg_filter > 0) then + cycle SCORE_LOOP + end if + end if + case (SCORE_KAPPA_FISSION) ! Determine kappa-fission cross section on the fly. The ENDF standard ! (ENDF-102) states that MT 18 stores the fission energy as the Q_value diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index e58015868a..b0165324b2 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -08c5f1c783dd88c5fed51c054718ca09fc4e99aa4560a6f928b3902991948f3a878d055ac46c07548904285c2c5f22dc2a3d8c1bb82b8e73d76dd790820117df \ No newline at end of file +f541a29b2b9c4d8d82f2cfc2ea96b9ee6c9b8e96936fe8a8df3984f6c839583b2b04e79e1535e2f4cc54b9d59c36a9b2a4dd604f2c86ed8bb8f2f929ec625259 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index d1a964a860..cd84d0a3ac 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -61,6 +61,13 @@ 3 10000 4 1 total 0.002752 0.000240 4 10000 5 1 total 0.001231 0.000105 5 10000 6 1 total 0.000512 0.000044 + material delayedgroup group in nuclide mean std. dev. +0 10000 1 1 total 0.000000 0.000000 +1 10000 2 1 total 0.032739 0.028454 +2 10000 3 1 total 0.120780 0.170809 +3 10000 4 1 total 0.302780 0.109110 +4 10000 5 1 total 0.000000 0.000000 +5 10000 6 1 total 0.000000 0.000000 material group in nuclide mean std. dev. 0 10001 1 total 0.311594 0.013793 material group in nuclide mean std. dev. @@ -123,6 +130,13 @@ 2 10001 3 1 total 0.0 0.0 3 10001 4 1 total 0.0 0.0 4 10001 5 1 total 0.0 0.0 +5 10001 6 1 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +0 10001 1 1 total 0.0 0.0 +1 10001 2 1 total 0.0 0.0 +2 10001 3 1 total 0.0 0.0 +3 10001 4 1 total 0.0 0.0 +4 10001 5 1 total 0.0 0.0 5 10001 6 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10002 1 total 0.904999 0.043964 @@ -186,4 +200,11 @@ 2 10002 3 1 total 0.0 0.0 3 10002 4 1 total 0.0 0.0 4 10002 5 1 total 0.0 0.0 +5 10002 6 1 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +0 10002 1 1 total 0.0 0.0 +1 10002 2 1 total 0.0 0.0 +2 10002 3 1 total 0.0 0.0 +3 10002 4 1 total 0.0 0.0 +4 10002 5 1 total 0.0 0.0 5 10002 6 1 total 0.0 0.0 diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 924c53838f..90cfedb911 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -9ce3d6987d67e92b0924916bb54288429d2bd6dfd12a69f86c5dbefb407f7eb72adb0e44d558c09e9a39610ffeb651aee4aedc629cf3a28a181d62ca4cfbcd5a \ No newline at end of file +6dc13fba93a14c554db49aebe02fc3c6eb3243b84db930657d3e6e9a26bba563b919f9f65dc066dc87773e581951881f632b799859b723f942497c7938358ec1 \ 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 5a996c8fa9..87f18db1c7 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -61,3 +61,10 @@ 3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0.002727 0.000135 4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0.001210 0.000058 5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 0.000504 0.000024 + avg(distribcell) delayedgroup group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.000000 0.000000 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 0.032739 0.046300 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 0.120780 0.170809 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0.000000 0.000000 +4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0.000000 0.000000 +5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 2.853000 4.034751 diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index e58015868a..b0165324b2 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -08c5f1c783dd88c5fed51c054718ca09fc4e99aa4560a6f928b3902991948f3a878d055ac46c07548904285c2c5f22dc2a3d8c1bb82b8e73d76dd790820117df \ No newline at end of file +f541a29b2b9c4d8d82f2cfc2ea96b9ee6c9b8e96936fe8a8df3984f6c839583b2b04e79e1535e2f4cc54b9d59c36a9b2a4dd604f2c86ed8bb8f2f929ec625259 \ 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 3108573b35..8cec5c6299 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -111,6 +111,19 @@ domain=10000 type=beta [ 3.21434855e-04 1.09939816e-03] [ 1.82980497e-04 4.50738567e-04] [ 7.48899920e-05 1.88812772e-04]] +domain=10000 type=decay-rate +[[ 0. 0. ] + [ 0. 0.032739] + [ 0. 0.12078 ] + [ 0. 0.30278 ] + [ 0. 0. ] + [ 0. 0. ]] +[[ 0. 0. ] + [ 0. 0.02845437] + [ 0. 0.17080871] + [ 0. 0.10910951] + [ 0. 0. ] + [ 0. 0. ]] domain=10001 type=total [ 0.31373767 0.3008214 ] [ 0.0155819 0.02805245] @@ -212,6 +225,19 @@ domain=10001 type=chi-delayed [ 0. 0.] [ 0. 0.]] domain=10001 type=beta +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +domain=10001 type=decay-rate [[ 0. 0.] [ 0. 0.] [ 0. 0.] @@ -337,3 +363,16 @@ domain=10002 type=beta [ 0. 0.] [ 0. 0.] [ 0. 0.]] +domain=10002 type=decay-rate +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.] + [ 0. 0.]] diff --git a/tests/test_mgxs_library_mesh/inputs_true.dat b/tests/test_mgxs_library_mesh/inputs_true.dat index f62e0aa05e..435b5cc1d1 100644 --- a/tests/test_mgxs_library_mesh/inputs_true.dat +++ b/tests/test_mgxs_library_mesh/inputs_true.dat @@ -1 +1 @@ -5f167bdd4d6ae5873d48483e85aceaec8a934239ed5a50ef6f6500ce204f5851ae330621a5007f3b3d6bdab49f2cd627d011c1f6e6983fec958a6984eb9cb7ca \ No newline at end of file +9b394184e2329d0a0f56c1534ee8723bdbe6b5188959c7f2fb4900c1a184b10a211bbe0827b2a220b6a4eaa84865cc9a4368a787269f3d8ee3e61f6fe5798fff \ No newline at end of file diff --git a/tests/test_mgxs_library_mesh/results_true.dat b/tests/test_mgxs_library_mesh/results_true.dat index b6656d67b4..8ad0f2eee1 100644 --- a/tests/test_mgxs_library_mesh/results_true.dat +++ b/tests/test_mgxs_library_mesh/results_true.dat @@ -208,3 +208,29 @@ 21 2 2 1 4 1 total 0.002143 0.001028 22 2 2 1 5 1 total 0.001026 0.000492 23 2 2 1 6 1 total 0.000408 0.000196 + mesh 1 delayedgroup group in nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.00000 0.000000 +1 1 1 1 2 1 total 0.00000 0.000000 +2 1 1 1 3 1 total 0.00000 0.000000 +3 1 1 1 4 1 total 0.30278 0.428196 +4 1 1 1 5 1 total 0.00000 0.000000 +5 1 1 1 6 1 total 0.00000 0.000000 +6 1 2 1 1 1 total 0.00000 0.000000 +7 1 2 1 2 1 total 0.00000 0.000000 +8 1 2 1 3 1 total 0.00000 0.000000 +9 1 2 1 4 1 total 0.00000 0.000000 +10 1 2 1 5 1 total 0.00000 0.000000 +11 1 2 1 6 1 total 0.00000 0.000000 +12 2 1 1 1 1 total 0.00000 0.000000 +13 2 1 1 2 1 total 0.00000 0.000000 +14 2 1 1 3 1 total 0.00000 0.000000 +15 2 1 1 4 1 total 0.00000 0.000000 +16 2 1 1 5 1 total 0.00000 0.000000 +17 2 1 1 6 1 total 0.00000 0.000000 +18 2 2 1 1 1 total 0.00000 0.000000 +19 2 2 1 2 1 total 0.00000 0.000000 +20 2 2 1 3 1 total 0.00000 0.000000 +21 2 2 1 4 1 total 0.00000 0.000000 +22 2 2 1 5 1 total 0.00000 0.000000 +23 2 2 1 6 1 total 0.00000 0.000000 diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index e58015868a..b0165324b2 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -08c5f1c783dd88c5fed51c054718ca09fc4e99aa4560a6f928b3902991948f3a878d055ac46c07548904285c2c5f22dc2a3d8c1bb82b8e73d76dd790820117df \ No newline at end of file +f541a29b2b9c4d8d82f2cfc2ea96b9ee6c9b8e96936fe8a8df3984f6c839583b2b04e79e1535e2f4cc54b9d59c36a9b2a4dd604f2c86ed8bb8f2f929ec625259 \ 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 edd99b44c5..961ae9ba9f 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -123,6 +123,19 @@ 6 10000 4 2 total 0.011426 0.001099 8 10000 5 2 total 0.004684 0.000451 10 10000 6 2 total 0.001962 0.000189 + material delayedgroup group in nuclide mean std. dev. +1 10000 1 1 total 0.000000 0.000000 +3 10000 2 1 total 0.000000 0.000000 +5 10000 3 1 total 0.000000 0.000000 +7 10000 4 1 total 0.000000 0.000000 +9 10000 5 1 total 0.000000 0.000000 +11 10000 6 1 total 0.000000 0.000000 +0 10000 1 2 total 0.000000 0.000000 +2 10000 2 2 total 0.032739 0.028454 +4 10000 3 2 total 0.120780 0.170809 +6 10000 4 2 total 0.302780 0.109110 +8 10000 5 2 total 0.000000 0.000000 +10 10000 6 2 total 0.000000 0.000000 material group in nuclide mean std. dev. 1 10001 1 total 0.313738 0.015582 0 10001 2 total 0.300821 0.028052 @@ -247,6 +260,19 @@ 4 10001 3 2 total 0.0 0.0 6 10001 4 2 total 0.0 0.0 8 10001 5 2 total 0.0 0.0 +10 10001 6 2 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +1 10001 1 1 total 0.0 0.0 +3 10001 2 1 total 0.0 0.0 +5 10001 3 1 total 0.0 0.0 +7 10001 4 1 total 0.0 0.0 +9 10001 5 1 total 0.0 0.0 +11 10001 6 1 total 0.0 0.0 +0 10001 1 2 total 0.0 0.0 +2 10001 2 2 total 0.0 0.0 +4 10001 3 2 total 0.0 0.0 +6 10001 4 2 total 0.0 0.0 +8 10001 5 2 total 0.0 0.0 10 10001 6 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10002 1 total 0.664572 0.031215 @@ -372,4 +398,17 @@ 4 10002 3 2 total 0.0 0.0 6 10002 4 2 total 0.0 0.0 8 10002 5 2 total 0.0 0.0 +10 10002 6 2 total 0.0 0.0 + material delayedgroup group in nuclide mean std. dev. +1 10002 1 1 total 0.0 0.0 +3 10002 2 1 total 0.0 0.0 +5 10002 3 1 total 0.0 0.0 +7 10002 4 1 total 0.0 0.0 +9 10002 5 1 total 0.0 0.0 +11 10002 6 1 total 0.0 0.0 +0 10002 1 2 total 0.0 0.0 +2 10002 2 2 total 0.0 0.0 +4 10002 3 2 total 0.0 0.0 +6 10002 4 2 total 0.0 0.0 +8 10002 5 2 total 0.0 0.0 10 10002 6 2 total 0.0 0.0 From bd32744aff9669d3a81d7a18e18e1fd63cfa6831 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 6 Sep 2016 11:17:42 -0400 Subject: [PATCH 380/417] updated 2d mesh filter results --- tests/test_filter_mesh_2d/results_true.dat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index b92e1b56bb..27afaa45f1 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -1 +1 @@ -272943b6aaefbfd60201ae2e3f04a76eafe154e97c081acbb6c33673d58a76b64f376762cb3a431f2c95fca00f8b7e086f28c8ee14719766f44578e0acb07a02 \ No newline at end of file +7514c8f3843e4b2160017558e9d2f90214abeaad68b1229619f3b109cdffd783f5d69a54f3193972158f20fc017875313ec78b9bb3f7709990733202b653a68a \ No newline at end of file From bed0b4487ebc5355b5a68355bed92abb8d4534d8 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 6 Sep 2016 19:16:05 -0400 Subject: [PATCH 381/417] Fixed docstring and unused variable issues pointed out by @smharper --- openmc/data/neutron.py | 6 ++---- src/nuclide_header.F90 | 3 +-- src/sab_header.F90 | 3 +-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 064cc4199a..456ccee7bc 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -23,8 +23,7 @@ if sys.version_info[0] >= 3: def _get_metadata(zaid, metastable_scheme='nndc'): - """Method to obtain the complete element name, element, Z, mass_number, - and metastable state + """Return basic identifying data for a nuclide with a given ZAID. Parameters ---------- @@ -283,8 +282,7 @@ class IncidentNeutron(EqualityMixin): self._urr = urr def add_temperature_from_ace(self, ace_or_filename, metastable_scheme='nndc'): - """Add data to the IncidentNeutron object from an ACE file at a - different temperature. + """Append data from an ACE file at a different temperature. Parameters ---------- diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index f9e473f45c..1fbd691ee8 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -194,7 +194,6 @@ module nuclide_header real(8), intent(in) :: tolerance integer :: i - integer :: n integer :: storage_type integer :: max_corder integer :: n_links @@ -203,7 +202,7 @@ module nuclide_header integer :: n_temperature integer(HID_T) :: urr_group, nu_group integer(HID_T) :: energy_group, energy_dset - integer(HID_T) :: kT_group, kT_dset + integer(HID_T) :: kT_group integer(HID_T) :: rxs_group integer(HID_T) :: rx_group integer(HID_T) :: total_nu diff --git a/src/sab_header.F90 b/src/sab_header.F90 index c8619efa32..147643065a 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -87,7 +87,6 @@ contains real(8), intent(in) :: tolerance integer :: i, j - integer :: n integer :: t integer :: n_energy, n_energy_out, n_mu integer :: i_closest @@ -98,7 +97,7 @@ contains integer(HID_T) :: elastic_group integer(HID_T) :: inelastic_group integer(HID_T) :: dset_id - integer(HID_T) :: kT_group, kT_dset + integer(HID_T) :: kT_group integer(HSIZE_T) :: dims2(2) integer(HSIZE_T) :: dims3(3) real(8), allocatable :: temp(:,:) From 22419b46962c5826918349e4d68b84eff67bae0a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 6 Sep 2016 22:09:42 -0500 Subject: [PATCH 382/417] Fix subtle string array bug. --- openmc/data/thermal.py | 2 +- src/hdf5_interface.F90 | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 58c5276052..bbdb12dad2 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -226,7 +226,7 @@ class ThermalScattering(EqualityMixin): # Write basic data g = f.create_group(self.name) g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio - g.attrs['nuclides'] = np.string_(self.nuclides) + g.attrs['nuclides'] = np.array(self.nuclides, dtype='S') g.attrs['secondary_mode'] = np.string_(self.secondary_mode) ktg = g.create_group('kTs') for i, temperature in enumerate(self.temperatures): diff --git a/src/hdf5_interface.F90 b/src/hdf5_interface.F90 index 415ec55c9e..136628162c 100644 --- a/src/hdf5_interface.F90 +++ b/src/hdf5_interface.F90 @@ -2468,7 +2468,6 @@ contains call h5aget_type_f(attr_id, filetype, hdf5_err) call h5tget_size_f(filetype, size, hdf5_err) if (size > len(buffer(1)) + 1) then - print *, size, len(buffer(1)) call fatal_error("Character buffer is not long enough to & &read HDF5 string array.") end if From 46cb02efe49a9b0e350454c5d55a6fe2fe1ce898 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 6 Sep 2016 22:25:12 -0500 Subject: [PATCH 383/417] Remove old default_temperature specification in materials.xml --- openmc/material.py | 23 ------------------- tests/input_set.py | 4 ---- tests/test_asymmetric_lattice/inputs_true.dat | 2 +- tests/test_distribmat/inputs_true.dat | 2 +- tests/test_distribmat/test_distribmat.py | 1 - tests/test_iso_in_lab/inputs_true.dat | 2 +- tests/test_mg_basic/inputs_true.dat | 2 +- tests/test_mg_tallies/inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_mesh/inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- tests/test_periodic/inputs_true.dat | 2 +- tests/test_tallies/inputs_true.dat | 2 +- tests/test_tally_aggregation/inputs_true.dat | 2 +- tests/test_tally_arithmetic/inputs_true.dat | 2 +- tests/test_tally_slice_merge/inputs_true.dat | 2 +- tests/test_triso/inputs_true.dat | 2 +- tests/test_triso/test_triso.py | 1 - tests/test_volume_calc/inputs_true.dat | 2 +- tests/test_volume_calc/test_volume_calc.py | 1 - 24 files changed, 19 insertions(+), 49 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index 2b52995738..f56af485a4 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -724,32 +724,14 @@ class Materials(cv.CheckedList): materials : Iterable of openmc.Material Materials to add to the collection - Attributes - ---------- - default_temperature : str - The default temperature identifier applied to a material when none is - specified. The units are in Kelvin and the temperature rounded to the - nearest integer. For example, a tempreature of 293.6K would be - provided as '294K' - """ def __init__(self, materials=None): super(Materials, self).__init__(Material, 'materials collection') - self._default_temperature = None self._materials_file = ET.Element("materials") if materials is not None: self += materials - @property - def default_temperature(self): - return self._default_temperature - - @default_temperature.setter - def default_temperature(self, temperature): - cv.check_type('default_temperature', temperature, basestring) - self._default_temperature = temperature - def add_material(self, material): """Append material to collection @@ -831,11 +813,6 @@ class Materials(cv.CheckedList): material.make_isotropic_in_lab() def _create_material_subelements(self): - if self._default_temperature is not None: - subelement = ET.SubElement(self._materials_file, - "default_temperature") - subelement.text = self._default_temperature - for material in self: xml_element = material.get_material_xml() self._materials_file.append(xml_element) diff --git a/tests/input_set.py b/tests/input_set.py index e409fba58f..94576acf0d 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -271,7 +271,6 @@ class InputSet(object): bot_fa.add_s_alpha_beta('c_H_in_H2O') # Define the materials file. - self.materials.default_temperature = '294K' self.materials += (fuel, clad, cold_water, hot_water, rpv_steel, lower_rad_ref, upper_rad_ref, bot_plate, bot_nozzle, top_nozzle, top_fa, bot_fa) @@ -615,7 +614,6 @@ class PinCellInputSet(object): hot_water.add_s_alpha_beta('c_H_in_H2O') # Define the materials file. - self.materials.default_temperature = '294K' self.materials += (fuel, clad, hot_water) # Instantiate ZCylinder surfaces @@ -717,7 +715,6 @@ class AssemblyInputSet(object): hot_water.add_s_alpha_beta('c_H_in_H2O') # Define the materials file. - self.materials.default_temperature = '294K' self.materials += (fuel, clad, hot_water) # Instantiate ZCylinder surfaces @@ -845,7 +842,6 @@ class MGInputSet(InputSet): water.add_macroscopic(water_data) # Define the materials file. - self.materials.default_temperature = '294K' self.materials += (uo2, clad, water) # Define surfaces. diff --git a/tests/test_asymmetric_lattice/inputs_true.dat b/tests/test_asymmetric_lattice/inputs_true.dat index 997d74ba88..9d278724f8 100644 --- a/tests/test_asymmetric_lattice/inputs_true.dat +++ b/tests/test_asymmetric_lattice/inputs_true.dat @@ -1 +1 @@ -7b62ec28ffec0028dc07ed23b720ae3f97b00aa15b319dc3991d9f1f88fcae8bffc7ccd2385d2b848180a57120624061ff4fe10745a3187e3e64fee0faface8d \ No newline at end of file +dfb59bace10a91bb7ffc871d8ee87e91d94754bb8bb002ac6088f80fe0f480741c0489f74b753fc37158d0ff0f1368739ea60638b42083791311eefeac79168e \ No newline at end of file diff --git a/tests/test_distribmat/inputs_true.dat b/tests/test_distribmat/inputs_true.dat index 2ba50f7e8c..d21da2f894 100644 --- a/tests/test_distribmat/inputs_true.dat +++ b/tests/test_distribmat/inputs_true.dat @@ -1 +1 @@ -dd0b1228d264dd3c24ca3082de9839080f727a137c77bed74b7637cc16d1564ce7500e3bb61a88224926f1d837079702f304247efdf9e52dedf779e17cd14550 \ No newline at end of file +6ae54c198e7659503d297e40be746a5bd72b35909fceed4b3ef357876b781946c0ea5021342556ef21f4034fa9e42b2c6014077c0efd3459dc063e6da4b12b59 \ No newline at end of file diff --git a/tests/test_distribmat/test_distribmat.py b/tests/test_distribmat/test_distribmat.py index 29c5d638f3..ec19176c49 100644 --- a/tests/test_distribmat/test_distribmat.py +++ b/tests/test_distribmat/test_distribmat.py @@ -29,7 +29,6 @@ class DistribmatTestHarness(PyAPITestHarness): light_fuel.add_nuclide('U235', 1.0) mats_file = openmc.Materials([moderator, dense_fuel, light_fuel]) - mats_file.default_temperature = '294K' mats_file.export_to_xml() diff --git a/tests/test_iso_in_lab/inputs_true.dat b/tests/test_iso_in_lab/inputs_true.dat index 0298e581c6..310bccb139 100644 --- a/tests/test_iso_in_lab/inputs_true.dat +++ b/tests/test_iso_in_lab/inputs_true.dat @@ -1 +1 @@ -a84e601e6ba0891aaeaa37b1aa55076fecee598bb46be2b99dcdedab597b5d7e1731e2a0dc265df2ad6f475e33dae91a3cc27bc23d0c37be25a097ea83e74fd6 \ No newline at end of file +4b3d0270a479e65579b305d1c2339b76971790bc7371c685efa6e2d341980fec301cf0859c34796ae04ae98aa01ab8b4905a8d8a3a916895c36d82ca6b58fb39 \ No newline at end of file diff --git a/tests/test_mg_basic/inputs_true.dat b/tests/test_mg_basic/inputs_true.dat index bfb0cc09e9..fad74ca827 100644 --- a/tests/test_mg_basic/inputs_true.dat +++ b/tests/test_mg_basic/inputs_true.dat @@ -1 +1 @@ -d90692c6bf8db3672d70103ded682326d7f14d416e79e18ec055bdeafe1dbc1dbe642e8410cad95bf247f27c907b10b1567127bd2868d466ce2586aacff0411f \ No newline at end of file +e843dbee8b989142d68e78f7a3e83309a9982c0127974ba4b6a58c823ce298e8fffc8828b48aa696f045818a2a80ef4003f5a191f33aacef7d7dd72c950855a6 \ No newline at end of file diff --git a/tests/test_mg_tallies/inputs_true.dat b/tests/test_mg_tallies/inputs_true.dat index c74d7759f7..e1f3385a43 100644 --- a/tests/test_mg_tallies/inputs_true.dat +++ b/tests/test_mg_tallies/inputs_true.dat @@ -1 +1 @@ -707285b77a091904a69720e78bf87a6779f2223c0fa2a3725353d00ca30f2624c7d53af016d78c7ad30b70a24bb53eda7dea2f592499b098f541591825b67143 \ No newline at end of file +b607875dcaecb7110e396a62100182818b8b2853ec9921194b7ab00d6156373b01394ad8bd729babf7d258e6d9c599f6944c6857cd9d2f65ea98e245ee3cf010 \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat index e48c50d0a0..7b30f91223 100644 --- a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -1 +1 @@ -a33f770307b365103c5d71aa3e70deebd78d3a2fa90e88632641c1a40d64d19de0ce3c95c858aedf3beccc5de64cac434e1cd55b2b162ed315c78450c53a24a4 \ No newline at end of file +5c35e26926a43abf3ddcf782b09d96ce82d447a7db9ee9994c0aa811e431f8c06c11ce022c2a6ccf8d5f79f1cdedee2e8c20ca6d1e7cc5129ebcfae9568b2f87 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index c261a0edea..328d68b05f 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -df2e5370925785e061e094561e9d2048c3104aaecf533ee9590a187d4597e53b489fb6e8cc54ed878f7d313bcf00586edceae4ff712c837faaa5ddab0ad378b3 \ No newline at end of file +2b2a2f5778b03f87d20fa6da96cc19db0489f69d4d5f0cac02dd407fd8e53a082081bfef35c4310cb2e0651254766d499e89279e711fd6fd93f913c964855839 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 2ca1810e97..67509bd510 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -687358da3e7d658b6187e1d76280437d5b1a97a7ca3920483792e74de6fa9556fa86f4d55150c03d8628b3aa424afa187d8745f087f252ad0fca44ccc2a85f4c \ No newline at end of file +ad427594bd8a68ad35382bc34b5932e7c78480b6e327caf63782d563fd6e6e5fb4e7b0dfd9094394a5db092f789c473dbb08cb6b3d0c0296edcfc247dbe95d6f \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index c261a0edea..328d68b05f 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -df2e5370925785e061e094561e9d2048c3104aaecf533ee9590a187d4597e53b489fb6e8cc54ed878f7d313bcf00586edceae4ff712c837faaa5ddab0ad378b3 \ No newline at end of file +2b2a2f5778b03f87d20fa6da96cc19db0489f69d4d5f0cac02dd407fd8e53a082081bfef35c4310cb2e0651254766d499e89279e711fd6fd93f913c964855839 \ No newline at end of file diff --git a/tests/test_mgxs_library_mesh/inputs_true.dat b/tests/test_mgxs_library_mesh/inputs_true.dat index 4cebb274ec..9e2bc06f18 100644 --- a/tests/test_mgxs_library_mesh/inputs_true.dat +++ b/tests/test_mgxs_library_mesh/inputs_true.dat @@ -1 +1 @@ -7f3aec9cedab76262de3706427ccba88b4c81fd4c9a033ff5467671ca21abe13b3981100d688502818bdd0534db22438970b02d652ca9d105557276de2d2a550 \ No newline at end of file +68c7695d7ae0367c59155eab05d3fe859cae895170f2cd32d4463af340a9a2035be16221b1eda8e2a1132bfe1b8163ca8d964fb1b23274c232fb10fd88274aea \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index c261a0edea..328d68b05f 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -df2e5370925785e061e094561e9d2048c3104aaecf533ee9590a187d4597e53b489fb6e8cc54ed878f7d313bcf00586edceae4ff712c837faaa5ddab0ad378b3 \ No newline at end of file +2b2a2f5778b03f87d20fa6da96cc19db0489f69d4d5f0cac02dd407fd8e53a082081bfef35c4310cb2e0651254766d499e89279e711fd6fd93f913c964855839 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index f3c25d4d50..593111f329 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -332fd9ff1ca576410ffc6c0f3f03c00618fc863509dc3725f2f3a82134e2400de9c1edf2adc68cb8bce528789094f8eb468371e65cbc13efe76d76467ef291d9 \ No newline at end of file +63f6f8ae24e0d8e23731c903a59e3f5e0edff730933ef6f8836ebf78949db75542c5794a6486c27016ad22e4375b8a18092cd1d1e025162afd01936cac2f205b \ No newline at end of file diff --git a/tests/test_periodic/inputs_true.dat b/tests/test_periodic/inputs_true.dat index 0b49ac2aea..ed1bc7d1b4 100644 --- a/tests/test_periodic/inputs_true.dat +++ b/tests/test_periodic/inputs_true.dat @@ -1 +1 @@ -f427510feb8a63ee2246613e65c9e9a488b6b7df11ce5f5ab0c61b23f299e150a27068ee110f77c64b5bb82882b6d0a428e06de681df2bd83facb9ebc46fb54c \ No newline at end of file +259ea7c22920ddea0bc076ee77d35e76f36d2c7043cb8d036b182a11fd7d0f6524e3cbd9c6b0bf4a1af905ebe10b765d3d43e43e899d3edbb601baf6fd172365 \ No newline at end of file diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index 196925c387..5f4bebb0d2 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -11adb9111f20950e28b1c1929ee4ca0c9a6b2524de89bef44a495b2fe8cda3a2acac9e87d64ddb5eba591c8d22289956cb1f024d31e05da3c9a4162b8c589d85 \ No newline at end of file +96d2f92c6017e62d688e3ca245c2ff7904a92816d188d096829440cd8fcfd4f8639dc67c12d54b324081c19e1c7dd2e79c1caeac53d7826399f11766826d5410 \ No newline at end of file diff --git a/tests/test_tally_aggregation/inputs_true.dat b/tests/test_tally_aggregation/inputs_true.dat index fa61e20b78..6d2990754d 100644 --- a/tests/test_tally_aggregation/inputs_true.dat +++ b/tests/test_tally_aggregation/inputs_true.dat @@ -1 +1 @@ -bc17ba12ee5de7e6b0226e589be9044af725ff4e27683b765a9c75e5629176b5ca51d1e0306028ae90185d64644babf9ac22e4753f092b4b836790f4e162f9d0 \ No newline at end of file +4a4e481b9af3612c71bdc93245011555807061bbd9d9be4c5b399f2c38820d38d9ce3ac6255d045415a216737eac65fb0f0b6e331e49b90bf8edc814d0f2f0e8 \ No newline at end of file diff --git a/tests/test_tally_arithmetic/inputs_true.dat b/tests/test_tally_arithmetic/inputs_true.dat index 56798828c6..b0da0ed247 100644 --- a/tests/test_tally_arithmetic/inputs_true.dat +++ b/tests/test_tally_arithmetic/inputs_true.dat @@ -1 +1 @@ -6b59ea3a0dc0d25c590f724b8c051a54e8d7836467ba31b7da72b0574398e6c73160a180524952ea983b0e7a7de776d2d7102d280d5a4e7e3624bd76f6f42a09 \ No newline at end of file +6747131dad4c1efd8c87d857ce9127cb16ec883fdf5fabe309d82732d47851424273e9ad4878a335555d8b25bb0c0a15e68ac30e355ae346e9885c499e9ec979 \ No newline at end of file diff --git a/tests/test_tally_slice_merge/inputs_true.dat b/tests/test_tally_slice_merge/inputs_true.dat index a40c0a01df..7a747e6b52 100644 --- a/tests/test_tally_slice_merge/inputs_true.dat +++ b/tests/test_tally_slice_merge/inputs_true.dat @@ -1 +1 @@ -6d9ebab08ccce003e6128c6346ffd80e69a957fab15e9a0e211771efa68b24f276e62781f8471c72072f9017380d7e821c38002c03689993efed45db9590c039 \ No newline at end of file +144dd4059444fad5e2e4fa20681fbdc74c0e5cbf3265104a0b49d87c768798eaeb25e3c6c795bcac2eebdde784c51588006d62c9f25be96dda5c51011a76b7c1 \ No newline at end of file diff --git a/tests/test_triso/inputs_true.dat b/tests/test_triso/inputs_true.dat index 4f58f14fbb..561877ad93 100644 --- a/tests/test_triso/inputs_true.dat +++ b/tests/test_triso/inputs_true.dat @@ -1 +1 @@ -033b09236ffceab5f0f7860d4926e0a66f328c6dd6fa48b28d6237278d42f9e06a28f2368f273773e417b8177705bc9a5e3ef67335734e5f17ff9843b72a2357 \ No newline at end of file +b22973093e2b0690b30fb1262a11e27004555b796c446d256cb58a1d7329888ab60c1b93729b3d74bb015b98aa434416daa2dc2aee526eb8df0e9052911f94b4 \ No newline at end of file diff --git a/tests/test_triso/test_triso.py b/tests/test_triso/test_triso.py index 386be00b36..685034491f 100644 --- a/tests/test_triso/test_triso.py +++ b/tests/test_triso/test_triso.py @@ -93,7 +93,6 @@ class TRISOTestHarness(PyAPITestHarness): settings.export_to_xml() mats = openmc.Materials([fuel, porous_carbon, ipyc, sic, opyc, graphite]) - mats.default_temperature = '294K' mats.export_to_xml() diff --git a/tests/test_volume_calc/inputs_true.dat b/tests/test_volume_calc/inputs_true.dat index 3a2d9c4747..ddfd497de4 100644 --- a/tests/test_volume_calc/inputs_true.dat +++ b/tests/test_volume_calc/inputs_true.dat @@ -1 +1 @@ -8dc4641e35f7770b8297eab9f71080c62a1c9607f36f7671cc61d47e0714887dea2f4c2ee515b23f39c38b1ea256c695d7c4d0ad95f5d7497a52d15f2ead33a5 \ No newline at end of file +382404d3061d2c847c87654ab12594ba3fbb7e3a82327da872b5fe2029018ef4d5d3376fceba5c2229ea6f85e1fb63650caf54baed3f3b0304137fde61a98d63 \ No newline at end of file diff --git a/tests/test_volume_calc/test_volume_calc.py b/tests/test_volume_calc/test_volume_calc.py index 656f4654a0..fa267efb6a 100644 --- a/tests/test_volume_calc/test_volume_calc.py +++ b/tests/test_volume_calc/test_volume_calc.py @@ -24,7 +24,6 @@ class VolumeTest(PyAPITestHarness): fuel.set_density('g/cc', 4.5) materials = openmc.Materials((water, fuel)) - materials.default_temperature = '294K' materials.export_to_xml() cyl = openmc.ZCylinder(1, R=1.0, boundary_type='vacuum') From d96f6282fb7b20227f1ee044114d759d8f158cb8 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 7 Sep 2016 18:41:27 -0400 Subject: [PATCH 384/417] Fixing final @smharper comments --- docs/source/usersguide/input.rst | 10 ++++------ openmc/settings.py | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index e9126f16b3..dae3e74b25 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -728,12 +728,10 @@ a material default temperature. The ```` element has an accepted value of "nearest" or "interpolation". A value of "nearest" indicates that for each cell, the nearest temperature at which cross sections are given is to be applied, within a given -tolerance (see :ref:`temperature_tolerance`). A value of "interpolation" -indicates that cross sections are to be interpolated between temperatures at -which nuclear data are present. A value of "multipole" indicates that the -windowed multipole method should be used to evaluate temperature-dependent cross -sections in the resolved resonance range (a :ref:`windowed multipole library -` must also be available). +tolerance (see :ref:`temperature_tolerance`). A value of "multipole" indicates +that the windowed multipole method should be used to evaluate +temperature-dependent cross sections in the resolved resonance range (a +:ref:`windowed multipole library ` must also be available). *Default*: "nearest" diff --git a/openmc/settings.py b/openmc/settings.py index 86aac94712..c7d6debb9e 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -106,7 +106,7 @@ class Settings(object): temperatures at which nuclear data doesn't exist. Accepted keys are 'default', 'method', and 'tolerance'. The value for 'default' should be a float representing the default temperature in Kelvin. The value for - 'method' should be 'nearest' or 'interpolation'. If the method is + 'method' should be 'nearest' or 'multipole'. If the method is 'nearest', 'tolerance' indicates a range of temperature within which cross sections may be used. trigger_active : bool From fab4a4c386b1a7e833c76ff20d10dd9e610791fd Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Sun, 11 Sep 2016 15:33:27 -0400 Subject: [PATCH 385/417] fixed issue with decay rate equation --- docs/source/pythonapi/index.rst | 1 + openmc/mgxs/mdgxs.py | 4 ++-- src/tally.F90 | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 14f4a2128d..d8eb5200a7 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -298,6 +298,7 @@ Multi-delayed-group Cross Sections openmc.mgxs.ChiDelayed openmc.mgxs.DelayedNuFissionXS openmc.mgxs.Beta + openmc.mgxs.DecayRate Multi-group Cross Section Libraries ----------------------------------- diff --git a/openmc/mgxs/mdgxs.py b/openmc/mgxs/mdgxs.py index 9fa286ff31..69b20d3f41 100644 --- a/openmc/mgxs/mdgxs.py +++ b/openmc/mgxs/mdgxs.py @@ -1602,9 +1602,9 @@ class DecayRate(MDGXS): .. math:: \langle \lambda_d \nu^d \sigma_f \phi \rangle &= \int_{r \in V} dr - \int_{4\pi} d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu^d + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \lambda_d \nu^d \sigma_f (r, E') \psi(r, E', \Omega') \\ - \langle \nu \sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} + \langle \nu^d \sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu^d \sigma_f (r, E') \psi(r, E', \Omega') \\ \lambda_d &= \frac{\langle \lambda_d \nu^d \sigma_f \phi \rangle} diff --git a/src/tally.F90 b/src/tally.F90 index 542e1ff5c9..c0e8013a3d 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -708,7 +708,7 @@ contains score = p % absorb_wgt * yield * & micro_xs(p % event_nuclide) % fission & / micro_xs(p % event_nuclide) % absorption & - * rxn % products(1 + d) % decay_rate * 1.e8 + * rxn % products(1 + d) % decay_rate * 1.e8_8 end associate ! Tally to bin @@ -733,7 +733,7 @@ contains ! and not the MAX_DELAYED_GROUPS constant for this loop. do d = 1, size(rxn % products) - 2 - score = score + rxn % products(1 + d) % decay_rate * 1.e8 * & + score = score + rxn % products(1 + d) % decay_rate * 1.e8_8 * & p % absorb_wgt * micro_xs(p % event_nuclide) % fission *& nuclides(p % event_nuclide) % nu(E, EMISSION_DELAYED, d)& / micro_xs(p % event_nuclide) % absorption @@ -773,7 +773,7 @@ contains ! the units of the decay rate have been converted from inverse ! shakes to inverse seconds (1 shake = 1.e-8 seconds) score = score + keff * fission_bank(n_bank - p % n_bank + k) & - % wgt * rxn % products(1 + g) % decay_rate * 1.e8 + % wgt * rxn % products(1 + g) % decay_rate * 1.e8_8 end associate ! if the delayed group filter is present, tally to corresponding From 9de22b96b3b267f3d5114560b2acaa64848b06a2 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 13 Sep 2016 11:34:14 +0200 Subject: [PATCH 386/417] Implement temperature interpolation --- docs/source/usersguide/input.rst | 10 +++-- src/cross_section.F90 | 51 +++++++++++++++++++---- src/input_xml.F90 | 4 +- src/nuclide_header.F90 | 32 +++++++++++--- src/sab_header.F90 | 71 ++++++++++++++++++++++++-------- 5 files changed, 131 insertions(+), 37 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index dae3e74b25..b724d7f109 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -725,10 +725,12 @@ a material default temperature. ```` Element -------------------------------- -The ```` element has an accepted value of "nearest" or -"interpolation". A value of "nearest" indicates that for each cell, the nearest -temperature at which cross sections are given is to be applied, within a given -tolerance (see :ref:`temperature_tolerance`). A value of "multipole" indicates +The ```` element has an accepted value of "nearest", +"interpolation", or "multipole". A value of "nearest" indicates that for each +cell, the nearest temperature at which cross sections are given is to be +applied, within a given tolerance (see :ref:`temperature_tolerance`). A value of +"interpolation" indicates that cross sections are to be interpolated between +temperatures at which nuclear data are present. A value of "multipole" indicates that the windowed multipole method should be used to evaluate temperature-dependent cross sections in the resolved resonance range (a :ref:`windowed multipole library ` must also be available). diff --git a/src/cross_section.F90 b/src/cross_section.F90 index e2cc31d5ea..4bb323c517 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -162,15 +162,33 @@ contains ! temperature. Note that there is no tolerance here, so this ! temperature could be very far off! kT = sqrtkT**2 + i_temp = minloc(abs(nuclides(i_nuclide) % kTs - kT), dim=1) end if else - ! If not using multipole data, do a linear search on temperature kT = sqrtkT**2 - do i_temp = 1, size(nuclides(i_nuclide) % kTs) - if (abs(nuclides(i_nuclide) % kTs(i_temp) - kT) < & - K_BOLTZMANN*temperature_tolerance) exit - end do + + select case (temperature_method) + case (TEMPERATURE_NEAREST) + ! If using nearest temperature, do linear search on temperature + do i_temp = 1, size(nuc % kTs) + if (abs(nuc % kTs(i_temp) - kT) < K_BOLTZMANN * & + temperature_tolerance) exit + end do + case (TEMPERATURE_INTERPOLATION) + ! Find temperatures that bound the actual temperature + do i_temp = 1, size(nuc % kTs) - 1 + if (nuc % kTs(i_temp) <= kT .and. kT < nuc % kTs(i_temp + 1)) exit + end do + + ! Randomly sample between temperature i and i+1 + f = (kT - nuc % kTs(i_temp)) / & + (nuc % kTs(i_temp + 1) - nuc % kTs(i_temp)) + if (f > prn()) i_temp = i_temp + 1 + case (TEMPERATURE_MULTIPOLE) + i_temp = minloc(abs(nuclides(i_nuclide) % kTs - kT), dim=1) + end select + end if ! Evaluate multipole or interpolate @@ -317,10 +335,25 @@ contains ! Determine temperature for S(a,b) table kT = sqrtkT**2 - do i_temp = 1, size(sab_tables(i_sab) % kTs) - if (abs(sab_tables(i_sab) % kTs(i_temp) - kT) < & - K_BOLTZMANN*temperature_tolerance) exit - end do + if (temperature_method == TEMPERATURE_NEAREST) then + ! If using nearest temperature, do linear search on temperature + do i_temp = 1, size(sab_tables(i_sab) % kTs) + if (abs(sab_tables(i_sab) % kTs(i_temp) - kT) < & + K_BOLTZMANN*temperature_tolerance) exit + end do + else + ! Find temperatures that bound the actual temperature + do i_temp = 1, size(sab_tables(i_sab) % kTs) - 1 + if (sab_tables(i_sab) % kTs(i_temp) <= kT .and. & + kT < sab_tables(i_sab) % kTs(i_temp + 1)) exit + end do + + ! Randomly sample between temperature i and i+1 + f = (kT - sab_tables(i_sab) % kTs(i_temp)) / & + (sab_tables(i_sab) % kTs(i_temp + 1) - sab_tables(i_sab) % kTs(i_temp)) + if (f > prn()) i_temp = i_temp + 1 + end if + ! Get pointer to S(a,b) table associate (sab => sab_tables(i_sab) % data(i_temp)) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index eeeae865b6..88eb0e39ca 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -4948,7 +4948,7 @@ contains call names % push_back('Ga0') call densities % push_back(density) else - call names % push_back('Ha69') + call names % push_back('Ga69') call densities % push_back(density * 0.60108_8) call names % push_back('Ga71') call densities % push_back(density * 0.39892_8) @@ -5840,7 +5840,7 @@ contains file_id = file_open(libraries(i_library) % path, 'r') group_id = open_group(file_id, name) call sab_tables(i_sab) % from_hdf5(group_id, sab_temps(i_sab), & - temperature_tolerance) + temperature_method, temperature_tolerance) call close_group(group_id) call file_close(file_id) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 1fbd691ee8..6b3965917e 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -241,11 +241,13 @@ module nuclide_header call read_dataset(temps_available(i), kT_group, trim(dset_names(i))) temps_available(i) = temps_available(i) / K_BOLTZMANN end do + call sort(temps_available) + ! Determine actual temperatures to read select case (method) case (TEMPERATURE_NEAREST) - ! Determine actual temperatures to read - TEMP_LOOP: do i = 1, temperature % size() + ! Find nearest temperatures + do i = 1, temperature % size() temp_desired = temperature % data(i) i_closest = minloc(abs(temps_available - temp_desired), dim=1) temp_actual = temps_available(i_closest) @@ -265,11 +267,31 @@ module nuclide_header &for " // trim(this % name) // " at or near " // & trim(to_str(nint(temp_desired))) // " K.") end if - end do TEMP_LOOP + end do case (TEMPERATURE_INTERPOLATION) - ! TODO: Get bounding temperatures - call fatal_error("Temperature interpolation not yet implemented") + ! If temperature interpolation or multipole is selected, get a list of + ! bounding temperatures for each actual temperature present in the model + TEMP_LOOP: do i = 1, temperature % size() + temp_desired = temperature % data(i) + + do j = 1, size(temps_available) - 1 + if (temps_available(j) <= temp_desired .and. & + temp_desired < temps_available(j + 1)) then + if (find(temps_to_read, nint(temps_available(j))) == -1) then + call temps_to_read % push_back(nint(temps_available(j))) + end if + if (find(temps_to_read, nint(temps_available(j + 1))) == -1) then + call temps_to_read % push_back(nint(temps_available(j + 1))) + end if + cycle TEMP_LOOP + end if + end do + + call fatal_error("Nuclear data library does not contain cross sections & + &for " // trim(this % name) // " at temperatures that bound " // & + trim(to_str(nint(temp_desired))) // " K.") + end do TEMP_LOOP case (TEMPERATURE_MULTIPOLE) ! Add first available temperature diff --git a/src/sab_header.F90 b/src/sab_header.F90 index 147643065a..21a2ab0322 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -80,10 +80,11 @@ module sab_header contains - subroutine salphabeta_from_hdf5(this, group_id, temperature, tolerance) + subroutine salphabeta_from_hdf5(this, group_id, temperature, method, tolerance) class(SAlphaBeta), intent(inout) :: this integer(HID_T), intent(in) :: group_id type(VectorReal), intent(in) :: temperature ! list of temperatures + integer, intent(in) :: method real(8), intent(in) :: tolerance integer :: i, j @@ -142,25 +143,55 @@ contains call read_dataset(temps_available(i), kT_group, trim(dset_names(i))) temps_available(i) = temps_available(i) / K_BOLTZMANN end do + call sort(temps_available) - ! Determine actual temperatures to read - TEMP_LOOP: do i = 1, temperature % size() - temp_desired = temperature % data(i) - i_closest = minloc(abs(temps_available - temp_desired), dim=1) - temp_actual = temps_available(i_closest) - if (abs(temp_actual - temp_desired) < tolerance) then - if (find(temps_to_read, nint(temp_actual)) == -1) then - call temps_to_read % push_back(nint(temp_actual)) + select case (method) + case (TEMPERATURE_NEAREST) + ! Determine actual temperatures to read + do i = 1, temperature % size() + temp_desired = temperature % data(i) + i_closest = minloc(abs(temps_available - temp_desired), dim=1) + temp_actual = temps_available(i_closest) + if (abs(temp_actual - temp_desired) < tolerance) then + if (find(temps_to_read, nint(temp_actual)) == -1) then + call temps_to_read % push_back(nint(temp_actual)) + end if + else + call fatal_error("Nuclear data library does not contain cross sections & + &for " // trim(this % name) // " at or near " // & + trim(to_str(nint(temp_desired))) // " K.") end if - else - call fatal_error("Nuclear data library does not contain cross sections & - &for " // trim(this % name) // " at or near " // & - trim(to_str(nint(temp_desired))) // " K.") - end if - end do TEMP_LOOP + end do - ! TODO: If using interpolation, add a block to add bounding temperatures for - ! each + case (TEMPERATURE_INTERPOLATION) + ! If temperature interpolation or multipole is selected, get a list of + ! bounding temperatures for each actual temperature present in the model + TEMP_LOOP: do i = 1, temperature % size() + temp_desired = temperature % data(i) + + do j = 1, size(temps_available) - 1 + if (temps_available(j) <= temp_desired .and. & + temp_desired < temps_available(j + 1)) then + if (find(temps_to_read, nint(temps_available(j))) == -1) then + call temps_to_read % push_back(nint(temps_available(j))) + end if + if (find(temps_to_read, nint(temps_available(j + 1))) == -1) then + call temps_to_read % push_back(nint(temps_available(j + 1))) + end if + cycle TEMP_LOOP + end if + end do + + call fatal_error("Nuclear data library does not contain cross sections & + &for " // trim(this % name) // " at temperatures that bound " // & + trim(to_str(nint(temp_desired))) // " K.") + end do TEMP_LOOP + + case (TEMPERATURE_MULTIPOLE) + ! Add first available temperature + call temps_to_read % push_back(nint(temps_available(1))) + + end select ! Sort temperatures to read call sort(temps_to_read) @@ -301,6 +332,12 @@ contains end do end associate end do + + ! Clear data on correlated angle-energy object + deallocate(correlated_dist % breakpoints) + deallocate(correlated_dist % interpolation) + deallocate(correlated_dist % energy) + deallocate(correlated_dist % distribution) end if call close_group(inelastic_group) From 0fcc44bedb7975beda0444153964457e87f45079 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 13 Sep 2016 23:16:10 +0200 Subject: [PATCH 387/417] Fix specification of material temperature. Allow XML files to be exported to non-default paths. --- openmc/geometry.py | 5 ++--- openmc/material.py | 31 ++++++++++++------------------- openmc/plots.py | 5 ++--- openmc/settings.py | 5 ++--- tests/test_source/test_source.py | 2 +- 5 files changed, 19 insertions(+), 29 deletions(-) diff --git a/openmc/geometry.py b/openmc/geometry.py index b2a9b5e4aa..6d9330dc6e 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -64,7 +64,7 @@ class Geometry(object): if cell.id in volume_calc.results: cell.add_volume_information(volume_calc) - def export_to_xml(self): + def export_to_xml(self, path='geometry.xml'): """Create a geometry.xml file that can be used for a simulation. """ @@ -82,8 +82,7 @@ class Geometry(object): # Write the XML Tree to the geometry.xml file tree = ET.ElementTree(geometry_file) - tree.write("geometry.xml", xml_declaration=True, encoding='utf-8', - method="xml") + tree.write(path, xml_declaration=True, encoding='utf-8', method="xml") def find(self, point): """Find cells/universes/lattices which contain a given point diff --git a/openmc/material.py b/openmc/material.py index f56af485a4..2861d5be6b 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -41,19 +41,16 @@ class Material(object): name : str, optional Name of the material. If not specified, the name will be the empty string. - temperature : str, optional - The temperature identifier applied to this material. The units are - in Kelvin and the temperature rounded to the nearest integer. - For example, a tempreature of 293.6K would be provided as '294K' + temperature : float, optional + Temperature of the material in Kelvin. If not specified, the material + inherits the default temperature applied to the model. Attributes ---------- id : int Unique identifier for the material - temperature : str - The temperature identifier applied to this material. The units are - in Kelvin and the temperature rounded to the nearest integer. - For example, a tempreature of 293.6K would be provided as '294K' + temperature : float + Temperature of the material in Kelvin. density : float Density of the material (units defined separately) density_units : str @@ -217,12 +214,9 @@ class Material(object): @temperature.setter def temperature(self, temperature): - if temperature is not None: - cv.check_type('Temperature for Material ID="{0}"'.format(self._id), - temperature, basestring) - self._temperature = temperature - else: - self._temperature = '' + cv.check_type('Temperature for Material ID="{0}"'.format(self._id), + temperature, (Real, type(None))) + self._temperature = temperature def set_density(self, units, density=None): """Set the density of the material @@ -631,9 +625,9 @@ class Material(object): element.set("name", str(self._name)) # Create temperature XML subelement - if len(self.temperature) > 0: + if self.temperature is not None: subelement = ET.SubElement(element, "temperature") - subelement.text = self.temperature + subelement.text = str(self.temperature) # Create density XML subelement subelement = ET.SubElement(element, "density") @@ -817,7 +811,7 @@ class Materials(cv.CheckedList): xml_element = material.get_material_xml() self._materials_file.append(xml_element) - def export_to_xml(self): + def export_to_xml(self, path='materials.xml'): """Create a materials.xml file that can be used for a simulation. """ @@ -833,5 +827,4 @@ class Materials(cv.CheckedList): # Write the XML Tree to the materials.xml file tree = ET.ElementTree(self._materials_file) - tree.write("materials.xml", xml_declaration=True, - encoding='utf-8', method="xml") + tree.write(path, xml_declaration=True, encoding='utf-8', method="xml") diff --git a/openmc/plots.py b/openmc/plots.py index cc5c0d44b3..f5c1f2b2ab 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -616,7 +616,7 @@ class Plots(cv.CheckedList): self._plots_file.append(xml_element) - def export_to_xml(self): + def export_to_xml(self, path='plots.xml'): """Create a plots.xml file that can be used by OpenMC. """ @@ -631,5 +631,4 @@ class Plots(cv.CheckedList): # Write the XML Tree to the plots.xml file tree = ET.ElementTree(self._plots_file) - tree.write("plots.xml", xml_declaration=True, - encoding='utf-8', method="xml") + tree.write(path, xml_declaration=True, encoding='utf-8', method="xml") diff --git a/openmc/settings.py b/openmc/settings.py index c7d6debb9e..15898a2b8c 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -1118,7 +1118,7 @@ class Settings(object): for r in self.resonance_scattering: elem.append(r.to_xml_element()) - def export_to_xml(self): + def export_to_xml(self, path='settings.xml'): """Create a settings.xml file that can be used for a simulation. """ @@ -1162,8 +1162,7 @@ class Settings(object): # Write the XML Tree to the settings.xml file tree = ET.ElementTree(self._settings_file) - tree.write("settings.xml", xml_declaration=True, - encoding='utf-8', method="xml") + tree.write(path, xml_declaration=True, encoding='utf-8', method="xml") class ResonanceScattering(object): diff --git a/tests/test_source/test_source.py b/tests/test_source/test_source.py index ce9012bc26..26844ea4e6 100644 --- a/tests/test_source/test_source.py +++ b/tests/test_source/test_source.py @@ -13,7 +13,7 @@ import openmc class SourceTestHarness(PyAPITestHarness): def _build_inputs(self): - mat1 = openmc.Material(material_id=1, temperature='294') + mat1 = openmc.Material(material_id=1, temperature=294) mat1.set_density('g/cm3', 4.5) mat1.add_nuclide(openmc.Nuclide('U235'), 1.0) materials = openmc.Materials([mat1]) From 309291d115d290af02d9fdc460f107154814dd2b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 12 Sep 2016 08:41:17 +0200 Subject: [PATCH 388/417] Add derivations in geometry section. Update publications. --- docs/source/methods/geometry.rst | 83 +++++++++++++++++++++++++++++++- docs/source/publications.rst | 81 ++++++++++++++++++++++++------- 2 files changed, 145 insertions(+), 19 deletions(-) diff --git a/docs/source/methods/geometry.rst b/docs/source/methods/geometry.rst index c689883d08..c2e7270b60 100644 --- a/docs/source/methods/geometry.rst +++ b/docs/source/methods/geometry.rst @@ -265,6 +265,8 @@ Again, we need to check whether the denominator is zero. If so, this means that the particle's direction of flight is parallel to the plane and it will therefore never hit the plane. +.. _cylinder_distance: + Cylinder Parallel to an Axis ---------------------------- @@ -366,7 +368,74 @@ will then be either both positive or both negative. If they are both positive, the smaller (closer) one will be the solution with a negative sign on the square root of the discriminant. -.. TODO: Need to add derivation for x-cone, y-cone, and z-cone. +Cone Parallel to an Axis +------------------------ + +The equation for a cone parallel to, for example, the x-axis is :math:`(y - +y_0)^2 + (z - z_0)^2 = R^2(x - x_0)^2`. Thus, we need to solve :math:`(y + dv - +y_0)^2 + (z + dw - z_0)^2 = R^2(x + du - x_0)^2`. Let us define :math:`\bar{x} = +x - x_0`, :math:`\bar{y} = y - y_0`, and :math:`\bar{z} = z - z_0`. We then have + +.. math:: + :label: dist-xcone-1 + + (\bar{y} + dv)^2 + (\bar{z} + dw)^2 = R^2(\bar{x} + du)^2 + +Expanding equation :eq:`dist-xcone-1` and rearranging terms, we obtain + +.. math:: + :label: dist-xcylinder-2 + + (v^2 + w^2 - R^2u^2) d^2 + 2 (\bar{y}v + \bar{z}w - R^2\bar{x}u) d + + (\bar{y}^2 + \bar{z}^2 - R^2\bar{x}^2) = 0 + +Defining the terms + +.. math:: + :label: dist-quadric-terms + + a = v^2 + w^2 - R^2u^2 + + k = \bar{y}v + \bar{z}w - R^2\bar{x}u + + c = \bar{y}^2 + \bar{z}^2 - R^2\bar{x}^2 + +we then have the simple quadratic equation :math:`ad^2 + 2kd + c = 0` which can +be solved as described in :ref:`cylinder_distance`. + +General Quadric +--------------- + +The equation for a general quadric surface is :math:`Ax^2 + By^2 + Cz^2 + Dxy + +Eyz + Fxz + Gx + Hy + Jz + K = 0`. Thus, we need to solve the equation + +.. math:: + :label: dist-quadric-1 + + A(x+du)^2 + B(y+dv)^2 + C(z+dw)^2 + D(x+du)(y+dv) + E(y+dv)(z+dw) + \\ + F(x+du)(z+dw) + G(x+du) + H(y+dv) + J(z+dw) + K = 0 + +Expanding equation :eq:`dist-quadric-1` and rearranging terms, we obtain + +.. math:: + :label: dist-quadric-2 + + d^2(uv + vw + uw) + 2d(Aux + Bvy + Cwx + (D(uv + vx) + E(vz + wy) + \\ + F(wx + uz))/2) + (x(Ax + Dy) + y(By + Ez) + z(Cz + Fx)) = 0 + +Defining the terms + +.. math:: + :label: dist-quadric-terms + + a = uv + vw + uw + + k = Aux + Bvy + Cwx + (D(uv + vx) + E(vz + wy) + F(wx + uz))/2 + + c = x(Ax + Dy) + y(By + Ez) + z(Cz + Fx) + +we then have the simple quadratic equation :math:`ad^2 + 2kd + c = 0` which can +be solved as described in :ref:`cylinder_distance`. .. _find-cell: @@ -810,6 +879,18 @@ form of the solution: w' = w + \frac{2 (\bar{x}u + \bar{y}v - R^2\bar{z}w)}{R^2 (1 + R^2) \bar{z}} +General Quadric +--------------- + +A general quadric surface has the form :math:`f(x,y,z) = Ax^2 + By^2 + Cz^2 + +Dxy + Eyz + Fxz + Gx + Hy + Jz + K = 0`. Thus, the gradient to the surface is + +.. math:: + :label: reflection-quadric-grad + + \nabla f = \left ( \begin{array}{c} 2Ax + Dy + Fz + G \\ 2By + Dx + Ez + H + \\ 2Cz + Ey + Fx + J \end{array} \right ). + .. _constructive solid geometry: http://en.wikipedia.org/wiki/Constructive_solid_geometry .. _surfaces: http://en.wikipedia.org/wiki/Surface diff --git a/docs/source/publications.rst b/docs/source/publications.rst index 66300dc52a..c5b29b1940 100644 --- a/docs/source/publications.rst +++ b/docs/source/publications.rst @@ -53,6 +53,16 @@ Benchmarking Coupling and Multi-physics -------------------------- +- Matthew Ellis, Benoit Forget, Kord Smith, and Derek Gaston, "Continuous + Temperature Representation in Coupled OpenMC/MOOSE Simulations," *Proc. PHYSOR + 2016*, Sun Valley, Idaho, May 1-5, 2016. + +- Antonios G. Mylonakis, Melpomeni Varvayanni, and Nicolas Catsaros, + "Investigating a Matrix-free, Newton-based, Neutron-Monte + Carlo/Thermal-Hydraulic Coupling Scheme", *Proc. Int. Conf. Nuclear Energy for + New Europe*, Portoroz, Slovenia, Sep .14-17 + (2015). ``_ + - Matt Ellis, Benoit Forget, Kord Smith, and Derek Gaston, "Preliminary coupling of the Monte Carlo code OpenMC and the Multiphysics Object-Oriented Simulation Environment (MOOSE) for analyzing Doppler feedback in Monte Carlo @@ -80,8 +90,17 @@ Geometry Miscellaneous ------------- +- Yunzhao Li, Qingming He, Liangzhi Cao, Hongchun Wu, and Tiejun Zu, "Resonance + Elastic Scattering and Interference Effects Treatments in Subgroup Method," + *Nucl. Eng. Tech.*, **48**, 339-350 + (2016). ``_ + - William Boyd, Sterling Harper, and Paul K. Romano, "Equipping OpenMC for the - big data era," Accepted, *PHYSOR 2016*, Sun Valley, Idaho, May 1-5, 2016. + big data era," *Proc. PHYSOR*, Sun Valley, Idaho, May 1-5, 2016. + +- Michal Kostal, Vojtech Rypar, Jan Milcak, Vlastimil Juricek, Evzen Losa, + Benoit Forget, and Sterling Harper, *Ann. Nucl. Energy*, **87**, 601-611 + (2016). ``_ - Qicang Shen, William Boyd, Benoit Forget, and Kord Smith, "Tally precision triggers for the OpenMC Monte Carlo code," *Trans. Am. Nucl. Soc.*, **112**, @@ -95,6 +114,11 @@ Miscellaneous Multi-group Cross Section Generation ------------------------------------ +- Zhaoyuan Liu, Kord Smith, and Benoit Forget, "A Cumulative Migration Method + for Computing Rigorous Transport Cross Sections and Diffusion Coefficients for + LWR Lattices with Monte Carlo," *Proc. PHYSOR*, Sun Valley, Idaho, May + 1-5, 2016. + - Adam G. Nelson and William R. Martin, "Improved Monte Carlo tallying of multi-group scattering moments using the NDPP code," *Trans. Am. Nucl. Soc.*, **113**, 645-648 (2015) @@ -108,18 +132,43 @@ Multi-group Cross Section Generation Computational Methods Applied to Nuclear Science and Engineering*, Sun Valley, Idaho, May 5--9 (2013). ------------- -Nuclear Data ------------- + +------------------ +Doppler Broadening +------------------ - Colin Josey, Pablo Ducru, Benoit Forget, and Kord Smith, "Windowed multipole - for cross section Doppler broadening," *J. Comput. Phys.*, In Press + for cross section Doppler broadening," *J. Comput. Phys.*, **307**, 715-727 (2016). ``_ +- Jonathan A. Walsh, Benoit Forget, Kord S. Smith, and Forrest B. Brown, + "On-the-fly Doppler Broadening of Unresolved Resonance Region Cross Sections + via Probability Band Interpolation," *Proc. PHYSOR*, Sun Valley, Idaho, May + 1-5, 2016. + - Colin Josey, Benoit Forget, and Kord Smith, "Windowed multipole sensitivity to target accuracy of the optimization procedure," *J. Nucl. Sci. Technol.*, **52**, 987-992 (2015). ``_ +- Paul K. Romano and Timothy H. Trumbull, "Comparison of algorithms for Doppler + broadening pointwise tabulated cross sections," *Ann. Nucl. Energy*, **75**, + 358--364 (2015). ``_ + +- Tuomas Viitanen, Jaakko Leppanen, and Benoit Forget, "Target motion sampling + temperature treatment technique with track-length esimators in OpenMC -- + Preliminary results," *Proc. PHYSOR*, Kyoto, Japan, Sep. 28--Oct. 3 (2014). + +- Benoit Forget, Sheng Xu, and Kord Smith, "Direct Doppler broadening in Monte + Carlo simulations using the multipole representation," *Ann. Nucl. Energy*, + **64**, 78--85 (2014). ``_ + +------------ +Nuclear Data +------------ + +- Paul K. Romano and Sterling M. Harper, "Nuclear data processing capabilities + in OpenMC", *Proc. Nuclear Data*, Sep. 11-16, 2016. + - Jonathan A. Walsh, Paul K. Romano, Benoit Forget, and Kord S. Smith, "Optimizations of the energy grid search algorithm in continuous-energy Monte Carlo particle transport codes", *Comput. Phys. Commun.*, **196**, 134-142 @@ -139,29 +188,17 @@ Nuclear Data performance analysis for varying cross section parameter regimes," *Proc. Joint Int. Conf. M&C+SNA+MC*, Nashville, Tennessee, Apr. 19--23 (2015). -- Paul K. Romano and Timothy H. Trumbull, "Comparison of algorithms for Doppler - broadening pointwise tabulated cross sections," *Ann. Nucl. Energy*, **75**, - 358--364 (2015). ``_ - -- Tuomas Viitanen, Jaakko Leppanen, and Benoit Forget, "Target motion sampling - temperature treatment technique with track-length esimators in OpenMC -- - Preliminary results," *Proc. PHYSOR*, Kyoto, Japan, Sep. 28--Oct. 3 (2014). - - Jonathan A. Walsh, Benoit Forget, and Kord S. Smith, "Accelerated sampling of the free gas resonance elastic scattering kernel," *Ann. Nucl. Energy*, **69**, 116--124 (2014). ``_ -- Benoit Forget, Sheng Xu, and Kord Smith, "Direct Doppler broadening in Monte - Carlo simulations using the multipole representation," *Ann. Nucl. Energy*, - **64**, 78--85 (2014). ``_ - ----------- Parallelism ----------- - Paul K. Romano, John R. Tramm, and Andrew R. Siegel, "Efficacy of hardware threading for Monte Carlo particle transport calculations on multi- and - many-core systems," Accepted, *PHYSOR 2016*, Sun Valley, Idaho, May 1-5, 2016. + many-core systems," *PHYSOR 2016*, Sun Valley, Idaho, May 1-5, 2016. - David Ozog, Allen D. Malony, and Andrew R. Siegel, "A performance analysis of SIMD algorithms for Monte Carlo simulations of nuclear reactor cores," @@ -228,3 +265,11 @@ Parallelism - Paul K. Romano and Benoit Forget, "Parallel Fission Bank Algorithms in Monte Carlo Criticality Calculations," *Nucl. Sci. Eng.*, **170**, 125--135 (2012). ``_ + +--------- +Depletion +--------- + +- Kai Huang, Hongchun Wu, Yunzhao Li, and Liangzhi Cao, "Generalized depletion + chain simplification based of significance analysis," *Proc. PHYSOR*, Sun + Valley, Idaho, May 1-5, 2016. From 6b4db5c2b07dfa1fcc3677ca789783c9cf844b9c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 15 Sep 2016 09:20:58 +0200 Subject: [PATCH 389/417] Update documentation to better describe temperature treatments --- docs/source/methods/cross_sections.rst | 36 ++++++++++++++++++++++++++ docs/source/usersguide/input.rst | 11 ++++---- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index a4d0f7d248..b9043a944d 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -66,6 +66,8 @@ Other Methods A good survey of other energy grid techniques, including unionized energy grids, can be found in a paper by Leppanen_. +.. _windowed_multipole: + Windowed Multipole Representation --------------------------------- @@ -141,6 +143,40 @@ but not always the case. Future library versions may eliminate this issue. The data format used by OpenMC to represent windowed multipole data is specified in :ref:`io_data_wmp`. +.. _temperature_treatment: + +Temperature Treatment +--------------------- + +At the beginning of a simulation, OpenMC collects a list of all temperatures +that are present in a model. It then uses this list to determine what cross +sections to load. The data that is loaded depends on what temperature method has +been selected. There are three methods available: + +:Nearest: Cross sections are loaded only if they are within a specified + tolerance of the actual temperatures in the model. + +:Interpolation: Cross sections are loaded at temperatures that bound the actual + temperatures in the model. During transport, cross sections for + each material are calculated using statistical linear-linear + interpolation between bounding temperature. Suppose cross + sections are available at temperatures :math:`T_1, T_2, ..., + T_n` and a material is assigned a temperature :math:`T` where + :math:`T_i < T < T_{i+1}`. Statistical interpolation is applied + as follows: a uniformly-distributed random number of the unit + interval, :math:`\xi`, is sampled. If :math:`\xi < (T - + T_i)/(T_{i+1} - T_i)`, then cross sections at temperature + :math:`T_{i+1}` are used. Otherwise, cross sections at + :math:`T_i` are used. This procedure is applied for pointwise + cross sections in the resolved resonance range, unresolved + resonance probability tables, and :math:`S(\alpha,\beta)` + thermal scattering tables. + +:Multipole: Resolved resonance cross sections are calculated on-the-fly using + techniques/data described in :ref:`windowed_multipole`. Cross + section data is loaded for a single temperature and is used in the + unresolved resonance and fast energy ranges. + ---------------- Multi-Group Data ---------------- diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index b724d7f109..38e997e9cf 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -729,11 +729,12 @@ The ```` element has an accepted value of "nearest", "interpolation", or "multipole". A value of "nearest" indicates that for each cell, the nearest temperature at which cross sections are given is to be applied, within a given tolerance (see :ref:`temperature_tolerance`). A value of -"interpolation" indicates that cross sections are to be interpolated between -temperatures at which nuclear data are present. A value of "multipole" indicates -that the windowed multipole method should be used to evaluate -temperature-dependent cross sections in the resolved resonance range (a -:ref:`windowed multipole library ` must also be available). +"interpolation" indicates that cross sections are to be linear-linear +interpolated between temperatures at which nuclear data are present (see +:ref:`temperature_treatment`). A value of "multipole" indicates that the +windowed multipole method should be used to evaluate temperature-dependent cross +sections in the resolved resonance range (a :ref:`windowed multipole library +` must also be available). *Default*: "nearest" From 5535385f897e2d90c6c4e0172650d6d45525bfdd Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 15 Sep 2016 15:04:53 +0200 Subject: [PATCH 390/417] If only one temp available and interpolation is chosen, revert to nearest. --- src/input_xml.F90 | 4 +++- src/nuclide_header.F90 | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 88eb0e39ca..a76232fa4c 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -5993,6 +5993,7 @@ contains integer :: i, j integer :: i_library + integer :: method integer(HID_T) :: file_id integer(HID_T) :: group_id real(8) :: xs_cdf_sum @@ -6020,8 +6021,9 @@ contains ! Read nuclide data from HDF5 file_id = file_open(libraries(i_library) % path, 'r') group_id = open_group(file_id, name) + method = TEMPERATURE_NEAREST call resonant_nuc % from_hdf5(group_id, temperature, & - TEMPERATURE_NEAREST, 1000.0_8) + method, 1000.0_8) call close_group(group_id) call file_close(file_id) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 6b3965917e..4235f4234d 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -190,7 +190,7 @@ module nuclide_header class(Nuclide), intent(inout) :: this integer(HID_T), intent(in) :: group_id type(VectorReal), intent(in) :: temperature ! list of desired temperatures - integer, intent(in) :: method + integer, intent(inout) :: method real(8), intent(in) :: tolerance integer :: i @@ -243,6 +243,15 @@ module nuclide_header end do call sort(temps_available) + ! If only one temperature is available, revert to nearest temperature + if (size(temps_available) == 1 .and. & + method == TEMPERATURE_INTERPOLATION) then + call warning("Cross sections for " // trim(this % name) // " are only & + &available at one temperature. Reverting to nearest temperature & + &method.") + method = TEMPERATURE_NEAREST + end if + ! Determine actual temperatures to read select case (method) case (TEMPERATURE_NEAREST) From 3020800ba43c82d97825f026df72b42798996d46 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 15 Sep 2016 10:43:45 -0400 Subject: [PATCH 391/417] moved conversion of decay_rate units from tally.F90 to openmc/data/product.py --- openmc/data/product.py | 4 +++- src/tally.F90 | 10 ++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/openmc/data/product.py b/openmc/data/product.py index 753888f6df..d8dc76e0f3 100644 --- a/openmc/data/product.py +++ b/openmc/data/product.py @@ -98,7 +98,9 @@ class Product(EqualityMixin): def decay_rate(self, decay_rate): cv.check_type('product decay rate', decay_rate, Real) cv.check_greater_than('product decay rate', decay_rate, 0.0, True) - self._decay_rate = decay_rate + + # Convert the decay rate from units of inverse shakes to inverse seconds + self._decay_rate = decay_rate * 1.e-8 @distribution.setter def distribution(self, distribution): diff --git a/src/tally.F90 b/src/tally.F90 index c0e8013a3d..765e8c88a2 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -708,7 +708,7 @@ contains score = p % absorb_wgt * yield * & micro_xs(p % event_nuclide) % fission & / micro_xs(p % event_nuclide) % absorption & - * rxn % products(1 + d) % decay_rate * 1.e8_8 + * rxn % products(1 + d) % decay_rate end associate ! Tally to bin @@ -733,7 +733,7 @@ contains ! and not the MAX_DELAYED_GROUPS constant for this loop. do d = 1, size(rxn % products) - 2 - score = score + rxn % products(1 + d) % decay_rate * 1.e8_8 * & + score = score + rxn % products(1 + d) % decay_rate * & p % absorb_wgt * micro_xs(p % event_nuclide) % fission *& nuclides(p % event_nuclide) % nu(E, EMISSION_DELAYED, d)& / micro_xs(p % event_nuclide) % absorption @@ -769,11 +769,9 @@ contains associate (rxn => nuclides(p % event_nuclide) % & reactions(nuclides(p % event_nuclide) % index_fission(1))) - ! determine score based on bank site weight and keff. Note that - ! the units of the decay rate have been converted from inverse - ! shakes to inverse seconds (1 shake = 1.e-8 seconds) + ! determine score based on bank site weight and keff. score = score + keff * fission_bank(n_bank - p % n_bank + k) & - % wgt * rxn % products(1 + g) % decay_rate * 1.e8_8 + % wgt * rxn % products(1 + g) % decay_rate end associate ! if the delayed group filter is present, tally to corresponding From d0bbc0f6a013ff302fec85af5492259bf10df620 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 15 Sep 2016 11:20:26 -0400 Subject: [PATCH 392/417] changed decay_rate units in documentation back to seconds --- docs/source/io_formats/nuclear_data.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/io_formats/nuclear_data.rst b/docs/source/io_formats/nuclear_data.rst index 3f03c91be9..060e96c0c9 100644 --- a/docs/source/io_formats/nuclear_data.rst +++ b/docs/source/io_formats/nuclear_data.rst @@ -173,7 +173,7 @@ Reaction Products :Attributes: - **particle** (*char[]*) -- Type of particle - **emission_mode** (*char[]*) -- Emission mode (prompt, delayed, total) - - **decay_rate** (*double*) -- Rate of decay in inverse shakes + - **decay_rate** (*double*) -- Rate of decay in inverse seconds - **n_distribution** (*int*) -- Number of angle/energy distributions :Datasets: From 157f1fd484dabcf074681aaa36995c1888a8ecd1 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 15 Sep 2016 12:33:20 -0400 Subject: [PATCH 393/417] added fix to IncidentNeutron.from_hdf5() for Python 2 --- openmc/data/neutron.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 456ccee7bc..2431ba74af 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -478,7 +478,7 @@ class IncidentNeutron(EqualityMixin): if len(rxs) > 0: data.summed_reactions[mt_sum] = rx = Reaction(mt_sum) for T in data.temperatures: - rx.xs[T] = Sum([rx.xs[T] for rx in rxs]) + rx.xs[T] = Sum([rx_i.xs[T] for rx_i in rxs]) # Read unresolved resonance probability tables if 'urr' in group: From 59a8e6e13b2e42f24113d9db99972acec8a3edf6 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 15 Sep 2016 14:05:24 -0400 Subject: [PATCH 394/417] fixed unit conversion error in product.py --- openmc/data/product.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/data/product.py b/openmc/data/product.py index d8dc76e0f3..50f1482213 100644 --- a/openmc/data/product.py +++ b/openmc/data/product.py @@ -100,7 +100,7 @@ class Product(EqualityMixin): cv.check_greater_than('product decay rate', decay_rate, 0.0, True) # Convert the decay rate from units of inverse shakes to inverse seconds - self._decay_rate = decay_rate * 1.e-8 + self._decay_rate = decay_rate * 1.e8 @distribution.setter def distribution(self, distribution): From b894ad6ff35f26b739666285c413bec82aef3846 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 15 Sep 2016 16:15:34 -0400 Subject: [PATCH 395/417] moved decay rate units conversion to reaction.py --- openmc/data/product.py | 4 +--- openmc/data/reaction.py | 4 +++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openmc/data/product.py b/openmc/data/product.py index 50f1482213..753888f6df 100644 --- a/openmc/data/product.py +++ b/openmc/data/product.py @@ -98,9 +98,7 @@ class Product(EqualityMixin): def decay_rate(self, decay_rate): cv.check_type('product decay rate', decay_rate, Real) cv.check_greater_than('product decay rate', decay_rate, 0.0, True) - - # Convert the decay rate from units of inverse shakes to inverse seconds - self._decay_rate = decay_rate * 1.e8 + self._decay_rate = decay_rate @distribution.setter def distribution(self, distribution): diff --git a/openmc/data/reaction.py b/openmc/data/reaction.py index 45d668b92f..eb33e1395f 100644 --- a/openmc/data/reaction.py +++ b/openmc/data/reaction.py @@ -107,7 +107,9 @@ def _get_fission_products(ace): for group in range(n_group): delayed_neutron = Product('neutron') delayed_neutron.emission_mode = 'delayed' - delayed_neutron.decay_rate = ace.xss[idx] + + # Convert units of inverse shakes to inverse seconds + delayed_neutron.decay_rate = ace.xss[idx] * 1.e8 group_probability = Tabulated1D.from_ace(ace, idx + 1) if np.all(group_probability.y == group_probability.y[0]): From 074ab0f764caef6af5d8fb86483b98df8015f4e8 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Thu, 15 Sep 2016 16:45:07 -0400 Subject: [PATCH 396/417] updated location of nndc cross sections for travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 845c103906..46bb847e6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,7 +42,7 @@ install: true before_script: - if [[ ! -e $HOME/nndc_hdf5/cross_sections.xml ]]; then - wget https://anl.box.com/shared/static/68b2yhu8e6mx1f6hnbzz9mxsgg42d9ls.xz -O - | tar -C $HOME -xvJ; + wget https://anl.box.com/shared/static/fouwc8lh9he2wc97kzq65u4rp8zt9sgq.xz -O - | tar -C $HOME -xvJ; fi - export OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml From ace4585fd8ac3d847e82c1035ec943f2eea6cea6 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 16 Sep 2016 18:17:04 -0400 Subject: [PATCH 397/417] addressed PR comments from @paulromano --- src/mesh.F90 | 3 +-- src/output.F90 | 2 -- src/tally.F90 | 4 ++-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/mesh.F90 b/src/mesh.F90 index 64d61eaf99..07109eb682 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -240,7 +240,6 @@ contains real(8) :: x0 ! track start point real(8) :: x1 ! track end point - real(8) :: xi ! track intersection point with mesh real(8) :: xm0 ! lower-left coordinates of mesh real(8) :: xm1 ! upper-right coordinates of mesh @@ -304,7 +303,7 @@ contains ! Set default value for intersects intersects = .false. - ! Check if line intersects left surface -- calculate the intersection point + ! Check if line intersects left surface - calculate the intersection point ! y if ((x0 < xm0 .and. x1 > xm0) .or. (x0 > xm0 .and. x1 < xm0)) then yi = y0 + (xm0 - x0) * (y1 - y0) / (x1 - x0) diff --git a/src/output.F90 b/src/output.F90 index 1d972ed1ef..03496decbc 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -948,8 +948,6 @@ contains integer :: i_filter_ein ! index for incoming energy filter integer :: i_filter_surf ! index for surface filter integer :: n ! number of incoming energy bins - integer :: len1 ! length of string - integer :: len2 ! length of string integer :: filter_index ! index in results array for filters logical :: print_ebin ! should incoming energy bin be displayed? character(MAX_LINE_LEN) :: string diff --git a/src/tally.F90 b/src/tally.F90 index 7212545f9a..4206eab22a 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2594,7 +2594,7 @@ contains if (uvw(d1) > 0) then ! Outward current on d1 max surface - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + if (all(ijk0 >= 1) .and. all(ijk0(:n_dim) <= m % dimension)) then matching_bins(i_filter_surf) = d1 * 4 - 1 matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) @@ -2634,7 +2634,7 @@ contains else ! Outward current on d1 min surface - if (all(ijk0 >= 1) .and. all(ijk0 <= m % dimension)) then + if (all(ijk0 >= 1) .and. all(ijk0(:n_dim) <= m % dimension)) then matching_bins(i_filter_surf) = d1 * 4 - 3 matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) From 699a6655924c4e1e58811d3668b87ec2b2b18624 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Fri, 16 Sep 2016 18:46:21 -0400 Subject: [PATCH 398/417] updated results for 1d mesh filter test --- src/mesh.F90 | 4 +- src/tally.F90 | 10 +- tests/test_filter_mesh_1d/results_true.dat | 144 ++++++++++----------- 3 files changed, 80 insertions(+), 78 deletions(-) diff --git a/src/mesh.F90 b/src/mesh.F90 index 07109eb682..4bb5847392 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -44,7 +44,7 @@ contains end do ! Determine indices - call get_mesh_indices(m, xyz(1:n), ijk(1:n), in_mesh) + call get_mesh_indices(m, xyz, ijk, in_mesh) ! Convert indices to bin if (in_mesh) then @@ -66,7 +66,7 @@ contains logical, intent(out) :: in_mesh ! were given coords in mesh? ! Find particle in mesh - ijk = ceiling((xyz(:m % n_dimension) - m % lower_left)/m % width) + ijk(:m % n_dimension) = ceiling((xyz(:m % n_dimension) - m % lower_left)/m % width) ! Determine if particle is in mesh if (any(ijk(:m % n_dimension) < 1) .or. & diff --git a/src/tally.F90 b/src/tally.F90 index 4206eab22a..e67e8b1d1c 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2510,8 +2510,8 @@ contains n_dim = m % n_dimension ! Determine indices for starting and ending location - call get_mesh_indices(m, xyz0, ijk0(:n_dim), start_in_mesh) - call get_mesh_indices(m, xyz1, ijk1(:n_dim), end_in_mesh) + call get_mesh_indices(m, xyz0, ijk0, start_in_mesh) + call get_mesh_indices(m, xyz1, ijk1, end_in_mesh) ! Check to see if start or end is in mesh -- if not, check if track still ! intersects with mesh @@ -2594,7 +2594,8 @@ contains if (uvw(d1) > 0) then ! Outward current on d1 max surface - if (all(ijk0 >= 1) .and. all(ijk0(:n_dim) <= m % dimension)) then + if (all(ijk0(:n_dim) >= 1) .and. & + all(ijk0(:n_dim) <= m % dimension)) then matching_bins(i_filter_surf) = d1 * 4 - 1 matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) @@ -2634,7 +2635,8 @@ contains else ! Outward current on d1 min surface - if (all(ijk0 >= 1) .and. all(ijk0(:n_dim) <= m % dimension)) then + if (all(ijk0(:n_dim) >= 1) .and. & + all(ijk0(:n_dim) <= m % dimension)) then matching_bins(i_filter_surf) = d1 * 4 - 3 matching_bins(i_filter_mesh) = & mesh_indices_to_bin(m, ijk0) diff --git a/tests/test_filter_mesh_1d/results_true.dat b/tests/test_filter_mesh_1d/results_true.dat index 29fc5f1301..b1ed402f69 100644 --- a/tests/test_filter_mesh_1d/results_true.dat +++ b/tests/test_filter_mesh_1d/results_true.dat @@ -48,92 +48,92 @@ tally 2: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -2.500000E-03 -0.000000E+00 -0.000000E+00 4.000000E-02 1.600000E-03 -0.000000E+00 -0.000000E+00 -3.300000E-01 -2.630000E-02 -0.000000E+00 -0.000000E+00 +5.000000E-02 +2.500000E-03 +5.000000E-02 +2.500000E-03 +4.000000E-02 +1.600000E-03 +2.500000E-01 +1.790000E-02 +3.300000E-01 +2.630000E-02 +3.300000E-01 +2.630000E-02 2.500000E-01 1.790000E-02 -0.000000E+00 -0.000000E+00 -2.400000E-01 -1.340000E-02 -0.000000E+00 -0.000000E+00 3.000000E-01 2.140000E-02 -0.000000E+00 -0.000000E+00 -1.100000E-01 -3.300000E-03 -0.000000E+00 -0.000000E+00 +2.400000E-01 +1.340000E-02 +2.400000E-01 +1.340000E-02 +3.000000E-01 +2.140000E-02 +9.000000E-02 +3.300000E-03 +1.100000E-01 +3.300000E-03 +1.100000E-01 +3.300000E-03 9.000000E-02 3.300000E-03 -0.000000E+00 -0.000000E+00 -2.200000E-01 -1.240000E-02 -0.000000E+00 -0.000000E+00 1.600000E-01 7.400000E-03 -0.000000E+00 -0.000000E+00 -8.000000E-02 -1.400000E-03 -0.000000E+00 -0.000000E+00 +2.200000E-01 +1.240000E-02 +2.200000E-01 +1.240000E-02 +1.600000E-01 +7.400000E-03 +1.000000E-01 +3.000000E-03 +8.000000E-02 +1.400000E-03 +8.000000E-02 +1.400000E-03 1.000000E-01 3.000000E-03 -0.000000E+00 -0.000000E+00 -2.800000E-01 -1.820000E-02 -0.000000E+00 -0.000000E+00 1.900000E-01 8.700000E-03 -0.000000E+00 -0.000000E+00 -7.100000E-01 -1.083000E-01 -0.000000E+00 -0.000000E+00 +2.800000E-01 +1.820000E-02 +2.800000E-01 +1.820000E-02 +1.900000E-01 +8.700000E-03 +5.600000E-01 +6.740000E-02 +7.100000E-01 +1.083000E-01 +7.100000E-01 +1.083000E-01 5.600000E-01 6.740000E-02 -0.000000E+00 -0.000000E+00 -4.100000E-01 -4.150000E-02 -0.000000E+00 -0.000000E+00 4.500000E-01 5.550000E-02 -0.000000E+00 -0.000000E+00 -2.900000E-01 -1.970000E-02 -0.000000E+00 -0.000000E+00 +4.100000E-01 +4.150000E-02 +4.100000E-01 +4.150000E-02 +4.500000E-01 +5.550000E-02 4.100000E-01 3.550000E-02 -0.000000E+00 -0.000000E+00 +2.900000E-01 +1.970000E-02 +2.900000E-01 +1.970000E-02 +4.100000E-01 +3.550000E-02 +3.000000E-02 +5.000000E-04 +2.000000E-02 +4.000000E-04 2.000000E-02 4.000000E-04 -0.000000E+00 -0.000000E+00 3.000000E-02 5.000000E-04 0.000000E+00 @@ -144,20 +144,20 @@ tally 2: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 2.000000E-02 2.000000E-04 -0.000000E+00 -0.000000E+00 1.000000E-02 1.000000E-04 -0.000000E+00 -0.000000E+00 +2.000000E-02 +4.000000E-04 +1.000000E-02 +1.000000E-04 1.000000E-02 1.000000E-04 -0.000000E+00 -0.000000E+00 2.000000E-02 4.000000E-04 0.000000E+00 From 39c2997560ae7a6081e198ae1fa88eeeb0a80d2b Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 19 Sep 2016 10:03:34 -0400 Subject: [PATCH 399/417] fixed typo in mesh.F90 comment --- src/mesh.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesh.F90 b/src/mesh.F90 index 4bb5847392..0f342c0509 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -303,7 +303,7 @@ contains ! Set default value for intersects intersects = .false. - ! Check if line intersects left surface - calculate the intersection point + ! Check if line intersects left surface -- calculate the intersection point ! y if ((x0 < xm0 .and. x1 > xm0) .or. (x0 > xm0 .and. x1 < xm0)) then yi = y0 + (xm0 - x0) * (y1 - y0) / (x1 - x0) From c54198b7f8f35024cf530a140d4cdc22a8609bc4 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 19 Sep 2016 10:36:32 -0400 Subject: [PATCH 400/417] changed URL for downloading HDF5 --- tests/travis_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/travis_install.sh b/tests/travis_install.sh index c01a980c05..b060e3d4bc 100755 --- a/tests/travis_install.sh +++ b/tests/travis_install.sh @@ -15,7 +15,7 @@ fi # Build PHDF5 if [[ ! -e $HOME/phdf5_install/bin/h5pfc ]]; then - wget -q http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.15/src/hdf5-1.8.15.tar.gz + wget -q http:/support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.15/src/hdf5-1.8.15.tar.gz tar -xzvf hdf5-1.8.15.tar.gz >/dev/null 2>&1 mv hdf5-1.8.15 phdf5-1.8.15; cd phdf5-1.8.15 CC=$HOME/mpich_install/bin/mpicc FC=$HOME/mpich_install/bin/mpif90 \ From 4429e5f58c35c113e9f9987c1ae69495d1ec883b Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 19 Sep 2016 10:38:18 -0400 Subject: [PATCH 401/417] fixed typo in hdf5 url --- tests/travis_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/travis_install.sh b/tests/travis_install.sh index b060e3d4bc..df1c81314b 100755 --- a/tests/travis_install.sh +++ b/tests/travis_install.sh @@ -15,7 +15,7 @@ fi # Build PHDF5 if [[ ! -e $HOME/phdf5_install/bin/h5pfc ]]; then - wget -q http:/support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.15/src/hdf5-1.8.15.tar.gz + wget -q http://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.15/src/hdf5-1.8.15.tar.gz tar -xzvf hdf5-1.8.15.tar.gz >/dev/null 2>&1 mv hdf5-1.8.15 phdf5-1.8.15; cd phdf5-1.8.15 CC=$HOME/mpich_install/bin/mpicc FC=$HOME/mpich_install/bin/mpif90 \ From 4e0820aa2e704937525db296c758526561d2f873 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 19 Sep 2016 12:04:51 -0400 Subject: [PATCH 402/417] expanded if statement in tally.F90 to avoid error in debug mode --- src/tally.F90 | 67 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 18 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index e67e8b1d1c..3c008e30e5 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2484,6 +2484,7 @@ contains real(8) :: filt_score ! score applied by filters logical :: start_in_mesh ! particle's starting xyz in mesh? logical :: end_in_mesh ! particle's ending xyz in mesh? + logical :: cross_surface ! whether the particle crosses a surface type(TallyObject), pointer :: t type(RegularMesh), pointer :: m @@ -2607,15 +2608,30 @@ contains end if ! Inward current on d1 min surface - if ((n_dim == 1 .and. & - ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1)) .or. & - (n_dim == 2 .and. & - ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1) .and. & - ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2)) .or. & - (n_dim == 3 .and. & - ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1) .and. & - ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & - ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3))) then + cross_surface = .false. + select case(n_dim) + + case (1) + if (ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1)) then + cross_surface = .true. + end if + + case (2) + if (ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1) .and. & + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2)) then + cross_surface = .true. + end if + + case (3) + if (ijk0(d1) >= 0 .and. ijk0(d1) < m % dimension(d1) .and. & + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & + ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3)) then + cross_surface = .true. + end if + end select + + ! If the particle crossed the surface, tally the current + if (cross_surface) then ijk0(d1) = ijk0(d1) + 1 matching_bins(i_filter_surf) = d1 * 4 - 2 matching_bins(i_filter_mesh) = & @@ -2648,15 +2664,30 @@ contains end if ! Inward current on d1 max surface - if ((n_dim == 1 .and. & - ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1) .or. & - (n_dim == 2 .and. & - ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1 .and. & - ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2)) .or. & - (n_dim == 3 .and. & - ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1 .and. & - ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & - ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3))) then + cross_surface = .false. + select case(n_dim) + + case (1) + if (ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1) then + cross_surface = .true. + end if + + case (2) + if (ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1 .and.& + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2)) then + cross_surface = .true. + end if + + case (3) + if (ijk0(d1) > 1 .and. ijk0(d1) <= m % dimension(d1) + 1 .and.& + ijk0(d2) >= 1 .and. ijk0(d2) <= m % dimension(d2) .and. & + ijk0(d3) >= 1 .and. ijk0(d3) <= m % dimension(d3)) then + cross_surface = .true. + end if + end select + + ! If the particle crossed the surface, tally the current + if (cross_surface) then ijk0(d1) = ijk0(d1) - 1 matching_bins(i_filter_surf) = d1 * 4 matching_bins(i_filter_mesh) = & From 205eaf9760a68c503dfe28729c2822a0ae70e888 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 19 Sep 2016 12:40:53 -0400 Subject: [PATCH 403/417] condensed mesh filter tests into one and changed to use the python api --- tests/test_filter_mesh/inputs_true.dat | 1 + tests/test_filter_mesh/results_true.dat | 1 + tests/test_filter_mesh/test_filter_mesh.py | 91 ++++++ tests/test_filter_mesh_1d/geometry.xml | 181 ------------ tests/test_filter_mesh_1d/materials.xml | 272 ------------------ tests/test_filter_mesh_1d/results_true.dat | 174 ----------- tests/test_filter_mesh_1d/settings.xml | 19 -- tests/test_filter_mesh_1d/tallies.xml | 21 -- .../test_filter_mesh_1d.py | 11 - tests/test_filter_mesh_2d/geometry.xml | 181 ------------ tests/test_filter_mesh_2d/materials.xml | 270 ----------------- tests/test_filter_mesh_2d/results_true.dat | 1 - tests/test_filter_mesh_2d/settings.xml | 19 -- tests/test_filter_mesh_2d/tallies.xml | 21 -- .../test_filter_mesh_2d.py | 11 - tests/test_filter_mesh_3d/geometry.xml | 181 ------------ tests/test_filter_mesh_3d/materials.xml | 270 ----------------- tests/test_filter_mesh_3d/results_true.dat | 1 - tests/test_filter_mesh_3d/settings.xml | 19 -- tests/test_filter_mesh_3d/tallies.xml | 21 -- .../test_filter_mesh_3d.py | 11 - tests/testing_harness.py | 7 + 22 files changed, 100 insertions(+), 1684 deletions(-) create mode 100644 tests/test_filter_mesh/inputs_true.dat create mode 100644 tests/test_filter_mesh/results_true.dat create mode 100644 tests/test_filter_mesh/test_filter_mesh.py delete mode 100644 tests/test_filter_mesh_1d/geometry.xml delete mode 100644 tests/test_filter_mesh_1d/materials.xml delete mode 100644 tests/test_filter_mesh_1d/results_true.dat delete mode 100644 tests/test_filter_mesh_1d/settings.xml delete mode 100644 tests/test_filter_mesh_1d/tallies.xml delete mode 100644 tests/test_filter_mesh_1d/test_filter_mesh_1d.py delete mode 100644 tests/test_filter_mesh_2d/geometry.xml delete mode 100644 tests/test_filter_mesh_2d/materials.xml delete mode 100644 tests/test_filter_mesh_2d/results_true.dat delete mode 100644 tests/test_filter_mesh_2d/settings.xml delete mode 100644 tests/test_filter_mesh_2d/tallies.xml delete mode 100644 tests/test_filter_mesh_2d/test_filter_mesh_2d.py delete mode 100644 tests/test_filter_mesh_3d/geometry.xml delete mode 100644 tests/test_filter_mesh_3d/materials.xml delete mode 100644 tests/test_filter_mesh_3d/results_true.dat delete mode 100644 tests/test_filter_mesh_3d/settings.xml delete mode 100644 tests/test_filter_mesh_3d/tallies.xml delete mode 100644 tests/test_filter_mesh_3d/test_filter_mesh_3d.py diff --git a/tests/test_filter_mesh/inputs_true.dat b/tests/test_filter_mesh/inputs_true.dat new file mode 100644 index 0000000000..b683ebaeb0 --- /dev/null +++ b/tests/test_filter_mesh/inputs_true.dat @@ -0,0 +1 @@ +5a9e65b8a8c9d7c575fc48c5d289bbc805739729a33d83aa79985473d83c8cc3a0c7dad8e95221090917c35ac4842667c8c9daecd06dc6b909a92475f5083753 \ No newline at end of file diff --git a/tests/test_filter_mesh/results_true.dat b/tests/test_filter_mesh/results_true.dat new file mode 100644 index 0000000000..2cc3c9532b --- /dev/null +++ b/tests/test_filter_mesh/results_true.dat @@ -0,0 +1 @@ +89387dd9e5b962c773e1782ff829846968dc456d899963f5dd98761fbde73a3f81676717ff3599bc26a1b77247826c38756735a9b2b329b80ad66286a62bd3f9 \ No newline at end of file diff --git a/tests/test_filter_mesh/test_filter_mesh.py b/tests/test_filter_mesh/test_filter_mesh.py new file mode 100644 index 0000000000..ab57f265dc --- /dev/null +++ b/tests/test_filter_mesh/test_filter_mesh.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import hashlib +sys.path.insert(0, os.pardir) +from testing_harness import HashedPyAPITestHarness +import openmc + + +class FilterMeshTestHarness(HashedPyAPITestHarness): + 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.Tallies() + + # Initialize Meshes + mesh_1d = openmc.Mesh(mesh_id=1) + mesh_1d.type = 'regular' + mesh_1d.dimension = [17] + mesh_1d.lower_left = [-182.07] + mesh_1d.upper_right = [182.07] + + mesh_2d = openmc.Mesh(mesh_id=2) + mesh_2d.type = 'regular' + mesh_2d.dimension = [17, 17] + mesh_2d.lower_left = [-182.07, -182.07] + mesh_2d.upper_right = [182.07, 182.07] + + mesh_3d = openmc.Mesh(mesh_id=3) + mesh_3d.type = 'regular' + mesh_3d.dimension = [17, 17, 17] + mesh_3d.lower_left = [-182.07, -182.07, -183.00] + mesh_3d.upper_right = [182.07, 182.07, 183.00] + + # Initialize the filters + mesh_1d_filter = openmc.Filter(type='mesh') + mesh_2d_filter = openmc.Filter(type='mesh') + mesh_3d_filter = openmc.Filter(type='mesh') + mesh_1d_filter.mesh = mesh_1d + mesh_2d_filter.mesh = mesh_2d + mesh_3d_filter.mesh = mesh_3d + + # Initialized the tallies + tally = openmc.Tally(name='tally 1') + tally.filters = [mesh_1d_filter] + tally.scores = ['total'] + tallies_file.append(tally) + + tally = openmc.Tally(name='tally 2') + tally.filters = [mesh_1d_filter] + tally.scores = ['current'] + tallies_file.append(tally) + + tally = openmc.Tally(name='tally 3') + tally.filters = [mesh_2d_filter] + tally.scores = ['total'] + tallies_file.append(tally) + + tally = openmc.Tally(name='tally 4') + tally.filters = [mesh_2d_filter] + tally.scores = ['current'] + tallies_file.append(tally) + + tally = openmc.Tally(name='tally 5') + tally.filters = [mesh_3d_filter] + tally.scores = ['total'] + tallies_file.append(tally) + + tally = openmc.Tally(name='tally 6') + tally.filters = [mesh_3d_filter] + tally.scores = ['current'] + tallies_file.append(tally) + + # Export tallies to file + self._input_set.tallies = tallies_file + super(FilterMeshTestHarness, self)._build_inputs() + + def _cleanup(self): + super(FilterMeshTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = FilterMeshTestHarness('statepoint.10.*', True) + harness.main() diff --git a/tests/test_filter_mesh_1d/geometry.xml b/tests/test_filter_mesh_1d/geometry.xml deleted file mode 100644 index f6f067aadd..0000000000 --- a/tests/test_filter_mesh_1d/geometry.xml +++ /dev/null @@ -1,181 +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 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 - - - - - - 17 17 - -10.71 -10.71 - 1.26 1.26 - - 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 21 - -224.91 -224.91 - 21.42 21.42 - - 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 21 - -224.91 -224.91 - 21.42 21.42 - - 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_filter_mesh_1d/materials.xml b/tests/test_filter_mesh_1d/materials.xml deleted file mode 100644 index f5a9e61bea..0000000000 --- a/tests/test_filter_mesh_1d/materials.xml +++ /dev/null @@ -1,272 +0,0 @@ - - - - 71c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/test_filter_mesh_1d/results_true.dat b/tests/test_filter_mesh_1d/results_true.dat deleted file mode 100644 index b1ed402f69..0000000000 --- a/tests/test_filter_mesh_1d/results_true.dat +++ /dev/null @@ -1,174 +0,0 @@ -k-combined: -9.581522E-01 4.261830E-02 -tally 1: -0.000000E+00 -0.000000E+00 -2.478640E-01 -6.143655E-02 -5.333571E+00 -7.576807E+00 -1.835243E+01 -7.767570E+01 -7.645679E+00 -1.417005E+01 -1.089665E+01 -2.529337E+01 -1.039660E+01 -2.336163E+01 -1.058091E+01 -2.339532E+01 -1.533977E+01 -4.881187E+01 -2.336757E+01 -1.136090E+02 -2.005142E+01 -9.280736E+01 -6.391589E+00 -8.560759E+00 -4.529351E-01 -1.762625E-01 -5.583971E-01 -1.790554E-01 -1.642981E+00 -1.466963E+00 -5.214580E-02 -2.719184E-03 -0.000000E+00 -0.000000E+00 -tally 2: -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -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 -1.600000E-03 -5.000000E-02 -2.500000E-03 -5.000000E-02 -2.500000E-03 -4.000000E-02 -1.600000E-03 -2.500000E-01 -1.790000E-02 -3.300000E-01 -2.630000E-02 -3.300000E-01 -2.630000E-02 -2.500000E-01 -1.790000E-02 -3.000000E-01 -2.140000E-02 -2.400000E-01 -1.340000E-02 -2.400000E-01 -1.340000E-02 -3.000000E-01 -2.140000E-02 -9.000000E-02 -3.300000E-03 -1.100000E-01 -3.300000E-03 -1.100000E-01 -3.300000E-03 -9.000000E-02 -3.300000E-03 -1.600000E-01 -7.400000E-03 -2.200000E-01 -1.240000E-02 -2.200000E-01 -1.240000E-02 -1.600000E-01 -7.400000E-03 -1.000000E-01 -3.000000E-03 -8.000000E-02 -1.400000E-03 -8.000000E-02 -1.400000E-03 -1.000000E-01 -3.000000E-03 -1.900000E-01 -8.700000E-03 -2.800000E-01 -1.820000E-02 -2.800000E-01 -1.820000E-02 -1.900000E-01 -8.700000E-03 -5.600000E-01 -6.740000E-02 -7.100000E-01 -1.083000E-01 -7.100000E-01 -1.083000E-01 -5.600000E-01 -6.740000E-02 -4.500000E-01 -5.550000E-02 -4.100000E-01 -4.150000E-02 -4.100000E-01 -4.150000E-02 -4.500000E-01 -5.550000E-02 -4.100000E-01 -3.550000E-02 -2.900000E-01 -1.970000E-02 -2.900000E-01 -1.970000E-02 -4.100000E-01 -3.550000E-02 -3.000000E-02 -5.000000E-04 -2.000000E-02 -4.000000E-04 -2.000000E-02 -4.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 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -4.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.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 diff --git a/tests/test_filter_mesh_1d/settings.xml b/tests/test_filter_mesh_1d/settings.xml deleted file mode 100644 index 517637a59f..0000000000 --- a/tests/test_filter_mesh_1d/settings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - 10 - 5 - 100 - - - - - - -160 -160 -183 - 160 160 183 - - - - - diff --git a/tests/test_filter_mesh_1d/tallies.xml b/tests/test_filter_mesh_1d/tallies.xml deleted file mode 100644 index 488b81e872..0000000000 --- a/tests/test_filter_mesh_1d/tallies.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - regular - -182.07 - 182.07 - 17 - - - - - total - - - - - current - - - diff --git a/tests/test_filter_mesh_1d/test_filter_mesh_1d.py b/tests/test_filter_mesh_1d/test_filter_mesh_1d.py deleted file mode 100644 index ed6addec45..0000000000 --- a/tests/test_filter_mesh_1d/test_filter_mesh_1d.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -sys.path.insert(0, os.pardir) -from testing_harness import TestHarness - - -if __name__ == '__main__': - harness = TestHarness('statepoint.10.*', True) - harness.main() diff --git a/tests/test_filter_mesh_2d/geometry.xml b/tests/test_filter_mesh_2d/geometry.xml deleted file mode 100644 index f6f067aadd..0000000000 --- a/tests/test_filter_mesh_2d/geometry.xml +++ /dev/null @@ -1,181 +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 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 - - - - - - 17 17 - -10.71 -10.71 - 1.26 1.26 - - 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 21 - -224.91 -224.91 - 21.42 21.42 - - 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 21 - -224.91 -224.91 - 21.42 21.42 - - 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_filter_mesh_2d/materials.xml b/tests/test_filter_mesh_2d/materials.xml deleted file mode 100644 index 8021f5f99e..0000000000 --- a/tests/test_filter_mesh_2d/materials.xml +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat deleted file mode 100644 index 27afaa45f1..0000000000 --- a/tests/test_filter_mesh_2d/results_true.dat +++ /dev/null @@ -1 +0,0 @@ -7514c8f3843e4b2160017558e9d2f90214abeaad68b1229619f3b109cdffd783f5d69a54f3193972158f20fc017875313ec78b9bb3f7709990733202b653a68a \ No newline at end of file diff --git a/tests/test_filter_mesh_2d/settings.xml b/tests/test_filter_mesh_2d/settings.xml deleted file mode 100644 index 517637a59f..0000000000 --- a/tests/test_filter_mesh_2d/settings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - 10 - 5 - 100 - - - - - - -160 -160 -183 - 160 160 183 - - - - - diff --git a/tests/test_filter_mesh_2d/tallies.xml b/tests/test_filter_mesh_2d/tallies.xml deleted file mode 100644 index 58089c554d..0000000000 --- a/tests/test_filter_mesh_2d/tallies.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - regular - -182.07 -182.07 - 182.07 182.07 - 17 17 - - - - - total - - - - - current - - - diff --git a/tests/test_filter_mesh_2d/test_filter_mesh_2d.py b/tests/test_filter_mesh_2d/test_filter_mesh_2d.py deleted file mode 100644 index 99c2981c2a..0000000000 --- a/tests/test_filter_mesh_2d/test_filter_mesh_2d.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -sys.path.insert(0, os.pardir) -from testing_harness import HashedTestHarness - - -if __name__ == '__main__': - harness = HashedTestHarness('statepoint.10.*', True) - harness.main() diff --git a/tests/test_filter_mesh_3d/geometry.xml b/tests/test_filter_mesh_3d/geometry.xml deleted file mode 100644 index f6f067aadd..0000000000 --- a/tests/test_filter_mesh_3d/geometry.xml +++ /dev/null @@ -1,181 +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 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 - - - - - - 17 17 - -10.71 -10.71 - 1.26 1.26 - - 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 21 - -224.91 -224.91 - 21.42 21.42 - - 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 21 - -224.91 -224.91 - 21.42 21.42 - - 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_filter_mesh_3d/materials.xml b/tests/test_filter_mesh_3d/materials.xml deleted file mode 100644 index 8021f5f99e..0000000000 --- a/tests/test_filter_mesh_3d/materials.xml +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat deleted file mode 100644 index 505aa5c4d8..0000000000 --- a/tests/test_filter_mesh_3d/results_true.dat +++ /dev/null @@ -1 +0,0 @@ -9745cbccf9f7ecb9e95e0cd23f84df6ccceb28df02b6b881f80e6b297d1b9503e4226ef26699bb110306637c84ab71545048b84579dbc450db8311a35bb24c64 \ No newline at end of file diff --git a/tests/test_filter_mesh_3d/settings.xml b/tests/test_filter_mesh_3d/settings.xml deleted file mode 100644 index 517637a59f..0000000000 --- a/tests/test_filter_mesh_3d/settings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - 10 - 5 - 100 - - - - - - -160 -160 -183 - 160 160 183 - - - - - diff --git a/tests/test_filter_mesh_3d/tallies.xml b/tests/test_filter_mesh_3d/tallies.xml deleted file mode 100644 index 67ec57d21c..0000000000 --- a/tests/test_filter_mesh_3d/tallies.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - regular - -182.07 -182.07 -183.00 - 182.07 182.07 183.00 - 17 17 17 - - - - - total - - - - - current - - - diff --git a/tests/test_filter_mesh_3d/test_filter_mesh_3d.py b/tests/test_filter_mesh_3d/test_filter_mesh_3d.py deleted file mode 100644 index 99c2981c2a..0000000000 --- a/tests/test_filter_mesh_3d/test_filter_mesh_3d.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -sys.path.insert(0, os.pardir) -from testing_harness import HashedTestHarness - - -if __name__ == '__main__': - harness = HashedTestHarness('statepoint.10.*', True) - harness.main() diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 19a7ffb06c..5300131642 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -344,3 +344,10 @@ class PyAPITestHarness(TestHarness): for f in output: if os.path.exists(f): os.remove(f) + + +class HashedPyAPITestHarness(PyAPITestHarness): + + def _get_results(self): + """Digest info in the statepoint and return as a string.""" + return super(HashedPyAPITestHarness, self)._get_results(True) From 00104b82ee46705488a0dc4e82fb80b2fb5748ca Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Mon, 19 Sep 2016 14:42:06 -0400 Subject: [PATCH 404/417] fixed issue with stochastic volume calculation for a heterogeneous cell with more than 8 materials --- src/volume_calc.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/volume_calc.F90 b/src/volume_calc.F90 index 22647c4da9..dee646860b 100644 --- a/src/volume_calc.F90 +++ b/src/volume_calc.F90 @@ -389,7 +389,7 @@ contains allocate(temp(size(this % domain_id), k)) temp(:, 1:nm) = hits(:, 1:nm) - call move_alloc(FROM=temp, TO=indices) + call move_alloc(FROM=temp, TO=hits) end if ! Add an entry to both the indices list and the hits list From 14e90db9c6447a8334d789c4dc933359240a0f7b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 20 Sep 2016 11:03:51 -0500 Subject: [PATCH 405/417] Add MCNP data conversion scripts. Improve JEFF script. Update docs. --- data/convert_mcnp_70.py | 88 +++++++++++++++++ data/convert_mcnp_71.py | 77 +++++++++++++++ data/get_jeff_data.py | 145 ++++++++++++++++------------- docs/source/usersguide/install.rst | 144 ++++++++++++++++++---------- openmc/data/thermal.py | 14 +-- 5 files changed, 348 insertions(+), 120 deletions(-) create mode 100755 data/convert_mcnp_70.py create mode 100755 data/convert_mcnp_71.py diff --git a/data/convert_mcnp_70.py b/data/convert_mcnp_70.py new file mode 100755 index 0000000000..6a6e2d61c4 --- /dev/null +++ b/data/convert_mcnp_70.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python + +from __future__ import print_function +from argparse import ArgumentParser +from collections import defaultdict +import glob +import os + +import openmc.data + + +# Get path to MCNP data +parser = ArgumentParser() +parser.add_argument('-d', '--destination', default='mcnp_endfb70', + help='Directory to create new library in') +parser.add_argument('mcnpdata', help='Directory containing endf70[a-k] and endf70sab') +args = parser.parse_args() +assert os.path.isdir(args.mcnpdata) + +# Get a list of all neutron ACE files +endf70 = glob.glob(os.path.join(args.mcnpdata, 'endf70[a-k]')) + +# Create output directory if it doesn't exist +if not os.path.isdir(args.destination): + os.mkdir(args.destination) + +library = openmc.data.DataLibrary() + +for path in sorted(endf70): + print('Loading data from {}...'.format(path)) + lib = openmc.data.ace.Library(path) + + # Group together tables for the same nuclide + tables = defaultdict(list) + for table in lib.tables: + zaid, xs = table.name.split('.') + tables[zaid].append(table) + + for zaid, tables in sorted(tables.items()): + # Convert first temperature for the table + print('Converting: ' + tables[0].name) + data = openmc.data.IncidentNeutron.from_ace(tables[0], 'mcnp') + + # For each higher temperature, add cross sections to the existing table + for table in tables[1:]: + print('Adding: ' + table.name) + data.add_temperature_from_ace(table, 'mcnp') + + # Export HDF5 file + h5_file = os.path.join(args.destination, data.name + '.h5') + print('Writing {}...'.format(h5_file)) + data.export_to_hdf5(h5_file, 'w') + + # Register with library + library.register_file(h5_file) + +# Handle S(a,b) tables +endf70sab = os.path.join(args.mcnpdata, 'endf70sab') +if os.path.exists(endf70sab): + lib = openmc.data.ace.Library(endf70sab) + + # Group together tables for the same nuclide + tables = defaultdict(list) + for table in lib.tables: + name, xs = table.name.split('.') + tables[name].append(table) + + for zaid, tables in sorted(tables.items()): + # Convert first temperature for the table + print('Converting: ' + tables[0].name) + data = openmc.data.ThermalScattering.from_ace(tables[0]) + + # For each higher temperature, add cross sections to the existing table + for table in tables[1:]: + print('Adding: ' + table.name) + data.add_temperature_from_ace(table) + + # Export HDF5 file + h5_file = os.path.join(args.destination, data.name + '.h5') + print('Writing {}...'.format(h5_file)) + data.export_to_hdf5(h5_file, 'w') + + # Register with library + library.register_file(h5_file, 'thermal') + +# Write cross_sections.xml +libpath = os.path.join(args.destination, 'cross_sections.xml') +library.export_to_xml(libpath) diff --git a/data/convert_mcnp_71.py b/data/convert_mcnp_71.py new file mode 100755 index 0000000000..40da200d31 --- /dev/null +++ b/data/convert_mcnp_71.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python + +from __future__ import print_function +from argparse import ArgumentParser +from collections import defaultdict +import glob +import os + +import openmc.data + + +# Get path to MCNP data +parser = ArgumentParser() +parser.add_argument('-d', '--destination', default='mcnp_endfb71', + help='Directory to create new library in') +parser.add_argument('-f', '--fission_energy_release', + help='HDF5 file containing fission energy release data') +parser.add_argument('mcnpdata', help='Directory containing endf71x and ENDF71SaB') +args = parser.parse_args() +assert os.path.isdir(args.mcnpdata) + +# Get a list of all ACE files +endf71x = glob.glob(os.path.join(args.mcnpdata, 'endf71x', '*', '*.71?nc')) +endf71sab = glob.glob(os.path.join(args.mcnpdata, 'ENDF71SaB' , 'lwtr*.2?t')) + +# There's a bug in H-Zr at 1200 K +endf71sab.remove(os.path.join(args.mcnpdata, 'ENDF71SaB' , 'h-zr.27t')) + +# Group together tables for the same nuclide +suffixes = defaultdict(list) +for filename in sorted(endf71x + endf71sab): + dirname, basename = os.path.split(filename) + zaid, xs = basename.split('.') + suffixes[os.path.join(dirname, zaid)].append(xs) + +# Create output directory if it doesn't exist +if not os.path.isdir(args.destination): + os.mkdir(args.destination) + +library = openmc.data.DataLibrary() + +for basename, xs_list in sorted(suffixes.items()): + # Convert first temperature for the table + filename = '.'.join((basename, xs_list[0])) + print('Converting: ' + filename) + if filename.endswith('t'): + data = openmc.data.ThermalScattering.from_ace(filename) + else: + data = openmc.data.IncidentNeutron.from_ace(filename, 'mcnp') + + # Add fission energy release data, if available + if args.fission_energy_release is not None: + fer = openmc.data.FissionEnergyRelease.from_compact_hdf5( + args.fission_energy_release, neutron) + if fer is not None: + data.fission_energy = fer + + # For each higher temperature, add cross sections to the existing table + for xs in xs_list[1:]: + filename = '.'.join((basename, xs)) + print('Adding: ' + filename) + if filename.endswith('t'): + data.add_temperature_from_ace(filename) + else: + data.add_temperature_from_ace(filename, 'mcnp') + + # Export HDF5 file + h5_file = os.path.join(args.destination, data.name + '.h5') + print('Writing {}...'.format(h5_file)) + data.export_to_hdf5(h5_file, 'w') + + # Register with library + library.register_file(h5_file) + +# Write cross_sections.xml +libpath = os.path.join(args.destination, 'cross_sections.xml') +library.export_to_xml(libpath) diff --git a/data/get_jeff_data.py b/data/get_jeff_data.py index fa93948504..5595e0683d 100755 --- a/data/get_jeff_data.py +++ b/data/get_jeff_data.py @@ -2,14 +2,13 @@ from __future__ import print_function import os -import shutil -import subprocess +from collections import defaultdict import sys import tarfile import zipfile import glob -import hashlib import argparse +from string import digits import openmc.data @@ -26,23 +25,18 @@ else: download_warning = """ WARNING: This script will download approximately 9 GB of data. Extracting and -processing the data may require as much as 30 GB of additional free disk +processing the data may require as much as 40 GB of additional free disk space. Note that if you don't need all 11 temperatures, you can modify the 'files' list in the script to download only the data you want. Are you sure you want to continue? ([y]/n) """ -thermal_suffix = {20: '01t', 100: '02t', 293: '03t', 296: '03t', 323: '04t', - 350: '05t', 373: '06t', 400: '07t', 423: '08t', 473: '09t', - 500: '10t', 523: '11t', 573: '12t', 600: '13t', 623: '14t', - 643: '15t', 647: '15t', 700: '16t', 773: '17t', 800: '18t', - 1000: '19t', 1200: '20t', 1600: '21t', 2000: '22t', - 3000: '23t'} - parser = argparse.ArgumentParser() parser.add_argument('-b', '--batch', action='store_true', help='supresses standard in') +parser.add_argument('-d', '--destination', default='jeff-3.2-hdf5', + help='Directory to create new library in') args = parser.parse_args() response = askuser(download_warning) if not args.batch else 'y' @@ -130,21 +124,6 @@ for f in files: for path in glob.glob(os.path.join('jeff-3.2', 'ACEs_293K', '*-293.ACE')): os.remove(path) -# ============================================================================== -# FIX ERRORS - -# A few nuclides at 400K has 03c instead of 04c -print('Assigning new cross section identifiers...') -wrong_nuclides = ['Mn55', 'Mo95', 'Nb93', 'Pd105', 'Pu239', 'Pu240', 'U235', - 'U238', 'Y89'] -for nuc in wrong_nuclides: - path = os.path.join('jeff-3.2', 'ACEs_400K', nuc + '.ACE') - print(' Fixing {} (03c --> 04c)...'.format(path)) - if os.path.isfile(path): - text = open(path, 'r').read() - text = text[:7] + '04c' + text[10:] - open(path, 'w').write(text) - # ============================================================================== # CHANGE ZAID FOR METASTABLES @@ -158,50 +137,90 @@ for path in metastables: open(path, 'w').write(text) # ============================================================================== -# CHANGE IDENTIFIER FOR S(A,B) TABLES +# GENERATE HDF5 LIBRARY -- NEUTRON FILES -thermals = glob.glob(os.path.join('jeff-3.2', 'ANNEX_6_3_STLs', '**', '*.ace')) -for path in thermals: - print(' Fixing {} (unique suffix)...'.format(path)) - basename = os.path.basename(path) - temperature = int(basename.split('-')[1][:-4]) - text = open(path, 'r').read() - text = text[:7] + thermal_suffix[temperature] + text[10:] - open(path, 'w').write(text) +# Get a list of all ACE files +neutron_files = glob.glob(os.path.join('jeff-3.2', '*', '*.ACE')) + +# Group together tables for same nuclide +tables = defaultdict(list) +for filename in sorted(neutron_files): + dirname, basename = os.path.split(filename) + name = basename.split('.')[0] + tables[name].append(filename) + +# Sort temperatures from lowest to highest +for name, filenames in sorted(tables.items()): + filenames.sort(key=lambda x: int( + x.split(os.path.sep)[1].split('_')[1][:-1])) + +# Create output directory if it doesn't exist +if not os.path.isdir(args.destination): + os.mkdir(args.destination) + +library = openmc.data.DataLibrary() + +for name, filenames in sorted(tables.items()): + # Convert first temperature for the table + print('Converting: ' + filenames[0]) + data = openmc.data.IncidentNeutron.from_ace(filenames[0]) + + # For each higher temperature, add cross sections to the existing table + for filename in filenames[1:]: + print('Adding: ' + filename) + data.add_temperature_from_ace(filename) + + # Export HDF5 file + h5_file = os.path.join(args.destination, data.name + '.h5') + print('Writing {}...'.format(h5_file)) + data.export_to_hdf5(h5_file, 'w') + + # Register with library + library.register_file(h5_file) # ============================================================================== -# CONVERT TO BINARY TO SAVE DISK SPACE +# GENERATE HDF5 LIBRARY -- S(A,B) FILES -# get a list of all ACE files -ace_files = (glob.glob(os.path.join('jeff-3.2', '**', '*.ACE')) + - glob.glob(os.path.join('jeff-3.2', 'ANNEX_6_3_STLs', '**', '*.ace'))) +sab_files = glob.glob(os.path.join('jeff-3.2', 'ANNEX_6_3_STLs', '*', '*.ace')) -# Ask user to convert -if not args.batch: - response = askuser('Convert ACE files to binary? ([y]/n) ') -else: - response = 'y' +# Group together tables for same nuclide +tables = defaultdict(list) +for filename in sorted(sab_files): + dirname, basename = os.path.split(filename) + name = basename.split('-')[0] + tables[name].append(filename) -# Convert files if requested -if not response or response.lower().startswith('y'): - for f in ace_files: - print(' Converting {}...'.format(f)) - openmc.data.ace.ascii_to_binary(f, f) +# Sort temperatures from lowest to highest +for name, filenames in sorted(tables.items()): + filenames.sort(key=lambda x: int( + os.path.split(x)[1].split('-')[1].split('.')[0])) -# ============================================================================== -# PROMPT USER TO GENERATE HDF5 LIBRARY +for name, filenames in sorted(tables.items()): + # Convert first temperature for the table + print('Converting: ' + filenames[0]) -# Ask user to convert -if not args.batch: - response = askuser('Generate HDF5 library? ([y]/n) ') -else: - response = 'y' + # Take numbers out of table name, e.g. lw10.32t -> lw.32t + table = openmc.data.ace.get_table(filenames[0]) + name, xs = table.name.split('.') + table.name = '.'.join((name.strip(digits), xs)) + data = openmc.data.ThermalScattering.from_ace(table) -# Convert files if requested -if not response or response.lower().startswith('y'): - # Ensure 'import openmc.data' works in the openmc-ace-to-xml script - env = os.environ.copy() - env['PYTHONPATH'] = os.path.join(os.getcwd(), os.pardir) + # For each higher temperature, add cross sections to the existing table + for filename in filenames[1:]: + print('Adding: ' + filename) + table = openmc.data.ace.get_table(filename) + name, xs = table.name.split('.') + table.name = '.'.join((name.strip(digits), xs)) + data.add_temperature_from_ace(table) - subprocess.call(['../scripts/openmc-ace-to-hdf5', '-d', 'jeff-3.2-hdf5'] - + sorted(ace_files), env=env) + # Export HDF5 file + h5_file = os.path.join(args.destination, data.name + '.h5') + print('Writing {}...'.format(h5_file)) + data.export_to_hdf5(h5_file, 'w') + + # Register with library + library.register_file(h5_file, 'thermal') + +# Write cross_sections.xml +libpath = os.path.join(args.destination, 'cross_sections.xml') +library.export_to_xml(libpath) diff --git a/docs/source/usersguide/install.rst b/docs/source/usersguide/install.rst index 457c5efd8f..3dab08e9d3 100644 --- a/docs/source/usersguide/install.rst +++ b/docs/source/usersguide/install.rst @@ -383,14 +383,16 @@ Cross Section Configuration --------------------------- In order to run a simulation with OpenMC, you will need cross section data for -each nuclide or material in your problem. OpenMC can be run in -continuous-energy or multi-group mode. +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 continuous-energy mode, OpenMC uses a native HDF5 format to store all nuclear +data. If you have ACE format data that was produced with NJOY_, such as that +distributed with MCNP_ or Serpent_, it can be converted to the HDF5 format using +the :ref:`openmc-ace-to-hdf5 ` script distributed with +OpenMC. Several sources provide openly available ACE data as described +below. The TALYS-based evaluated nuclear data library, TENDL_, is also available +in ACE format. In multi-group mode, OpenMC utilizes an XML-based library format which can be used to describe nuclide- or material-specific quantities. @@ -400,8 +402,8 @@ Using ENDF/B-VII.1 Cross Sections from NNDC The NNDC_ provides ACE data from the ENDF/B-VII.1 neutron and thermal scattering sublibraries at four temperatures processed using NJOY_. To use this data with -OpenMC, a script is provided with OpenMC that will automatically download, -extract, and set up a confiuration file: +OpenMC, a script is provided with OpenMC that will automatically download and +extract the ACE data, fix any deficiencies, and create an HDF5 library: .. code-block:: sh @@ -410,56 +412,99 @@ extract, and set up a confiuration file: 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. +``openmc/data/nndc_hdf5/cross_sections.xml``. This cross section set is used by +the test suite. Using JEFF Cross Sections from OECD/NEA --------------------------------------- -The NEA_ provides processed ACE data from the JEFF_ nuclear library upon -request. A DVD of the data can be requested here_. To use this data with OpenMC, -the following steps must be taken: +The NEA_ provides processed ACE data from the JEFF_ library. To use this data +with OpenMC, a script is provided with OpenMC that will automatically download +and extract the ACE data, fix any deficiencies, and create an HDF5 library. -1. Copy and unzip the data on the DVD to a directory on your computer. -2. In the root directory, a file named ``xsdir``, or some variant thereof, - should be present. This file contains a listing of all the cross sections and - is used by MCNP. This file should be converted to a ``cross_sections.xml`` - file for use with OpenMC. A utility is provided in the OpenMC distribution - for this purpose: +.. code-block:: sh - .. code-block:: sh + cd openmc/data + python get_jeff_data.py - openmc/scripts/openmc-xsdir-to-xml xsdir31 cross_sections.xml - -3. In the converted ``cross_sections.xml`` file, change the contents of the - element to the absolute path of the directory containing the - actual ACE files. -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:`OPENMC_CROSS_SECTIONS` environment variable to the absolute path of - the ``cross_sections.xml`` file. +At this point, you should set the :envvar:`OPENMC_CROSS_SECTIONS` environment +variable to the absolute path of the file +``openmc/data/jeff-3.2-hdf5/cross_sections.xml``. 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:`OPENMC_CROSS_SECTIONS` environment variable to the absolute path of -the ``cross_sections.xml`` file. +OpenMC is provided with a script that will automatically convert ENDF/B-VII.0 +and ENDF/B-VII.1 ACE data that is provided with MCNP5 or MCNP6. To convert the +ENDF/B-VII.0 ACE files (``endf70[a-k]`` and ``endf70sab``) into the native HDF5 +format, run the following: -Using Cross Sections from Serpent ---------------------------------- +.. code-block:: sh + + cd openmc/data + python convert_mcnp_endf70.py /path/to/mcnpdata/ + +where ``/path/to/mcnpdata`` is the directory containing the ``endf70[a-k]`` +files. + +To convert the ENDF/B-VII.1 ACE files (the endf71x and ENDF71SaB libraries), use +the following script: + +.. code-block:: sh + + cd openmc/data + python convert_mcnp_endf71.py /path/to/mcnpdata + +where ``/path/to/mcnpdata`` is the directory containing the ``endf71x`` and +``ENDF71SaB`` directories. + +.. _other_cross_sections: + +Using Other Cross Sections +-------------------------- + +If you have a library of ACE format cross sections other than those listed above +that you need to convert to OpenMC's HDF5 format, the ``openmc-ace-to-hdf5`` +script can be used. There are four different ways you can specify ACE libraries +that are to be converted: + +1. List each ACE library as a positional argument. This is very useful in + conjunction with the usual shell utilities (ls, find, etc.). +2. Use the --xml option to specify a pre-v0.9 cross_sections.xml file. +3. Use the --xsdir option to specify a MCNP xsdir file. +4. Use the --xsdata option to specify a Serpent xsdata file. + +The script does not use any extra information from cross_sections.xml/ xsdir/ +xsdata files to determine whether the nuclide is metastable. Instead, the +--metastable argument can be used to specify whether the ZAID naming convention +follows the NNDC data convention (1000*Z + A + 300 + 100*m), or the MCNP data +convention (essentially the same as NNDC, except that the first metastable state +of Am242 is 95242 and the ground state is 95642). + +The ``openmc-ace-to-hdf5`` script has the following command-line flags: + +-h, --help show this help message and exit + +-d DESTINATION, --destination DESTINATION + Directory to create new library in (default: .) + +-m META, --metastable META + How to interpret ZAIDs for metastable nuclides. META + can be either 'nndc' or 'mcnp'. (default: nndc) + +--xml XML Old-style cross_sections.xml that lists ACE libraries + (default: None) + +--xsdir XSDIR MCNP xsdir file that lists ACE libraries (default: + None) + +--xsdata XSDATA Serpent xsdata file that lists ACE libraries (default: + None) + +--fission_energy_release FISSION_ENERGY_RELEASE + HDF5 file containing fission energy release data + (default: None) -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:`OPENMC_CROSS_SECTIONS` environment variable to the absolute path of -the ``cross_sections_serpent.xml`` -file. Using Multi-Group Cross Sections -------------------------------- @@ -471,14 +516,13 @@ However, if the user has obtained or generated their own library, the user 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 +.. _NJOY: http://t2.lanl.gov/nis/codes/NJOY12/ .. _NNDC: http://www.nndc.bnl.gov/endf/b7.1/acefiles.html .. _NEA: http://www.oecd-nea.org -.. _JEFF: http://www.oecd-nea.org/dbdata/jeff/ -.. _here: http://www.oecd-nea.org/dbdata/pubs/jeff312-cd.html +.. _JEFF: https://www.oecd-nea.org/dbforms/data/eva/evatapes/jeff_32/ .. _MCNP: http://mcnp.lanl.gov .. _Serpent: http://montecarlo.vtt.fi -.. _TENDL: ftp://ftp.nrg.eu/pub/www/talys/tendl2012/tendl2012.html +.. _TENDL: https://tendl.web.psi.ch/tendl_2015/tendl2015.html -------------- Running OpenMC diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index bbdb12dad2..64eac8317b 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -22,13 +22,13 @@ _THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27', 'bebeo': 'c_Be_in_BeO', 'be-o': 'c_Be_in_BeO', 'be/o': 'c_Be_in_BeO', 'benz': 'c_Benzine', 'cah': 'c_Ca_in_CaH2', - 'dd2o': 'c_D_in_D2O', 'hwtr': 'c_D_in_D2O', + 'dd2o': 'c_D_in_D2O', 'hwtr': 'c_D_in_D2O', 'hw': 'c_D_in_D2O', 'fe': 'c_Fe56', 'fe56': 'c_Fe56', - 'graph': 'c_Graphite', 'grph': 'c_Graphite', + 'graph': 'c_Graphite', 'grph': 'c_Graphite', 'gr': 'c_Graphite', 'hca': 'c_H_in_CaH2', - 'hch2': 'c_H_in_CH2', 'poly': 'c_H_in_CH2', - 'hh2o': 'c_H_in_H2O', 'lwtr': 'c_H_in_H2O', - 'hzrh': 'c_H_in_ZrH', 'h-zr': 'c_H_in_ZrH', 'h/zr': 'c_H_in_ZrH', + 'hch2': 'c_H_in_CH2', 'poly': 'c_H_in_CH2', 'pol': 'c_H_in_CH2', + 'hh2o': 'c_H_in_H2O', 'lwtr': 'c_H_in_H2O', 'lw': 'c_H_in_H2O', + 'hzrh': 'c_H_in_ZrH', 'h-zr': 'c_H_in_ZrH', 'h/zr': 'c_H_in_ZrH', 'hzr': 'c_H_in_ZrH', 'lch4': 'c_liquid_CH4', 'lmeth': 'c_liquid_CH4', 'mg': 'c_Mg24', 'obeo': 'c_O_in_BeO', 'o-be': 'c_O_in_BeO', 'o/be': 'c_O_in_BeO', @@ -411,8 +411,8 @@ class ThermalScattering(EqualityMixin): else: raise ValueError('Data provided for an incorrect library') else: - raise Warning('Temperature data set already within ' - 'IncidentNeutron object') + warn('{} already has data for T={:.1f} K'.format( + self.name, ace.temperature / K_BOLTZMANN)) @classmethod def from_hdf5(cls, group_or_filename): From 3a021a2438788bf9dd67ce0144d75a80e8a346ae Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 20 Sep 2016 11:35:29 -0500 Subject: [PATCH 406/417] When adding temperature data, give warning instead of error if MT not present. --- openmc/data/neutron.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 2431ba74af..c638dfd9bd 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -320,11 +320,11 @@ class IncidentNeutron(EqualityMixin): # Add normal and summed reactions for mt in chain(data.reactions, data.summed_reactions): - if mt not in self: - raise ValueError("Tried to add cross sections for MT={} at T={}" - " but this reaction doesn't exist.".format( - mt, strT)) - self[mt].xs[strT] = data[mt].xs[strT] + if mt in self: + self[mt].xs[strT] = data[mt].xs[strT] + else: + warn("Tried to add cross sections for MT={} at T={} but this " + "reaction doesn't exist.".format(mt, strT)) # Add probability tables if strT in data.urr: From b6a866f7b78caf2007a9bb864732983ddb29a7c5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 20 Sep 2016 12:01:50 -0500 Subject: [PATCH 407/417] Refactor ThermalScattering.add_temperature_from_ace() to use from_ace() --- openmc/data/thermal.py | 162 ++++++++--------------------------------- 1 file changed, 29 insertions(+), 133 deletions(-) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index 64eac8317b..90aaa1e6e4 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -191,8 +191,6 @@ class ThermalScattering(EqualityMixin): self.name = name self.atomic_weight_ratio = atomic_weight_ratio self.kTs = kTs - self.temperatures = [str(int(round(kT / K_BOLTZMANN))) + "K" - for kT in kTs] self.elastic_xs = {} self.elastic_mu_out = {} self.inelastic_xs = {} @@ -208,6 +206,10 @@ class ThermalScattering(EqualityMixin): else: return "" + @property + def temperatures(self): + return ["{}K".format(int(round(kT / K_BOLTZMANN))) for kT in self.kTs] + def export_to_hdf5(self, path, mode='a'): """Export table to an HDF5 file. @@ -277,142 +279,36 @@ class ThermalScattering(EqualityMixin): Thermal scattering data """ - if isinstance(ace_or_filename, Table): - ace = ace_or_filename - else: - ace = get_table(ace_or_filename) + data = ThermalScattering.from_ace(ace_or_filename, name) - # Get new name that is GND-consistent - ace_name, xs = ace.name.split('.') - if name is None: - if ace_name.lower() in _THERMAL_NAMES: - name = _THERMAL_NAMES[ace_name.lower()] - else: - # Make an educated guess? This actually works well for JEFF-3.2 - # which stupidly uses names like lw00.32t, lw01.32t, etc. for - # different temperatures - matches = get_close_matches( - ace_name.lower(), _THERMAL_NAMES.keys(), cutoff=0.5) - if len(matches) > 0: - name = _THERMAL_NAMES[matches[0]] - else: - # OK, we give up. Just use the ACE name. - name = 'c_' + ace.name - warn('Thermal scattering material "{}" is not recognized. ' - 'Assigning a name of {}.'.format(ace.name, name)) + # Check if temprature already exists + strT = data.temperatures[0] + if strT in self.temperatures: + warn('S(a,b) data at T={} already exists.'.format(strT)) + return - # If this ACE data matches the data within self then get the data - if ace.temperature not in self.kTs: - if name == self.name: - # Add temperature and kTs - strT = str(int(round(ace.temperature / K_BOLTZMANN))) + "K" - self.temperatures.append(strT) - self.kTs.append(ace.temperature) + # Check that name matches + if data.name != self.name: + raise ValueError('Data provided for an incorrect material.') - # Incoherent inelastic scattering cross section - idx = ace.jxs[1] - n_energy = int(ace.xss[idx]) - energy = ace.xss[idx + 1: idx + 1 + n_energy] - xs = ace.xss[idx + 1 + n_energy: idx + 1 + 2 * n_energy] - self.inelastic_xs[strT] = Tabulated1D(energy, xs) + # Add temperature + self.kTs += data.kTs - # Make sure secondary_mode is always equal. This should always - # be the case, but to reduce future debugging should something - # change, this will alert the developers to the issue. - if ace.nxs[7] == 0: - secondary_mode = 'equal' - elif ace.nxs[7] == 1: - secondary_mode = 'skewed' - elif ace.nxs[7] == 2: - secondary_mode = 'continuous' + # Add inelastic cross section and distributions + if strT in data.inelastic_xs: + self.inelastic_xs[strT] = data.inelastic_xs[strT] + if strT in data.inelastic_e_out: + self.inelastic_e_out[strT] = data.inelastic_e_out[strT] + if strT in data.inelastic_mu_out: + self.inelastic_mu_out[strT] = data.inelastic_mu_out[strT] + if strT in data.inelastic_dist: + self.inelastic_dist[strT] = data.inelastic_dist[strT] - if secondary_mode != self.secondary_mode: - raise ValueError('Secondary Modes are inconsistent.') - - n_energy_out = ace.nxs[4] - if self.secondary_mode in ('equal', 'skewed'): - n_mu = ace.nxs[3] - idx = ace.jxs[3] - self.inelastic_e_out[strT] = \ - ace.xss[idx:idx + n_energy * n_energy_out * (n_mu + 2): - n_mu + 2] - self.inelastic_e_out[strT].shape = \ - (n_energy, n_energy_out) - - self.inelastic_mu_out[strT] = \ - ace.xss[idx:idx + n_energy * n_energy_out * (n_mu + 2)] - self.inelastic_mu_out[strT].shape = \ - (n_energy, n_energy_out, n_mu + 2) - self.inelastic_mu_out[strT] = \ - self.inelastic_mu_out[strT][:, :, 1:] - else: - n_mu = ace.nxs[3] - 1 - idx = ace.jxs[3] - locc = ace.xss[idx:idx + n_energy].astype(int) - n_energy_out = \ - ace.xss[idx + n_energy:idx + 2 * n_energy].astype(int) - energy_out = [] - mu_out = [] - for i in range(n_energy): - idx = locc[i] - - # Outgoing energy distribution for incoming energy i - e = ace.xss[idx + 1:idx + 1 + n_energy_out[i]*(n_mu + 3): - n_mu + 3] - p = ace.xss[idx + 2:idx + 2 + n_energy_out[i]*(n_mu + 3): - n_mu + 3] - c = ace.xss[idx + 3:idx + 3 + n_energy_out[i]*(n_mu + 3): - n_mu + 3] - eout_i = Tabular(e, p, 'linear-linear', ignore_negative=True) - eout_i.c = c - - # Outgoing angle distribution for each - # (incoming, outgoing) energy pair - mu_i = [] - for j in range(n_energy_out[i]): - mu = ace.xss[idx + 4:idx + 4 + n_mu] - p_mu = 1. / n_mu * np.ones(n_mu) - mu_ij = Discrete(mu, p_mu) - mu_ij.c = np.cumsum(p_mu) - mu_i.append(mu_ij) - idx += 3 + n_mu - - energy_out.append(eout_i) - mu_out.append(mu_i) - - # Create correlated angle-energy distribution - breakpoints = [n_energy] - interpolation = [2] - energy = self.inelastic_xs[strT].x - self.inelastic_dist[strT] = CorrelatedAngleEnergy( - breakpoints, interpolation, energy, energy_out, mu_out) - - # Incoherent/coherent elastic scattering cross section - idx = ace.jxs[4] - if idx != 0: - n_energy = int(ace.xss[idx]) - energy = ace.xss[idx + 1: idx + 1 + n_energy] - P = ace.xss[idx + 1 + n_energy: idx + 1 + 2 * n_energy] - - if ace.nxs[5] == 4: - self.elastic_xs[strT] = CoherentElastic(energy, P) - else: - self.elastic_xs[strT] = Tabulated1D(energy, P) - - # Angular distribution - n_mu = ace.nxs[6] - if n_mu != -1: - idx = ace.jxs[6] - self.elastic_mu_out[strT] = \ - ace.xss[idx:idx + n_energy * n_mu] - self.elastic_mu_out[strT].shape = \ - (n_energy, n_mu) - - else: - raise ValueError('Data provided for an incorrect library') - else: - warn('{} already has data for T={:.1f} K'.format( - self.name, ace.temperature / K_BOLTZMANN)) + # Add elastic cross sectoin and angular distribution + if strT in data.elastic_xs: + self.elastic_xs[strT] = data.elastic_xs[strT] + if strT in data.elastic_mu_out: + self.elastic_mu_out[strT] = data.elastic_mu_out[strT] @classmethod def from_hdf5(cls, group_or_filename): From 7528eabeafc044c45a6b8df222a0a941a934dc68 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 22 Sep 2016 11:42:33 -0500 Subject: [PATCH 408/417] Fix bug in nuclide density retrieval from volume calculation --- openmc/cell.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index fe8b4a52cd..e8b9033a96 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -427,9 +427,8 @@ class Cell(object): else: if self.volume_information is not None: volume = self.volume_information['volume'][0] - for full_name, atoms in self.volume_information['atoms']: - name, xs = full_name.split('.') - nuclide = openmc.Nuclide(name, xs) + for name, atoms in self.volume_information['atoms']: + nuclide = openmc.Nuclide(name) density = 1.0e-24 * atoms[0]/volume # density in atoms/b-cm nuclides[name] = (nuclide, density) else: From a0c1496a11c59fc96765386500062ee2a637db4b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 22 Sep 2016 21:50:26 -0500 Subject: [PATCH 409/417] Fix glob for S(a,b) tables. Thanks @smharper. --- data/convert_mcnp_71.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/convert_mcnp_71.py b/data/convert_mcnp_71.py index 40da200d31..c4b4d42004 100755 --- a/data/convert_mcnp_71.py +++ b/data/convert_mcnp_71.py @@ -21,7 +21,7 @@ assert os.path.isdir(args.mcnpdata) # Get a list of all ACE files endf71x = glob.glob(os.path.join(args.mcnpdata, 'endf71x', '*', '*.71?nc')) -endf71sab = glob.glob(os.path.join(args.mcnpdata, 'ENDF71SaB' , 'lwtr*.2?t')) +endf71sab = glob.glob(os.path.join(args.mcnpdata, 'ENDF71SaB' , '*.2?t')) # There's a bug in H-Zr at 1200 K endf71sab.remove(os.path.join(args.mcnpdata, 'ENDF71SaB' , 'h-zr.27t')) From e8aa4f2f10043428c36b28203e126b5a22df39b0 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 22 Sep 2016 22:52:16 -0400 Subject: [PATCH 410/417] Remove unnecessary tally data from summary.h5 --- docs/source/io_formats/summary.rst | 97 +++------------------ openmc/cell.py | 14 +++ openmc/statepoint.py | 16 +--- openmc/summary.py | 65 +++----------- src/constants.F90 | 2 +- src/summary.F90 | 131 ++++++----------------------- src/tally_filter.F90 | 31 ------- src/tally_filter_header.F90 | 13 --- 8 files changed, 65 insertions(+), 304 deletions(-) diff --git a/docs/source/io_formats/summary.rst b/docs/source/io_formats/summary.rst index 8af4f2398a..c3d078eba4 100644 --- a/docs/source/io_formats/summary.rst +++ b/docs/source/io_formats/summary.rst @@ -4,7 +4,7 @@ Summary File Format =================== -The current revision of the summary file format is 1. +The current revision of the summary file format is 4. **/filetype** (*char[]*) @@ -129,7 +129,16 @@ The current revision of the summary file format is 1. **/geometry/cells/cell /distribcell_index** (*int*) - Index of this cell in distribcell filter arrays. + Index of this cell in distribcell arrays. Only present if this cell is + listed in a distribcell filter or if it uses distributed materials. + +**/geometry/cells/cell /distribcell_index** (*char[][]*) + + The paths traversed through the CSG tree to reach each distribcell + instance. 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. Only present if this cell is listed in a distribcell filter + or if it uses distributed materials. **/geometry/surfaces/surface /index** (*int*) @@ -244,90 +253,6 @@ The current revision of the summary file format is 1. Names of S(:math:`\alpha`,:math:`\beta`) tables assigned to the material. -**/tallies/n_tallies** (*int*) - - Number of tallies in the problem. - -**/tallies/n_meshes** (*int*) - - Number of meshes in the problem. - -**/tallies/mesh /index** (*int*) - - Index in the meshes array used internally in OpenMC. - -**/tallies/mesh /type** (*char[]*) - - Type of the mesh. The only valid option is currently 'regular'. - -**/tallies/mesh /dimension** (*int[]*) - - Number of mesh cells in each direction. - -**/tallies/mesh /lower_left** (*double[]*) - - Coordinates of the lower-left corner of the mesh. - -**/tallies/mesh /upper_right** (*double[]*) - - Coordinates of the upper-right corner of the mesh. - -**/tallies/mesh /width** (*double[]*) - - Width of a single mesh cell in each direction. - -**/tallies/tally /index** (*int*) - - Index in tallies array used internally in OpenMC. - **/tallies/tally /name** (*char[]*) Name of the tally. - -**/tallies/tally /n_filters** (*int*) - - Number of filters applied to the tally. - -**/tallies/tally /filter /type** (*char[]*) - - Type of the j-th filter. Can be 'universe', 'material', 'cell', 'cellborn', - 'surface', 'mesh', 'energy', 'energyout', or 'distribcell'. - -**/tallies/tally /filter /offset** (*int*) - - 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. - -**/tallies/tally /filter /bins** (*int[]* or *double[]*) - - Value for each filter bin of this type. - -**/tallies/tally /nuclides** (*char[][]*) - - Array of nuclides to tally. Note that if no nuclide is specified in the user - input, a single 'total' nuclide appears here. - -**/tallies/tally /n_score_bins** (*int*) - - Number of scoring bins for a single nuclide. In general, this can be greater - than the number of user-specified scores since each score might have - multiple scoring bins, e.g., scatter-PN. - -**/tallies/tally /moment_orders** (*char[][]*) - - Tallying moment orders for Legendre and spherical harmonic tally expansions - (*e.g.*, 'P2', 'Y1,2', etc.). - -**/tallies/tally /score_bins** (*char[][]*) - - Scoring bins for the tally. diff --git a/openmc/cell.py b/openmc/cell.py index fe8b4a52cd..fad6d2d7e2 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -85,6 +85,9 @@ class Cell(object): Array of offsets used for distributed cell searches distribcell_index : int Index of this cell in distribcell arrays + distribcell_paths : list of str + The paths traversed through the CSG tree to reach each distribcell + instance volume_information : dict Estimate of the volume and total number of atoms of each nuclide from a stochastic volume calculation. This information is set with the @@ -104,6 +107,7 @@ class Cell(object): self._translation = None self._offsets = None self._distribcell_index = None + self._distribcell_paths = None self._volume_information = None def __contains__(self, point): @@ -217,6 +221,10 @@ class Cell(object): def distribcell_index(self): return self._distribcell_index + @property + def distribcell_paths(self): + return self._distribcell_paths + @property def volume_information(self): return self._volume_information @@ -316,6 +324,12 @@ class Cell(object): cv.check_type('distribcell index', ind, Integral) self._distribcell_index = ind + @distribcell_paths.setter + def distribcell_paths(self, distribcell_paths): + cv.check_iterable_type('distribcell_paths', distribcell_paths, + basestring) + self._distribcell_paths = distribcell_paths + def add_surface(self, surface, halfspace): """Add a half-space to the list of half-spaces whose intersection defines the cell. diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 01154b33d9..8f18580501 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -691,19 +691,10 @@ class StatePoint(object): raise ValueError(msg) for tally_id, tally in self.tallies.items(): - summary_tally = summary.tallies[tally_id] - tally.name = summary_tally.name + tally.name = summary.tally_names[tally_id] 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: - surface_ids.append(bin) - tally_filter.bins = surface_ids - if tally_filter.type in ['cell', 'distribcell']: distribcell_ids = [] for bin in tally_filter.bins: @@ -711,8 +702,9 @@ class StatePoint(object): tally_filter.bins = distribcell_ids if tally_filter.type == 'distribcell': - tally_filter.distribcell_paths = \ - summary_filter.distribcell_paths + cell_id = tally_filter.bins[0] + cell = summary.get_cell_by_id(cell_id) + tally_filter.distribcell_paths = cell.distribcell_paths if tally_filter.type == 'universe': universe_ids = [] diff --git a/openmc/summary.py b/openmc/summary.py index 38c0e335c7..fd1689eb28 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -297,10 +297,13 @@ class Summary(object): cell.region = Region.from_expression( region, {s.id: s for s in self.surfaces.values()}) - # Get the distribcell index - ind = self._f['geometry/cells'][key]['distribcell_index'].value - if ind != 0: + # Get the distribcell data + if 'distribcell_index' in self._f['geometry/cells'][key]: + ind = self._f['geometry/cells'][key]['distribcell_index'].value cell.distribcell_index = ind + paths = self._f['geometry/cells'][key]['paths'][...] + paths = [str(path.decode()) for path in paths] + cell.distribcell_paths = paths # Add the Cell to the global dictionary of all Cells self.cells[index] = cell @@ -520,18 +523,15 @@ class Summary(object): self.openmc_geometry.root_universe = root_universe def _read_tallies(self): - # Initialize dictionaries for the Tallies + # Initialize a dictionary for the tally names # Keys - Tally IDs - # Values - Tally objects - self.tallies = {} + # Values - Tally names + self.tally_names = {} # Read the number of tallies if 'tallies' not in self._f: - self.n_tallies = 0 return - self.n_tallies = self._f['tallies/n_tallies'].value - # OpenMC Tally keys all_keys = self._f['tallies/'].keys() tally_keys = [key for key in all_keys if 'tally' in key] @@ -545,52 +545,7 @@ class Summary(object): # Read Tally name metadata tally_name = self._f['{0}/name'.format(subbase)].value.decode() - - # Create Tally object and assign basic properties - tally = openmc.Tally(tally_id, tally_name) - - # Read scattering moment order strings (e.g., P3, Y1,2, etc.) - moments = self._f['{0}/moment_orders'.format(subbase)].value - - # Read score metadata - scores = self._f['{0}/score_bins'.format(subbase)].value - for j, score in enumerate(scores): - score = score.decode() - - # If this is a moment, use generic moment order - pattern = r'-n$|-pn$|-yn$' - score = re.sub(pattern, '-' + moments[j].decode(), score) - tally.scores.append(score) - - # Read filter metadata - num_filters = self._f['{0}/n_filters'.format(subbase)].value - - # Initialize all Filters - for j in range(1, num_filters+1): - subsubbase = '{0}/filter {1}'.format(subbase, j) - - # Read filter type (e.g., "cell", "energy", etc.) - filter_type = self._f['{0}/type'.format(subsubbase)].value.decode() - - # Read the filter bins - num_bins = self._f['{0}/n_bins'.format(subsubbase)].value - bins = self._f['{0}/bins'.format(subsubbase)][...] - - # Create Filter object - new_filter = openmc.Filter(filter_type, bins) - new_filter.num_bins = num_bins - - # Read in distribcell paths - if filter_type == 'distribcell': - paths = self._f['{0}/paths'.format(subsubbase)][...] - paths = [str(path.decode()) for path in paths] - new_filter.distribcell_paths = paths - - # Add Filter to the Tally - tally.filters.append(new_filter) - - # Add Tally to the global dictionary of all Tallies - self.tallies[tally_id] = tally + self.tally_names[tally_id] = tally_name def add_volume_information(self, volume_calc): """Add volume information to the geometry within the summary file diff --git a/src/constants.F90 b/src/constants.F90 index c877472c21..cc0d663ea3 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -14,7 +14,7 @@ module constants integer, parameter :: REVISION_STATEPOINT = 15 integer, parameter :: REVISION_PARTICLE_RESTART = 1 integer, parameter :: REVISION_TRACK = 1 - integer, parameter :: REVISION_SUMMARY = 3 + integer, parameter :: REVISION_SUMMARY = 4 character(10), parameter :: MULTIPOLE_VERSION = "v0.2" ! ============================================================================ diff --git a/src/summary.F90 b/src/summary.F90 index cc0c517588..97abeb2063 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -2,8 +2,8 @@ module summary use constants use endf, only: reaction_name - use geometry_header, only: Cell, Universe, Lattice, RectLattice, & - &HexLattice + use geometry_header, only: BASE_UNIVERSE, Cell, Universe, Lattice, & + RectLattice, HexLattice use global use hdf5_interface use material_header, only: Material @@ -13,6 +13,7 @@ module summary use surface_header use string, only: to_str use tally_header, only: TallyObject + use tally_filter, only: find_offset use hdf5 @@ -150,7 +151,7 @@ contains subroutine write_geometry(file_id) integer(HID_T), intent(in) :: file_id - integer :: i, j, k, m + integer :: i, j, k, m, offset integer, allocatable :: lattice_universes(:,:,:) integer, allocatable :: cell_materials(:) real(8), allocatable :: cell_temperatures(:) @@ -161,6 +162,8 @@ contains integer(HID_T) :: lattices_group, lattice_group real(8), allocatable :: coeffs(:) character(REGION_SPEC_LEN) :: region_spec + character(MAX_LINE_LEN), allocatable :: paths(:) + character(MAX_LINE_LEN) :: path type(Cell), pointer :: c class(Surface), pointer :: s type(Universe), pointer :: u @@ -266,7 +269,21 @@ contains end do call write_dataset(cell_group, "region", adjustl(region_spec)) - call write_dataset(cell_group, "distribcell_index", c % distribcell_index) + ! Write distribcell data + if (c % distribcell_index /= NONE) then + call write_dataset(cell_group, "distribcell_index", & + c % distribcell_index) + + allocate(paths(c % instances)) + do k = 1, c % instances + path = '' + offset = 1 + call find_offset(i, universes(BASE_UNIVERSE), k, offset, path) + paths(k) = path + end do + call write_dataset(cell_group, "paths", paths) + deallocate(paths) + end if call close_group(cell_group) end do CELL_LOOP @@ -566,119 +583,21 @@ contains subroutine write_tallies(file_id) integer(HID_T), intent(in) :: file_id - integer :: i, j, k - integer :: n_order ! loop index for moment orders - integer :: nm_order ! loop index for Ynm moment orders + integer :: i integer(HID_T) :: tallies_group - integer(HID_T) :: mesh_group integer(HID_T) :: tally_group - integer(HID_T) :: filter_group - character(20), allocatable :: str_array(:) - type(RegularMesh), pointer :: m type(TallyObject), pointer :: t tallies_group = create_group(file_id, "tallies") - ! Write total number of meshes - call write_dataset(tallies_group, "n_meshes", n_meshes) - - ! Write information for meshes - MESH_LOOP: do i = 1, n_meshes - m => meshes(i) - mesh_group = create_group(tallies_group, "mesh " // trim(to_str(m%id))) - - ! Write internal OpenMC index for this mesh - call write_dataset(mesh_group, "index", i) - - ! Write type and number of dimensions - call write_dataset(mesh_group, "type", "regular") - - ! Write mesh information - call write_dataset(mesh_group, "dimension", m%dimension) - call write_dataset(mesh_group, "lower_left", m%lower_left) - call write_dataset(mesh_group, "upper_right", m%upper_right) - call write_dataset(mesh_group, "width", m%width) - - call close_group(mesh_group) - end do MESH_LOOP - - ! Write number of tallies - call write_dataset(tallies_group, "n_tallies", n_tallies) - TALLY_METADATA: do i = 1, n_tallies ! Get pointer to tally t => tallies(i) - tally_group = create_group(tallies_group, "tally " // trim(to_str(t%id))) - - ! Write internal OpenMC index for this tally - call write_dataset(tally_group, "index", i) + tally_group = create_group(tallies_group, "tally " & + // trim(to_str(t % id))) ! Write the name for this tally - call write_dataset(tally_group, "name", t%name) - - ! Write number of filters - call write_dataset(tally_group, "n_filters", size(t % filters)) - - FILTER_LOOP: do j = 1, size(t % filters) - filter_group = create_group(tally_group, "filter " // trim(to_str(j))) - call t % filters(j) % obj % to_summary(filter_group) - call close_group(filter_group) - end do FILTER_LOOP - - ! Create temporary array for nuclide bins - allocate(str_array(t%n_nuclide_bins)) - NUCLIDE_LOOP: do j = 1, t%n_nuclide_bins - if (t%nuclide_bins(j) > 0) then - str_array(j) = nuclides(t % nuclide_bins(j)) % name - else - str_array(j) = 'total' - end if - end do NUCLIDE_LOOP - - ! Write and deallocate nuclide bins - call write_dataset(tally_group, "nuclides", str_array) - deallocate(str_array) - - ! Write number of score bins - call write_dataset(tally_group, "n_score_bins", t%n_score_bins) - allocate(str_array(size(t%score_bins))) - do j = 1, size(t%score_bins) - str_array(j) = reaction_name(t%score_bins(j)) - end do - call write_dataset(tally_group, "score_bins", str_array) - - deallocate(str_array) - - ! Write explicit moment order strings for each score bin - k = 1 - allocate(str_array(t%n_score_bins)) - MOMENT_LOOP: do j = 1, t%n_user_score_bins - select case(t%score_bins(k)) - case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) - str_array(k) = 'P' // trim(to_str(t%moment_order(k))) - k = k + 1 - case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN) - do n_order = 0, t%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, t%moment_order(k) - do nm_order = -n_order, n_order - str_array(k) = 'Y' // trim(to_str(n_order)) // ',' // & - trim(to_str(nm_order)) - k = k + 1 - end do - end do - case default - str_array(k) = '' - k = k + 1 - end select - end do MOMENT_LOOP - - call write_dataset(tally_group, "moment_orders", str_array) - deallocate(str_array) + call write_dataset(tally_group, "name", t % name) call close_group(tally_group) end do TALLY_METADATA diff --git a/src/tally_filter.F90 b/src/tally_filter.F90 index 51b93ac4cf..f151203468 100644 --- a/src/tally_filter.F90 +++ b/src/tally_filter.F90 @@ -80,7 +80,6 @@ module tally_filter contains procedure :: get_next_bin => get_next_bin_distribcell procedure :: to_statepoint => to_statepoint_distribcell - procedure :: to_summary => to_summary_distribcell procedure :: text_label => text_label_distribcell procedure :: initialize => initialize_distribcell end type DistribcellFilter @@ -714,36 +713,6 @@ contains call write_dataset(filter_group, "bins", this % cell ) end subroutine to_statepoint_distribcell - subroutine to_summary_distribcell(this, filter_group) - class(DistribcellFilter), intent(in) :: this - integer(HID_T), intent(in) :: filter_group - - integer :: offset, k - character(MAX_LINE_LEN), allocatable :: paths(:) - character(MAX_LINE_LEN) :: path - - call write_dataset(filter_group, "type", "distribcell") - call write_dataset(filter_group, "n_bins", this % n_bins) - call write_dataset(filter_group, "bins", this % cell ) - - ! Write paths to reach each distribcell instance - - ! Allocate array of strings for each distribcell path - allocate(paths(this % n_bins)) - - ! Store path for each distribcell instance - do k = 1, this % n_bins - path = '' - offset = 1 - call find_offset(this % cell, 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) - end subroutine to_summary_distribcell - subroutine initialize_distribcell(this) class(DistribcellFilter), intent(inout) :: this diff --git a/src/tally_filter_header.F90 b/src/tally_filter_header.F90 index 43ef846e3e..8541cd3340 100644 --- a/src/tally_filter_header.F90 +++ b/src/tally_filter_header.F90 @@ -18,7 +18,6 @@ module tally_filter_header contains procedure(get_next_bin_), deferred :: get_next_bin procedure(to_statepoint_), deferred :: to_statepoint - procedure :: to_summary => filter_to_summary procedure(text_label_), deferred :: text_label procedure :: initialize => filter_initialize end type TallyFilter @@ -82,18 +81,6 @@ module tally_filter_header contains -!=============================================================================== -! TO_SUMMARY writes all the information needed to reconstruct the filter to the -! given filter_group. If this procedure is not overridden by the derived class, -! then it will call to_statepoint by default. - - subroutine filter_to_summary(this, filter_group) - class(TallyFilter), intent(in) :: this - integer(HID_T), intent(in) :: filter_group - - call this % to_statepoint(filter_group) - end subroutine filter_to_summary - !=============================================================================== ! INITIALIZE sets up any internal data, as necessary. If this procedure is not ! overriden by the derived class, then it will do nothing by default. From 2f639aa258fbb41422e7cc601ae2dde327eb5b9e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 22 Sep 2016 22:33:12 -0500 Subject: [PATCH 411/417] Fix call to FissionEnergyRelease.from_compact_hdf5() --- data/convert_mcnp_71.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/convert_mcnp_71.py b/data/convert_mcnp_71.py index c4b4d42004..7e7fd923f1 100755 --- a/data/convert_mcnp_71.py +++ b/data/convert_mcnp_71.py @@ -51,7 +51,7 @@ for basename, xs_list in sorted(suffixes.items()): # Add fission energy release data, if available if args.fission_energy_release is not None: fer = openmc.data.FissionEnergyRelease.from_compact_hdf5( - args.fission_energy_release, neutron) + args.fission_energy_release, data) if fer is not None: data.fission_energy = fer From fbcb15f8c5468d0ab07ddab98b02de0b04561467 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 23 Sep 2016 06:26:33 -0500 Subject: [PATCH 412/417] Simplify usage of DataLibrary.register_file() --- data/convert_mcnp_70.py | 2 +- data/get_jeff_data.py | 2 +- docs/source/pythonapi/index.rst | 1 + openmc/data/library.py | 32 +++++++++++++++++++++++++++++++- openmc/geometry.py | 8 ++++++-- openmc/material.py | 7 ++++++- openmc/plots.py | 8 ++++++-- openmc/settings.py | 10 +++++++--- scripts/openmc-ace-to-hdf5 | 2 +- 9 files changed, 60 insertions(+), 12 deletions(-) diff --git a/data/convert_mcnp_70.py b/data/convert_mcnp_70.py index 6a6e2d61c4..e68bd848e1 100755 --- a/data/convert_mcnp_70.py +++ b/data/convert_mcnp_70.py @@ -81,7 +81,7 @@ if os.path.exists(endf70sab): data.export_to_hdf5(h5_file, 'w') # Register with library - library.register_file(h5_file, 'thermal') + library.register_file(h5_file) # Write cross_sections.xml libpath = os.path.join(args.destination, 'cross_sections.xml') diff --git a/data/get_jeff_data.py b/data/get_jeff_data.py index 5595e0683d..d0e5839b93 100755 --- a/data/get_jeff_data.py +++ b/data/get_jeff_data.py @@ -219,7 +219,7 @@ for name, filenames in sorted(tables.items()): data.export_to_hdf5(h5_file, 'w') # Register with library - library.register_file(h5_file, 'thermal') + library.register_file(h5_file) # Write cross_sections.xml libpath = os.path.join(args.destination, 'cross_sections.xml') diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index d8eb5200a7..16c90bcbc4 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -366,6 +366,7 @@ Core Classes openmc.data.ThermalScattering openmc.data.CoherentElastic openmc.data.FissionEnergyRelease + openmc.data.DataLibrary Angle-Energy Distributions -------------------------- diff --git a/openmc/data/library.py b/openmc/data/library.py index 49d1c78f61..0485af0641 100644 --- a/openmc/data/library.py +++ b/openmc/data/library.py @@ -8,20 +8,50 @@ from openmc.clean_xml import clean_xml_indentation class DataLibrary(EqualityMixin): + """Collection of cross section data libraries. + + Attributes + ---------- + libraries : list of dict + List in which each item is a dictionary summarizing cross section data + from a single file. The dictionary has keys 'path', 'type', and + 'materials'. + + """ + def __init__(self): self.libraries = [] - def register_file(self, filename, filetype='neutron'): + def register_file(self, filename): + """Register a file with the data library. + + Parameters + ---------- + filename : str + Path to the file to be registered. + + """ h5file = h5py.File(filename, 'r') materials = [] + filetype = 'neutron' for name in h5file: + if name.startswith('c_'): + filetype = 'thermal' materials.append(name) library = {'path': filename, 'type': filetype, 'materials': materials} self.libraries.append(library) def export_to_xml(self, path='cross_sections.xml'): + """Export cross section data library to an XML file. + + Parameters + ---------- + path : str + Path to file to write. Defaults to 'cross_sections.xml'. + + """ root = ET.Element('cross_sections') # Determine common directory for library paths diff --git a/openmc/geometry.py b/openmc/geometry.py index 6d9330dc6e..4d822cc8ec 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -65,10 +65,14 @@ class Geometry(object): cell.add_volume_information(volume_calc) def export_to_xml(self, path='geometry.xml'): - """Create a geometry.xml file that can be used for a simulation. + """Export geometry to an XML file. + + Parameters + ---------- + path : str + Path to file to write. Defaults to 'geometry.xml'. """ - # Clear OpenMC written IDs used to optimize XML generation openmc.universe.WRITTEN_IDS = {} diff --git a/openmc/material.py b/openmc/material.py index 2861d5be6b..0639db5629 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -812,7 +812,12 @@ class Materials(cv.CheckedList): self._materials_file.append(xml_element) def export_to_xml(self, path='materials.xml'): - """Create a materials.xml file that can be used for a simulation. + """Export material collection to an XML file. + + Parameters + ---------- + path : str + Path to file to write. Defaults to 'materials.xml'. """ diff --git a/openmc/plots.py b/openmc/plots.py index f5c1f2b2ab..6915604a3c 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -617,10 +617,14 @@ class Plots(cv.CheckedList): self._plots_file.append(xml_element) def export_to_xml(self, path='plots.xml'): - """Create a plots.xml file that can be used by OpenMC. + """Export plot specifications to an XML file. + + Parameters + ---------- + path : str + Path to file to write. Defaults to 'plots.xml'. """ - # Reset xml element tree self._plots_file.clear() diff --git a/openmc/settings.py b/openmc/settings.py index 15898a2b8c..f255a8bb10 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -15,8 +15,7 @@ if sys.version_info[0] >= 3: class Settings(object): - """Settings file used for an OpenMC simulation. Corresponds directly to the - settings.xml input file. + """Settings used for an OpenMC simulation. Attributes ---------- @@ -1119,7 +1118,12 @@ class Settings(object): elem.append(r.to_xml_element()) def export_to_xml(self, path='settings.xml'): - """Create a settings.xml file that can be used for a simulation. + """Export simulation settings to an XML file. + + Parameters + ---------- + path : str + Path to file to write. Defaults to 'settings.xml'. """ diff --git a/scripts/openmc-ace-to-hdf5 b/scripts/openmc-ace-to-hdf5 index ff8c19962b..dd115d175c 100755 --- a/scripts/openmc-ace-to-hdf5 +++ b/scripts/openmc-ace-to-hdf5 @@ -190,7 +190,7 @@ for filename in ace_libraries: thermal.export_to_hdf5(outfile, 'w') # Register with library - library.register_file(outfile, 'thermal') + library.register_file(outfile) # Add data to list nuclides[name] = outfile From 459d3375ca685993c482c7c6d02c2a5b1927c086 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 23 Sep 2016 06:43:29 -0500 Subject: [PATCH 413/417] Update nuclear data Jupyter notebook --- .../pythonapi/examples/nuclear-data.ipynb | 304 ++++++++++-------- 1 file changed, 168 insertions(+), 136 deletions(-) diff --git a/docs/source/pythonapi/examples/nuclear-data.ipynb b/docs/source/pythonapi/examples/nuclear-data.ipynb index 82be4a113f..e3691d11c4 100644 --- a/docs/source/pythonapi/examples/nuclear-data.ipynb +++ b/docs/source/pythonapi/examples/nuclear-data.ipynb @@ -52,7 +52,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 2, @@ -62,7 +62,7 @@ ], "source": [ "# Get filename for Gd-157\n", - "filename ='/home/smharper/nuclear-data/nndc-hdf5/Gd157_71c.h5'\n", + "filename ='/home/romano/openmc/data/nndc_hdf5/Gd157.h5'\n", "\n", "# Load HDF5 data into object\n", "gd157 = openmc.data.IncidentNeutron.from_hdf5(filename)\n", @@ -110,7 +110,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "To find the cross section at a particular energy, 1 eV for example, simply call the reaction's `xs` attribute at that energy. Note that our nuclear data uses MeV as the unit of energy." + "Cross sections for each reaction can be stored at multiple temperatures. To see what temperatures are available, we can look at the reaction's `xs` attribute." ] }, { @@ -123,7 +123,7 @@ { "data": { "text/plain": [ - "142.6474702147809" + "{'294K': }" ] }, "execution_count": 4, @@ -132,14 +132,14 @@ } ], "source": [ - "total.xs(1e-6)" + "total.xs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The `xs` attribute can also be called on an array of energies." + "To find the cross section at a particular energy, 1 eV for example, simply get the cross section at the appropriate temperature and then call it as a function. Note that our nuclear data uses MeV as the unit of energy." ] }, { @@ -152,7 +152,7 @@ { "data": { "text/plain": [ - "array([ 142.64747021, 38.65417611, 175.40019668])" + "142.6474702147809" ] }, "execution_count": 5, @@ -161,14 +161,14 @@ } ], "source": [ - "total.xs([1e-6, 2e-6, 3e-6])" + "total.xs['294K'](1e-6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "A quick way to plot cross sections is to use the `energy` attribute of `IncidentNeutron`. This gives an array of all the energy values used in cross section interpolation." + "The `xs` attribute can also be called on an array of energies." ] }, { @@ -181,8 +181,7 @@ { "data": { "text/plain": [ - "array([ 1.00000000e-11, 1.03250000e-11, 1.06500000e-11, ...,\n", - " 1.95000000e+01, 1.99000000e+01, 2.00000000e+01])" + "array([ 142.64747021, 38.65417611, 175.40019668])" ] }, "execution_count": 6, @@ -191,7 +190,14 @@ } ], "source": [ - "gd157.energy" + "total.xs['294K']([1e-6, 2e-6, 3e-6])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A quick way to plot cross sections is to use the `energy` attribute of `IncidentNeutron`. This gives an array of all the energy values used in cross section interpolation for each temperature present." ] }, { @@ -204,18 +210,41 @@ { "data": { "text/plain": [ - "" + "{'294K': array([ 1.00000000e-11, 1.03250000e-11, 1.06500000e-11, ...,\n", + " 1.95000000e+01, 1.99000000e+01, 2.00000000e+01])}" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" + } + ], + "source": [ + "gd157.energy" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -223,7 +252,9 @@ } ], "source": [ - "plt.loglog(gd157.energy, total.xs(gd157.energy))\n", + "energies = gd157.energy['294K']\n", + "total_xs = total.xs['294K'](energies)\n", + "plt.loglog(energies, total_xs)\n", "plt.xlabel('Energy (MeV)')\n", "plt.ylabel('Cross section (b)')" ] @@ -239,7 +270,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -274,7 +305,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -289,7 +320,7 @@ ], "source": [ "n2n = gd157[16]\n", - "print('Threshold = {} MeV'.format(n2n.threshold))" + "print('Threshold = {} MeV'.format(n2n.xs['294K'].x[0]))" ] }, { @@ -299,28 +330,6 @@ "The (n,2n) cross section, like all basic cross sections, is represented by the `Tabulated1D` class. The energy and cross section values in the table can be directly accessed with the `x` and `y` attributes. Using the `x` and `y` has the nice benefit of automatically acounting for reaction thresholds." ] }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "n2n.xs" - ] - }, { "cell_type": "code", "execution_count": 11, @@ -331,36 +340,16 @@ { "data": { "text/plain": [ - "(6.400881, 20.0)" + "{'294K': }" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "plt.plot(n2n.xs.x, n2n.xs.y)\n", - "plt.xlabel('Energy (MeV)')\n", - "plt.ylabel('Cross section (b)')\n", - "plt.xlim((n2n.xs.x[0], n2n.xs.x[-1]))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To get information on the energy and angle distribution of the neutrons emitted in the reaction, we need to look at the `products` attribute." + "n2n.xs" ] }, { @@ -373,17 +362,37 @@ { "data": { "text/plain": [ - "[,\n", - " ]" + "(6.400881, 20.0)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n9zC0aV7vrgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "n2n.products" + "xs = n2n.xs['294K']\n", + "plt.plot(xs.x, xs.y)\n", + "plt.xlabel('Energy (MeV)')\n", + "plt.ylabel('Cross section (b)')\n", + "plt.xlim((xs.x[0], xs.x[-1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To get information on the energy and angle distribution of the neutrons emitted in the reaction, we need to look at the `products` attribute." ] }, { @@ -396,7 +405,8 @@ { "data": { "text/plain": [ - "[]" + "[,\n", + " ]" ] }, "execution_count": 13, @@ -404,6 +414,28 @@ "output_type": "execute_result" } ], + "source": [ + "n2n.products" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "neutron = n2n.products[0]\n", "neutron.distribution" @@ -418,7 +450,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -426,39 +458,39 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, - "execution_count": 14, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -477,16 +509,16 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\nMAzDMAyv/B9ZBCMoWOfF0wAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -512,7 +544,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -542,7 +574,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -550,10 +582,10 @@ { "data": { "text/plain": [ - "" + "{'294K': }" ] }, - "execution_count": 17, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -573,7 +605,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -581,18 +613,18 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 18, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEWCAYAAABIVsEJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXecVNXd/z9net2+C9tg6b0ICGJQeChBQ1CxgprYe4xR\nY9RfNDGJ8VHzWBKNiIoNgtg1FoiIohFUegcpskvZZdll++zMTju/P2bvzNx7z+zcmblTdjnv14sX\ne8/ccubOzPnebyeUUnA4HA6HEyuadE+Aw+FwON0TLkA4HA6HExdcgHA4HA4nLrgA4XA4HE5ccAHC\n4XA4nLjgAoTD4XA4ccEFCIfD4XDiggsQDofD4cRFxgsQQoiFELKBEPKzdM+Fw+FwOCEyXoAAuBfA\nm+meBIfD4XDEpFSAEEIWE0JqCSHbJePnEEL2EkL2EULuDRufCWA3gDoAJJVz5XA4HE7XkFTWwiKE\nTAHQBuB1SunozjENgH0AZgCoBrABwHxK6V5CyMMALABGAGinlM5L2WQ5HA6H0yW6VF6MUvoNIaSv\nZHgigP2U0ioAIIQsB3A+gL2U0gc6x34JoD6Vc+VwOBxO16RUgESgFMCRsO2jCAiVIJTS1yMdTAjh\n5YQ5HA4nDiilCbkGuoMTPSqUUtX+/fGPf1R1/65eZ70mHYtl+8ILL+T3gt+LHnMvlI7zexHfthpk\nggA5BqBP2HZZ55hiHnroIaxZs0aVyUybNk3V/bt6nfWadCzWbTXh9yL+c/N7oXz/SK8rHef3Irbt\nNWvW4KGHHupyHkpJqRMdAAghFQA+opSO6tzWAvgBASd6DYD1ABZQSvcoPB9N9XvIVC666CK8++67\n6Z5GRsDvRQh+L0LwexGCEALanUxYhJBlANYBGEwIOUwIuYZS6gNwO4DPAOwCsFyp8OCIGTZsWLqn\nkDHwexGC34sQ/F6oS6qjsC6PML4CwIp4z/vQQw9h2rRpSVVVuwPDhw9P9xQyBn4vQvB7EYLfC2DN\nmjWqmfwzIQorYdSy53E4HE5PR3jY/tOf/pTwuTLBiZ4wajrRT0Vyc3OxdOnSdE+Dw+GkADWd6D1G\ngJzq5qtEaGpqwldffZXuaXA4nBQwbdo0LkA46tLR0ZHuKXA4nG5GjxAg3ISVOF6vN91T4HA4KUBN\nExZ3onMABGLCORxOz4c70TkcDoeTdrgA4XA4HE5c9AgBwn0gHA6HowwexiuBh/EmB0IIPvnkk3RP\ng8PhqAgP4+WkjJ07d6Z7ChwOJ0PhAoTTJT6fL91T4HA4GUqPECDcB5I8eooAqaysxJNPPpnuaXA4\naYf7QCRwH0jy6CkCZNGiRbj77rvTPQ0OJ+1wHwgnZfSUBMOe8j44nEyCCxBOl/SUhbenvA8OJ5Pg\nAoTD4XA4ccEFCKdLkv3kXlVVhba2tqReA+AaCIeTDHqEAOFRWN2XiooK3HzzzUm/DhcgHE4AXo1X\nAq/G272pra1N+jW4AOFwAvBqvJyUkYqFl1Iq2v7rX/+K+fPnq3oNLkA4HPXhAoSTcbz66qt48803\n0z0NDocTBS5AOBmHRqP+15JrIByO+nABwsk4tFqt6ufkAoTDUR8uQDhdko6Fl2sgHE73oEcIEB7G\n27OQOtU5HI568DBeCTyMN3nwJ3cOp2fBw3g5nBjhgpDDUR8uQOLgxIkTqKurS/c0OApIRZkUDudU\nhQuQOLjkkkt4/5Fugt1ux44dO5gaiNfrxbFjx9IwKw6nZ8AFSBx8/fXX2Lt3b7qnwVFIfX09c/zp\np59GWVmZonOsWbMGr7zySnD7jjvuwJAhQ1SZH4fTXekRTvR0kIxchUyku/oOOjo6sGPHjoiv+/1+\n7Ny5U/H5brvtNuzevRvXXHMNgIBA2bdvX9Tjbr/6bbQ0uYLbWTkmPPPqJYqvy+FkMlyAxInH40n3\nFFRBCJmNFDrbXQXIhx9+iGuvvRZA4L1J38eiRYvw2muvKT6f9PhI9+W2695Fc3NIYGi9ftHr4cKE\nw+nuZLQJixAylBCykBDyFiEk+TW/FZKMRLd04fcHFrhU5l7U1dXh5MmTSb2G2+0O/s0SILfeemtM\n51N6f5pbuIDgnDpk9EpIKd1LKb0FwGUAzkz3fAR6UqKbIEB8Pl/KrjlixAiMHz8+4uuJ3t+6ujrR\nOVL5eXl1Gnj1oX+yK2u6p0bH4bBIqQmLELIYwM8B1FJKR4eNnwPgaQQE2mJK6WNhr80FcDOAJamc\na1f0JAEiCA5BkAhEM20lQl1dXVK1uKKiItG29L2pgVLTnsuqV/3aHE6mkGofyCsAngHwujBACNEA\neBbADADVADYQQj6klO4FAErpRwA+IoR8DGB5iufb44mkgUQSLGpfN1Vkii9H3+HDlRf/SzSWnW3C\nPxdflKYZcTjxk1IBQin9hhDSVzI8EcB+SmkVABBClgM4H8BeQshUABcCMAL4JJVzjYTf7wchBJRS\n+Hy+bh+NFUlQCNvJenrv7lpcJIHk12ug8US+Z6yjwp3uHE53IhOisEoBHAnbPoqAUAGl9CsAX6Vj\nUpFwOp0wm82glMLlcsFqtaZ7SgkRSVAkU4BoNJqU+lyAxDUQpcdXDs0XbVfsEuegUDCESGYoRxxO\nzGSCAEmYiy4Kqf/Dhg3D8OHDk3at5uZmaLVaUEqxdOlS2O32pF0rVtauXRvzMQ6HAwBw5MgRLFu2\nLDje0dEBANi2bZtoXA0E7UM47/Hjx0XXaG5uFr2eKF988QUqKysjnlPJdaRzamxsjHCs2P/i0xJo\nfSFty2OUa6wGpxe/uHCpfNwIzJibuK8onu9FT+VUvhe7d+/Gnj17VD0nSbUpodOE9ZHgRCeEnAHg\nIUrpOZ3b9wGg4Y70KOejqXwPlZWVmDp1Knw+H7799luUl5en7NrRWLZsGS6//PKYjqmvr0dhYSFm\nz56NlStXBsfb2tpgt9vxwAMP4C9/+Yuq89TpdPD5fMHw2unTp2P16tXB14cPH449e/bEbeaSagsr\nV67Eli1bcP/99wfPGb6PkuuMHDkSu3btCu47fvx4bN68WXbsxEc+F8/FJ3697155+LLR6Y143SXv\nXRl1btGI53vRU+H3IkSnKTkh/TcdYbwEYqV9A4CBhJC+hBADgPkA/h3LCVPZD6S9vR1WqxVmsxlO\npzMl10wmkUxVgokp1aamZMDKA+FwTlXU7AeSUgFCCFkGYB2AwYSQw4SQayilPgC3A/gMwC4Ayyml\nMelZDz30UMqKG7a3t8NisfQYARJJUCTTBxLtib+7O9i7wquTCzJ/JNnGc0Y4SWDatGnds6EUpZSp\nO1JKVwBYEe95BQGSCiEiCBCtVtsjBEg6nOixcvLkSRiNRthstrjPEa8Gctttt+HQoUOqne/wiELZ\nWDnDrMXhJIs1a9aoZrHpEU70VHYkFASIRqPpEQIkmgaSCSasgoICzJo1C5999llcxyei0bzzzjs4\nceIERo4cGfc54sXk8ODyy+QO/uxsExa+cGHK58PpGajZkbBHCJBU0t7eDrPZDEJIjxAg3UEDAYDD\nhw/LxioqKrBw4UKce+65XR773nvvqf5ZRdJAzEY/nB3JtQy31rfLorayc0x49uWLk3pdDkdKjxAg\nqTZhmc1mAIDL1f0TwNIhQOLRCFjHVFVVYc2aNVEFyEsvvRTz9eLlotniTpX/er8owp4hpKG+wXEd\nWxAZGYmKzbzKL0ch3IQlIZUmLJfLFRQgPUEDiWTC6i5RWJmiIUXCbPTB2dF1tYLqAbnM8f47eNtk\njvpwE1YaETLRhb+7O/FoIBs3bkRpaSmKi4uTP8FOImkt6RIgSp3ol88VO8hf+Cjxe8az2TmZQo8Q\nIKk0YfU0ARKPE/3000/HjBkz8Pnnn8teSzVSAbJq1aqEzkcpxbZt2zB27FgA6hdhNOh9cHuU1U/z\n6gh0Xrng9DKy2bUev6hIIy/QyIkEN2FJSKUJS1oLq7sTrw8kvGFTKuiqY+L27dvRt29fZGdn46c/\n/WlC11m1ahVmz54tu57SjoTRmPYTuVnqsy96Mfc9OqqAOd5/0wnZmHQ2vEAjJxJqmrAyuqFUJiII\nkJ6SSBgtEz2SAFEz2U96rljPPWbMGNx9992qzEWoAZbJsJIROZx00GM0kFSasHr37g1KKVpbW5N+\nvWTj8/mCtanCiZYHkmrfQzSh0t7entD5J06ciBdeeCGhc6SKw2PkyYiDvjsu1kK4jOFEgJuwJKTa\nhGUymeD3+3HihNyU0N3wer0wGAwxm7BSHZ2ldvmTs88+G19//XVwe8OGDfjkk08UmyXV9I0YDD64\n3Yn1lZFW+aUEuOQXb3ZuafH+isDf2dkmvPTs+Qldi9O94VFYaaSn+UB8Ph9TgCSzI2Eyal3FOs9+\n/fqJBAgA/P3vf0ddXepDZ2dNrWeOr/iS7RtRRAQBx30jHDXhAiRGhDwQSmmP8IEIGkisJiw1n8CV\nCJRoYbyxChDW/FmBAZHeZ6ZV95VFbFHKFCI6t4+XR+GoBhcgMRKugfQEARJJA8m0UiaR+Pvf/w4g\nMa1m+fLlUfdRIjAeffRRdIzUIKdviSoCxmzwwanQtHV4mDhiq/+OuoAQkRBpVlwz4cRDjxAg6cgD\n8fv9PUKACBqI1ytuahQtEz3VT+DJLPG+YMECVc5z//33AwD++eLNuOKXUwEAbx6M31d0zWy2Oe25\nj3rHfc5IEB/leSSnCGo60XtEGG8q+4GEh/H2BB9IvE50NVFDOMR6DiUCsKvPt6vjb7vh+eDfZq36\nPzGDPrpQ8mnZ84t0l3geyalDt+0H0hPoaRpIvCasZGogLGGgdhRWtPkfPnwYffv2Re/eiT3t/2KQ\n+PhHthxHGyO7PBZ+cobc6b5a4nCPVF+r7EAjc7yrtrocTiS4AImRniZA4nWi93Sam5sBALW1tczX\n4xWg954mzy7/8+bEI79MBh9cCYQCs+prhZu0AG7W4sjhAiRGBAHi8/l6hABJRxhvPKRaAxk9enRc\n5xXYtOEAxp8+MK5j4+HKc8RC6LW35cmGQOTS8VRLROYtDWMfbtbiSOkRAiTVTnSTyQSfz9djfCB6\nvT6tJqx09ECPdf6x7v+fFVsUCxCLDmhPkQWptm82c7yvkra6fsobWfUAeCa6hFRmore1tcFut/cY\nE5aggWS6CUttDSRRogmUWKbzq+Em5vjbP8b//TIZ/XAl0BmRZdJivWPeyKr7wTPR04TX60VHRwcs\nFgvcbnePECDC+4nVhJVMDSRdSXqZlhyYCOfPYWsUb7/DrvArNW1JTVoAoPWnXlPkZDZcgMSAw+GA\n1WoFIQQmk6lHCJB3330XBw4cYGogGo0mLRoIayFXSwOhlIIQ0i2EhUlL4GL4IpLB0UF5om2WSYs3\nsuJI4QIkBlpbW2G32wEAJpMJbrc7uNB2VzZu3Ih+/fqhsrJSNO73+5m+EYFMW4BTLUBS8f7n9WP7\nKx7b2gxHnD4To9GPDgWmLZ+GyDQOv777fs85ySGqACGElAGYD+AsACUAnAB2AvgEwApKaWaE6aSA\ntrY22Gw2AAhqIS6XCxaLJc0zi5+ZM2diypQp2Lhxo2jc7/dDp9OlRYCkOseku/GbUfKf7bIDHkXH\nXnBeA3P8zbfFpi2Ws73kUJNszE+A+QvekI1nZ5uw6Pl5iubE6b50+UhBCHkFwMsA3AAeA7AAwK0A\nPgdwDoBvCCFnJ3uSmUK4BgKgRzSV8ng8sFgs8HjEC5DP54Ner09LKZN4zh2LBhLPNdTqSJipGIzR\nnwOZjax41d9TmmgayBOU0p2M8Z0A3iOEGAD0UX9amYkQgSXQE/wgHo8HRqMRhBD4fD5otYFktGgm\nLDVJpBpvvNdKtgBItaZj0gKuBNxVZ88WZ6h/9XaObJ8fRxXJxgZuU94T57br3hUJFp6Y2P3pUoCE\nC49OYTEUAV/aD5RSN6XUDeBAcqcYnVTlgbS2tgZNWABgs9ngcDiSes1k4/F4oNfrYTAY4Ha7YTab\nAXQ/E5bSBTtViZF7/3cL3nu0Gdf4HkjJ9S4bYBNtL9rTltD5DEY/3Ap8JUzHeidS05bOI773XEtJ\nDynPAyGEzAHwPICDCHxf+hFCbqKUrlBlFgmSqjwQqQZit9u7fVvbSAIkmgkrUcKFRCqLKaqlGSgV\ncs7aNph72aLvqDIWLUF7AhFcUy9okY29/x95gyu3mb2E8NpamUs68kCeAPA/lNIDAEAIGYBOJ3rC\nM+hGSDWQrKwstLTIf2jdCUGA6PV6UUOlnhyFBaRu/h8Nfka0PffgrTAUWJN+3RsH5zPH/7GX3f0w\nXfB6W90bpQKkVRAenfwIoHs/eseB1ImelZXVozSQcEe6YMLaunUrysvLsXnzZowcOTJicUE1SXYe\nSKRrxDKn8O3i4mIcO3ZM0Xl2zF4sGxvx/TUxzSVdxNS7PUJHxGhws1b3oksBQggRelxuJIR8CuAt\nBMyelwDYkOS5ZRyNjY3IywslXNnt9m6vgbjdbpEJS0AwYQHA0aNHUVVVhRMnlDtMoxGrKUltJ7qa\n1zh+/DjD1Kf8XO66dhgKUxMKbtFq0O6Lzw/E6t2+5UcDtIzy9BoKWT2XrvwlnO5JNA1kbtjftQCm\ndv5dB4BdwKcH09DQgLKysuB2TzFhGQwGmQDx+/0wGo3BbZ1O/FXJtFImsTrRM8kEt27CUub4zCO3\nq36t64ey+5v8cXNNXOerHpjHHB+86bhsTOov4X6S7k+0KKzuoVuniIaGBpEG0pNMWFIfiJAfIiAV\nIN2VrkxYiVQUSEbYrrvOAUNh8v0lAGDVETgSbHQVTqSy8eHw0ijdn2gmrAcA/JNSymxjRgiZDsBC\nKf04GZNTSlNTE3Jy5HHrasMSID1BA2H5QLxeL6zW0OIlXVxTXc490j4lJSWorq5OeRSWwO9+9zsA\nwKFDh1Q9LwB8N/lV5vjp318GTY5Z1Wv9brj49/PknkY4EwjAO8boiFhc2Sza9jFKo2g9fpljHeDO\n9Uwl2mPlDgAfE0JcADYjZLoaBGAsAhnpjyRrcoSQ8wHMAWAH8DKldBVrv9/+9rd46aWXkjWNIFIB\nYrfbUV1dnfTrJhNpGG/4OKtES7x5FK+++iruvPNONDayW6qGE4twys7OjukzUDuM91//Cix2Q4cO\nVeW8Smj/9ZuysdylN6l6jWuHyj+Dp3bI753R4EOHQsc6q76WlEifPHeuZybRTFgfAviQEDIIwE8A\nFANoAbAUwI2U0qSmYYddPwfA3wAwBciqVauwatUqzJo1K5nTQUNDA3JzQ09WPcmEJRUgUg1E2h8k\nVg3k+++/R1OTvJZSoggCQY0orK7OEen9Rjom1RW3Ok44YCxKrrnLqoOsiOPPprLb8X7+cQ48brGG\nUVshrq9VfLARuhhyVXjIb+ahyLBNKd0PYH+iFyOELAbwcwC1lNLRYePnAHgagdpciymlj0kOfQDA\nPyOdd9GiRbjxxhuxY8cOUZ6G2vREE5bQkTCaD0QQHPEmFsbiX0hmGK8gCFn7x6OdZEpxxs+Hvyra\nvrj+btWvcfsIuYB6cge7EsOEWfKHhXUrxLkpR4bIc1UGbjuh2A3CtZL0o+hXTQgZTAh5gRDyGSHk\nC+FfHNd7BcBsybk1AJ7tHB8BYAEhZGjY648C+JRSujXSSc855xxMnToV/+///b84pqQMj8eD9vZ2\nZGVlBcd6igDR6XRME1a4BiIIDq838ciZdLbD7Upj6WpeR48eVeX6qcJ1IvNK7BgVFGz06TXwMv5x\nMhOloTVvI1DK5CUAcbvWKKXfEEL6SoYnAthPKa0CAELIcgDnA9hLCLkdwAwAWYSQgZTSFyKd+8kn\nn8SoUaNw6aWXYsqUKfFOMSLHjx9HUVGR6Ek6Ozs7KWaZVOLxeIICROpEN5lCkdpqC5DwhTdTSpl0\n9Vp4Dkzv3r2D9ypVtbViZeWYRczxC07cl+KZhJjzc3Ep+bc+lBdnjASzxW7YQHihRm7aSh1KBYiX\nUrowSXMoBXAkbPsoAkIFlNJnADzDOkhKXl4enn32WVx33XXYsmWL6j06ampqUFJSIhrLz8/HyZPs\n1qHdBcGExdJAhERCILRQqiFA0kmsPhMWqcjGTxbO420w9059bS4WWr0fPo9Yu/BqCdMvwmqxG064\nOYubtlKHUgHyESHkVgDvA+gQBiml7O40Keaii0JPG3q9HvPmzcNVV12l6jU2btwIv9+PZcuWBcec\nTieOHz8uGksna9eujfkYl8uF9957D9XV1fjyyy+DQmTbtm0wGAzB/VasCJQ9e+uttwAg5ve9b98+\nAMCyZcuCi7dwfF1dnehcglYnvdes6wkmRKXzeffdd5GdnR2cTzjSnigspNdwubrXYrW89Gnm+DUd\nv43rfFYt4GDYJJTklQwYKzf/7gO7hteAnXJnvUevwSW/CESkGSWvRfouxPMb6Sns3r0be/bsUfWc\nRMmTGCGEFeROKaX9Y75gwIT1keBEJ4ScAeAhSuk5ndv3dZ5b6kiPdD4a/h4aGxsxZswYLF68WNWo\nrOeeew7bt2/H888/HxyjlMJkMqG5uVlk7kkXy5Ytw+WXXx7TMSaTCU1NTbjpppswbdo0XHNNIHf0\nd7/7HfLz83HffQGTx9dff42zzz4bR44cQXl5OWbNmoXPPvtM8XVuu+02PPfcc6CUQqfTwefzBdvL\nTpo0Cd99911w33HjxmHLli2iiKnCwkJZKRVCCAYNGoT9+/dj+vTpWL16dVT/SnV1NYqLi3Hrrbdi\n4UKxUq3Ep7V+/XpMnDgxuB1JC52DvriIDIDVJg5xrRgoXeqAuuNswWUwsm3/IybJx9atFGuGOj37\nPjSeZGuQl1XdAkvvkM+ricpNs0aNXKs3e9lzpEaWw12c7b612iDbZ98Gdj4XU4AYQvfW4PQGTVyE\nAEvevoJ5nnh+Iz2VTlNyQg5JpVFY/RK5iAQCsTlzA4CBnYKlBoH2uQtiOWF4P5Dc3Fy8/PLLuOaa\na7Bt2zZR1FQisExYhJDgAlJaWqrKdVKN4EQ3m82ip2nBtCWQqU50gVh9IPGasMKFR0/izb5iYXpu\n5eUw9c6cVs1eHYFOqtGEFWzsysT1q2vfQXNT6Lu94p1A6ZjsHBOeffniZEw3o0lHPxA9gFsACO1r\n1wBYRClV1og5dJ5lAKYByCeEHAbwR0rpK53O8s8QCuONSc+S9gOZOXMmLrzwQtx222144w15v+Z4\nqK6uxhlnnCEbLygoQH19fbcUIJTSYBdCi8Ui6q4oONcFBNNWpvlA4s0DSXZxRp2ewGzQwO+n0GhC\nAtProRG1g0xiRYXcBDTf/euEzqmkR4nB4IfbLddqKk+TO9z7bzoBVsZNuGkLAEwO9jIVLlROJdLR\nD2QhAD2A5zq3f9E5dn0sF6OUMnXHzsZUcfcWYXUkfPTRRzFu3Di88cYbWLAgJoWGSVVVFS699FLZ\nuCBAuiOC9kEIgcViQXt7e/A1qRO9o6MjeAygbvhqIqVM1BQgydCMnO3iKK39e+SLVlGxDv7k9O1S\nlUSrBt8yWFze5Lb6NrS4xftMn8kOSlnxpbyZVTh+PYHG0/mZZlChzEwk5RoIgNMppWPCtr8ghGxT\nZQYqwOpIaDabsWTJEvzsZz/DlClTUF5entA1Dhw4gIEDB8rGu3MkliBAAMBisaCtrY35GhASIMnq\nUBhOMivlpirsNhbxOnC43BcAAAf3eKDVyu+F3w8kUPcxbjZPlVcN/p/tN8d9vv87W/6+H93G1hZY\nJVPCI7YaZoTys7K/aAWvyhiZdGggPkLIAErpQQAghPRHAvkgahOpJ/qECRNw9913Y8GCBfjyyy9F\nT9Sx0NHRgZqaGvTp00f2Wk/QQICAAAl3Uks1EME/oqYGooY5Sc1EwlRcPxZqjrqZ4wNHqltIsTvw\ns7Plv7EPnIXBv7MRuld6t/ghwU86+5NIoBpyShZuVFMDUfoccw+ALwkhawghXwH4AoD6tRLiRBAg\nLO655x7Y7Xb84Q9/iPv8lZWVKCsrYwqggoIC1NWx6wFlOuF+DqkJS+pET4YA6aqsSKwoPUdX81e3\nlElmZqhnOhat+vetLdeMljz5v0j09DySadOmMa028aA0Cmt1Z0HFIZ1DP1BKO7o6JlPQaDR4/fXX\nMW7cOEydOhXnnHNOzOfYuXMnRowYwXytpKQEW7dGrLKS0YRrIGazmelE37hxI6ZMmZIUH4hgDlNi\nVormA1GKklyPWIhUiSDV4kOrA3xpiG9w1jpg7iUP2XWecMAcR3HHG4ZRsO7eoj3yZ12j0Y+OjsC4\nTuuH1xf4W0kvEo46ROsHMp1S+kVYa1uBgZ0xxO8lcW6KiWTCEigsLMTSpUsxf/58bNiwQdRVUAlb\ntmzB2LFjma+VlZXh44/T2g4lbsK1jEhO9PHjx6NXr15J0UAiFWhMZkdCQYAku4bVR54qVPsdGEHz\nMQr5yCfJzRMaNlr8RL13R2qeopf3e1HxvvEmK0bi3J+GfI/tYc8F//1BnEuSXc8uGt5Vi91w01ZP\nM2ml0ok+FQFz1VzGaxRAxgiQaEydOhV33HEH5s2bh6+//hpms3I78pYtW3D99eyAs7KysoiF9jKd\nrkxYLpcreI90Op2qGohwrCA4pFpBLAIkVp9GVwJEbaEyWdcbG311eA8/IosaMBJ5GE3zMRg5MBBl\nPTTURqNF2iK+3PUOGArCWgQ0O6HJVvY7tGiBdoXz1hn98HaENJZIGom0xa6AtNVuTzNppcyJTin9\nY+eff6aUirLRCSFqJhemhHvvvRfbt2/HDTfcgCVLlihaqCil2LRpE5577jnm66WlpTh27JjaU00J\nTqczKCSkAsTpdAaz6/V6fVI1kEhmJSFTXU26EiBqX+snut4Y5y6Cn1IcQgt2oQEf+A/hKNowCDkY\nSfIwiuSDUnPKerT3G8DWhKoOueBV17onY+uc10TbReXyzyDrrfnMY28abpeNPbWD3Ytn6E/F1QTW\nf8sOAe67TVnwi18DXH6ZOC8mO9uEhS9IDTOnHkqjsN4FME4y9g6A8epOJ7kQQrB48WKcddZZePzx\nx3HvvfdGPWbXrl2wWCzo21daRDhAQUEBWltbRYtxd6ErAeJyuZIuQATfh1SACOf2eDzBelxq5YGo\n7QNRgoapAklJAAAgAElEQVQQDEA2BiAbF2j6w0E92I0G7KAN+I//MJ75L8FZ+UU4q6AQk/MKkRVn\ntGAijJ0gLrC4+fs2SF1TGi2F35c54bEWHUF7An3cmdntYJi2GMK9p2kl8RLNBzIUgR4d2RI/SBYC\nrW0zgmg+kHDMZjM++OADTJ48GWVlZbjiCnbNHIH//Oc/mDlzZsTXNRpNUAth5YlkMlIBEu5ElwoQ\nqQkrkXwK4Wk7kgYSLliiCRCBTDRhRcJK9DgdvXA66QVKKXqN8+O/J0/graOHcd/OrRhiz8JZ+UWw\nUzsqYIcmDYlxJeXyml39h8nnUXlA3ev6m5yK+73fOjyUmPjktia0ednfSbPBByej7e6RYQXM/Qdv\nOi5244eVTBHIHDEaO6n0gQxBoINgDsR+kFYAN6gyAxWINSStrKwMK1euxIwZM5CVlYW5c1kungBL\nly7F3/72t6jnO3r0aLcTIOFCwmKxwOFwMF/T6XRBDSTePhgsE00kARKugUQjVg1EKMmSTgESDiEE\nA212DLTZcU3fAXD5fNjYeBJfn6zD29iDFrgxnOZiJPIxAnnIJfKFvSfhvOUD5rjl7a4TFu89LWSm\nuu/7GrSFuTGuP4cdZv/3D4oVzUnjB1iRYd21xW4qfSBCT/LJlNJvE75aBjFixAj8+9//xty5c/HU\nU08xK3SuX78eDQ0NmD59epfnqqiowKFDhxRpQJlEuAYirUQb7kQPN2Gp2UjJ5/PJGlmFnzu8P4la\npMOEFQsmrRZTCoowpaAIZx+uQAN1YScasB0n8Sb2I4cace7uIpxVWIjT8/Jg0qbHGZ/J/L/TxMva\nh5WxfeY+PYHWE/vDxKlo1lLqA7mZELKH0kCNZ0JILoAnKKXXJm9qyWfixIlYvXo1zj33XOzduxcP\nPvhgMKzV4/HgzjvvxO9///uo/bwHDx7M7C+R6YQLkOzsbDQ3Nwcd15FMWMICnEhJk/AoLJPJpEgD\nUdsHkqpaWImSR0w4GyU4GyVBZ7xD14p/7NuPvS0tGJeXi7MKCjHJ1guDrPaUvwe9AfAw5LxGA5kP\nJRFctQ6YGPkmiWAy+OBimLZqzhRX8C77sl6WyR6tQ+KpglIBMloQHgBAKW0khJyWpDnFTCw+ECkj\nR47E999/jxtuuAHjx4/H7bffjuLiYjzzzDPIzc3FddddF/UcgwcPxptvvhl1v0wjXIAIJd3b2tpg\nt9tlJixBgAhaQawCJJIJS+inEk4k5zqLni5AwhGc8WcP6I1fDx6EFo8H3508ia/r6vD6ofXo8Psw\nObcQZ+QWoMBnR6E2+UEdp09hdzc8fFBdTe/9Mnm+yfwTt0KXF12oGDVAB0OYzZt+Qj4I4MNvxL4R\np11es8vs8DCTRaXRWkDmRWylo5iihhCSSyltBABCSF4MxyadRNPyS0pK8PHHH+Pjjz/GG2+8gZMn\nT+KnP/0pfv3rX0OrwEQwePBg7N+/P6E5pIPwUF0AyMnJQVNTk0yAhJuw4hUgLAQBIq0lFi28NxFS\n7UQnJOCDjbQtXDcW4dXWKHwntThDV4ozikvxYH+gqr0N3zfV478NJ7C2aRcsRIfRhnyM0udhpD4X\nOZr0+k+8XgqdLvQ+/b5AXkq81F73SvDvXotuitiq95w+7Ki2F/eyv196nR+e8EZZBgASLSuWbPdM\nM22lo5jiEwC+JYS83bl9CYC/Jnz1DIIQgrlz53bpUI/EwIEDceDAAfj9/qjmrkwi3M8BBMxYTU1N\nKCsrg9vthtEYWHD0en3QP6KGCUvA7/dDr9fD7/eL7p3Qo0SJDySTw3h1OoLCXuLFy8OwreuN7PId\nsSX9UfS12NDXYsOlJRXYva0dR/wObPc04OuOGjzfthv5GhNO9xZgnCUfYyx5sGtTGy58aL+4+pFO\nL9eQCkvj+14tLwm16p175BeKys6btYCTcbkzT2sUbe8rlQecHt2cJRsr/+Eks2gj0HPzSJTWwnqd\nELIRgOBNvpBSujt50+pe2Gw25OXl4fDhw6ioqEj3dBTT3t4uEiCCBtLe3g6j0Rh8KlZDAwl/wg4P\n49VqtdDr9fB4PEGB5fV6YTabFflAYp2Dx+OBz+fD0qXy0uSZRlkf5RqDVAg52ijyYME0WDANZfDp\n/KiibajWteCDpio8XLMVfYw2jLPkY5wlH1OyC2DVpT7/RE5XBUaUsWXKW6LtST9czdzv6iFs89f/\nbmlnjkfDaWN/XtZWedlAxwkHrrpgSXA7K8eEZ169JK7rppNYzFB5ABydHQQLCSH9pNnppzJjx47F\nli1bupUAaWlpQXZ2dnA7JycHzc3NaG1tFY2zfCCJRGGFO9FZAiSSc72rcykRMIJQitRVMR1hvKlC\nSzToT7Iwo6gIv8BAuP0+7HE2Y3N7PZY2HMQfqzdjiCUb4+0FGGvLQx9ih4mKl4cOF4XRlFw/kd7E\n1sYSwd/ohCZXuT/IqgMcYV+RLANkja9MRj9cHcqsDUyHu2S7hdEd8far35aNZ5qgUdrS9o8AJiCQ\nF/IKAt0JlwL4SfKm1r0YN24cNm/ejHnz5qV7KoppaWlBcXEoFl7QQFpaWpCVFVLR9Xp9MEtd0ETU\n8oGECxCBWDSQWASIUqF0KmDQaDHGmocx1jxcUwhQgx/bHY3Y0FqPxTX78IOzGf2sNkzIy8X43DxM\nyM3Df1fKHxrOnM72O2QSrbe8xRzPf4udyvarkWJNwqSVayqvDWH0J3nKDA3DL8ISuTKhwpBFLKHC\nGksnSjWQeQBOA7AZACil1YQQeXGaNJFIFJZajB8/HosWLUrb9eNBKihyc3Nx8uRJtLS0wG4Pfbyp\nFiA+nw82my0mH4gSzGZzUJPiiDFrdZiUVYhJWYEmTdYCL3a2NGNTYyP+fewY/rhzB7RUi0HIxiDk\nYCCyUQJ1w2q7QqcDpIpjohqRu74dhoL4W/RKqemXzRwfuK22Mxkx7NoRCjmmgnREYbkppZQQQgGA\nEJK6b44C1GqOkgjjx4/Hpk2bklIAMFk0NzeLTFW9e/fG8ePHk6KBKPGBCMTjA1EiSOx2O9rb23u0\nqUotjFotxufmYXxuHtB/ACileHNFPfajGfvRhJU4DAc8mLA1D+Ny8jE+Ow+jsnJg7Ixa1OopfB7x\n70CWGxKDu2PYaPmSs25VqHKCTo9gMUifjzJbAUvZ9BO2H2zS3uih+yYNhcsvvobB4IObkVfSXCCf\ne3a92M/iJ8ClVywXXwOM26PC0pKOKKy3CCGLAOQQQm4AcC0A5Y0ATgFKS0uh1Wrx448/YsCAAeme\njiKkgqKkpARfffWVbFyn06G9vR2EEDidTmg0moQ0EJ1OB6/XC7/fHxQg4dpGPD4QJXABEj+EEBQT\nK4phxdkoAQA00w64szuwrbUBj9TswiFXKwaaszDWloeZQ7MxoSAH+aZQDsXOb8VOer2ekRvkDTTH\nipWJZ4VMad+tcYheG3pabOHLtLkdJDukmXTUt8Mo0VQuL5Cb8yrPYlf33bTcAuoWv1clYcB+HcOu\n5af4xYVLkZ1jwrMvX9zl8alAaRTW/xFCZgFoQcAP8gdK6aqkzqybQQjB9OnTsXr16m4lQMI1kOLi\nYlRXVzM1EKfTCavVCpfLBaPRmJATXcit8fl80Gg0MJlMItOS1+uN2V+hRChkZWXB4XB0ewGSKVVx\ns4kRo3LzMD034Edz+rzY1d6ErW0NeHXfYfxq3Xb0NhtxemEuJhbmINeThxKdpUsNvbYqCZFgWgAx\nPO/4H3hdtP3Nv+Vaxc92yksfmbQULsbnkj1NfvEft+aLtvvtrpcnCDEQzt6cIb4QpU50K4AvKKWr\nCCFDAAwhhOgppdwjGcbMmTOxYsUK3HjjjemeiiJYGkhNTQ1OnDiBoqKi4HhubqDqqdD21mg0Roxk\nigRr0ejo6IBWq4XVahUVchR8IOHVgSMtOmpqIN1FsPQZKe+wV1+V/OLY0cqTmLU6TLAXYIK9AOVD\nPfD5KfY0tWJ9XSPW1NRjbfUBeODHSGMuRppycZa1EEOt2dAnOXeqYAT7u7Nvm7qf95y+bP/aY8fl\nGpBW54cvLFmRVVrepyHQ+sVjQatf+p8fACg3YX0N4KzOGlgrAWwEcBmArmuhn2LMmDED99xzT7dJ\nKGxubpYJkKNHj6Kmpga9e/cOjguRWmazGS6XC1arFa2t7GY+kQgXAILwcTgcMBgMIISIepH4fD5k\nZ2eLhEo0v5JSH4jD4VClEKSauDsoDEb5+/P7KTQaZSuF201hMIT2jbTYR/LRycflDoqi3vKSHl2h\n1RCMzMvCyLwsXDukL3Z+S1DrdWKnqxG7XI3408FtOOpyYKgtGyOtORhuy8FQcw7KjHIthRAKSsVj\nLMd6TPNLoI+8q84JU6Gy0OBsA9AsiQfpO7JNtH1QKy8tb2uSC6TeVc2ysXSiVIAQSmk7IeQ6AAsp\npY8TQrYmc2LdkfLychQVFeG7777DmWeeme7pREWqgeTn50Ov12Pz5s249tpQnUxBmOTm5sLpdCIr\nKwsnTrDrCCnB6/XCYrGgra0NBoMBBoNBJCy8Xq9iARJLGG9WVhYaGhrSqoGwhMK6z9nmCHuW8jof\n330p1koqBrI1ksCCK3+fJrP4gcdoTUzIejoo9Ayh2EtnRi+bGTNsJSgo1KGNerG7rQm72pqw6mQN\nnm7bA4fPi2HWbAy35mB45/9DeptkxQpHjw/5Pfw+Ck2n45xoAKpg+gMiaCbSEiusz2zFmfJu3gM3\nngd/llyoPD9dHul10xftotySSA54KYJWQhUECaQCxQKEEDIZAY1DCFHgdaQZXHrppXjrrbcyXoA4\nHA5oNBpRJjohBKNHj8bq1avxyCOPBMdLSgJO0/z8fLhcLlgsFni93mAUVSxQSuHz+WA2m+FwOKDX\n60VRXpRS+P3+oL8ifG7S84T/L/2bhaCBpEqAlJQb0NEhPueJ4z3M6ksoQOWL2eb/AlJBZc8iotIs\nDQ0+AAQDkYuBxlycbwSyBmjQ4HVjj6MJux1N+Kj+KB6r2gm6h2JUVjZGZecE/mVlw4LQwtxYH5IY\nOXniZc3rAnQxWPgaq8U715+QZ6Zn58qXzrKH/80+4fO/kQ09NUP8u/m/0pOyfdZ+YIfHJRbs9aUZ\nkz0BQLkAuQPA/QDep5TuIoT0B/Bl8qYVG5mQByJw2WWXYcaMGXjiiSdiXlxTidTPIXDmmWdi9erV\nGDVqVHBsxIgRAIB+/fph+/bt0Ov1QX+IzRZbIpnX64VOp4PRaAxqIOHNrATHus1mUyRABHMUpVSR\nAJH6QIYNG4aDBw/C7XZ3Gx9IJpGVw34Srj4qH+s3TLwYHtojv9+eDsAOAyaaijDRVATkdz505Luw\ns7kZ25ubsKSqEjtbmmAg2qCWUqGxY5A5C4UMSfHjV+zfYW4vL0icluZYzIvOWgfMUUrRW7UUDokD\n/ozz5Wbite/YQT0EmgRiDVKeB0Ip/RoBP4iw/SOAX6syAxXIhDwQgaFDh6K0tBQrV67EnDlz0j2d\niNTV1aGwsFA2fs8992DOnDkiwWA2m1FbW4u33noL69atQ69evYL+EKUCRFic3W43dDod9Hp90AcS\n3o/d5/NBp9PBarWKqvQq0UCi+TZYGohGo4m7TW9JSQmqq6tjOoYTO4QQ9DaaUdzLjFm9AuZUSil+\nqHVil6MZu9ua8E5TJfY5W0BBUaG1o0JnRz9dFvrp7Cjx65mOek+kUiQkem+P1mZ5ZJXXrYOO4SZa\n3mehbOy8w9fC3DskVO7qKy/h8rcqLRwSx3r2+AScPp2kIw+EEwO33nor/vnPf2a0AImkgdjtdkya\nNEk2XlRUBJ1Oh5aWFgwYMCCogSglXIDo9XoYDIagBhIeheX1epmRWUo0kGgCICcnBy0tLSIB4vP5\ngv6YWMuc6HTp+fl43IFGTsmE+iF7Olc7SZZV2r6rfcXbBGUmG8pMNszOL4XRHJhfnbsD6yobcLCj\nFds66vFu64+o2+hEP7Mdgy1ZGGjJwgCzHQMtWbBSPfP9SIf0ekDJV+PH7ZE+FPmi/+8+L4u2rzw4\nHzpJva7fjekNKddWN6G5A8jOkM7GXIAkgcsuuwz33Xcftm/fjtGjR6d7OkwiaSBdodPp0NzcDKvV\nCpPJFJMAERb3jo4O6HS6oOO8Kw2kKwEiJDLGooEUFhaisbFRdozdbkdbW1vMJqx0mSj3bZCvHoQ4\nRYuxz0uh1Slf7KUmGdbTudvtQyKFDqXRZlk58vvndsV/fkIIiowmTLIWYZI19HBkyKI44GzFvvZm\nHGxvxZqG4zjobIUfFIPtdgyy2TDIZsdgmx2D7HYUWgygYVnmE34i17LX/7cNSnNpTVkauFq6/m4e\n+ZXcf9L/k7tkY8+emxnOcwEuQJKA2WzGfffdhwcffBAffvhhuqfDJJIG0hU6nQ4OhwNWqzVowlJK\neJ9zwXEeroEI/UYEDcRms6GtrU12vIAgQLrSQDQajWgsJycHLpcrmPU+adIk3H333XjggQdQU1Oj\n+L0IqCVAtFowF6NYnvgtVvFcjlSycxIGDWOHnjaeFD8l5xcre2+s8FoAMJvlAmjrOvFj/MBhseSu\nsOqesGuhSEOYzVodRtlyMcqWK9qvxe/GQWcrDrS3YE9DKz46WoMD7a0wGQiG5loxLM+GYblWFLbl\nY5A1C1n6kONh4FD5fZQ2zBK49Lli2diSXx4TRYr5/YF5h+Opd0AvLYPS5gRsZsDhBNilt1KK0kTC\nxwE8DMCJQB7IaAB3Ukozv6lCmrj55pvxxBNPYN26dRkZkVVbWxuMrlKKEPJrs9lEWoMSWBpIW1sb\nevfujdzcXBw+fBhAQMAYDAbk5uaisTHU2EdqXpJqIKzyKn/+859hMpnw29/+FkBAAAoFIwHgzjvv\nxCWXXILHHntM8fsIRyg/3xVSTYAlLFiLEQAcPtQBtUubq01+ObvgZdUBdbUzk13+BN/WFFrQw81t\nxeXia/s8bF+H3mNEvsGIidmhHAxKKbQVjdjX7MDuxjZsOtGCbdXHcbC9FVatDn3NNvQz21BEzehr\ntKGP0YZigxk6osH+PWyNfLw7CxqDeE4Wi3jb45Tfry0/lRdnHXVu2JfnrwuY10slSjWQn1JKf0cI\nmQegEsCFCDjVuQCJgMlkwuOPP46bbroJmzZtgsGQZKN1jFRVVeGMM86I6Zg+ffoAAHr16oWcnBzR\nAh+NcA1EasLKz88POsw7OjpgNBpRUFCAurq64PHSyryCqUs4r1TbAAKaYHh/Fq1Wi7y8vKAAEZ7u\nCwrkSVxKCK9YzKK1xYfqI+J5DxmR/D7lmYpUM4glkikp82HmUhBYWrMxVpONsfkA8oGWXC00OqDW\n7UJleysqnW3YXtOMb5vqcMzbjgZfB3ppzSigZvSGBb1hQS+Y0RtWZEGPjh31smvpDQFflgDrXjA1\nUJ0G8PoBQ2YYj5TOQthvDoC3KaXNqag4SwjpB+D3ALIopZcm/YIqM3/+fCxduhSPPPJIRkWKAQEB\n0rdv35iO6d+/P4BA4ciCggJZL/OukDrRTSYTmpqaoNfrkZ+fH1zUBQFSWFgoOn8kASKclxDCNGGF\n93yXXksgVk1M4K677sKll7K/lufbYru3sRDJVJLIsdLFSqkTnWV6AdiZ8EW9xbGnrc1yrcJqixQZ\nJc83CX8vREODfovwpMLOmYNl6opUtZdSsSP9h10hzSILNoyGDZOzQ98ZN/Wh2tuOo552HPM5cNjb\ngm99x1HtdcAPin8usWBgjgUDsy3ol2VBvywz+k3KQl5nFQYAOHZQfi+8Hgq/pJSJcXIf9v1JE0oF\nyMeEkL0ImLBuIYQUAkh6Na/OjofXE0LYHWEyHEIIXnzxRUyYMAFTpkzBzJkz0z2lIPEIkLy8PLz6\n6qs477zzsGXLFtlC3BVSE1ZWVhaOHDkCo9EoWtRdLhdMJhPy8vLQ1NQUzAth+UD0en2wCCPLhKXV\nakUCxGg0Ii8vTyb4SktLFb2Hq666Cq+99lpwOz8/P+K+F2QlT4BIe4sDgM2uEZnGIkU4HdrP/tkG\nFvfQAZ4OuUmlwyUPNXW1sjXrgiL50tLcGH8Iam6Z3Em0dmXofNMvCq34e9eL30t+IXuZqznKNr8N\nGqkT3TvWvbTYQvfHAi1yYEA/pz1YUl6gxe9GwaRWHGxtx8HmdnxSeQKVLU782OyEnwJ9rGb0tVqQ\n67ai1GhFqcGCUoMFvQ1m9CqXfwa+dh+0Fi18Tj+rB1XKUZoHcl+nH6SZUuojhDgAnB/rxQghiwH8\nHEAtpXR02Pg5AJ5GoC/XYkppfEbpDKSkpARLly7FFVdcgW+++SYjKvU6HA60tbXF7EQHAosogJg1\nEKkAsdvtqKmpgd1uZ2ogWq0WOTk5OHnypEhQCAgaiOCHYWkgLAGSn58fLMMiPP0p1UCkOS9d1TsL\nLjgEojWX+ilIEsw2g4eLTWMH97EFhdRZnnFI7peAtLwIIPYned0I5mBIS5nINZIAkTQQqZbGihZj\nMXIiGDXNjGiqtaGfjmBmp0kMAI4fdaPR5UWNtx3VnnbUwoldrU343FONak+nWWy/CX0sFpRbLCg3\nW9HHbEH/fzRgcLYNRo0OfTKg+alSJ/olAFZ2Co8HAIxDwKl+PMbrvQLgGQDBesmEEA2AZwHMAFAN\nYAMh5ENK6d7wKcR4nYxi+vTp+MMf/oDZs2fjm2++ERUqTAeVlZXo06dPQgUfi4uLsXbtWsX7C4u7\n0+mEyWSC3W5HS0sLbDZbUIBQSoMCBAhoBkePHg0eG146xefzwWg0iqKxlAiQ4uLiYMSVIEDC2/o+\n8MADWLt2Lb78Ul5oQZr30VUUlk/rh05HYJVER7k9gHSFzMtn/wwj+wdSULMrwqLLnouyn6c0oIBV\n68uWxT6Xo16+b98BIZPYj9tDn31+oXjfE9VsoVlbzU7u0OnEwREs/4TFSkShvgCwfjX7fBUDdbLe\nJ2On+wA/AFgAWHB0jxF6Q+j36Pb78Z9vGnCi1YUTLU7spg6sofWo0TswMbcAfx50GvNaqUapCetB\nSunbhJApAGYC+BuAhQDkGWddQCn9hhAi1e0nAthPKa0CAELIcgS0m72EkDwAfwUwlhByb3fWTG65\n5RacPHkS06ZNw2effRZ0SKeDXbt2BcuTxMugQYPw6quvKt5fWNzb2tpgsVhkEV1GoxGNjY0iAdK/\nf38cOHAAHo9HVAkYCJmwBIQaW+FotVpRrovBYEBJSQn27Nkj2q+8vDz4d21tbUTNjBCCO++8E089\n9RSAgEBZuHAhbrnlFtF+Y015KIql+FKMsMN+xQt5JBNWtJLsAuG1pULHyhd3SzY7GaL5hLzWRuWP\nYi1y1DhWeQ/lAincJ6PVUfi8gb89bgq9Ifo5wrsYhiO9dyxfzaCR8qXzeDX7fHt2yKOzBl9ghzZM\nYGx9vQluidLYy2BGnseMoQiFH/9gr8f61jrUHPVgJOM9pRqlAkT4lswB8AKl9BNCyMMqzaEUwJGw\n7aMICBVQShsA3MI6qDvywAMPwGq14qyzzsKnn36a8CIeLzt37kz42oMHD8YPP/ygOFdBcHY7HA6Y\nzeZgBJMgECoqKlBZWSkTIHv37oXBYAhqLML+Qr6IyWSCy+WCz+djaiDl5eX49ttvMXnyZFgsFpSU\nlODYsWMAQhrIaaedhk8//RTvvPMOzj777IialUajEQl+s9mM8ePHy/b7v5KYnqsQadGMVFV26Ch5\ndVdbnnhHaV6IQKQKv2pXuPd6/NDpxRquVPB5PH7oJfuwwnWF+cnyJNwhn8zgCSEt4z/LxecYFCHf\n5HRGgiAQqMcVTmODV1QEEgAoKIjkMxsx3sA0iX33pVMm8Ju3O0W/mxnz9LL352rTysx2ezsVY6lz\nPV0oFSDHOlvazgLwGCHECGSEDwcAcNFFFwX/HjZsGIYPH57G2XRNr169MGfOHEyePBlXXXUVJk+e\nrNq5lZqUVqxYgTPOOAPLli2L+1rCE//TTz+NXr16Rd3/4MGDAAKF3E6ePIkff/wRALBp0ya0tbVB\nr9djyZIloJSivr4ey5YtQ0NDA9auXQutVguDwYDXXnstuIDX1NQE2+sCgcz6994Tl9hev349jEYj\n3G43Kioq8O6772Lfvn3BuXzzzTci38qMGTMAhBpoSTlw4IDIbLVq1SqUlpbihRdewPLly/HFF18A\nCITvCkht4qwoI0sWwDJLRTJtJYJSDYQlvFj9N1jRWgCwc6v8qbv/YLGfZi/jyfx/Stlhzm0nWdUD\n2W9EOvfIDzlswS0VbBUDDbIOkHqDH4SIP7Nje9k1tEr7GOWChfpEWo6zlRF0UKeRzbut1Yt2jx/1\ntCPm3+/u3btl2neiKP2GXgrgHAD/RyltIoQUA7hHpTkcAxBuzynrHFPMu+++q9JUUsPll1+OG264\nARdddBG8Xi8ef/zxqDkFsZy7KyiluOuuu/D222+LciTi4dNPP4XNZot6TSD0GQ0fPhwulwtXXHEF\nXnzxRVx99dXo168f1q9fj7KyMuTm5qKpqQmXX345BgwYgAsuuAB2ux2DBg3C6aefHlzk9+zZgxdf\nfBEajQbt7e3QarU477zz8JvfhEpnT5kyJTi3q6++GkDA/yMUkZs2bRrOP58dC/Lwww9j7Nix2LFj\nR3DspZdeQnt7O/72t78BAC6++GL069cPQCBEWBAg4SjrTcFeyCItfF4PhU5iU5c6fiP5MEor2D/5\n+uPiSfYqkx+b30u+uPu87Iz3eOlwURhNyhZ7gzG0yIc72XMlpdYD+RZyAa03sse3rREnyM6+VJ4w\n2uGQS02X0888Hyv6bOBpWpH8Y32m7Q6/zGx42plavLO+EUsLdiD/00/Ru3dv9OnTB+Xl5SgvL0dZ\nWVmwr0801EjFUBqF1U4IOQhgNiFkNoD/Uko/i/OaBOJvwgYAAzt9IzUA5gOIKcUyk8q5K+W0007D\n5s2bcffdd2PkyJF4/vnnce655yb9ugcPHoROp4s5hJfFeeedhxdeeAE33HBD1H2FPI7W1lZYLBaM\nHXbl47wAABwqSURBVDsWl19+eXAeQ4cOxYYNGzBy5Mhgn/YxY8bg+PHj6Nu3L4qKilBbWxs8n+BQ\nFxzbbW1tTB+IlHCHuWAOY6HRaFBcXIwdO3YEy6pYrVZR0qHFEjIlhWu94Qt3US/xD5nVz1yrA1gL\nT6SFr/qo/Mm9pMwg2vd4BAdx34HKnhlZAoidQ8IWfgYj4JbIFqlvQbpgAsC6Vezosf+Za4b8XoQW\n8aaa0CLv97tFC2+k3JdIvhKNFiKTFUvLYi34Oj2F18Muzij1R9kH6KENu/am5zqgkeXYyJ33c08v\nQC+7Hq0eL3yzZ6Ompgb79u3D6tWrcfjwYRw7dgwNDQ2w2+0oLCyU/ROiJ4XKD4miNArrDgA3ABBs\nBEsJIS9QSp+J5WKEkGUApgHIJ4QcBvBHSukrhJDbAXyGUBhvTHpWpiXpKSUnJweLFy/G559/jptu\nugnDhw/H//7v/2LkyOS5x1auXIkZM2ao8vQxb9483HHHHdi6dSvGjh3b5b5CKZL6+nqYzWZkZ2fj\nX//6V/D1cePGYdGiRSgvLw8KEJPJhH79+sHpdKKioiJo9gJCfUUEExarVS0ryiy8/IigzURCcKZf\nfPHFePXVV0EIASEElZWVqKioEAkTQYAs7yXO9ZGGipYMkKsjjiYN03YeqeWq3ii30yutbBtJq5Eu\nVg0n5PvUHZfnTUwdynain/Uz+RNw60lJP5AD8uNYggeIkMQoEnIhQaa0adfRKrYVvqRMrHFQP5Fp\nkQd2yj/HSbPZquaWNfJltmGH+L41NSirzGgyaHF2aR6g0yD7F79g7uP3+9HY2Ii6ujrRP0Fw1NXV\nJdRRNBylJqzrAEyilDoAgBDyGIBvEQjJVQyllGnroJSuALAilnP1JGbOnIndu3dj4cKFmDFjBs49\n91zcd999GDp0qOrXevvtt4O1oRLFYDDgT3/6E371q1/hq6++6jKsVdBAjh49yhSQo0aNwg8//IBj\nx46JXl+5ciU8Hg+2bNmCjz/+ODguJBwK+Hw+OJ1ODBkyBBs3buzSJCiUoo8mRIcNGwYAePnll1FV\nVRUUPn379oXH4xG9X5vNhkOHDmHXmTeLznGyXiwBygZrZI7RumMAS9MYOIL987QyXDTH9ov3PVnH\nDl3V6dnXam4UL2CFvZV1LJJmbXc5LskmZwmLWRezr+t2AtJ519WG3mNeL73s9XjR5xjhYfQjD8eQ\nb4b7pFgT9FmN0Drkx2nzDPA1SISv3QC0hsaMhWZ01InPZywwo6NePKYdUQCD2w2PKXIdNo1Gg/z8\nfOTn53e5hqTMhIWAaA//hvmQQbkZ3dGEJcVoNOI3v/kNrrnmGjz11FOYOnUqJk6ciLvuugvTpk1T\n5cPes2cP9u7di1mzZqkw4wDXX3893nzzTfz+97/Ho48+GnE/oYRJVVUVpk6dKnvdbDZj3LhxWLx4\nMd5///3g+ODBgwEEvuwPPvhg8EnU5XLBbDYHk/tsNhsaGhpgMpmCY5HKsxcXF4u0mUjcddddmD9/\nPgghMv8GqxdIRUUF9uo18HlCT6LSxEFHo3yB9Pm8TA0kUpkQlp9AbqaJUL4jQpl3qbbDMp+wtByp\nMBTwuOQvmG3iJ/Tp8+T3UEkvcxYkywTaEjB/GQtN6KgLmcKk2wKGAjPc9XJz4NTPxX6x6t99BNos\nPn7G1ttlx+1vYahUAIYyZKKGiO/PeQZ5bph0HwD47kSoavQU5tWik/KOhAgkAH5PCBF+2RcAWKzK\nDFSgu5qwWGRnZ+Ohhx7Cvffei6VLl+K2226D1+vFL3/5S1x55ZUJOb7/9Kc/4fbbbxc9uSeKVqvF\nW2+9hcmTJyM7Oxv3338/cz+Xy4W8vDxUVVVFLAGyYMECrF27FmPGjJG9NmzYMPh8PuzduxfDhg0L\nJiT+9a9/xe7du/Hggw/i+PHjoqKVUp+IQJ8+fRQJEJPJFKz/pZR+g8SrxZbvxA5ZVvbzscPskhrZ\nuWwfzfoV8irIZgtL45AL0ONH5OVIAGDAMHFJksp98vNJe40HSCCz3WYC2iQLu90EtDL8IJIndgDQ\n55vgORnYt+j1kNt0DhXvpyPscis6TYSn+KY60aZt4SXs/SS0ewksOvm9bXMDNkPXYy6fHyZt9MBW\np4fArKdwMnwtSkl5R0JK6ZOEkDUICb1rKKVbEr66SvQEDUSK2WzGDTfcgOuvvx7r16/H66+/jgkT\nJmDIkCGYO3cufv7zn2PEiBGKNZPXXnsNmzdvxssvvxx95xgpKCjAV199hVmzZuHYsWN48sknZdWH\nW1paUF5ejo0bN0bMxL/55psxefJkppAkhOCiiy7CkiVL8MgjjwRNWOPHj8f48ePx3HPPicxMACI2\nzEpnEmd9jcIuRN0FqwVwyAUayTKCtkjMOVlGIGzM9PQV8uMiZQd4m2VDk3XqRC5KafUC9rCVsd1L\nYZFobS1uH7IkJdoX7ZHn5wCAk6GNSZnZV/7+ftYnD3ZJnsxLm0PveVa59AhlpFQDIYRoAeyilA4F\nsFmVq6pMT9JApBBCMGnSJEyaNAlPPvkk1qxZg48++ijYLnfKlCk488wzMXnyZFnFWgA4duwYnn76\naSxbtgyrVq0SRQ6pSUlJCb755htcddVVmDp1KpYvXy6K9GpsbMTMmTOxceNGDBkyhHkOrVaLcePG\nRbzGLbfcgilTpuDBBx8MaiDh16+srAwKrldeeSWiqS7S9dVAm2uBrzG0oBoLLeioC23r8szwNkht\n3RZ01MsXYW22Gb5muYnFUGiCW2KSkZpjDAUmuOvlT/K6XDO8jfJzShd8fZ4ZHsk8tblG+BrFQsH8\nyK9l5wKAHK+81L+fJk94tnkobJ1RUQ4PhTUsQir8tXBaOiiyZLWrgPv2ix9+Sq1yra2yRaylAAB8\nBHqDegl+j26V30PqNoEYALCVVkWkVAPprH/1AyGkD6VUndgvTlwYjUbMnj0bs2fPxjPPPIMffvgB\n69atw7fffouFCxdi3759uP/++1FcXAytVou6ujo0NTVhwYIF2LRpU9JrcOXm5uKDDz7AE088gQkT\nJuDhhx/GjTfeCLfbjdbWVlx55ZU4dOhQ3Ga4wYMH46yzzsI//vEP2Gw2UcJfSUkJ9u/fH9RAuuq/\ncuuttyYt0m3gsl+KtodISpr4GCYfDdhPqNJMZ4FitzxNyqITt6eLtFhbCNss1uwTV1buo5U/3bt8\nrcxj44X1ZB9psXd4AKvElxC+72PbQoLNKgmLPtnBdog3NrIX+wh5pCK8bgKdRFjs/iqPuW//Sc2y\nfX0dgDbMgtbuJLCYowuf9i/C7o0yy1pSUeoDyQWwixCyHkCwUTWl9LykzCpGeqIJKxqEEAwdOhRD\nhw7FtddeCwBYunQppk2bhtraWvh8PuTn56OioiKlvbs1Gg3uuecezJkzB1dffTXeeOMNzJkzB4MG\nDcKZZ56JFSsSC7Z75JFHMGXKFMyfP19koqqoqMB7772HiRMnRj1HTk4OzjsvOV/dNi+FLc5eHd2R\nVo8Pdr38+yXVAgC5cHhut1yY1rGb+kFDWH670PGG6O6DuOlwERhN4sV97zq5sND4/QCjXti+TXKJ\nZGsWC7UqxnFjz22GXmow6AxvS+TtpsOJ/qAqV0sSPdmEFQsajQZlZWUoKytL91QwfPhwrFu3Dq+9\n9hr+9a9/4S9/+Ysq5x0yZAgWLFiAZ555BkuWLAmOjxkzBtXV1cjLYz8Fpoq/7W4Sbd8zqgi2sAW2\n3euHRSf++bd5fKJ9Qvv6YNHJx51ewBzll8t6ug9cyw+bXr78yM0+8v1YQuEPG9k9YUyMZ5ZWSSXi\nQhWbM7rdBIYYzUc+D6BlREh5XUC44vj1h4zm44y5Wxzs/JOWXLnwIz4/aBSn+YE35McZ3YmX40+Z\nCYsQMhBAL0rpV5LxKQhkjXM4EdHpdLjuuutw3XXXqXrexx9/HIMGDcK8eaGGCELklrRnR7p5bk+t\naJtVIb2pg62x9LawF0SHV77/dUP8sIYt+Isi9Od2edl97N1+IHxx91O5uSpw+swo4gcAng4CvTEw\nn+++D9VjmzG5FoYwjUEqEASqt7DNeWaHxPyZhG7UeSfEn0NDbyv8CqKwMo1oGsjTAFhxmc2dr81V\nfUYcThRMJhNuv10ch19YWIif//znzByTU4Hn9zii75RhdLgJjBKtweMh0OtZZV3kDupdX4aZhsJc\nNt+uyBHtZ3RFeGqPXMkmKhqvH36dsgVfyb5FR+UCuy2bIfX8FNAkZsJSk2gCpBeldId0kFK6gxBS\nkZQZxcGp6APhyPnoo4/SPQW43RoYDKFsOFcHgcmYOU/tqYJlUpIKga/XF0gPg9fDXhr9DBlggrKS\nJZFQKgRY5qbSH5tk+zUVmJlmqX575WY+r5awU/ijYG5P3ISVSh9IThevqWjBTAzuA+FkCl98Lk6S\n9BnFzoB5047DJHHIujsIDAwh43IR2b6AMqHU0UFgZOwTyVcgnYNSn0IkjWHdGrlw0Eh6WJCuVpcU\nUFIpz70AgJPFYjNoYXWbovNJzVJdYXCLU+79iro/qkMqw3g3EkJuoJS+GD5ICLkewKaEr87hnGJ8\n+ok8C98foXWtvoMdiuuyyT2/558rLo636j/sbH+axX7iJi2SBY0xp7Om1ot8CwCwcUOE7o0RenUk\ni3BtQuPzi/wJShzWaYdRPKw7zDuaAPkNgPcJIVcgJDAmIOBWyoCW7hwOBwA6nARGBXkEibB+JUNl\nUDnoLRbfQvgCW76vITguFbw6D1uYeRnRaIBcADGJVEUyTvRu+RxzOuSBED6F9yZVdClAKKW1AM4k\nhPwPEGzB+wmlVN45J41wHwgnU9D5/PCm4anx639LQk0zxsAcG8X75L4FADgyWC6piqtagn/7IgiD\neCg6InZodzBipo0uuXboMaYg36pTcGWzHOwKSXkeCKX0SwBfqnLFJMB9IJxMoXS/uPzEj2PYJp5M\nJxZNIBXn1Hp88DFyZRJCZS0ilvOxayVHR+ujeO2DK+M4MkTKiylyOJz4kC58rEU0Vlu3koU40jk1\nHj/8jKd14veDhtWOL6mSO5hP9lKeq8AyA0md1jWjc+BXmEI+YGe9bMwb6R5IFvJIi7XOy65MLKMz\ndDYaercfS96TL+5XXLZMfhUtwdI3Q+2Rbr/6bbQ0sbsxZjJcgHA4SaTvbnamdjiRTB8NhRamEOjz\nQ4Ns7ER5lmi7sJqdF6Lxs/0BHmP0pYCVq3DYns8USJEinMIp2yx/HyxzUawoFgwKMTvlobORAh+Y\n84kQDBHOM6/KC1tdPW+JrP+KmgqTGnABwuFkKAW1ypMDFTl+k0CfnWwBqaZPQhEKtYTuBKsfmpK2\nxamECxAOR0UI0lPsQ6odOK1JqL+RwaiRYBcTDH9Hdo56jdq6Cz1CgPAoLE6mIA0hdaciMudURW0n\neAxoKPDa+4k5s6ORlWOS+UWyVBBS6ajGm9HwKCwOpxugZMGPwRQVHkpL1TRfpVEwhcPyi6gBj8Li\ncE5lVF6IFV8jwYVV74me7W5tY9e3irXUx9J3Qu1yb7vuXTQ3yyOcCGH7FDT0/7d357FylWUcx7+/\nsliKWAJ/GGhDNSlbFYOaIMhWdiIhQIuyFoILEZLyhwEh0WgDxoAaSCyIEipL9VKLpewEECmEGgmL\nUOG2gspWMOACKEtY2sc/zrmd6enMvXPPnDnnzNzfJ2nunfcs886T2/vc867Ur7OhppxAzHop+4u8\ngL9uN1+36Sij7C/jrd9uvefpu9lt/dpoNTM6Wctq4/dtO5S2Rq5YNHfD90NDQ5x88smjnA2nH7t4\n1OPW4ARi1kPZIaCt/upuO4N5AEcWDYoi+iIGgROIWYGmTp3csrkkjyltmnO6GiLbJin1w8J9Vbru\n5nlVV6GWnEDMCtTcXAKdNYdofXTfCdxh09hH/9u6aSur63Wdin56qknHtm1sIBKIh/FaP9vmjfda\nlo9ntnO2z6L0iXwZrRJVN0mpVZ/M+jZ9S90sNNgLvRqOm5eH8WZ4GK/ZxKaAxctOGfvECvRqOG5e\nRQ7jdaOnmeW3vovhrh4q2/cG4gnErG8U0ZZfo/6AVgsNdqrVnhp12zDJRucEYlaiVktgjHfewWYf\nBotv2ri5Zt6cX3VdN7Pxcro3s3IU3WTVdL+JuJBhHfgJxKyHsiNwSht9020zV4vr2y390akt3l+/\n0XyKbmd8l7GgoY3OCcSsh6oagdPczNW8fEenTV3tdtfL8rIfE1utm7AkTZF0raRfSBp9ARszswJk\nnxK9bEl7dX8CmQPcGBF3SFoCDFVdITMbbHWbt1FnpT6BSFok6VVJqzLlR0paI+kZSec3HZoOvJR+\nP/bGwmaDpE2HQ6sO42yZO5WtDGU/gVwDLASuHymQNAm4HDgEeAV4RNItEbGGJHlMB1aR7BZqNmGM\np5P48l8e3+PalKRGc1xsbKUmkIh4SNKMTPFewLMR8QJA2lR1DLAGWA5cLuko4LYy62o2iKZuO5k3\n3yhmteBe2GxdcN3NmyZNd9bXUx36QKbRaKYCWEuSVIiId4CvVlEps0HU7knFExEtjzokkK7NndtY\nQnv33Xdn1qxZFdamOitXrqy6CrUxKLEYGup+3EjeWBTx3nnuOZ73HW8dB+XnIo/h4WFWr15d6D3r\nkEBeBnZqej09LevYsmXLCq1QPxtru86JpF9icffS9s0zRX2Gse5z1283fQLp5L1Hq/tY9Wh3bav3\nHc+546nDRKYC+pqqmAciNu4QfwSYKWmGpC2BE4Fbx3PDBQsWFLa+vdlE5FFcE8eKFSsK2wKj1CcQ\nSUPAbGB7SS8C34+IayTNB+4hSWiLImJcz1neD8SsOwMzisvGVOR+IGWPwmr57BgRdwF35b2vdyQ0\nM+uMdyTM8BOImVlnvCOhmU0ordaj8hpV1RuYJxA3YVm/yi753lxuCa9PVRw3YWW4Ccv6mX85Wpnc\nhGVmZpUbiATieSBm9ecmuXro23kgveImLLP6ad6+1urDTVhmZla5gUggbsIyM+tMkU1YA5NAPITX\nrHzt+jXc31Ffs2fPdh+ImVXPQ5AntoF4AjEzs/I5gZiZWS4DkUDciW5m1hnPA8nwPBAzs854HoiZ\nmVXOCcTMzHJxAjEzs1wGIoG4E93MrDPuRM9wJ7qZWWfciW5mZpVzAjEzs1ycQMzMLBcnEDMzy8UJ\nxMzMcnECMTOzXAYigXgeiJlZZzwPJMPzQMzMOuN5IGZmVjknEDMzy8UJxMzMcnECMTOzXJxAzMws\nFycQMzPLpbYJRNInJV0taWnVdTEzs03VNoFExHMR8fWq69FPhoeHq65CbTgWDY5Fg2NRrJ4nEEmL\nJL0qaVWm/EhJayQ9I+n8XtdjIli9enXVVagNx6LBsWhwLIpVxhPINcARzQWSJgGXp+WfAk6StFt6\nbJ6kSyXtMHJ6CXXcYLxLoox1/mjHWx3Llo33dZEci/z3dizynz/WdYMci04/c7vysmPR8wQSEQ8B\nr2eK9wKejYgXIuIDYAlwTHr+4oj4FvCepCuBPct8QvEvivz3diw6P9+xyH/dIMei3xKIIqLQG7Z8\nE2kGcFtEfCZ9PRc4IiLOTF+fCuwVEefkuHfvP4CZ2QCKiK5aePp+McVuA2BmZvlUNQrrZWCnptfT\n0zIzM+sTZSUQsXFn+CPATEkzJG0JnAjcWlJdzMysAGUM4x0C/gDsIulFSWdExDpgPnAP8DSwJCI8\nvs7MrI+U0oluZmaDp7Yz0buhxA8k/VTSvKrrUyVJB0p6UNKVkg6ouj5VkzRF0iOSvlR1Xaokabf0\nZ2KppG9WXZ8qSTpG0lWSbpB0WNX1qdJ4l5AayARCMqdkOvA+sLbiulQtgP8BH8GxADgf+E3Vlaha\nRKyJiLOAE4AvVl2fKkXELemUgrOAr1RdnyqNdwmpWieQLpZB2RVYGRHnAmeXUtkeyxuLiHgwIo4C\nLgAuLKu+vZQ3FpIOBYaBf1LyCge90s1SQZKOBm4H7iyjrr1WwLJJ3wWu6G0ty1HaElIRUdt/wH7A\nnsCqprJJwF+BGcAWwBPAbumxecCl6dfj07IlVX+OimOxQ/p6S2Bp1Z+jwlhcBixKY3I3sLzqz1GH\nn4u07PaqP0fFsdgRuBg4uOrPUINYjPy+uLGT96n1RMKIeCidxd5swzIoAJJGlkFZExGLgcWStgIW\nStofeKDUSvdIF7E4TtIRwFSS9cf6Xt5YjJwo6TTgX2XVt5e6+Lk4UNIFJE2bd5Ra6R7pIhbzgUOA\nj0maGRFXlVrxHugiFts1LyEVEZeM9j61TiBtTANeanq9liQwG0TEu8BEWAq+k1gsB5aXWamKjBmL\nERFxfSk1qk4nPxcPMCB/XI2hk1gsBBaWWamKdBKL/5D0BXWk1n0gZmZWX/2YQLwMSoNj0eBYNDgW\nDY5FQ+Gx6IcE4mVQGhyLBseiwbFocCwaeh6LWicQL4PS4Fg0OBYNjkWDY9FQViy8lImZmeVS6ycQ\nMzOrLycQMzPLxQnEzMxycQIxM7NcnEDMzCwXJxAzM8vFCcTMzHJxArGBJGmdpMcl/Sn9+u2q6zRC\n0o2SPpF+/7ykBzLHn8ju49DiHn+TtHOm7DJJ50n6tKRriq63WVY/rsZr1om3I+JzRd5Q0mbpbN5u\n7jELmBQRz6dFAWwjaVpEvCxpt7RsLDeQLEVxUXpfAccD+0TEWknTJE2PCO9CaT3jJxAbVC13HJT0\nnKQFkh6T9KSkXdLyKekubn9Mjx2dlp8u6RZJ9wG/U+JnkoYl3SPpDklzJB0kaXnT+xwq6aYWVTgF\nuCVTtpQkGQCcBAw13WeSpB9Jejh9MvlGemhJ0zUABwDPNyWM2zPHzQrnBGKDaqtME9aXm469FhGf\nB34OnJuWfQe4LyL2Bg4GfpJuTAbwWWBORBwEzAF2iohZJLu47QMQEfcDu0raPr3mDJIdELP2BR5r\neh3AMuC49PXRwG1Nx78GvBERXyDZu+FMSTMi4ilgnaQ90vNOJHkqGfEosP9oATLrlpuwbFC9M0oT\n1siTwmM0fnEfDhwt6bz09ZY0lr6+NyLeTL/fD7gRICJelXR/030XA6dKuhbYmyTBZO1Asid7s38D\nr0s6gWTP9nebjh0O7NGUAD8G7Ay8QPoUImkYOBb4XtN1r5Fs1WrWM04gNhG9l35dR+P/gIC5EfFs\n84mS9gbe7vC+15I8PbxHsqf0+hbnvANMblG+FLgCOC1TLmB+RNzb4polJCurPgg8GRHNiWkyGyci\ns8K5CcsGVcs+kFHcDZyz4WJpzzbnrQTmpn0hHwdmjxyIiH8Ar5A0h7UbBbUamNminsuBS0gSQrZe\nZ0vaPK3XziNNaxHxd5K93S9m4+YrgF2Ap9rUwawQTiA2qCZn+kB+mJa3G+F0EbCFpFWSngIubHPe\nMpK9pJ8GridpBnuz6fivgZci4i9trr8TOKjpdQBExFsR8eOI+DBz/tUkzVqPS/ozSb9Nc8vBDcCu\nQLbD/iDgjjZ1MCuE9wMxGydJW0fE25K2Ax4G9o2I19JjC4HHI6LlE4ikycDv02t68p8v3W1uBbBf\nm2Y0s0I4gZiNU9pxvi2wBXBJRCxOyx8F3gIOi4gPRrn+MGB1r+ZoSJoJ7BgRD/bi/mYjnEDMzCwX\n94GYmVkuTiBmZpaLE4iZmeXiBGJmZrk4gZiZWS5OIGZmlsv/AdxFToNdtvqoAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -605,7 +637,7 @@ "cm = matplotlib.cm.Spectral_r\n", "\n", "# Determine size of probability tables\n", - "urr = gd157.urr\n", + "urr = gd157.urr['294K']\n", "n_energy = urr.table.shape[0]\n", "n_band = urr.table.shape[2]\n", "\n", @@ -644,7 +676,7 @@ " color=cm(value)))\n", "\n", "# Overlay total cross section\n", - "ax.plot(gd157.energy, total.xs(gd157.energy), 'k')\n", + "ax.plot(gd157.energy['294K'], total.xs['294K'](gd157.energy['294K']), 'k')\n", "\n", "# Make plot pretty and labeled\n", "ax.set_xlim(1e-6, 1e-1)\n", @@ -666,7 +698,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": { "collapsed": false }, @@ -674,16 +706,16 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 19, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "filename = '/home/smharper/nuclear-data/nndc/293.6K/Gd_157_293.6K.ace'\n", + "filename = '/opt/data/ace/nndc/293.6K/Gd_157_293.6K.ace'\n", "gd157_ace = openmc.data.IncidentNeutron.from_ace(filename)\n", "gd157_ace" ] @@ -697,9 +729,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -715,7 +747,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -728,14 +760,14 @@ " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" ] }, - "execution_count": 21, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gd157_reconstructed = openmc.data.IncidentNeutron.from_hdf5('gd157.h5')\n", - "gd157_ace[16].xs.y - gd157_reconstructed[16].xs.y" + "gd157_ace[16].xs['294K'].y - gd157_reconstructed[16].xs['294K'].y" ] }, { @@ -747,7 +779,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -771,7 +803,7 @@ ], "source": [ "h5file = h5py.File('gd157.h5', 'r')\n", - "main_group = h5file['Gd157.71c/reactions']\n", + "main_group = h5file['Gd157/reactions']\n", "for name, obj in sorted(list(main_group.items()))[:10]:\n", " if 'reaction_' in name:\n", " print('{}, {}'.format(name, obj.attrs['label'].decode()))" @@ -779,7 +811,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -788,9 +820,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[,\n", - " ,\n", - " ]\n" + "[,\n", + " ,\n", + " ]\n" ] } ], @@ -808,7 +840,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "metadata": { "collapsed": false, "scrolled": true @@ -832,33 +864,33 @@ " 7.77740000e-01])" ] }, - "execution_count": 24, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "n2n_group['xs'].value" + "n2n_group['294K/xs'].value" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.5.2" } }, "nbformat": 4, From 7175f8ed44f64368394975ef9c180a46156e30a8 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 23 Sep 2016 14:49:46 -0500 Subject: [PATCH 414/417] Allow temperatures to be assigned to heterogeneous cells --- openmc/cell.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/openmc/cell.py b/openmc/cell.py index e8b9033a96..bcd2e5fd00 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -291,6 +291,7 @@ class Cell(object): @temperature.setter def temperature(self, temperature): + # Make sure temperatures are positive cv.check_type('cell temperature', temperature, (Iterable, Real)) if isinstance(temperature, Iterable): cv.check_type('cell temperature', temperature, Iterable, Real) @@ -298,7 +299,15 @@ class Cell(object): cv.check_greater_than('cell temperature', T, 0.0, True) else: cv.check_greater_than('cell temperature', temperature, 0.0, True) - self._temperature = temperature + + # If this cell is filled with a universe or lattice, propagate + # temperatures to all cells contained. Otherwise, simply assign it. + if self.fill_type in ('universe', 'lattice'): + for c in self.get_all_cells().values(): + if c.fill_type == 'material': + c._temperature = temperature + else: + self._temperature = temperature @offsets.setter def offsets(self, offsets): From 3353592cb6092f9d0341e1a0393cedca778aefaf Mon Sep 17 00:00:00 2001 From: liangjg Date: Sun, 25 Sep 2016 19:33:14 -0400 Subject: [PATCH 415/417] fix bug in initializing the starting point for meshline plotting --- src/plot.F90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plot.F90 b/src/plot.F90 index 796cce6afa..b5832bbdfa 100644 --- a/src/plot.F90 +++ b/src/plot.F90 @@ -239,10 +239,10 @@ contains xyz_ll_plot = pl % origin xyz_ur_plot = pl % origin - xyz_ll_plot(outer) = pl % origin(1) - pl % width(1) / TWO - xyz_ll_plot(inner) = pl % origin(2) - pl % width(2) / TWO - xyz_ur_plot(outer) = pl % origin(1) + pl % width(1) / TWO - xyz_ur_plot(inner) = pl % origin(2) + pl % width(2) / TWO + xyz_ll_plot(outer) = pl % origin(outer) - pl % width(1) / TWO + xyz_ll_plot(inner) = pl % origin(inner) - pl % width(2) / TWO + xyz_ur_plot(outer) = pl % origin(outer) + pl % width(1) / TWO + xyz_ur_plot(inner) = pl % origin(inner) + pl % width(2) / TWO width = xyz_ur_plot - xyz_ll_plot From 8701b5dfe6aabc94430c1c8a304733735156af23 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 26 Sep 2016 13:31:11 -0400 Subject: [PATCH 416/417] Fix #723 typo --- docs/source/io_formats/summary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/io_formats/summary.rst b/docs/source/io_formats/summary.rst index c3d078eba4..435cb45c87 100644 --- a/docs/source/io_formats/summary.rst +++ b/docs/source/io_formats/summary.rst @@ -132,7 +132,7 @@ The current revision of the summary file format is 4. Index of this cell in distribcell arrays. Only present if this cell is listed in a distribcell filter or if it uses distributed materials. -**/geometry/cells/cell /distribcell_index** (*char[][]*) +**/geometry/cells/cell /paths** (*char[][]*) The paths traversed through the CSG tree to reach each distribcell instance. This consists of the integer IDs for each universe, cell and From 17c678d9f8f797a2d558162107c8eb49dded714f Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 30 Sep 2016 14:47:16 -0500 Subject: [PATCH 417/417] Make sure system_clock uses high-resolution timer --- src/timer_header.F90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/timer_header.F90 b/src/timer_header.F90 index 6b0580f427..3a633f7004 100644 --- a/src/timer_header.F90 +++ b/src/timer_header.F90 @@ -13,7 +13,7 @@ module timer_header type Timer private logical :: running = .false. ! is timer running? - integer :: start_counts = 0 ! counts when started + integer(8) :: start_counts = 0 ! counts when started real(8), public :: elapsed = ZERO ! total time elapsed in seconds contains procedure :: start => timer_start @@ -44,13 +44,14 @@ contains class(Timer), intent(in) :: self ! the timer real(8) :: elapsed ! total elapsed time - integer :: end_counts ! current number of counts - integer :: count_rate ! system-dependent counting rate + integer(8) :: end_counts ! current number of counts + integer(8) :: count_rate ! system-dependent counting rate real :: elapsed_time ! elapsed time since last start if (self % running) then call system_clock(end_counts, count_rate) - elapsed_time = real(end_counts - self % start_counts)/real(count_rate) + elapsed_time = real(end_counts - self % start_counts, 8) / & + real(count_rate, 8) elapsed = self % elapsed + elapsed_time else elapsed = self % elapsed